Thomas Bächler wrote:
Andrew Fyfe schrieb:
Looking at your example I'm assuming you ran it in /dev/shm?
I did. But I was able to reproduce it on a "normal" ext3, which is however mounted with "acl,user_xattr". On an ext3 mounted without those options, it works.
I've just tried the same test on my ubuntu box (glibc-2.6, coreutils-5.97, fakeroot-1.7.1) and all is OK, so my guess at the moment is this is a coreutils issue.
It is a fakeroot issue. Coreutils seems to have introduced yet another change that isn't caught by fakeroot properly.
This problem only happens on tmpfs or a filesystem mounted with the acl option, and it only effects directories. When running on a working fs it copies the directory and chmods it 0700, then it chmods it with it's correct permissions. When running on a tmpfs or an fs with acl it doesn't do the second chmod. Not sure where to go from here, I'm a noob when it comes to C :) Andrew fakeroot debug: /tmp (reiserfs without acl) --------------------------- FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(306:8886), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(306:8886), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(306:8885), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(306:8885), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=1 FAKEROOT: chmod, mode=40700 FAKEROOT: insert_or_overwrite unknown stat: dev:ino=(306:8890), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(306:8890), mode=040700, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(306:8890), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=0 FAKEROOT: chown dev:ino=(306:8890), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=1 FAKEROOT: chmod, mode=40755 /mnt (ext3 with acl) -------------------- FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(308:31297), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(308:31297), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(308:15650), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(308:15650), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=1 FAKEROOT: chmod, mode=40700 FAKEROOT: insert_or_overwrite unknown stat: dev:ino=(308:31298), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(308:31298), mode=040700, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(308:31298), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=0 FAKEROOT: chown dev:ino=(308:31298), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(308:15650), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(308:15650), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(308:15650), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(308:15650), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(308:31298), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(308:31298), mode=040700, own=(0,0), nlink=2, rdev=0 /dev/shm (tmpfs) ---------------- FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(e:13507), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(e:13507), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(e:13506), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(e:13506), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=1 FAKEROOT: chmod, mode=40700 FAKEROOT: insert_or_overwrite unknown stat: dev:ino=(e:13509), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(e:13509), mode=040700, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(e:13509), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=0 FAKEROOT: chown dev:ino=(e:13509), mode=040700, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(e:13506), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(e:13506), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(e:13506), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(e:13506), mode=040755, own=(0,0), nlink=2, rdev=0 FAKEROOT: r=56, received message type=1, message=3 FAKEROOT: process stat oldstate=dev:ino=(e:13509), mode=040755, own=(1000,101), nlink=2, rdev=0 FAKEROOT: (previously known): fake=dev:ino=(e:13509), mode=040700, own=(0,0), nlink=2, rdev=0