public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* Setup for 1.7 must still handle 9x?
@ 2008-08-12 15:35 Corinna Vinschen
  2008-08-12 18:02 ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-12 15:35 UTC (permalink / raw)
  To: cygwin-apps

And the next question.

I have hacked up a version of setup which handles most of the stuff
necessary to install Cygwin 1.7 now.  However, it contains changes which
are hard to implemented transparently on 9x.  For instance, all local
file access is now using wide char functions which are usually not
available on 9x.  The mount table in the registry is not written anymore,
rather only the {HKLM,HKCU}\Software\Cygwin\setup\rootdir value.

Having only one version of setup which supports the old 1.5 install as
well as the new 1.7 install is extremly tricky, IMHO.

Is it worth it at all?  Isn't it sufficient to keep the 1.5 installer
on the branch and use it for 9x installations in future only?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: Setup for 1.7 must still handle 9x?
  2008-08-12 15:35 Setup for 1.7 must still handle 9x? Corinna Vinschen
@ 2008-08-12 18:02 ` Corinna Vinschen
  2008-08-12 20:26   ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-12 18:02 UTC (permalink / raw)
  To: cygwin-apps

On Aug 12 17:35, Corinna Vinschen wrote:
> And the next question.
> 
> I have hacked up a version of setup which handles most of the stuff
> necessary to install Cygwin 1.7 now.  However, it contains changes which
> are hard to implemented transparently on 9x.  For instance, all local
> file access is now using wide char functions which are usually not
> available on 9x.  The mount table in the registry is not written anymore,
> rather only the {HKLM,HKCU}\Software\Cygwin\setup\rootdir value.
> 
> Having only one version of setup which supports the old 1.5 install as
> well as the new 1.7 install is extremly tricky, IMHO.
> 
> Is it worth it at all?  Isn't it sufficient to keep the 1.5 installer
> on the branch and use it for 9x installations in future only?

Never mind.  Baring any dumb mistakes, it's apparently not *that*
complicated.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: Setup for 1.7 must still handle 9x?
  2008-08-12 18:02 ` Corinna Vinschen
@ 2008-08-12 20:26   ` Christopher Faylor
  2008-08-12 20:41     ` Corinna Vinschen
  2008-08-13 10:20     ` New Setup for Cygwin 1.7 on cygwin.com Corinna Vinschen
  0 siblings, 2 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-12 20:26 UTC (permalink / raw)
  To: cygwin-apps

On Tue, Aug 12, 2008 at 08:02:15PM +0200, Corinna Vinschen wrote:
>On Aug 12 17:35, Corinna Vinschen wrote:
>>Is it worth it at all?  Isn't it sufficient to keep the 1.5 installer
>>on the branch and use it for 9x installations in future only?
>
>Never mind.  Baring any dumb mistakes, it's apparently not *that*
>complicated.

But, FWIW, I would be fine with keeping 1.5 support on a branch.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: Setup for 1.7 must still handle 9x?
  2008-08-12 20:26   ` Christopher Faylor
@ 2008-08-12 20:41     ` Corinna Vinschen
  2008-08-12 23:11       ` Ralph Hempel
  2008-08-13 10:20     ` New Setup for Cygwin 1.7 on cygwin.com Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-12 20:41 UTC (permalink / raw)
  To: cygwin-apps

On Aug 12 16:25, Christopher Faylor wrote:
> On Tue, Aug 12, 2008 at 08:02:15PM +0200, Corinna Vinschen wrote:
> >On Aug 12 17:35, Corinna Vinschen wrote:
> >>Is it worth it at all?  Isn't it sufficient to keep the 1.5 installer
> >>on the branch and use it for 9x installations in future only?
> >
> >Never mind.  Baring any dumb mistakes, it's apparently not *that*
> >complicated.
> 
> But, FWIW, I would be fine with keeping 1.5 support on a branch.

Too late :)

I just applied my patch.  This version now uses setup-2.ini on NT and
setup.ini on 9x.  I tested it on XP and 98.

New features:

- Installs 1.7 on NT and 1.5.x on 9x.

- Uses wide char functions, long path names and the Cygwin UNICODE
  transformation of special DOS characters on NT.

- Reads package DB the first time *after* the user pressed the "Next"
  button in the root dir dialog, so that setup doesn't use the package
  DB from a former installation by accident if the user chooses to
  install into a new directory.

- Tries to fetch the root dir from {HKLM,HKCU}/Software/Cygwin/setup/rootdir
  Stores it there at installation time.

- Does not write registry mount points on NT.

- Dynamically changes the layout of the root dir dialog so that there's
  no user choice for text/binmode.

It works for me(TM), so I don't know what I screwed up.  But at least
we have finally a version of setup which can be used by all package
maintainers.

If nobody beats me to it, I'll upload this version as setup-1.7.exe to
http://cygwin.com tomorrow.


Peace,
Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: Setup for 1.7 must still handle 9x?
  2008-08-12 20:41     ` Corinna Vinschen
@ 2008-08-12 23:11       ` Ralph Hempel
  2008-08-13  8:34         ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Ralph Hempel @ 2008-08-12 23:11 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote:

> It works for me(TM), so I don't know what I screwed up.  But at least
> we have finally a version of setup which can be used by all package
> maintainers.
> 
> If nobody beats me to it, I'll upload this version as setup-1.7.exe to
> http://cygwin.com tomorrow.

Glad to see you've been able to maintain compatibility with Win95 :-)

Not to belabour a point, but did Dave Korn's work on the command
line package spec ability make it into this version?

Cheers, Ralph

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: Setup for 1.7 must still handle 9x?
  2008-08-12 23:11       ` Ralph Hempel
@ 2008-08-13  8:34         ` Corinna Vinschen
  0 siblings, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-13  8:34 UTC (permalink / raw)
  To: cygwin-apps

On Aug 12 19:09, Ralph Hempel wrote:
> Corinna Vinschen wrote:
>
>> It works for me(TM), so I don't know what I screwed up.  But at least
>> we have finally a version of setup which can be used by all package
>> maintainers.
>> If nobody beats me to it, I'll upload this version as setup-1.7.exe to
>> http://cygwin.com tomorrow.
>
> Glad to see you've been able to maintain compatibility with Win95 :-)
>
> Not to belabour a point, but did Dave Korn's work on the command
> line package spec ability make it into this version?

Yes, from the ChangeLog it seems so.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* New Setup for Cygwin 1.7 on cygwin.com
  2008-08-12 20:26   ` Christopher Faylor
  2008-08-12 20:41     ` Corinna Vinschen
@ 2008-08-13 10:20     ` Corinna Vinschen
  2008-08-15  8:54       ` Dr. Volker Zell
                         ` (3 more replies)
  1 sibling, 4 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-13 10:20 UTC (permalink / raw)
  To: cygwin-apps

Hi,

I just uploaded a new setup-1.7.exe to install Cygwin 1.7.

You can find it here:  http://cygwin.com/setup-1.7.exe 

The version number is 2.605.
The SHA1 checksum is 42ba9cfb36f21c55d6cbfff8e48b20202f0d85c1

Features:

- Installs 1.7 on NT and 1.5.x on 9x.

As far as NT is affected:

- Uses long path names and the Cygwin UNICODE transformation of special
  DOS characters.  This should allow to install files with special DOS
  chars (foo:bar, a<b), as well as files with names consisting of DOS
  device names (nul.exe, aux.c).

- Setup will still look for an old install by searching the 1.5.x
  registry mount points.  If you don't change to another dir in the
  "Choose Installation Directory" dialog, it will perform an upgrade
  rather than a fresh parallel install.  So, please change the root
  directory to something like, say, C:\cygwin-1.7

- Reads package DB the first time *after* the user pressed the "Next"
  button in the "Choose Installation Directory" dialog, so that setup
  doesn't use the package DB from a former installation by accident if
  the user chooses to install into a new directory.
  
  This only works once! 
  
  If you press the "Next" button in the "Choose Installation Directory"
  dialog before you changed the root directory, then press the "Back"
  button, it's too late.  In that case, press "Cancel" and restart
  Setup-1.7.
  
  I couldn't figure out how to drop the entire package DB in memory so
  that it can be re-read when the directory gets changed by the user.
  Can somebody help coding this?

- Does not write registry mount points anymore.

- Dynamically changes the layout of the "Choose Installation Directory"
  dialog so that there's no user choice for text/binmode.

Other changes:

- Silently skip empty tar packages of the 46 byte type (for instance
  gcc-3.4.4-3).

- New command-line option which was already present in Dave's test
  release 2.602:
  
  -P --packages                          Specify packages to install

Perhaps I screwed something up with my patches which worked before,
but it worked fine for me, so I don't know.  Please give it a try
and report back.


Have fun,
Corinna




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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-13 10:20     ` New Setup for Cygwin 1.7 on cygwin.com Corinna Vinschen
@ 2008-08-15  8:54       ` Dr. Volker Zell
  2008-08-15 10:28         ` Corinna Vinschen
  2008-08-15 10:15       ` Dr. Volker Zell
                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 90+ messages in thread
From: Dr. Volker Zell @ 2008-08-15  8:54 UTC (permalink / raw)
  To: cygwin-apps

>>>>> Corinna Vinschen writes:

    > Hi,
    > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.

I tried a parallel net install on my 1.5 system on XP with only the base
system for 1.7:


$ cd /

vzell@xp /
$ ls -lt
ls: reading directory .: Bad addres                                            <----- What's this ??
total 6
drwxrwxrwt+ 1 vzell Users    0 Aug 15 10:43 tmp
drwxrwxrwx+ 1 vzell None     0 Aug 15 10:43 home
-rwxr-xr-x  1 vzell Users   61 Aug 15 10:42 Cygwin.bat
-rwxr-xr-x  1 vzell Users 7022 Aug 15 10:42 Cygwin.ico
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 etc
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 dev
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 cygdrive
lrwxrwxrwx  1 vzell Users   17 Aug 15 10:41 terminfo ->../share/terminfo      <----- This seems to be wrong
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 var
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 bin
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:40 lib
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:39 usr
dr-xr-xr-x  8 vzell None     0 Dec  1  2006 proc

vzell@xp /
$ mount
D:\cygwin-1.7\bin on /usr/bin type ntfs (binary)
D:\cygwin-1.7\lib on /usr/lib type ntfs (binary)
D:\cygwin-1.7 on / type ntfs (binary)
c: on /c type ntfs (binary,user,noumount)
d: on /d type ntfs (binary,user,noumount)
e: on /e type iso9660 (binary,user,noumount)
s: on /s type unknown (binary,user,noumount)

vzell@xp /
$ mount -p
Prefix              Type         Flags
/                   user         binmode
    
Ciao
  Volker

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-13 10:20     ` New Setup for Cygwin 1.7 on cygwin.com Corinna Vinschen
  2008-08-15  8:54       ` Dr. Volker Zell
@ 2008-08-15 10:15       ` Dr. Volker Zell
  2008-08-15 10:33         ` Corinna Vinschen
  2008-08-15 11:47       ` Dr. Volker Zell
  2008-08-15 19:24       ` Eric Blake
  3 siblings, 1 reply; 90+ messages in thread
From: Dr. Volker Zell @ 2008-08-15 10:15 UTC (permalink / raw)
  To: cygwin-apps

>>>>> Corinna Vinschen writes:

    > Hi,
    > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.

Any idea why I have two user entries for my account in /etc/passwd after
installing a base 1.7 system ?

vzell:unused:1003:513:Dr. Volker Zell,U-XP\vzell,S-1-5-21-484763869-1214440339-839522115-1003:/home/vzell:/bin/bash
vzell:unused:11003:10545:U-XP\vzell,S-1-5-21-484763869-1214440339-839522115-1003:/cygdrive/d/home/vzell:/bin/bash

Ciao
  Volker
  

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15  8:54       ` Dr. Volker Zell
@ 2008-08-15 10:28         ` Corinna Vinschen
  2008-08-15 11:21           ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 10:28 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 10:53, Dr. Volker Zell wrote:
> >>>>> Corinna Vinschen writes:
> 
>     > Hi,
>     > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
> 
> I tried a parallel net install on my 1.5 system on XP with only the base
> system for 1.7:
> 
> 
> $ cd /
> 
> vzell@xp /
> $ ls -lt
> ls: reading directory .: Bad addres                                            <----- What's this ??

That's a result of using / as cygdrive prefix.  I look into that.

> total 6
> drwxrwxrwt+ 1 vzell Users    0 Aug 15 10:43 tmp
> drwxrwxrwx+ 1 vzell None     0 Aug 15 10:43 home
> -rwxr-xr-x  1 vzell Users   61 Aug 15 10:42 Cygwin.bat
> -rwxr-xr-x  1 vzell Users 7022 Aug 15 10:42 Cygwin.ico
> drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 etc
> drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 dev
> drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 cygdrive
> lrwxrwxrwx  1 vzell Users   17 Aug 15 10:41 terminfo ->../share/terminfo      <----- This seems to be wrong

Dunno where this is coming from but I assume this is also a result
of using / as cygdrive prefix.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 10:15       ` Dr. Volker Zell
@ 2008-08-15 10:33         ` Corinna Vinschen
  0 siblings, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 10:33 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 12:14, Dr. Volker Zell wrote:
> >>>>> Corinna Vinschen writes:
> 
>     > Hi,
>     > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
> 
> Any idea why I have two user entries for my account in /etc/passwd after
> installing a base 1.7 system ?
> 
> vzell:unused:1003:513:Dr. Volker Zell,U-XP\vzell,S-1-5-21-484763869-1214440339-839522115-1003:/home/vzell:/bin/bash
> vzell:unused:11003:10545:U-XP\vzell,S-1-5-21-484763869-1214440339-839522115-1003:/cygdrive/d/home/vzell:/bin/bash

mkpasswd -l -c prints both entries.  Looks like some changes to mkpasswd
are necessary.

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 10:28         ` Corinna Vinschen
@ 2008-08-15 11:21           ` Corinna Vinschen
  2008-08-15 13:13             ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 11:21 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 12:28, Corinna Vinschen wrote:
> On Aug 15 10:53, Dr. Volker Zell wrote:
> > lrwxrwxrwx  1 vzell Users   17 Aug 15 10:41 terminfo ->../share/terminfo      <----- This seems to be wrong
> 
> Dunno where this is coming from but I assume this is also a result
> of using / as cygdrive prefix.

Apparently not.  If you have a look into /var/log/setup.log, you can see
that this is a result of the order in which the postinstall scripts are
running.  The problem is that the script 000-cygwin-post-install.sh from
the base-cygwin package is not run as the first script, so that we don't
have a fstab file (and no usr/lib mount point) when the terminfo
postinstall script runs.

Here's another problem:  The bash postinstall script runs prior to
the 000-cygwin-post-install.sh script as well and fails exit code 127,
because it calls /usr/bin/install-info.  Since the /usr/bin mount point
is created in 000-cygwin-post-install.sh, it doesn't exist so far and
the call fails.  That shouldn't hurt since update-info-dir.sh runs
fine (it calls install-info without full path), but it shows the general
problem.

Along these lines, the coreutils postinstall script runs before the
bash script as well even though its setup.hint file requires bash.
Huh?

So, how can we make sure that the 000-cygwin-post-install.sh script
from the base-cygwin package runs as the first script?  Does it work
to make bash depend on base-cygwin?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-13 10:20     ` New Setup for Cygwin 1.7 on cygwin.com Corinna Vinschen
  2008-08-15  8:54       ` Dr. Volker Zell
  2008-08-15 10:15       ` Dr. Volker Zell
@ 2008-08-15 11:47       ` Dr. Volker Zell
  2008-08-15 11:56         ` Corinna Vinschen
  2008-08-15 19:24       ` Eric Blake
  3 siblings, 1 reply; 90+ messages in thread
From: Dr. Volker Zell @ 2008-08-15 11:47 UTC (permalink / raw)
  To: cygwin-apps

>>>>> Corinna Vinschen writes:

    > Hi,
    > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.


