libtool-patches
[Top][All Lists]
Advanced

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

FYI: [PATCH 1/4] libtoolize: fix some long-standing sed substitution bug


From: Gary V. Vaughan
Subject: FYI: [PATCH 1/4] libtoolize: fix some long-standing sed substitution bugs
Date: Mon, 31 Oct 2011 21:55:51 +0700

Applied as obvious.

* libtoolize.m4sh (func_fixup_Makefile): `\\\\\$' in a " quoted
script that is evaluated twice before execution becomes a `\$',
which sed interprets as a literal $.  The script will then delete
any lines with a first non-whitespace character of `$'. Instead
use `\\\\$' in single quotes, which sed eventually receives as
`\\$' and correctly interprets as part of an instruction to
delete otherwise empty lines ending with a `\'.
Additionally the rest of the same sed script is no longer
applied to comment lines to avoid munging the copyright header
among others.
* NEWS: Updated.
---
 NEWS            |    3 +++
 libtoolize.m4sh |    5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index a960e43..94de233 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,9 @@ NEWS - list of user-visible changes between releases of GNU 
Libtool
 
   - Fix a long-standing latent bug in autom4te include path for autotests
     with VPATH builds.
+  - Fix a long-standing latent bug in libtoolize which could delete lines
+    from libltdl/Makefile.am in recursive mode due to underquoting in a
+    sed script.
 
 New in 2.4.2 2011-10-17: git version 2.4.1a, Libtool team:
 
diff --git a/libtoolize.m4sh b/libtoolize.m4sh
index 1626c17..4489b57 100644
--- a/libtoolize.m4sh
+++ b/libtoolize.m4sh
@@ -320,7 +320,7 @@ func_fixup_Makefile ()
     my_filename="$1"
     my_srcdir="$2"
     my_destdir="$3"
-    my_fixup_non_subpackage_script="\
+    my_fixup_non_subpackage_script='/^[^#]/{
       s,(LIBOBJS),(ltdl_LIBOBJS),g
       s,(LTLIBOBJS),(ltdl_LTLIBOBJS),g
       s,libltdl/configure.ac,,
@@ -329,7 +329,8 @@ func_fixup_Makefile ()
       s,libltdl/config-h.in,,
       s,libltdl/Makefile.am,,
       s,libltdl/Makefile.in,,
-      /^[       ]*\\\\\$/d"
+      /^[       ]*\\\\$/d
+    }'
     case $my_filename in
       Makefile.am)
        my_fixup_non_subpackage_script=`echo "$my_fixup_non_subpackage_script" 
| \
-- 
1.7.7.1

Cheers,
-- 
Gary V. Vaughan (gary AT gnu DOT org)


reply via email to

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