bug-diffutils
[Top][All Lists]
Advanced

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

Re: [bug-diffutils] I'd like to release 3.3


From: Paul Eggert
Subject: Re: [bug-diffutils] I'd like to release 3.3
Date: Sat, 23 Mar 2013 00:32:34 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4

On 03/22/2013 09:31 AM, Jim Meyering wrote:

> Network connectivity?

Yes, that's what it was.  A corrupted DNS cache, apparently.
(Which leads me to wonder: how trustworthy is that part of
the build procedure, anyway?  But moving on....)

> I haven't investigated that for some time, but thought it was
> due to my (personal) use of gettext that's a little older than the
> latest, in which I presume that offending macro use has been removed.

Unfortunately it was more complicated than that.  Even with a newer
gettext it installed macros from gettext 0.17.  I fiddled with it
and the following patch fixed things for me.  It may be a bit
belt-and-suspenders, in that it insists on 0.18.2 when that
might not strictly be necessary with the other changes I made,
but to some extent I quit while I was ahead.

>From dce7832def4c669225226832f6a34e6e1b6ffea1 Mon Sep 17 00:00:00 2001
From: Paul Eggert <address@hidden>
Date: Sat, 23 Mar 2013 00:21:45 -0700
Subject: [PATCH] maint: update build procedure to recent gettext etc.

* bootstrap.conf (gnulib_modules): Add vararrays.
(needed_gnulib_files, unnecessary_gettext_files): New vars.
(bootstrap_post_import_hook): New function, to implement these vars.
(excluded_files): Remove; 'bootstrap' no longer supports this.
Its function is now performed by unnecessary_gettext_files.
(buildreq): Update automake to 1.12.2, to avoid CVE-2012-3386.
* configure.ac (AM_GNU_GETTEXT_VERSION): Bump from 0.17 to 0.18.2,
to lessen the probability that we'll have outlandishly old files
during a build.
* m4/vararrays.m4: Remove from repository, as we now use the
gnulib version.
---
 bootstrap.conf  | 48 ++++++++++++++++++++++++++++++++++++++----------
 configure.ac    |  2 +-
 m4/vararrays.m4 | 35 -----------------------------------
 3 files changed, 39 insertions(+), 46 deletions(-)
 delete mode 100644 m4/vararrays.m4

diff --git a/bootstrap.conf b/bootstrap.conf
index 00e75e3..240754b 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -73,6 +73,7 @@ system-quote
 unistd
 unlocked-io
 update-copyright
+vararrays
 verify
 version-etc
 version-etc-fsf
@@ -106,18 +107,36 @@ grep '^[   ]*AM_GNU_GETTEXT(external\>' configure.ac > 
/dev/null &&
 grep '^[        ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
   gettext_external=1
 
+needed_gnulib_files=
+unnecessary_gettext_files=
+
 if test $gettext_external = 1; then
   # Gettext supplies these files, but we don't need them since
   # we don't have an intl subdirectory.
-  excluded_files='
-      m4/glibc2.m4
-      m4/intdiv0.m4
-      m4/lcmessage.m4
-      m4/printf-posix.m4
-      m4/uintmax_t.m4
-      m4/ulonglong.m4
-      m4/visibility.m4
-'
+  unnecessary_gettext_files='
+    m4/glibc2.m4
+    m4/intdiv0.m4
+    m4/intl.m4
+    m4/intldir.m4
+    m4/intmax.m4
+    m4/lcmessage.m4
+    m4/lock.m4
+    m4/printf-posix.m4
+    m4/threadlib.m4
+    m4/uintmax_t.m4
+    m4/visibility.m4
+  '
+
+  # Gettext supplies these files, but the gnulib version of these files
+  # typically is more up-to-date.  We don't use gnulib's gettext module,
+  # as it's too heavyweight, so grab the files one at a time instead.
+  needed_gnulib_files='
+    m4/gettext.m4
+    m4/intlmacosx.m4
+    m4/nls.m4
+    m4/po.m4
+    m4/progtest.m4
+  '
 fi
 
 gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests
@@ -130,7 +149,7 @@ gnulib_tool_option_extras="--tests-base=gnulib-tests 
--with-tests
 # Build prerequisites
 buildreq="\
 autoconf   2.61
-automake   1.11
+automake   1.12.2
 autopoint  -
 gettext    -
 git        1.4.4
@@ -145,6 +164,15 @@ tar        -
 # Automake requires that ChangeLog exist.
 touch ChangeLog || exit 1
 
+bootstrap_post_import_hook()
+{
+  for file in $needed_gnulib_files; do
+    echo "$0: $gnulib_tool --copy-file $file $file ..."
+    $gnulib_tool --copy-file $file $file || exit
+  done
+  rm -f $unnecessary_gettext_files || exit
+}
+
 bootstrap_epilogue()
 {
   perl -pi -e "s/address@hidden@/$package/g" README-release
diff --git a/configure.ac b/configure.ac
index 7d29646..aea40fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -161,7 +161,7 @@ test -f $srcdir/.tarball-version \
   || SRC_VERSION_C=../src/version.c
 
 AM_GNU_GETTEXT([external], [need-ngettext])
-AM_GNU_GETTEXT_VERSION([0.17])
+AM_GNU_GETTEXT_VERSION([0.18.2])
 XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT"
 
 AC_CONFIG_FILES([
diff --git a/m4/vararrays.m4 b/m4/vararrays.m4
deleted file mode 100644
index bf957ef..0000000
--- a/m4/vararrays.m4
+++ /dev/null
@@ -1,35 +0,0 @@
-# Check for variable-length arrays.
-
-#serial 2
-
-# From Paul Eggert
-
-# Copyright (C) 2001, 2009-2013 Free Software Foundation, Inc.
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-AC_DEFUN([AC_C_VARARRAYS],
-[
-  AC_CACHE_CHECK([for variable-length arrays],
-    ac_cv_c_vararrays,
-    [AC_TRY_COMPILE(
-       [],
-       [static int x; char a[++x]; a[sizeof a - 1] = 0; return a[0];],
-       ac_cv_c_vararrays=yes,
-       ac_cv_c_vararrays=no)])
-  if test $ac_cv_c_vararrays = yes; then
-    AC_DEFINE([HAVE_C_VARARRAYS], [1],
-      [Define to 1 if C supports variable-length arrays.])
-  fi
-])
-- 
1.7.11.7





reply via email to

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