* Release candidate 1: /etc/hosts @ 2002-09-12 7:28 Paul Johnston 2002-09-12 8:13 ` Gerrit P. Haase 2002-09-12 10:49 ` Igor Pechtchanski 0 siblings, 2 replies; 23+ messages in thread From: Paul Johnston @ 2002-09-12 7:28 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: text/plain, Size: 350 bytes --] Hi, Thanks to Corinna, Joe, Nicholas, Warren and especially Igor, this script should now be good enough. I've successfully tested it on XP only. BTW, this version uses uname to get the OS - the most reliable way. Also, if for some reason a user wanted to lie to the script, uname would be the obvious choice without having to read to source. Paul [-- Attachment #2: make-etc-links.sh --] [-- Type: application/x-sh, Size: 677 bytes --] [-- Attachment #3: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 7:28 Release candidate 1: /etc/hosts Paul Johnston @ 2002-09-12 8:13 ` Gerrit P. Haase 2002-09-12 10:49 ` Igor Pechtchanski 1 sibling, 0 replies; 23+ messages in thread From: Gerrit P. Haase @ 2002-09-12 8:13 UTC (permalink / raw) To: cygwin Paul schrieb: > I've successfully tested it on XP only. $ mketc.sh create symbolic link `/etc/hosts' to `/c/WINNT/system32/drivers/etc/hosts' create symbolic link `/etc/protocols' to `/c/WINNT/system32/drivers/etc/protocol' create symbolic link `/etc/services' to `/c/WINNT/system32/drivers/etc/services' create symbolic link `/etc/networks' to `/c/WINNT/system32/drivers/etc/networks' It works fine on W2K & NT4. Gerrit -- =^..^= -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 7:28 Release candidate 1: /etc/hosts Paul Johnston 2002-09-12 8:13 ` Gerrit P. Haase @ 2002-09-12 10:49 ` Igor Pechtchanski 2002-09-12 10:53 ` Nicholas Wourms ` (2 more replies) 1 sibling, 3 replies; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-12 10:49 UTC (permalink / raw) To: cygwin; +Cc: Paul Johnston [-- Attachment #1: Type: TEXT/PLAIN, Size: 1896 bytes --] On Thu, 12 Sep 2002, Paul Johnston wrote: > Hi, > Thanks to Corinna, Joe, Nicholas, Warren and especially Igor, this > script should now be good enough. I've successfully tested it on XP > only. This works on Windows 98 (sort of): BASH-2.05b$ uname -a CYGWIN_98-4.10 FAETON 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 unknown BASH-2.05b$ ./make-etc-links.sh create symbolic link `/etc/hosts' to `/cygdrive/c/WINDOWS/hosts' create symbolic link `/etc/protocols' to `/cygdrive/c/WINDOWS/protocol' create symbolic link `/etc/services' to `/cygdrive/c/WINDOWS/services' create symbolic link `/etc/networks' to `/cygdrive/c/WINDOWS/networks' BASH-2.05b$ However, two problems: 1) When the script has run, but created a link to a non-existent file, and then run again: BASH-2.05b$ ./make-etc-links.sh /bin/ln: `/etc/protocols': File exists BASH-2.05b$ ls /etc/protocols /etc/protocols BASH-2.05b$ [ ! -e /etc/protocols ]; echo $? 0 BASH-2.05b$ [ ! -L /etc/protocols ]; echo $? 1 BASH-2.05b$ The -e test apparently fails if the file is a symbolic link to a non-existent file (is this a bug?). I've attached the correction. 2) CYGWIN="check_case:strict" As I suspected earlier, this fails -- the links are created, but an attempt to cat the files results in "no such file or directory", and an attempt to save the file after editing results in a write error. On my Windows 98, cygwin interprets the filenames for c:\windows\hosts, etc, as all caps. I don't know how important this is to pursue. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file [-- Attachment #2: Type: TEXT/PLAIN, Size: 734 bytes --] #!/bin/sh #-- # Create symbolic links from some /etc files to the Windows equivalents #-- FILES="hosts protocols services networks" OSNAME=`/bin/uname -s` WINHOME=`/bin/cygpath -W` case "$OSNAME" in CYGWIN_NT*) WINETC="$WINHOME/system32/drivers/etc" ;; CYGWIN_9*|CYGWIN_ME*) WINETC="$WINHOME" ;; *) echo "Unknown system type $OSNAME; exiting" >&2 exit 0 ;; esac if [ ! -d "$WINETC" ] then echo "Directory $WINETC does not exist; exiting" >&2 exit 0 fi for FILE in $FILES do if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters WFILE=`expr substr "$FILE" 1 8` /bin/ln -s -v "$WINETC/$WFILE" "/etc/$FILE" fi done [-- Attachment #3: Type: TEXT/PLAIN, Size: 348 bytes --] --- make-etc-links.sh-0.6 2002-09-12 10:08:17.000000000 -0400 +++ make-etc-links.sh 2002-09-12 13:05:02.000000000 -0400 @@ -25,7 +25,7 @@ fi for FILE in $FILES do - if [ ! -e "/etc/$FILE" ] + if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters WFILE=`expr substr "$FILE" 1 8` [-- Attachment #4: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 10:49 ` Igor Pechtchanski @ 2002-09-12 10:53 ` Nicholas Wourms 2002-09-12 11:16 ` Igor Pechtchanski 2002-09-12 11:15 ` Nicholas Wourms 2002-09-12 11:29 ` Paul Johnston 2 siblings, 1 reply; 23+ messages in thread From: Nicholas Wourms @ 2002-09-12 10:53 UTC (permalink / raw) To: cygwin; +Cc: Paul Johnston --- Igor Pechtchanski <pechtcha@cs.nyu.edu> wrote: > On Thu, 12 Sep 2002, Paul Johnston wrote: > > > Hi, > > Thanks to Corinna, Joe, Nicholas, Warren and especially Igor, > this > > script should now be good enough. I've successfully tested it on > XP > > only. > > This works on Windows 98 (sort of): > > BASH-2.05b$ uname -a > CYGWIN_98-4.10 FAETON 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 > unknown > BASH-2.05b$ ./make-etc-links.sh > create symbolic link `/etc/hosts' to `/cygdrive/c/WINDOWS/hosts' > create symbolic link `/etc/protocols' to > `/cygdrive/c/WINDOWS/protocol' > create symbolic link `/etc/services' to > `/cygdrive/c/WINDOWS/services' > create symbolic link `/etc/networks' to > `/cygdrive/c/WINDOWS/networks' > BASH-2.05b$ > > However, two problems: > > 1) When the script has run, but created a link to a non-existent > file, and > then run again: > > BASH-2.05b$ ./make-etc-links.sh > /bin/ln: `/etc/protocols': File exists > BASH-2.05b$ ls /etc/protocols > /etc/protocols > BASH-2.05b$ [ ! -e /etc/protocols ]; echo $? > 0 > BASH-2.05b$ [ ! -L /etc/protocols ]; echo $? > 1 > BASH-2.05b$ > > The -e test apparently fails if the file is a symbolic link to a > non-existent file (is this a bug?). I've attached the correction. > > 2) CYGWIN="check_case:strict" > As I suspected earlier, this fails -- the links are created, but an > attempt to cat the files results in "no such file or directory", > and an > attempt to save the file after editing results in a write error. > On my > Windows 98, cygwin interprets the filenames for c:\windows\hosts, > etc, as > all caps. I don't know how important this is to pursue. Why not just check for all the possible combinations [HOSTS, Hosts, hosts]? I use check_case:strict on a daily basis. If you don't use it, then you cannot compile gcj java programs at times. Also, you cannot bootstrap gcc with java enabled. I think this is important and heads of questions in the long run. Cheers, Nicholas __________________________________________________ Yahoo! - We Remember 9-11: A tribute to the more than 3,000 lives lost http://dir.remember.yahoo.com/tribute -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 10:53 ` Nicholas Wourms @ 2002-09-12 11:16 ` Igor Pechtchanski 0 siblings, 0 replies; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-12 11:16 UTC (permalink / raw) To: Nicholas Wourms; +Cc: cygwin, Paul Johnston On Thu, 12 Sep 2002, Nicholas Wourms wrote: > --- Igor Pechtchanski <pechtcha@cs.nyu.edu> wrote: > > On Thu, 12 Sep 2002, Paul Johnston wrote: > > > > > Hi, > > > Thanks to Corinna, Joe, Nicholas, Warren and especially Igor, this > > > script should now be good enough. I've successfully tested it on XP > > > only. > > > > This works on Windows 98 (sort of): > > > > BASH-2.05b$ uname -a > > CYGWIN_98-4.10 FAETON 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 > > unknown > > BASH-2.05b$ ./make-etc-links.sh > > create symbolic link `/etc/hosts' to `/cygdrive/c/WINDOWS/hosts' > > create symbolic link `/etc/protocols' to > > `/cygdrive/c/WINDOWS/protocol' > > create symbolic link `/etc/services' to > > `/cygdrive/c/WINDOWS/services' > > create symbolic link `/etc/networks' to > > `/cygdrive/c/WINDOWS/networks' > > BASH-2.05b$ > > > > However, two problems: > > > > 1) When the script has run, but created a link to a non-existent > > file, and then run again: > > > > BASH-2.05b$ ./make-etc-links.sh > > /bin/ln: `/etc/protocols': File exists > > BASH-2.05b$ ls /etc/protocols > > /etc/protocols > > BASH-2.05b$ [ ! -e /etc/protocols ]; echo $? > > 0 > > BASH-2.05b$ [ ! -L /etc/protocols ]; echo $? > > 1 > > BASH-2.05b$ > > > > The -e test apparently fails if the file is a symbolic link to a > > non-existent file (is this a bug?). I've attached the correction. > > > > 2) CYGWIN="check_case:strict" > > As I suspected earlier, this fails -- the links are created, but an > > attempt to cat the files results in "no such file or directory", > > and an attempt to save the file after editing results in a write > > error. On my Windows 98, cygwin interprets the filenames for > > c:\windows\hosts, etc, as all caps. I don't know how important this > > is to pursue. > > Why not just check for all the possible combinations [HOSTS, Hosts, > hosts]? I use check_case:strict on a daily basis. If you don't use > it, then you cannot compile gcj java programs at times. Also, you > cannot bootstrap gcc with java enabled. I think this is important > and heads of questions in the long run. Ahem, there are 32 possible combinations for hosts, and 256 for networks, services and protocols (windows only uses the first 8 letters). I realize that most of them are improbable, but for the script to be robust, it should be able to handle any of them. I also constantly use check_case:strict, which is why I raised the concern in the first place. On my 2k system, the following will return the exact case: 'cmd /c "dir /b "`cygpath -w $file`'... Can someone verify that this (with the appropriate correction of "cmd" to "command.com", of course) also works on 9x/ME systems? Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 10:49 ` Igor Pechtchanski 2002-09-12 10:53 ` Nicholas Wourms @ 2002-09-12 11:15 ` Nicholas Wourms 2002-09-12 11:33 ` Igor Pechtchanski 2002-09-12 11:29 ` Paul Johnston 2 siblings, 1 reply; 23+ messages in thread From: Nicholas Wourms @ 2002-09-12 11:15 UTC (permalink / raw) To: cygwin --- Igor Pechtchanski <pechtcha@cs.nyu.edu> wrote: > This works on Windows 98 (sort of): > > BASH-2.05b$ uname -a > CYGWIN_98-4.10 FAETON 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 > unknown > BASH-2.05b$ ./make-etc-links.sh > create symbolic link `/etc/hosts' to `/cygdrive/c/WINDOWS/hosts' > create symbolic link `/etc/protocols' to > `/cygdrive/c/WINDOWS/protocol' > create symbolic link `/etc/services' to > `/cygdrive/c/WINDOWS/services' > create symbolic link `/etc/networks' to > `/cygdrive/c/WINDOWS/networks' > BASH-2.05b$ > > However, two problems: > > 1) When the script has run, but created a link to a non-existent > file, and > then run again: > > BASH-2.05b$ ./make-etc-links.sh > /bin/ln: `/etc/protocols': File exists > BASH-2.05b$ ls /etc/protocols > /etc/protocols > BASH-2.05b$ [ ! -e /etc/protocols ]; echo $? > 0 > BASH-2.05b$ [ ! -L /etc/protocols ]; echo $? > 1 > BASH-2.05b$ > > The -e test apparently fails if the file is a symbolic link to a > non-existent file (is this a bug?). I've attached the correction. Your fix is not correct, as it still doesn't provide uniform functionality across all patforms. What should be done is to check for hosts.sam and then copy that to hosts. Failing that, the file should be "touched" to provide a valid target. Another problem I just discovered is that on WinME, "protocols" is actually "protocol". Dunno if this is the same for Win9x or not... Cheers, Nicholas __________________________________________________ Do you Yahoo!? Yahoo! News - Today's headlines http://news.yahoo.com -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 11:15 ` Nicholas Wourms @ 2002-09-12 11:33 ` Igor Pechtchanski 0 siblings, 0 replies; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-12 11:33 UTC (permalink / raw) To: Nicholas Wourms; +Cc: cygwin On Thu, 12 Sep 2002, Nicholas Wourms wrote: > --- Igor Pechtchanski <pechtcha@cs.nyu.edu> wrote: > > This works on Windows 98 (sort of): > > > > BASH-2.05b$ uname -a > > CYGWIN_98-4.10 FAETON 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 > > unknown > > BASH-2.05b$ ./make-etc-links.sh > > create symbolic link `/etc/hosts' to `/cygdrive/c/WINDOWS/hosts' > > create symbolic link `/etc/protocols' to > > `/cygdrive/c/WINDOWS/protocol' > > create symbolic link `/etc/services' to > > `/cygdrive/c/WINDOWS/services' > > create symbolic link `/etc/networks' to > > `/cygdrive/c/WINDOWS/networks' > > BASH-2.05b$ > > > > However, two problems: > > > > 1) When the script has run, but created a link to a non-existent > > file, and > > then run again: > > > > BASH-2.05b$ ./make-etc-links.sh > > /bin/ln: `/etc/protocols': File exists > > BASH-2.05b$ ls /etc/protocols > > /etc/protocols > > BASH-2.05b$ [ ! -e /etc/protocols ]; echo $? > > 0 > > BASH-2.05b$ [ ! -L /etc/protocols ]; echo $? > > 1 > > BASH-2.05b$ > > > > The -e test apparently fails if the file is a symbolic link to a > > non-existent file (is this a bug?). I've attached the correction. > > Your fix is not correct, as it still doesn't provide uniform > functionality across all patforms. What should be done is to check > for hosts.sam and then copy that to hosts. Failing that, the file > should be "touched" to provide a valid target. The dangling symlink is the desired functionality. Editing the file will create the target. You don't necessarily want the sample file as your hosts. My fix was to prevent trying to create a link if one already exists (because its existence was not detected by 'test -e'). It had nothing to do with the actual windows files. > Another problem I just discovered is that on WinME, "protocols" is > actually "protocol". Dunno if this is the same for Win9x or not... Yes, it's the same even on Win2k. The 'expr substr $FILE 1 8' in the script takes care of that. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 10:49 ` Igor Pechtchanski 2002-09-12 10:53 ` Nicholas Wourms 2002-09-12 11:15 ` Nicholas Wourms @ 2002-09-12 11:29 ` Paul Johnston 2002-09-12 11:42 ` Igor Pechtchanski 2 siblings, 1 reply; 23+ messages in thread From: Paul Johnston @ 2002-09-12 11:29 UTC (permalink / raw) To: cygwin Hi > 2) CYGWIN="check_case:strict" > As I suspected earlier, this fails -- the links are created, but an > attempt to cat the files results in "no such file or directory", and an > attempt to save the file after editing results in a write error. On my > Windows 98, cygwin interprets the filenames for c:\windows\hosts, etc, as > all caps. I don't know how important this is to pursue. Ah, I bet NT based ones would do also - if you were using the FAT file system. I think this problem needs to be dealt with... and I'm starting to think that modifying cygpath would be the cleanest way to achieve this. Paul -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 11:29 ` Paul Johnston @ 2002-09-12 11:42 ` Igor Pechtchanski 2002-09-12 11:44 ` Paul Johnston 0 siblings, 1 reply; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-12 11:42 UTC (permalink / raw) To: Paul Johnston; +Cc: cygwin On Thu, 12 Sep 2002, Paul Johnston wrote: > > 2) CYGWIN="check_case:strict" > > As I suspected earlier, this fails -- the links are created, but an > > attempt to cat the files results in "no such file or directory", and an > > attempt to save the file after editing results in a write error. On my > > Windows 98, cygwin interprets the filenames for c:\windows\hosts, etc, as > > all caps. I don't know how important this is to pursue. > > Ah, I bet NT based ones would do also - if you were using the FAT file > system. > > I think this problem needs to be dealt with... and I'm starting to think > that modifying cygpath would be the cleanest way to achieve this. How exactly are you proposing to modify cygpath? cygpath translates windows paths to unix-style, and back. There is nothing in the cygpath spec that says that the path should already exist... "cygpath -W" already returns the correct case for the path to windows, I'm actually more concerned about the filenames and the "/system32/drivers/etc" bit. I suppose the directory case could be determined by using a "(cd && pwd)" pair... Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 11:42 ` Igor Pechtchanski @ 2002-09-12 11:44 ` Paul Johnston 2002-09-12 15:01 ` Igor Pechtchanski 0 siblings, 1 reply; 23+ messages in thread From: Paul Johnston @ 2002-09-12 11:44 UTC (permalink / raw) To: cygwin Igor, > How exactly are you proposing to modify cygpath? cygpath translates > windows paths to unix-style, and back. There is nothing in the cygpath Sorry, should have been clearer about this: modifying cygpath to add a feature to get the correct case for a path. Perhaps we could figure a way to use "dir /b" - but I'm sure other people will hit this same issue in the future and would appreciate such a feature in cygpath. If you agree this is a good idea, I'm prepared to do the groundwork. Failing that, I think it would be ok to assume that the path will either be all caps or all non-caps - corresponding to FAT or NTFS. Anyone tweaking the case of such paths/files on NTFS quite deserves their fate! BTW, I'm subbed to cygwin so you don't need to keep copying me on mails. Paul -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 1: /etc/hosts 2002-09-12 11:44 ` Paul Johnston @ 2002-09-12 15:01 ` Igor Pechtchanski 2002-09-12 17:16 ` Finding exact case of paths Paul Johnston 0 siblings, 1 reply; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-12 15:01 UTC (permalink / raw) To: cygwin On Thu, 12 Sep 2002, Paul Johnston wrote: > Igor, > > > How exactly are you proposing to modify cygpath? cygpath translates > > windows paths to unix-style, and back. There is nothing in the cygpath > > Sorry, should have been clearer about this: modifying cygpath to add a > feature to get the correct case for a path. Perhaps we could figure a > way to use "dir /b" - but I'm sure other people will hit this same issue > in the future and would appreciate such a feature in cygpath. If you > agree this is a good idea, I'm prepared to do the groundwork. Oh, I see, add a modifier similar to '-s', so that it verifies the case of each element in the path... Yeah, that could work, something like: -e, --exact-case print exact case of NAME I'm not sure how to implement this, though... If you have ideas, I'd be interested in hearing them. > Failing that, I think it would be ok to assume that the path will either > be all caps or all non-caps - corresponding to FAT or NTFS. Anyone > tweaking the case of such paths/files on NTFS quite deserves their fate! Well, on my Win2k machine, the exact case is as follows: C:\WINNT\system32\drivers\etc\hosts. Notice that "WINNT" is all caps. I use NTFS, and this is apparently the default setup. > BTW, I'm subbed to cygwin so you don't need to keep copying me on mails. Oops, sorry, this is the default in my mailer. I'll be more careful. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Finding exact case of paths 2002-09-12 15:01 ` Igor Pechtchanski @ 2002-09-12 17:16 ` Paul Johnston 2002-09-12 17:52 ` Igor Pechtchanski 0 siblings, 1 reply; 23+ messages in thread From: Paul Johnston @ 2002-09-12 17:16 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: text/plain, Size: 731 bytes --] Hi, > Oh, I see, add a modifier similar to '-s', so that it verifies the case of > each element in the path... Yeah, that could work, something like: > -e, --exact-case print exact case of NAME Yep, exactly. Now, cygpath seems to generally not hit the filesystem - cygpath c:/complete/crap gives me /c/complete/crap so using that switch will necessarily involve a performance hit. Given that, I think I'm happy with my solution based on dirent/strcasecmp. I've attached a stand-alone utility that seems to work (just on cygwin paths), although it has the side effect of squishing down multiple slashes ///like////this//path down to /like/this/path. I think it would be ok to restrict --exact-case to cygwin paths. Paul [-- Attachment #2: exactcase.c --] [-- Type: text/plain, Size: 1802 bytes --] #include <sys/types.h> #include <dirent.h> #include <errno.h> #include <limits.h> #include <string.h> #include <stdio.h> /* Only needed for test code */ /*** * Main subroutine is just for testing **/ int main(int argc, char *argv[]) { char path[PATH_MAX]; if(argc == 2) { strcpy(path, argv[1]); if(exact_case(path)) printf("OUTPUT: %s\n", path); else printf("ERROR: %s\n", strerror(errno)); } return 0; } /*** * Vague attempt to make code independent of path type **/ #define DLM_STR "/" #define DLM_CHR '/' #define CWD_STR "." #define IS_ABSOLUTE(X) (X[0] == DLM_CHR) /*** * Determine the correct case for a cygwin path, fill-in in place * Returns TRUE/FALSE - success/failure **/ int exact_case(char *path) { char work[PATH_MAX], *part, path_strtok[PATH_MAX]; if(strlen(path) > (PATH_MAX - 1)) /* PATH_MAX allows for the NUL */ { errno = ENAMETOOLONG; return 0; } strcpy(path_strtok, path); part = strtok(path_strtok, DLM_STR); if(IS_ABSOLUTE(path)) { if(!exact_case_part(DLM_STR, part)) return 0; strcpy(work, DLM_STR); strcat(work, part); } else { if(!exact_case_part(CWD_STR, part)) return 0; strcpy(work, part); } while(part = strtok(NULL, DLM_STR)) { if(!exact_case_part(work, part)) return 0; strcat(work, DLM_STR); strcat(work, part); } strcpy(path, work); return 1; } /*** * Search a directory for an entry; fill-in it's correct case * Returns TRUE/FALSE - success/failure **/ int exact_case_part(const char *base, char *part) { struct dirent *de; DIR *dh = opendir(base); if(!dh) return 0; while(de = readdir(dh)) { if(strcasecmp(part, de->d_name) == 0) break; } closedir(dh); if(de) strcpy(part, de->d_name); else errno = ENOENT; return (int) de; } [-- Attachment #3: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Finding exact case of paths 2002-09-12 17:16 ` Finding exact case of paths Paul Johnston @ 2002-09-12 17:52 ` Igor Pechtchanski 2002-09-12 20:14 ` Igor Pechtchanski 0 siblings, 1 reply; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-12 17:52 UTC (permalink / raw) To: cygwin On Fri, 13 Sep 2002, Paul Johnston wrote: > > Oh, I see, add a modifier similar to '-s', so that it verifies the case of > > each element in the path... Yeah, that could work, something like: > > -e, --exact-case print exact case of NAME > > Yep, exactly. Now, cygpath seems to generally not hit the filesystem - > cygpath c:/complete/crap gives me /c/complete/crap so using that switch > will necessarily involve a performance hit. Given that, I think I'm > happy with my solution based on dirent/strcasecmp. I've attached a > stand-alone utility that seems to work (just on cygwin paths), although > it has the side effect of squishing down multiple slashes > ///like////this//path down to /like/this/path. > > I think it would be ok to restrict --exact-case to cygwin paths. I don't think there's a need to search the directory yourself. Upon browsing the cygpath code some more, I realized that it is doing exactly what we need (i.e. convert to the exact path) when returning the system directory (the '-S' flag). Quoting the code (cygpath.cc:396): case 'S': GetSystemDirectory (buf, MAX_PATH); FindFirstFile (buf, &w32_fd); strcpy (strrchr (buf, '\\') + 1, w32_fd.cFileName); break; So we can do the same trick with each filename when our option ('-e') is in effect. I'm looking at a fix to cygpath now, and will submit a patch as soon as I have it ready. On a separate note, I found that "cygpath -l -w <path>" does not work on my Win2k SP2 system, returning the same garbage (hex 20 FB 22 0a) regardless of the path. Anyone else have that problem? Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Finding exact case of paths 2002-09-12 17:52 ` Igor Pechtchanski @ 2002-09-12 20:14 ` Igor Pechtchanski 2002-09-13 1:12 ` Igor Pechtchanski 0 siblings, 1 reply; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-12 20:14 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: TEXT/PLAIN, Size: 2861 bytes --] On Thu, 12 Sep 2002, Igor Pechtchanski wrote: > On Fri, 13 Sep 2002, Paul Johnston wrote: > > > > Oh, I see, add a modifier similar to '-s', so that it verifies the case of > > > each element in the path... Yeah, that could work, something like: > > > -e, --exact-case print exact case of NAME > > > > Yep, exactly. Now, cygpath seems to generally not hit the filesystem - > > cygpath c:/complete/crap gives me /c/complete/crap so using that switch > > will necessarily involve a performance hit. Given that, I think I'm > > happy with my solution based on dirent/strcasecmp. I've attached a > > stand-alone utility that seems to work (just on cygwin paths), although > > it has the side effect of squishing down multiple slashes > > ///like////this//path down to /like/this/path. > > > > I think it would be ok to restrict --exact-case to cygwin paths. > > I don't think there's a need to search the directory yourself. Upon > browsing the cygpath code some more, I realized that it is doing exactly > what we need (i.e. convert to the exact path) when returning the system > directory (the '-S' flag). Quoting the code (cygpath.cc:396): > > case 'S': > GetSystemDirectory (buf, MAX_PATH); > FindFirstFile (buf, &w32_fd); > strcpy (strrchr (buf, '\\') + 1, w32_fd.cFileName); > break; > > So we can do the same trick with each filename when our option ('-e') is > in effect. I'm looking at a fix to cygpath now, and will submit a patch > as soon as I have it ready. > > On a separate note, I found that "cygpath -l -w <path>" does not work on > my Win2k SP2 system, returning the same garbage (hex 20 FB 22 0a) > regardless of the path. Anyone else have that problem? Well, after further reading of the code and experimenting I've determined two things: 1) the '-l' option of cygpath works in the cvs HEAD, and 2) it does exactly what we need (thanks, Corinna). So we can use $(cygpath -u $(cygpath -l -w "$WINETC/$WFILE")) in the script. This would require people to upgrade to the new cygpath (which they would have to anyway, if they were to use the option we proposed), which means that this script can not be released before the next cygwin, but that is probably fine. New version and diff attached. Igor P.S. I'm racking my brain trying to figure out why -l didn't work for me in version 1.21 of cygpath, but did in version 1.22. As far as I could see, the only changes to cygpath were some added newlines... -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file [-- Attachment #2: Type: TEXT/PLAIN, Size: 789 bytes --] #!/bin/sh #-- # Create symbolic links from some /etc files to the Windows equivalents #-- FILES="hosts protocols services networks" OSNAME=`/bin/uname -s` WINHOME=`/bin/cygpath -W` case "$OSNAME" in CYGWIN_NT*) WINETC="$WINHOME/system32/drivers/etc" ;; CYGWIN_9*|CYGWIN_ME*) WINETC="$WINHOME" ;; *) echo "Unknown system type $OSNAME; exiting" >&2 exit 0 ;; esac if [ ! -d "$WINETC" ] then echo "Directory $WINETC does not exist; exiting" >&2 exit 0 fi for FILE in $FILES do if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters WFILE="$WINETC/"`expr substr "$FILE" 1 8` WFILE=$(cygpath -u "$(cygpath -w -l "$WFILE")") /bin/ln -s -v "$WFILE" "/etc/$FILE" fi done [-- Attachment #3: Type: TEXT/PLAIN, Size: 501 bytes --] --- make-etc-links.sh-0.7 2002-09-12 13:05:02.000000000 -0400 +++ make-etc-links.sh 2002-09-12 22:37:16.000000000 -0400 @@ -28,8 +28,9 @@ do if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters - WFILE=`expr substr "$FILE" 1 8` - /bin/ln -s -v "$WINETC/$WFILE" "/etc/$FILE" + WFILE="$WINETC/"`expr substr "$FILE" 1 8` + WFILE=$(cygpath -u "$(cygpath -w -l "$WFILE")") + /bin/ln -s -v "$WFILE" "/etc/$FILE" fi done [-- Attachment #4: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Finding exact case of paths 2002-09-12 20:14 ` Igor Pechtchanski @ 2002-09-13 1:12 ` Igor Pechtchanski 2002-09-13 5:58 ` Release candidate 2: /etc/hosts Paul Johnston 0 siblings, 1 reply; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-13 1:12 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: TEXT/PLAIN, Size: 1694 bytes --] On Thu, 12 Sep 2002, Igor Pechtchanski wrote: > On Thu, 12 Sep 2002, Igor Pechtchanski wrote: > > On a separate note, I found that "cygpath -l -w <path>" does not work on > > my Win2k SP2 system, returning the same garbage (hex 20 FB 22 0a) > > regardless of the path. Anyone else have that problem? > > Well, after further reading of the code and experimenting I've determined > two things: > 1) the '-l' option of cygpath works in the cvs HEAD, and > 2) it does exactly what we need (thanks, Corinna). > > So we can use $(cygpath -u $(cygpath -l -w "$WINETC/$WFILE")) in the > script. This would require people to upgrade to the new cygpath (which > they would have to anyway, if they were to use the option we proposed), > which means that this script can not be released before the next cygwin, > but that is probably fine. New version and diff attached. > Igor > P.S. I'm racking my brain trying to figure out why -l didn't work for me > in version 1.21 of cygpath, but did in version 1.22. As far as I could > see, the only changes to cygpath were some added newlines... Whoops, forgot to quote the strings. Better correct it. New version attached. As for the '-l' in 1.21 issue, there were changes to newlib which have probably fixed some string bug that caused this. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file [-- Attachment #2: Type: TEXT/PLAIN, Size: 795 bytes --] #!/bin/sh #-- # Create symbolic links from some /etc files to the Windows equivalents #-- FILES="hosts protocols services networks" OSNAME="`/bin/uname -s`" WINHOME="`/bin/cygpath -W`" case "$OSNAME" in CYGWIN_NT*) WINETC="$WINHOME/system32/drivers/etc" ;; CYGWIN_9*|CYGWIN_ME*) WINETC="$WINHOME" ;; *) echo "Unknown system type $OSNAME; exiting" >&2 exit 0 ;; esac if [ ! -d "$WINETC" ] then echo "Directory $WINETC does not exist; exiting" >&2 exit 0 fi for FILE in $FILES do if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters WFILE="$WINETC/`expr substr "$FILE" 1 8`" WFILE="$(cygpath -u "$(cygpath -w -l "$WFILE")")" /bin/ln -s -v "$WFILE" "/etc/$FILE" fi done [-- Attachment #3: Type: TEXT/PLAIN, Size: 772 bytes --] --- make-etc-links.sh-0.8 2002-09-12 22:37:16.000000000 -0400 +++ make-etc-links.sh 2002-09-12 23:05:43.000000000 -0400 @@ -5,8 +5,8 @@ FILES="hosts protocols services networks" -OSNAME=`/bin/uname -s` -WINHOME=`/bin/cygpath -W` +OSNAME="`/bin/uname -s`" +WINHOME="`/bin/cygpath -W`" case "$OSNAME" in CYGWIN_NT*) WINETC="$WINHOME/system32/drivers/etc" ;; @@ -28,8 +28,8 @@ do if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters - WFILE="$WINETC/"`expr substr "$FILE" 1 8` - WFILE=$(cygpath -u "$(cygpath -w -l "$WFILE")") + WFILE="$WINETC/`expr substr "$FILE" 1 8`" + WFILE="$(cygpath -u "$(cygpath -w -l "$WFILE")")" /bin/ln -s -v "$WFILE" "/etc/$FILE" fi done [-- Attachment #4: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Release candidate 2: /etc/hosts 2002-09-13 1:12 ` Igor Pechtchanski @ 2002-09-13 5:58 ` Paul Johnston 2002-09-13 7:38 ` Igor Pechtchanski 0 siblings, 1 reply; 23+ messages in thread From: Paul Johnston @ 2002-09-13 5:58 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: text/plain, Size: 633 bytes --] Hi, > > 1) the '-l' option of cygpath works in the cvs HEAD, and > > 2) it does exactly what we need (thanks, Corinna). Cool... I've just modified your code to correct case on $WINETC before we do the directory check. This has the side-effect of catching the cygpath bug without creating any links. As for the script name, given the scope of /etc/postinstall I think it should contain the package name. Someone suggested mketc.sh and that's fairly consistent with the old-skool MKDEV script. So I think it should be called cygwin-mketc.sh. How come your script works when cygpath is called inside $(...) but not backticks? Paul [-- Attachment #2: cygwin-mketc.sh --] [-- Type: application/x-sh, Size: 905 bytes --] [-- Attachment #3: cygwin-mketc.sh-0.9.diff --] [-- Type: text/plain, Size: 286 bytes --] 19a20 > WINETC="$(/bin/cygpath -u "$(/bin/cygpath -w -l "$WINETC")")" 22a24 > echo "If directory name is garbage, update cygpath to 1.22 or later" >&2 32c34 < WFILE="$(cygpath -u "$(cygpath -w -l "$WFILE")")" --- > WFILE="$(/bin/cygpath -u "$(/bin/cygpath -w -l "$WFILE")")" [-- Attachment #4: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Release candidate 2: /etc/hosts 2002-09-13 5:58 ` Release candidate 2: /etc/hosts Paul Johnston @ 2002-09-13 7:38 ` Igor Pechtchanski 2002-09-15 2:47 ` Installing cygwin-mketc.sh Paul Johnston 0 siblings, 1 reply; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-13 7:38 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: TEXT/PLAIN, Size: 2275 bytes --] On Fri, 13 Sep 2002, Paul Johnston wrote: > Hi, > > > > 1) the '-l' option of cygpath works in the cvs HEAD, and > > > 2) it does exactly what we need (thanks, Corinna). > > Cool... I've just modified your code to correct case on $WINETC before > we do the directory check. This has the side-effect of catching the > cygpath bug without creating any links. Paul, the bug was not in cygpath, but somewhere in newlib (apparently). The only fault of the current cygpath is that it was compiled on June 6, against faulty libraries. This should not be a problem in the new release of cygwin. So, the check is redundant (or, in any event, the message is wrong -- you can't upgrade cygpath; it should be "upgrade to new cygwin"). It does not speed up the script, either, since the $WINETC directory will still be processed and corrected every time cygpath is called. > As for the script name, given the scope of /etc/postinstall I think it > should contain the package name. Someone suggested mketc.sh and that's > fairly consistent with the old-skool MKDEV script. So I think it should > be called cygwin-mketc.sh. Fair enough. If I read the name correctly, this script would become part of the cygwin package. In this case the cygpath message is really redundant and needs to be taken out altogether. That message only makes sense if the script is in a package other than cygwin (so people can install it without updating cygwin). > How come your script works when cygpath is called inside $(...) but not > backticks? The backtick syntax does not allow recursive invocations. If we want to use the backtick syntax, we should use something like WFILE="`cygpath -w -l "$WFILE"`" WFILE="`cygpath -u "$WFILE"`" I've attached the message correction. If this is really part of cygwin, please take it out altogether, along with the translation of $WINETC. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file [-- Attachment #2: Type: TEXT/PLAIN, Size: 933 bytes --] #!/bin/sh #-- # Create symbolic links from some /etc files to the Windows equivalents #-- FILES="hosts protocols services networks" OSNAME="`/bin/uname -s`" WINHOME="`/bin/cygpath -W`" case "$OSNAME" in CYGWIN_NT*) WINETC="$WINHOME/system32/drivers/etc" ;; CYGWIN_9*|CYGWIN_ME*) WINETC="$WINHOME" ;; *) echo "Unknown system type $OSNAME; exiting" >&2 exit 0 ;; esac WINETC="$(/bin/cygpath -u "$(/bin/cygpath -w -l "$WINETC")")" if [ ! -d "$WINETC" ] then echo "Directory $WINETC does not exist; exiting" >&2 echo "If directory name is garbage, please update cygwin" >&2 exit 0 fi for FILE in $FILES do if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters WFILE="$WINETC/`expr substr "$FILE" 1 8`" WFILE="$(/bin/cygpath -u "$(/bin/cygpath -w -l "$WFILE")")" /bin/ln -s -v "$WFILE" "/etc/$FILE" fi done [-- Attachment #3: Type: TEXT/PLAIN, Size: 428 bytes --] --- cygwin-mketc.sh-0.9 2002-09-13 07:02:41.000000000 -0400 +++ cygwin-mketc.sh 2002-09-13 10:13:13.000000000 -0400 @@ -21,7 +21,7 @@ WINETC="$(/bin/cygpath -u "$(/bin/cygpat if [ ! -d "$WINETC" ] then echo "Directory $WINETC does not exist; exiting" >&2 - echo "If directory name is garbage, update cygpath to 1.22 or later" >&2 + echo "If directory name is garbage, please update cygwin" >&2 exit 0 fi [-- Attachment #4: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Installing cygwin-mketc.sh 2002-09-13 7:38 ` Igor Pechtchanski @ 2002-09-15 2:47 ` Paul Johnston 2002-09-15 5:53 ` John Morrison ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Paul Johnston @ 2002-09-15 2:47 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: text/plain, Size: 656 bytes --] Hi, How does cygwin install decide where to put files? I was expecting some kind of map file mapping object files to installed files, but I couldn't find one. I can see we want cygwin-mketc.sh to end up in configure's $sysconfdir but beyond that I'm just getting lost > I've attached the message correction. If this is really part of cygwin, > please take it out altogether, along with the translation of $WINETC. Ok, I've taken out the message, but NOT the case translation of $WINETC. The case translation must be done before the directory existence check, or the check might fail. I think this has got to be the final version of the code now. Paul [-- Attachment #2: cygwin-mketc.sh --] [-- Type: application/x-sh, Size: 831 bytes --] [-- Attachment #3: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: Installing cygwin-mketc.sh 2002-09-15 2:47 ` Installing cygwin-mketc.sh Paul Johnston @ 2002-09-15 5:53 ` John Morrison 2002-09-15 6:49 ` John Morrison 2002-09-15 9:28 ` Igor Pechtchanski 2 siblings, 0 replies; 23+ messages in thread From: John Morrison @ 2002-09-15 5:53 UTC (permalink / raw) To: cygwin > From: Paul Johnston > Hi, > > How does cygwin install decide where to put files? It un-tar's them from /. > I was expecting some kind > of map file mapping object files to installed files, but I > couldn't find one. map file mapping object? > I can see we want cygwin-mketc.sh to end up in configure's $sysconfdir but > beyond that I'm just getting lost I'd have thought /etc/postinstall would be where it needs to be. If folks agree, I can add your script as part of one of the base- packages I'm putting together... base-files (a replacement /etc/profile) base-passwd (a replacement 'create password/group' script) but I'm unsure as to which would be best. Rob? Christopher? J. > > I've attached the message correction. If this is really part of cygwin, > > please take it out altogether, along with the translation of $WINETC. > > Ok, I've taken out the message, but NOT the case translation of > $WINETC. The > case translation must be done before the directory existence check, or the > check might fail. I think this has got to be the final version of the code > now. > > Paul > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: Installing cygwin-mketc.sh 2002-09-15 2:47 ` Installing cygwin-mketc.sh Paul Johnston 2002-09-15 5:53 ` John Morrison @ 2002-09-15 6:49 ` John Morrison 2002-09-15 7:17 ` John Morrison 2002-09-15 9:28 ` Igor Pechtchanski 2 siblings, 1 reply; 23+ messages in thread From: John Morrison @ 2002-09-15 6:49 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: text/plain, Size: 604 bytes --] > From: Paul Johnston > > > I've attached the message correction. If this is really part of cygwin, > > please take it out altogether, along with the translation of $WINETC. > > Ok, I've taken out the message, but NOT the case translation of > $WINETC. The > case translation must be done before the directory existence check, or the > check might fail. I think this has got to be the final version of the code > now. BTW, $ cygpath -w -l "/cygdrive/c/WINNT/system32/drivers/etc" u" This doesn't work (on my system at least :). It was fine upto attempting the -w -l... (cygcheck -s attached). J. [-- Attachment #2: cygcheck.txt --] [-- Type: text/plain, Size: 15502 bytes --] Cygwin Win95/NT Configuration Diagnostics Current System Time: Sun Sep 15 13:48:06 2002 Windows 2000 Professional Ver 5.0 Build 2195 Service Pack 2 Path: C:\cygwin\usr\sbin C:\cygwin\usr\X11R6\bin C:\cygwin\home\john\projects\exe C:\cygwin\home\john\projects\exe\sh C:\cygwin\usr\local\bin C:\cygwin\bin C:\cygwin\bin C:\cygwin\bin c:\wrkfile2\java\1\3\1_03\bin c:\WINNT\system32 c:\WINNT c:\WINNT\System32\Wbem c:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT c:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin c:\Program Files\Microsoft Visual Studio\Common\Tools c:\Program Files\Microsoft Visual Studio\VC98\bin C:\cygwin\usr\X11R6\bin c:\wrkfile2\java\1\3\1_03 C:\cygwin\home\john\Applications\ant\latest\bin C:\cygwin\usr\local\lib C:\cygwin\usr\local\lib\qt2\bin SysDir: C:\WINNT\System32 WinDir: C:\WINNT CYGWIN = `binmode ntsec tty' HOME = `C:\cygwin\home\john' LD_LIBRARY_PATH = `\usr\local\lib\qt2\lib:\usr\local\lib:' MAKE_MODE = `unix' PWD = `/home/john' USER = `john' Use `-r' to scan registry a: fd N/A N/A c: hd NTFS 20002Mb 88% CP CS UN PA FC d: cd CDFS 696Mb 100% CS UN Schizm_1 C:\cygwin / system binmode C:\cygwin/bin /usr/bin system binmode C:\cygwin/lib /usr/lib system binmode C:\cygwin\usr\X11R6\lib\X11\fonts /usr/X11R6/lib/X11/fonts system binmode . /cygdrive user binmode,cygdrive Found: C:\cygwin\bin\bash.exe Found: C:\cygwin\bin\cat.exe Found: C:\cygwin\bin\cpp.exe Found: C:\cygwin\bin\find.exe Found: C:\cygwin\bin\gcc.exe Found: C:\cygwin\bin\gdb.exe Found: C:\cygwin\bin\ld.exe Found: C:\cygwin\bin\ls.exe Found: C:\cygwin\bin\make.exe Found: C:\cygwin\bin\sh.exe 41k 2002/05/14 C:\cygwin\usr\X11R6\bin\cygPropList-0.dll 125k 2001/12/18 C:\cygwin\usr\local\bin\cygaudiofile-0.dll 58k 2002/05/07 C:\cygwin\bin\cygbz2-1.dll 54k 2002/05/24 C:\cygwin\bin\cygbz21.0.dll 6k 2002/06/24 C:\cygwin\bin\cygcharset-1.dll 625k 2002/08/09 C:\cygwin\bin\cygcrypto.dll 452k 2002/07/17 C:\cygwin\bin\cygcurl-2.dll 380k 2002/07/24 C:\cygwin\bin\cygdb-3.1.dll 326k 2002/06/26 C:\cygwin\bin\cygdb2.dll 487k 2002/07/24 C:\cygwin\bin\cygdb_cxx-3.1.dll 132k 2002/07/14 C:\cygwin\bin\cygexpat-0.dll 50k 2002/03/17 C:\cygwin\bin\cygexslt-0.dll 45k 2001/04/25 C:\cygwin\bin\cygform5.dll 35k 2002/01/09 C:\cygwin\bin\cygform6.dll 19k 2002/02/20 C:\cygwin\bin\cyggdbm.dll 488k 2002/07/18 C:\cygwin\bin\cygguile-14.dll 63k 2002/07/18 C:\cygwin\bin\cygguile-srfi-srfi-13-14-1.dll 24k 2002/07/18 C:\cygwin\bin\cygguile-srfi-srfi-4-1.dll 14k 2002/07/18 C:\cygwin\bin\cygguilereadline-14.dll 17k 2001/06/28 C:\cygwin\bin\cyghistory4.dll 20k 2002/07/17 C:\cygwin\bin\cyghistory5.dll 306k 2002/04/27 C:\cygwin\bin\cyghttpd.dll 929k 2002/06/24 C:\cygwin\bin\cygiconv-2.dll 22k 2002/05/24 C:\cygwin\bin\cygintl-1.dll 23k 2002/06/24 C:\cygwin\bin\cygintl-2.dll 21k 2001/06/20 C:\cygwin\bin\cygintl.dll 45k 2002/02/08 C:\cygwin\bin\cygjbig1.dll 119k 2002/02/09 C:\cygwin\bin\cygjpeg6b.dll 59k 2002/08/09 C:\cygwin\bin\cygkpathsea-3-3-7.dll 25k 2002/07/16 C:\cygwin\bin\cygltdl-3.dll 26k 2001/04/25 C:\cygwin\bin\cygmenu5.dll 20k 2002/01/09 C:\cygwin\bin\cygmenu6.dll 156k 2001/04/25 C:\cygwin\bin\cygncurses++5.dll 175k 2002/01/09 C:\cygwin\bin\cygncurses++6.dll 226k 2001/04/25 C:\cygwin\bin\cygncurses5.dll 202k 2002/01/09 C:\cygwin\bin\cygncurses6.dll 15k 2001/04/25 C:\cygwin\bin\cygpanel5.dll 12k 2002/01/09 C:\cygwin\bin\cygpanel6.dll 40k 2001/11/21 C:\cygwin\bin\cygpcre.dll 39k 2001/11/21 C:\cygwin\bin\cygpcreposix.dll 1006k 2002/07/24 C:\cygwin\bin\cygperl5_8_0.dll 175k 2002/07/22 C:\cygwin\bin\cygpng10.dll 179k 2002/07/22 C:\cygwin\bin\cygpng12.dll 170k 2002/01/21 C:\cygwin\bin\cygpng2.dll 22k 2002/06/09 C:\cygwin\bin\cygpopt-0.dll 108k 2001/06/28 C:\cygwin\bin\cygreadline4.dll 127k 2002/07/17 C:\cygwin\bin\cygreadline5.dll 66k 2001/11/20 C:\cygwin\bin\cygregex.dll 159k 2002/08/09 C:\cygwin\bin\cygssl.dll 549k 2002/07/19 C:\cygwin\bin\cygtcl83.dll 11k 2002/07/19 C:\cygwin\bin\cygtclpip83.dll 253k 2002/02/10 C:\cygwin\bin\cygtiff3.dll 221k 2002/07/19 C:\cygwin\bin\cygtix4183.dll 830k 2002/07/19 C:\cygwin\bin\cygtk83.dll 25k 2002/07/14 C:\cygwin\bin\cygungif-4.dll 633k 2002/07/22 C:\cygwin\bin\cygxml2-2.dll 41k 2002/01/20 C:\cygwin\bin\cygXpm-noX4.dll 46k 2002/01/20 C:\cygwin\bin\cygXpm-X4.dll 152k 2002/03/17 C:\cygwin\bin\cygxslt-1.dll 15k 2002/03/17 C:\cygwin\bin\cygxsltbreakpoint-1.dll 50k 2002/05/24 C:\cygwin\bin\cygz.dll 883k 2002/07/06 C:\cygwin\bin\cygwin1.dll Cygwin DLL version info: DLL version: 1.3.12 DLL epoch: 19 DLL bad signal mask: 19005 DLL old termios: 5 DLL malloc env: 28 API major: 0 API minor: 54 Shared data: 3 DLL identifier: cygwin1 Mount registry: 2 Cygnus registry name: Cygnus Solutions Cygwin registry name: Cygwin Program options name: Program Options Cygwin mount registry name: mounts v2 Cygdrive flags: cygdrive flags Cygdrive prefix: cygdrive prefix Cygdrive default prefix: Build date: Sat Jul 6 02:16:58 EDT 2002 CVS tag: cygwin-1-3-12-1 Shared id: cygwin1S3 Cygwin Package Information Package Version ELFIO 1.0.0-1 WindowMaker 0.80.0-2 XFree86-base 4.2.0-1 XFree86-bin 4.2.0-2 XFree86-doc 4.2.0-1 XFree86-etc 4.2.0-1 XFree86-f100 4.2.0-2 XFree86-fcyr 4.2.0-2 XFree86-fenc 4.2.0-2 XFree86-fnts 4.2.0-2 XFree86-fscl 4.2.0-2 XFree86-fsrv 4.2.0-1 XFree86-html 4.2.0-1 XFree86-jdoc 4.2.0-1 XFree86-lib 4.2.0-3 XFree86-man 4.2.0-1 XFree86-nest 4.2.0-1 XFree86-prog 4.2.0-1 XFree86-prt 4.2.0-1 XFree86-ps 4.2.0-1 XFree86-startup-scripts4.2.0-3 XFree86-vfb 4.2.0-1 XFree86-xserv 4.2.0-12 Xaw3d 1.5-1 _update-info-dir 00063-1 apache 1.3.24-5 ash 20020731-1 audiofile 0.2.1-20011218 autoconf 2.53b-1 autoconf-devel 2.53a-1 autoconf-stable 2.13-4 automake 1.6.2-1 automake-devel 1.6.2-1 automake-stable 1.4p5-5 bash 2.05b-5 bc 1.06-1 binutils 20020706-2 bison 1.35-1 byacc 1.9-1 bzip2 1.0.2-2 ccache 1.9-1 cgoban 1.9.12-1 clear 1.0-1 compface 1.4-5 cpio 2.4.2 cron 3.0.1-7 crypt 1.0-1 ctags 5.2-1 curl 7.9.8-2 cvs 1.11.0-1 cygipc 1.11-1 cygrunsrv 0.95-1 cygutils 1.1.2-1 cygwin 1.3.12-4 cygwin-doc 1.1-2 db2 2.7.7-4 db3.1 3.1.17-2 dejagnu 20010117-1 diff 1.0-1 diffutils 2.8.1-1 dpkg 1.10.4-2 ed 0.2-1 emacs 21.2-8 emacs-X11 21.2-8 emacs-el 21.2-8 enscript 1.6.3-3 exim 4.10-1 expat 1.95.4-1 expect 20010117-1 fetchmail 5.9.13-2 figlet 2.2-1 file 3.37-1 fileutils 4.1-1 findutils 4.1.7-4 flex 2.5.4-2 fortune 1.8-2 fvwm 2.4.7-2 gawk 3.1.1-3 gcc 3.2-1 gcc-mingw 3.2-20020817-1 gcc2 2.95.3-10 gdb 20020718-1 gdbm 1.8.0-4 gettext 0.11.2-2 gettext-devel 0.11.2-2 ghostscript 7.05-1 ghostscript-base 7.05-1 ghostscript-x11 7.05-1 gnugo 3.2-1 gnupg 1.1.90-1 gperf 0.0 grep 2.5-1 groff 1.17.2-1 gsl 1.1.1-1 guile 1.5.6-5 guile-devel 1.5.6-5 guile-doc 1.5.6-5 gzip 1.3.3-4 indent 2.2.8-1 inetutils 1.3.2-19 irc 20010101-1 jbigkit 1.2-6 jpeg 6b-7 keychain 1.9-1 less 374-1 lesstif 0.93.18-3 libPropList 0.10.1-3 libbz2_0 1.0.2-1 libbz2_1 1.0.2-2 libcharset1 1.8-2 libdb2 2.7.7-4 libdb2-devel 2.7.7-4 libdb3.1 3.1.17-2 libdb3.1-devel 3.1.17-2 libguile14 1.5.6-5 libiconv 1.8-2 libiconv2 1.8-2 libintl 0.10.38-3 libintl1 0.10.40-1 libintl2 0.11.2-2 libkpathsea3 20020530-3 libltdl3 20020705-2 libncurses5 5.2-1 libncurses6 5.2-8 libpng 1.2.4-2 libpng10 1.0.14-2 libpng10-devel 1.0.14-2 libpng12 1.2.4-2 libpng12-devel 1.2.4-2 libpng2 1.0.12-1 libpopt0 1.6.4-4 libreadline4 4.1-2 libreadline5 4.3-1 libtool 20020705-1 libtool-devel 20020705-2 libtool-stable 1.4.2-2 libungif 4.1.0-2 libxml2 2.4.23-1 libxslt 1.0.13-1 lilypond 1.6.0-1 lilypond-doc 1.6.0-1 links 0.96-1 login 1.4-4 lynx 2.8.4-1 m4 0.0 make 3.79.1-7 man 1.5g-2 mc 4.5.55-1 mingw-runtime 2.2-1 mktemp 1.4-1 mod_auth_mysql 1.11-1 mod_auth_ntsec 1.7-1 mod_dav 1.0.3-1.3.6-1 mod_php4 4.2.0-1 mod_ssl 2.8.8-1.3.24-1 more 2.11o-1 mt 2.0.1-1 mutt 1.4-1 nano 1.1.10-1 ncftp 3.1.4-1 ncurses 5.2-8 newlib-man 20020801 openbox 0.99.1-3 opengl 1.1.0-6 openssh 3.4p1-5 openssl 0.9.6g-1 openssl-devel 0.9.6g-1 patch 2.5-3 pcre 3.7-1 perl 5.8.0-1 perl_manpages 5.8.0-1 pine 4.44-2 pinfo 0.6.6p1-1 pkgconfig 0.12.0-1 popt 1.6.4-4 postgresql 7.2.2-1 procmail 3.22-7 python 2.2.1-1 rcs 5.7-3 readline 4.3-1 regex 4.4-2 robots 2.0-1 rsync 2.5.5-1 rxvt 2.7.2-11 sed 3.02-1 sh-utils 2.0-2 sharutils 4.2.1-2 shutdown 1.2-2 squid 2.4.STABLE7-1 ssmtp 2.38.7-3 swig 1.3.13-1 tar 1.13.25-1 tcltk 20001125-1 tcp_wrappers 7.6-1 tcsh 6.11.00-4 termcap 20020403-1 terminfo 5.2-3 tetex 20020530-3 tetex-base 20020530-3 tetex-beta 20020530-3 tetex-bin 20020530-3 tetex-devel 20020530-3 tetex-doc 20020530-3 tetex-extra 20020530-3 tetex-tiny 20020530-3 tetex-x11 20020530-3 texinfo 4.2-3 texmf 20020530-3 texmf-base 20020530-3 texmf-doc 20020530-3 texmf-extra 20020530-3 texmf-tiny 20020530-3 textutils 2.0.21-1 tidy 020822-1 tiff 3.5.7-1 time 1.7-1 ttcp 19980512-1 ucl 1.01-1 units 1.77-1 unzip 5.50-1 upx 1.21-1 vim 6.1-2 w32api 2.0-1 wget 1.8.2-1 which 1.5-1 whois 4.5.17-1 x2x 1.27-1 xpm-nox 4.2.0-1 zip 2.3-2 zlib 1.1.4-1 zsh 4.0.4-1 Use -h to see help about each section [-- Attachment #3: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: Installing cygwin-mketc.sh 2002-09-15 6:49 ` John Morrison @ 2002-09-15 7:17 ` John Morrison 2002-09-15 9:44 ` Igor Pechtchanski 0 siblings, 1 reply; 23+ messages in thread From: John Morrison @ 2002-09-15 7:17 UTC (permalink / raw) To: cygwin > From: John Morrison > > From: Paul Johnston > > > > > I've attached the message correction. If this is really part > of cygwin, > > > please take it out altogether, along with the translation of $WINETC. > > > > Ok, I've taken out the message, but NOT the case translation of > > $WINETC. The > > case translation must be done before the directory existence > check, or the > > check might fail. I think this has got to be the final version > of the code > > now. > > BTW, > > $ cygpath -w -l "/cygdrive/c/WINNT/system32/drivers/etc" > u" > > This doesn't work (on my system at least :). It was fine upto > attempting the -w -l... > The same thing happens with WFILE. J. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: Installing cygwin-mketc.sh 2002-09-15 7:17 ` John Morrison @ 2002-09-15 9:44 ` Igor Pechtchanski 0 siblings, 0 replies; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-15 9:44 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: TEXT/PLAIN, Size: 1574 bytes --] On Sun, 15 Sep 2002, John Morrison wrote: > > From: John Morrison > > > From: Paul Johnston > > > > > > > I've attached the message correction. If this is really part of cygwin, > > > > please take it out altogether, along with the translation of $WINETC. > > > > > > Ok, I've taken out the message, but NOT the case translation of $WINETC. The > > > case translation must be done before the directory existence check, or the > > > check might fail. I think this has got to be the final version of the code > > > now. > > > > BTW, > > > > $ cygpath -w -l "/cygdrive/c/WINNT/system32/drivers/etc" > > u" > > > > This doesn't work (on my system at least :). It was fine upto > > attempting the -w -l... > > > > The same thing happens with WFILE. John, If you trace this thread back a bit, you'll see that the cygpath that was distributed with the current release of cygwin (compiled on July 6) is broken. Why it's broken is a mystery to me, as I've just recompiled it from the 1.3.12-2 source package (using the w32api-1.5-1 sources), and it works. Can anyone shed some light on this? I'm attaching a newly recompiled executable for the trusting souls. Those with a bit of healthy paranoia are welcome to recompile it themselves. ;-) Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "Water molecules expand as they grow warmer" (C) Popular Science, Oct'02, p.51 [-- Attachment #2: Type: APPLICATION/octet-stream, Size: 15872 bytes --] [-- Attachment #3: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Installing cygwin-mketc.sh 2002-09-15 2:47 ` Installing cygwin-mketc.sh Paul Johnston 2002-09-15 5:53 ` John Morrison 2002-09-15 6:49 ` John Morrison @ 2002-09-15 9:28 ` Igor Pechtchanski 2 siblings, 0 replies; 23+ messages in thread From: Igor Pechtchanski @ 2002-09-15 9:28 UTC (permalink / raw) To: cygwin [-- Attachment #1: Type: TEXT/PLAIN, Size: 1884 bytes --] On Sun, 15 Sep 2002, Paul Johnston wrote: > Hi, > > How does cygwin install decide where to put files? I was expecting some kind > of map file mapping object files to installed files, but I couldn't find one. > I can see we want cygwin-mketc.sh to end up in configure's $sysconfdir but > beyond that I'm just getting lost > > > I've attached the message correction. If this is really part of cygwin, > > please take it out altogether, along with the translation of $WINETC. > > Ok, I've taken out the message, but NOT the case translation of $WINETC. The > case translation must be done before the directory existence check, or the > check might fail. I think this has got to be the final version of the code > now. > > Paul Paul, The real reason we need the case translation is for the links is that if the user doesn't have "check_case:strict" when installing, but later sets it, the links will still work. If "check_case:strict" is in effect, the case translation will fail anyway. And if it's not in effect, then the directory existence check will succeed as well. So the translation is redundant. But it doesn't hurt (maybe slows the script down a bit), and in a post-install script performance is not an issue, so let's leave it in. However, this reminds me - we had to turn off "check_case:strict" for the duration of the script for it to work at all with non-standard file and directory cases! Something like CYGWIN="$CYGWIN check_case:relaxed"; export CYGWIN I meant to do this one, but completely forgot. New version attached. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha@cs.nyu.edu ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "Water molecules expand as they grow warmer" (C) Popular Science, Oct'02, p.51 [-- Attachment #2: Type: TEXT/PLAIN, Size: 924 bytes --] #!/bin/sh #-- # Create symbolic links from some /etc files to the Windows equivalents #-- FILES="hosts protocols services networks" OSNAME="`/bin/uname -s`" WINHOME="`/bin/cygpath -W`" CYGWIN="$CYGWIN check_case:relaxed" export CYGWIN case "$OSNAME" in CYGWIN_NT*) WINETC="$WINHOME/system32/drivers/etc" ;; CYGWIN_9*|CYGWIN_ME*) WINETC="$WINHOME" ;; *) echo "Unknown system type $OSNAME; exiting" >&2 exit 0 ;; esac WINETC="$(/bin/cygpath -u "$(/bin/cygpath -w -l "$WINETC")")" if [ ! -d "$WINETC" ] then echo "Directory $WINETC does not exist; exiting" >&2 exit 0 fi for FILE in $FILES do if [ ! -e "/etc/$FILE" -a ! -L "/etc/$FILE" ] then # Windows only uses the first 8 characters WFILE="$WINETC/`expr substr "$FILE" 1 8`" WFILE="$(/bin/cygpath -u "$(/bin/cygpath -w -l "$WFILE")")" /bin/ln -s -v "$WFILE" "/etc/$FILE" fi done [-- Attachment #3: Type: TEXT/PLAIN, Size: 421 bytes --] --- cygwin-mketc.sh-0.10.1 2002-09-15 05:21:30.000000000 -0400 +++ cygwin-mketc.sh 2002-09-15 12:07:05.000000000 -0400 @@ -8,6 +8,9 @@ FILES="hosts protocols services networks OSNAME="`/bin/uname -s`" WINHOME="`/bin/cygpath -W`" +CYGWIN="$CYGWIN check_case:relaxed" +export CYGWIN + case "$OSNAME" in CYGWIN_NT*) WINETC="$WINHOME/system32/drivers/etc" ;; CYGWIN_9*|CYGWIN_ME*) WINETC="$WINHOME" ;; [-- Attachment #4: Type: text/plain, Size: 214 bytes --] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2002-09-15 16:19 UTC | newest] Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2002-09-12 7:28 Release candidate 1: /etc/hosts Paul Johnston 2002-09-12 8:13 ` Gerrit P. Haase 2002-09-12 10:49 ` Igor Pechtchanski 2002-09-12 10:53 ` Nicholas Wourms 2002-09-12 11:16 ` Igor Pechtchanski 2002-09-12 11:15 ` Nicholas Wourms 2002-09-12 11:33 ` Igor Pechtchanski 2002-09-12 11:29 ` Paul Johnston 2002-09-12 11:42 ` Igor Pechtchanski 2002-09-12 11:44 ` Paul Johnston 2002-09-12 15:01 ` Igor Pechtchanski 2002-09-12 17:16 ` Finding exact case of paths Paul Johnston 2002-09-12 17:52 ` Igor Pechtchanski 2002-09-12 20:14 ` Igor Pechtchanski 2002-09-13 1:12 ` Igor Pechtchanski 2002-09-13 5:58 ` Release candidate 2: /etc/hosts Paul Johnston 2002-09-13 7:38 ` Igor Pechtchanski 2002-09-15 2:47 ` Installing cygwin-mketc.sh Paul Johnston 2002-09-15 5:53 ` John Morrison 2002-09-15 6:49 ` John Morrison 2002-09-15 7:17 ` John Morrison 2002-09-15 9:44 ` Igor Pechtchanski 2002-09-15 9:28 ` Igor Pechtchanski
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).