X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=3.4 required=5.0 tests=AWL,BAYES_00,BOTNET,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Message-id: <4E7BE736.1060008@cygwin.com> Date: Thu, 22 Sep 2011 21:56:06 -0400 From: "Larry Hall (Cygwin)" Reply-to: cygwin AT cygwin DOT com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20110902 Thunderbird/6.0.2 MIME-version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: tar deletes .exe files on extraction (again) References: In-reply-to: Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 9/22/2011 4:57 PM, Steve Atkins wrote: > In the process of trying to build Qt on Windows in a cygwin shell, I've > discovered that neither tar nor unzip will work reliably under Cygwin - > untaring an archive will not correctly create the files that the archive > contains. The "configure.exe" that's required to build Qt is never extracted > from the tarball. > > The problem is that the cygwin filesystem shims consider "configure" and > "configure.exe" to be almost the same, despite their having different > filenames, so when tar extracts an archive containing both it ends up > deleting the existing "configure.exe" when it creates "configure". > > This was discussed a couple of years ago - > http://cygwin.com/ml/cygwin/2009-08/msg00293.html - and the conclusion > seemed to be that cygwin was working as designed, and the user just > shouldn't ever be doing anything that requires both "foo" and "foo.exe" > under cygwin, and that if they do want to do that, they probably shouldn't > be using cygwin. > > That seems like a fairly nasty limitation / bug, and makes use of the > cygwin shell a bit too brittle to rely on for build automation - I'm > wondering if anyone knows if there's been any change in the situation since > then? No, no change and probably not likely to be anytime soon. By using the Windows build environment for QT, you're trying to force a Windowsism into Cygwin's POSIX environment. The transparency of the ".exe" extension is already a concession to a Windowsism, namely that executables must have a .exe extension. Cygwin needed to support this one though to make allot of POSIX scripts work without alteration. That may cause breakage in corner cases like the QT Windows build environment but that's the (far) lesser of two evils. Cygwin's striving to provide a POSIX environment in a Win32 environment after all. I know nothing about the QT build environment but from what you've said, it doesn't sound like it's assuming a POSIX environment for building on Windows. I'd recommend sticking with tools that conform to the Windows requirements if you're building for Windows. That said, going forward, there may come a day when all Cygwin executables no longer have the .exe extension, which was really an interoperability concession to Windows 9x/Me platforms. Cygwin 1.7 doesn't support 9x/Me, so the concession is now largely a historical one and could possibly be changed. But even if it were to happen, it would be a big undertaking due to the number of Cygwin packages that would be affected (i.e. all). It would take quite a while to trickle down to the majority of packages. And only at that point might it make sense to remove the transparent handling of exe. So that brings me back to my opening statement. :-) -- Larry _____________________________________________________________________ A: Yes. > Q: Are you sure? >> A: Because it reverses the logical flow of conversation. >>> Q: Why is top posting annoying in email? -- 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