delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/09/23/15:07:53

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID
X-Spam-Check-By: sourceware.org
Mime-Version: 1.0 (Apple Message framework v1244.3)
Subject: Re: tar deletes .exe files on extraction (again)
From: Steve Atkins <steve AT blighty DOT com>
In-Reply-To: <j5ik6l$q3c$1@dough.gmane.org>
Date: Fri, 23 Sep 2011 12:07:23 -0700
Message-Id: <AF1A3800-8AEF-4F8D-86E4-B73BEB600ED5@blighty.com>
References: <DDC20689-EA66-49D5-A120-6AC40BE05900 AT blighty DOT com> <4E7BE736 DOT 1060008 AT cygwin DOT com> <4E7C9DF7 DOT 2090200 AT cs DOT utoronto DOT ca> <j5i8ts$994$1 AT dough DOT gmane DOT org> <B537E8D3-F689-469E-AC87-FBC9FE442281 AT blighty DOT com> <j5igbl$usl$1 AT dough DOT gmane DOT org> <2A62C54E-AD21-4B4E-9261-19F0F6AA01F3 AT blighty DOT com> <j5ik6l$q3c$1 AT dough DOT gmane DOT org>
To: cygwin AT cygwin DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id p8NJ7nOE028553

On Sep 23, 2011, at 11:46 AM, Andrew DeFaria wrote:

> On 9/23/2011 11:26 AM, Steve Atkins wrote:
>> I'm talking about developers of applications, not cygwin-using end users. The developers could work around it (by not including .exe bootstrap files in cross-platform packages or being careful with naming), but they don't because it's not an issue that would ever occur to them, unlike case-insensitivity.
>> 
>> Many systems are case-insensitive
> Really? Aside from Windows what other systems are case insensitive?

The default HFS+ on OS X is the big one for unixy developers (but there's also OS/2 HPFS, ISO9660, most of the Amiga filesystems, VMS and I think RT-11 :) ). 

>>  - and, more importantly, at least one system that's commonly used by developers is - so most software is developed and packaged with that in mind. Case insensitivity is a well understood issue. Only one system, cygwin, considers foo and foo.exe to be identical.
> And as far as I can tell, only one system Windows, is case insensitive WRT filenames. Coincidence? I don't think so! ;-)

>>  It's a niche environment, and not used by many developers who target a unix-style environment, so most developers packaging software will not be aware of the issue and won't work around it.
> I don't think I've met many developers who target a Unix-style environment who did not know about Cygwin and, if forced to use Windows, use Cygwin. Granted the foo vs. foo.exe thing is a bit obscure, but I'd say that a Unix developer actually naming something .exe is also pretty rare.

For a pure unix developer, sure. For a cross-platform developer maybe less so. 

>> Treating "foo" and "foo.exe" as equivalent is a very non-unixy thing to do
> Neither is naming some thing with a .exe at the end!

Sure it is. I can use any string I like to name a file! :)

(And I have seen it done with some CAD apps in the dim and distant past where the actual executable was /opt/foo/bin/bar.exe which was called from a wrapper script shell /opt/foo/bin/bar. Slightly odd, sure, but not entirely silly.)

>> ("everything is a file, and the name of the file isn't important to the kernel") so it's particularly surprising behaviour on a system that otherwise looks quite like a unix environment.
>> 
>> (I'd assumed that cygwin worked by intercepting execve(), and it hadn't even occurred to me that it would modify filesystem access at a coarser level than that until I started diagnosing apparent bugs in tar).
>> 
>> It's not a serious problem, of course - but it does mean that the most widely used cross-platform GUI library cannot be unpacked on cygwin and built from source without jumping through hoops. Given that the cygwin environment is very attractive to cross-platform developers I'm betting I'm not the first person who has been burned by this, and won't be the last.
> So why don't you ask them to fix it?

Because it's not their bug, and it's something that'll pop up elsewhere too. (Note that I'm not asking anyone working on cygwin to fix it either, just reporting the issue, asking if my understanding of the bug is correct and current, then sticking around for the conversation.)

> I mean what do they need a foo and a  foo.exe for anyway?

configure is a shell script that does what configure always does. configure.exe is a windows binary that does much the same thing for a windows platform.

Cheers,
  Steve


--
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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019