* inside /bin/tar: cannot change mode
@ 2023-05-24 18:18 Denis Excoffier
2023-05-25 7:52 ` Brian Inglis
0 siblings, 1 reply; 6+ messages in thread
From: Denis Excoffier @ 2023-05-24 18:18 UTC (permalink / raw)
To: cygwin; +Cc: Denis Excoffier
Hello,
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).
Regards,
Denis Excoffier.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: inside /bin/tar: cannot change mode
2023-05-24 18:18 inside /bin/tar: cannot change mode Denis Excoffier
@ 2023-05-25 7:52 ` Brian Inglis
2023-05-26 4:52 ` Denis Excoffier
0 siblings, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2023-05-25 7:52 UTC (permalink / raw)
To: cygwin
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.
--
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: inside /bin/tar: cannot change mode
2023-05-25 7:52 ` Brian Inglis
@ 2023-05-26 4:52 ` Denis Excoffier
2023-05-26 6:27 ` Brian Inglis
0 siblings, 1 reply; 6+ messages in thread
From: Denis Excoffier @ 2023-05-26 4:52 UTC (permalink / raw)
To: Brian Inglis, cygwin; +Cc: Denis Excoffier
> 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.
>
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
%
I add that my symlinks are default ones, i.e. JUNCTIONS.
Denis Excoffier.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: inside /bin/tar: cannot change mode
2023-05-26 4:52 ` Denis Excoffier
@ 2023-05-26 6:27 ` Brian Inglis
2023-05-28 4:21 ` Brian Inglis
0 siblings, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2023-05-26 6:27 UTC (permalink / raw)
To: cygwin; +Cc: Denis Excoffier
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”.
--
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: inside /bin/tar: cannot change mode
2023-05-26 6:27 ` Brian Inglis
@ 2023-05-28 4:21 ` Brian Inglis
2023-05-29 8:13 ` Denis Excoffier
0 siblings, 1 reply; 6+ messages in thread
From: Brian Inglis @ 2023-05-28 4:21 UTC (permalink / raw)
To: cygwin; +Cc: Denis Excoffier
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: inside /bin/tar: cannot change mode
2023-05-28 4:21 ` Brian Inglis
@ 2023-05-29 8:13 ` Denis Excoffier
0 siblings, 0 replies; 6+ messages in thread
From: Denis Excoffier @ 2023-05-29 8:13 UTC (permalink / raw)
To: cygwin; +Cc: Denis Excoffier
> On 2023-05-28 06:21, Brian Inglis wrote:
>
> 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.
Thank you for your help. I’ll stick to pre-2.5.0 for the moment.
Denis Excoffier.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-06-02 10:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-24 18:18 inside /bin/tar: cannot change mode Denis Excoffier
2023-05-25 7:52 ` Brian Inglis
2023-05-26 4:52 ` Denis Excoffier
2023-05-26 6:27 ` Brian Inglis
2023-05-28 4:21 ` Brian Inglis
2023-05-29 8:13 ` Denis Excoffier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).