vzell@xp /
$ ls -lt
ls: reading directory .: Bad address
total 6
drwxrwxrwt+ 1 vzell Users    0 Aug 15 12:22 tmp
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:54 dev
drwxrwxrwx+ 1 vzell None     0 Aug 15 10:43 home
-rwxr-xr-x  1 vzell Users   61 Aug 15 10:42 Cygwin.bat
-rwxr-xr-x  1 vzell Users 7022 Aug 15 10:42 Cygwin.ico
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 etc
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 cygdrive             <-- Is this directory really needed
lrwxrwxrwx  1 vzell Users   17 Aug 15 10:41 terminfo -> ../share/terminfo
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 var
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 bin
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:40 lib
drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:39 usr
dr-xr-xr-x  8 vzell None     0 Dec  1  2006 proc
    
Ciao
  Volker

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 11:47       ` Dr. Volker Zell
@ 2008-08-15 11:56         ` Corinna Vinschen
  2008-08-15 12:39           ` Corinna Vinschen
  2008-08-15 13:58           ` Dr. Volker Zell
  0 siblings, 2 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 11:56 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 13:46, Dr. Volker Zell wrote:
> >>>>> Corinna Vinschen writes:
> 
>     > Hi,
>     > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
> 
> 
> vzell@xp /
> $ ls -lt
> ls: reading directory .: Bad address

Is that just an accident or are you trying to tell me something else
with this mail?  Where's the message?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 11:56         ` Corinna Vinschen
@ 2008-08-15 12:39           ` Corinna Vinschen
  2008-08-15 13:58           ` Dr. Volker Zell
  1 sibling, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 12:39 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 13:56, Corinna Vinschen wrote:
> On Aug 15 13:46, Dr. Volker Zell wrote:
> > >>>>> Corinna Vinschen writes:
> > 
> >     > Hi,
> >     > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
> > 
> > 
> > vzell@xp /
> > $ ls -lt
> > ls: reading directory .: Bad address
> 
> Is that just an accident or are you trying to tell me something else
> with this mail?  Where's the message?

Fixed in CVS btw.  I'll upload a 1.7.0-28 release shortly...


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 11:21           ` Corinna Vinschen
@ 2008-08-15 13:13             ` Corinna Vinschen
  2008-08-15 13:17               ` Eric Blake
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 13:13 UTC (permalink / raw)
  To: cygwin-apps; +Cc: Eric Blake

On Aug 15 13:21, Corinna Vinschen wrote:
> > On Aug 15 10:53, Dr. Volker Zell wrote:
> > > lrwxrwxrwx  1 vzell Users   17 Aug 15 10:41 terminfo ->../share/terminfo      <----- This seems to be wrong
> 
> Apparently not.  If you have a look into /var/log/setup.log, you can see
> that this is a result of the order in which the postinstall scripts are
> running.  The problem is that the script 000-cygwin-post-install.sh from
> the base-cygwin package is not run as the first script, so that we don't
> have a fstab file (and no usr/lib mount point) when the terminfo
> postinstall script runs.
> 
> Here's another problem:  The bash postinstall script runs prior to
> the 000-cygwin-post-install.sh script as well and fails exit code 127,
> because it calls /usr/bin/install-info.  Since the /usr/bin mount point
> is created in 000-cygwin-post-install.sh, it doesn't exist so far and
> the call fails.  That shouldn't hurt since update-info-dir.sh runs
> fine (it calls install-info without full path), but it shows the general
> problem.
> 
> Along these lines, the coreutils postinstall script runs before the
> bash script as well even though its setup.hint file requires bash.
> Huh?
> 
> So, how can we make sure that the 000-cygwin-post-install.sh script
> from the base-cygwin package runs as the first script?  Does it work
> to make bash depend on base-cygwin?

Eric?  Is the latter feasible?  I created the 000-cygwin-post-install.sh
in a way so that it only requires bash itself, not any coreutils tool.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:13             ` Corinna Vinschen
@ 2008-08-15 13:17               ` Eric Blake
  2008-08-15 13:28                 ` Corinna Vinschen
  2008-08-15 14:01                 ` Corinna Vinschen
  0 siblings, 2 replies; 90+ messages in thread
From: Eric Blake @ 2008-08-15 13:17 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Corinna Vinschen on 8/15/2008 7:13 AM:
>>
>> So, how can we make sure that the 000-cygwin-post-install.sh script
>> from the base-cygwin package runs as the first script?  Does it work
>> to make bash depend on base-cygwin?
> 
> Eric?  Is the latter feasible?  I created the 000-cygwin-post-install.sh
> in a way so that it only requires bash itself, not any coreutils tool.

I don't know setup.exe well enough to say if that extra dependency will
help, but a) it can't hurt, and b) it's worth a shot.  I've tweaked the
setup.hint in release-2 accordingly.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkilgb0ACgkQ84KuGfSFAYDwQwCgwd2AidoR4Xb0y028GQwCU1GA
gLkAniehv7cWIphIV67sZmcXk5TJ+Q6K
=p9bq
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:17               ` Eric Blake
@ 2008-08-15 13:28                 ` Corinna Vinschen
  2008-08-15 13:38                   ` Corinna Vinschen
  2008-08-15 13:46                   ` Brian Dessent
  2008-08-15 14:01                 ` Corinna Vinschen
  1 sibling, 2 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 13:28 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 07:16, Eric Blake wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> According to Corinna Vinschen on 8/15/2008 7:13 AM:
> >>
> >> So, how can we make sure that the 000-cygwin-post-install.sh script
> >> from the base-cygwin package runs as the first script?  Does it work
> >> to make bash depend on base-cygwin?
> > 
> > Eric?  Is the latter feasible?  I created the 000-cygwin-post-install.sh
> > in a way so that it only requires bash itself, not any coreutils tool.
> 
> I don't know setup.exe well enough to say if that extra dependency will
> help, but a) it can't hurt, and b) it's worth a shot.  I've tweaked the
> setup.hint in release-2 accordingly.

Cool, thanks!  I'll try a fresh reinstall soon.

What I still don't get is that, in my local install, the update-info-dir,
coreutils, and terminfo postinstall scripts ran before the bash postinstall
script, even though all of them list bash as requirement.  Any idea?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:28                 ` Corinna Vinschen
@ 2008-08-15 13:38                   ` Corinna Vinschen
  2008-08-15 13:46                   ` Brian Dessent
  1 sibling, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 13:38 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 15:28, Corinna Vinschen wrote:
> On Aug 15 07:16, Eric Blake wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > According to Corinna Vinschen on 8/15/2008 7:13 AM:
> > >>
> > >> So, how can we make sure that the 000-cygwin-post-install.sh script
> > >> from the base-cygwin package runs as the first script?  Does it work
> > >> to make bash depend on base-cygwin?
> > > 
> > > Eric?  Is the latter feasible?  I created the 000-cygwin-post-install.sh
> > > in a way so that it only requires bash itself, not any coreutils tool.
> > 
> > I don't know setup.exe well enough to say if that extra dependency will
> > help, but a) it can't hurt, and b) it's worth a shot.  I've tweaked the
> > setup.hint in release-2 accordingly.
> 
> Cool, thanks!  I'll try a fresh reinstall soon.

Hang on.  Of course base-cygwin requires bash *and* coreutils since it
calls cat, mkdir and rm.

The setup.hint file of base-cygwin has a 

  requires: bash coreutils

line.  That's a recursion.  Won't the order in which the postinstall
files are running be pure coincidence?

Shouldn't the requires line be removed in base-cygwin to get this
working reliably?!?  Geeh, I'm getting headaches.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:28                 ` Corinna Vinschen
  2008-08-15 13:38                   ` Corinna Vinschen
@ 2008-08-15 13:46                   ` Brian Dessent
  2008-08-15 14:00                     ` Corinna Vinschen
  2008-08-15 14:04                     ` Dave Korn
  1 sibling, 2 replies; 90+ messages in thread
From: Brian Dessent @ 2008-08-15 13:46 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote:

> What I still don't get is that, in my local install, the update-info-dir,
> coreutils, and terminfo postinstall scripts ran before the bash postinstall
> script, even though all of them list bash as requirement.  Any idea?

It's a circular dependency -- _update-info-dir and bash both list each
other as requirements.  In such a situation with loops it's impossible
to give a topological ordering that satisfies both constraints, so it
comes down to chance (or rather the order that things are evaluated) as
to which goes first.  It looks like _update-info-dir happens to get to
the top.

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 11:56         ` Corinna Vinschen
  2008-08-15 12:39           ` Corinna Vinschen
@ 2008-08-15 13:58           ` Dr. Volker Zell
  2008-08-15 14:05             ` Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Dr. Volker Zell @ 2008-08-15 13:58 UTC (permalink / raw)
  To: cygwin-apps

>>>>> Corinna Vinschen writes:

    > On Aug 15 13:46, Dr. Volker Zell wrote:
    >> >>>>> Corinna Vinschen writes:
    >> 
    >> > Hi,
    >> > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
    >> 
    >> 
    >> vzell@xp /
    >> $ ls -lt
    >> ls: reading directory .: Bad address

    > Is that just an accident or are you trying to tell me something else
    > with this mail?  Where's the message?

It was inline in the dir listing:

drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 cygdrive             <-- Is this directory really needed

Ciao
  Volker
  

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:46                   ` Brian Dessent
@ 2008-08-15 14:00                     ` Corinna Vinschen
  2008-08-15 14:16                       ` Brian Dessent
  2008-08-15 14:04                     ` Dave Korn
  1 sibling, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 14:00 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 06:45, Brian Dessent wrote:
> Corinna Vinschen wrote:
> 
> > What I still don't get is that, in my local install, the update-info-dir,
> > coreutils, and terminfo postinstall scripts ran before the bash postinstall
> > script, even though all of them list bash as requirement.  Any idea?
> 
> It's a circular dependency -- _update-info-dir and bash both list each
> other as requirements.  In such a situation with loops it's impossible
> to give a topological ordering that satisfies both constraints, so it
> comes down to chance (or rather the order that things are evaluated) as
> to which goes first.  It looks like _update-info-dir happens to get to
> the top.

I don't see _update-info-dir in the bash requires.

However, when looking through the dependencies, I see more problems.

  cygwin requires base-passwd

  base-passwd requires bash

  bash requires cygwin

We really need a strategy to fix the dependencies so that postinstall
scripts of crucial packages run first.  And base-cygwin should run
before every other package.

Any chance we can discuss this on IRC (freenode: #cygwin-developers)?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:17               ` Eric Blake
  2008-08-15 13:28                 ` Corinna Vinschen
@ 2008-08-15 14:01                 ` Corinna Vinschen
  1 sibling, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 14:01 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 07:16, Eric Blake wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> According to Corinna Vinschen on 8/15/2008 7:13 AM:
> >>
> >> So, how can we make sure that the 000-cygwin-post-install.sh script
> >> from the base-cygwin package runs as the first script?  Does it work
> >> to make bash depend on base-cygwin?
> > 
> > Eric?  Is the latter feasible?  I created the 000-cygwin-post-install.sh
> > in a way so that it only requires bash itself, not any coreutils tool.
> 
> I don't know setup.exe well enough to say if that extra dependency will
> help, but a) it can't hurt, and b) it's worth a shot.  I've tweaked the
> setup.hint in release-2 accordingly.

I removed this again.  As long as we have circular dependencies, it
doesn't look like a solid solution.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* RE: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:46                   ` Brian Dessent
  2008-08-15 14:00                     ` Corinna Vinschen
@ 2008-08-15 14:04                     ` Dave Korn
  2008-08-15 14:11                       ` Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Dave Korn @ 2008-08-15 14:04 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 1233 bytes --]

Brian Dessent wrote on 15 August 2008 14:46:

> Corinna Vinschen wrote:
> 
>> What I still don't get is that, in my local install, the update-info-dir,
>> coreutils, and terminfo postinstall scripts ran before the bash
>> postinstall script, even though all of them list bash as requirement. 
>> Any idea? 
> 
> It's a circular dependency -- _update-info-dir and bash both list each
> other as requirements.  

  And not the only one; see my graph for an illustration.  (That's a
manually-extracted subgraph of the whole dependency mesh, but 'complete' in
the sense that I've only omitted incoming dependencies).

> In such a situation with loops it's impossible
> to give a topological ordering that satisfies both constraints, so it
> comes down to chance (or rather the order that things are evaluated) as
> to which goes first.  It looks like _update-info-dir happens to get to
> the top.

  I think that the recent change to the depth that setup follows
dependencies may well have changed the number of times it cycles round any
given loop and therefore changed which dependency it ends up thinking is the
lowest when it hits that limit and stops cycling.


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

[-- Attachment #2: setup3.dot.png --]
[-- Type: image/png, Size: 28852 bytes --]

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 13:58           ` Dr. Volker Zell
@ 2008-08-15 14:05             ` Corinna Vinschen
  0 siblings, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 14:05 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 15:57, Dr. Volker Zell wrote:
> >>>>> Corinna Vinschen writes:
> 
>     > On Aug 15 13:46, Dr. Volker Zell wrote:
>     >> >>>>> Corinna Vinschen writes:
>     >> 
>     >> > Hi,
>     >> > I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
>     >> 
>     >> 
>     >> vzell@xp /
>     >> $ ls -lt
>     >> ls: reading directory .: Bad address
> 
>     > Is that just an accident or are you trying to tell me something else
>     > with this mail?  Where's the message?
> 
> It was inline in the dir listing:
> 
> drwxr-xr-x+ 1 vzell Users    0 Aug 15 10:41 cygdrive             <-- Is this directory really needed

I didn't see that.  I also don't know what creates the /cygdrive dir.
My base-cygwin postinstall script certainly doesn't.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 14:04                     ` Dave Korn
@ 2008-08-15 14:11                       ` Corinna Vinschen
  2008-08-15 14:18                         ` Dave Korn
  2008-08-16 12:26                         ` Dave Korn
  0 siblings, 2 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 14:11 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 15:03, Dave Korn wrote:
> Brian Dessent wrote on 15 August 2008 14:46:
> 
> > Corinna Vinschen wrote:
> > 
> >> What I still don't get is that, in my local install, the update-info-dir,
> >> coreutils, and terminfo postinstall scripts ran before the bash
> >> postinstall script, even though all of them list bash as requirement. 
> >> Any idea? 
> > 
> > It's a circular dependency -- _update-info-dir and bash both list each
> > other as requirements.  
> 
>   And not the only one; see my graph for an illustration.  (That's a
> manually-extracted subgraph of the whole dependency mesh, but 'complete' in
> the sense that I've only omitted incoming dependencies).

Yuk!  Would it help if the base-* packages have no dependencies at all
and cygwin itself depends on the base-* packages?  How would that change
your graph (and, can you create it for the release-2 dir, please?)


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 14:00                     ` Corinna Vinschen
@ 2008-08-15 14:16                       ` Brian Dessent
  2008-08-15 14:22                         ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Brian Dessent @ 2008-08-15 14:16 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote:

> I don't see _update-info-dir in the bash requires.

Are you looking at the setup.hint or the generated setup.ini?  IIRC it's
added by upset automatically if it detects the package has .info files.

> However, when looking through the dependencies, I see more problems.
> 
>   cygwin requires base-passwd
> 
>   base-passwd requires bash
> 
>   bash requires cygwin
> 
> We really need a strategy to fix the dependencies so that postinstall
> scripts of crucial packages run first.  And base-cygwin should run
> before every other package.

Didn't Eric upload a new bash package that is postinstal-less?  Or is
there an older one in release-2/ that shadows the newer one in release/?

To make base-cygwin run first, it should suffice to list it as a
dependency of e.g. bash or cygwin and to have it not depend on
anything.  Rationale: its dependencies (bash and coreutils) are in Base
and should be installed regardless so it shouldn't hurt to not list
them.  All listing them does is cause loops.

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* RE: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 14:11                       ` Corinna Vinschen
@ 2008-08-15 14:18                         ` Dave Korn
  2008-08-16 12:26                         ` Dave Korn
  1 sibling, 0 replies; 90+ messages in thread
From: Dave Korn @ 2008-08-15 14:18 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote on 15 August 2008 15:12:

