This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Stop automatic dependency selection on setup.exe chooser screen


On 23 July 2010 04:11, Christopher Faylor wrote:
> On Thu, Jul 22, 2010 at 10:06:23PM +0100, Andy Koppe wrote:
>>Hi,
>>
>>Here's a small setup.exe patch addressing the issues reported at
>>http://cygwin.com/ml/cygwin/2010-07/msg00448.html.
>>
>>The underlying problem here is that automatic dependency selection is
>>being done while the user is still choosing packages, without keeping
>>track of which packages were added automatically. Hence when the user
>>decides not to install a package after all, its dependencies will
>>remain selected. Also, cycling through the package actions to get to
>>'Uninstall' repeatedly invokes the dependency resolver, which makes it
>>nearly impossible to uninstall a group of packages with non-trivial
>>dependencies between them.
>>
>>Making instant dependency updates work properly both for adding and
>>removing packages would be a major undertaking, and I think in their
>>current state they cause more problems than they're worth. Therefore,
>>this patch simply disables dependency updates during package
>>selection.
>>
>>Instead, the 'Resolve Dependencies' screen which would usually have
>>been skipped will get more use. This has the nice feature that it
>>explicitly tells users what packages are being added and why. So as
>>not to needlessly scare users, the patch drops the "Warning!" from
>>"Warning! Unmet Dependencies Found" at the top of the screen.
>>
>>I checked that the 'Resolve Dependencies' screen does not appear for a
>>fresh default installation. Going back from the 'Resolve Dependencies'
>>to package selection also appears to be working fine.
>>
>>ChangeLog:
>> Â Â Â * PickPackageLine.cc (PickPackageLine::{click,set_action}):
>> Â Â Â Don't trigger automatic package selection when clicking on
>> Â Â Â packages or categories on chooser screen.
>> Â Â Â * PickCategoryLine.cc (PickCategoryLine::click): No more need to
>> Â Â Â prepare for automatic package selection with markUnVisited().
>> Â Â Â * res.rc: Drop "Warning!" from caption of Resolve Dependencies
>> Â Â Â screen.
>
> This is awesome. ÂThanks Andy. ÂI was going to look into the problem
> this weekend but you beat me to it and I'm very grateful. ÂI'm surprised
> by how simple the change was to achieve this effect.

You're welcome. Main challenge was just finding the code what did it.


> One minor thing: ÂJust send the ChangeLog as the above. ÂDon't include it
> as a patch. ÂIt rarely applies cleanly.

Sorry, I didn't remember to exclude it when doing the diff.


> I wonder if we can come up with better wording than "Unmet dependencies
> found". ÂMaybe something like "The following packages were added to satisfy
> dependencies of your selection". ÂBut maybe that's too wordy.

That screen already has some more wording, like this:


Unmet Dependencies Found [in bold]
The following packages are required but have not been selected.

Package: binutils
	Required by: gcc4-g++

Package: gcc4-core
	Required by: gcc4-g++

[tickbox] Install these packages to meet dependencies (RECOMMENDED)


(That tickbox is pre-ticked. If you untick it and click Next you get
an appropriate warning about breaking your installation.)

I think that's okay(ish), although sensitive users might read the
sentence above the list as accusing them of failing to add the
dependencies. How about "The following packages are required to
satisfy dependencies of your selection."?

Andy


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]