From ian Tue Apr 18 23:30:04 1995 X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] [nil nil nil nil nil nil nil nil nil nil nil nil "^To:" nil nil nil nil nil nil nil] nil) X-VM-Summary-Format: "%3n %a %2d %3m %-19.19F %s\n" X-VM-Labels: nil X-VM-VHeader: ("Resent-" "From:" "Sender:" "To:" "Apparently-To:" "Cc:" "Subject:" "Date:") nil X-VM-Bookmark: 5 To: Debian developers list Subject: Handling of base packages I propose to implement the following scheme to enable obsolete base packages to disappear, and to allow files in the base packages to move between one package and another. 1. When a package is installed, and contains files that are already marked as belonging to some other package, the older package will have the files that have been overwritten removed from its file list. 2. When a package ceases to contain any files due to the action of point 1 above, its postrm script is run with the argument `disappear' (in place of `remove', `purge' or whatever). It will then be moved into the `purge ok not-installed' state, so that it will cease to appear in dpkg and dselect lists. Its conffiles will be ignored, *not* purged. The prerm will *not* be run as the packaging system doesn't know what files are in a package until it unpacks it. This will all happen during the `unpack' phase of the replacing package. 3. If a base system package which is being installed conflicts with another base system package which is currently installed on the system, the currently installed one will be removed first (the prerm will be run with `replace ' as arguments, then the package will be removed, then the postrm will be run, likewise with `replace'). If the replacement fails the removal will be aborted, involving running the old packages' scripts with `abort-replace'. 4. Base system packages may not be removed except under 2. or 3. above. (There will be a --force-remove-base flag to allow foolhardy users to go ahead anyway.) Ian.