> Yuk!  Would it help if the base-* packages have no dependencies at all
> and cygwin itself depends on the base-* packages?  How would that change
> your graph (and, can you create it for the release-2 dir, please?)

  I shouldn't even be taking five minutes out to write emails right now, so
apologies in advance, I'm going back off the air and will talk to everyone
at the weekend.  But yes, NP.

  TGIF!

    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 14:16                       ` Brian Dessent
@ 2008-08-15 14:22                         ` Corinna Vinschen
  0 siblings, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-15 14:22 UTC (permalink / raw)
  To: cygwin-apps

On Aug 15 07:15, Brian Dessent wrote:
> Corinna Vinschen wrote:
> 
> > I don't see _update-info-dir in the bash requires.
> 
> Are you looking at the setup.hint or the generated setup.ini?  IIRC it's
> added by upset automatically if it detects the package has .info files.
> 
> > However, when looking through the dependencies, I see more problems.
> > 
> >   cygwin requires base-passwd
> > 
> >   base-passwd requires bash
> > 
> >   bash requires cygwin
> > 
> > We really need a strategy to fix the dependencies so that postinstall
> > scripts of crucial packages run first.  And base-cygwin should run
> > before every other package.
> 
> Didn't Eric upload a new bash package that is postinstal-less?  Or is
> there an older one in release-2/ that shadows the newer one in release/?
> 
> To make base-cygwin run first, it should suffice to list it as a
> dependency of e.g. bash or cygwin and to have it not depend on
> anything.  Rationale: its dependencies (bash and coreutils) are in Base
> and should be installed regardless so it shouldn't hurt to not list
> them.  All listing them does is cause loops.

Ok, I changed the requires in release-2 as follows:

  cygwin      requries: base-passwd base-cygwin
  base-passwd requires: base-cygwin
  base-cygwin requires: nothing

I left base-files out of the picture for now because it also depends on
findutils and sed.  I hope that won't hurt.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-13 10:20     ` New Setup for Cygwin 1.7 on cygwin.com Corinna Vinschen
                         ` (2 preceding siblings ...)
  2008-08-15 11:47       ` Dr. Volker Zell
@ 2008-08-15 19:24       ` Eric Blake
  2008-08-15 19:34         ` Yaakov (Cygwin Ports)
  2008-08-15 19:37         ` Christopher Faylor
  3 siblings, 2 replies; 90+ messages in thread
From: Eric Blake @ 2008-08-15 19:24 UTC (permalink / raw)
  To: cygwin-apps, cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Corinna Vinschen on 8/13/2008 4:20 AM:
> Hi,
> 
> I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
> 
> You can find it here:  http://cygwin.com/setup-1.7.exe 

Any reason this version insists on maximizing itself when going to the
package selection screen, rather than remaining at the size of the
previous screen?

- --
Don't work too hard, make some time for fun as well!

Eric Blake             ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkil17kACgkQ84KuGfSFAYDTggCfXQKYt/+I1ujRtT6Hf9Pwdpk1
hoUAoJlSSJTltdaJf9JNEzq4y+hdz6ns
=m257
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 19:24       ` Eric Blake
@ 2008-08-15 19:34         ` Yaakov (Cygwin Ports)
  2008-08-15 19:37         ` Christopher Faylor
  1 sibling, 0 replies; 90+ messages in thread
From: Yaakov (Cygwin Ports) @ 2008-08-15 19:34 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Eric Blake wrote:
| Any reason this version insists on maximizing itself when going to the
| package selection screen, rather than remaining at the size of the
| previous screen?

Because someone programmed it that way. :-)

For the record, while it caught me by surprise the first time, I
actually like it.  Perhaps it should be part of the release
announcements though as a new feature.


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkil2e0ACgkQpiWmPGlmQSPuzACgg19xzfRjgNrLjoxZXoUEyF/u
MGwAnRSMM3dXvVauMguhEZcS3EnkR5JH
=RzWG
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 19:24       ` Eric Blake
  2008-08-15 19:34         ` Yaakov (Cygwin Ports)
@ 2008-08-15 19:37         ` Christopher Faylor
  2008-08-16 13:38           ` Dave Korn
  1 sibling, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-15 19:37 UTC (permalink / raw)
  To: cygwin-apps

On Fri, Aug 15, 2008 at 01:23:38PM -0600, Eric Blake wrote:
>According to Corinna Vinschen on 8/13/2008 4:20 AM:
>> Hi,
>> 
>> I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
>> 
>> You can find it here:  http://cygwin.com/setup-1.7.exe 
>
>Any reason this version insists on maximizing itself when going to the
>package selection screen, rather than remaining at the size of the
>previous screen?

Yep.  It's a feature designed to allow you to see all of the package
information.  I prefer this to manual resizing from the 640x480 size
every time.  Of course, you can always just click on the button in the
upper right corner of the screen if it bothers you.

I played around with just making all of the screens 1024x768 but I no
longer have a graphical way of handling dialog boxes and moving controls
around on the dialog boxes turned out to be quite tedious.  Since we're
using a property sheet there doesn't seem to be any easy way to make one
screen larger than the ones that preceded it.

My internal cygwin mailing list simulator also convinced me that there
would be an eventual complaint from someone with a small screen so it
seemed like maximizing this screen was the best compromise as it is
really the only screen that suffers from a small size, unless you want
to type in a really long path for your cygwin root.

The other change that I made was to have setup.exe check for last-*
(last-action, last-cache, etc.) information first from the download
directory and then from the etc directory.  Checking the closest
directory first seems to make more sense and I need this for another
project that I'm working on.  I hope that no one would actually notice
this change.  My internal simulator hasn't set off any alarms but
I guess we'll see.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* RE: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 14:11                       ` Corinna Vinschen
  2008-08-15 14:18                         ` Dave Korn
@ 2008-08-16 12:26                         ` Dave Korn
  2008-08-19 16:39                           ` Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Dave Korn @ 2008-08-16 12:26 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 1328 bytes --]

Corinna Vinschen wrote on 15 August 2008 15:12:

> Yuk!  Would it help if the base-* packages have no dependencies at all
> and cygwin itself depends on the base-* packages?  How would that change
> your graph (and, can you create it for the release-2 dir, please?)

  Still not got a lot of time right now, but here's the script that makes
dotty output.  (Don't try sending .dot files to the lists, BTW - the spam
filter thinks they're MS Word template files!  Fortunately the extension
isn't meaningful to graphviz anyway.)

  You'll find it generates a HUUUUuuuuuge graph that's very hard to manage -
too big for the jpg renderer, as a png it crashed my viewer, and by the time
you've blown enough of it up to read the labels you can hardly see what's
what.  I manually extracted a subgraph by copying bits of text from the
script-generated file into a fresh file.  Each package comes as a separate
hunk with its dependencies listed, so I took a few of the low-level packages
(such as cygwin and base-files), then iteratively copied the hunks for all
the dependencies they listed, until there were no unsatisfied dependencies
left in the new graph.  It didn't take long to do, so I didn't bother
scripting it, but it could easily be added as a feature.


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

[-- Attachment #2: setupini2dot.pl --]
[-- Type: application/octet-stream, Size: 651 bytes --]

#!perl

use strict;

my $packagename;
my $requires;

print "digraph setup_ini {\n";

while (<>)
{
  if (/^@/)
  {
    # Get current line
    $packagename=$_;
    # Strip leading @ and space
    $packagename=~s/^@ //;
    # Remove EOL for concatenation later
    chomp($packagename);
  }

  if (/^requires: /)
  {
    $requires=$_;
    # Strip non-package name header
    $requires=~ s/^requires: //;
    # and EOL
    chomp($requires);
    # Put quotes around each name
    $requires=~ s/([^ ]+)/"$packagename" -> "\1" ;\n/g;
    print $requires . "\n";
  }
}
continue
{
  close ARGV if eof;
}

print "}\n";



^ permalink raw reply	[flat|nested] 90+ messages in thread

* RE: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-15 19:37         ` Christopher Faylor
@ 2008-08-16 13:38           ` Dave Korn
  0 siblings, 0 replies; 90+ messages in thread
From: Dave Korn @ 2008-08-16 13:38 UTC (permalink / raw)
  To: cygwin-apps

Christopher Faylor wrote on 15 August 2008 20:37:

> On Fri, Aug 15, 2008 at 01:23:38PM -0600, Eric Blake wrote:
>> According to Corinna Vinschen on 8/13/2008 4:20 AM:
>>> Hi,
>>> 
>>> I just uploaded a new setup-1.7.exe to install Cygwin 1.7.
>>> 
>>> You can find it here:  http://cygwin.com/setup-1.7.exe
>> 
>> Any reason this version insists on maximizing itself when going to the
>> package selection screen, rather than remaining at the size of the
>> previous screen?
> 
> Yep.  It's a feature designed to allow you to see all of the package
> information.  I prefer this to manual resizing from the 640x480 size
> every time.  Of course, you can always just click on the button in the
> upper right corner of the screen if it bothers you.

  I meant to bring this up when I noticed it.

  :-(  It's hideous.  It's a violation of good UI principles.  Windows that
do things like resizing themselves or changing depth order or stealing the
focus without an explicit instruction from the user to do so are obnoxious.
If a user has a lot of mirror subdirs in their local cache, parsing many
setup.inis can take a significant time, and they may have switched to
another application; when it suddenly jumps up in size, they aren't
expecting it and may easily find themselves pressing a button they hadn't
inte  AARGH I'M BLIND IT JUST LEAPT IN FRONT OF ME BUT DIDN'T TAKE THE FOCUS
WHERE AM I WHAT'S GOING ON!?!?! 

  Sorry about that.  Setup.exe just leapt to the front of the sort order and
maximized itself, completely obscuring the window in which I was typing this
email, although it didn't take the focus and I had no idea what was going on
for a moment.  It had been quietly sitting away in the background chundering
away to itself while I was typing, and then WHAM!  It's all like "HEY
EVERYBODY LOOK AT ME NO ME ME MEMEME MEEEEEE!".

  Can you tell I don't like it?  ;-)

  Seriously: why don't we just have it remember the user's last setting?
Like just about every other window in just about every other application
does?

    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-16 12:26                         ` Dave Korn
@ 2008-08-19 16:39                           ` Corinna Vinschen
  2008-08-20  1:49                             ` Brian Dessent
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-19 16:39 UTC (permalink / raw)
  To: cygwin-apps

