On Thu, 10 Apr 2014, Andreas Grünbacher wrote:
Russ,
2014-04-09 6:53 GMT+02:00 Russ Whitaker <[email protected]>:
Applying patch using --verbose I get:
Hunk#1 succeeded
Changing attruvutes for <filename>: Operation not supported
when compiled in, patch tries to preserve file attributes, for example:
$ echo a > f
$ setfattr -n user.name -v value f
Trying your example, got "Operation not supported" here, too.
$ cat > ab.diff
--- f
+++ f
@@ -1 +1 @@
-a
+b
^D
$ patch f < ab.diff
Used strace, resulting strace output attached.
$ getfattr -d f
# file: f
user.name="value"
I assume you get the error message with and without --verbose.
Yes.
What does strace show in your case?
Thank you for reminding me of strace, I had forgotten it.
Only thing I noticed in the strace output was /etc/xattr.conf not found.
Slackware attr package doesn't have an xattr.conf either.
What would you suggest?
Russ
Andreas
execve("/usr/bin/patch", ["patch", "f"], [/* 33 vars */]) = 0
brk(0) = 0x9ee000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f07bf207000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=178995, ...}) = 0
mmap(NULL, 178995, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f07bf1db000
close(3) = 0
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\23\0\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=17512, ...}) = 0
mmap(NULL, 2112792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f07bede1000
mprotect(0x7f07bede5000, 2093056, PROT_NONE) = 0
mmap(0x7f07befe4000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f07befe4000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\36\2\0\0\0\0\0"...,
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2098910, ...}) = 0
mmap(NULL, 3965536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f07bea18000
mprotect(0x7f07bebd7000, 2093056, PROT_NONE) = 0
mmap(0x7f07bedd6000, 24576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1be000) = 0x7f07bedd6000
mmap(0x7f07beddc000, 16992, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f07beddc000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f07bf1da000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f07bf1d8000
arch_prctl(ARCH_SET_FS, 0x7f07bf1d8740) = 0
mprotect(0x7f07bedd6000, 16384, PROT_READ) = 0
mprotect(0x7f07bf208000, 4096, PROT_READ) = 0
munmap(0x7f07bf1db000, 178995) = 0
brk(0) = 0x9ee000
brk(0xa11000) = 0xa11000
rt_sigaction(SIGCHLD, {SIG_DFL, [CHLD], SA_RESTORER|SA_RESTART,
0x7f07bea4ee50}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0x407520, [], SA_RESTORER, 0x7f07bea4ee50}, NULL, 8) = 0
rt_sigaction(SIGPIPE, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, {0x407520, [], SA_RESTORER, 0x7f07bea4ee50}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0x407520, [], SA_RESTORER, 0x7f07bea4ee50}, NULL, 8) = 0
rt_sigaction(SIGXCPU, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGXCPU, {0x407520, [], SA_RESTORER, 0x7f07bea4ee50}, NULL, 8) = 0
rt_sigaction(SIGXFSZ, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGXFSZ, {0x407520, [], SA_RESTORER, 0x7f07bea4ee50}, NULL, 8) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x407520, [], SA_RESTORER, 0x7f07bea4ee50}, NULL, 8) = 0
fstat(0, {st_mode=S_IFREG|0644, st_size=30, ...}) = 0
fstat(0, {st_mode=S_IFREG|0644, st_size=30, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f07bf206000
lseek(0, 0, SEEK_CUR) = 0
lseek(0, 0, SEEK_SET) = 0
read(0, "--- f\n+++ f\n@@ -1 +1 @@\n-a\n+b\n", 4096) = 30
lstat("f", {st_mode=S_IFREG|0644, st_size=2, ...}) = 0
lseek(0, 30, SEEK_SET) = 30
access("f", W_OK) = 0
getpid() = 21889
lstat("./f.o7cZfkQ", 0x7fff2979de70) = -1 ENOENT (No such file or directory)
open("./f.o7cZfkQ", O_WRONLY|O_CREAT|O_EXCL, 0100644) = 3
fcntl(3, F_GETFL) = 0x8001 (flags O_WRONLY|O_LARGEFILE)
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f07bf205000
lseek(3, 0, SEEK_CUR) = 0
open("f", O_RDONLY) = 4
read(4, "a\n", 2) = 2
close(4) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(4, 2), ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS,
{B38400 opost isig icanon echo ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f07bf204000
write(1, "patching file f\n", 16) = 16
lseek(0, 30, SEEK_SET) = 30
read(0, "", 4096) = 0
lseek(0, 0, SEEK_SET) = 0
read(0, "--- f\n+++ f\n@@ -1 +1 @@\n-a\n+b\n", 30) = 30
read(0, "", 4096) = 0
write(3, "b\n", 2) = 2
fstat(3, {st_mode=S_IFREG|0644, st_size=2, ...}) = 0
close(3) = 0
munmap(0x7f07bf205000, 4096) = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT PIPE TERM XCPU XFSZ], [], 8) = 0
geteuid() = 1000
getegid() = 100
llistxattr("f", NULL, 0) = 17
llistxattr("f", "security.selinux\0", 17) = 17
open("/etc/xattr.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
lgetxattr("f", "security.selinux", 0x0, 0) = 10
lgetxattr("f", "security.selinux", "unlabeled", 10) = 10
lsetxattr("./f.o7cZfkQ", "security.selinux", "unlabeled", 10, 0) = -1
EOPNOTSUPP (Operation not supported)
write(2, "patch: setting attributes for ./"..., 67) = 67
unlink("./f.o7cZfkQ") = 0
exit_group(2) = ?
+++ exited with 2 +++