Not being a GIT guru, I had previously done "git merge" to synchronize topic/libposix with master. Seemed straight forward and obvious to me. However, "rebase" is a better spelling for the proper process of resynchronization. So, I did a "git rebase" and it was a mess. Lots of stuff would not apply. Consequently, I did a "git rebase --skip" over and over. The net result being that some patches did not get applied -- they got skipped. I detected the problems by comparing the final result with the current topic/libposix. Shocker: it was not the same. So, where it wasn't the same, I copied back the current version of the files, yielding the patch below. (Note that the process actually yields 171 automated patches, plus the final manual clean-it-up patch.)
Question for folks that spend more time on gnulib and GIT than I do -- Should I: 1. push this rebased thingey 2. go back and merge once again 3. start a topic/libposix-this-time-for-sure branch, basically rolling up all the changes into a single patch. (I cannot think that Gary and my collections of patches is going to have a terrible lot of historical interest. I could be wrong, but I do doubt it.) From 9d27c3e2423c042ca17aaef82d4aa6db7fd1c0a0 Mon Sep 17 00:00:00 2001 From: Bruce Korb <bk...@gnu.org> Date: Wed, 4 May 2011 13:06:55 -0700 Subject: [PATCH 172/172] libposix: rebase all the patches This should make future resyncs with master go more easily. This patch actually applies changes that got "skipped" in the rebase. --- ChangeLog | 171 +++++++++++++++++++++++++++++++++++++++ libposix/bootstrap | 28 +++++-- libposix/configure.ac | 4 +- libposix/lib/mk-lpx-config-h.sh | 1 + libposix/mk-tarball | 78 +++++++++++------- 5 files changed, 245 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8e9dd2b..4848516 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,174 @@ + +2011-01-07 Bruce Korb <bk...@gnu.org> + + libposix/bootstrap: disable testing of error-module-using modules + * libposix/bootstrap (opts): append --avoid=${mod}-tests + for each module that has the error reference removed + +2010-12-30 Bruce Korb <bk...@gnu.org> + + * libposix/bootstrap (posix_list): remove unnecessary temp file + (modules): install all modules to tmp/modules that reference + the 'error' module. + * libposix/configure.ac (GNULIB_LIBPOSIX): define this in + config.h so that openat-die.c can omit calls to error(). + * lib/openat-die.c: remove error module stuff when GNULIB_LIBPOSIX + is defined. + * lib/xalloc-die.c: Same thing. + * libposix/lib/mk-lpx-config-h.sh (GNULIB_TEST): remove these defines + +2010-12-08 Gary V. Vaughan <g...@gnu.org> + + libposix: generate compile and runtime versions with configure + * libposix/lib/version.c, libposix/lib/version.h.in: Templates + for code to allow runtime and compile time checking of libposix + version numbers. + * libposix/configure.ac (AC_CONFIG_FILES): Use the already + calculated libposix version number to generate libposix/ + lib/version.h. + * libposix/mk-tarball (func_mkver): Removed. Adjust all callers. + Don't generate files required by the build in an optionally + used script, and incidentally avoid recalculating the version + number that configure already knows. + +2010-12-07 Gary V. Vaughan <g...@gnu.org> + + libposix: version filter script was adding a newline + * libposix/configure.ac (AC_INIT): Use the output of + git-version-gen unmodified, os per other GNU projects... + otherwise the spurious newline added to the version number + breaks operation of the configure script (tested with + Autoconf-2.68). + * libposix/mk-tarball: Remove the filter here too, otherwise + we'll end up with two conflicting version numbers in the same + release! + +2010-11-17 Bruce Korb <bk...@gnu.org> + + * libposix/lib/Makefile.am (lpx-config.h): generate the new header + and install it. + * libposix/lib/mk-lpx-config-h.sh: script for creating the header + by massaging the config.h header. + +2010-11-17 Bruce Korb <bk...@gnu.org> + + * libposix/mk-tarball: script to make a libposix distribution + tarball. + * libposix/bootstrap: cleanup and ensure the mkdir's are invoked + only when needed. + * libposix/configure.ac (m4_esyscmd): fix git version suffix + * libposix/lib/Makefile.am (HEADERS): include version info + +2010-11-17 Bruce Korb <bk...@gnu.org> + + * tests/test-dprintf-posix2.c (main): call malloc & free before + setrlimit under Linux. Avoid setrlimit/malloc interaction bug. + * tests/test-fprintf-posix3.c: ditto + +2010-11-16 Bruce Korb <bk...@gnu.org> + + * libposix/bootstrap: generate libposix module file on the fly. + * modules/libposix: remove + * modules/*: Use pkginclude_HEADERS instead of plain "include". + * libposix/lib/Makefile.am: adjust here, too + * gnulib-tool: adjust here, too + +2010-11-06 Gary V. Vaughan <g...@gnu.org> + + libposix: vastly simplified bootstrap sanity check + * libposix/bootstrap: Use a much simpler script to ensure that the + output of the posix-modules script remains in sync with the module + list of the libposix module. + +2010-10-13 Gary V. Vaughan <g...@gnu.org> + + libposix: reindent with spaces instead of tabs + * libposix/Makefile.am: Reindent with spaces instead of tabs. + * libposix/bootstrap: Likewise. + +2010-10-12 Gary V. Vaughan <g...@gnu.org> + + libposix: use git-version-gen for version numbering + * build-aux/git-version-gen: In order to work inside the + libposix subdirectory, also check the parent directory for .git + before assuming git describe will not work. + * libposix/bootstrap: Add git-version-gen to gnulib-tool + invocation. + * libposix/configure.ac (AC_INIT): Use it to get a unique + version number, and a configure time banner. + + libposix: raw files to import an installable libposix project + * libposix/bootstrap: New script to import gnulib posix modules + and bootstrap configury so that the result is an installable + libposix.la. + * libposix/configure.ac: New file to configure the new libposix + subdirectory. + * libposix/Makefile.am: New file to delegate build duties to the + generated libposix/lib/Makefile at make time. + * libposix/lib/Makefile.am: New file to make sure `-version-info' + is passed to libtool at libposix.la link-time. + + add _HEADERS primaries to Makefile.am snippets for installable headers + * modules/alloca-opt, modules/arg-nonnull, modules/argz, + modules/arpa_inet, modules/byteswap, modules/c++defs, modules/ctype, + modules/dirent, modules/errno, modules/fcntl-h, modules/float, + modules/fnmatch, modules/getopt-posix, modules/glob, modules/iconv-h, + modules/iconv_open, modules/inttypes, modules/langinfo, + modules/link-warning, modules/locale, modules/math, modules/netdb, + modules/netinet_in, modules/poll-h, modules/pthread, modules/pty, + modules/sched, modules/search, modules/selinux-h, modules/signal, + modules/spawn, modules/stdarg, modules/stdbool, modules/stddef, + modules/stdint, modules/stdio, modules/stdlib, modules/string, + modules/strings, modules/sys_file, modules/sys_ioctl, + modules/sys_select, modules/sys_socket, modules/sys_stat, + modules/sys_time, modules/sys_times, modules/sys_utsname, + modules/sys_wait, modules/sysexits, modules/termios, modules/time, + modules/unistd, modules/unitypes, modules/unused-parameter, + modules/warn-on-use, modules/wchar, modules/wctype (Makefile.am): + Add nodist_include_HEADERS, nobase_nodist_include_HEADERS and + EXTRA_HEADERS declarations for potentially installable header files. + * gnulib-tool: Initialize nodist_include_HEADERS, + nobase_nodist_include_HEADERS and EXTRA_HEADERS to prime for new + `.*_HEADERS +=' declarations. + (func_emit_lib_Makefile_am): Edit away new nodist_include_HEADERS, + nobase_nodist_include_HEADERS and EXTRA_HEADERS declarations by + default, reverting the Makefile.am snippets above to their original + condition prior to this change *unless* the gnulib library is being + installed. + + New module `libposix'. + * modules/libposix: New module to facilitate an installable + library of posix modules. + (Makefile.am): Use lib_LTLIBRARIES to mark libposix.la as + installable. + (Depends-On): List all the modules found by `posix-modules', + except `strdup' which is spurious, and with the addition of + `alloca' to satisfy an otherwise undefined LTALLOCA definition; + and `progname' to provide a non-extern program_name symbol so that + compilation with `-no-undefined' symbols can work. + + iconv_open: reduce not-trivial repetition of file-list + * modules/iconv_open (iconv_headers): New make macro to hold list of + iconv header files. + (BUILT_SOURCES, MAINTAINERCLEANFILES, EXTRA_DIST): Use it instead of + multiple hard-coded copies. + + gnulib-tool: transform hard-coded libgnu.a to $libname.l?a + * gnulib-tool (func_emit_lib_Makefile_am): transform hard-coded + `libgnu.a' in Makefile.am snippets to be either `$libname.a' or + `$libname.la', depending on whether --libtool/--no-libtool options + were given. + +2010-10-12 Sam Steingold <s...@gnu.org> + Gary V. Vaughan <g...@gnu.org> + + gnulib-tool: transform include guards with `--macro-prefix' + * gnulib-tool (func_import): support multiple gllib directories: + headers are generated for each gllib differently, depending on which + features are actually used, so we need to be able to include all + these generated headers without fear that one will shadow another, + so we prepend the macro-prefix before the guard macros. + 2011-05-04 Reuben Thomas <r...@sc3d.org> Add option to do-release-commit-and-tag to specify branch. diff --git a/libposix/bootstrap b/libposix/bootstrap index 4bce30f..e5f6d60 100755 --- a/libposix/bootstrap +++ b/libposix/bootstrap @@ -12,11 +12,10 @@ else mkdir tmp tmp/modules fi +posix_list=` { echo alloca - posix-modules -} | sort -u > tmp/posix-list - -posix_list=`grep -v '^$' tmp/posix-list` + posix-modules | sed '/^error$/d' +} | tr -d ' \t' | sed '/^$/d' | sort -u` cat > tmp/modules/libposix <<- _EOF_ Description: @@ -42,7 +41,6 @@ cat > tmp/modules/libposix <<- _EOF_ Gary V. Vaughan _EOF_ - opts='--local-dir=tmp --import --lib=libposix @@ -55,12 +53,30 @@ opts='--local-dir=tmp --with-c++-tests --with-longrunning-tests' +# We cannot tell which modules will get pulled in via dependencies +# when gnulib-tool gets run. Therefore, strip out "error" from all +# modules that mention it. Either we won't use the module, or the +# module will have to be tweaked to remove the dependency for libposix. +# "GNULIB_LIBPOSIX" is a CPP symbol for libposix. Also, avoid testing +# any module that has had its error dependency removed. +# +for mod in `egrep -l '^error$' ../modules/[a-z]*` +do + test "X$mod" = Xerror && continue + d=`basename $mod` + opts="${opts} --avoid=${d}-tests" + sed '/^error$/d' ${mod} > tmp/modules/$d +done >&2 + # Bootstrap for autotools. +# +echo gnulib-tool ${opts} git-version-gen libposix gnulib-tool ${opts} git-version-gen libposix - # No need to maintain a Makefile.am just to include gnulib.mk. +# mv tests/gnulib.mk tests/Makefile.am # Run autotools. +# autoreconf --force --install --verbose --symlink diff --git a/libposix/configure.ac b/libposix/configure.ac index 36c3fb4..db49a02 100644 --- a/libposix/configure.ac +++ b/libposix/configure.ac @@ -7,6 +7,7 @@ AS_BOX([Configuring AC_PACKAGE_TARNAME AC_PACKAGE_VERSION]) dnl this should be AC_REQUIRED by gnulib modules that need it, dnl but either a couple of modules have forgotten it, or else dnl AC_REQUIRE is emitting macro expansions out of order +dnl AC_USE_SYSTEM_EXTENSIONS dnl we can't use AC_CONFIG_AUX_DIR here, because the heuristics @@ -14,7 +15,7 @@ dnl for finding install-sh in the generated configure script dnl consider this directory to be a subproject of gnulib proper, dnl and will only look for install-sh in . and .. :( dnl AC_CONFIG_AUX_DIR([build-aux]) - +dnl AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_FILES([Makefile lib/Makefile tests/Makefile]) @@ -27,6 +28,7 @@ LT_INIT AC_SUBST([LTV_CURRENT], 0) AC_SUBST([LTV_REVISION], 0) AC_SUBST([LTV_AGE], 0) +AC_DEFINE_UNQUOTED(GNULIB_LIBPOSIX,1,[we are libposix]) AC_PROG_CC LIBPOSIX_EARLY diff --git a/libposix/lib/mk-lpx-config-h.sh b/libposix/lib/mk-lpx-config-h.sh index ad3805f..81c52e4 100755 --- a/libposix/lib/mk-lpx-config-h.sh +++ b/libposix/lib/mk-lpx-config-h.sh @@ -41,6 +41,7 @@ EOF /^\/\*.*\*\/$/d /^\/\*/,/\*\/$/d /^$/d + /#define GNULIB_TEST/d s/^\(# *define *\)\([A-Za-z]\)/\1LPX_\2/ /^#if/s/\(defined *\)\([A-Za-z]\)/\1LPX_\2/g s/^\(# *ifn*def *\)\([A-Za-z]\)/\1LPX_\2/ diff --git a/libposix/mk-tarball b/libposix/mk-tarball index 127e6a0..60b07dd 100755 --- a/libposix/mk-tarball +++ b/libposix/mk-tarball @@ -17,15 +17,17 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. case "$0" in -*/* ) progdir=`echo "$0" | sed 's@/[^/]*$@@'` - cd ${progdir} - progdir=`pwd` - prognam=`echo "$0" | sed 's@.*/@@'` - ;; +*/* ) + progdir=`echo "$0" | sed 's@/[^/]*$@@'` + cd ${progdir} + progdir=`pwd` + prognam=`echo "$0" | sed 's@.*/@@'` + ;; -* ) progdir=`pwd` - prognam="$0" - ;; +* ) + progdir=`pwd` + prognam="$0" + ;; esac # kill the patriarch process. If we are not the patriarch, @@ -33,43 +35,49 @@ esac # func_die() { - echo "${prognam} failure: $*" >&2 - kill -${SIGTERM} ${progpid} - exit 1 + echo "${prognam} failure: $*" >&2 + kill -${SIGTERM} ${progpid} + exit 1 } func_init() { - progpid=$$ - glibdir=`cd .. >/dev/null ; pwd` - SIGTERM=15 + progpid=$$ + glibdir=`cd .. >/dev/null ; pwd` + SIGTERM=15 - git --version >/dev/null 2>&1 \ - || func_die "git is not operational" + git --version >/dev/null 2>&1 \ + || func_die "git is not operational" - test -d _b && rm -rf _b + test -d _b && rm -rf _b - case "$*" in - *'--clean'* | *'--clob'* ) - git clean -f -x -d . - ;; - esac + case "$*" in + *'--clean'* | *'--clob'* ) + git clean -f -x -d . + test $# -eq 1 && exit 0 + ;; + esac + + case "$-" in + *x* ) dashx=-x ;; + * ) dashx= ;; + esac } func_bootstrap() { - /bin/sh ./bootstrap \ - || func_die bootstrap failure + /bin/sh ${dashx} ./bootstrap \ + || func_die bootstrap failure } func_mkdistro() { - mkdir _b || func_die mkdir _b - cd _b - ../configure || func_die configure - make || func_die make - make distcheck || func_die make distcheck - mv libposix*.tar.gz .. || func_die cannot move tarball + mkdir _b || func_die mkdir _b + cd _b + ../configure || func_die configure + make || func_die make + make distcheck || func_die make distcheck + mv libposix*.tar.gz .. || func_die cannot move tarball } func_init ${1+"$@"} @@ -77,3 +85,13 @@ func_bootstrap func_mkdistro : + +## +## Local Variables: +## mode: shell-script +## indent-tabs-mode: nil +## sh-indentation: 2 +## sh-basic-offset: 2 +## End: + +# end of mk-tarball -- 1.7.3.4