X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=ChangeLog;h=1768d740dfe59bcbcafd30a4a87cf4c2feba8f2c;hb=4754ac9d681d36e16e92a1b08efb1d334d7b3829;hp=4b78fa0d0c086cf5229d6bc76a682e01e5b57764;hpb=add9fba5e1e248ac77e6abe31749a10cd2672d77;p=gnulib.git diff --git a/ChangeLog b/ChangeLog index 4b78fa0d0..1768d740d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,522 @@ +2009-10-12 Eric Blake + + sys_stat: guarantee struct timespec + * lib/sys_stat.in.h (includes): Always include + * modules/sys_stat (Depends-on): Add time. + * tests/test-sys_stat.c: Guarantee struct timespec, as well as + mode_t permission values. + * doc/posix-headers/sys_stat.texi (sys/stat.h): Document how to + get at subsecond timestamps. + +2009-10-10 Eric Blake + + futimens: new module + * modules/futimens: New file. + * lib/futimens.c (futimens): Likewise. + * m4/futimens.m4 (gl_FUNC_FUTIMENS): Likewise. + * lib/utimens.c (futimens): Avoid recursion into rpl_futimens, so + we can work around Linux bugs. + * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses. + * modules/sys_stat (Makefile.am): Substitute them. + * lib/sys_stat.in.h (futimens): Declare it. + * MODULES.html.sh (systems lacking POSIX:2008): Mention module. + * doc/posix-functions/futimens.texi (futimens): Likewise. + * modules/futimens-tests: New test. + * tests/test-futimens.c: Likewise. + + utimens: introduce fdutimens + * lib/utimens.h (fdutimens): New prototype. + * lib/utimens.c (gl_futimens): Move guts... + (fdutimens): ...to new interface. + * tests/test-utimens.c (do_fdutimens): Use it. + + utimens: add UTIME_NOW and UTIME_OMIT support + * lib/utimens.c (validate_timespec, update_timespec): New helper + functions. + (gl_futimens, lutimens): Use them. + * modules/utimens (Depends-on): Add gettime, lstat, stat-time, + stdbool, sys_stat. + (Link): Mention resulting library dependency. + * modules/utimecmp (Link): Likewise. + * modules/utimens-tests (Depends-on): Drop stat-time, stdbool. + (Makefile.am): Pick up library dependency. + * lib/sys_stat.in.h (UTIME_NOW, UTIME_OMIT): Guarantee a + definition. + * tests/test-sys_stat.c: Test the definitions. + * doc/posix-headers/sys_stat.texi (sys/stat.h): Document this. + * NEWS: Document library dependency. + + utimecmp: support symlink timestamps + * lib/utimecmp.c (utimecmp): Use new interface. Skip effort of + hashing when possible. Use pathconf when available. + (SYSCALL_RESOLUTION): Recognize tighter resolution. + * modules/utimecmp (Depends-on): Add lstat. + + utimens: add lutimens interface + * lib/utimens.c (lutimens): New function. + * m4/utimens.m4 (gl_UTIMENS): Check for lutimes. + * lib/utimens.h (lutimens): Declare new interface. + * tests/test-utimens.c (main): Enhance test. + * tests/test-lutimens.h (test_lutimens): New file. + * modules/utimens-tests (Files): Distribute it. + (Depends-on): Add symlink. + (configure.ac): Check for usleep. + + utimens: validate futimens usage + * lib/utimens.c (gl_futimens): Require valid fd up front, using + fewer syscalls on failure later on. Avoid compiler warning on + mingw. + * modules/utimens (Depends-on): Add dup2. + + utimens: add test + * modules/utimens-tests: New test. + * tests/test-utimens.h: New file. + * tests/test-futimens.h: Likewise. + * tests/test-utimens.c: Likewise. + + doc: mention timestamp portability issues + * doc/glibc-functions/lutimes.texi (lutimes): Refer to utimensat + instead. + * doc/posix-functions/utime.texi (utime): Likewise. + * doc/posix-functions/utimes.texi (utimes): Likewise. + * doc/glibc-functions/futimes.texi (futimes): Refer to futimens + instead. + * doc/posix-functions/futimens.texi (futimens): Mention utimens + module. + * doc/posix-functions/utimensat.texi (utimensat): Likewise. + Mention weakness with symlink timestamps. + * doc/glibc-functions/futimesat.texi (futimesat): New file; refer + to utimensat/futimens instead. + * doc/gnulib.texi (Glibc sys/time.h): Include new file. + + test-dup2: enhance test + * tests/test-dup2.c (main): Also check AT_FDCWD. + + test-stat-time: avoid more spurious failures + * tests/test-stat-time.c (nap): Wait for 15ms rather than 2ms, for + xfs; and avoid race if the two timestamps cross quantization edge. + + relocatable: prefer 'file system' over 'filesystem' + * m4/relocatable-lib.m4 (gl_RELOCATABLE_NOP): Use AS_HELP_STRING. + (gl_RELOCATABLE_LIBRARY_BODY): Fix spelling. + * doc/relocatable-maint.texi (Supporting Relocation): Likewise. + * doc/relocatable.texi (Enabling Relocatability): Likewise. + * lib/relocatable.c (compute_curr_prefix): Likewise. + +2009-10-10 Jim Meyering + + stat-time-tests: check for the usleep function + * modules/stat-time-tests (configure.ac): Now that we test HAVE_USLEEP. + +2009-10-10 Bruno Haible + + * modules/xnanosleep: Put the Link section after the Include section. + +2009-10-09 Eric Blake + + dup2: work around FreeBSD 6.1 bug + * m4/dup2.m4 (gl_FUNC_DUP2): Detect bug. + * doc/posix-functions/dup2.texi (dup2): Document it. + Reported by Nelson H. F. Beebe and Jim Meyering. + + test-stat-time: port to buggy NFS clients + * tests/test-stat-time.c (main) [W32]: Reduce ifdefs. + (test_ctime): Also skip test if mtime and ctime are skewed. + + maint: prefer 'file system' over 'filesystem' + * doc/posix-functions/fstatat.texi (fstatat): Likewise. + * doc/posix-functions/lstat.texi (lstat): Likewise. + * lib/file-has-acl.c (file_has_acl): Likewise. + * lib/fwriteerror.c [TEST]: Likewise. + * tests/test-areadlink.h (test_areadlink): Likewise. + * tests/test-areadlinkat-with-size.c (main): Likewise. + * tests/test-areadlinkat.c (main): Likewise. + * tests/test-canonicalize-lgpl.c (main): Likewise. + * tests/test-canonicalize.c (main): Likewise. + * tests/test-fstatat.c (main): Likewise. + * tests/test-linkat.c (main): Likewise. + * tests/test-lstat.h (test_lstat_func): Likewise. + * tests/test-mkdir.h (test_mkdir): Likewise. + * tests/test-readlink.h (test_readlink): Likewise. + * tests/test-remove.c (main): Likewise. + * tests/test-rename.h (test_rename): Likewise. + * tests/test-renameat.c (main): Likewise. + * tests/test-rmdir.h (test_rmdir_func): Likewise. + * tests/test-symlink.h (test_symlink): Likewise. + * tests/test-symlinkat.c (main): Likewise. + * tests/test-unlink.h (test_unlink_func): Likewise. + * tests/test-unlinkat.c (main): Likewise. + + maint: make realtime library usage explicit + * modules/gethrxtime (Link): Mention LIB_GETHRXTIME. + * modules/gettime (Link): Mention LIB_CLOCK_GETTIME. + * modules/settime (Link): Likewise. + * modules/xnanosleep (Link): Mention LIB_NANOSLEEP. + + test-stat-time: speed up execution + * tests/test-stat-time.c (test_ctime) [!W32]: Avoid compiler + warning on mingw. + (nap): New helper function. + (prepare_test): Use it to reduce sleep time. + (test_mtime, test_ctime, test_birthtime): Allow for subsecond + execution. + * modules/stat-time-tests (configure.ac): Check for usleep. + +2009-10-09 Jim Meyering + + selinux-h: always use getfilecon wrappers + * lib/getfilecon.c: New file. + * lib/se-selinux.in.h: Use a better inclusion guard symbol name. + [HAVE_SELINUX_SELINUX_H]: Include-next . + [!HAVE_SELINUX_SELINUX_H]: Use better parameter names. + (fgetfilecon): Provide a stub. + * m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Don't + AC_SUBST SELINUX_SELINUX_H, since now we're generating that + file unconditionally. + When is found, arrange to use wrappers. + * modules/selinux-h (Files): Add getfilecon.c. + (Makefile.am): Substitute include-next-related bits + into the now-always-generated selinux/selinux.h file. + * doc/glibc-functions/lgetfilecon.texi: New file. + * doc/glibc-functions/fgetfilecon.texi: New file. + * doc/glibc-functions/getfilecon.texi: New file. + * doc/glibc-functions/getfilecon-desc.texi: New file. + * doc/gnulib.texi (Glibc selinux/selinux.h): New section, by + which to pull in the new files. + * MODULES.html.sh (Misc): Add selinux-h. + +2009-10-08 Jim Meyering + + unistd: fix comment typo + * lib/unistd.in.h (euidaccess): Fix a comment typo. + +2009-10-08 Eric Blake + + areadlink: use SIZE_MAX consistently + * modules/areadlink (Depends-on): Add stdint. + * modules/areadlink-with-size (Depends-on): Likewise. + * lib/areadlink-with-size.c (includes): Drop stdio, since stdlib + gives NULL; drop sys/types, since unistd gives size_t; and add + stdint for SIZE_MAX. + (SIZE_MAX): Rely on headers. + * lib/areadlinkat-with-size.c (includes): Drop stdio, sys/types, + and add stdint. + * lib/areadlink.c (includes): Drop sys/types, and add stdint. + (SIZE_MAX): Likewise. + (INITIAL_BUF_SIZE): Turn into enum. + * lib/areadlinkat.c (INITIAL_BUF_SIZE): Likewise. + +2009-10-08 Jim Meyering + + areadlinkat: avoid compilation failure + * lib/areadlinkat.c: Include for use of SIZE_MAX. + Fix typo in comment. + +2009-10-07 Eric Blake + + areadlinkat-with-size: new module + * modules/areadlinkat-with-size: New module. + * lib/areadlinkat-with-size.c (areadlinkat_with_size): New file. + * lib/areadlink.h (areadlinkat): Declare it. + * MODULES.html.sh (File system functions): Mention it. + * modules/areadlinkat-with-size-tests: New test. + * tests/test-areadlinkat-with-size.c: New file. + + xreadlinkat: new module + * modules/xreadlinkat: New module. + * lib/xreadlinkat.c (xreadlinkat): New file. + * lib/xreadlink.h (xreadlinkat): Declare it. + * MODULES.html.sh (File system functions): Mention it. + + areadlinkat: new module + * lib/at-func.c (FUNC_FAIL): New define. + (AT_FUNC_NAME, VALIDATE_FLAG): Use it rather than raw -1. + * modules/areadlinkat: New module. + * lib/linkat.c (areadlinkat): Move... + * lib/areadlinkat.c (areadlinkat): ...to new file. + * lib/areadlink.h (areadlinkat): Declare it. + * modules/linkat (Depends-on): Add areadlinkat. + * MODULES.html.sh (File system functions): Mention it. + * modules/areadlinkat-tests: New test. + * tests/test-areadlinkat.c: New file. + + areadlink, areadlink-with-size: add tests + * modules/areadlink-tests: New test. + * modules/areadlink-with-size-tests: Likewise. + * tests/test-areadlink.h: New file. + * tests/test-areadlink.c: Likewise. + * tests/test-areadlink-with-size.c: Likewise. + + maint: minor cleanups + * lib/fts.c (ATTRIBUTE_UNUSED): Delete; use gnulib-guaranteed + _UNUSED_PARAMETER_ instead. + * lib/getdate.y (ATTRIBUTE_UNUSED): Likewise. + * lib/utimens.c (ATTRIBUTE_UNUSED): Likewise. + * modules/linkat-tests (Files): Distribute test-link.h. + + openat, utimens: whitespace cleanup + * lib/openat.c: Prefer space throughout, rather than mix of 8 + spaces vs. tabs. + * lib/at-func.c: Likewise. + * lib/utimens.c: Likewise. + + openat: avoid using wrong fd + * lib/openat.c (openat_permissive): Reject user's fd if saving the + working directory chooses same fd. + * lib/at-func.c (AT_FUNC_NAME): Likewise. + + mkdir, mkdirat: fix cygwin 1.5.x bug + * lib/mkdir.c (rpl_mkdir) [FUNC_MKDIR_DOT_BUG]: Work around bug. + * m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Move... + * m4/mkdir.m4 (gl_FUNC_MKDIR): ...here, and add check for cygwin + bug. + (gl_PREREQ_MKDIR): Delete unused macro. + * modules/mkdir (Files): Track file rename. + (configure.ac): Update macro name. + * modules/openat (Depends-on): Add mkdir. + * doc/posix-functions/mkdir.texi (mkdir): Document the bug. + + mkdir, mkdirat: add tests + * modules/mkdir-tests: New test. + * tests/test-mkdir.h: New file. + * tests/test-mkdir.c: Likewise. + * tests/test-mkdirat.c: Likewise. + * modules/openat-tests (Files): Add new files. + (Makefile.am): Run new test. + +2009-10-06 Eric Blake + + doc: tweak *at function documentation + * doc/posix-functions/faccessat.texi (faccessat): Mention + known issue with replacement. + * doc/posix-functions/fchdir.texi (fchdir): Likewise. + * doc/posix-functions/linkat.texi (linkat): Likewise. + * doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise. + * doc/posix-functions/mknodat.texi (mknodat): Likewise. + * doc/posix-functions/readlinkat.texi (readlinkat): Likewise. + * doc/posix-functions/renameat.texi (renameat): Likewise. + * doc/posix-functions/symlinkat.texi (symlinkat): Likewise. + + openat: fix GNU/Hurd bug in unlinkat + * m4/openat.m4 (gl_FUNC_OPENAT): Replace unlinkat if unlink is + broken. + * doc/posix-functions/unlink.texi (unlink): Document this. + * doc/posix-functions/unlinkat.texi (unlinkat): Likewise. + + fdopendir: fix GNU/Hurd bug + * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for Hurd bug in + allowing non-directory fds. + * lib/fdopendir.c (rpl_fdopendir): Work around it. + * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness. + * modules/dirent (Makefile.am): Substitute it. + * lib/dirent.in.h (fdopendir): Declare replacement. + * doc/posix-functions/fdopendir.texi (fdopendir): Document this. + * tests/test-fdopendir.c (main): Test something other than + /dev/null, since on Hurd that behaves like a directory. + + test-symlink: port to GNU/Hurd + * tests/test-symlink.h (test_symlink): Relax expected errno. + + doc: tweak more cygwin information + * doc/glibc-headers/getopt.texi (getopt.h): Cygwin 1.7 getopt is + now compatible with glibc. + * doc/posix-functions/getopt.texi (getopt): Likewise. + + getopt-gnu: add another test + * tests/test-getopt_long.h (test_getopt_long_posix): New test, to + guarantee behavior relied on by m4. + * tests/test-getopt.c (main): Use it. + * modules/getopt-posix-tests (Depends-on): Add setenv. + See http://lists.gnu.org/archive/html/bug-m4/2006-09/msg00028.html. + + getopt: fix compilation on darwin + * lib/getopt.in.h (includes): Leave breadcrumbs during system + include. + * lib/unistd.in.h (getopt): Use them to avoid recursive include. + Reported by Ludovic Courtès. + +2009-10-06 Bruno Haible + + * modules/size_max (Description): Discourage its use. + Reported by Simon Josefsson. + +2009-10-06 Jim Meyering + + linkat: avoid compilation failure + * lib/linkat.c: Include for use of SIZE_MAX. + +2009-10-05 Eric Blake + + linkat: support Linux 2.6.17 + * m4/linkat.m4 (gl_FUNC_LINKAT): Default to always replacing + linkat on Linux, but allow cache variable override. + * lib/linkat.c (rpl_linkat): Define override. + * modules/linkat (Depends-on): Add symlinkat. + * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add new default. + * modules/unistd (Makefile.am): Substitute it. + * lib/unistd.in.h (linkat): Declare replacement. + Reported by Pádraig Brady. + + quotearg: port test to systems with C.UTF-8 locale + * tests/test-quotearg.c (struct result_strings): Add another + member, differentiating between C.ASCII and C.UTF-8 handling. + (compare_strings): Add parameter. + (main): Adjust all callers. + + getopt: avoid clash with FreeBSD _getopt_internal + * lib/getopt.in.h (_getopt_internal): Override the name. + * lib/getopt_int.h (includes): Pick up any overrides. + Reported by Reuben Thomas. + + hash: allow C89 compilation + * lib/hash.c (check_tuning): Move declaration before statement. + Reported by Reuben Thomas. + +2009-10-05 Karl Berry + + * doc/gnulib.texi: @include execvpe.texi, missing for several days. + +2009-10-04 Paolo Bonzini + Bruno Haible + + * lib/uname.c (uname): Use a table-driven algorithm to compute + Windows NT versions. + +2009-10-04 Bruno Haible + + * lib/progname.c (set_program_name): Also remove the "lt-" prefix from + program_invocation_short_name. + * modules/progname (configure.ac): Test for presence of + program_invocation_short_name. + Reported by Sergey Poznyakoff . + +2009-10-04 Bruno Haible + + * lib/progname.c (set_program_name): Fix comment. + Reported by Jim Meyering. + +2009-10-03 Paolo Bonzini + Bruno Haible + + * lib/uname.c: Include . + (uname): Do only one call to GetVersionEx in the common case. + +2009-10-03 Paolo Bonzini + Bruno Haible + + * lib/uname.c (VER_PLATFORM_WIN32_CE, PROCESSOR_ARCHITECTURE_AMD64, + PROCESSOR_ARCHITECTURE_IA32_ON_WIN64): Define fallbacks. + (uname): Add support for Windows CE and various non-x86 CPU types. + +2009-10-03 Bruno Haible + + * gnulib-tool (func_create_testdir): Conditionally emit AM_PROG_CC_C_O + invocation to tests/configure.ac. + Reported by Ian Beckwith . + +2009-10-02 Eric Blake + + fchdir: avoid compiler warning + * lib/fchdir.c (canonicalize_file_name) + [!HAVE_CANONICALIZE_FILE_NAME]: Avoid compiler warning on mingw. + + test-open: support mingw errno values + * tests/test-open.h (test_open): Relax test. + * tests/test-fopen.h (test_fopen): Likewise. + * tests/test-openat-safer.c (main): Likewise. + + open: fix opening directory on mingw + * lib/open.c (open) [REPLACE_OPEN_DIRECTORY]: Correct typo. + + test-open: on GNU/Hurd, /dev/null is a directory + * tests/test-fopen.h (main): Rename... + (test_fopen): ...to this. Use a guaranteed non-directory when + confirming open behavior on trailing slash. + * tests/test-openat-safer.c (main): Likewise. + * tests/test-open.h (main): Likewise.... + (test_open): ...to this. + * tests/test-fopen.c (main): Adjust caller. + * tests/test-fopen-safer.c (main): Likewise. + * tests/test-open.c (main): Likewise. + * tests/test-fcntl-safer.c (main): Likewise. + Reported by Samuel Thibault. + + rename, fchdir: don't ignore chdir failure + * lib/fchdir.c (get_name): Abort on unexpected chdir failure. + * lib/rename.c (rpl_rename) [W32]: Likewise. + (rpl_rename) [RENAME_DEST_EXISTS_BUG]: Avoid one case of losing + an empty destination directory if source cannot be renamed, + although there is still possibility for failure. + * doc/posix-functions/rename.texi (rename): Document the race. + Reported by Jim Meyering. + + maint: cleanup whitespace in recent commits + * lib/rename.c (rpl_rename): Remove tabs. + * tests/test-link.h (test_link): Likewise. + * lib/fchdir.c (get_name): Likewise. + Reported by Jim Meyering. + +2009-10-02 Ben Pfaff + + relocatable-prog-wrapper: Add missing dependency on + double-slash-root. + * modules/relocatable-prog-wrapper: Add dependency. + Reported by Ian Beckwith . + 2009-10-02 Eric Blake + renameat: fix Solaris bugs + * m4/renameat.m4 (gl_FUNC_RENAMEAT): Replace renameat if rename + needed fixing. + * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): New witness. + * modules/stdio (Makefile.am): Substitute it. + * lib/stdio.in.h (renameat): Declare replacement. + * lib/renameat.c (rpl_renameat): Implement fix. + + renameat: new module + * modules/renameat: New file. + * lib/renameat.c (renameat): Likewise. + * m4/renameat.m4 (gl_FUNC_RENAMEAT): Likewise. + * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add witnesses. + * modules/stdio (Makefile.am): Substitute them. + * lib/stdio.in.h (renameat): Declare it. + * MODULES.html.sh (systems lacking POSIX:2008): Mention module. + * doc/posix-functions/renameat.texi (renameat): Likewise. + * modules/renameat-tests: New test. + * tests/test-renameat.c: Likewise. + + rename: fix mingw bugs + * lib/rename.c (rpl_rename) [W32]: Fix trailing slash and + directory overwrite bugs. + + rename: fix another cygwin 1.5 bug + * m4/rename.m4 (gl_FUNC_RENAME): Split cygwin bugs into two + checks. + * lib/rename.c (rpl_rename): Don't penalize NetBSD with + unnecessary cygwin workarounds. Also work around bug with moving + full directory onto an empty one. + * modules/rename (Depends-on): Add canonicalize-lgpl, rmdir. + + rename-dest-slash: merge into rename module + * modules/rename-dest-slash (Status): Mark obsolete. + (Depends-on): Add rename. + (Files): Let rename do it all. + * m4/rename.m4 (gl_FUNC_RENAME): Also test for NetBSD bugs, + subsuming the test from gl_FUNC_RENAME_TRAILING_DEST_SLASH... + * m4/rename-dest-slash.m4: ...so this file can be deleted. + * lib/rename-dest-slash.c (rpl_rename_dest_slash): Delete. + * lib/rename.c (rpl_rename): Update comments. + + rename: fix cygwin 1.5.x bugs + * m4/rename.m4 (gl_FUNC_RENAME): Detect cygwin bugs. + * lib/rename.c (rpl_rename): Work around them. + * modules/rename (Depends-on): Add same-inode. + + rename: fix Solaris 10 bug + * m4/rename.m4 (gl_FUNC_RENAME): Detect Solaris bug. + * lib/rename.c (rpl_rename): Don't cripple POSIX behavior if this + was the only bug. + rename: fix Solaris 9 bug * lib/rename.c (rpl_rename): Rewrite to recognize trailing slash on non-directory. Avoid calling exit.