Windows 7, cygwin > 3.1.4 symlink issue

Ken Brown kbrown@cornell.edu
Thu Sep 17 21:20:16 GMT 2020


On 9/17/2020 4:27 PM, Roland Roberts wrote:
> On 8/24/2020 5:43 PM, Roland Roberts wrote:
>> I have one machine, a company machine which makes it hard to post details, 
>> which is running Windows 7. We run cygwin as our development environment for 
>> Java, but Java is installed as a Windows program. The scripts that do the 
>> builds are bash scripts that pull down updated code from svn, then run unit 
>> tests. All of the cygwin bits work fine, but when Java is launched to run the 
>> unit tests, it runs into problems with reading files that were created as 
>> symlinks in cygwin. Note that this does *not* happen with cygwin 3.1.4, but 
>> does with higher versions (up through 3.1.7).
>>
>> Possibly related, the permissions on installed files is odd if I roll back 
>> from > 3.1.4 to 3.1.4. The files that were updated with the later version 
>> can't be deleted. The permissions on, for example, an Emacs upgraded under 
>> 3.1.6 or 3.1.7 show "Unknown User" when I downgrade just cygwin and I can't 
>> run it. I have to upgrade cygwin, uninstall Emacs, downgrade cygwin then 
>> reinstall.
>>
>> Other users in the company have had their machines upgraded/replaced with 
>> Windows 10 and don't seem to have this issue. Eventually, mine will be 
>> replaced as well, but in the meantime, later versions of cygwin can't be used.
> 
> Okay, I have no idea what form of dyslexia struck me when I wrote all those 
> version numbers, but I've edited the above since it wasn't 1.x but 3.1.x

Starting with Cygwin 3.1.5, Cygwin changed its default method of creating
symlinks.  They are now special reparse points known as "WSL symlinks" on 
systems that support reparse points.

If you create such a symlink in Cygwin > 3.1.4 and then roll back to an earlier 
version, Cygwin won't recognize the file type.  (But Windows 10 with WSL will 
recognize it.)

If you're using tools that don't work with the new style of symlink, you can use 
the CYGWIN environment variable to change the way Cygwin creates symlinks.

Ken


More information about the Cygwin mailing list