commit:     bea9ef3e0947bfdaaba2c5e5d4abb72292ee048e
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  1 08:09:28 2023 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue Apr 18 11:17:50 2023 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=bea9ef3e

econf: Match configure --help output better

Check for proper end of string for all option names beginning with
"with", "disable" or "enable".

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 NEWS                 |  5 +++++
 bin/phase-helpers.sh | 10 ++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/NEWS b/NEWS
index 4a41fc0c6..e60262509 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,11 @@ Features:
   - -Wimplicit-int
   - -Wstring-compare
 
+Bug fixes:
+* econf now checks for proper end of string in "configure --help" output for
+  all options starting with "--with-", "--disable-" or "--enable-", in order
+  to pass them to configure. This follows a change in PMS (bug #815169).
+
 portage-3.0.46 (2023-04-07)
 ---------------
 

diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index a0fe599fd..cc3f85faa 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 if ___eapi_has_DESTTREE_INSDESTTREE; then
@@ -643,13 +643,15 @@ econf() {
                        fi
 
                        if ___eapi_econf_passes_--disable-dependency-tracking; 
then
-                               if [[ ${conf_help} == 
*--disable-dependency-tracking* ]]; then
+                               if [[ ${conf_help} == \
+                                               
*--disable-dependency-tracking[^A-Za-z0-9+_.-]* ]]; then
                                        conf_args+=( 
--disable-dependency-tracking )
                                fi
                        fi
 
                        if ___eapi_econf_passes_--disable-silent-rules; then
-                               if [[ ${conf_help} == *--disable-silent-rules* 
]]; then
+                               if [[ ${conf_help} == \
+                                               
*--disable-silent-rules[^A-Za-z0-9+_.-]* ]]; then
                                        conf_args+=( --disable-silent-rules )
                                fi
                        fi
@@ -672,7 +674,7 @@ econf() {
                        fi
 
                        if ___eapi_econf_passes_--with-sysroot; then
-                               if [[ ${conf_help} == *--with-sysroot* ]]; then
+                               if [[ ${conf_help} == 
*--with-sysroot[^A-Za-z0-9+_.-]* ]]; then
                                        conf_args+=( 
--with-sysroot="${ESYSROOT:-/}" )
                                fi
                        fi

Reply via email to