tools/patch: apply patch for EACCES on xattr copy
authorThomas Weißschuh <thomas@t-8ch.de>
Wed, 9 Nov 2022 04:17:00 +0000 (05:17 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 27 Nov 2022 14:43:08 +0000 (15:43 +0100)
commit8040f74f8d013a7eeca6a45cb52762334361ba06
tree88bf6bcce705bf2893573647c9b60ca6c0b9c5e8
parenteda395a5e09e6ed1f18a74515d3af570294887da
tools/patch: apply patch for EACCES on xattr copy

When compiling OpenWRT on a compressed btrfs volume the build fails in
libtool.
The file `libltdl/config/ltmain.m4sh` from `libtool-2.4.2.tar.xz` is
missing write permissions, therefore patch falls back to copying the
file and patching that. During this patch tries to preserve all file
attribute on the new copy.
However the attribute `btrfs.compression` is privileged and btrfs return
EACCES.
While patch ignores multiple other error codes during the copy of xattr
copy it is not prepared for EACCES and aborts.

EACCES should be ignored the same way as the other errors.

Build log:
```
...
Applying ./patches/000-relocatable.patch using plaintext:
patching file libltdl/config/general.m4sh
patching file libtoolize.in
patching file libtoolize.m4sh
patching file libltdl/m4/libtool.m4

Applying ./patches/100-libdir-fixes.patch using plaintext:
patching file libltdl/config/ltmain.m4sh
File libltdl/config/ltmain.sh is read-only; trying to patch anyway
patching file libltdl/config/ltmain.sh
patch: setting attribute btrfs.compression for btrfs.compression: Permission denied
Patch failed!  Please fix ./patches/100-libdir-fixes.patch!
```

Link: https://lists.gnu.org/archive/html/bug-patch/2022-11/msg00000.html
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
(cherry picked from commit 0d375de10dac3160c65c264bb91a5137ef4c0817)
tools/patch/Makefile
tools/patch/patches/070-don-t-fail-hard-on-EACCES-when-copying-xattrs.patch [new file with mode: 0644]