Petr Salinger pointed me at freebsd-hackedutils, which allows me to decode a ktrace and report that my suspicions as to the cause are correct. Here's the behavior of remove() under kfreebsd:
10316 tester CALL unlink(0x6dae88) 10316 tester NAMI "/home/zack/monotone/monotone-0.45/tester_dir/tester-tests/cleanup-1/emptyhomedir" 10316 tester RET unlink -1 errno 1 Operation not permitted 10316 tester CALL write(0x2,0x7fffffffba50,0xa9) 10316 tester GIO fd 2 wrote 169 bytes "[...]error: could not remove '[...]/emptyhomedir': Operation not permitted" Contrast what strace tells me under linux: unlink("/home/zack/monotone/monotone-0.45/tester_dir/tester-tests/cleanup-1/emptyhomedir") = -1 EISDIR (Is a directory) rmdir("/home/zack/monotone/monotone-0.45/tester_dir/tester-tests/cleanup-1/emptyhomedir") = 0 So, you basically just need to patch remove() in libc to try rmdir() on EPERM as well as EISDIR. zw -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org