This is the mail archive of the
mailing list for the Cygwin project.
RE: cygpath hangs from postinstall scripts when called like $(cygpath -S) but not otherwise
- From: "Alan Miles" <miles0201 at cox dot net>
- To: <cygwin at cygwin dot com>
- Cc: "cygx" <cygwin-xfree at cygwin dot com>
- Date: Fri, 3 Oct 2003 23:19:37 -0500
- Subject: RE: cygpath hangs from postinstall scripts when called like $(cygpath -S) but not otherwise
- Reply-to: <alan dot miles at ieee dot org>
I concur - I have a couple of private packages that I build, and then use a
local copy of upset to create the setup.ini file. My packages are ** NOT **
XFree86 related, and I have the same type of $(cygpath -S) call in my
postinstall scripts. They also freeze up this latest setup.exe, the
2.340.2.5 release of setup.exe everything worked properly.
Interesting though, if I run
"H:\CygnusSolutions-Cygwin Files\strace.exe" -o "H:\CygnusSolutions-Cygwin
Files\strace.setup.txt" "H:\CygnusSolutions-Cygwin Files\setup.exe"
from a Windows command short cut, then setup.exe correctly installs cygwin
without any freeze ups.
From: Harold L Hunt II [mailto:email@example.com]
Sent: October 3, 2003 13:32
Subject: Re: cygpath hangs from postinstall scripts when called like
$(cygpath -S) but not otherwise
I should emphasize that the reason this is important is because the
XFree86-bin-icons package calls cygpath in this manner and it freezes
setup.exe when the postinstall or preremove script gets run. So, there
is current breakage with this. It is not a hypothetical situation.
Harold L Hunt II wrote:
> This looks like a cygpath problem, but it has something to do with the
> environment in which cygpath gets run from a postinstall script.
> Whomever is interested, please look into it. Whomever is not
> interested, please keep your grumpy flames to yourself.
> To demonstrate this problem, please do the following
> 1) Save the attached file as /etc/postinstall/cygpath-hangs.sh.
> 2) Run setup.exe, select any mirror.
> 3) Choose 'keep' on the package selection page. Then, select a null
> package (e.g. XFree86-base) and choose 'reinstall'. This will cause
> postinstall scripts to be run, but it won't change your installed
> package or force you to have to download a large package just to get
> this behavior.
> 4) setup.exe will run cygpath-hangs.sh and, lo!, it will sit there (i.e.
> hang) waiting for cygpath-hangs.sh to return.
> 5) Go look in /var/log/ for the most recent file following the pattern
> setup.log.postinstall*. Open it.
> 6) You should see the following in the log file:
> + which which
> + cygpath -S
> ++ which which
> + FOO=/usr/bin/which
> ++ cygpath -S
> 7) Run /etc/postinstall/cygpath-hangs.sh from a bash shell and observe
> that it does not hang.
> 1) You can run 'which which' from a postinstall script without saving
> its output to a variable.
> 2) You can run 'cygpath -S' (or any other flag combo) from a postinstall
> script without saving its output to a variable.
> 3) You can run 'which which' from a postinstall script and save its
> output to a variable (e.g. FOO=$(which which))
> 4) If you run 'cygpath -S' from a postinstall script and save its output
> to a variable (e.g. BAR=$(cygpath -S)), then cygpath will fail to return
> for eternity.
> 5) cygpath's failure to return causes bash to fail to return, which
> causes setup.exe to wait forever for cygpath-hangs.sh to complete.
> There, I have proven beyond a doubt that this has absolutely nothing to
> do with Cygwin/XFree86 :)
> I would appreciate any help in fixing this.
> Thanks in advance,
> #!/bin/bash -x
> which which
> cygpath -S
> FOO=$(which which)
> BAR=$(cygpath -S)
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html