From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omta001.cacentral1.a.cloudfilter.net (omta001.cacentral1.a.cloudfilter.net [3.97.99.32]) by sourceware.org (Postfix) with ESMTPS id 6C8A03858D3C for ; Sun, 28 May 2023 04:21:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6C8A03858D3C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=Shaw.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=shaw.ca Received: from shw-obgw-4003a.ext.cloudfilter.net ([10.228.9.183]) by cmsmtp with ESMTP id 2syJqbfGxLAoI37tyqBMmy; Sun, 28 May 2023 04:21:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=shaw.ca; s=s20180605; t=1685247666; bh=mgo8qmIyBkN6Hto1DMHWFZ3o7RIxqmYPfbV+yDY0fZg=; h=Date:Reply-To:Subject:To:Cc:References:From:In-Reply-To; b=gUf+LqztZtYHy0c4NGXTck+t3j+/LroqWRuy+EsqiHIMh3yqf65bGjp05dn/2tOp0 qWzTGfQOgAT+KdQ3z6M9I0NMh18gD282DT4ukg0RAruXQ9lWoBjsbfkf/wFgde4WRg qLWiketMGnyMUR0jaAYXmrN1Jl3z3EtekwXFKxiGK+G2RorZ0nkxg7WK0wle+B781w bOLG7nDDvqCDJ5xhXzp/kEYDKH6/ex5wAiCEKyivLKZ8bIXSBG+hPzbaCl5KgjjK59 b2RAeJvTsd+Sv4836uinn7y+A1NcQh8GiMpqhLUORx2v9Xo+jcRQnaNzRmMbyi+w/L 0kfZbNgqkERBA== Received: from [10.0.0.5] ([184.64.102.149]) by cmsmtp with ESMTP id 37txqbl7Ecyvu37txqg8Jb; Sun, 28 May 2023 04:21:06 +0000 X-Authority-Analysis: v=2.4 cv=VbHkgXl9 c=1 sm=1 tr=0 ts=6472d6b2 a=DxHlV3/gbUaP7LOF0QAmaA==:117 a=DxHlV3/gbUaP7LOF0QAmaA==:17 a=IkcTkHD0fZMA:10 a=k4qw-rNniso6BbSCWIYA:9 a=QEXdDO2ut3YA:10 Message-ID: Date: Sat, 27 May 2023 22:21:05 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Reply-To: cygwin@cygwin.com Subject: Re: inside /bin/tar: cannot change mode Content-Language: en-CA To: cygwin@cygwin.com Cc: Denis Excoffier References: <51B86F63-E8BC-492B-BC5F-8704B164FB17@Denis-Excoffier.org> From: Brian Inglis Organization: Inglis In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4xfGKq6JTrSmnYpjsI+h8wUayDgqDx/GrS4p1dBoFKwnkyqCIY+te6xa2Ri6Si+zB1F6cHhPzKGlscfzoStdthQTwOvUSE+g70PngHAxfP+M2b3/I/eUuc XJ6C/PBrgQu7N2cz86AnkhyBG2sNCwX+eR1Nq1Nz6vnOmCIexs7AENXMzUISOnNLWxpOcsLethnP3K/u9oBvJWnD6GbgEVdtgs5AgMh3viEK0Ep5OogN5NNf X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2023-05-26 00:27, Brian Inglis via Cygwin wrote: > On 2023-05-25 22:52, Denis Excoffier wrote: >>> On 2023-05-25 09:52, Brian Inglis via Cygwin wrote: >>> On 2023-05-24 12:18, Denis Excoffier via Cygwin wrote: >>>> I have an error (about symlinks it seems) that i have never met in years: >>>> Cannot change mode. >>>> Apart from this message (and return code != 0), the ?tar extract? is ok. >>>> % uname -a >>>> CYGWIN_NT-10.0-17763 {edited} 3.5.0-0.295.g3bee68248fc8.x86_64 2023-05-01 >>>> 17:58 UTC x86_64 Cygwin >>>> % cd /tmp; rm -rf mytest mytest.tar >>>> % mkdir mytest >>>> % ln -s b mytest/a >>>> % /bin/tar cf /tmp/mytest.tar mytest >>>> % /bin/tar tvf /tmp/mytest.tar >>>> drwxr-xr-x {edited}/{edited} 0 2023-05-24 13:12 mytest/ >>>> lrwxrwxrwx {edited}/{edited} 0 2023-05-24 13:12 mytest/a -> b >>>> % rm -rf mytest >>>> % /bin/tar xf /tmp/mytest.tar >>>> /bin/tar: mytest/a: Cannot change mode to rwxr-xr-x: Not a directory >>>> /bin/tar: Exiting with failure status due to previous errors >>>> % echo $status >>>> 2 >>>> % >>>> /tmp is under ntfs filesystem, all packages are up to date (e.g. /bin/tar >>>> --version is 1.34). > >>> I recently got this during a package update build, when it decided to tar a >>> build directory, which contained only symlinks to files in the src directory, >>> which the tar did not include, which would have created many dangling symlinks. >>> I fixed the issue by adding -h, --dereference to give chf and tar real files. > > Sorry I failed to make my meaning clear. > The issue may be that tar can not apply file permissions to a symlink target > which does not (yet) exist in the filesystem. > >> I don’t catch this. A symlink, dangling or not, is a normal file. In any case, >> the problem is the >> same if the symlink target is a member in the archive. See for example >> % mkdir -p /tmp/mytest2; cd /tmp/mytest2 >> % tar xf cygwin-devel-3.5.0-0.295.g3bee68248fc8.tar.xz >> /bin/tar: usr/lib/libg.a: Cannot change mode to rwxr-xr-x: Not a directory >> /bin/tar: Exiting with failure status due to previous errors > > What is .../libg.a in the tar file; is it a symlink link or target? > >> I add that my symlinks are default ones, i.e. JUNCTIONS. > > What is your CYGWIN=winsymlinks:... setting: native or nativestrict? > > I have no idea how tar is likely to view or handle a Windows junction, > especially if it has not yet been created! > > The *default* symlinks are *sys*: > > "CYGWIN=winsymlinks:{lnk,native,nativestrict,sys} > If set to just winsymlinks or winsymlinks:lnk, Cygwin creates symlinks as > Windows shortcuts with a special header and the R/O attribute set. > If set to winsymlinks:native or winsymlinks:nativestrict, Cygwin creates > symlinks as native Windows symlinks on filesystems and OS versions supporting them. > The difference between winsymlinks:native and winsymlinks:nativestrict is this: > If the filesystem supports native symlinks and Cygwin fails to create a native > symlink for some reason, it will fall back to creating Cygwin default symlinks > with winsymlinks:native, while with winsymlinks:nativestrict the symlink(2) > system call will immediately fail. > If set to winsymlinks:sys, Cygwin creates symlinks as plain files with the > system attribute, containing a magic cookie followed by the path to which the > link points. > Note that this setting has no effect where Cygwin knows that the filesystem only > supports a creating symlinks in a specific way. > For more information on symbolic links, see the section called “Symbolic links”. Problem seems to be Cygwin 3.5.0 - reinstall Cygwin stable 3.4.6 and the problem goes away! See other thread I just started. -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry