bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

rebasing topic/libposix


From: Bruce Korb
Subject: rebasing topic/libposix
Date: Wed, 04 May 2011 13:22:31 -0700
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110221 SUSE/3.1.8 Thunderbird/3.1.8

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 <address@hidden>
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  <address@hidden>
+
+       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  <address@hidden>
+
+       * 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  <address@hidden>
+
+       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  <address@hidden>
+
+       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  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * 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  <address@hidden>
+
+       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  <address@hidden>
+
+       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  <address@hidden>
+
+       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  <address@hidden>
+           Gary V. Vaughan  <address@hidden>
+
+       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  <address@hidden>

        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 'address@hidden/@@'`
-      ;;
+*/* )
+  progdir=`echo "$0" | sed 's@/[^/]*$@@'`
+  cd ${progdir}
+  progdir=`pwd`
+  prognam=`echo "$0" | sed 'address@hidden/@@'`
+  ;;

-* )   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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]