| From 7b3839bcf9f79988fb944cd65717839cde166cb8 Mon Sep 17 00:00:00 2001 |
| From: Peter Korsgaard <peter@korsgaard.com> |
| Date: Thu, 20 Nov 2014 13:24:59 +0100 |
| Subject: [PATCH] Misc/python-config.sh.in: ensure sed invocations only match |
| beginning of strings |
| |
| The build/real prefix handling using sed breaks if build != real and the |
| standard include / lib directories are used ($prefix/include and $prefix/lib). |
| |
| E.G. |
| |
| prefix_build="/usr", libdir="$prefix/lib", includedir="$prefix/include". |
| |
| If this gets installed with make DESTDIR="/foo" install, then we end up with |
| prefix_real = prefix = "/foo/usr" as expected, but |
| includedir="/foo/foo/usr/include" and libdir="/foo/foo/usr/lib" because of |
| the double sed invocation (prefix is already expanded). Work around it by |
| ensuring we only match the beginning of the string. |
| |
| Submitted upstream: http://bugs.python.org/issue22907 |
| |
| Signed-off-by: Peter Korsgaard <peter@korsgaard.com> |
| --- |
| Misc/python-config.sh.in | 13 +++++++------ |
| 1 file changed, 7 insertions(+), 6 deletions(-) |
| |
| diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in |
| index 2602fe24c0..a1bc3cd5f7 100644 |
| --- a/Misc/python-config.sh.in |
| +++ b/Misc/python-config.sh.in |
| @@ -24,18 +24,19 @@ installed_prefix () |
| echo $RESULT |
| } |
| |
| +prefix_build="@prefix@" |
| prefix_real=$(installed_prefix "$0") |
| |
| # Use sed to fix paths from their built-to locations to their installed-to |
| # locations. Keep prefix & exec_prefix using their original values in case |
| # they are referenced in other configure variables, to prevent double |
| # substitution, issue #22140. |
| -prefix="@prefix@" |
| -exec_prefix="@exec_prefix@" |
| +prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#") |
| +exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#") |
| exec_prefix_real=${prefix_real} |
| -includedir=$(echo "@includedir@" | sed "s#$prefix#$prefix_real#") |
| -libdir=$(echo "@libdir@" | sed "s#$prefix#$prefix_real#") |
| -CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix#$prefix_real#") |
| +includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#") |
| +libdir=$(echo "@libdir@" | sed "s#^$prefix_build#$prefix_real#") |
| +CFLAGS=$(echo "@CFLAGS@" | sed "s#^$prefix_build#$prefix_real#") |
| VERSION="@VERSION@" |
| LIBM="@LIBM@" |
| LIBC="@LIBC@" |
| @@ -49,7 +50,7 @@ OPT="@OPT@" |
| PY_ENABLE_SHARED="@PY_ENABLE_SHARED@" |
| LDVERSION="@LDVERSION@" |
| LIBDEST=${prefix_real}/lib/python${VERSION} |
| -LIBPL=$(echo "@LIBPL@" | sed "s#$prefix#$prefix_real#") |
| +LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#") |
| SO="@EXT_SUFFIX@" |
| PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" |
| INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}" |
| -- |
| 2.20.1 |
| |