git: a94d4b1005b1 - main - lang/python*: Replace DISABLED_EXTENSIONS with Setup.local
Danilo G. Baio
dbaio at FreeBSD.org
Thu Jul 8 01:56:44 UTC 2021
The branch main has been updated by dbaio:
URL: https://cgit.FreeBSD.org/ports/commit/?id=a94d4b1005b1e93a27bcb9e4e794eeb13c991dd5
commit a94d4b1005b1e93a27bcb9e4e794eeb13c991dd5
Author: Danilo G. Baio <dbaio at FreeBSD.org>
AuthorDate: 2021-07-07 02:04:38 +0000
Commit: Danilo G. Baio <dbaio at FreeBSD.org>
CommitDate: 2021-07-08 01:55:17 +0000
lang/python*: Replace DISABLED_EXTENSIONS with Setup.local
Currently, lang/python38 and lang/python39 don't honor
DISABLED_EXTENSIONS because patch-issue20210 was removed when
lang/python38 was added to the ports tree. patch-issue20210 is still
present on lang/python36 and lang/python37.
Building with poudriere is not affected because builds are executed in a
clean environment.
Setup.local is the more canonical and recommended method for customizing
Python builds for shared extensions & third party libraries.
Support for a *disabled* marker in Setup files was introduced in Python
3.7, so backport this fix to it to keep consistency in the ports tree.
PR: 243358 [1]
PR: 243937 [2]
Reported by: ngie [1]
Reported by: jcfyecrayz at liamekaens.com [2]
Reported by: tuxillo (IRC) DPorts
Reviewed by: koobs (python, maintainer)
Approved by: koobs, dbaio (python, maintainer)
MFH: 2021Q3 (build bugfix)
Differential Revision: https://reviews.freebsd.org/D31086
---
lang/python37/Makefile | 7 +++-
lang/python37/files/patch-issue20210 | 68 ------------------------------------
lang/python38/Makefile | 7 +++-
lang/python39/Makefile | 7 +++-
4 files changed, 18 insertions(+), 71 deletions(-)
diff --git a/lang/python37/Makefile b/lang/python37/Makefile
index 1fbc864fc546..00715d704b09 100644
--- a/lang/python37/Makefile
+++ b/lang/python37/Makefile
@@ -30,7 +30,7 @@ PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --with-system-ffi --with-system-libmpdec --without-ensurepip
-CONFIGURE_ENV+= OPT="" DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS}" # Null out OPT to respect user CFLAGS and remove optimizations
+CONFIGURE_ENV+= OPT="" # Null out OPT to respect user CFLAGS and remove optimizations
INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
@@ -111,6 +111,11 @@ post-patch:
# which introduces hidden dependency and breaks build
@${REINPLACE_CMD} -e 's|uuid/uuid.h|ignore_&|' ${WRKSRC}/configure
@${REINPLACE_CMD} -e '/find_library_file/ s|uuid|ignore_&|' ${WRKSRC}/setup.py
+# Apply DISABLED_EXTENSIONS
+ @${ECHO} '*disabled*' > ${WRKSRC}/Modules/Setup.local
+. for _module in ${DISABLED_EXTENSIONS}
+ @${ECHO} ${_module} >> ${WRKSRC}/Modules/Setup.local
+. endfor
post-install:
.if ! ${PORT_OPTIONS:MDEBUG}
diff --git a/lang/python37/files/patch-issue20210 b/lang/python37/files/patch-issue20210
deleted file mode 100644
index 90330d8f90a5..000000000000
--- a/lang/python37/files/patch-issue20210
+++ /dev/null
@@ -1,68 +0,0 @@
-# Backport patch 0001 from Issue #20210
-# Issue: https://bugs.python.org/issue20210
-# By: Thomas Petazzoni
-
---- ./Makefile.pre.in.orig 2014-03-24 22:45:17.908886504 +1100
-+++ ./Makefile.pre.in 2014-03-24 22:47:55.503779805 +1100
-@@ -172,6 +172,8 @@
- # configure script arguments
- CONFIG_ARGS= @CONFIG_ARGS@
-
-+# disabled extensions
-+DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@
-
- # Subdirectories with code
- SRCDIRS= @SRCDIRS@
-@@ -555,6 +557,7 @@
- esac; \
- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
-+ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
-
- # Build static library
-@@ -1352,7 +1355,8 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
-- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
-+ $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \
-+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
- --prefix=$(prefix) \
- --install-scripts=$(BINDIR) \
- --install-platlib=$(DESTSHARED) \
---- ./configure.ac.orig 2014-03-24 22:48:10.442551831 +1100
-+++ ./configure.ac 2014-03-24 22:48:42.059827384 +1100
-@@ -2331,6 +2331,8 @@
-
- AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
-
-+AC_SUBST(DISABLED_EXTENSIONS)
-+
- # Check for use of the system expat library
- AC_MSG_CHECKING(for --with-system-expat)
- AC_ARG_WITH(system_expat,
---- configure.orig 2015-03-01 13:57:08.000000000 +0300
-+++ configure 2015-03-01 13:57:30.000000000 +0300
-@@ -650,6 +650,7 @@
- TCLTK_LIBS
- TCLTK_INCLUDES
- LIBFFI_INCLUDEDIR
-+DISABLED_EXTENSIONS
- PKG_CONFIG_LIBDIR
- PKG_CONFIG_PATH
- PKG_CONFIG
---- ./setup.py.orig 2014-03-24 22:48:48.495472513 +1100
-+++ ./setup.py 2014-03-24 22:49:20.076122201 +1100
-@@ -33,7 +33,10 @@
- COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))
-
- # This global variable is used to hold the list of modules to be disabled.
--disabled_module_list = []
-+try:
-+ disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ")
-+except KeyError:
-+ disabled_module_list = list()
-
- def add_dir_to_list(dirlist, dir):
- """Add the directory 'dir' to the list 'dirlist' (after any relative
diff --git a/lang/python38/Makefile b/lang/python38/Makefile
index 83a6943299b3..26f043a13531 100644
--- a/lang/python38/Makefile
+++ b/lang/python38/Makefile
@@ -33,7 +33,7 @@ PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip \
--with-system-ffi
-CONFIGURE_ENV+= OPT="" DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS}" # Null out OPT to respect user CFLAGS and remove optimizations
+CONFIGURE_ENV+= OPT="" # Null out OPT to respect user CFLAGS and remove optimizations
INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
@@ -115,6 +115,11 @@ post-patch:
# which introduces hidden dependency and breaks build
@${REINPLACE_CMD} -e 's|uuid/uuid.h|ignore_&|' ${WRKSRC}/configure
@${REINPLACE_CMD} -e '/find_library_file/ s|uuid|ignore_&|' ${WRKSRC}/setup.py
+# Apply DISABLED_EXTENSIONS
+ @${ECHO} '*disabled*' > ${WRKSRC}/Modules/Setup.local
+. for _module in ${DISABLED_EXTENSIONS}
+ @${ECHO} ${_module} >> ${WRKSRC}/Modules/Setup.local
+. endfor
post-install:
.if ! ${PORT_OPTIONS:MDEBUG}
diff --git a/lang/python39/Makefile b/lang/python39/Makefile
index 227b7085a135..e937b5a23b23 100644
--- a/lang/python39/Makefile
+++ b/lang/python39/Makefile
@@ -34,7 +34,7 @@ PYTHON_SUFFIX= ${PYTHON_VER:S/.//g}
DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
CONFIGURE_ARGS+= --enable-shared --without-ensurepip \
--with-system-ffi
-CONFIGURE_ENV+= OPT="" DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS}" # Null out OPT to respect user CFLAGS and remove optimizations
+CONFIGURE_ENV+= OPT="" # Null out OPT to respect user CFLAGS and remove optimizations
INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
@@ -116,6 +116,11 @@ post-patch:
# which introduces hidden dependency and breaks build
@${REINPLACE_CMD} -e 's|uuid/uuid.h|ignore_&|' ${WRKSRC}/configure
@${REINPLACE_CMD} -e '/find_library_file/ s|uuid|ignore_&|' ${WRKSRC}/setup.py
+# Apply DISABLED_EXTENSIONS
+ @${ECHO} '*disabled*' > ${WRKSRC}/Modules/Setup.local
+. for _module in ${DISABLED_EXTENSIONS}
+ @${ECHO} ${_module} >> ${WRKSRC}/Modules/Setup.local
+. endfor
post-install:
.if ! ${PORT_OPTIONS:MDEBUG}
More information about the dev-commits-ports-main
mailing list