Control: tags -1 + upstream
Control: severity -1 important
Control: forwarded -1 https://savannah.gnu.org/patch/index.php?10282

Increasing the severity since this is a FTBFS bug. I'd say it is even
serious, but since it is being caused by grep, I am limiting the
increase to important for now.

On Wed, 14 Sep 2022 09:10:37 +0200 Jochen Sprickerhof <jspri...@debian.org> 
wrote:
> Package: libtool
> Version: 2.4.7-4
> Tags: patch
> 
> Hi,
> 
> the new grep in unstable causes a FTBFS in libtool:
> 
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/libtool.html
> 
> with a proposed upstream patch:
> 
> https://lists.gnu.org/archive/html/libtool-patches/2022-09/msg00000.html
> 
> And it breaks autopkgtests of unrelated packages like:
> 
> https://ci.debian.net/data/autopkgtest/unstable/amd64/d/dpkg/26032114/log.gz
> 
> proposed upstream patch:
> 
> https://lists.gnu.org/archive/html/libtool-patches/2022-09/msg00001.html
> 

grep upstream proposes a more complete patch for libtool here:
https://savannah.gnu.org/patch/index.php?10282
This patch fixes the problematic patterns in libtool, other than in the
tests. Attached you can find a refreshed patch against 2.4.7-4 (current
version in unstable).

As listed in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019724#52
there are 4235 debian packages that exhibit the "stray \" warning in
their build logs. I can suppose most of them relates to libtool.

I've applied the patch to libtool, used it to rebuild grep, and I can
confirm the warnings disappeared.

> I've asked the grep maintainer to silence the warning in #1019724 but
> maybe would still be great to fix this.

While I think silencing these "stray \" warnings in debian's grep is OK
for now, fixing this bug in libtool is the proper solution in the long
term.

FTR, this is some grep upstream's input about this issue:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019724#62

Please, consider applying the patch.

Cheers,

 -- Santiago
From bb6e526657e9c03dd3be954123c091a001c06811 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Mon, 19 Sep 2022 13:22:53 -0700
Subject: [PATCH 1/2] libtool: port to GNU grep 3.8
Origin: other, https://savannah.gnu.org/patch/index.php?10282
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019725
Last-Update: 2022-09-22

* m4/libtool.m4 (_LT_LANG_CXX_CONFIG): Do not use \- in a BRE or ERE,
as this produces undefined results that GNU grep 3.8 warns about.
Use [-] instead.
* tests/link-order.at (Link order test): Similarly, do not use
\/ in an ERE; use / instead.
---
 m4/libtool.m4       | 12 ++++++------
 tests/link-order.at |  4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

Index: libtool/m4/libtool.m4
===================================================================
--- libtool.orig/m4/libtool.m4
+++ libtool/m4/libtool.m4
@@ -6469,7 +6469,7 @@ if test yes != "$_lt_caught_CXX_error";
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"'
 
     else
       GXX=no
@@ -6845,7 +6845,7 @@ if test yes != "$_lt_caught_CXX_error";
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test yes = "$GXX"; then
@@ -6910,7 +6910,7 @@ if test yes != "$_lt_caught_CXX_error";
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
 	    if test yes = "$GXX"; then
@@ -7249,7 +7249,7 @@ if test yes != "$_lt_caught_CXX_error";
 	      # Commands to make compiler produce verbose output that lists
 	      # what "hidden" libraries, object files and flags are used when
 	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"'
 
 	    else
 	      # FIXME: insert proper C++ library support
@@ -7333,7 +7333,7 @@ if test yes != "$_lt_caught_CXX_error";
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "[[-]]L"'
 	      else
 	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
 	        # platform.
Index: libtool/tests/link-order.at
===================================================================
--- libtool.orig/tests/link-order.at
+++ libtool/tests/link-order.at
@@ -99,12 +99,12 @@ aix* | interix*) ;;  # These systems hav
   case $hardcode_direct$hardcode_direct_absolute in
   yesno)
     AT_CHECK([if $EGREP relinking stderr; then
-         $EGREP " .*\/new\/lib/libb$shared_ext .*\/old\/lib/libcee$shared_ext" stdout
+         $EGREP " .*/new/lib/libb$shared_ext .*/old/lib/libcee$shared_ext" stdout
        else :; fi], [0], [ignore], [], [echo "wrong link order"])
     ;;
   *)
     AT_CHECK([if $EGREP relinking stderr; then
-         $EGREP " -L.*\/new\/lib -lb -L.*\/old\/lib -lcee" stdout
+         $EGREP " -L.*/new/lib -lb -L.*/old/lib -lcee" stdout
        else :; fi], [0], [ignore], [], [echo "wrong link order"])
     ;;
   esac

Attachment: signature.asc
Description: PGP signature

Reply via email to