public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin@cygwin.com
Cc: Orgad Shaneh <orgads@gmail.com>
Subject: Re: realpath issue with native[strict] symlinks
Date: Fri, 7 May 2021 23:20:49 +0200	[thread overview]
Message-ID: <YJWvMVkkiqy4rmBc@calimero.vinschen.de> (raw)
In-Reply-To: <CAGHpTBJ5L1Y4RU+n7PVr6vRCeEBkFPUgnVa8JGZDKcGt7n7JBQ@mail.gmail.com>

On May  6 21:36, Orgad Shaneh via Cygwin wrote:
> On Thu, May 6, 2021 at 8:44 PM Corinna Vinschen
> <corinna-cygwin@cygwin.com> wrote:
> >
> > On May  4 22:52, Orgad Shaneh via Cygwin wrote:
> > > On Tue, Apr 27, 2021 at 8:44 AM Orgad Shaneh <orgads@gmail.com> wrote:
> > > >
> > > > On Apr 19 12:58, Corinna Vinschen via Cygwin wrote:
> > > > > On Apr 18 10:59, Orgad Shaneh via Cygwin wrote:
> > > >
> > > > > I was going to write:
> > > > >
> > > > >   Nothing we can do about without re-implementing Cygwin's path handling
> > > > >   from scratch.  For historical reasons, POSIX paths are evaluated in a
> > > > >   non-POSIXy manner from right to left.  If the resulting path is an
> > > > >   existing path, the assumption is that no inner path component is a
> > > > >   symlink.  That's true as long as Windows didn't support
> > > > >   symlinks/junctions and Cygwin didn't support them.
> > > > >
> > > > > But now I'm writing this:
> > > > >
> > > > >   Probably I have a workaround for this problem.  I added a certain test
> > > > >   to the function checking the outer path component, so the checks for
> > > > >   path validity don't stop at the outer path component, just because
> > > > >   it's a valid Windows path.
> > > > >
> > > > > I pushed the patch and uploaded new developer snapshots to
> > > > > https://cygwin.com/snapshots/
> > > > >
> > > > > Please give them a try.
> > > >
> > > > Tried now, and it works for me. Thanks a lot!
> > > >
> > > > - Orgad
> > >
> > >
> > > Hi Corinna,
> > >
> > > This change breaks access to subst drives. Reported on MSYS2:
> > > https://github.com/msys2/msys2-runtime/pull/38#issuecomment-832160980
> > >
> > > Can you please have a look?
> >
> > Works fine for me:
> >
> >   $ subst T: C:\\cygwin64\\home\\corinna\\tmp
> >   $ subst
> >   T:\: => C:\cygwin64\home\corinna\tmp
> >   $ ls /cygdrive/t
> >   bar  cygwin  foo  gawk-5.1.0  ocaml  openssh-8.5p1  recurse  tst
> >
> > TAB completion works, too.
> 
> Right. But if you set / for cygdrive in /etc/fstab it fails:
> none / cygdrive binary,posix=0,user 0 0

I reworked the code handling native symlinks to handle virtual drives
as well.  It might even be a tiny bit quicker now.

The changes have a behavioral change, but I think this is for the
better: Virtual drives are not treated as drives anymore, but as
symlinks.  Given they are just pointers to other drives or directories,
tha't much closer to reality.  I. e., in case of my above virtual drive
T:, what you'll see in the /cygdrive dir (unless your cygdrive prefix is
/ only) is this:

$ ls /cygdrive
$ ls -lG /mnt
total 16
d---r-x---+ 1 TrustedInstaller  0 Apr 29 21:07 c
drwxr-xr-x  1 corinna           0 Dec 31  1979 e
lrwxrwxrwx  1 corinna          32 May  6 20:43 t -> /cygdrive/c/cygwin64/home/corinna/tmp

I uploaded new developer snapshots to https://cygwin.com/snapshots/
for testing.


Thanks,
Corinna

  reply	other threads:[~2021-05-07 21:20 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-27  5:44 Orgad Shaneh
2021-05-04 19:52 ` Orgad Shaneh
2021-05-06 17:44   ` Corinna Vinschen
2021-05-06 18:36     ` Orgad Shaneh
2021-05-07 21:20       ` Corinna Vinschen [this message]
2021-05-09 11:35         ` Orgad Shaneh
2021-05-10  7:50           ` Corinna Vinschen
2021-05-12  7:10         ` Andrey Repin
2021-05-12  8:14           ` Corinna Vinschen
  -- strict thread matches above, loose matches on Subject: below --
2021-05-27 20:21 Jeremy Drake
2021-05-28 19:23 ` Jeremy Drake
2021-06-08  0:01   ` Jeremy Drake
2021-05-18 20:01 Jeremy Drake
2021-05-19 12:42 ` Corinna Vinschen
2021-05-15  4:12 Jeremy Drake
2021-05-17 10:12 ` Corinna Vinschen
2021-04-18  7:59 Orgad Shaneh
2021-04-19 12:58 ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YJWvMVkkiqy4rmBc@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin@cygwin.com \
    --cc=orgads@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).