regex: port to non-glibc/lock-using systems
[gnulib.git] / ChangeLog
index 49bd6b3..b0f798d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,603 @@
+2013-08-05  Jim Meyering  <meyering@fb.com>
+
+       regex: port to non-glibc/lock-using systems
+       Since 29-05-2013 commit, 55ba71f4, compilation on a non-glibc
+       system with GNULIB_LOCK would fail due to absence of the
+       included "glthread/lock.h".  This would affect any package
+       for which the "lock" module is used only by the regex module,
+       and not explicitly used.
+       * m4/regex.m4 (gl_PREREQ_REGEX): Require gl_GLIBC21.
+       * modules/regex (Depends-on) [!GLIBC && $ac_use_included_regex]:
+       Add a dependency on the "lock" module.
+
+2013-07-20  Daiki Ueno  <ueno@gnu.org>
+
+       localecharset: make locale_charset thread-safe on Mac OS X
+       * lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
+       instead of MB_CUR_MAX.
+
+2013-07-20  Daiki Ueno  <ueno@gnu.org>
+
+       gettext: update to version 0.18.3
+       * m4/intl.m4, m4/po.m4: Update from gettext-0.18.3.  In particular,
+       require AC_PROG_SED to allow user to specify custom sed command when
+       generating en@quot PO file.
+
+2013-07-18  Werner Lemberg <wl@gnu.org>  (tiny change)
+
+       bootstrap: use correct source when copying build-aux files
+       * build-aux/bootstrap (gnulib_extra_files): This variable is
+       relative to upstream gnulib layout, not downstream.
+
+2013-07-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tmpdir: fix bug in VMS port
+       * lib/tmpdir.c (path_search) [__VMS]: Never add slash.
+       See Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00026.html>.
+
+2013-07-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tmpdir: port to VMS, to // != /, and to long dirs
+       * lib/tmpdir.c (__libc_secure_getenv) [!_LIBC]: Rename from
+       __secure_getenv, so that we're more like the glibc version.
+       All uses changed.
+       (path_search): Don't put slash after directory if __VMS.
+       Problem reported by Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00019.html>.
+       Simplify code to add slash; no need for a loop.
+       Do not remove trailing slash from "//".
+       Do not assume dlen <= INT_MAX.
+
+2013-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: port to --with-included-regex --enable-gcc-warnings non-threaded
+       * lib/regex_internal.h (lock_fini, lock_lock): Rework to avoid
+       gcc warnings in the non-threaded case.  Reported by Charlie Brown in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00015.html>.
+
+       accept4, dup3, pipe2: port to Cygwin
+       Problem reported for Emacs by Ken Brown in <http://bugs.gnu.org/14821>.
+       * lib/accept4.c (accept4) [O_BINARY]:
+       * lib/dup3.c (dup3) [O_BINARY]:
+       * lib/pipe2.c (pipe2) [O_BINARY]:
+       Use set_binary_mode, not setmode.
+       * lib/pipe2.c [!GNULIB_BINARY_IO]: Include binary-io.h.
+       * modules/binary-io (Depends-on): Remove module indicator.
+       These last two bits undo the previous change to pipe2 and binary-io.
+
+2013-07-09  Pádraig Brady  <P@draigBrady.com>
+
+       mountlist: add support for deallocating returned list entries
+       * lib/mountlist.c (free_mount_entry): A new exported function
+       to deallocate a mount list entry.
+       (read_file_system_list): Refactor to use the new deallocation function.
+       Suggested by Anton Ovchinnikov.
+
+2013-07-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11
+       Problem reported by Ulrich Mueller in <http://bugs.gnu.org/14812>.
+       * lib/stdalign.in.h (_Alignas, _Alignof):
+       Port to FreeBSD 9.1, and to C11 and C++11.
+       (_Alignas): Also support ICC.
+       * lib/verify.h (_Static_assert): Undef if <stddef.h> defines it.
+       * m4/stdalign.m4 (gl_STDALIGN_H): Port to ICC and to C++11.
+
+2013-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fnmatch: don't goto over declaration
+       * lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid
+       undefined behavior for goto over a declaration.
+       Problem reported by Charlie Brown in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00009.html>.
+
+       pipe2: decouple from binary-io a bit
+       This is for Emacs, which needs pipe2 but not binary-io.
+       * lib/pipe2.c [!GNULIB_BINARY_IO]: Don't include binary-io.h.
+       * modules/binary-io (Depends-on): Add module indicator.
+
+2013-07-03  Eric Blake  <eblake@redhat.com>
+
+       mgetgroups: relax license to LGPLv2+
+       * modules/getugroups (License): Change from GPLv3+.
+       * modules/mgetgroups (License): Likewise.
+       * modules/getgroups (License): Change from LGPLv3+.
+
+       xalloc-oversized: relax license to LGPLv2+
+       * modules/xalloc-oversized (License): Change from GPLv3+.
+
+       nproc: relax license to LGPLv2+
+       * modules/nproc (License): Change from LGPLv3+.
+
+       bootstrap: honor --no-git
+       * build-aux/bootstrap: Don't even try to use git when user is
+       pointing to a static checkout.
+
+2013-06-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       ignore-value: port to gcc -pedantic
+       * lib/ignore-value.h (ignore_value):
+       Port to gcc -pedantic, by using __extension__.
+       Reindent as per usual gnulib style nowadays.
+       Simplify GCC version check.
+
+2013-06-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       extern-inline: port to gcc -std=c89
+       * m4/extern-inline.m4 (gl_EXTERN_INLINE):
+       Do not use __gnu_inline__ if pedantic and pre-C99.
+
+2013-06-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: document extern-inline
+       * doc/extern-inline.texi: New file.
+       * doc/gnulib.texi (alloca-opt): Include it.
+       * m4/extern-inline.m4: Move some comments to documentation,
+       and others closer to what they describe.
+
+       doc: chatter less
+       * doc/Makefile (NEWEST_GNULIB_TEXI_FILE): New macro.
+       (updated-stamp): Use it.  This causes 'make' to output just
+       one file name rather than zillions.
+
+       fflush, fseeko: port to musl cross-compiles
+       * lib/fseeko.c (fseeko): Assume that fflushing stdin works if
+       on some implementation that (1) is not known to be buggy,
+       (2) claims conformance to POSIX.1-2008 or later, and (3) is being
+       cross-compiled to so we can't easily check for lack of
+       conformance.  This is for cross-compiling to musl.
+       Reported by Rich Felker in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00043.html>.
+       * m4/fclose.m4 (gl_FUNC_FCLOSE):
+       * m4/fflush.m4 (gl_FUNC_FFLUSH):
+       * m4/fseeko.m4 (gl_FUNC_FSEEKO):
+       Adjust to above change.
+       * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Set gl_cv_func_fflush_stdin
+       to 'cross', not to 'no', when cross-compiling.  AC_DEFINE
+       FUNC_FFLUSH_STDIN to 1, 0, -1 if fflushing stdin is known to work,
+       known not to work, or unknown.
+
+2013-06-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       msvc-inval: port to mingw-w64
+       * lib/msvc-inval.c (gl_msvc_invalid_parameter_handler):
+       Use __cdecl, not cdecl, for mingw-w64.  Reported by LRN in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00039.html>.
+
+2013-06-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       getcwd-lgpl: port to Tru64
+       * lib/getcwd-lgpl.c: Include <stdlib.h>, for malloc etc.
+       Problem reported by Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
+
+       tests: port large-fd POSIX spawn tests to OS X
+       Problem reported by Daiki Ueno in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00031.html>.
+       * tests/test-posix_spawn_file_actions_addclose.c:
+       * tests/test-posix_spawn_file_actions_adddup2.c:
+       * tests/test-posix_spawn_file_actions_addopen.c:
+       Include <limits.h>, for OPEN_MAX, if available.
+       (big_fd): New static function.
+       (main): Use it.
+
+2013-06-04  Bernhard Voelker  <mail@bernhard-voelker.de>
+
+       tests/nap.h: use an adaptive delay to avoid ctime update issues
+       The recent change in nap.h (5191133e) decreased the probability of lost
+       races to about a third, however such problems could still be observed
+       in virtual machines and openSUSE's OBS.
+       Before, nap() detected the needed time once empirically and then used
+       that delay (together with a small correction multiplier) in further
+       calls.  This problem has been reported and discussed several times,
+       including guesses about possible kernel issues:
+       https://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00071.html
+       http://lists.gnu.org/archive/html/coreutils/2012-03/msg00088.html
+       https://lists.gnu.org/archive/html/bug-gnulib/2011-11/msg00226.html
+       http://bugs.gnu.org/12820
+       https://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00113.html
+       https://lists.gnu.org/archive/html/bug-gnulib/2009-11/msg00007.html
+       Now, nap() avoids the race alltogether by verifying on a reference
+       file whether a timestamp difference has happened.
+       * tests/nap.h (nap_fd): Define file descriptor variable for the
+       witness file.
+       (nap_works): Change return value to bool.  Change passing
+       the old file's status by value instead of by reference as this function
+       does no longer update that timestamp; rename the function argument from
+       st to old_st.  Remove the local variables cdiff and mdiff because that
+       function now returns true/false instead of the precise delay.
+       (guess_delay): Remove function.
+       (clear_tmp_file): Add new function to close and unlink the witness file.
+       (nap): Instead of re-using the delay which has been calculated during
+       the first call, avoid the race by actually verifying that a timestamp
+       difference can be observed on the current file system.  Use an adaptive
+       approach for the delay to minimize execution time.  Assert that the
+       maximum delay is <= ~2 seconds, more precisely sum(2^n) from 0 to 30
+       = 2^31 - 1 = 2.1s.
+       Use atexit to call clear_tmp_file when the process terminates.
+
+2013-06-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sig2str: port to C++
+       * lib/sig2str.h (sig2str, str2sig): Declare as extern "C".
+       Reported by Daniel J Sebald in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00000.html>.
+
+2013-05-30  Eric Blake  <eblake@redhat.com>
+
+       docs: mention cygwin shortcoming in <sys/un.h>
+       * doc/posix-headers/sys_un.texi (sys/un.h): Mention problem.
+
+       vasnprintf: silence mingw compiler warning
+       * lib/vasnprintf.c (VASNPRINTF): Avoid unused variable warning.
+
+2013-05-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       c-ctype, regex, verify: port to gcc -std=c90 -pedantic
+       Avoid constructions that are rejected by gcc -std=c90 -pedantic.
+       This fixes a porting bug I recently reintroduced in regex, and
+       some other instances that I discovered while testing the fix.
+       * lib/c-ctype.h [__STRICT_ANSI__]: Avoid ({ ... }).
+       * lib/regcomp.c (utf8_sb_map) [__STRICT_ANSI__]: Avoid [0 ... N] = E.
+       * lib/regex_internal.h [!_LIBC && GNULIB_LOCK]: Do not use a macro
+       with an empty argument if this is a pedantic pre-C99 GCC.
+       * lib/verify.h: Do not use _Static_assert if this is a pedantic
+       pre-C11 GCC.
+
+       regex: adapt to locking regime instead of depending on pthread
+       Instead of depending on pthread, adapt to whatever thread
+       modules are in use.  Problem reported by Ludovic Courtès in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00082.html>
+       and by Mats Erik Andersson in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00100.html>.
+       * lib/regex_internal.h (lock_define, lock_init, lock_fini):
+       Support either the 'lock' module, or the 'pthread' module, or
+       no module.
+       (lock_lock, lock_unlock): New macros.
+       * lib/regexec.c (regexec, re_search_stub): Use the new macros.
+       * modules/lock, modules/pthread (configure.ac): Add module indicator.
+       * modules/regex (Depends-on): Remove pthread.
+
+2013-05-22  Eric Blake  <eblake@redhat.com>
+
+       getgroups: document portability issues
+       * doc/glibc-functions/initgroups.texi (initgroups): Mention
+       multithread safety.
+       * doc/posix-functions/getpwuid.texi (getpwuid): Likewise.
+       * doc/posix-functions/getpwuid_r.texi (getpwuid_r): Likewise.
+       * doc/glibc-functions/getgrouplist.texi (getgrouplist): Mention
+       getugroups.
+       * doc/posix-functions/getgroups.texi (getgroups): Mention
+       multithread safety and mgetgroups.
+
+2013-05-22  Bernhard Voelker <mail@bernhard-voelker.de>
+
+       test-lchown, test-chown: also skip test if chown fails with EPERM
+       * tests/test-lchown.h (test_lchown): Add EPERM to the condition to
+       skip this test, to handle FAT file systems.
+       * tests/test-chown.h (test_chown): Likewise.
+
+2013-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: fix dfa race in multithreaded uses
+       Problem reported by Ludovic Courtès in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00058.html>.
+       * lib/regex_internal.h (lock_define, lock_init, lock_fini):
+       New macros.  All uses of __libc_lock_define, __libc_lock_init
+       changed to use the first two of these.
+       (__libc_lock_lock, __libc_lock_unlock): New macros, for
+       non-glibc platforms.
+       (struct re_dfa_t): Define the lock unconditionally.
+       * lib/regexec.c (regexec, re_search_stub): Remove some now-incorrect
+       '#ifdef _LIBC"s.
+       * modules/regex (Depends-on): Add pthread, if we use the
+       included regex.
+
+       * lib/regcomp.c: Do actions that are not needed for glibc,
+       but may be needed elsewhere.
+       (regfree, re_compile_internal): Destroy the lock.
+       (re_compile_internal): Check for lock-initialization failure.
+
+       malloca: port to compilers that reject size-zero arrays
+       This fixes a bug introduced in my previous patch.
+       * lib/malloca.c (struct preliminary_header): Use an int
+       rather than a character array of size int; that's simpler.
+       (struct header): Remove, replacing with ...
+       (union header): New type.  This avoids the need for declaring a
+       character array of size zero, which is not allowed on some platforms.
+       All uses changed.
+
+2013-05-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       parse-datetime, tests: don't use "string" + int
+       Recent versions of 'clang' complain about C source code that
+       uses expressions of the form '"string literal" + integer',
+       I guess on the theory that it's confusing for readers who are
+       used to C++.  On those grounds I suppose it's OK to make this
+       minor style change.
+       * lib/parse-datetime.y (parse_datetime):
+       * tests/test-fchdir.c (main):
+       * tests/test-snprintf-posix.h (test_function):
+       * tests/test-snprintf.c (main):
+       * tests/test-vasnprintf-posix.c (test_function):
+       * tests/test-vasnprintf.c (test_function):
+       * tests/test-vsnprintf.c (main):
+       * tests/unistdio/test-ulc-asnprintf1.h (test_function):
+       Rewrite '"str" + E' to '&"str"[E]'.
+
+2013-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>
+
+       argmatch: port to C++
+       * lib/argmatch.h [__cplusplus]: Add extern "C".
+
+       argp: typo fix
+       * lib/argp-help.c: Typo in comment.
+
+2013-05-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       manywarnings: update for GCC 4.8.0
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
+       Add -Waggressive-loop-optimizations, -Wreturn-local-addr, which
+       are new to GCC 4.8.  Remove -Wformat=2, -Wmissing-format-attribute,
+       -Wmissing-noreturn, as they are duplicates of other warnings.
+       Remove -Wunreachable-code, as it is removed in GCC 4.8 and
+       was documented to be flaky in earlier versions of GCC.
+
+       spawn-tests, sys_socket-tests, sys_wait-tests: port to clang
+       * tests/test-spawn.c (main):
+       * tests/test-sys_socket.c (main):
+       * tests/test-sys_wait.c (main):
+       Don't have a switch value that isn't covered by a case.
+
+       getaddrinfo-tests: port --enable-gcc-warnings to clang
+       * tests/test-getaddrinfo.c (simple):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       thread: port --enable-gcc-warnings to clang
+       * lib/glthread/thread.h [__clang__ && USE_POSIX_THREADS_WEAK]:
+       Include <signal.h>, to pacify a warning about pthread_sigmask.
+
+       stdio: use __REDIRECT for fwrite, fwrite_unlocked
+       * lib/stdio.in.h (fwrite):
+       When working around bug 11959, use __REDIRECT rather than '#define
+       fwrite(...) ... fwrite (...) ...'.  This is a more-targeted way to
+       fix the -Wunused-value issue with clang, and it works with GCC too.
+       Problem with targeting reported by Eric Blake in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00067.html>.
+       (fwrite_unlocked): Treat like fwrite.  I ran into this issue while
+       debugging the fwrite issue.
+
+       stdio: port --enable-gcc-warnings to clang
+       * lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely,
+       since the GCC workaround for fwrite does not pacify clang.
+
+       sig2str: port --enable-gcc-warnings to clang
+       * lib/sig2str.c (sig2str): Avoid warning about unused printf argument.
+
+       obstack: port --enable-gcc-warnings to clang
+       * lib/obstack.h (obstack_ptr_grow_fast, obstack_int_grow_fast):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       memchr2: port --enable-gcc-warnings to clang
+       * lib/memchr2.c (memchr2):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       mbsstr: port --enable-gcc-warnings to clang
+       * lib/mbsstr.c (knuth_morris_pratt_multibyte):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       malloca: port --enable-gcc-warnings to clang
+       * lib/malloca.c (struct header): New member 'magic', to avoid casts.
+       (mmalloca): Avoid casts from looser to stricter-aligned pointers.
+
+       inttostr: port --enable-gcc-warnings to clang
+       * lib/anytostr.c [__clang__]: Ignore -Wtautological-compare.
+
+       warnings: port to clang
+       Problem reported by Daniel P. Berrange via Eric Blake in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00055.html>.
+       * m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS): New macro.
+       (gl_WARN_ADD): Use it.
+
+2013-05-11  Jim Meyering  <meyering@fb.com>
+
+       quotearg: do not read beyond end of buffer
+       * lib/quotearg.c (quotearg_buffer_restyled): Do not read beyond the
+       end of an ARG for which no length was specified.  With an N-byte
+       quote string, (e.g., N is 3 in the fr_FR.UTF-8 locale), this function
+       would read N-2 bytes beyond ARG's trailing NUL.  This was triggered
+       via coreutils' misc/sort-debug-keys.sh test and detected by running
+       the test against a binary compiled with gcc-4.8.0's -fsanitize=address.
+       * tests/test-quotearg-simple.c (main): Add a test to trigger the bug.
+       * modules/quotearg-simple-tests (Files): Add tests/zerosize-ptr.h.
+       Introduced via the 2000-01-15 commit, c4b7f3f8, "Quote multibyte
+       characters correctly."
+
+2013-05-11  Daiki Ueno  <ueno@gnu.org>
+
+       lock: work around pthread recursive mutexes bug in Mac OS X 10.6
+       * m4/lock.m4: Don't define HAVE_PTHREAD_MUTEX_RECURSIVE if the
+       compilation target is Mac OS X 10.6.
+       Problem reported by parafin and Andoni Morales in
+       <http://savannah.gnu.org/bugs/?37844> and
+       <http://lists.gnu.org/archive/html/bug-gettext/2013-05/msg00007.html>.
+
+2013-05-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       mkdir-p: remove assumptions about umask and mode
+       * lib/mkdir-p.c (make_dir_parents): Do not assume that the current
+       umask is 0, or that MODE is a subset of MODE_BITS.
+
+2013-05-10  Eric Blake  <eblake@redhat.com>
+
+       maint.mk: catch more abuse of HAVE_DECL in syntax-check
+       * top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.
+
+2012-05-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       deps: require Automake >= 1.9.6 in generated Makefile fragments
+
+       That is the same minimal version required in the DEPENDENCIES file.
+       Moreover, the old code generated a requirement of Automake >= 1.5,
+       and that is an insanely outdated version.
+
+       * gnulib-tool: Bump minimal version requirement in AUTOMAKE_OPTIONS.
+       * tests/havelib/rpathlx/Makefile.am: Likewise.
+       * tests/havelib/rpathly/Makefile.am: Likewise.
+       * tests/havelib/rpathlyx/Makefile.am: Likewise.
+       * tests/havelib/rpathlz/Makefile.am: Likewise.
+       * tests/havelib/rpathlzyx/Makefile.am: Likewise.
+       * tests/havelib/rpathx/Makefile.am: Likewise.
+       * tests/havelib/rpathy/Makefile.am: Likewise.
+       * tests/havelib/rpathz/Makefile.am: Likewise.
+
+2013-05-08  Eric Blake  <eblake@redhat.com>
+
+       bootstrap: AC_INIT may have more than four parameters
+       * build-aux/bootstrap (extract_package_name): Correctly extract
+       non-empty tarname field.  Avoid range in regex.
+       Based on a report by Sami Kerola <kerolasa@iki.fi>.
+
+2013-05-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       qacl: port to MS-Windows port of GNU Emacs
+       * lib/acl-errno-valid.c (acl_errno_valid) [ENOTSUP == ENOSYS]:
+       Omit the duplicate ENOTSUP case.  Needed for the MS-Windows
+       port of GNU Emacs.  Problem reported by Eli Zaretskii in
+       <http://bugs.gnu.org/14295#14>.
+
+2013-05-07  Mike Frysinger  <vapier@gentoo.org>
+
+       acl: include quote.h
+       * lib/copy-acl.c: Include quote.h.
+       * lib/set-acl.c: Likewise.
+
+2013-05-06  Mike Frysinger  <vapier@gentoo.org>
+
+       fchownat, renameat, unlinkat: update statat dependencies
+       These modules use statat and lstatat, not fstatat; so depend on
+       the statat module, which was split out recently from fstatat.
+       * modules/fchownat, modules/unlinkat: Change fstatat to statat.
+       * modules/renameat: Likewise.  Also delete fstat.
+       URL: http://bugs.gentoo.org/468790
+
+2012-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       Assume gnulib is checked out from Git, not CVS
+
+       In fact, access to the gnulib repository through CVS has been
+       disabled, or more precisely, got broken and was never restored; see:
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00008.html>
+
+       Note that support for CVS is not removed completely and unthinkingly
+       by this change: only support for CVS checkouts of gnulib itself is
+       removed.  For example, the 'bootstrap' script still cater to .cvsingore
+       files and CVS directories, for the benefit of those poor gnulib clients
+       still stuck with CVS.  Ditto for the 'gnulib-tool' script itself.
+
+       * gnulib-tool: Simplify accordingly.
+       * posix-modules: Likewise.
+       * MODULES.html.sh: Likewise.
+       * doc/gnulib.texi: No longer mention the decommissioned CVS gnulib
+       repository.
+       * doc/gnulib-intro.texi: Likewise.
+       * doc/gnulib-readme.texi: Likewise.
+       * doc/gnulib-tool.texi: In the examples and explanations, refer to a
+       sample '.gitignore' file rather than a sample '.cvsignore'.
+       * NEWS: Update.
+       * m4/extensions.m4: While at it, remove a comment mistakenly referring
+       to "CVS Autoconf" rather than "git Autoconf".
+
+2013-04-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       utimensat-tests, etc.: try to fix some races
+       Problem reported by Bernhard Voelker in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00071.html>.
+       I don't know whether this patch fixes that race condition, but it
+       fixes *some* race conditions, so it should be a win.
+       * modules/chown-tests (Depends-on):
+       * modules/fchownat-tests (Depends-on):
+       * modules/fdutimensat-tests (Depends-on):
+       * modules/futimens-tests (Depends-on):
+       * modules/lchown-tests (Depends-on):
+       * modules/stat-time-tests (Depends-on):
+       * modules/utimens-tests (Depends-on):
+       * modules/utimensat-tests (Depends-on):
+       Depend on nanosleep, not usleep.
+       * modules/chown-tests (test_chown_LDADD):
+       * modules/lchown-tests (test_lchown_LDADD):
+       * modules/stat-time-tests (test_stat_time_LDADD):
+       New macro.
+       * modules/fchownat-tests (test_fchownat_LDADD):
+       * modules/fdutimensat-tests (test_fdutimensat_LDADD):
+       * modules/futimens-tests (test_futimens_LDADD):
+       * modules/utimens-tests (test_utimens_LDADD):
+       * modules/utimensat-tests (test_utimensat_LDADD):
+       Add $(LIB_NANOSLEEP).
+       * modules/stat-time-tests (Files): Add tests/nap.h.
+       * tests/nap.h: Include <limits.h>, for INT_MAX.
+       (lt_mtime): Remove.
+       (diff_timespec): New function.
+       (get_stat): Rename from get_mtime.  All callers changed.
+       (nap_works): Determine the needed delay by inspecting the
+       file system's timestamp jumps; this should be more reliable.
+       Look at both mtime and ctime, and take the maximum of the two jumps.
+       (nap_works, guess_delay):
+       Return a nanosecond cound, not a microsecond count.
+       All callers changed.
+       (nap_works, nap): Use nanosleep, not usleep.  Check for nanosleep
+       failure.
+       (nap): Multiply the guess by 1.125, to accommodate the case where
+       the file system's clock is a bit slower than nanosleep's clock.
+       * tests/test-stat-time.c (BASE): New macro.
+       Include nap.h.
+       (nap): Remove; nap.h now defines this.  This removes a duplicate
+       implementation of 'nap'.
+
+       utimens, utimensat: work around Solaris UTIME_OMIT bug
+       Solaris 11.1 and Solaris 10 have the same UTIME_OMIT bug that
+       Linux kernel 2.6.32 does.  Work around it in the same way.
+       * doc/posix-functions/futimens.texi (futimens):
+       * doc/posix-functions/utimensat.texi (utimensat): Document the bug.
+       * lib/utimens.c (fdutimens, lutimens):
+       * lib/utimensat.c (rpl_utimensat): Work around the bug.
+
+       gettext: now it's your responsibility to add -I$(top_builddir)/intl
+       Formerly, it was your responsibility to do this for all Makefile.ams
+       other than Gnulib's.  Now it's your responsibility to do it for
+       Gnulib's Makefile.am, too.
+       * NEWS: Document this.
+       * modules/gettext (AM_CPPFLAGS): Don't append -$(top_builddir)/intl.
+
+       acl: include errno.h to get errno
+       Reported by Daiki Ueno in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00073.html>.
+       * lib/copy-acl.c, lib/set-acl.c: Include errno.h.
+
+2013-04-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: don't assume getdtablesize () <= 10000000
+       * modules/cloexec-tests:
+       * modules/dup2-tests:
+       * modules/dup3-tests:
+       * modules/nonblocking-tests:
+       * modules/posix_spawn_file_actions_addclose-tests:
+       * modules/posix_spawn_file_actions_adddup2-tests:
+       * modules/posix_spawn_file_actions_addopen-tests:
+       * modules/unistd-safer-tests:
+       Depend on the getdtablesize module.
+       * tests/test-cloexec.c:
+       * tests/test-dup-safer.c:
+       * tests/test-dup2.c:
+       * tests/test-dup3.c:
+       * tests/test-fcntl.c:
+       * tests/test-nonblocking.c:
+       * tests/test-posix_spawn_file_actions_addclose.c:
+       * tests/test-posix_spawn_file_actions_adddup2.c:
+       * tests/test-posix_spawn_file_actions_addopen.c:
+       Don't assume getdtablesize () <= 10000000.
+
 2013-04-28  Paul Eggert  <eggert@cs.ucla.edu>
 
        extern-inline: work around bug in Sun c99
        * lib/c-vasnprintf.h: New file.
 
        New module 'c-snprintf'.
