From ca15850a2b13f4fede0294d724e1d4a8edec8407 Mon Sep 17 00:00:00 2001 From: Rene Ladan Date: Mon, 31 Mar 2025 17:33:41 +0200 Subject: [PATCH] lang/python38: remove and unregister, it reached end-of-life in October 2024 This has to be done in one commit to avoid breaking INDEX --- MOVED | 1 + Mk/Uses/python.mk | 14 +- lang/Makefile | 1 - lang/python38/Makefile | 149 - lang/python38/Makefile.version | 7 - lang/python38/distinfo | 3 - ...atch-Lib_distutils_command_install__lib.py | 41 - ...-Lib_distutils_tests_test__install__lib.py | 33 - lang/python38/files/patch-Makefile.pre.in | 65 - .../files/patch-Misc__python-config.sh.in | 11 - .../files/patch-Modules___decimal___decimal.c | 20 - .../files/patch-Modules__socketmodule.c | 29 - lang/python38/files/patch-configure | 11 - lang/python38/files/patch-freebsd-12 | 107 - .../files/patch-issue40422_issue40423 | 199 - lang/python38/files/patch-libressl | 13 - lang/python38/files/patch-setup.py | 11 - lang/python38/files/pkg-message.in | 12 - lang/python38/pkg-descr | 2 - lang/python38/pkg-plist | 7257 ----------------- 20 files changed, 8 insertions(+), 7978 deletions(-) delete mode 100644 lang/python38/Makefile delete mode 100644 lang/python38/Makefile.version delete mode 100644 lang/python38/distinfo delete mode 100644 lang/python38/files/patch-Lib_distutils_command_install__lib.py delete mode 100644 lang/python38/files/patch-Lib_distutils_tests_test__install__lib.py delete mode 100644 lang/python38/files/patch-Makefile.pre.in delete mode 100644 lang/python38/files/patch-Misc__python-config.sh.in delete mode 100644 lang/python38/files/patch-Modules___decimal___decimal.c delete mode 100644 lang/python38/files/patch-Modules__socketmodule.c delete mode 100644 lang/python38/files/patch-configure delete mode 100644 lang/python38/files/patch-freebsd-12 delete mode 100644 lang/python38/files/patch-issue40422_issue40423 delete mode 100644 lang/python38/files/patch-libressl delete mode 100644 lang/python38/files/patch-setup.py delete mode 100644 lang/python38/files/pkg-message.in delete mode 100644 lang/python38/pkg-descr delete mode 100644 lang/python38/pkg-plist diff --git a/MOVED b/MOVED index a34582ae3c8f..91cb12c57ff7 100644 --- a/MOVED +++ b/MOVED @@ -4259,3 +4259,4 @@ multimedia/dirac||2025-03-31|Has expired: Legacy video codec superseded by multi ports-mgmt/py-pytoport||2025-03-31|Has expired: Depends on expired misc/py-spdx-lookup net/py-ec2-cli-tools||2025-03-31|Has expired: Depends on expired devel/py-boto emulators/libretro-mame||2025-03-31|Has expired: Uses expired Python 3.8 +lang/python38|lang/python39|2025-03-31|Has expired: Reached end-of-life in October 2024 diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk index 5159c006b9da..44131aa8589f 100644 --- a/Mk/Uses/python.mk +++ b/Mk/Uses/python.mk @@ -20,16 +20,16 @@ # USES=python:3.8+ # Supports Python 3.8 or later # USES=python:3.8-3.10 # Supports Python 3.8 to 3.10 # USES=python:-3.8 # Supports Python up to 3.8 -# USES=python # Supports 3.8+ +# USES=python # Supports 3.9+ # # NOTE: should be as specific as possible, matching the versions # upstream declares support for, without being incorrect. In particular, -# USES=python *without* a means 3.8+, +# USES=python *without* a means 3.9+, # including unreleased versions, which is probably incorrect. # # Not specifying a should only be used when a more specific # cannot be specified due to syntax limitations, for -# example: 2.7,3.8-3.9, but even in this case, X.Y+ (2.7+), or -X.Y (-3.8) +# example: 2.7,3.8-3.9, but even in this case, X.Y+ (2.7+), or -X.Y (-3.9) # is preferred and likely more correct. # # patch Python is needed at patch time. Adds dependency to PATCH_DEPENDS. @@ -316,7 +316,7 @@ _INCLUDE_USES_PYTHON_MK= yes # What Python version and what Python interpreters are currently supported? # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -_PYTHON_VERSIONS= 3.11 3.10 3.9 3.8 2.7 # preferred first +_PYTHON_VERSIONS= 3.11 3.10 3.9 2.7 # preferred first _PYTHON_PORTBRANCH= 3.11 # ${_PYTHON_VERSIONS:[1]} _PYTHON_BASECMD= ${LOCALBASE}/bin/python _PYTHON_RELPORTDIR= lang/python @@ -420,13 +420,13 @@ DEV_WARNING+= "lang/python27 reached End of Life and will be removed somewhere . elif ${_PYTHON_ARGS} == 2 DEV_ERROR+= "USES=python:2 is no longer supported, use USES=python:2.7" . elif ${_PYTHON_ARGS} == 3 -DEV_ERROR+= "USES=python:3 is no longer supported, use USES=python:3.8+ or an appropriate version range" +DEV_ERROR+= "USES=python:3 is no longer supported, use USES=python:3.9+ or an appropriate version range" . endif # ${_PYTHON_ARGS} == 2.7 _PYTHON_VERSION:= ${PYTHON_DEFAULT} . if empty(_PYTHON_ARGS) -_PYTHON_ARGS= 3.8+ +_PYTHON_ARGS= 3.9+ . endif # Validate Python version whether it meets the version restriction. @@ -528,7 +528,7 @@ PKGNAMESUFFIX= ${PYTHON_PKGNAMESUFFIX} # To avoid having dependencies with @ and empty flavor: # _PYTHON_VERSION is either set by (first that matches): # - If using Python flavors, from the current Python flavor -# - If using a version restriction (USES=python:3.8+), from the first +# - If using a version restriction (USES=python:3.9+), from the first # acceptable default Python version. # - From PYTHON_DEFAULT PY_FLAVOR= py${_PYTHON_VERSION:S/.//} diff --git a/lang/Makefile b/lang/Makefile index 5e01f7433825..028793d3190b 100644 --- a/lang/Makefile +++ b/lang/Makefile @@ -312,7 +312,6 @@ SUBDIR += python3 SUBDIR += python310 SUBDIR += python311 - SUBDIR += python38 SUBDIR += python39 SUBDIR += qmasm SUBDIR += quickjs diff --git a/lang/python38/Makefile b/lang/python38/Makefile deleted file mode 100644 index d4ad12329e58..000000000000 --- a/lang/python38/Makefile +++ /dev/null @@ -1,149 +0,0 @@ -PORTNAME= python -DISTVERSION= ${PYTHON_DISTVERSION} -CATEGORIES= lang python -MASTER_SITES= PYTHON/ftp/python/${DISTVERSION} -PKGNAMESUFFIX= ${PYTHON_SUFFIX} -DISTNAME= Python-${DISTVERSION} -DIST_SUBDIR= python - -MAINTAINER= python@FreeBSD.org -COMMENT= Interpreted object-oriented programming language -WWW= https://www.python.org/ - -LICENSE= PSFL - -DEPRECATED= Upgrade to a newer Python version. 3.8 is in maintenance status and gets security fixes only. End-of-Life: 2024-10. See https://devguide.python.org/versions/ -EXPIRATION_DATE=2024-10-31 - -LIB_DEPENDS= libffi.so:devel/libffi - -USES= cpe ncurses pathfix pkgconfig python:${PYTHON_DISTVERSION:R},env readline \ - shebangfix ssl tar:xz -PATHFIX_MAKEFILEIN= Makefile.pre.in -USE_LDCONFIG= yes -GNU_CONFIGURE= yes -python_CMD= ${PREFIX}/bin/python${PYTHON_DISTVERSION:R} -SHEBANG_FILES= Lib/*.py Lib/*/*.py Lib/*/*/*.py Lib/*/*/*/*.py -SHEBANG_FILES+= Lib/test/ziptestdata/exe_with_z64 \ - Lib/test/ziptestdata/exe_with_zip \ - Lib/test/ziptestdata/header.sh - -DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm -CONFIGURE_ARGS+= --enable-shared --without-ensurepip \ - --with-system-ffi -CONFIGURE_ENV+= OPT="" # Null out OPT to respect user CFLAGS and remove optimizations - -INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files - -TEST_TARGET= buildbottest -TEST_ARGS= TESTOPTS=-j${MAKE_JOBS_NUMBER} - -MAKE_ARGS+= INSTALL_SHARED="${INSTALL_LIB}" # Strip shared library - -SUB_FILES= pkg-message -SUB_LIST= PYTHON_SUFFIX=${PYTHON_SUFFIX} - -PLIST_SUB= ABI=${ABIFLAGS} \ - DISTVERSION=${DISTVERSION} \ - OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} # For plat-freebsd* in pkg-plist. https://bugs.python.org/issue19554 - -OPTIONS_DEFINE= DEBUG IPV6 LIBMPDEC LTO NLS PYMALLOC -OPTIONS_DEFAULT= LIBMPDEC PYMALLOC -OPTIONS_EXCLUDE_riscv64= LTO -OPTIONS_RADIO= HASH -OPTIONS_RADIO_HASH= FNV SIPHASH -OPTIONS_SUB= yes - -LIBMPDEC_DESC= Use libmpdec from ports instead of bundled version -NLS_DESC= Enable gettext support for the locale module -PYMALLOC_DESC= Enable specialized mallocs - -HASH_DESC= Hash Algorithm (PEP-456) -FNV_DESC= Modified Fowler-Noll-Vo Algorithm -SIPHASH_DESC= SipHash24 Algorithm - -FNV_CONFIGURE_ON= --with-hash-algorithm=fnv -SIPHASH_CONFIGURE_ON= --with-hash-algorithm=siphash24 - -DEBUG_CONFIGURE_WITH= pydebug -IPV6_CONFIGURE_ENABLE= ipv6 - -LIBMPDEC_CONFIGURE_ON= --with-system-libmpdec -LIBMPDEC_LIB_DEPENDS= libmpdec.so:math/mpdecimal - -LTO_CONFIGURE_ON= --with-lto - -# Use CPPFLAGS over CFLAGS due to -I ordering, causing elementtree and pyexpat -# to break in Python 2.7, or preprocessor complaints in Python >= 3.3 -# Upstream Issue: https://bugs.python.org/issue6299 -NLS_USES= gettext -NLS_CPPFLAGS= -I${LOCALBASE}/include -NLS_LIBS= -L${LOCALBASE}/lib -lintl -NLS_CONFIGURE_ENV_OFF= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no - -PYMALLOC_CONFIGURE_WITH= pymalloc - -.include "${.CURDIR}/Makefile.version" -.include - -.if ${PORT_OPTIONS:MDEBUG} -ABIFLAGS:= d${ABIFLAGS} -.endif - -.if !empty(ABIFLAGS) -PLIST_FILES+= bin/python${PYTHON_VER}${ABIFLAGS} \ - bin/python${PYTHON_VER}${ABIFLAGS}-config \ - libdata/pkgconfig/python-${PYTHON_VER}${ABIFLAGS}.pc \ - libdata/pkgconfig/python-${PYTHON_VER}${ABIFLAGS}-embed.pc -.endif - -# See https://bugs.freebsd.org/115940 and https://bugs.freebsd.org/193650 -.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS) -PLIST_SUB+= NO_NIS="@comment " -DISABLED_EXTENSIONS+= nis -.else -PLIST_SUB+= NO_NIS="" -.endif - -post-patch: -# disable the detection of includes and library from e2fsprogs-libuuid, -# 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 -# disable detection of multiarch as it breaks with clang >= 13, which adds a -# major.minor version number in -print-multiarch output, confusing Python - @${REINPLACE_CMD} -e 's|^\( *MULTIARCH=\).*--print-multiarch.*|\1|' ${WRKSRC}/configure -# Apply DISABLED_EXTENSIONS - @${ECHO_CMD} '*disabled*' > ${WRKSRC}/Modules/Setup.local -. for _module in ${DISABLED_EXTENSIONS} - @${ECHO_CMD} ${_module} >> ${WRKSRC}/Modules/Setup.local -. endfor - -post-install: -.if ! ${PORT_OPTIONS:MDEBUG} - ${RM} ${STAGEDIR}${PREFIX}/lib/libpython3.so # Upstream Issue: https://bugs.python.org/issue17975 -.endif - ${LN} -sf libpython${PYTHON_VER}${ABIFLAGS}.so.1.0 ${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_VER}${ABIFLAGS}.so.1 -# This code block exists for the qemu-user enabled cross build environment. -# When using this environment in poudriere, CC is not set to the default -# of /usr/bin/cc and a cross-compile toolchain is used. We need to hand -# edit this so that the run time configuration for python matches what the -# FreeBSD base system provides. sbruno 02Aug2017 -.if ${CC} == /nxb-bin/usr/bin/cc - @${REINPLACE_CMD} -e 's=/nxb-bin==' \ - ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py - @cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \ - ./python -E -m compileall -d ${PREFIX}/lib/python${PYTHON_VER} \ - ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py - @cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \ - ./python -E -O -m compileall -d ${PREFIX}/lib/python${PYTHON_VER} \ - ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/_sysconfigdata_${ABIFLAGS}_freebsd${OSREL:R}_.py - @${REINPLACE_CMD} -e 's=/nxb-bin==' \ - ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/config-${PYTHON_VER}${ABIFLAGS}/Makefile -.endif - for i in ${STAGEDIR}${PREFIX}/lib/python${PYTHON_VER}/lib-dynload/*.so; do \ - ${STRIP_CMD} $$i; done # Strip shared extensions - ${INSTALL_DATA} ${WRKSRC}/Tools/gdb/libpython.py \ - ${STAGEDIR}${PREFIX}/lib/libpython${PYTHON_VER}${ABIFLAGS}.so.1.0-gdb.py - -.include diff --git a/lang/python38/Makefile.version b/lang/python38/Makefile.version deleted file mode 100644 index fd3dc0fd26d6..000000000000 --- a/lang/python38/Makefile.version +++ /dev/null @@ -1,7 +0,0 @@ -# Mk/Uses/python.mk includes this file, don't remove it! - -# Do not forget to -# 1. Update python documentation (lang/python-doc-*) -# Run "make -C lang/python-doc-html makesum" -# 2. Remove PORTREVISION in Makefile -PYTHON_DISTVERSION= 3.8.20 diff --git a/lang/python38/distinfo b/lang/python38/distinfo deleted file mode 100644 index 013336f05b12..000000000000 --- a/lang/python38/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1726081899 -SHA256 (python/Python-3.8.20.tar.xz) = 6fb89a7124201c61125c0ab4cf7f6894df339a40c02833bfd28ab4d7691fafb4 -SIZE (python/Python-3.8.20.tar.xz) = 18962788 diff --git a/lang/python38/files/patch-Lib_distutils_command_install__lib.py b/lang/python38/files/patch-Lib_distutils_command_install__lib.py deleted file mode 100644 index 6e925311e57d..000000000000 --- a/lang/python38/files/patch-Lib_distutils_command_install__lib.py +++ /dev/null @@ -1,41 +0,0 @@ -From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001 -From: Brendan Molloy -Date: Mon, 4 Jan 2016 23:14:06 +1100 -Subject: [PATCH] Check bytecode file actually exists and tests - -Should solve issue 20397, where using the --record argument results -in files that failed to generate bytecode files are added to the -record file nonetheless. ---- - Lib/distutils/command/install_lib.py | 17 +++++++++++++---- - Lib/distutils/tests/test_install_lib.py | 8 ++++++-- - 2 files changed, 19 insertions(+), 6 deletions(-) - ---- Lib/distutils/command/install_lib.py.orig 2015-12-07 01:39:07 UTC -+++ Lib/distutils/command/install_lib.py -@@ -164,12 +164,21 @@ class install_lib(Command): - ext = os.path.splitext(os.path.normcase(py_file))[1] - if ext != PYTHON_SOURCE_EXTENSION: - continue -+ - if self.compile: -- bytecode_files.append(importlib.util.cache_from_source( -- py_file, optimization='')) -+ candidate = importlib.util.cache_from_source( -+ py_file, optimization='') -+ -+ if os.path.isfile(candidate): -+ bytecode_files.append(candidate) -+ - if self.optimize > 0: -- bytecode_files.append(importlib.util.cache_from_source( -- py_file, optimization=self.optimize)) -+ candidate = importlib.util.cache_from_source( -+ py_file, optimization=self.optimize) -+ -+ if os.path.isfile(candidate): -+ bytecode_files.append(candidate) -+ - - return bytecode_files - diff --git a/lang/python38/files/patch-Lib_distutils_tests_test__install__lib.py b/lang/python38/files/patch-Lib_distutils_tests_test__install__lib.py deleted file mode 100644 index c5531b92ee92..000000000000 --- a/lang/python38/files/patch-Lib_distutils_tests_test__install__lib.py +++ /dev/null @@ -1,33 +0,0 @@ -From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001 -From: Brendan Molloy -Date: Mon, 4 Jan 2016 23:14:06 +1100 -Subject: [PATCH] Check bytecode file actually exists and tests - -Should solve issue 20397, where using the --record argument results -in files that failed to generate bytecode files are added to the -record file nonetheless. ---- - Lib/distutils/command/install_lib.py | 17 +++++++++++++---- - Lib/distutils/tests/test_install_lib.py | 8 ++++++-- - 2 files changed, 19 insertions(+), 6 deletions(-) - ---- Lib/distutils/tests/test_install_lib.py.orig 2015-12-07 01:39:07 UTC -+++ Lib/distutils/tests/test_install_lib.py -@@ -64,11 +64,15 @@ class InstallLibTestCase(support.Tempdir - cmd.distribution.ext_modules = [Extension('foo', ['xxx'])] - cmd.distribution.packages = ['spam'] - cmd.distribution.script_name = 'setup.py' -+ -+ # Create rubbish, uncompilable file -+ f = os.path.join(project_dir, 'spam', 'rubbish.py') -+ self.write_file(f, 'rubbish()') - - # get_outputs should return 4 elements: spam/__init__.py and .pyc, -- # foo.import-tag-abiflags.so / foo.pyd -+ # foo.import-tag-abiflags.so / foo.pyd and rubbish.py (no .pyc) - outputs = cmd.get_outputs() -- self.assertEqual(len(outputs), 4, outputs) -+ self.assertEqual(len(outputs), 5, outputs) - - def test_get_inputs(self): - project_dir, dist = self.create_dist() diff --git a/lang/python38/files/patch-Makefile.pre.in b/lang/python38/files/patch-Makefile.pre.in deleted file mode 100644 index 1262d9f1aea6..000000000000 --- a/lang/python38/files/patch-Makefile.pre.in +++ /dev/null @@ -1,65 +0,0 @@ -# Description: Remove duplicate CFLAGS, CPPFLAGS, LDFLAGS by stripping CONFIGURE_* -# Submitted by: koobs (r326729) -# TODO: Upstream ---- Makefile.pre.in.orig 2019-11-04 01:16:37 UTC -+++ Makefile.pre.in -@@ -80,7 +80,6 @@ MAKESETUP= $(srcdir)/Modules/makesetup - OPT= @OPT@ - BASECFLAGS= @BASECFLAGS@ - BASECPPFLAGS= @BASECPPFLAGS@ --CONFIGURE_CFLAGS= @CFLAGS@ - # CFLAGS_NODIST is used for building the interpreter and stdlib C extensions. - # Use it when a compiler flag should _not_ be part of the distutils CFLAGS - # once Python is installed (Issue #21121). -@@ -89,18 +88,16 @@ CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@ - # Use it when a linker flag should _not_ be part of the distutils LDFLAGS - # once Python is installed (bpo-35257) - CONFIGURE_LDFLAGS_NODIST=@LDFLAGS_NODIST@ --CONFIGURE_CPPFLAGS= @CPPFLAGS@ --CONFIGURE_LDFLAGS= @LDFLAGS@ - # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the - # command line to append to these values without stomping the pre-set - # values. --PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -+PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CFLAGS) $(EXTRA_CFLAGS) - PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal - # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to - # be able to build extension modules using the directories specified in the - # environment variables --PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS) --PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS) -+PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CPPFLAGS) -+PY_LDFLAGS= $(LDFLAGS) - PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST) - NO_AS_NEEDED= @NO_AS_NEEDED@ - SGI_ABI= @SGI_ABI@ -@@ -1269,14 +1266,6 @@ bininstall: altbininstall - else true; \ - fi - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE)) -- -if test "$(VERSION)" != "$(LDVERSION)"; then \ -- rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \ -- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \ -- rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \ -- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \ -- rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION)-embed.pc; \ -- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python-$(LDVERSION)-embed.pc); \ -- fi - -rm -f $(DESTDIR)$(BINDIR)/python3-config - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config) - -rm -f $(DESTDIR)$(LIBPC)/python3.pc -@@ -1580,6 +1569,14 @@ libainstall: @DEF_MAKE_RULE@ python-config - $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh - $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py - $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config -+ -if test "$(VERSION)" != "$(LDVERSION)"; then \ -+ rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \ -+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \ -+ rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \ -+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \ -+ rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION)-embed.pc; \ -+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python-$(LDVERSION)-embed.pc); \ -+ fi - @if [ -s Modules/python.exp -a \ - "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ - echo; echo "Installing support files for building shared extension modules on AIX:"; \ diff --git a/lang/python38/files/patch-Misc__python-config.sh.in b/lang/python38/files/patch-Misc__python-config.sh.in deleted file mode 100644 index ebb0c6a51f6d..000000000000 --- a/lang/python38/files/patch-Misc__python-config.sh.in +++ /dev/null @@ -1,11 +0,0 @@ ---- Misc/python-config.sh.in.orig 2018-07-13 21:07:16 UTC -+++ Misc/python-config.sh.in -@@ -15,7 +15,7 @@ fi - # Returns the actual prefix where this script was installed to. - installed_prefix () - { -- RESULT=$(dirname $(cd $(dirname "$1") && pwd -P)) -+ RESULT=$(dirname $(cd $(dirname $(realpath "$1")) && pwd -P)) - if which readlink >/dev/null 2>&1 ; then - if readlink -f "$RESULT" >/dev/null 2>&1; then - RESULT=$(readlink -f "$RESULT") diff --git a/lang/python38/files/patch-Modules___decimal___decimal.c b/lang/python38/files/patch-Modules___decimal___decimal.c deleted file mode 100644 index 4ea7b4f1b4ee..000000000000 --- a/lang/python38/files/patch-Modules___decimal___decimal.c +++ /dev/null @@ -1,20 +0,0 @@ ---- Modules/_decimal/_decimal.c.orig 2021-02-17 20:39:05 UTC -+++ Modules/_decimal/_decimal.c -@@ -3284,7 +3284,7 @@ dec_format(PyObject *dec, PyObject *args) - } - else { - size_t n = strlen(spec.dot); -- if (n > 1 || (n == 1 && !isascii((uchar)spec.dot[0]))) { -+ if (n > 1 || (n == 1 && !isascii((unsigned char)spec.dot[0]))) { - /* fix locale dependent non-ascii characters */ - dot = dotsep_as_utf8(spec.dot); - if (dot == NULL) { -@@ -3293,7 +3293,7 @@ dec_format(PyObject *dec, PyObject *args) - spec.dot = PyBytes_AS_STRING(dot); - } - n = strlen(spec.sep); -- if (n > 1 || (n == 1 && !isascii((uchar)spec.sep[0]))) { -+ if (n > 1 || (n == 1 && !isascii((unsigned char)spec.sep[0]))) { - /* fix locale dependent non-ascii characters */ - sep = dotsep_as_utf8(spec.sep); - if (sep == NULL) { diff --git a/lang/python38/files/patch-Modules__socketmodule.c b/lang/python38/files/patch-Modules__socketmodule.c deleted file mode 100644 index 93ef3b785ab9..000000000000 --- a/lang/python38/files/patch-Modules__socketmodule.c +++ /dev/null @@ -1,29 +0,0 @@ ---- Modules/socketmodule.c -+++ Modules/socketmodule.c -@@ -1850,6 +1850,11 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, - /* RDS sockets use sockaddr_in: fall-through */ - #endif /* AF_RDS */ - -+#ifdef AF_DIVERT -+ case AF_DIVERT: -+ /* FreeBSD divert(4) sockets use sockaddr_in: fall-through */ -+#endif /* AF_DIVERT */ -+ - case AF_INET: - { - struct maybe_idna host = {NULL, NULL}; -@@ -7628,6 +7633,14 @@ PyInit__socket(void) - PyModule_AddIntMacro(m, AF_SYSTEM); - #endif - -+/* FreeBSD divert(4) */ -+#ifdef PF_DIVERT -+ PyModule_AddIntMacro(m, PF_DIVERT); -+#endif -+#ifdef AF_DIVERT -+ PyModule_AddIntMacro(m, AF_DIVERT); -+#endif -+ - #ifdef AF_PACKET - PyModule_AddIntMacro(m, AF_PACKET); - #endif diff --git a/lang/python38/files/patch-configure b/lang/python38/files/patch-configure deleted file mode 100644 index c78047439605..000000000000 --- a/lang/python38/files/patch-configure +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.orig 2022-02-23 19:52:00 UTC -+++ configure -@@ -6625,7 +6625,7 @@ fi - - if test "$Py_LTO" = 'true' ; then - case $CC in -- *clang*) -+ *clang*|cc) - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}llvm-ar", so it can be a program name with args. diff --git a/lang/python38/files/patch-freebsd-12 b/lang/python38/files/patch-freebsd-12 deleted file mode 100644 index eb10e947872e..000000000000 --- a/lang/python38/files/patch-freebsd-12 +++ /dev/null @@ -1,107 +0,0 @@ -From 9fa60bf7361d3244c19ed273fd4f1df7dd9698b0 Mon Sep 17 00:00:00 2001 -From: Yasuhiro Kimura -Date: Tue, 11 May 2021 04:17:33 +0900 -Subject: [PATCH] Revert "[3.8] bpo-43799: OpenSSL 3.0.0: declare - OPENSSL_API_COMPAT 1.1.1 (GH-25329) (GH-25383)" - -This reverts commit b71aaa0df0f3a9640b034b4774651cd8c54d2fb9. ---- - Modules/_hashopenssl.c | 9 +-------- - Modules/_ssl.c | 33 +++++++++++++++++++-------------- - 2 files changed, 20 insertions(+), 22 deletions(-) - -diff --git Modules/_hashopenssl.c Modules/_hashopenssl.c -index 93bf25fee3..edadbcb393 100644 ---- Modules/_hashopenssl.c -+++ Modules/_hashopenssl.c -@@ -11,13 +11,6 @@ - * - */ - --/* Don't warn about deprecated functions, */ --#ifndef OPENSSL_API_COMPAT -- // 0x10101000L == 1.1.1, 30000 == 3.0.0 -- #define OPENSSL_API_COMPAT 0x10101000L --#endif --#define OPENSSL_NO_DEPRECATED 1 -- - #define PY_SSIZE_T_CLEAN - - #include "Python.h" -@@ -31,7 +24,7 @@ - #include - /* We use the object interface to discover what hashes OpenSSL supports. */ - #include --#include -+#include "openssl/err.h" - - #ifndef OPENSSL_THREADS - # error "OPENSSL_THREADS is not defined, Python requires thread-safe OpenSSL" -diff --git Modules/_ssl.c Modules/_ssl.c -index d6a2fb814a..5cbc2b65be 100644 ---- Modules/_ssl.c -+++ Modules/_ssl.c -@@ -14,13 +14,6 @@ - http://bugs.python.org/issue8108#msg102867 ? - */ - --/* Don't warn about deprecated functions, */ --#ifndef OPENSSL_API_COMPAT -- // 0x10101000L == 1.1.1, 30000 == 3.0.0 -- #define OPENSSL_API_COMPAT 0x10101000L --#endif --#define OPENSSL_NO_DEPRECATED 1 -- - #define PY_SSIZE_T_CLEAN - - #include "Python.h" -@@ -52,6 +45,14 @@ static PySocketModule_APIObject PySocketModule; - #include - #endif - -+/* Don't warn about deprecated functions */ -+#ifdef __GNUC__ -+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -+#endif -+#ifdef __clang__ -+#pragma clang diagnostic ignored "-Wdeprecated-declarations" -+#endif -+ - /* Include OpenSSL header files */ - #include "openssl/rsa.h" - #include "openssl/crypto.h" -@@ -149,20 +150,24 @@ static void _PySSLFixErrno(void) { - # define PY_OPENSSL_1_1_API 1 - #endif - --/* OpenSSL API 1.1.0+ does not include version methods. Define the methods -- * unless OpenSSL is compiled without the methods. It's the easiest way to -- * make 1.0.2, 1.1.0, 1.1.1, and 3.0.0 happy without deprecation warnings. -- */ -+/* OpenSSL API compat */ -+#ifdef OPENSSL_API_COMPAT -+#if OPENSSL_API_COMPAT >= 0x10100000L -+ -+/* OpenSSL API 1.1.0+ does not include version methods */ - #ifndef OPENSSL_NO_TLS1_METHOD --extern const SSL_METHOD *TLSv1_method(void); -+#define OPENSSL_NO_TLS1_METHOD 1 - #endif - #ifndef OPENSSL_NO_TLS1_1_METHOD --extern const SSL_METHOD *TLSv1_1_method(void); -+#define OPENSSL_NO_TLS1_1_METHOD 1 - #endif - #ifndef OPENSSL_NO_TLS1_2_METHOD --extern const SSL_METHOD *TLSv1_2_method(void); -+#define OPENSSL_NO_TLS1_2_METHOD 1 - #endif - -+#endif /* >= 1.1.0 compcat */ -+#endif /* OPENSSL_API_COMPAT */ -+ - /* LibreSSL 2.7.0 provides necessary OpenSSL 1.1.0 APIs */ - #if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL - # define PY_OPENSSL_1_1_API 1 --- -2.31.1 - diff --git a/lang/python38/files/patch-issue40422_issue40423 b/lang/python38/files/patch-issue40422_issue40423 deleted file mode 100644 index 0c49d0b3a752..000000000000 --- a/lang/python38/files/patch-issue40422_issue40423 +++ /dev/null @@ -1,199 +0,0 @@ -diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c -index e693e53206..a26ef96e91 100644 ---- Modules/_posixsubprocess.c -+++ Modules/_posixsubprocess.c -@@ -21,6 +21,8 @@ - #include - #endif - -+#include "posixmodule.h" -+ - #ifdef _Py_MEMORY_SANITIZER - # include - #endif -@@ -222,7 +222,6 @@ _close_fds_by_brute_force(long start_fd, PyObject *py_fds_to_keep) - long end_fd = safe_get_max_fd(); - Py_ssize_t num_fds_to_keep = PyTuple_GET_SIZE(py_fds_to_keep); - Py_ssize_t keep_seq_idx; -- int fd_num; - /* As py_fds_to_keep is sorted we can loop through the list closing - * fds in between any in the keep list falling within our range. */ - for (keep_seq_idx = 0; keep_seq_idx < num_fds_to_keep; ++keep_seq_idx) { -@@ -230,15 +229,11 @@ _close_fds_by_brute_force(long start_fd, PyObject *py_fds_to_keep) - int keep_fd = PyLong_AsLong(py_keep_fd); - if (keep_fd < start_fd) - continue; -- for (fd_num = start_fd; fd_num < keep_fd; ++fd_num) { -- close(fd_num); -- } -+ _Py_closerange(start_fd, keep_fd - 1); - start_fd = keep_fd + 1; - } - if (start_fd <= end_fd) { -- for (fd_num = start_fd; fd_num < end_fd; ++fd_num) { -- close(fd_num); -- } -+ _Py_closerange(start_fd, end_fd); - } - } - -diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c -index 726e3723f9..7ef2dbc854 100644 ---- Modules/posixmodule.c -+++ Modules/posixmodule.c -@@ -8555,8 +8555,26 @@ os_close_impl(PyObject *module, int fd) - Py_RETURN_NONE; - } - -+/* Our selection logic for which function to use is as follows: -+ * 1. If close_range(2) is available, always prefer that; it's better for -+ * contiguous ranges like this than fdwalk(3) which entails iterating over -+ * the entire fd space and simply doing nothing for those outside the range. -+ * 2. If closefrom(2) is available, we'll attempt to use that next if we're -+ * closing up to sysconf(_SC_OPEN_MAX). -+ * 2a. Fallback to fdwalk(3) if we're not closing up to sysconf(_SC_OPEN_MAX), -+ * as that will be more performant if the range happens to have any chunk of -+ * non-opened fd in the middle. -+ * 2b. If fdwalk(3) isn't available, just do a plain close(2) loop. -+ */ -+#ifdef __FreeBSD__ -+#define USE_CLOSEFROM -+#endif /* __FreeBSD__ */ - - #ifdef HAVE_FDWALK -+#define USE_FDWALK -+#endif /* HAVE_FDWALK */ -+ -+#ifdef USE_FDWALK - static int - _fdwalk_close_func(void *lohi, int fd) - { -@@ -8569,7 +8587,46 @@ _fdwalk_close_func(void *lohi, int fd) - close(fd); - return 0; - } --#endif /* HAVE_FDWALK */ -+#endif /* USE_FDWALK */ -+ -+/* Closes all file descriptors in [first, last], ignoring errors. */ -+void -+_Py_closerange(int first, int last) -+{ -+ first = Py_MAX(first, 0); -+ _Py_BEGIN_SUPPRESS_IPH -+#ifdef HAVE_CLOSE_RANGE -+ if (close_range(first, last, 0) == 0 || errno != ENOSYS) { -+ /* Any errors encountered while closing file descriptors are ignored; -+ * ENOSYS means no kernel support, though, -+ * so we'll fallback to the other methods. */ -+ } -+ else -+#endif /* HAVE_CLOSE_RANGE */ -+#ifdef USE_CLOSEFROM -+ if (last >= sysconf(_SC_OPEN_MAX)) { -+ /* Any errors encountered while closing file descriptors are ignored */ -+ closefrom(first); -+ } -+ else -+#endif /* USE_CLOSEFROM */ -+#ifdef USE_FDWALK -+ { -+ int lohi[2]; -+ lohi[0] = first; -+ lohi[1] = last + 1; -+ fdwalk(_fdwalk_close_func, lohi); -+ } -+#else -+ { -+ for (int i = first; i <= last; i++) { -+ /* Ignore errors */ -+ (void)close(i); -+ } -+ } -+#endif /* USE_FDWALK */ -+ _Py_END_SUPPRESS_IPH -+} - - /*[clinic input] - os.closerange -@@ -8585,22 +8642,8 @@ static PyObject * - os_closerange_impl(PyObject *module, int fd_low, int fd_high) - /*[clinic end generated code: output=0ce5c20fcda681c2 input=5855a3d053ebd4ec]*/ - { --#ifdef HAVE_FDWALK -- int lohi[2]; --#else -- int i; --#endif - Py_BEGIN_ALLOW_THREADS -- _Py_BEGIN_SUPPRESS_IPH --#ifdef HAVE_FDWALK -- lohi[0] = Py_MAX(fd_low, 0); -- lohi[1] = fd_high; -- fdwalk(_fdwalk_close_func, lohi); --#else -- for (i = Py_MAX(fd_low, 0); i < fd_high; i++) -- close(i); --#endif -- _Py_END_SUPPRESS_IPH -+ _Py_closerange(fd_low, fd_high - 1); - Py_END_ALLOW_THREADS - Py_RETURN_NONE; - } -diff --git a/Modules/posixmodule.h b/Modules/posixmodule.h -index 1e00562abc..749833f71c 100644 ---- Modules/posixmodule.h -+++ Modules/posixmodule.h -@@ -28,6 +28,8 @@ PyAPI_FUNC(int) _Py_Sigset_Converter(PyObject *, void *); - #endif /* HAVE_SIGSET_T */ - #endif /* Py_LIMITED_API */ - -+PyAPI_FUNC(void) _Py_closerange(int first, int last); -+ - #ifdef __cplusplus - } - #endif -diff --git a/configure b/configure -index 96dcd0dcd5..90b61f9f8f 100755 ---- configure -+++ configure -@@ -11503,8 +11503,8 @@ fi - - # checks for library functions - for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ -- clock confstr copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \ -- faccessat fchmod fchmodat fchown fchownat \ -+ clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ -+ explicit_memset faccessat fchmod fchmodat fchown fchownat \ - fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ - futimens futimes gai_strerror getentropy \ - getgrgid_r getgrnam_r \ -diff --git a/configure.ac b/configure.ac -index 18a044629a..fbb051d49c 100644 ---- configure.ac -+++ configure.ac -@@ -3560,8 +3560,8 @@ fi - - # checks for library functions - AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ -- clock confstr copy_file_range ctermid dup3 execv explicit_bzero explicit_memset \ -- faccessat fchmod fchmodat fchown fchownat \ -+ clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ -+ explicit_memset faccessat fchmod fchmodat fchown fchownat \ - fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ - futimens futimes gai_strerror getentropy \ - getgrgid_r getgrnam_r \ -diff --git a/pyconfig.h.in b/pyconfig.h.in -index 4263a712c3..166d278f7c 100644 ---- pyconfig.h.in -+++ pyconfig.h.in -@@ -136,6 +136,9 @@ - /* Define to 1 if you have the `clock_settime' function. */ - #undef HAVE_CLOCK_SETTIME - -+/* Define to 1 if you have the `close_range' function. */ -+#undef HAVE_CLOSE_RANGE -+ - /* Define if the C compiler supports computed gotos. */ - #undef HAVE_COMPUTED_GOTOS - diff --git a/lang/python38/files/patch-libressl b/lang/python38/files/patch-libressl deleted file mode 100644 index 40e6af2427a8..000000000000 --- a/lang/python38/files/patch-libressl +++ /dev/null @@ -1,13 +0,0 @@ -Fix build with LibreSSL 3.5.* - ---- Modules/_hashopenssl.c.orig 2022-03-16 12:22:54 UTC -+++ Modules/_hashopenssl.c -@@ -37,7 +37,7 @@ - # error "OPENSSL_THREADS is not defined, Python requires thread-safe OpenSSL" - #endif - --#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) - /* OpenSSL < 1.1.0 */ - #define EVP_MD_CTX_new EVP_MD_CTX_create - #define EVP_MD_CTX_free EVP_MD_CTX_destroy diff --git a/lang/python38/files/patch-setup.py b/lang/python38/files/patch-setup.py deleted file mode 100644 index 7bd5deb4202a..000000000000 --- a/lang/python38/files/patch-setup.py +++ /dev/null @@ -1,11 +0,0 @@ ---- setup.py.orig 2021-05-03 09:47:56 UTC -+++ setup.py -@@ -2051,7 +2051,7 @@ class PyBuildExt(build_ext): - undef_macros = [] - if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"): - include_dirs = [] -- libraries = [':libmpdec.so.2'] -+ libraries = ['mpdec'] - sources = ['_decimal/_decimal.c'] - depends = ['_decimal/docstrings.h'] - else: diff --git a/lang/python38/files/pkg-message.in b/lang/python38/files/pkg-message.in deleted file mode 100644 index 286359c9f272..000000000000 --- a/lang/python38/files/pkg-message.in +++ /dev/null @@ -1,12 +0,0 @@ -[ -{ type: install - message: <