X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Wed, 26 Aug 2009 21:59:58 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Howto get Cygwin<->Linux interoperability on NTFS filesystems (symbolic links issue) Message-ID: <20090826195958.GH4969@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.19 (2009-02-20) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com 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 !, > 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 ("!" header, SYSTEM DOS attribute, multibyte target filename) 2. Cygwin 1.7 symlinks ("!" 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