On Aug 16 13:25, Dave Korn wrote:
> Corinna Vinschen wrote on 15 August 2008 15:12:
> 
> > Yuk!  Would it help if the base-* packages have no dependencies at all
> > and cygwin itself depends on the base-* packages?  How would that change
> > your graph (and, can you create it for the release-2 dir, please?)
> 
>   Still not got a lot of time right now, but here's the script that makes
> dotty output.  (Don't try sending .dot files to the lists, BTW - the spam
> filter thinks they're MS Word template files!  Fortunately the extension
> isn't meaningful to graphviz anyway.)

Here's what setup tells us right now about the dependency order when
performing a pure Base install from scratch:

warning: LOG: 1 Dependency order of packages: libintl3 texinfo
_update-info-dir gawk tzcode libiconv2 coreutils terminfo libncurses8
libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff gzip
termcap libpcre0 less man cygwin-doc editrights grep ipc-utils login
rebase run tar which
                                
How in the world can cygwin and the base-cygwin/base-passwd packages be
so far from the root in the dependency tree?  Why is libintl3 in the list
but libintl8 isn't?  Is the dependecy mechanism really reliable?

Last but not least, how do we disentangle this mess?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-19 16:39                           ` Corinna Vinschen
@ 2008-08-20  1:49                             ` Brian Dessent
  2008-08-20  2:46                               ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Brian Dessent @ 2008-08-20  1:49 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote:

> How in the world can cygwin and the base-cygwin/base-passwd packages be
> so far from the root in the dependency tree?  Why is libintl3 in the list
> but libintl8 isn't?  Is the dependecy mechanism really reliable?

Essentially, because the Cygwin package depends on _update_info_dir. 
That brings in a dependency on texinfo, which brings in libiconv2,
libintl3, libncurses8.  libncurses8 brings in terminfo which brings in
bash and coreutils which brings in tzcode which brings in gawk.  And
that's pretty much the list of things that run before base-cygwin:

libintl3 texinfo _update-info-dir gawk tzcode libiconv2 coreutils
terminfo libncurses8 libreadline6 bash

You have to remember that the topological ordering code throws out an
edge when it detects a loop.  So if it's looking at the dependencies of
FOO to figure out what to run before FOO's postinstall and it finds a
package that depends on FOO it's going to just silently discard that
edge because there's nothing meaningful it can do with it.  If it
didn't, it would just recurse forever on the loops.  So it doesn't
matter that practically all of the above also depend on 'cygwin', which
would logically mean 'cygwin' should come before them.  But that logic
just leads to infinite recursion; setup has to consider only one edge in
the loop and it chooses whichever one it saw first.

Can we special-case upset not to add _update-info-dir to the Cygwin
package?

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20  1:49                             ` Brian Dessent
@ 2008-08-20  2:46                               ` Christopher Faylor
  2008-08-20  7:56                                 ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-20  2:46 UTC (permalink / raw)
  To: cygwin-apps

On Tue, Aug 19, 2008 at 06:48:44PM -0700, Brian Dessent wrote:
>Can we special-case upset not to add _update-info-dir to the Cygwin
>package?

I'm not a big fan of special casing and in this case I don't have to.
I just added a "noautodep: _update_info_dir" to cygwin's setup.hint.

But we'll still get a dependency loop with base-passwd.  I have removed
that dependency in release.  It looks like this isn't needed in
release-2.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20  2:46                               ` Christopher Faylor
@ 2008-08-20  7:56                                 ` Corinna Vinschen
  2008-08-20 14:40                                   ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-20  7:56 UTC (permalink / raw)
  To: cygwin-apps

On Aug 19 22:46, Christopher Faylor wrote:
> On Tue, Aug 19, 2008 at 06:48:44PM -0700, Brian Dessent wrote:
> >Can we special-case upset not to add _update-info-dir to the Cygwin
> >package?
> 
> I'm not a big fan of special casing and in this case I don't have to.
> I just added a "noautodep: _update_info_dir" to cygwin's setup.hint.

Cool.  I'm curious how this changes the dependency order.

> But we'll still get a dependency loop with base-passwd.  I have removed
> that dependency in release.  It looks like this isn't needed in
> release-2.

I removed all dependencies from release-2/base-passwd except for
base-cygwin a couple of days ago.  Hopefully we get to the point
where the base packages' postinstalls run first.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20  7:56                                 ` Corinna Vinschen
@ 2008-08-20 14:40                                   ` Christopher Faylor
  2008-08-20 14:45                                     ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-20 14:40 UTC (permalink / raw)
  To: cygwin-apps

On Wed, Aug 20, 2008 at 09:57:51AM +0200, Corinna Vinschen wrote:
>On Aug 19 22:46, Christopher Faylor wrote:
>> On Tue, Aug 19, 2008 at 06:48:44PM -0700, Brian Dessent wrote:
>> >Can we special-case upset not to add _update-info-dir to the Cygwin
>> >package?
>> 
>> I'm not a big fan of special casing and in this case I don't have to.
>> I just added a "noautodep: _update_info_dir" to cygwin's setup.hint.
>
>Cool.  I'm curious how this changes the dependency order.
>
>> But we'll still get a dependency loop with base-passwd.  I have removed
>> that dependency in release.  It looks like this isn't needed in
>> release-2.
>
>I removed all dependencies from release-2/base-passwd except for
>base-cygwin a couple of days ago.  Hopefully we get to the point
>where the base packages' postinstalls run first.

Keeping a base-dependency in cygwin would make setup want to run base-*
before cygwin, though.  Cygwin doesn't *really* depend on these packages
(it doesn't need them to run) so I don't think they should be a
dependency.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 14:40                                   ` Christopher Faylor
@ 2008-08-20 14:45                                     ` Corinna Vinschen
  2008-08-20 15:17                                       ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-20 14:45 UTC (permalink / raw)
  To: cygwin-apps

On Aug 20 10:39, Christopher Faylor wrote:
> On Wed, Aug 20, 2008 at 09:57:51AM +0200, Corinna Vinschen wrote:
> >On Aug 19 22:46, Christopher Faylor wrote:
> >> On Tue, Aug 19, 2008 at 06:48:44PM -0700, Brian Dessent wrote:
> >> >Can we special-case upset not to add _update-info-dir to the Cygwin
> >> >package?
> >> 
> >> I'm not a big fan of special casing and in this case I don't have to.
> >> I just added a "noautodep: _update_info_dir" to cygwin's setup.hint.
> >
> >Cool.  I'm curious how this changes the dependency order.
> >
> >> But we'll still get a dependency loop with base-passwd.  I have removed
> >> that dependency in release.  It looks like this isn't needed in
> >> release-2.
> >
> >I removed all dependencies from release-2/base-passwd except for
> >base-cygwin a couple of days ago.  Hopefully we get to the point
> >where the base packages' postinstalls run first.
> 
> Keeping a base-dependency in cygwin would make setup want to run base-*
> before cygwin, though.  Cygwin doesn't *really* depend on these packages
> (it doesn't need them to run) so I don't think they should be a
> dependency.

That's the whole idea.  Cygwin itself has no postinstall scripts, but
the base-* scripts should run first.  That's why the dependencies make
sense.  What else packages should depend on the base-* packages to
accomplish this?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 14:45                                     ` Corinna Vinschen
@ 2008-08-20 15:17                                       ` Christopher Faylor
  2008-08-20 15:24                                         ` Corinna Vinschen
  2008-08-20 15:28                                         ` Brian Dessent
  0 siblings, 2 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-20 15:17 UTC (permalink / raw)
  To: cygwin-apps

On Wed, Aug 20, 2008 at 04:46:30PM +0200, Corinna Vinschen wrote:
>On Aug 20 10:39, Christopher Faylor wrote:
>> On Wed, Aug 20, 2008 at 09:57:51AM +0200, Corinna Vinschen wrote:
>> >On Aug 19 22:46, Christopher Faylor wrote:
>> >> On Tue, Aug 19, 2008 at 06:48:44PM -0700, Brian Dessent wrote:
>> >> >Can we special-case upset not to add _update-info-dir to the Cygwin
>> >> >package?
>> >> 
>> >> I'm not a big fan of special casing and in this case I don't have to.
>> >> I just added a "noautodep: _update_info_dir" to cygwin's setup.hint.
>> >
>> >Cool.  I'm curious how this changes the dependency order.
>> >
>> >> But we'll still get a dependency loop with base-passwd.  I have removed
>> >> that dependency in release.  It looks like this isn't needed in
>> >> release-2.
>> >
>> >I removed all dependencies from release-2/base-passwd except for
>> >base-cygwin a couple of days ago.  Hopefully we get to the point
>> >where the base packages' postinstalls run first.
>> 
>> Keeping a base-dependency in cygwin would make setup want to run base-*
>> before cygwin, though.  Cygwin doesn't *really* depend on these packages
>> (it doesn't need them to run) so I don't think they should be a
>> dependency.
>
>That's the whole idea.  Cygwin itself has no postinstall scripts, but
>the base-* scripts should run first.  That's why the dependencies make
>sense.  What else packages should depend on the base-* packages to
>accomplish this?

I thought the whole point was to install cygwin first.  How can you run base
packages first in a new install when there is no cygwin1.dll?

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 15:17                                       ` Christopher Faylor
@ 2008-08-20 15:24                                         ` Corinna Vinschen
  2008-08-20 16:00                                           ` Christopher Faylor
  2008-08-20 16:18                                           ` Charles Wilson
  2008-08-20 15:28                                         ` Brian Dessent
  1 sibling, 2 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-20 15:24 UTC (permalink / raw)
  To: cygwin-apps

On Aug 20 11:17, Christopher Faylor wrote:
> On Wed, Aug 20, 2008 at 04:46:30PM +0200, Corinna Vinschen wrote:
> >On Aug 20 10:39, Christopher Faylor wrote:
> >> On Wed, Aug 20, 2008 at 09:57:51AM +0200, Corinna Vinschen wrote:
> >> >I removed all dependencies from release-2/base-passwd except for
> >> >base-cygwin a couple of days ago.  Hopefully we get to the point
> >> >where the base packages' postinstalls run first.
> >> 
> >> Keeping a base-dependency in cygwin would make setup want to run base-*
> >> before cygwin, though.  Cygwin doesn't *really* depend on these packages
> >> (it doesn't need them to run) so I don't think they should be a
> >> dependency.
> >
> >That's the whole idea.  Cygwin itself has no postinstall scripts, but
> >the base-* scripts should run first.  That's why the dependencies make
> >sense.  What else packages should depend on the base-* packages to
> >accomplish this?
> 
> I thought the whole point was to install cygwin first.  How can you run base
> packages first in a new install when there is no cygwin1.dll?

The installation order doesn't matter.  Only the order in which scripts
run matters.  And I don't see another way how to make sure that the
base-* scripts always run first.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 15:17                                       ` Christopher Faylor
  2008-08-20 15:24                                         ` Corinna Vinschen
@ 2008-08-20 15:28                                         ` Brian Dessent
  2008-08-20 16:03                                           ` Christopher Faylor
  1 sibling, 1 reply; 90+ messages in thread
From: Brian Dessent @ 2008-08-20 15:28 UTC (permalink / raw)
  To: cygwin-apps

Christopher Faylor wrote:

> I thought the whole point was to install cygwin first.  How can you run base
> packages first in a new install when there is no cygwin1.dll?

The ordering only has meaning in the context of running postinstall
scripts, as the postinstall phase doesn't start until after all files
from all packages have been unpacked.

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 15:24                                         ` Corinna Vinschen
@ 2008-08-20 16:00                                           ` Christopher Faylor
  2008-08-20 16:18                                           ` Charles Wilson
  1 sibling, 0 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-20 16:00 UTC (permalink / raw)
  To: cygwin-apps

On Wed, Aug 20, 2008 at 05:25:46PM +0200, Corinna Vinschen wrote:
>On Aug 20 11:17, Christopher Faylor wrote:
>> On Wed, Aug 20, 2008 at 04:46:30PM +0200, Corinna Vinschen wrote:
>> >On Aug 20 10:39, Christopher Faylor wrote:
>> >> On Wed, Aug 20, 2008 at 09:57:51AM +0200, Corinna Vinschen wrote:
>> >> >I removed all dependencies from release-2/base-passwd except for
>> >> >base-cygwin a couple of days ago.  Hopefully we get to the point
>> >> >where the base packages' postinstalls run first.
>> >> 
>> >> Keeping a base-dependency in cygwin would make setup want to run base-*
>> >> before cygwin, though.  Cygwin doesn't *really* depend on these packages
>> >> (it doesn't need them to run) so I don't think they should be a
>> >> dependency.
>> >
>> >That's the whole idea.  Cygwin itself has no postinstall scripts, but
>> >the base-* scripts should run first.  That's why the dependencies make
>> >sense.  What else packages should depend on the base-* packages to
>> >accomplish this?
>> 
>> I thought the whole point was to install cygwin first.  How can you run base
>> packages first in a new install when there is no cygwin1.dll?
>
>The installation order doesn't matter.  Only the order in which scripts
>run matters.  And I don't see another way how to make sure that the
>base-* scripts always run first.

AFAIK, the requires line controls the way that the packages themselves
are installed.  I think it is important that the newest version of
cygwin should be installed first regardless of subsequent install script
processing.  Maybe we need a dummy package to ensure the subsequent ordering
of post-install or we need a postinstall-requires?

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 15:28                                         ` Brian Dessent
@ 2008-08-20 16:03                                           ` Christopher Faylor
  0 siblings, 0 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-20 16:03 UTC (permalink / raw)
  To: cygwin-apps

On Wed, Aug 20, 2008 at 08:27:11AM -0700, Brian Dessent wrote:
>Christopher Faylor wrote:
>
>> I thought the whole point was to install cygwin first.  How can you run base
>> packages first in a new install when there is no cygwin1.dll?
>
>The ordering only has meaning in the context of running postinstall
>scripts, as the postinstall phase doesn't start until after all files
>from all packages have been unpacked.

Ok.  I thought I had a scenario in mind where install order made a
different but you (and Corinna) are right.  It shouldn't make a
difference.

Sorry for the noise.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 15:24                                         ` Corinna Vinschen
  2008-08-20 16:00                                           ` Christopher Faylor
@ 2008-08-20 16:18                                           ` Charles Wilson
  2008-08-20 16:34                                             ` Brian Dessent
  2008-08-20 16:36                                             ` Corinna Vinschen
  1 sibling, 2 replies; 90+ messages in thread
From: Charles Wilson @ 2008-08-20 16:18 UTC (permalink / raw)
  To: CygWin-Apps

Corinna Vinschen wrote:

>> I thought the whole point was to install cygwin first.  How can you run base
>> packages first in a new install when there is no cygwin1.dll?
> 
> The installation order doesn't matter.  Only the order in which scripts
> run matters.  And I don't see another way how to make sure that the
> base-* scripts always run first.

Well, what we have is a dependency-group.  You want cygwin, base-*
installed at the same time. Then you want the base-* postinstall scripts
to run.

Maybe a meta-package?

cygwin : no dependencies
base-* : depends on cygwin
cygwin-meta : depends on cygwin, base-*

everything else, that currently depends on cygwin, depends instead on
cygwin-meta.

====> revision for less ripple:

what we now call the 'cygwin' package gets renamed to 'cygwin-core'
base-*: depend on cygwin-core
the new 'cygwin' package is now a meta-package with dependencies on
cygwin-core and base-*.

everything else continues to depend on cygwin, as before.

The drawback to this plan is:
    cygcheck -cd cygwin
will report the version number of the meta-package, which will probably
be 1.0, and will hardly ever change.




This doesn't solve the loop back to cygwin/bash with base-*:

   base-passwd, setup.hint:
      requries: cygwin bash
      NOTE: uses coreutils (cp, rm, chmod) and sed, but
            does not include them in its requires:.

   base-files, setup.hint
      requries:  cygwin bash findutils sed
      NOTE: uses coreutils, diffutils (uname, [, ln,
                 /bin/echo, /bin/touch,
                 /bin/cp, /bin/cmp, /bin/rm ) but does
                 not include them in its requires:.
      FWIW, does NOT seem to use sed or findutils!

   bash: requires cygwin libintl8 libreadline6
   libintl8: requires cygwin libiconv2
   libreadline6: requires cygwin libncurses8
   libiconv2: requries cygwin
   libncurses8: requires cygwin terminfo
   terminfo: requires bash coreutils
      NOTE: the only reason this pulls in coreutils is because the
      postinstall script does this:
	(cd ${libdir};
	  rm -f terminfo  ; ln -fs ../share/terminfo terminfo ;
	)
      which (a) I need to change to make an absolute link, instead
      of a relative one, and (b) is it really necessary?  Must
      we have a /usr/lib/terminfo/ path?

   <--- HERE --->

   coreutils: requires bash crypt cygwin libiconv2 libintl8 tzcode
   crypt: cygwin
   tzcode: cygwin bash gawk
   gawk: bash cygwin libintl8

   findutils: requires: bash coreutils cygwin libintl8
   sed: requires: bash cygwin libintl3 libiconv2
   libintl3: requires: cygwin libiconv2

   diffutils: requires: bash cygwin libintl2 libiconv2
   libintl2: requires: cygwin libiconv2

But I think it would solve the script execution order issue.  Also, if we
  (a) removed terminfo's postinstall script and coreutils dependency
  (b) removed the useless findutils and sed dependnecy of base-files
then the dependency chain of (base-* + cygwin-core == new cygwin meta
package) would stop at HERE.  This scheme would then rely on the Base
category to ensure that coreutils, findutils, diffutils, sed, and all
their dependencies are all properly installed, which should be safe enough.

Better, in the group above HERE, the following are true;
  (a) DLL packages don't typically have postinstall scripts
  (b) terminfo won't have a postinstall script [1]
  (c) leaving only bash, and base-* postinstall
      (1) but since bash dep on cygwin (meta), which would dep on
          cygwin-core (no postinstall), and base-*, but base-*
          dep on bash...
still leaves a cycle.

Hmm...what if we deliberatly drop the bash dependency from base-*,
relying on the Base category to ensure it gets installed? Then, there
are no loops at all (in the cygwin meta group):

  base-passwd --> cygwin-core <-- base-files
             ^         ^          ^
              \        |         /
               \       |        /
                -----cygwin-----
                       ^
                       |
           bash, coreutils, etc...


--
Chuck

[1] alternatively, if we DO need a /usr/lib/terminfo symlink, then we
can keep the postinstall script but deliberately drop the dependency on
coreutils (relying on Base category). Then, we still guarantee base-*
scripts go first, because terminfo would depend on bash

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 16:18                                           ` Charles Wilson
@ 2008-08-20 16:34                                             ` Brian Dessent
  2008-08-20 16:49                                               ` Charles Wilson
  2008-08-20 16:36                                             ` Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Brian Dessent @ 2008-08-20 16:34 UTC (permalink / raw)
  To: CygWin-Apps

Charles Wilson wrote:

> You want cygwin, base-* installed at the same time.

This sentence doesn't make sense to me.  As if it's possible that some
of these might *not* be installed?  They're all in category Base so
they're all getting selected by setup for install on every run
regardless of anything that the dependencies might have to say on the
matter.  I don't understand why the extra level of complication of
meta-packages or dependency groups is needed; all we need to do is trim
or adjust the dependencies to ensure that base-cygwin's postinstall
sorts to the head of the line.  For these core packages that are in Base
it doesn't really matter that their "requires:" line accurately lists
each thing they need, because they're all getting installed anyway.

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 16:18                                           ` Charles Wilson
  2008-08-20 16:34                                             ` Brian Dessent
@ 2008-08-20 16:36                                             ` Corinna Vinschen
  1 sibling, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-20 16:36 UTC (permalink / raw)
  To: cygwin-apps

On Aug 20 12:17, Charles Wilson wrote:
> This doesn't solve the loop back to cygwin/bash with base-*:
> 
>    base-passwd, setup.hint:
>       requries: cygwin bash
>       NOTE: uses coreutils (cp, rm, chmod) and sed, but
>             does not include them in its requires:.

I'm only looking for the 1.7 dependencies since they are more important
due to fstab (and here especially the /usr/bin and /usr/lib mounts)
created by base-cygwin.

Here's the problem:  There *are* circular dependencies we can't get rid
of.  base-cygwin must run first but requires a shell.  Those circular
dependency problem exists practically in all distros, not only in
Cygwin.

The general idea is that a distro has some sort of base installation,
a set of packages which *must* be installed for the distro to install
correctly.  In Cygwin, that's what the Base category is for.  What we
just have to do is to make sure that the dependencies of all packages in
the Base category make sense.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 16:34                                             ` Brian Dessent
@ 2008-08-20 16:49                                               ` Charles Wilson
  2008-08-20 17:47                                                 ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Charles Wilson @ 2008-08-20 16:49 UTC (permalink / raw)
  To: CygWin-Apps

Brian Dessent wrote:
> For these core packages that are in Base
> it doesn't really matter that their "requires:" line accurately lists
> each thing they need, because they're all getting installed anyway.

Then it's easy.

cygwin: requires base-*
base-*: no requires at all [*]

No other changes. The end.

Since everything else (except -doc packages, I guess) depends on cygwin,
you're done. The base-* postinstall scripts will always run first (and,
I assume, the base-files preremove script will always run last).

--
Chuck

[*] Assumes it does not matter which of the three base-* postinstall
script runs first: passwd-grp.sh, base-files-mketc.sh,
base-files-profile.sh.

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 16:49                                               ` Charles Wilson
@ 2008-08-20 17:47                                                 ` Corinna Vinschen
  2008-08-21 10:09                                                   ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-20 17:47 UTC (permalink / raw)
  To: cygwin-apps

On Aug 20 12:48, Charles Wilson wrote:
> Brian Dessent wrote:
> > For these core packages that are in Base
> > it doesn't really matter that their "requires:" line accurately lists
> > each thing they need, because they're all getting installed anyway.
> 
> Then it's easy.
> 
> cygwin: requires base-*
> base-*: no requires at all [*]
> 
> No other changes. The end.

That's (alomst) exactly as I did it in release-2.  Just additionally

  base-passwd requires: base-cygwin


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-20 17:47                                                 ` Corinna Vinschen
@ 2008-08-21 10:09                                                   ` Corinna Vinschen
  2008-08-21 11:09                                                     ` Charles Wilson
                                                                       ` (2 more replies)
  0 siblings, 3 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-21 10:09 UTC (permalink / raw)
  To: cygwin-apps

On Aug 20 19:48, Corinna Vinschen wrote:
> On Aug 20 12:48, Charles Wilson wrote:
> > Brian Dessent wrote:
> > > For these core packages that are in Base
> > > it doesn't really matter that their "requires:" line accurately lists
> > > each thing they need, because they're all getting installed anyway.
> > 
> > Then it's easy.
> > 
> > cygwin: requires base-*
> > base-*: no requires at all [*]
> > 
> > No other changes. The end.
> 
> That's (alomst) exactly as I did it in release-2.  Just additionally
> 
>   base-passwd requires: base-cygwin

All we did the last couple of days seems to have helped only marginally,
if at all.  This morning I ran a 1.7 Base install from scratch, and the
dependency order is still as screwed up as before:

  warning: LOG: 1 Dependency order of packages: libintl3 texinfo
  _update-info-dir gawk tzcode libiconv2 coreutils terminfo libncurses8
  libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
  ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
  gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
  login rebase run tar which

I followed through the dependencies using a pencil and a sheet of paper
(sorry Dave ;))  and from what I can tell there are two dependency
loops which break the entire dependency order:

  bash    <-> _update_info_dir
  texinfo <-> _update_info_dir

All other dependencies are looking sound from what I can tell.

So, I would like to propose to remove the "requires: bash texinfo" line
from _update_info_dir's setup.hint file.  It appears that these
requirements break the whole ordering.  Maybe we should simply
replace it with "requires: cygwin" instead.

Chris?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 10:09                                                   ` Corinna Vinschen
@ 2008-08-21 11:09                                                     ` Charles Wilson
  2008-08-21 11:19                                                       ` Corinna Vinschen
  2008-08-21 15:02                                                     ` Christopher Faylor
  2008-08-22  1:37                                                     ` Brian Dessent
  2 siblings, 1 reply; 90+ messages in thread
From: Charles Wilson @ 2008-08-21 11:09 UTC (permalink / raw)
  To: CygWin-Apps

Corinna Vinschen wrote:

>   bash    <-> _update_info_dir
>   texinfo <-> _update_info_dir
> 
> All other dependencies are looking sound from what I can tell.
> 
> So, I would like to propose to remove the "requires: bash texinfo" line
> from _update_info_dir's setup.hint file.  It appears that these
> requirements break the whole ordering.  Maybe we should simply
> replace it with "requires: cygwin" instead.

Seems ok to me, but we'd have to put texinfo into Base, in that case.
Otherwise it won't get installed automatically, and _update_info_dir
would fail on a Base-only install.

Aside: since setup.hint allows comments (which do not clutter
setup.ini), we should probably annotate setup.hints whose requires: have
been...manipulated...in odd ways.

e.g.
===== _update_info_dir/setup.hint =====
sdesc: "Generate info/dir file automatically"
category: _PostInstallLast
requires: cygwin
# also requires texinfo bash, but
#   a) both are in Base, so we rely on that
#   b) we don't explicitly require them because that introduces
#      a bad dependency loop with regards to postinstall scripts
autodep: usr/(?:share/)?info/.*
incver_ifdep: yes
# verpat: (_update_info)(dir-\d+-\d+)(.*)


--
Chuck

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 11:09                                                     ` Charles Wilson
@ 2008-08-21 11:19                                                       ` Corinna Vinschen
  0 siblings, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-21 11:19 UTC (permalink / raw)
  To: cygwin-apps

On Aug 21 07:08, Charles Wilson wrote:
> Corinna Vinschen wrote:
> 
> >   bash    <-> _update_info_dir
> >   texinfo <-> _update_info_dir
> > 
> > All other dependencies are looking sound from what I can tell.
> > 
> > So, I would like to propose to remove the "requires: bash texinfo" line
> > from _update_info_dir's setup.hint file.  It appears that these
> > requirements break the whole ordering.  Maybe we should simply
> > replace it with "requires: cygwin" instead.
> 
> Seems ok to me, but we'd have to put texinfo into Base, in that case.
> Otherwise it won't get installed automatically, and _update_info_dir
> would fail on a Base-only install.

Good hint.

> Aside: since setup.hint allows comments (which do not clutter
> setup.ini), we should probably annotate setup.hints whose requires: have
> been...manipulated...in odd ways.
> 
> e.g.
> ===== _update_info_dir/setup.hint =====
> sdesc: "Generate info/dir file automatically"
> category: _PostInstallLast
> requires: cygwin
> # also requires texinfo bash, but
> #   a) both are in Base, so we rely on that
> #   b) we don't explicitly require them because that introduces
> #      a bad dependency loop with regards to postinstall scripts
> autodep: usr/(?:share/)?info/.*
> incver_ifdep: yes
> # verpat: (_update_info)(dir-\d+-\d+)(.*)

Yes, that probably makes sense.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 10:09                                                   ` Corinna Vinschen
  2008-08-21 11:09                                                     ` Charles Wilson
@ 2008-08-21 15:02                                                     ` Christopher Faylor
  2008-08-21 15:04                                                       ` Christopher Faylor
  2008-08-22  1:37                                                     ` Brian Dessent
  2 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-21 15:02 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 21, 2008 at 12:10:59PM +0200, Corinna Vinschen wrote:
>On Aug 20 19:48, Corinna Vinschen wrote:
>> On Aug 20 12:48, Charles Wilson wrote:
>> > Brian Dessent wrote:
>> > > For these core packages that are in Base
>> > > it doesn't really matter that their "requires:" line accurately lists
>> > > each thing they need, because they're all getting installed anyway.
>> > 
>> > Then it's easy.
>> > 
>> > cygwin: requires base-*
>> > base-*: no requires at all [*]
>> > 
>> > No other changes. The end.
>> 
>> That's (alomst) exactly as I did it in release-2.  Just additionally
>> 
>>   base-passwd requires: base-cygwin
>
>All we did the last couple of days seems to have helped only marginally,
>if at all.  This morning I ran a 1.7 Base install from scratch, and the
>dependency order is still as screwed up as before:
>
>  warning: LOG: 1 Dependency order of packages: libintl3 texinfo
>  _update-info-dir gawk tzcode libiconv2 coreutils terminfo libncurses8
>  libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
>  ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
>  gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
>  login rebase run tar which
>
>I followed through the dependencies using a pencil and a sheet of paper
>(sorry Dave ;))  and from what I can tell there are two dependency
>loops which break the entire dependency order:
>
>  bash    <-> _update_info_dir
>  texinfo <-> _update_info_dir
>
>All other dependencies are looking sound from what I can tell.
>
>So, I would like to propose to remove the "requires: bash texinfo" line
>from _update_info_dir's setup.hint file.  It appears that these
>requirements break the whole ordering.  Maybe we should simply
>replace it with "requires: cygwin" instead.
>
>Chris?

Sorry but I think not having _update-info-dir rely on texinfo is not a
good idea.

Can't we just remove the _update-info-dir dependency from bash and
texinfo?

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:02                                                     ` Christopher Faylor
@ 2008-08-21 15:04                                                       ` Christopher Faylor
  2008-08-21 15:13                                                         ` Charles Wilson
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-21 15:04 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 21, 2008 at 11:02:06AM -0400, Christopher Faylor wrote:
>On Thu, Aug 21, 2008 at 12:10:59PM +0200, Corinna Vinschen wrote:
>>On Aug 20 19:48, Corinna Vinschen wrote:
>>> On Aug 20 12:48, Charles Wilson wrote:
>>> > Brian Dessent wrote:
>>> > > For these core packages that are in Base
>>> > > it doesn't really matter that their "requires:" line accurately lists
>>> > > each thing they need, because they're all getting installed anyway.
>>> > 
>>> > Then it's easy.
>>> > 
>>> > cygwin: requires base-*
>>> > base-*: no requires at all [*]
>>> > 
>>> > No other changes. The end.
>>> 
>>> That's (alomst) exactly as I did it in release-2.  Just additionally
>>> 
>>>   base-passwd requires: base-cygwin
>>
>>All we did the last couple of days seems to have helped only marginally,
>>if at all.  This morning I ran a 1.7 Base install from scratch, and the
>>dependency order is still as screwed up as before:
>>
>>  warning: LOG: 1 Dependency order of packages: libintl3 texinfo
>>  _update-info-dir gawk tzcode libiconv2 coreutils terminfo libncurses8
>>  libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
>>  ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
>>  gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
>>  login rebase run tar which
>>
>>I followed through the dependencies using a pencil and a sheet of paper
>>(sorry Dave ;))  and from what I can tell there are two dependency
>>loops which break the entire dependency order:
>>
>>  bash    <-> _update_info_dir
>>  texinfo <-> _update_info_dir
>>
>>All other dependencies are looking sound from what I can tell.
>>
>>So, I would like to propose to remove the "requires: bash texinfo" line
>>from _update_info_dir's setup.hint file.  It appears that these
>>requirements break the whole ordering.  Maybe we should simply
>>replace it with "requires: cygwin" instead.
>>
>>Chris?
>
>Sorry but I think not having _update-info-dir rely on texinfo is not a
>good idea.

To rephrase: I think it is a bad idea to remove dependencies from
_update-info-dir since so many things rely on it.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:04                                                       ` Christopher Faylor
@ 2008-08-21 15:13                                                         ` Charles Wilson
  2008-08-21 15:19                                                           ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Charles Wilson @ 2008-08-21 15:13 UTC (permalink / raw)
  To: CygWin-Apps

Christopher Faylor wrote:

> To rephrase: I think it is a bad idea to remove dependencies from
> _update-info-dir since so many things rely on it.

Unless:

  1) all of _update-info-dir's dependencies are already satisfied by the
Base category

or

  2) we carefully map the dependency chains of the basic system-setup
