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

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Aug 6 20:26:00 GMT 2010


On Aug  6 22:08, Corinna Vinschen wrote:
> On Aug  6 19:21, Andy Koppe wrote:
> > On 6 August 2010 18:09, Andy Koppe wrote:
> > > On 6 August 2010 17:00, Corinna Vinschen wrote:
> > >>> On Fri, Aug 06, 2010 at 01:25:54PM +0100, Andy Koppe wrote:
> > >>> >The dependency resolver page only adds direct
> > >>> >dependencies of packages that have been selected, not indirect ones,
> > >>> >so you end up with missing DLLs. (They do get added before the package
> > >>> >selection screen if you run setup.exe again.)
> > >>
> > >> I'm looking into it, but it's tricky for people not quite up to speed
> > >> with STL.  Basically the elements in unmap also have to be tested for
> > >> unsatisfied dependencies.  One problem is that unmet is a map, so, when
> > >> adding elements to unmet, there has to be some marker which allows to
> > >> recognize elements which already have been tested for dependencies,
> > >> otherwise it will be rather slow.
> > >
> > > I'm hoping this won't need to be implemented from scratch, given
> > > indirect dependencies already do work elsewhere.
> > 
> > Misplaced hope, because packageversion::set_requirements, which is
> > used on the chooser page, selects packages right away, whereas on the
> > PreReq page they're first collected into a list of packages (and their
> > requirees) to display to the user.
> > 
> > I'll have a go at PrereqChecker::isMet() then.
> 
> I had a go at it, see below.  Does it make sense?  I tested this by
> selecting *only* the flac-devel package, which resulted in the following
> "Resolve Dependecies" dialog:
> 
>   Package: libFLAC++6
> 	  Required by: flac-devel
> 
>   Package: libFLAC8
> 	  Required by: flac-devel
> 
>   Package: libogg-devel
> 	  Required by: flac-devel
> 
>   Package: libogg0
> 	  Required by: libogg-devel
> 
> Looks good, doesn't it?  Do you have another useful test for this code?

Here's another test with only selecting the vorbis-tools package.
With the current setup from CVS:

  Package: libao4
	  Required by: vorbis-tools

  Package: libFLAC8
	  Required by: vorbis-tools

  Package: libkate1
	  Required by: vorbis-tools

  Package: libogg0
	  Required by: vorbis-tools

  Package: libspeex1
	  Required by: vorbis-tools

  Package: libvorbis0
	  Required by: vorbis-tools

  Package: libvorbisenc2
	  Required by: vorbis-tools

  Package: libvorbisfile3
	  Required by: vorbis-tools

With my patch:

  Package: libao
	  Required by: libao4

  Package: libao-devel
	  Required by: libao

  Package: libao4
	  Required by: vorbis-tools

  Package: libaudio2
	  Required by: libao4

  Package: libaudiofile0
	  Required by: libesd0

  Package: libesd0
	  Required by: libao4

  Package: libFLAC8
	  Required by: vorbis-tools

  Package: libkate
	  Required by: libkate1

  Package: libkate1
	  Required by: vorbis-tools

  Package: libogg0
	  Required by: vorbis-tools

  Package: libspeex1
	  Required by: vorbis-tools

  Package: libvorbis
	  Required by: libvorbis0

  Package: libvorbis0
	  Required by: vorbis-tools

  Package: libvorbisenc2
	  Required by: vorbis-tools

  Package: libvorbisfile3
	  Required by: vorbis-tools


Looks still good, doesn't it?


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat



More information about the Cygwin-apps mailing list