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