http://bugs.winehq.org/show_bug.cgi?id=19858
Summary: cygwin tar upset it can't change timestamps; breaks build of cygwin's bash Product: Wine Version: 1.1.23 Platform: PC URL: http://cygwin.com OS/Version: Linux Status: NEW Keywords: download, source Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
To debug bug 19856, I decided to try to build cygwin's bash from source so I could see why it refuses to run some commands. Hilarity ensued.
To repeat: 1) run $ winetricks cygwin and select gcc, automake, patch, and cygport
2) start a cygwin shell $ cd ~/.wine/drive_c/cygwin $ wine wineconsole cmd /c cygwin.bat then use that for all further commands
3) read 'man cygport'
4) download the bash source package from your favorite cygwin mirror, e.g. $ wget http://cygwin.osuosl.org/release/bash/bash-3.2.49-22-src.tar.bz2
5) unpack the source tarball and use cygport to prepare and build it $ mkdir temp $ cd temp $ tar -xjvf ../bash-3.2.49-22-src.tar.bz2 $ cygport prep bash*cygport
First problem: when cygport prep tries to unpack the inner tarball, it has a conniption fit because tar can't adjust the timestamps on its output files.
... tar: bash-3.2/tests/history.list: Kann utime nicht ausführen: Permission denied tar: bash-3.2/ABOUT-NLS: Kann utime nicht ausführen: Permission denied tar: Exiting with failure status due to previous errors + warn 'tar zxf bash-3.2.tar.gz failed'
Here's a minimal linux commandline to reproduce: gunzip bash-3.2.tar.gz wineconsole 'c:\cygwin\bin\tar.exe' -xf bash-3.2.tar bash-3.2/examples/bashdb/PERMISSION
Looks like tar creates the file, then tries to create it again, and gets confused? Maybe cygwin is cleverly trying to use NtCreateFile somehow to change its timestamp... I'll attach a log.
Workaround: edit cygwin's /bin/cygport and change the two lines warn "${unpack_cmd} ${unpack_file_name} failed" to say echo "${unpack_cmd} ${unpack_file_name} failed"
I'll file more bugs for the rest of the process.