stripping/relocating cygwin distribution

Alexandre Bezroutchko
Tue Nov 16 22:04:00 GMT 2010


I use heavily stripped cygwin distribution, basically limited to
selected executables, libraries, and supporting files. It works pretty
well, but I am facing a strange problem on Windows 7. It can be very
easily reproduced as following:

1) from cygwin shell, make a copy of c:\cygwin (here I'm grabbing a
full copy, in practice I take much less, see the script below)
 # cp -r /cygdrive/c/cygwin /cygdrive/c/users/abb/

2) from windows shell, invoke 'screen' in detached mode from the
standard cygwin location
C:\>cygwin\bin\screen -d -m
The command will finish immediately, launching detached screen session
in background (can be seel with 'screen -ls'). This is a correct

3) now run 'screen' from the copied cygwin directory
C:\Users\abb\>cygwin\bin\screen -d -m

It also works, but there is a side effect -- a new window empty with
'screen.exe' title appears.

The window appears if  I start the screen detached (-d -m) or I attach
to a detached screen.
The window does not appear if I start screen normally (without parameters).
The window does not appear on XP at all.

Any ideas about why this can possibly happen (and how to fix it) are
greatly appreciated...

Am I doing something fundamentally wrong by relocating/stripping
cygwin distribution? I thought recent versions of cygwin should
tolerate execution from alternative locations, as there is no more
pathes hardcoded into the registry.

Best regards,
Alexandre Bezroutchko
Gremwell bvba



for d in etc var/run usr/share bin tmp
        mkdir -p $cygwin/$d

for f in cygwin1 cygintl-8 cygiconv-2 cygncurses-9 cyggcc_s-1 \
        cygreadline7 cygncurses-10 cygcrypt-0 cygpcre-0 libW11 cyggmp-3 \
        cygpopt-0 cygssp-0 cygcrypto-0.9.8 cygz
        cp /bin/$f.dll $cygwin/bin/$f.dll

for f in [ basename cat cp cygpath dirname env expr false \
        grep kill less ls mount mv nohup ps sh sleep tail true \
        screen ssh rxvt egrep mkdir ssh-keygen dos2unix uname
        cp /bin/$f.exe $cygwin/bin/$f.exe

touch $cygwin/var/run/utmp
cp -rL /usr/share/terminfo $cygwin/usr/share
cp /etc/screenrc $cygwin/etc

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list