FYI, First, here's a patch to maint.mk. To give you an idea of what this does, I've included the induced patch for coreutils below.
>From 8394dc6b446e745b430f880dd08fb664379cdbe0 Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Fri, 27 Jul 2012 12:12:42 +0200 Subject: [PATCH] maint.mk: new rule: refresh-gnulib-patches I noticed that 8 of coreutils' 9 gl/**/*.diff files was stale. Use this rule to refresh them. * top/maint.mk (refresh-gnulib-patches): New rule. --- ChangeLog | 7 +++++++ top/maint.mk | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/ChangeLog b/ChangeLog index c41549f..22dedf4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-07-27 Jim Meyering <[email protected]> + + maint.mk: new rule: refresh-gnulib-patches + I noticed that 8 of coreutils' 9 gl/**/*.diff files was stale. + Use this rule to refresh them. + * top/maint.mk (refresh-gnulib-patches): New rule. + 2012-07-24 Bruno Haible <[email protected]> gnulib-tool: Fix handling of inctests variable. diff --git a/top/maint.mk b/top/maint.mk index b39e9ae..baff0e9 100644 --- a/top/maint.mk +++ b/top/maint.mk @@ -1429,6 +1429,31 @@ gen-coverage: coverage: init-coverage build-coverage gen-coverage +# Some projects carry local adjustments for gnulib modules via patches in +# a gnulib patch directory whose default name is gl/ (defined in bootstrap +# via local_gl_dir=gl). Those patches become stale as the originals evolve +# in gnulib. Use this rule to refresh any stale patches. It applies each +# patch to the original in $(gnulib_dir) and uses the temporary result to +# generate a fuzz-free .diff file. If you customize the name of your local +# gnulib patch directory via bootstrap.conf, this rule detects that name. +# Run this from a non-VPATH (i.e., srcdir) build directory. +.PHONY: refresh-gnulib-patches +refresh-gnulib-patches: + gl=gl; \ + if test -f bootstrap.conf; then \ + t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;' \ + -e 'END{defined $$d and print $$d}' bootstrap.conf); \ + test -n "$$t" && gl=$$t; \ + fi; \ + for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do \ + b=$$(printf %s "$$diff"|sed 's/\.diff$$//'); \ + VERSION_CONTROL=none \ + patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ + ( cd $(gnulib_dir) || exit 1; \ + git diff "$$b" > "../$$gl/$$diff"; \ + git checkout $$b ) || exit 1; \ + done + # Update gettext files. PACKAGE ?= $(shell basename $(PWD)) PO_DOMAIN ?= $(PACKAGE) -- 1.7.12.rc0.22.gcdd159b >From 74a1c058753faa79caff061407925463375ba5f3 Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Fri, 27 Jul 2012 12:15:32 +0200 Subject: [PATCH] maint: refresh stale local gnulib patch files We carry local adjustments for a few gnulib modules via the patches in gl/. Nearly all of those patches had become stale due to evolution of the originals in gnulib. To refresh them, first make sure you have no local changes in gl/ or in the gnulib submodule, then run "make refresh-gnulib-patches". --- gl/lib/regcomp.c.diff | 14 +++++++------- gl/lib/regex_internal.c.diff | 10 +++++----- gl/lib/regex_internal.h.diff | 14 +++++++------- gl/lib/regexec.c.diff | 12 ++++++------ gl/lib/tempname.c.diff | 26 +++++++++++++------------- gl/lib/tempname.h.diff | 8 ++++---- gl/modules/link-tests.diff | 10 +++++----- gl/modules/rename-tests.diff | 4 ++-- gl/modules/tempname.diff | 6 ++++-- 9 files changed, 53 insertions(+), 51 deletions(-) diff --git a/gl/lib/regcomp.c.diff b/gl/lib/regcomp.c.diff index e965673..9042a6e 100644 --- a/gl/lib/regcomp.c.diff +++ b/gl/lib/regcomp.c.diff @@ -1,8 +1,8 @@ diff --git a/lib/regcomp.c b/lib/regcomp.c -index d5968bd..4926676 100644 +index 6d5525a..c9331d4 100644 --- a/lib/regcomp.c +++ b/lib/regcomp.c -@@ -541,7 +541,7 @@ regerror (errcode, preg, errbuf, errbuf_size) +@@ -539,7 +539,7 @@ regerror (errcode, preg, errbuf, errbuf_size) size_t errbuf_size; #else /* size_t might promote */ size_t @@ -11,7 +11,7 @@ index d5968bd..4926676 100644 char *_Restrict_ errbuf, size_t errbuf_size) #endif { -@@ -1415,7 +1415,7 @@ calc_first (void *extra, bin_tree_t *node) +@@ -1421,7 +1421,7 @@ calc_first (void *extra, bin_tree_t *node) /* Pass 2: compute NEXT on the tree. Preorder visit. */ static reg_errcode_t @@ -20,7 +20,7 @@ index d5968bd..4926676 100644 { switch (node->token.type) { -@@ -2792,8 +2792,10 @@ build_range_exp (const reg_syntax_t synt +@@ -2807,8 +2807,10 @@ build_range_exp (const reg_syntax_t syntax, static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N @@ -33,7 +33,7 @@ index d5968bd..4926676 100644 # else /* not RE_ENABLE_I18N */ build_collating_symbol (bitset_t sbcset, const unsigned char *name) # endif /* not RE_ENABLE_I18N */ -@@ -3377,7 +3379,8 @@ parse_bracket_exp (re_string_t *regexp, +@@ -3392,7 +3394,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, @@ -43,7 +43,7 @@ index d5968bd..4926676 100644 reg_syntax_t syntax, bool accept_hyphen) { #ifdef RE_ENABLE_I18N -@@ -3464,8 +3467,10 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, +@@ -3479,8 +3482,10 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, static reg_errcode_t #ifdef RE_ENABLE_I18N @@ -56,7 +56,7 @@ index d5968bd..4926676 100644 #else /* not RE_ENABLE_I18N */ build_equiv_class (bitset_t sbcset, const unsigned char *name) #endif /* not RE_ENABLE_I18N */ -@@ -3869,7 +3874,7 @@ free_token (re_token_t *node) +@@ -3886,7 +3891,7 @@ free_token (re_token_t *node) and its children. */ static reg_errcode_t diff --git a/gl/lib/regex_internal.c.diff b/gl/lib/regex_internal.c.diff index 2cede3c..a27f672 100644 --- a/gl/lib/regex_internal.c.diff +++ b/gl/lib/regex_internal.c.diff @@ -1,17 +1,17 @@ diff --git a/lib/regex_internal.c b/lib/regex_internal.c -index 904b88e..61c8d9d 100644 +index 7e8c1bc..e68c9da 100644 --- a/lib/regex_internal.c +++ b/lib/regex_internal.c -@@ -18,6 +18,8 @@ - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +@@ -16,6 +16,8 @@ + You should have received a copy of the GNU General Public License along + with this program; if not, see <http://www.gnu.org/licenses/>. */ +#include "verify.h" +#include "intprops.h" static void re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, -@@ -1390,7 +1392,10 @@ static void +@@ -1393,7 +1395,10 @@ static void internal_function re_node_set_remove_at (re_node_set *set, Idx idx) { diff --git a/gl/lib/regex_internal.h.diff b/gl/lib/regex_internal.h.diff index d1506a6..fe0f2b7 100644 --- a/gl/lib/regex_internal.h.diff +++ b/gl/lib/regex_internal.h.diff @@ -1,14 +1,14 @@ -diff --git i/lib/regex_internal.h w/lib/regex_internal.h -index 859832f..3c7fe06 100644 ---- i/lib/regex_internal.h -+++ w/lib/regex_internal.h -@@ -826,7 +826,8 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx) - +diff --git a/lib/regex_internal.h b/lib/regex_internal.h +index 2b9f697..7f4e349 100644 +--- a/lib/regex_internal.h ++++ b/lib/regex_internal.h +@@ -823,7 +823,8 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx) + # ifndef NOT_IN_libc static int internal_function __attribute ((pure)) -re_string_elem_size_at (const re_string_t *pstr, Idx idx) +re_string_elem_size_at (const re_string_t *pstr _UNUSED_PARAMETER_, + Idx idx _UNUSED_PARAMETER_) { - # ifdef _LIBC + # ifdef _LIBC const unsigned char *p, *extra; diff --git a/gl/lib/regexec.c.diff b/gl/lib/regexec.c.diff index d9b6d1c..897d248 100644 --- a/gl/lib/regexec.c.diff +++ b/gl/lib/regexec.c.diff @@ -1,17 +1,17 @@ diff --git a/lib/regexec.c b/lib/regexec.c -index 21a8166..7762437 100644 +index 7d130a0..a58d454 100644 --- a/lib/regexec.c +++ b/lib/regexec.c -@@ -18,6 +18,8 @@ - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +@@ -16,6 +16,8 @@ + You should have received a copy of the GNU General Public License along + with this program; if not, see <http://www.gnu.org/licenses/>. */ +#include "verify.h" +#include "intprops.h" static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, Idx n) internal_function; static void match_ctx_clean (re_match_context_t *mctx) internal_function; -@@ -378,8 +380,11 @@ re_search_2_stub (struct re_pattern_buffer *bufp, +@@ -374,8 +376,11 @@ re_search_2_stub (struct re_pattern_buffer *bufp, Idx len = length1 + length2; char *s = NULL; @@ -25,7 +25,7 @@ index 21a8166..7762437 100644 /* Concatenate the strings. */ if (length2 > 0) -@@ -431,11 +436,14 @@ re_search_stub (struct re_pattern_buffer *bufp, +@@ -426,11 +431,14 @@ re_search_stub (struct re_pattern_buffer *bufp, Idx last_start = start + range; /* Check for out-of-range. */ diff --git a/gl/lib/tempname.c.diff b/gl/lib/tempname.c.diff index b1c2236..a731421 100644 --- a/gl/lib/tempname.c.diff +++ b/gl/lib/tempname.c.diff @@ -1,8 +1,8 @@ -diff --git c/lib/tempname.c i/lib/tempname.c -index 2da5afe..562955a 100644 ---- c/lib/tempname.c -+++ i/lib/tempname.c -@@ -22,6 +22,7 @@ +diff --git a/lib/tempname.c b/lib/tempname.c +index 26a38ce..5944ee0 100644 +--- a/lib/tempname.c ++++ b/lib/tempname.c +@@ -20,6 +20,7 @@ #if !_LIBC # include <config.h> # include "tempname.h" @@ -10,7 +10,7 @@ index 2da5afe..562955a 100644 #endif #include <sys/types.h> -@@ -49,6 +50,7 @@ +@@ -47,6 +48,7 @@ # error report this to [email protected] #endif @@ -18,7 +18,7 @@ index 2da5afe..562955a 100644 #include <stddef.h> #include <stdlib.h> #include <string.h> -@@ -179,14 +181,21 @@ __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, +@@ -175,14 +177,21 @@ __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, } #endif /* _LIBC */ @@ -41,8 +41,8 @@ index 2da5afe..562955a 100644 + this function. TMPL is overwritten with the result. KIND may be one of: - __GT_NOCREATE: simply verify that the name does not exist -@@ -197,23 +206,24 @@ static const char letters[] = + __GT_NOCREATE: simply verify that the name does not exist +@@ -193,23 +202,24 @@ static const char letters[] = We use a clever algorithm to get hard-to-predict names. */ int @@ -72,7 +72,7 @@ index 2da5afe..562955a 100644 #define ATTEMPTS_MIN (62 * 62 * 62) /* The number of times to attempt to generate a temporary file. To -@@ -225,43 +235,28 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) +@@ -221,43 +231,28 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) #endif len = strlen (tmpl); @@ -128,7 +128,7 @@ index 2da5afe..562955a 100644 switch (kind) { -@@ -276,7 +271,7 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) +@@ -272,7 +267,7 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) break; case __GT_NOCREATE: @@ -137,7 +137,7 @@ index 2da5afe..562955a 100644 succeeds if __xstat fails because the name does not exist. Note the continue to bypass the common logic at the bottom of the loop. */ -@@ -285,11 +280,15 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) +@@ -281,11 +276,15 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) if (errno == ENOENT) { __set_errno (save_errno); @@ -156,7 +156,7 @@ index 2da5afe..562955a 100644 } continue; -@@ -301,13 +300,32 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) +@@ -297,13 +296,32 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) if (fd >= 0) { __set_errno (save_errno); diff --git a/gl/lib/tempname.h.diff b/gl/lib/tempname.h.diff index 6707445..2e885e1 100644 --- a/gl/lib/tempname.h.diff +++ b/gl/lib/tempname.h.diff @@ -1,7 +1,7 @@ -diff --git c/lib/tempname.h i/lib/tempname.h -index cd69e7d..9757db2 100644 ---- c/lib/tempname.h -+++ i/lib/tempname.h +diff --git a/lib/tempname.h b/lib/tempname.h +index 7972562..7ced9a9 100644 +--- a/lib/tempname.h ++++ b/lib/tempname.h @@ -46,5 +46,7 @@ We use a clever algorithm to get hard-to-predict names. */ diff --git a/gl/modules/link-tests.diff b/gl/modules/link-tests.diff index 5d0cbc1..25f7120 100644 --- a/gl/modules/link-tests.diff +++ b/gl/modules/link-tests.diff @@ -1,8 +1,8 @@ -diff --git i/modules/link-tests w/modules/link-tests -index d8e7b1a..aca0e74 100644 ---- i/modules/link-tests -+++ w/modules/link-tests -@@ -12,3 +12,4 @@ configure.ac: +diff --git a/modules/link-tests b/modules/link-tests +index 5b1978e..039e97f 100644 +--- a/modules/link-tests ++++ b/modules/link-tests +@@ -15,3 +15,4 @@ configure.ac: Makefile.am: TESTS += test-link check_PROGRAMS += test-link diff --git a/gl/modules/rename-tests.diff b/gl/modules/rename-tests.diff index 7f1ff61..f7d0e1d 100644 --- a/gl/modules/rename-tests.diff +++ b/gl/modules/rename-tests.diff @@ -1,8 +1,8 @@ diff --git a/modules/rename-tests b/modules/rename-tests -index be1b423..fea330a 100644 +index b3cd973..898d18b 100644 --- a/modules/rename-tests +++ b/modules/rename-tests -@@ -14,3 +14,4 @@ configure.ac: +@@ -20,3 +20,4 @@ configure.ac: Makefile.am: TESTS += test-rename check_PROGRAMS += test-rename diff --git a/gl/modules/tempname.diff b/gl/modules/tempname.diff index 65d5205..3603a59 100644 --- a/gl/modules/tempname.diff +++ b/gl/modules/tempname.diff @@ -1,5 +1,7 @@ ---- tempname 2011-10-27 18:55:14.672722002 +0200 -+++ tempname 2011-10-27 18:55:25.200999149 +0200 +diff --git a/modules/tempname b/modules/tempname +index b4708d9..e003c41 100644 +--- a/modules/tempname ++++ b/modules/tempname @@ -1,5 +1,5 @@ Description: -gen_tempname() function: create a private temporary file or directory. -- 1.7.12.rc0.22.gcdd159b
