This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Howto get Cygwin<->Linux interoperability on NTFS filesystems (symbolic links issue)


On Aug 26 19:17, Waldemar Rachwal wrote:
> Cygwin 1.7 has *read* support of symlinks created by Vista+, but *no write* for
> reasonable reasons (http://www.cygwin.com/ml/cygwin/2007-01/msg00936.html).
> 
> That's not bad, as working in dual-boot system, when it comes to switch to
> Linux, I would convert all cygwin-like symlinks to NTFS's native symlinks that
> appeared along with Vista.
> 
> I was so naive that NTFS drivers under Linux will write Windows-like symlinks,
> but simply they don't (Linux should have no problems that Cygwin faces with
> elevating admin priviledges running under Vista). What mentioned drivers (ntfs,
> ntfs-3g) create, look very similar to Cygwin - plain files with system attribute
> set and contents with a target path the symlink points to (as unicode string).
> But the formats differ slightly. While Cygwin's symlinks starts with !<symlink>,
> those from linux drivers start with IntxLNK - so called Interix links, plus
> other minor differencies.
> 
> My question is: why Cygwin invented its own format (if not, sorry ;)? Or should
> rather Linux take Cygwin's format? Even Linux did later, isn't Interix some "old
> standard"?

Development of Cygwin and Interix almost started in parallel (1995 vs.
1996).  Due to the lack of Windows symlink support every project had to
invent its own symlink format.  Not knowing of each other project the
results differed unfortunately.  Today we have at least six different
symlink formats on Windows:

1. Original Cygwin symlinks ("!<symlink>" header, SYSTEM DOS attribute,
   multibyte target filename)

2. Cygwin 1.7 symlinks ("!<symlink>" header, SYSTEM DOS attribute,
   UTF-16 target filename starting with BOM)

3. Interix symlinks ("IntxLnk\001" header, SYSTEM DOS attribute,
   UTF-16 target filename w/o BOM)

4. U/Win symlinks (R/O shortcuts with distinct layout different from
   native Explorer layout)

5. Native NTFS symlinks since Windows Vista

6. Native NFS symlinks via the Microsoft NFS client.

Of these six types, five are supported by Cygwin, 1, 2, 4, and 6 are
supported R/W, 5 is supported R/O.  Only the Interix format isn't
supported right now.  It would be no big problem to support Interix
symlink R/O support as well.  After all this time without Interix
symlink support, I don't think it's such a pressing problem, though.
I'll add it to my TODO list for the time after 1.7.1 has been released.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]