packages (cygwin, base-*, a few more?) and deliberately exclude them
from getting _update-info-dir added to their dependency list.

or

  3) somehow add a priority scheme to postinstall scripts, so that in
the event of a cycle, setup "starts" traversing the dependency loop at
the package with the highest priority.

In order of least effort to most, I'd vote #1...

--
Chuck

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:13                                                         ` Charles Wilson
@ 2008-08-21 15:19                                                           ` Corinna Vinschen
  2008-08-21 15:27                                                             ` Corinna Vinschen
  2008-08-21 15:38                                                             ` Christopher Faylor
  0 siblings, 2 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-21 15:19 UTC (permalink / raw)
  To: cygwin-apps

On Aug 21 11:12, Charles Wilson wrote:
> Christopher Faylor wrote:
> 
> > To rephrase: I think it is a bad idea to remove dependencies from
> > _update-info-dir since so many things rely on it.
> 
> Unless:
> 
>   1) all of _update-info-dir's dependencies are already satisfied by the
> Base category
> 
> or
> 
>   2) we carefully map the dependency chains of the basic system-setup
> packages (cygwin, base-*, a few more?) and deliberately exclude them
> from getting _update-info-dir added to their dependency list.
> 
> or
> 
>   3) somehow add a priority scheme to postinstall scripts, so that in
> the event of a cycle, setup "starts" traversing the dependency loop at
> the package with the highest priority.
> 
> In order of least effort to most, I'd vote #1...

Full ACK.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:19                                                           ` Corinna Vinschen
@ 2008-08-21 15:27                                                             ` Corinna Vinschen
  2008-08-22  1:43                                                               ` Eric Blake
  2008-08-21 15:38                                                             ` Christopher Faylor
  1 sibling, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-21 15:27 UTC (permalink / raw)
  To: cygwin-apps

On Aug 21 17:20, Corinna Vinschen wrote:
> On Aug 21 11:12, Charles Wilson wrote:
> > Christopher Faylor wrote:
> > 
> > > To rephrase: I think it is a bad idea to remove dependencies from
> > > _update-info-dir since so many things rely on it.
> > 
> > Unless:
> > 
> >   1) all of _update-info-dir's dependencies are already satisfied by the
> > Base category
> > [...]
> > In order of least effort to most, I'd vote #1...
> 
> Full ACK.

There's also the fact that neither bash nor texinfo have postinstall
scripts themselves.  So the dependency from _update-info-dir to bash
and texinfo is fully resolved by having bash and texinfo in the Base
category.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:19                                                           ` Corinna Vinschen
  2008-08-21 15:27                                                             ` Corinna Vinschen
@ 2008-08-21 15:38                                                             ` Christopher Faylor
  2008-08-21 15:57                                                               ` Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-21 15:38 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 21, 2008 at 05:20:41PM +0200, Corinna Vinschen wrote:
>On Aug 21 11:12, Charles Wilson wrote:
>> Christopher Faylor wrote:
>> 
>> > To rephrase: I think it is a bad idea to remove dependencies from
>> > _update-info-dir since so many things rely on it.
>> 
>> Unless:
>> 
>>   1) all of _update-info-dir's dependencies are already satisfied by the
>> Base category
>> 
>> or
>> 
>>   2) we carefully map the dependency chains of the basic system-setup
>> packages (cygwin, base-*, a few more?) and deliberately exclude them
>> from getting _update-info-dir added to their dependency list.
>> 
>> or
>> 
>>   3) somehow add a priority scheme to postinstall scripts, so that in
>> the event of a cycle, setup "starts" traversing the dependency loop at
>> the package with the highest priority.
>> 
>> In order of least effort to most, I'd vote #1...
>
>Full ACK.

If only this was a democracy.

I've made the change I mentioned.  Neither bash nor texinfo rely on
_update-info-dir.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:38                                                             ` Christopher Faylor
@ 2008-08-21 15:57                                                               ` Corinna Vinschen
  2008-08-21 16:45                                                                 ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-21 15:57 UTC (permalink / raw)
  To: cygwin-apps

On Aug 21 11:37, Christopher Faylor wrote:
> On Thu, Aug 21, 2008 at 05:20:41PM +0200, Corinna Vinschen wrote:
> >On Aug 21 11:12, Charles Wilson wrote:
> >> Christopher Faylor wrote:
> >> 
> >> > To rephrase: I think it is a bad idea to remove dependencies from
> >> > _update-info-dir since so many things rely on it.
> >> 
> >> Unless:
> >> 
> >>   1) all of _update-info-dir's dependencies are already satisfied by the
> >> Base category
> >> 
> >> or
> >> 
> >>   2) we carefully map the dependency chains of the basic system-setup
> >> packages (cygwin, base-*, a few more?) and deliberately exclude them
> >> from getting _update-info-dir added to their dependency list.
> >> 
> >> or
> >> 
> >>   3) somehow add a priority scheme to postinstall scripts, so that in
> >> the event of a cycle, setup "starts" traversing the dependency loop at
> >> the package with the highest priority.
> >> 
> >> In order of least effort to most, I'd vote #1...
> >
> >Full ACK.
> 
> If only this was a democracy.

???

> I've made the change I mentioned.  Neither bash nor texinfo rely on
> _update-info-dir.

I don't think this is the right solution.  How does that help with other
loops?  I only checked packages which were in front of the cygwin
package in the dependency order for a plain Base install.  The list of
dependencies for a full install is much bigger.

