setup: uninstalling an orphaned package

Ken Brown kbrown@cornell.edu
Mon Mar 26 17:55:00 GMT 2018


In ChooserPage::applyCommandLinePackageSelection() we have the following 
code:

       bool wanted    = pkg.isManuallyWanted();
       bool deleted   = pkg.isManuallyDeleted();
       bool basemisc  = (pkg.categories.find ("Base") != 
pkg.categories.end ()
		     || pkg.categories.find ("Orphaned") != pkg.categories.end ());
[...]
       bool reinstall = (wanted  || basemisc) && deleted;

One strange consequence of this is that if the user tries to uninstall 
an orphaned package on the command line, then setup will instead try to 
reinstall it.

This behavior was introduced in the following commit:

commit a667a8b289ccb6e70ec6bf4c70cceeca4d3fb5d3
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Thu Jul 25 12:03:49 2013 +0000

[...]
Uninstalled packages in categories "Base" or "Misc" are always selected 
for installation; installed packages in these categories are not 
eligible for deletion and will be reinstalled or upgraded instead.
[...]

I can't understand the rationale for this.  Did "Misc" (which has since 
been renamed to "Orphaned") used to have a different meaning?

I found it very surprising when I tried to uninstall a bunch of packages 
in unattended mode, and setup failed with download errors because it 
tried to reinstall orphaned packages.

Ken



More information about the Cygwin-apps mailing list