tar deletes .exe files on extraction (again)

Andrew DeFaria Andrew.DeFaria@tellabs.com
Sat Sep 24 12:28:00 GMT 2011

On 9/23/2011 12:07 PM, Steve Atkins wrote:
> 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 :) ).
Such popular and current systems! Amiga? Seriously?
>>>   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.
The fix is simple, probably less keystrokes than your last two 
responses... Oh, excuse me. You were not seeking a solution. Never mind 
>>> 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! :)
You can - but why would you? Generally people don't tack on a .exe 
unless they are trying to say something. What are they trying to say?
> (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.)
By "slightly odd" and "dim and distant past" I'd say it's not all that 
frequent nor much of a problem by definition. Why then do you appear to 
fight for it so? It's beyond me. But good luck!
>>> ("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.)
Hmmm... OK, so if you don't want them to fix it, nor want Cygwin to fix 
it, I'll assume the conversation is pretty much over at this point.
>> 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.
So when untarring in Cygwin, which one wins? If configure the shell 
script then my guess is we don't have a problem. So it must be that the 
Windows .exe is overwritting the shell script. Hmmm... What's a old 
bearded, pure Unix guy from Amiga/VMS land doing packing a Windows .exe 
into a tar! He oughta be tarred! And feathered! ;-)
Andrew DeFaria <http://defaria.com>
Always remember you're unique, just like everyone else.

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

More information about the Cygwin mailing list