-        * modules/c-snprintf: New file.
-        * modules/c-snprintf-tests: New file.
-        * lib/c-snprintf.c: New file.
-        * lib/c-snprintf.h: New file.
-        * tests/test-c-snprintf.c: New file.
-        * tests/test-c-snprintf.sh: New file.
+       * modules/c-snprintf: New file.
+       * modules/c-snprintf-tests: New file.
+       * lib/c-snprintf.c: New file.
+       * lib/c-snprintf.h: New file.
+       * tests/test-c-snprintf.c: New file.
+       * tests/test-c-snprintf.sh: New file.
 
        New module 'c-vsnprintf'.
-        * modules/c-vsnprintf: New file.
-        * modules/c-vsnprintf-tests: New file.
-        * lib/c-vsnprintf.c: New file.
-        * lib/c-vsnprintf.h: New file.
-        * tests/test-c-vsnprintf.c: New file.
-        * tests/test-c-vsnprintf.sh: New file.
+       * modules/c-vsnprintf: New file.
+       * modules/c-vsnprintf-tests: New file.
+       * lib/c-vsnprintf.c: New file.
+       * lib/c-vsnprintf.h: New file.
+       * tests/test-c-vsnprintf.c: New file.
+       * tests/test-c-vsnprintf.sh: New file.
 
        New module 'c-vasprintf'.