You're fixing single symptoms, rather than taking out the core problem.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:57                                                               ` Corinna Vinschen
@ 2008-08-21 16:45                                                                 ` Christopher Faylor
  0 siblings, 0 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-21 16:45 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 21, 2008 at 05:58:39PM +0200, Corinna Vinschen wrote:
>You're fixing single symptoms, rather than taking out the core problem.

The proposed fix is to remove *valid* dependencies because they are
causing setup.exe to behave in ways that are undesirable.  That is not
an actual fix for the core problem.  It's a band-aid.

If the dependencies for _update-info-dir were removed and someone
carefully unselected everything and selected only, say, bash and
openssh, trusting setup.exe dependency handling, then the end result
would be an _update-info-dir postinstall that displays errors.

If bash was made to not rely on _update-info-dir then there would be no
errors, there would be one less package to download, and "info bash"
would still work but "info" would not.  I think that's a lot more
desirable than a postinstall script that shows inexplicable errors.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 10:09                                                   ` Corinna Vinschen
  2008-08-21 11:09                                                     ` Charles Wilson
  2008-08-21 15:02                                                     ` Christopher Faylor
@ 2008-08-22  1:37                                                     ` Brian Dessent
  2008-08-22  7:44                                                       ` Corinna Vinschen
  2 siblings, 1 reply; 90+ messages in thread
From: Brian Dessent @ 2008-08-22  1:37 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote:

> All we did the last couple of days seems to have helped only marginally,
> if at all.  This morning I ran a 1.7 Base install from scratch, and the
> dependency order is still as screwed up as before:

But base-cygwin still has "requires: bash coreutils".  That's just going
to pull in _update-info-dir and mess everything up.  Remove that and we
should be fine without messing with _update-info-dir's requires line.

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-21 15:27                                                             ` Corinna Vinschen
@ 2008-08-22  1:43                                                               ` Eric Blake
  2008-08-22  2:07                                                                 ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Eric Blake @ 2008-08-22  1:43 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Corinna Vinschen on 8/21/2008 9:28 AM:
> 
> There's also the fact that neither bash nor texinfo have postinstall
> scripts themselves.

Actually, bash does.  But as of my most recent build, it only ensures that
/dev/stdin and friends exist (hmm, I haven't validated whether that still
works with /etc/fstab...).  In other words, now that /bin/sh is unpacked
prior to any postinstall scripts, it no longer matters whether other
packages' postinstalls run before or after bash, unless their postinstall
wants to use /dev/stdin (unlikely).

- --
Don't work too hard, make some time for fun as well!

Eric Blake             ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkiuGYcACgkQ84KuGfSFAYD+UQCfdtKxBO/bk2g9Vym6BADmD3eG
8dwAoL7KPgZQ4xZPQMcg4x/02yC2g7ZE
=lSk1
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  1:43                                                               ` Eric Blake
@ 2008-08-22  2:07                                                                 ` Christopher Faylor
  0 siblings, 0 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-22  2:07 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 21, 2008 at 07:42:31PM -0600, Eric Blake wrote:
>According to Corinna Vinschen on 8/21/2008 9:28 AM:
>>There's also the fact that neither bash nor texinfo have postinstall
>>scripts themselves.
>
>Actually, bash does.  But as of my most recent build, it only ensures
>that /dev/stdin and friends exist (hmm, I haven't validated whether
>that still works with /etc/fstab...).  In other words, now that /bin/sh
>is unpacked prior to any postinstall scripts, it no longer matters
>whether other packages' postinstalls run before or after bash, unless
>their postinstall wants to use /dev/stdin (unlikely).

...and, AFAICT, if you remove _update-info-dir's dependencies, the bash
postinstall still runs first.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  1:37                                                     ` Brian Dessent
@ 2008-08-22  7:44                                                       ` Corinna Vinschen
  2008-08-22  7:55                                                         ` Brian Dessent
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-22  7:44 UTC (permalink / raw)
  To: cygwin-apps

On Aug 21 18:36, Brian Dessent wrote:
> Corinna Vinschen wrote:
> 
> > All we did the last couple of days seems to have helped only marginally,
> > if at all.  This morning I ran a 1.7 Base install from scratch, and the
> > dependency order is still as screwed up as before:
> 
> But base-cygwin still has "requires: bash coreutils".

No, it hasn't.  I already removed this dependency a week ago.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  7:44                                                       ` Corinna Vinschen
@ 2008-08-22  7:55                                                         ` Brian Dessent
  2008-08-22  8:23                                                           ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Brian Dessent @ 2008-08-22  7:55 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote:

> No, it hasn't.  I already removed this dependency a week ago.

Perhaps something wonky with unionfs is happening then because I
clearly see it in the setup-2.ini on sourceware at this moment:

[briand@sourceware ~/ftp]$ awk '/^@ base-cygwin$/,/^requires:/' setup-2.ini
@ base-cygwin
sdesc: "Upgrade helper scripts from 1.5.x to 1.7.x"
ldesc: "Upgrade helper scripts from 1.5.x to 1.7.x"
category: Base
requires: bash coreutils

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  7:55                                                         ` Brian Dessent
@ 2008-08-22  8:23                                                           ` Corinna Vinschen
  2008-08-22  8:59                                                             ` Brian Dessent
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-22  8:23 UTC (permalink / raw)
  To: cygwin-apps

On Aug 22 00:54, Brian Dessent wrote:
> Corinna Vinschen wrote:
> 
> > No, it hasn't.  I already removed this dependency a week ago.
> 
> Perhaps something wonky with unionfs is happening then because I
> clearly see it in the setup-2.ini on sourceware at this moment:
> 
> [briand@sourceware ~/ftp]$ awk '/^@ base-cygwin$/,/^requires:/' setup-2.ini
> @ base-cygwin
> sdesc: "Upgrade helper scripts from 1.5.x to 1.7.x"
> ldesc: "Upgrade helper scripts from 1.5.x to 1.7.x"
> category: Base
> requires: bash coreutils

Gosh.  You're right.  If you look into the setup.hint file, it's not
there:

  $ ls -l release-2/base-cygwin/setup.hint 
  -rw-r--r--  1 cyguser cygwin 119 Aug 15 14:23 release-2/base-cygwin/setup.hint
  $ cat release-2/base-cygwin/setup.hint 
  sdesc: "Upgrade helper scripts from 1.5.x to 1.7.x"
  ldesc: "Upgrade helper scripts from 1.5.x to 1.7.x"
  category: Base
  $

Why didn't upset pick up the change?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  8:23                                                           ` Corinna Vinschen
@ 2008-08-22  8:59                                                             ` Brian Dessent
  2008-08-22  9:08                                                               ` Corinna Vinschen
  2008-08-22 13:21                                                               ` Christopher Faylor
  0 siblings, 2 replies; 90+ messages in thread
From: Brian Dessent @ 2008-08-22  8:59 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen wrote:

> Why didn't upset pick up the change?

Perhaps it has to do with the design of upset being incremental, i.e.
taking the current setup-2.ini as input and applying updates to it
rather than generating it from whole each time.  It might be confused
upon not seeing a "requires:" at all in the .hint and so it leaves the
existing "requires:" in the .ini unchanged.  If this is the case then
listing an explicit empty "requires:" in the .hint would probably work
around it.  If true then it sounds like more of a bug to fix than
something we want to kludge around.

Brian

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  8:59                                                             ` Brian Dessent
@ 2008-08-22  9:08                                                               ` Corinna Vinschen
  2008-08-25 10:24                                                                 ` Corinna Vinschen
  2008-08-22 13:21                                                               ` Christopher Faylor
  1 sibling, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-22  9:08 UTC (permalink / raw)
  To: cygwin-apps

On Aug 22 01:58, Brian Dessent wrote:
> Corinna Vinschen wrote:
> 
> > Why didn't upset pick up the change?
> 
> Perhaps it has to do with the design of upset being incremental, i.e.
> taking the current setup-2.ini as input and applying updates to it
> rather than generating it from whole each time.  It might be confused
> upon not seeing a "requires:" at all in the .hint and so it leaves the
> existing "requires:" in the .ini unchanged.  If this is the case then
> listing an explicit empty "requires:" in the .hint would probably work

I tried that and it helped.

> around it.  If true then it sounds like more of a bug to fix than
> something we want to kludge around.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  8:59                                                             ` Brian Dessent
  2008-08-22  9:08                                                               ` Corinna Vinschen
@ 2008-08-22 13:21                                                               ` Christopher Faylor
  1 sibling, 0 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-22 13:21 UTC (permalink / raw)
  To: cygwin-apps

On Fri, Aug 22, 2008 at 01:58:48AM -0700, Brian Dessent wrote:
>Corinna Vinschen wrote:
>
>> Why didn't upset pick up the change?
>
>Perhaps it has to do with the design of upset being incremental, i.e.
>taking the current setup-2.ini as input and applying updates to it
>rather than generating it from whole each time.  It might be confused
>upon not seeing a "requires:" at all in the .hint and so it leaves the
>existing "requires:" in the .ini unchanged.  If this is the case then
>listing an explicit empty "requires:" in the .hint would probably work
>around it.  If true then it sounds like more of a bug to fix than
>something we want to kludge around.

It's not really a bug but it isn't needed anymore.  If there are no
dependencies in setup.hint but there are dependencies in setup.ini then
it's assumed that setup.hint is incomplete.

