-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Martin v. Löwis wrote: >>> Sure, but what is precisely the semantics of uninstallation, in >>> terms of changes to the system state? >>> >>> I think any model where uninstallation is merely the removal >>> of files is too limited to be practical. >> The distutils only support the *addition* of files, so I'm not sure >> how only removing files is a limit here. Could you explain? > > For files, yes, it only supports addition. But it supports > arbitrary other actions, such as: > - addition of registry keys > - addition of user accounts > - creation of database tables in a relational database > - updating the shared library loader path > - creation and start of a system service > - integration of documentation into info > - registration of DTDs with the system catalog > - ... > > It's turing-complete, and it has full interface to the operating > system, so installation of a distutils package can do *much* > more than merely installing files.
Which is exactly what is wrong with distutils: turing completeness in an installer is an *anti* goal, from the perspective of manageability. I'd be willing to bet that if you asked system packagers to list the dozen or so packages which they *hate* to maintain, the large majority of each list would be packages which acutally use the full power of distutils. (Note: I'm aware that people believe it to be necessary to munge the Windows registry when installing Python packages; I just don't agree with the practice, and don't think we should distort Python's process to coddle it). > Uninstallation needs to revert anything installation did, > so it is often more than mere removal of files. Practically speacking, nobody but the author of the TC-abusing setup.py is *ever* going to be able to do this, and most of them won't get the edge cases right. Maybe we can just punt on such packages, and make a tool which actually works for the huge majority of distributions which don't need to do more than install files. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 [EMAIL PROTECTED] Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD4DBQFH6Cdr+gerLs4ltQ4RAlFzAJi3gs8fzb9o8/Dtct1G9P0EJxNSAKCc7V7m uT5MgTzltBDhdrgoNxt8nA== =zgqI -----END PGP SIGNATURE----- _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig