1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-28 01:06:17 +00:00

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@liamekaens.com [2]
Reported by:	tuxillo (IRC) DPorts
Reviewed by:	koobs (python, maintainer)
Approved by:	koobs, dbaio (python, maintainer)
Differential Revision: https://reviews.freebsd.org/D31086

(cherry picked from commit a94d4b1005)
This commit is contained in:
Danilo G. Baio 2021-07-06 23:04:38 -03:00
parent d3cc3920a1
commit 42b74dbb33
4 changed files with 18 additions and 71 deletions

View File

@ -31,7 +31,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
@ -112,6 +112,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}

View File

@ -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

View File

@ -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}

View File

@ -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}