I started looking into removing that behavior last weekend but it never
dawned on me that this is what was happening here.  In theory all that
you have to do is remove the -u option when generating setup so that it
doesn't initially read setup.ini but, when I did that, the resulting
setup.ini was very different and I haven't completed figuring out why.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-22  9:08                                                               ` Corinna Vinschen
@ 2008-08-25 10:24                                                                 ` Corinna Vinschen
  2008-08-25 14:33                                                                   ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-25 10:24 UTC (permalink / raw)
  To: cygwin-apps

On Aug 22 11:09, Corinna Vinschen wrote:
> On Aug 22 01:58, Brian Dessent wrote:
> > Corinna Vinschen wrote:
> > 
> > > Why didn't upset pick up the change?
> > 
> > Perhaps it has to do with the design of upset being incremental, i.e.
> > taking the current setup-2.ini as input and applying updates to it
> > rather than generating it from whole each time.  It might be confused
> > upon not seeing a "requires:" at all in the .hint and so it leaves the
> > existing "requires:" in the .ini unchanged.  If this is the case then
> > listing an explicit empty "requires:" in the .hint would probably work
> 
> I tried that and it helped.

Still no go.  I checked setup-2.ini and it looks almost correct now.
Still, the order in setup is screwed:

warning: LOG: 1 Dependency order of packages: libintl3 texinfo
_update-info-dir gawk tzcode libiconv2 coreutils terminfo libncurses8
libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
login rebase run tar which

I checked the requirements again and tried to do my own hand-crafted
dependency ordering with the least set of depending packages.

base-cygwin     : NO requires
base-passwd     : base-cygwin
cygwin          : base-passwd base-cygwin
libiconv2       : cygwin
libintl8        : cygwin libiconv2
libreadline6    : cygwin libncurses8
bash            : cygwin libintl8 libreadline6 (NO _update-info-dir)
libintl3        : cygwin libiconv2
gawk            : bash cygwin libintl8 _update-info-dir
tzcode          : cygwin bash gawk
coreutils       : bash cygwin libiconv2 libintl8 tzcode _update-info-dir
terminfo        : bash coreutils
libncurses8     : cygwin terminfo
texinfo         : cygwin libiconv2 libintl3 libncurses8 (NO _update-info-dir)
_update-info-dir: texinfo bash

As you can see, there are four loops:

  bash -> libreadline6 -> libncurses8 -> terminfo -> bash

  bash -> libreadline6 -> libncurses8 -> terminfo -> coreutils -> bash

  _update-info-dir -> texinfo -> libncurses8 -> terminfo
  -> coreutils -> _update-info-dir

  _update-info-dir -> texinfo -> libncurses8 -> terminfo
  -> coreutils -> tzcode -> gawk -> _update-info-dir

The crucial package here is apparently terminfo.  The dependency
to bash and coreutils is based on a really tiny script which tries
to create a symlink /usr/lib/terminfo pointing to /usr/share/terminfo.
If the terminfo package would bring this symlink right in the tar
file, the postinstall script could go away, and the dependencies
to bash and coreutils with it.  If terminfo doesn't depend on bash
and coreutils, the dependency order would be changed to:

base-cygwin     : NO requires
terminfo        : NO requires
base-passwd     : base-cygwin
cygwin          : base-passwd base-cygwin
libncurses8     : cygwin terminfo
libiconv2       : cygwin
libintl8        : cygwin libiconv2
libreadline6    : cygwin libncurses8
bash            : cygwin libintl8 libreadline6 (NO _update-info-dir)
libintl3        : cygwin libiconv2
texinfo         : cygwin libiconv2 libintl3 libncurses8 (NO _update-info-dir)
_update-info-dir: texinfo bash
gawk            : bash cygwin libintl8 _update-info-dir
tzcode          : cygwin bash gawk
coreutils       : bash cygwin libiconv2 libintl8 tzcode _update-info-dir

which is a neat tree without loops.

I'm nevertheless wondering about the dependency algorithm in setup.
From a "common sense" perspective, one would expect that the fact that
all packages depend on cygwin should have *some* effect.  The above
result looks rather unstable.  I'm under the impression the algorithm
isn't quite complete.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 10:24                                                                 ` Corinna Vinschen
@ 2008-08-25 14:33                                                                   ` Christopher Faylor
  2008-08-25 15:28                                                                     ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-25 14:33 UTC (permalink / raw)
  To: cygwin-apps

On Mon, Aug 25, 2008 at 12:26:02PM +0200, Corinna Vinschen wrote:
>On Aug 22 11:09, Corinna Vinschen wrote:
>> On Aug 22 01:58, Brian Dessent wrote:
>> > Corinna Vinschen wrote:
>> > 
>> > > Why didn't upset pick up the change?
>> > 
>> > Perhaps it has to do with the design of upset being incremental, i.e.
>> > taking the current setup-2.ini as input and applying updates to it
>> > rather than generating it from whole each time.  It might be confused
>> > upon not seeing a "requires:" at all in the .hint and so it leaves the
>> > existing "requires:" in the .ini unchanged.  If this is the case then
>> > listing an explicit empty "requires:" in the .hint would probably work
>> 
>> I tried that and it helped.
>
>Still no go.  I checked setup-2.ini and it looks almost correct now.
>Still, the order in setup is screwed:
>
>warning: LOG: 1 Dependency order of packages: libintl3 texinfo
>_update-info-dir gawk tzcode libiconv2 coreutils terminfo libncurses8
>libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
>ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
>gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
>login rebase run tar which
>
>I checked the requirements again and tried to do my own hand-crafted
>dependency ordering with the least set of depending packages.
>
>base-cygwin     : NO requires
>base-passwd     : base-cygwin
>cygwin          : base-passwd base-cygwin
>libiconv2       : cygwin
>libintl8        : cygwin libiconv2
>libreadline6    : cygwin libncurses8
>bash            : cygwin libintl8 libreadline6 (NO _update-info-dir)
>libintl3        : cygwin libiconv2
>gawk            : bash cygwin libintl8 _update-info-dir
>tzcode          : cygwin bash gawk
>coreutils       : bash cygwin libiconv2 libintl8 tzcode _update-info-dir
>terminfo        : bash coreutils
>libncurses8     : cygwin terminfo
>texinfo         : cygwin libiconv2 libintl3 libncurses8 (NO _update-info-dir)
>_update-info-dir: texinfo bash
>
>As you can see, there are four loops:
>
>  bash -> libreadline6 -> libncurses8 -> terminfo -> bash
>
>  bash -> libreadline6 -> libncurses8 -> terminfo -> coreutils -> bash
>
>  _update-info-dir -> texinfo -> libncurses8 -> terminfo
>  -> coreutils -> _update-info-dir
>
>  _update-info-dir -> texinfo -> libncurses8 -> terminfo
>  -> coreutils -> tzcode -> gawk -> _update-info-dir
>
>The crucial package here is apparently terminfo.  The dependency
>to bash and coreutils is based on a really tiny script which tries
>to create a symlink /usr/lib/terminfo pointing to /usr/share/terminfo.
>If the terminfo package would bring this symlink right in the tar
>file, the postinstall script could go away, and the dependencies
>to bash and coreutils with it.  If terminfo doesn't depend on bash
>and coreutils, the dependency order would be changed to:
>
>base-cygwin     : NO requires
>terminfo        : NO requires
>base-passwd     : base-cygwin
>cygwin          : base-passwd base-cygwin
>libncurses8     : cygwin terminfo
>libiconv2       : cygwin
>libintl8        : cygwin libiconv2
>libreadline6    : cygwin libncurses8
>bash            : cygwin libintl8 libreadline6 (NO _update-info-dir)
>libintl3        : cygwin libiconv2
>texinfo         : cygwin libiconv2 libintl3 libncurses8 (NO _update-info-dir)
>_update-info-dir: texinfo bash
>gawk            : bash cygwin libintl8 _update-info-dir
>tzcode          : cygwin bash gawk
>coreutils       : bash cygwin libiconv2 libintl8 tzcode _update-info-dir
>
>which is a neat tree without loops.
>
>I'm nevertheless wondering about the dependency algorithm in setup.
From a "common sense" perspective, one would expect that the fact that
>all packages depend on cygwin should have *some* effect.  The above
>result looks rather unstable.  I'm under the impression the algorithm
>isn't quite complete.

It looks that way.

Making tweaks by removing valid dependencies in the hopes of improving
things is not going to be a win in the long run.  We seem to be in a
situation that is only solvable by changing setup.exe.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 14:33                                                                   ` Christopher Faylor
@ 2008-08-25 15:28                                                                     ` Christopher Faylor
  2008-08-25 15:36                                                                       ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-25 15:28 UTC (permalink / raw)
  To: cygwin-apps

On Mon, Aug 25, 2008 at 10:33:00AM -0400, Christopher Faylor wrote:
>Making tweaks by removing valid dependencies in the hopes of improving
>things is not going to be a win in the long run.  We seem to be in a
>situation that is only solvable by changing setup.exe.

That said, however, I can manage to get base-cygwin first in the
dependency order by changing all of the "requires: ...cygwin" to
"requires: ...base-cygwin".  base-passwd is still off in the weeds
somewhere.  Maybe those two packages should just be combined?

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 15:28                                                                     ` Christopher Faylor
@ 2008-08-25 15:36                                                                       ` Corinna Vinschen
  2008-08-25 15:58                                                                         ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-25 15:36 UTC (permalink / raw)
  To: cygwin-apps

On Aug 25 11:27, Christopher Faylor wrote:
> On Mon, Aug 25, 2008 at 10:33:00AM -0400, Christopher Faylor wrote:
> >Making tweaks by removing valid dependencies in the hopes of improving
> >things is not going to be a win in the long run.  We seem to be in a
> >situation that is only solvable by changing setup.exe.
> 
> That said, however, I can manage to get base-cygwin first in the
> dependency order by changing all of the "requires: ...cygwin" to
> "requires: ...base-cygwin".  base-passwd is still off in the weeds
> somewhere.  Maybe those two packages should just be combined?

The terminfo change would be much simpler.  Everything else seems
to fall into place then.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 15:36                                                                       ` Corinna Vinschen
@ 2008-08-25 15:58                                                                         ` Christopher Faylor
  2008-08-25 16:14                                                                           ` Corinna Vinschen
  2008-08-26  8:18                                                                           ` Corinna Vinschen
  0 siblings, 2 replies; 90+ messages in thread
From: Christopher Faylor @ 2008-08-25 15:58 UTC (permalink / raw)
  To: cygwin-apps

On Mon, Aug 25, 2008 at 05:37:53PM +0200, Corinna Vinschen wrote:
>On Aug 25 11:27, Christopher Faylor wrote:
>> On Mon, Aug 25, 2008 at 10:33:00AM -0400, Christopher Faylor wrote:
>> >Making tweaks by removing valid dependencies in the hopes of improving
>> >things is not going to be a win in the long run.  We seem to be in a
>> >situation that is only solvable by changing setup.exe.
>> 
>> That said, however, I can manage to get base-cygwin first in the
>> dependency order by changing all of the "requires: ...cygwin" to
>> "requires: ...base-cygwin".  base-passwd is still off in the weeds
>> somewhere.  Maybe those two packages should just be combined?
>
>The terminfo change would be much simpler.  Everything else seems
>to fall into place then.

I'd consider changes like the terminfo change a rather fragile way of
fixing the problem.  It looks like all we'd need is for libintl8 to add
similar dependencies and everything would fall apart again.  And we
wouldn't know about it for some time.

Creating a package which is designed to be relied on by everyone and is
a "terminal node" should ensure that it is always run first.  upset could
be modified to make sure that everything relies on base-cygwin, too.

Btw, did you try running setup after removing terminfo?  I get this
order (from setup.log.full):

    Dependency order of packages: terminfo libintl3 texinfo
    _update-info-dir gawk tzcode libiconv2 coreutils libncurses8
    libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
    ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
    gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
    login rebase run tar which

If I add a dependency to cygwin, the depedency moves later in the list
but it still is before base-cygwin, which makes no sense to me at all.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 15:58                                                                         ` Christopher Faylor
@ 2008-08-25 16:14                                                                           ` Corinna Vinschen
  2008-08-25 17:22                                                                             ` Christopher Faylor
  2008-08-26  8:18                                                                           ` Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-25 16:14 UTC (permalink / raw)
  To: cygwin-apps

On Aug 25 11:57, Christopher Faylor wrote:
> On Mon, Aug 25, 2008 at 05:37:53PM +0200, Corinna Vinschen wrote:
> >On Aug 25 11:27, Christopher Faylor wrote:
> >> On Mon, Aug 25, 2008 at 10:33:00AM -0400, Christopher Faylor wrote:
> >> >Making tweaks by removing valid dependencies in the hopes of improving
> >> >things is not going to be a win in the long run.  We seem to be in a
> >> >situation that is only solvable by changing setup.exe.
> >> 
> >> That said, however, I can manage to get base-cygwin first in the
> >> dependency order by changing all of the "requires: ...cygwin" to
> >> "requires: ...base-cygwin".  base-passwd is still off in the weeds
> >> somewhere.  Maybe those two packages should just be combined?
> >
> >The terminfo change would be much simpler.  Everything else seems
> >to fall into place then.
> 
> I'd consider changes like the terminfo change a rather fragile way of
> fixing the problem.  It looks like all we'd need is for libintl8 to add
> similar dependencies and everything would fall apart again.  And we
> wouldn't know about it for some time.
> 
> Creating a package which is designed to be relied on by everyone and is
> a "terminal node" should ensure that it is always run first.  upset could
> be modified to make sure that everything relies on base-cygwin, too.
> 
> Btw, did you try running setup after removing terminfo?  I get this

I don't understand.  Removing terminfo from where?  If you mean,
removing its dependencies...

> order (from setup.log.full):
> 
>     Dependency order of packages: terminfo libintl3 texinfo
>     _update-info-dir gawk tzcode libiconv2 coreutils libncurses8
>     libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
>     ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
>     gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
>     login rebase run tar which
> 
> If I add a dependency to cygwin, the depedency moves later in the list
> but it still is before base-cygwin, which makes no sense to me at all.

...then the result is most weird.  The algorithm in setup.exe appears
more and more unreliable.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 16:14                                                                           ` Corinna Vinschen
@ 2008-08-25 17:22                                                                             ` Christopher Faylor
  2008-08-27 17:15                                                                               ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-25 17:22 UTC (permalink / raw)
  To: cygwin-apps

On Mon, Aug 25, 2008 at 06:16:34PM +0200, Corinna Vinschen wrote:
>On Aug 25 11:57, Christopher Faylor wrote:
>> On Mon, Aug 25, 2008 at 05:37:53PM +0200, Corinna Vinschen wrote:
>> >On Aug 25 11:27, Christopher Faylor wrote:
>> >> On Mon, Aug 25, 2008 at 10:33:00AM -0400, Christopher Faylor wrote:
>> >> >Making tweaks by removing valid dependencies in the hopes of improving
>> >> >things is not going to be a win in the long run.  We seem to be in a
>> >> >situation that is only solvable by changing setup.exe.
>> >> 
>> >> That said, however, I can manage to get base-cygwin first in the
>> >> dependency order by changing all of the "requires: ...cygwin" to
>> >> "requires: ...base-cygwin".  base-passwd is still off in the weeds
>> >> somewhere.  Maybe those two packages should just be combined?
>> >
>> >The terminfo change would be much simpler.  Everything else seems
>> >to fall into place then.
>> 
>> I'd consider changes like the terminfo change a rather fragile way of
>> fixing the problem.  It looks like all we'd need is for libintl8 to add
>> similar dependencies and everything would fall apart again.  And we
>> wouldn't know about it for some time.
>> 
>> Creating a package which is designed to be relied on by everyone and is
>> a "terminal node" should ensure that it is always run first.  upset could
>> be modified to make sure that everything relies on base-cygwin, too.
>> 
>> Btw, did you try running setup after removing terminfo?  I get this
>
>I don't understand.  Removing terminfo from where?  If you mean,
>removing its dependencies...

>> order (from setup.log.full):
>> 
>>     Dependency order of packages: terminfo libintl3 texinfo
                                     ^^^^^^^^

I meant removing the dependencies.  Doing so doesn't seem to solve any
problems.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 15:58                                                                         ` Christopher Faylor
  2008-08-25 16:14                                                                           ` Corinna Vinschen
@ 2008-08-26  8:18                                                                           ` Corinna Vinschen
  2008-08-26 12:05                                                                             ` Charles Wilson
  1 sibling, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-26  8:18 UTC (permalink / raw)
  To: cygwin-apps

On Aug 25 11:57, Christopher Faylor wrote:
> On Mon, Aug 25, 2008 at 05:37:53PM +0200, Corinna Vinschen wrote:
> >On Aug 25 11:27, Christopher Faylor wrote:
> >> On Mon, Aug 25, 2008 at 10:33:00AM -0400, Christopher Faylor wrote:
> >> >Making tweaks by removing valid dependencies in the hopes of improving
> >> >things is not going to be a win in the long run.  We seem to be in a
> >> >situation that is only solvable by changing setup.exe.
> >> 
> >> That said, however, I can manage to get base-cygwin first in the
> >> dependency order by changing all of the "requires: ...cygwin" to
> >> "requires: ...base-cygwin".  base-passwd is still off in the weeds
> >> somewhere.  Maybe those two packages should just be combined?
> >
> >The terminfo change would be much simpler.  Everything else seems
> >to fall into place then.
> 
> I'd consider changes like the terminfo change a rather fragile way of
> fixing the problem.

You know I agree wholeheartedly that we must look into setup's
dependency algorithm in the first place, but the change to terminfo
would make sense, nevertheless.  The postinstall script is just
adding a static symlink which could easily be done by adding the
symlink to the tar archive directly.

Chuck, would you mind to do this change, even though it doesn't
help with setup's idea of the dependency order right now?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-26  8:18                                                                           ` Corinna Vinschen
@ 2008-08-26 12:05                                                                             ` Charles Wilson
  2008-08-26 12:13                                                                               ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Charles Wilson @ 2008-08-26 12:05 UTC (permalink / raw)
  To: CygWin-Apps

Corinna Vinschen wrote:
> Chuck, would you mind to do this change, even though it doesn't
> help with setup's idea of the dependency order right now?

Sure, no problem. It's been almost two years since the last update, so I
need to resync with upstream ncurses anyway.  BTW, most linux distros
split the terminfo database into a default set, and then an -extraterms
that has the bulk of the terminal definitions.  Does that sound like a
good idea for us, too?

--
Chuck

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-26 12:05                                                                             ` Charles Wilson
@ 2008-08-26 12:13                                                                               ` Corinna Vinschen
  0 siblings, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-26 12:13 UTC (permalink / raw)
  To: cygwin-apps

On Aug 26 08:00, Charles Wilson wrote:
> Corinna Vinschen wrote:
> > Chuck, would you mind to do this change, even though it doesn't
> > help with setup's idea of the dependency order right now?
> 
> Sure, no problem. It's been almost two years since the last update, so I
> need to resync with upstream ncurses anyway.  BTW, most linux distros
> split the terminfo database into a default set, and then an -extraterms
> that has the bulk of the terminal definitions.  Does that sound like a
> good idea for us, too?

If it's good for Linux...

It would just be a pity to find the cygwin terminfo file only in the
-extraterms package ;)


Corinna


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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-25 17:22                                                                             ` Christopher Faylor
@ 2008-08-27 17:15                                                                               ` Corinna Vinschen
  2008-08-27 18:36                                                                                 ` Christopher Faylor
  2008-08-27 19:08                                                                                 ` Ralph Hempel
  0 siblings, 2 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-27 17:15 UTC (permalink / raw)
  To: cygwin-apps

On Aug 25 13:22, Christopher Faylor wrote:
> On Mon, Aug 25, 2008 at 06:16:34PM +0200, Corinna Vinschen wrote:
> >On Aug 25 11:57, Christopher Faylor wrote:
> >> On Mon, Aug 25, 2008 at 05:37:53PM +0200, Corinna Vinschen wrote:
> >> >On Aug 25 11:27, Christopher Faylor wrote:
> >> >> On Mon, Aug 25, 2008 at 10:33:00AM -0400, Christopher Faylor wrote:
> >> >> >Making tweaks by removing valid dependencies in the hopes of improving
> >> >> >things is not going to be a win in the long run.  We seem to be in a
> >> >> >situation that is only solvable by changing setup.exe.
> >> >> 
> >> >> That said, however, I can manage to get base-cygwin first in the
> >> >> dependency order by changing all of the "requires: ...cygwin" to
> >> >> "requires: ...base-cygwin".  base-passwd is still off in the weeds
> >> >> somewhere.  Maybe those two packages should just be combined?
> >> >
> >> >The terminfo change would be much simpler.  Everything else seems
> >> >to fall into place then.
> >> 
> >> I'd consider changes like the terminfo change a rather fragile way of
> >> fixing the problem.  It looks like all we'd need is for libintl8 to add
> >> similar dependencies and everything would fall apart again.  And we
> >> wouldn't know about it for some time.
> >> 
> >> Creating a package which is designed to be relied on by everyone and is
> >> a "terminal node" should ensure that it is always run first.  upset could
> >> be modified to make sure that everything relies on base-cygwin, too.
> >> 
> >> Btw, did you try running setup after removing terminfo?  I get this
> >
> >I don't understand.  Removing terminfo from where?  If you mean,
> >removing its dependencies...
> 
> >> order (from setup.log.full):
> >> 
> >>     Dependency order of packages: terminfo libintl3 texinfo
>                                      ^^^^^^^^
> 
> I meant removing the dependencies.  Doing so doesn't seem to solve any
> problems.

I looked a while into the algorithm doing the dependency ordering.  What
it does is to create an ordered list sorted by using the algorithm to
find the strongly connected components in a directed graph.  The problem
is that this algorithm works fine and creates a nice dependeny ordered
list unless there are loops in the dependencies.  In this case you just
get a list of strongly connected components in arbitrary order.

Today I tried a simple trick.  The algorithm now iterates through the
package list twice.  The first run only visits the packages which itself
have no dependencies and puts them first in the dependency ordered list.
The second run then visits all other packages.  I didn't expect a lot,
just a bit better.  But the resul was surprisingly good:

  Dependency order of packages: base-cygwin base-passwd cygwin libiconv2
  libintl8 libintl3 alternatives texinfo _update-info-dir gawk tzcode
  coreutils terminfo libncurses8 libreadline6 bash ash findutils sed
  base-files libbz2_1 bzip2 libpopt0 cygutils groff gzip termcap
  libpcre0 less man cygwin-doc editrights grep ipc-utils login rebase
  run tar which

Maybe that's just coincidence.  I think I'll apply this patch and
tomorrow I'll try to add another loop between the above loops.  That
loop would only visit packages which have exactly one dependency, and
that dependency is to one of the packages which have no dependencies.
Or, maybe just visiting packages which have exactly one dependency, no
matter what.

Anybody having another funny idea?


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-27 17:15                                                                               ` Corinna Vinschen
@ 2008-08-27 18:36                                                                                 ` Christopher Faylor
  2008-08-28  7:37                                                                                   ` Corinna Vinschen
  2008-08-27 19:08                                                                                 ` Ralph Hempel
  1 sibling, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-27 18:36 UTC (permalink / raw)
  To: cygwin-apps

On Wed, Aug 27, 2008 at 07:14:32PM +0200, Corinna Vinschen wrote:
>Anybody having another funny idea?

Your patch may be a good idea but I still think that base-cygwin (and
maybe base-passwd) should be a dependency of every package in the
distribution.  I think that every package which currently relies on
cygwin should instead rely on base-cygwin and every package which does
not have a cygwin dependency (and there are a quite a few of those)
should be forced to rely on base-cygwin.

In my experiments, that forces base-cygwin first in the dependency order
without any setup.exe changes required.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-27 17:15                                                                               ` Corinna Vinschen
  2008-08-27 18:36                                                                                 ` Christopher Faylor
@ 2008-08-27 19:08                                                                                 ` Ralph Hempel
  2008-08-28  7:42                                                                                   ` Corinna Vinschen
  1 sibling, 1 reply; 90+ messages in thread
From: Ralph Hempel @ 2008-08-27 19:08 UTC (permalink / raw)
  To: cygwin-apps, cygwin-apps

Corinna Vinschen wrote:

> I looked a while into the algorithm doing the dependency ordering.  What
> it does is to create an ordered list sorted by using the algorithm to
> find the strongly connected components in a directed graph.  The problem
> is that this algorithm works fine and creates a nice dependeny ordered
> list unless there are loops in the dependencies.  In this case you just
> get a list of strongly connected components in arbitrary order.

<SNIP>

> Anybody having another funny idea?

What about detecting a dependency loop by checking to see if the next 
package in the dependency list is already in the list. If there's a loop
then stop.

Or is it possible for there to be new nodes after the first duplicate
dependency?

Ralph

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-27 18:36                                                                                 ` Christopher Faylor
@ 2008-08-28  7:37                                                                                   ` Corinna Vinschen
  2008-08-28 14:18                                                                                     ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-28  7:37 UTC (permalink / raw)
  To: cygwin-apps

On Aug 27 14:35, Christopher Faylor wrote:
> On Wed, Aug 27, 2008 at 07:14:32PM +0200, Corinna Vinschen wrote:
> >Anybody having another funny idea?
> 
> Your patch may be a good idea but I still think that base-cygwin (and
> maybe base-passwd) should be a dependency of every package in the
> distribution.  I think that every package which currently relies on
> cygwin should instead rely on base-cygwin and every package which does
> not have a cygwin dependency (and there are a quite a few of those)
> should be forced to rely on base-cygwin.
> 
> In my experiments, that forces base-cygwin first in the dependency order
> without any setup.exe changes required.

That really shouldn't be necessary.  cygwin is the only package
depending on base-cygwin and if every other package depends on cygwin,
base-cygwin should go first, too.  If it doesn't, it's still a problem
of the dependency algorithm.  If we can't make sure that the algorithm
works as we need it to, it would be a lot of change with questionable
outcome.  You'd never know if a new package or a different package
selection wouldn't screw up the order again.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-27 19:08                                                                                 ` Ralph Hempel
@ 2008-08-28  7:42                                                                                   ` Corinna Vinschen
  2008-08-28 12:30                                                                                     ` Ralph Hempel
  0 siblings, 1 reply; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-28  7:42 UTC (permalink / raw)
  To: cygwin-apps

