On 4 Jun, 2009, at 5:54, Tarek Ziadé wrote:
Paul
I'd say that it's distutils' responsibility not to offer to uninstall
anything it didn't install.
Brian
Yep. Though I think that nowdays dpkg installs to a different
directory than
Distutils' default. So users have to specify extra options to break
their systems.
But how does those third-party install the projects ?
Don't they use Distutils' install command under the hood ?
If so, the new PEP 376 APIs are ignoring previous versions of
egg-infos and work only with the ones that complies with the new
standard (it's a quick control right now, look at the "is_egg_info"
API in http://bitbucket.org/tarek/pep376/src/tip/pkgutil.py)
So, in any case the uninstall command will not work with project that
are filtered out by is_egg_info().
So maybe we could add a "INSTALLER" file with a unique md5 key
provided by the project that installed the package,
and ask for the key when calling this API ? If not provided, it would
use Distutils's md5 key
Why should the the INSTALLER file contain a md5 value? I'd use either
the name of the packager (dpkg,rpm,...), or even that plus the name of
the external package:
rpm,py26-zlib
This would make it possible for a PEP376-based uninstaller to give
more meaningful error messages when you try to uninstall a project
that was installed by a system package. That is, it could say "this
project was installed using the 'py26-zlib' system-package, use 'rpm'
to uninstall" rather than "go away I didn't install this".
BTW. I'd say that the INSTALLER should default to "distutils", that
is: don't install the INSTALLER file unless someone explicitly asks
for it by specifying a different value for the installer. A tool like
bdist_rpm could of course automaticly set that different value.
Ronald
Tarek
_______________________________________________
Distutils-SIG maillist - Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig
_______________________________________________
Distutils-SIG maillist - Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig