[Distutils] Uninstalling

Thomas Heller thomas.heller@ion-tof.com
Mon Mar 12 07:36:32 2001


> I'd like to suggest the convention that uninstall logs be placed in an
> "uninstall" directory. Python top-level directories are messy enough as
> it is. The convention and syntax described here is fine with me:
> 
> http://mail.python.org/pipermail/distutils-sig/2001-February/001991.html
> 
In addition to these entries

  020 Reg DB Key:
  040 Reg DB Value:
  100 Made Dir:
  200 File Copy:
  200 File Overwrite:

I plan to support additional logfile entries as well
(has also been suggested by Marc Hammond in private mail)

  020 Reg DB Tree: HKLM\Software\....
  100 File Tree: c:\python20\mydata\*.dat
  100 File Tree: c:\python20\mydata

to recursively delete a key in the registry, or to recursively
delete files matching the mask, or removing a directory even
if it would contain subdirectories and/or files.
An entry like

  600 Run Script: c:\python\Distutils\cleanup.py
or
  600 Run Program: c:\blabla.exe --remove

could be used to trigger a script or an exe which
will cleanup additional things (unregistering COM-servers
comes to mind).


> All install commands should generate the appropriate logs.
Sounds easy.

> It should
> also be possible to insert an uninstall/remove_packagename.py for
> undoing-anything unusual (e.g. if the install modified an Apache config
> file or something). remove_packagename.py functions should be
> exceedingly rare but at ActiveState we have taken the position that
> people should be able to do arbitrary things in installers and
> uninstallers....more on that later...
> 
How would this logfile be used? Should distutils contain a clean-up
command for this?

Thomas