From 6452907be34a86e2cfdbd0627921d2cefbcb4078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20La=C3=ADns?= Date: Tue, 29 Apr 2025 18:12:59 +0100 Subject: [PATCH 1/5] GH-108819: fix LIBDEST not honoring --with-platlibdir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We look for the pure-Python part of the standard library in PLATSTDLIBDIR, which may not match the default LIBDIR subdir. From ``getpath.py``: ```python ... STDLIB_SUBDIR = f'{platlibdir}/python{VERSION_MAJOR}.{VERSION_MINOR}{ABI_THREAD}' STDLIB_LANDMARKS = [f'{STDLIB_SUBDIR}/os.py', f'{STDLIB_SUBDIR}/os.pyc'] PLATSTDLIB_LANDMARK = f'{platlibdir}/python{VERSION_MAJOR}.{VERSION_MINOR}{ABI_THREAD}/lib-dynload' ... ``` Signed-off-by: Filipe Laíns --- Makefile.pre.in | 2 +- configure | 8 ++++++-- configure.ac | 7 +++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 925e0a243c9e96..dc1db80d88d7bd 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -166,7 +166,7 @@ WHEEL_PKG_DIR= @WHEEL_PKG_DIR@ # Detailed destination directories BINLIBDEST= @BINLIBDEST@ -LIBDEST= $(SCRIPTDIR)/python$(VERSION)$(ABI_THREAD) +LIBDEST= @LIBDEST@ INCLUDEPY= $(INCLUDEDIR)/python$(LDVERSION) CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION) diff --git a/configure b/configure index 205f196a25af2d..61dcfd91ef3cf2 100755 --- a/configure +++ b/configure @@ -839,6 +839,7 @@ LIBPL PY_ENABLE_SHARED PLATLIBDIR BINLIBDEST +LIBDEST LIBPYTHON MODULE_DEPS_SHARED EXT_SUFFIX @@ -26214,6 +26215,8 @@ fi + +LIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' BINLIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' @@ -26237,6 +26240,7 @@ then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } PLATLIBDIR="$withval" + LIBDEST='${prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -26252,9 +26256,9 @@ fi if test x$PLATFORM_TRIPLET = x; then - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}${ABI_THREAD}/config-${LDVERSION}" + LIBPL='$(LIBDEST)'"/config-${LDVERSION}" else - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}${ABI_THREAD}/config-${LDVERSION}-${PLATFORM_TRIPLET}" + LIBPL='$(LIBDEST)'"/config-${LDVERSION}-${PLATFORM_TRIPLET}" fi diff --git a/configure.ac b/configure.ac index f0ae7fbec1cbfe..9a8830ad3adcd3 100644 --- a/configure.ac +++ b/configure.ac @@ -6249,7 +6249,9 @@ if test "$ac_sys_system" = "iOS"; then fi +AC_SUBST([LIBDEST]) AC_SUBST([BINLIBDEST]) +LIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' BINLIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' @@ -6273,6 +6275,7 @@ if test -n "$withval" -a "$withval" != yes -a "$withval" != no then AC_MSG_RESULT([yes]) PLATLIBDIR="$withval" + LIBDEST='${prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' else AC_MSG_RESULT([no]) @@ -6283,9 +6286,9 @@ fi], dnl define LIBPL after ABIFLAGS and LDVERSION is defined. AC_SUBST([PY_ENABLE_SHARED]) if test x$PLATFORM_TRIPLET = x; then - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}${ABI_THREAD}/config-${LDVERSION}" + LIBPL='$(LIBDEST)'"/config-${LDVERSION}" else - LIBPL='$(prefix)'"/${PLATLIBDIR}/python${VERSION}${ABI_THREAD}/config-${LDVERSION}-${PLATFORM_TRIPLET}" + LIBPL='$(LIBDEST)'"/config-${LDVERSION}-${PLATFORM_TRIPLET}" fi AC_SUBST([LIBPL]) From ab027bbbadb3f267a3afec755556626f8818cf08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20La=C3=ADns?= Date: Tue, 29 Apr 2025 18:25:36 +0100 Subject: [PATCH 2/5] Add news MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filipe Laíns --- .../next/Build/2025-04-29-18-25-34.gh-issue-108819.qMUTRB.rst | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Misc/NEWS.d/next/Build/2025-04-29-18-25-34.gh-issue-108819.qMUTRB.rst diff --git a/Misc/NEWS.d/next/Build/2025-04-29-18-25-34.gh-issue-108819.qMUTRB.rst b/Misc/NEWS.d/next/Build/2025-04-29-18-25-34.gh-issue-108819.qMUTRB.rst new file mode 100644 index 00000000000000..e374a86f0bc9a2 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2025-04-29-18-25-34.gh-issue-108819.qMUTRB.rst @@ -0,0 +1,3 @@ +Honor :option:`--with-platlibdir` in the pure-Python standard library +installation path, if ``PLATLIBDIR`` doesn't match the value used in +``LIBDIR``. From cc4d8146167ca3a7057b22b26f7891d3032f673b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20La=C3=ADns?= Date: Tue, 29 Apr 2025 18:44:20 +0100 Subject: [PATCH 3/5] Always set LIBDEST and BINLIBDEST based on PLATLIBDIR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filipe Laíns --- configure | 15 +++++---------- configure.ac | 13 ++++--------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/configure b/configure index 61dcfd91ef3cf2..ca0a920d52541a 100755 --- a/configure +++ b/configure @@ -837,9 +837,9 @@ LIBREADLINE_CFLAGS WHEEL_PKG_DIR LIBPL PY_ENABLE_SHARED -PLATLIBDIR BINLIBDEST LIBDEST +PLATLIBDIR LIBPYTHON MODULE_DEPS_SHARED EXT_SUFFIX @@ -26213,13 +26213,6 @@ if test "$ac_sys_system" = "iOS"; then MODULE_DEPS_SHARED="$MODULE_DEPS_SHARED \$(PYTHONFRAMEWORKDIR)/\$(PYTHONFRAMEWORK)" fi - - - -LIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' -BINLIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' - - # Check for --with-platlibdir # /usr/$PLATLIBDIR/python$(VERSION)$(ABI_THREAD) @@ -26240,8 +26233,6 @@ then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } PLATLIBDIR="$withval" - LIBDEST='${prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' - BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } @@ -26255,6 +26246,10 @@ fi +LIBDEST='${prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' +BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' + + if test x$PLATFORM_TRIPLET = x; then LIBPL='$(LIBDEST)'"/config-${LDVERSION}" else diff --git a/configure.ac b/configure.ac index 9a8830ad3adcd3..8bb209cbefb1cb 100644 --- a/configure.ac +++ b/configure.ac @@ -6248,13 +6248,6 @@ if test "$ac_sys_system" = "iOS"; then MODULE_DEPS_SHARED="$MODULE_DEPS_SHARED \$(PYTHONFRAMEWORKDIR)/\$(PYTHONFRAMEWORK)" fi - -AC_SUBST([LIBDEST]) -AC_SUBST([BINLIBDEST]) -LIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' -BINLIBDEST='$(LIBDIR)/python$(VERSION)$(ABI_THREAD)' - - # Check for --with-platlibdir # /usr/$PLATLIBDIR/python$(VERSION)$(ABI_THREAD) AC_SUBST([PLATLIBDIR]) @@ -6275,13 +6268,15 @@ if test -n "$withval" -a "$withval" != yes -a "$withval" != no then AC_MSG_RESULT([yes]) PLATLIBDIR="$withval" - LIBDEST='${prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' - BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' else AC_MSG_RESULT([no]) fi], [AC_MSG_RESULT([no])]) +AC_SUBST([LIBDEST]) +AC_SUBST([BINLIBDEST]) +LIBDEST='${prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' +BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)$(ABI_THREAD)' dnl define LIBPL after ABIFLAGS and LDVERSION is defined. AC_SUBST([PY_ENABLE_SHARED]) From 532722975009e65a9e57aada989e0bb41e504014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20La=C3=ADns?= Date: Tue, 29 Apr 2025 18:45:45 +0100 Subject: [PATCH 4/5] Add XXX comment on PLATLIBDIR default value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filipe Laíns --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 8bb209cbefb1cb..f53be1bd944b0f 100644 --- a/configure.ac +++ b/configure.ac @@ -6251,7 +6251,7 @@ fi # Check for --with-platlibdir # /usr/$PLATLIBDIR/python$(VERSION)$(ABI_THREAD) AC_SUBST([PLATLIBDIR]) -PLATLIBDIR="lib" +PLATLIBDIR="lib" # XXX: We should probably calculate the defauly from libdir, if defined. AC_MSG_CHECKING([for --with-platlibdir]) AC_ARG_WITH( [platlibdir], From a2b43c9d137ff762d5d2cca88be352336c901fca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20La=C3=ADns?= Date: Tue, 29 Apr 2025 18:56:24 +0100 Subject: [PATCH 5/5] Regen configure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filipe Laíns --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index ca0a920d52541a..0de4b0aed51d70 100755 --- a/configure +++ b/configure @@ -26216,7 +26216,7 @@ fi # Check for --with-platlibdir # /usr/$PLATLIBDIR/python$(VERSION)$(ABI_THREAD) -PLATLIBDIR="lib" +PLATLIBDIR="lib" # XXX: We should probably calculate the defauly from libdir, if defined. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 printf %s "checking for --with-platlibdir... " >&6; }