[ANNOUNCEMENT] Updated: vim-7.0.122-1

Igor Peshansky pechtcha@cs.nyu.edu
Fri Oct 13 02:12:00 GMT 2006


On Thu, 12 Oct 2006, John Morrison wrote:

> On Thu, October 12, 2006 2:41 pm, Igor Peshansky wrote:
> > On Thu, 12 Oct 2006, John Morrison wrote:
> >
> >> On Thu, October 12, 2006 12:54 pm, Corinna Vinschen wrote:
> >> >
> >> > I think it is needed.  At least the base-files-mketc.sh postinstall
> >> > script creates paths which point outside the Cygwin root, so it
> >> > either needs to reference cygdrive paths, or use DOS paths.  Using
> >> > cygdrives paths is preferable, IMHO.  Since the cygdrive path is
> >> > not fixed, and can even differ between different users on the same
> >> > machine, there must be a fixed method to reference these paths.
> >> >
> >> > Personally I'd rather not further clutter the root directory, which
> >> > is why /proc seems to me to be a better place to point to the
> >> > cygdrive paths in a constant fashion.  But that is only a mild
> >> > opposition.  I'd also go along with /cygdrive.
> >>
> >> I've changed the script (which I didn't write!) to use cygpath
> >> --sysdir which outputs cygdrive paths.  I should be able to get a new
> >> release out by the weekend, but I'll hold off until this discussion
> >> is decided. Personally I don't mind either an always existing
> >> /cygdrive or something in /proc.  Only thing that would ask is; what
> >> would cygpath output?
> >
> > John,
> >
> > I wrote the script originally, and the initial version did use POSIX
> > paths.
>
> I thought you did and was suprised to find it not using POSIX paths but
> assumed that there was a reason...
>
> >  I've just re-read the early discussions, and found this:
> >
> > <http://cygwin.com/ml/cygwin-apps/2003-02/msg00033.html>.
>
> and there it is.
>
> > I think the issue is still valid -- if the installing user has the
> > user-level cygdrive prefix set, "cygpath --sysdir" will output
> > something that won't work for other users on the machine, and the
> > links will be broken.
> >
> > If we add a standard /cygdrive prefix, we'll also need to change
> > cygpath to force that standard prefix for out-of-tree paths (otherwise
> > user and system mounts take precedence).  Something like "cygpath -S
> > -s" (or "cygpath --sysdir --standard")...
> >
> > However, if we really want to make this more robust, we'd need something
> > like this:
> >
> > SAVED_CYGDRIVE="`mount -m | grep '^mount -u -[bt] -\?-c'`"
> > mount -u -b -c '/cygdrive'
> > # Do the path manipulation here
> > umount -u -c
> > [ -n "$SAVED_CYGDRIVE" ] && eval "$SAVED_CYGDRIVE"
> >
> > Opinions?
>
> Can you write the new version and I'll just package it? ;)

Sure.  But Corinna provided a much simpler solution (which works, at least
on my machine).  Attached is the new version of the script.
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_	    pechtcha@cs.nyu.edu | igor@watson.ibm.com
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"
-------------- next part --------------
#!/bin/sh

# base-files version 3.7-1

#--
# Create symbolic links from some /etc files to the Windows equivalents
#--

FILES="hosts protocols services networks"

OSNAME="`/bin/uname -s`"
WINHOME="`/bin/cygpath -m -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

if [ ! -d "$WINETC" ]
then
  echo "Directory $WINETC does not exist; exiting" >&2
  echo "If directory name is garbage you need to update your cygwin package" >&2
  exit 0
fi

for mketc in $FILES
do
  if [ ! -e "/etc/$mketc" -a ! -L "/etc/$mketc" ]
  then
    # Windows only uses the first 8 characters
    WFILE="$WINETC/`expr substr "$mketc" 1 8`"
    /bin/ln -s -v "$WFILE" "/etc/$mketc"
  fi
done

-------------- next part --------------
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


More information about the Cygwin mailing list