Eric Blake wrote: > According to Eric Blake on 11/13/2009 11:35 AM: >>> Are you approaching a good cut-off point? >> >> I've almost got chown working; expect patches later today. > > Here's my candidate under testing. It passed FreeBSD 7.2, but I still > need to check it on Solaris 9. ... > Subject: [PATCH 1/2] chown: detect Solaris and FreeBSD bug > > Solaris 9 and FreeBSD 7.2 chown("link-to-file/",uid,gid) > mistakenly changes ownership of "file". > > * lib/chown.c (rpl_chown): Work around bug. > * m4/chown.m4 (gl_FUNC_CHOWN): Check for trailing slash bugs. > (gl_PREREQ_CHOWN): Delete. > * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness. > * modules/unistd (Makefile.am): Populate it. > * lib/unistd.in.h (chown): Update declaration. > * lib/lchown.c (chown): Update client. > * modules/lchown (Depends-on): Add lstat. > * doc/posix-functions/chown.texi (chown): Document the bug. > * doc/posix-functions/getgroups.texi (getgroups): Document > getgroups pitfall. > * modules/chown-tests: New file. > * tests/test-chown.h (test_chown): Likewise. > * tests/test-chown.c (main): Likewise.
Looks nice. Solaris 9 and FreeBSD users should be grateful. I'll test after you push. Eventually, it'd be good to factor out your nap function definition, maybe into a module. There is already one copy in test-stat-time.c, and this patch adds two more. I presume they're all identical.