[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: if 'missing makeinfo' then pkg.info is zero sized
From: |
Alexandre Duret-Lutz |
Subject: |
Re: if 'missing makeinfo' then pkg.info is zero sized |
Date: |
Wed, 08 Jun 2005 21:41:12 +0200 |
User-agent: |
Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux) |
>>> "Bob" == Bob Proulx <address@hidden> writes:
Bob> It seems that if 'makeinfo' is missing from the system but that the
Bob> timestamp of the .texi file is newer than the .info file that the
Bob> .info file is removed and replaced with a zero size file. I tested
Bob> this with automake 1.9.5.
Thanks for the report, and sorry for the delay. Short of any better
fix, I'm installing the following on HEAD and branch-1-9.
Bob> Of course patch does not preserve timestamps.
Do you know why Debian doesn't use the -Z option of patch?
I always wondered.
2005-06-08 Alexandre Duret-Lutz <address@hidden>
* lib/am/texibuild.am (?GENERIC_INFO?%SOURCE_SUFFIX%%DEST_SUFFIX%):
Do not backup any file if makeinfo is not installed.
* lib/missing (makeinfo): Do not touch a missing info file.
* tests/txinfo30.test: New file.
* tests/Makefile.am (TESTS): Add txinfo30.test.
Report from Bob Proulx.
Index: lib/missing
===================================================================
RCS file: /cvs/automake/automake/lib/missing,v
retrieving revision 1.28
diff -u -r1.28 missing
--- lib/missing 14 May 2005 20:28:50 -0000 1.28
+++ lib/missing 8 Jun 2005 19:34:37 -0000
@@ -1,7 +1,7 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2005-05-14.22
+scriptversion=2005-06-08.21
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
@@ -297,6 +297,9 @@
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
touch $file
;;
Index: lib/am/texibuild.am
===================================================================
RCS file: /cvs/automake/automake/lib/am/texibuild.am,v
retrieving revision 1.24
diff -u -r1.24 texibuild.am
--- lib/am/texibuild.am 14 May 2005 20:28:53 -0000 1.24
+++ lib/am/texibuild.am 8 Jun 2005 19:34:37 -0000
@@ -1,6 +1,6 @@
## automake - create Makefile.in from Makefile.am
## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-## 2003, 2004 Free Software Foundation, Inc.
+## 2003, 2004, 2005 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
@@ -37,9 +37,13 @@
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
?INSRC? am__cwd=`pwd` && cd $(srcdir) && \
rm -rf $$backupdir && mkdir $$backupdir && \
- for f in $@ address@hidden address@hidden $(@:.info=).i[0-9]
$(@:.info=).i[0-9][0-9]; do \
- if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
- done; \
+## If makeinfo is not installed we must not backup the files so
+##`missing' can do its job and touch $@ if it exists.
+ if ($(MAKEINFO) --version >/dev/null 2>&1); then \
+ for f in $@ address@hidden address@hidden $(@:.info=).i[0-9]
$(@:.info=).i[0-9][0-9]; do \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
?INSRC? cd "$$am__cwd"; \
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) %MAKEINFOFLAGS% \
?!INSRC? -o $@ `test -f '%SOURCE_INFO%' || echo
'$(srcdir)/'`%SOURCE_INFO%; \
Index: tests/Makefile.am
===================================================================
RCS file: /cvs/automake/automake/tests/Makefile.am,v
retrieving revision 1.587
diff -u -r1.587 Makefile.am
--- tests/Makefile.am 14 May 2005 19:01:43 -0000 1.587
+++ tests/Makefile.am 8 Jun 2005 19:34:37 -0000
@@ -546,6 +546,7 @@
txinfo27.test \
txinfo28.test \
txinfo29.test \
+txinfo30.test \
transform.test \
unused.test \
vars.test \
Index: tests/txinfo30.test
===================================================================
RCS file: tests/txinfo30.test
diff -N tests/txinfo30.test
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/txinfo30.test 8 Jun 2005 19:34:38 -0000
@@ -0,0 +1,63 @@
+#! /bin/sh
+# Copyright (C) 2005 Free Software Foundation, Inc.
+#
+# This file is part of GNU Automake.
+#
+# GNU Automake 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 2, or (at your option)
+# any later version.
+#
+# GNU Automake 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 Automake; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+# Make sure `missing texinfo' does not create empty files.
+# Report from Bob Proulx.
+
+. ./defs || exit 1
+
+set -e
+
+echo info_TEXINFOS = bar.texi >Makefile.am
+echo grepme >bar.info
+$sleep
+cat >bar.texi <<EOF
address@hidden bar.info
+EOF
+
+echo AC_OUTPUT >>configure.in
+
+cat >makeinfo <<\EOF
+#!/bin/sh
+# This script
+# 1. fails so `missing' can take over
+# 2. does not understand `--version' so `missing' thinks `makeinfo' isn't
+# installed
+exec false
+EOF
+
+chmod +x makeinfo
+
+PATH=`pwd`:$PATH
+export PATH
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+./configure
+$MAKE
+grep grepme bar.info
+test -f bar.info
+
+# We should not create a missing bar.info.
+rm -f bar.info
+$MAKE && exit 1
+test ! -f bar.info
--
Alexandre Duret-Lutz
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: if 'missing makeinfo' then pkg.info is zero sized,
Alexandre Duret-Lutz <=