-        * modules/c-vasprintf: New file.
-        * modules/c-vasprintf-tests: New file.
-        * lib/c-asprintf.c: New file.
-        * lib/c-vasprintf.c: New file.
-        * lib/c-vasprintf.h: New file.
-        * tests/test-c-vasprintf.c  +: New file.
-        * tests/test-c-vasprintf.sh: New file.
+       * modules/c-vasprintf: New file.
+       * modules/c-vasprintf-tests: New file.
+       * lib/c-asprintf.c: New file.
+       * lib/c-vasprintf.c: New file.
+       * lib/c-vasprintf.h: New file.
+       * tests/test-c-vasprintf.c  +: New file.
+       * tests/test-c-vasprintf.sh: New file.
 
        New module 'c-xvasprintf'.
-        * modules/c-xvasprintf: New file.
-        * modules/c-xvasprintf-tests: New file.
-        * lib/c-xasprintf.c: New file.
-        * lib/c-xvasprintf.c: New file.
-        * lib/c-xvasprintf.h: New file.
-        * tests/test-c-xvasprintf.c: New file.
-        * tests/test-c-xvasprintf.sh: New file.
+       * modules/c-xvasprintf: New file.
+       * modules/c-xvasprintf-tests: New file.
+       * lib/c-xasprintf.c: New file.
+       * lib/c-xvasprintf.c: New file.
+       * lib/c-xvasprintf.h: New file.
+       * tests/test-c-xvasprintf.c: New file.
+       * tests/test-c-xvasprintf.sh: New file.
 
 2012-12-18  Paul Eggert  <eggert@cs.ucla.edu>