Subject: [PATCH] build: don't let a large sparse temporary file cause "make dist" to fail

From: Jim Meyering <[email-masked]>
Date: Thu, 10 Jun 2010 23:38:57 +0200

I had this problem:

  http://thread.gmane.org/gmane.comp.gnu.utils.bugs/16929

Here's a proposed work-around, while we wait for an upstream
change that fixes Makefile.in.in or at least lets us configure
the offending rule.

>From 1f85bf38919791753c9a931ad05badd0e0274a5c Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email-masked]>
Date: Thu, 10 Jun 2010 23:33:17 +0200
Subject: [PATCH] build: don't let a large sparse temporary file cause "make dist" to fail

* bootstrap.conf (bootstrap_epilogue): Replace the offending grep
command from po/Makefile.in.in's $(DOMAIN).pot-update rule.
---
 bootstrap.conf |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/bootstrap.conf b/bootstrap.conf
index 576d308..6e85c9a 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -337,4 +337,15 @@ bootstrap_epilogue()
   m=gnulib-tests/gnulib.mk
   sed 's,\.\./\.\.,..,g' $m > $m-t
   mv -f $m-t $m
+
+  # Since this is a "GNU" package, replace this line
+  #   if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \
+  #      | grep -v 'libtool:' >/dev/null; then
+  # with this:
+  #   if true; then
+  # Why?  That pipeline searches all files in $(top_srcdir), and if you
+  # happen to have large files (or apparently large sparse files), the
+  # first grep may well run out of memory.
+  perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
+    po/Makefile.in.in
 }
--
1.7.1.501.g23b46