On Aug 27 15:07, Ralph Hempel wrote:
> Corinna Vinschen wrote:
>
>> I looked a while into the algorithm doing the dependency ordering.  What
>> it does is to create an ordered list sorted by using the algorithm to
>> find the strongly connected components in a directed graph.  The problem
>> is that this algorithm works fine and creates a nice dependeny ordered
>> list unless there are loops in the dependencies.  In this case you just
>> get a list of strongly connected components in arbitrary order.
>
> <SNIP>
>
>> Anybody having another funny idea?
>
> What about detecting a dependency loop by checking to see if the next 
> package in the dependency list is already in the list. If there's a loop
> then stop.

Dependency loops are already detected, just the result is less than
desirable.  It's a stadard problem of loops in directed graphs.  There's
no way to create a topological sort order and the result of any sort
algorithm is basically not determinate.  So you have to put some
additional heuristic into the algorithm to get a sort order you desire.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-28  7:42                                                                                   ` Corinna Vinschen
@ 2008-08-28 12:30                                                                                     ` Ralph Hempel
  0 siblings, 0 replies; 90+ messages in thread
From: Ralph Hempel @ 2008-08-28 12:30 UTC (permalink / raw)
  To: cygwin-apps, cygwin-apps

Corinna Vinschen wrote:
> On Aug 27 15:07, Ralph Hempel wrote:

> Dependency loops are already detected, just the result is less than
> desirable.  It's a stadard problem of loops in directed graphs.  There's
> no way to create a topological sort order and the result of any sort
> algorithm is basically not determinate.  So you have to put some
> additional heuristic into the algorithm to get a sort order you desire.

Ah. Perhaps I should dig into Volume 3 of my Knuth books.....

For what it's worth, I think that your approach of tackling the
algorithm and making it run correctly is going to get a better
end result than hacking at the description file.

Cheers, Ralph

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-28  7:37                                                                                   ` Corinna Vinschen
@ 2008-08-28 14:18                                                                                     ` Christopher Faylor
  2008-08-28 15:01                                                                                       ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-28 14:18 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 28, 2008 at 09:37:10AM +0200, Corinna Vinschen wrote:
>On Aug 27 14:35, Christopher Faylor wrote:
>> On Wed, Aug 27, 2008 at 07:14:32PM +0200, Corinna Vinschen wrote:
>> >Anybody having another funny idea?
>> 
>> Your patch may be a good idea but I still think that base-cygwin (and
>> maybe base-passwd) should be a dependency of every package in the
>> distribution.  I think that every package which currently relies on
>> cygwin should instead rely on base-cygwin and every package which does
>> not have a cygwin dependency (and there are a quite a few of those)
>> should be forced to rely on base-cygwin.
>> 
>> In my experiments, that forces base-cygwin first in the dependency order
>> without any setup.exe changes required.
>
>That really shouldn't be necessary.  cygwin is the only package
>depending on base-cygwin and if every other package depends on cygwin,
>base-cygwin should go first, too.

But, as I said, every package does not rely on cygwin.  Perhaps if every
package did rely on cygwin that would solve a problem but, in reality,
every package *does* rely on what base-cygwin does and doesn't actually
rely on cygwin1.dll.

>If it doesn't, it's still a problem of the dependency algorithm.  If we
>can't make sure that the algorithm works as we need it to, it would be
>a lot of change with questionable outcome.  You'd never know if a new
>package or a different package selection wouldn't screw up the order
>again.

I'm rather familiar with this argument since I've been making it
consistently in this mailing list whenever you want to remove a valid
dependency to tweak order.

Your approach relies on the fact what are "leaf nodes" today will always
be "leaf nodes" tomorrow so there is still the potential of questionable
outcome in the future.  As I said, I'm all in favor of improving
setup.exe's algorithm but I think that the dependencies in setup.ini
should be accurate too.  They aren't now, for cygwin 1.7.

I'm not talking about something that every package maintainer has to
remember here.  I'm talking about adding logic to upset to ensure that a
package is always included as a dependency.  I'll do that in the next
couple of days.

(And, no, I'm not going to special case "cygwin" or "base-cygwin")

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-28 14:18                                                                                     ` Christopher Faylor
@ 2008-08-28 15:01                                                                                       ` Christopher Faylor
  2008-08-28 19:05                                                                                         ` Christopher Faylor
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-28 15:01 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 28, 2008 at 10:17:49AM -0400, Christopher Faylor wrote:
>But, as I said, every package does not rely on cygwin.  Perhaps if every
>package did rely on cygwin that would solve a problem but, in reality,
>every package *does* rely on what base-cygwin does and doesn't actually
>rely on cygwin1.dll.

Adding a 'cygwin' dependency whereever one is missing causes this
dependency order:

base-cygwin base-passwd cygwin libiconv2 libintl8 libintl3 alternatives terminfo libncurses8 libreadline6 bash ash texinfo _update-info-dir gawk tzcode coreutils findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils login rebase run tar which

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-28 15:01                                                                                       ` Christopher Faylor
@ 2008-08-28 19:05                                                                                         ` Christopher Faylor
  2008-08-29  8:34                                                                                           ` Corinna Vinschen
  0 siblings, 1 reply; 90+ messages in thread
From: Christopher Faylor @ 2008-08-28 19:05 UTC (permalink / raw)
  To: cygwin-apps

On Thu, Aug 28, 2008 at 11:01:10AM -0400, Christopher Faylor wrote:
>On Thu, Aug 28, 2008 at 10:17:49AM -0400, Christopher Faylor wrote:
>>But, as I said, every package does not rely on cygwin.  Perhaps if every
>>package did rely on cygwin that would solve a problem but, in reality,
>>every package *does* rely on what base-cygwin does and doesn't actually
>>rely on cygwin1.dll.
>
>Adding a 'cygwin' dependency whereever one is missing causes this
>dependency order:
>
>base-cygwin base-passwd cygwin libiconv2 libintl8 libintl3 alternatives terminfo libncurses8 libreadline6 bash ash texinfo _update-info-dir gawk tzcode coreutils findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils login rebase run tar which

I've modified cygwin's setup.hint to force it to be added as a
dependency for every package and modified the setup.hint for base-passwd
and base-cygwin to avoid the auto-dependency.

(I also once again found a bug in upset's auto dependency handling)

setup.log.full seems to confirm that things are now run in the correct
order.

Although I still think that relying on cygwin is not strictly correct, I
think this might ensure the right package ordering going forward.

cgf

^ permalink raw reply	[flat|nested] 90+ messages in thread

* Re: New Setup for Cygwin 1.7 on cygwin.com
  2008-08-28 19:05                                                                                         ` Christopher Faylor
@ 2008-08-29  8:34                                                                                           ` Corinna Vinschen
  0 siblings, 0 replies; 90+ messages in thread
From: Corinna Vinschen @ 2008-08-29  8:34 UTC (permalink / raw)
  To: cygwin-apps

On Aug 28 15:04, Christopher Faylor wrote:
> I've modified cygwin's setup.hint to force it to be added as a
> dependency for every package and modified the setup.hint for base-passwd
> and base-cygwin to avoid the auto-dependency.
> 
> (I also once again found a bug in upset's auto dependency handling)
> 
> setup.log.full seems to confirm that things are now run in the correct
> order.
> 
> Although I still think that relying on cygwin is not strictly correct, I
> think this might ensure the right package ordering going forward.

Cool, thanks.


Corinna

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

^ permalink raw reply	[flat|nested] 90+ messages in thread

end of thread, other threads:[~2008-08-29  8:34 UTC | newest]

Thread overview: 90+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-12 15:35 Setup for 1.7 must still handle 9x? Corinna Vinschen
2008-08-12 18:02 ` Corinna Vinschen
2008-08-12 20:26   ` Christopher Faylor
2008-08-12 20:41     ` Corinna Vinschen
2008-08-12 23:11       ` Ralph Hempel
2008-08-13  8:34         ` Corinna Vinschen
2008-08-13 10:20     ` New Setup for Cygwin 1.7 on cygwin.com Corinna Vinschen
2008-08-15  8:54       ` Dr. Volker Zell
2008-08-15 10:28         ` Corinna Vinschen
2008-08-15 11:21           ` Corinna Vinschen
2008-08-15 13:13             ` Corinna Vinschen
2008-08-15 13:17               ` Eric Blake
2008-08-15 13:28                 ` Corinna Vinschen
2008-08-15 13:38                   ` Corinna Vinschen
2008-08-15 13:46                   ` Brian Dessent
2008-08-15 14:00                     ` Corinna Vinschen
2008-08-15 14:16                       ` Brian Dessent
2008-08-15 14:22                         ` Corinna Vinschen
2008-08-15 14:04                     ` Dave Korn
2008-08-15 14:11                       ` Corinna Vinschen
2008-08-15 14:18                         ` Dave Korn
2008-08-16 12:26                         ` Dave Korn
2008-08-19 16:39                           ` Corinna Vinschen
2008-08-20  1:49                             ` Brian Dessent
2008-08-20  2:46                               ` Christopher Faylor
2008-08-20  7:56                                 ` Corinna Vinschen
2008-08-20 14:40                                   ` Christopher Faylor
2008-08-20 14:45                                     ` Corinna Vinschen
2008-08-20 15:17                                       ` Christopher Faylor
2008-08-20 15:24                                         ` Corinna Vinschen
2008-08-20 16:00                                           ` Christopher Faylor
2008-08-20 16:18                                           ` Charles Wilson
2008-08-20 16:34                                             ` Brian Dessent
2008-08-20 16:49                                               ` Charles Wilson
2008-08-20 17:47                                                 ` Corinna Vinschen
2008-08-21 10:09                                                   ` Corinna Vinschen
2008-08-21 11:09                                                     ` Charles Wilson
2008-08-21 11:19                                                       ` Corinna Vinschen
2008-08-21 15:02                                                     ` Christopher Faylor
2008-08-21 15:04                                                       ` Christopher Faylor
2008-08-21 15:13                                                         ` Charles Wilson
2008-08-21 15:19                                                           ` Corinna Vinschen
2008-08-21 15:27                                                             ` Corinna Vinschen
2008-08-22  1:43                                                               ` Eric Blake
2008-08-22  2:07                                                                 ` Christopher Faylor
2008-08-21 15:38                                                             ` Christopher Faylor
2008-08-21 15:57                                                               ` Corinna Vinschen
2008-08-21 16:45                                                                 ` Christopher Faylor
2008-08-22  1:37                                                     ` Brian Dessent
2008-08-22  7:44                                                       ` Corinna Vinschen
2008-08-22  7:55                                                         ` Brian Dessent
2008-08-22  8:23                                                           ` Corinna Vinschen
2008-08-22  8:59                                                             ` Brian Dessent
2008-08-22  9:08                                                               ` Corinna Vinschen
2008-08-25 10:24                                                                 ` Corinna Vinschen
2008-08-25 14:33                                                                   ` Christopher Faylor
2008-08-25 15:28                                                                     ` Christopher Faylor
2008-08-25 15:36                                                                       ` Corinna Vinschen
2008-08-25 15:58                                                                         ` Christopher Faylor
2008-08-25 16:14                                                                           ` Corinna Vinschen
2008-08-25 17:22                                                                             ` Christopher Faylor
2008-08-27 17:15                                                                               ` Corinna Vinschen
2008-08-27 18:36                                                                                 ` Christopher Faylor
2008-08-28  7:37                                                                                   ` Corinna Vinschen
2008-08-28 14:18                                                                                     ` Christopher Faylor
2008-08-28 15:01                                                                                       ` Christopher Faylor
2008-08-28 19:05                                                                                         ` Christopher Faylor
2008-08-29  8:34                                                                                           ` Corinna Vinschen
2008-08-27 19:08                                                                                 ` Ralph Hempel
2008-08-28  7:42                                                                                   ` Corinna Vinschen
2008-08-28 12:30                                                                                     ` Ralph Hempel
2008-08-26  8:18                                                                           ` Corinna Vinschen
2008-08-26 12:05                                                                             ` Charles Wilson
2008-08-26 12:13                                                                               ` Corinna Vinschen
2008-08-22 13:21                                                               ` Christopher Faylor
2008-08-20 16:36                                             ` Corinna Vinschen
2008-08-20 15:28                                         ` Brian Dessent
2008-08-20 16:03                                           ` Christopher Faylor
2008-08-15 14:01                 ` Corinna Vinschen
2008-08-15 10:15       ` Dr. Volker Zell
2008-08-15 10:33         ` Corinna Vinschen
2008-08-15 11:47       ` Dr. Volker Zell
2008-08-15 11:56         ` Corinna Vinschen
2008-08-15 12:39           ` Corinna Vinschen
2008-08-15 13:58           ` Dr. Volker Zell
2008-08-15 14:05             ` Corinna Vinschen
2008-08-15 19:24       ` Eric Blake
2008-08-15 19:34         ` Yaakov (Cygwin Ports)
2008-08-15 19:37         ` Christopher Faylor
2008-08-16 13:38           ` Dave Korn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).