Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 Message-ID: <000701c1df64$9d0070e0$ca00660a@etp2> From: "Andrew Chang" To: "Ivan Dobrianov" , Cc: References: <3CB23EF3 DOT 1040504 AT cornell DOT edu> Subject: Re: tar won't restore permissions Date: Mon, 8 Apr 2002 18:19:36 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 FYI... I am confirming this bug, I have to use my own version of tar to get BitKeeper to pass regression test in the cygwin env.. ( I forgot what my hack was , but probably similar) Andrew ----- Original Message ----- From: "Ivan Dobrianov" To: Cc: ; Sent: Monday, April 08, 2002 6:08 PM Subject: Re: tar won't restore permissions > Ok, I posted this question more than a year ago ... and the problem is > still present in the latest Cygwin builds: > > tar xpvf myArchive.tar > > will not restore read-only permissions, i.e. files with r-- perms will > get rw- permission when restored!!! I am seeing this on Win NT, 2000, > and XP on FAT32 and NTFS with and without setting $CYGWIN to ntea or > ntfs. This used to work right in the days of B20. > > I. To see the bug: > 1) copy the follwing text to a file called "demo" > ----------------------------------------------------- > echo " " > > [ -d tar_bug ] || mkdir tar_bug > cd tar_bug > rm -rf * > > cat > myFile< qwerty > EOF > > chmod 444 myFile > ls -l myFile > > tar cvf myArchive.tar myFile > tar tvf myArchive.tar > > sleep 2 > > mkdir untarred > cd untarred > tar xpvf ../myArchive.tar -U > > ls -l > -------------------------------------------------------- > 2) Do: > sh demo > > 3) I get the follwing output: > -------------------------------------------------------- > -r--r--r-- 1 administ None 8 Jan 20 11:55 myFile > myFile > -r--r--r-- administrator/None 8 2001-01-20 11:55:14 myFile > myFile > total 0 > -rw-r--r-- 1 administ None 8 Jan 20 11:55 myFile > -------------------------------------------------------- > > *** Note that myFile is writable in the end! *** > > NOTE: Yes, if you "CYGWIN=ntea" under NTFS, the problem _SEEMS_ to get > fixed, but upon inspection, with say Explorer, it turns out the file is > still writable - the problem is just being masked! > > II. The fix. > > Well, I have a tweaked version of tar-1.13.19-1 which seems to work > fine. Here is the hacky patch of extract.c that does the trick > -------------------------------------------------------- > ~/tar_fix > diff extract.c_DUP_00 extract.c > 125a126,127 > > /* printf ("File: %s\n", file_name); */ > > > 135c137,139 > < if (permstatus == ARCHIVED_PERMSTATUS > --- > > /* Ivan says: for whatever reason the caller THINKS the mode is ok, > > but it is not, at least under Win NT w/ cygwin */ > > if (0 && permstatus == ARCHIVED_PERMSTATUS > 158a163,164 > > > > /* printf ("File: %s -> mode: %o\n", file_name, mode); */ > ~/tar_fix > > -------------------------------------------------------- > > I don't know if this is the "right" way to fix the problem - probably it > is not! I'll leave it to more knowledgeable people to do the real thing > ... or point the workaround that has been eluding me for that past > year and more :-) -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/