]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
python3: Update to 3.11.0
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 1 Dec 2022 10:13:35 +0000 (10:13 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 1 Dec 2022 10:13:35 +0000 (10:13 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
python3/patches/00104-lib64-fix-for-test_install.patch [deleted file]
python3/patches/Python-3.1.1-rpath.patch [deleted file]
python3/python-3.6.0-lib64.patch [deleted file]
python3/python3.nm

diff --git a/python3/patches/00104-lib64-fix-for-test_install.patch b/python3/patches/00104-lib64-fix-for-test_install.patch
deleted file mode 100644 (file)
index 7852bf6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- Python-2.7.2/Lib/distutils/tests/test_install.py.lib64     2011-09-08 17:51:57.851405376 -0400
-+++ Python-2.7.2/Lib/distutils/tests/test_install.py   2011-09-08 18:40:46.754205096 -0400
-@@ -41,8 +41,9 @@ class InstallTestCase(support.TempdirMan
-             self.assertEqual(got, expected)
-         libdir = os.path.join(destination, "lib", "python")
-+        platlibdir = os.path.join(destination, "lib64", "python")
-         check_path(cmd.install_lib, libdir)
--        check_path(cmd.install_platlib, libdir)
-+        check_path(cmd.install_platlib, platlibdir)
-         check_path(cmd.install_purelib, libdir)
-         check_path(cmd.install_headers,
-                    os.path.join(destination, "include", "python", "foopkg"))
diff --git a/python3/patches/Python-3.1.1-rpath.patch b/python3/patches/Python-3.1.1-rpath.patch
deleted file mode 100644 (file)
index 1493af2..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/distutils/unixccompiler.py
---- Python-3.1.1/Lib/distutils/unixccompiler.py.rpath  2009-09-04 17:29:34.000000000 -0400
-+++ Python-3.1.1/Lib/distutils/unixccompiler.py        2009-09-04 17:49:54.000000000 -0400
-@@ -141,6 +141,16 @@ class UnixCCompiler(CCompiler):
-     if sys.platform == "cygwin":
-         exe_extension = ".exe"
-+    def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs):
-+        """Remove standard library path from rpath"""
-+        libraries, library_dirs, runtime_library_dirs = super(
-+            self.__class__, self)._fix_lib_args(libraries, library_dirs,
-+            runtime_library_dirs)
-+        libdir = sysconfig.get_config_var('LIBDIR')
-+        if runtime_library_dirs and (libdir in runtime_library_dirs):
-+            runtime_library_dirs.remove(libdir)
-+        return libraries, library_dirs, runtime_library_dirs
-+
-     def preprocess(self, source, output_file=None, macros=None,
-                    include_dirs=None, extra_preargs=None, extra_postargs=None):
-         fixed_args = self._fix_compile_args(None, macros, include_dirs)
diff --git a/python3/python-3.6.0-lib64.patch b/python3/python-3.6.0-lib64.patch
deleted file mode 100644 (file)
index 8e9ae4e..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
-index 9474e9c..c0ce4c6 100644
---- a/Lib/distutils/command/install.py
-+++ b/Lib/distutils/command/install.py
-@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
- INSTALL_SCHEMES = {
-     'unix_prefix': {
-         'purelib': '$base/lib/python$py_version_short/site-packages',
--        'platlib': '$platbase/lib/python$py_version_short/site-packages',
-+        'platlib': '$platbase/lib64/python$py_version_short/site-packages',
-         'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
-         'scripts': '$base/bin',
-         'data'   : '$base',
-         },
-     'unix_home': {
-         'purelib': '$base/lib/python',
--        'platlib': '$base/lib/python',
-+        'platlib': '$base/lib64/python',
-         'headers': '$base/include/python/$dist_name',
-         'scripts': '$base/bin',
-         'data'   : '$base',
-diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index 026cca7..6d3e077 100644
---- a/Lib/distutils/sysconfig.py
-+++ b/Lib/distutils/sysconfig.py
-@@ -132,8 +132,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
-             prefix = plat_specific and EXEC_PREFIX or PREFIX
-     if os.name == "posix":
-+        if plat_specific or standard_lib:
-+            lib = "lib64"
-+        else:
-+            lib = "lib"
-         libpython = os.path.join(prefix,
--                                 "lib", "python" + get_python_version())
-+                                 lib, "python" + get_python_version())
-         if standard_lib:
-             return libpython
-         else:
-diff --git a/Lib/site.py b/Lib/site.py
-index a84e3bb..ba0d3ea 100644
---- a/Lib/site.py
-+++ b/Lib/site.py
-@@ -303,11 +303,15 @@ def getsitepackages(prefixes=None):
-         seen.add(prefix)
-         if os.sep == '/':
-+            sitepackages.append(os.path.join(prefix, "lib64",
-+                                        "python" + sys.version[:3],
-+                                        "site-packages"))
-             sitepackages.append(os.path.join(prefix, "lib",
-                                         "python%d.%d" % sys.version_info[:2],
-                                         "site-packages"))
-         else:
-             sitepackages.append(prefix)
-+            sitepackages.append(os.path.join(prefix, "lib64", "site-packages"))
-             sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
-         if sys.platform == "darwin":
-             # for framework builds *only* we add the standard Apple
-diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
-index b9bbfe5..2a5f29c 100644
---- a/Lib/sysconfig.py
-+++ b/Lib/sysconfig.py
-@@ -20,10 +20,10 @@ __all__ = [
- _INSTALL_SCHEMES = {
-     'posix_prefix': {
--        'stdlib': '{installed_base}/lib/python{py_version_short}',
--        'platstdlib': '{platbase}/lib/python{py_version_short}',
-+        'stdlib': '{installed_base}/lib64/python{py_version_short}',
-+        'platstdlib': '{platbase}/lib64/python{py_version_short}',
-         'purelib': '{base}/lib/python{py_version_short}/site-packages',
--        'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
-+        'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
-         'include':
-             '{installed_base}/include/python{py_version_short}{abiflags}',
-         'platinclude':
-@@ -61,10 +61,10 @@ _INSTALL_SCHEMES = {
-         'data': '{userbase}',
-         },
-     'posix_user': {
--        'stdlib': '{userbase}/lib/python{py_version_short}',
--        'platstdlib': '{userbase}/lib/python{py_version_short}',
-+        'stdlib': '{userbase}/lib64/python{py_version_short}',
-+        'platstdlib': '{userbase}/lib64/python{py_version_short}',
-         'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
--        'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
-+        'platlib': '{userbase}/lib64/python{py_version_short}/site-packages',
-         'include': '{userbase}/include/python{py_version_short}',
-         'scripts': '{userbase}/bin',
-         'data': '{userbase}',
-diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
-index f698927..bc977b5 100644
---- a/Lib/test/test_site.py
-+++ b/Lib/test/test_site.py
-@@ -248,8 +248,8 @@ class HelperFunctionsTests(unittest.TestCase):
-             self.assertEqual(dirs[1], wanted)
-         elif os.sep == '/':
-             # OS X non-framwework builds, Linux, FreeBSD, etc
--            self.assertEqual(len(dirs), 1)
--            wanted = os.path.join('xoxo', 'lib',
-+            self.assertEqual(len(dirs), 2)
-+            wanted = os.path.join('xoxo', 'lib64',
-                                   'python%d.%d' % sys.version_info[:2],
-                                   'site-packages')
-             self.assertEqual(dirs[0], wanted)
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 8fa7934..a693917 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -126,7 +126,7 @@ LIBDIR=            @libdir@
- MANDIR=               @mandir@
- INCLUDEDIR=   @includedir@
- CONFINCLUDEDIR=       $(exec_prefix)/include
--SCRIPTDIR=    $(prefix)/lib
-+SCRIPTDIR=    $(prefix)/lib64
- ABIFLAGS=     @ABIFLAGS@
- # Detailed destination directories
-diff --git a/Modules/getpath.c b/Modules/getpath.c
-index 65b47a3..eaa756c 100644
---- a/Modules/getpath.c
-+++ b/Modules/getpath.c
-@@ -494,7 +494,7 @@ calculate_path(void)
-     _pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
-     _prefix = Py_DecodeLocale(PREFIX, NULL);
-     _exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
--    lib_python = Py_DecodeLocale("lib/python" VERSION, NULL);
-+    lib_python = Py_DecodeLocale("lib64/python" VERSION, NULL);
-     if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
-         Py_FatalError(
-@@ -683,7 +683,7 @@ calculate_path(void)
-     }
-     else
-         wcsncpy(zip_path, _prefix, MAXPATHLEN);
--    joinpath(zip_path, L"lib/python00.zip");
-+    joinpath(zip_path, L"lib64/python00.zip");
-     bufsz = wcslen(zip_path);   /* Replace "00" with version */
-     zip_path[bufsz - 6] = VERSION[0];
-     zip_path[bufsz - 5] = VERSION[2];
-@@ -695,7 +695,7 @@ calculate_path(void)
-             fprintf(stderr,
-                 "Could not find platform dependent libraries <exec_prefix>\n");
-         wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
--        joinpath(exec_prefix, L"lib/lib-dynload");
-+        joinpath(exec_prefix, L"lib64/lib-dynload");
-     }
-     /* If we found EXEC_PREFIX do *not* reduce it!  (Yet.) */
-diff --git a/setup.py b/setup.py
-index 0f2dfc4..da37896 100644
---- a/setup.py
-+++ b/setup.py
-@@ -492,7 +492,7 @@ class PyBuildExt(build_ext):
-         # directories (i.e. '.' and 'Include') must be first.  See issue
-         # 10520.
-         if not cross_compiling:
--            add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-+            add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
-             add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-         # only change this for cross builds for 3.3, issues on Mageia
-         if cross_compiling:
-@@ -780,11 +780,11 @@ class PyBuildExt(build_ext):
-             elif curses_library:
-                 readline_libs.append(curses_library)
-             elif self.compiler.find_library_file(lib_dirs +
--                                                     ['/usr/lib/termcap'],
-+                                                     ['/usr/lib64/termcap'],
-                                                      'termcap'):
-                 readline_libs.append('termcap')
-             exts.append( Extension('readline', ['readline.c'],
--                                   library_dirs=['/usr/lib/termcap'],
-+                                   library_dirs=['/usr/lib64/termcap'],
-                                    extra_link_args=readline_extra_link_args,
-                                    libraries=readline_libs) )
-         else:
-@@ -821,8 +821,8 @@ class PyBuildExt(build_ext):
-             if krb5_h:
-                 ssl_incs += krb5_h
-         ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
--                                     ['/usr/local/ssl/lib',
--                                      '/usr/contrib/ssl/lib/'
-+                                     ['/usr/local/ssl/lib64',
-+                                      '/usr/contrib/ssl/lib64/'
-                                      ] )
-         if (ssl_incs is not None and
index 68f8072017fa0548534bce3ef13e38ad0f0378d8..a777e3733f2f82c76f2627a0411c0aa496f0b2cb 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = python3
-major_ver  = 3.6
-version    = %{major_ver}.4
+major_ver  = 3.11
+version    = %{major_ver}.0
 release    = 1
 thisapp    = Python-%{version}
 
@@ -22,7 +22,7 @@ description
        libraries, as well as to various windowing systems.
 end
 
-source_dl  = http://python.org/ftp/python/%{version}/
+source_dl  = https://python.org/ftp/python/%{version}/
 sources    = %{thisapp}.tar.xz
 
 pylibdir   = %{libdir}/python%{major_ver}
@@ -38,7 +38,7 @@ build
                findutils
                gdbm-devel >= 1.10
                gcc-c++
-               glibc-devel
+               glibc-devel >= 2.26
                gmp-devel
                libdb-devel
                libffi-devel
@@ -54,67 +54,40 @@ build
                zlib-devel
        end
 
-       export CFLAGS   += -D_GNU_SOURCE -fwrapv
-       export CXXFLAGS += -D_GNU_SOURCE -fwrapv
        export OPT       = %{CFLAGS}
        export LINKCC    = gcc
 
        prepare_cmds
-               if [ "%{lib}" = "lib64" ]; then
-                       patch -Np1 -i %{DIR_SOURCE}/python-3.6.0-lib64.patch
-               fi
-
                # Remove embedded copies of expat and libffi
                rm -rf Modules/{expat,zlib}
                rm -rf Modules/_ctypes/{darwin,libffi,libffi_arm_wince,libffi_msvc,libffi_osx}
 
                # Make all source files owned by root.
                chown root.root -R .
-
-               autoreconf --force
        end
 
        configure_options += \
+               --with-platlibdir=%{lib} \
                --enable-ipv6 \
+               --enable-shared \
                --with-computed-gotos=yes \
                --with-dbmliborder=gdbm:ndbm:bdb \
                --with-system-expat \
                --with-system-ffi \
+               --with-system-libmpdec \
+               --with-lto \
+               --with-ssl-default-suites=openssl \
                --enable-loadable-sqlite-extensions \
-               --enable-shared \
                --without-ensurepip
 
-       test
-               LD_LIBRARY_PATH=$(pwd) $(pwd)/python \
-                       -m test.regrtest \
-                       --verbose \
-                       --findleaks \
-                       -x test_distutils \
-                       -x test_faulthandler \
-                       -x test_gdb \
-                       -x test_email \
-                       -x test_subprocess \
-                       -x test_float \
-                       -x test_cmath \
-                       -x test_asynchat \
-                       -x test_asyncore
-       
-       #       # test_subprocess won't work on grsecurity-enabled kernels
-       #       # test_float and test_cmath do not work on armv5tel (soft FPU)
-       end
+       #test
+       #       make test
+       #end
 
        install_cmds
                install -d -m 0755 %{BUILDROOT}%{pylibdir}/site-packages/__pycache__
                install -d -m 0755 %{BUILDROOT}/usr/lib/python${major_ver}/site-packages/__pycache__
 
-               # Development tools
-               mv -v %{BUILDROOT}%{bindir}/{,python3-}2to3
-               install -m 755 -d %{BUILDROOT}%{pylibdir}/Tools
-               install Tools/README %{BUILDROOT}%{pylibdir}/Tools/
-               cp -avr Tools/{freeze,i18n,pynche,scripts} %{BUILDROOT}%{pylibdir}/Tools/
-
-               rm -vf %{BUILDROOT}%{pylibdir}/email/test/data/audiotest.au %{BUILDROOT}%{pylibdir}/test/audiotest.au
-
                # Switch all shebangs to refer to the specific Python version.
                LD_LIBRARY_PATH=. ./python Tools/scripts/pathfix.py \
                        -i "%{bindir}/python%{major_ver}" \
@@ -128,43 +101,9 @@ build
                        -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
                        -exec chmod a-x {} \; \) \)
 
-               # .xpm and .xbm files should not be executable:
-               find %{BUILDROOT} \
-                       \( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
-                       -exec chmod a-x {} \;
-
-               # Remove executable flag from files that shouldn't have it:
-               chmod a-x \
-                       %{BUILDROOT}%{pylibdir}/distutils/tests/Setup.sample \
-                       %{BUILDROOT}%{pylibdir}/Tools/README
-
-               # Get rid of DOS batch files:
-               find %{BUILDROOT} -name \*.bat -exec rm {} \;
-
                # Get rid of backup files:
                find %{BUILDROOT}/ -name "*~" -exec rm -f {} \;
                rm -f %{BUILDROOT}%{pylibdir}/LICENSE.txt
-
-               # Junk, no point in putting in -test sub-pkg
-               rm -f %{BUILDROOT}%{pylibdir}/idlelib/testcode.py*
-
-               # Fix end-of-line encodings:
-               find %{BUILDROOT}/ -name \*.py -exec sed -i 's/\r//' {} \;
-
-               # Do bytecompilation with the newly installed interpreter.
-               # compile *.pyo
-               find %{BUILDROOT} -type f -a -name "*.py" -print0 | \
-                       LD_LIBRARY_PATH="%{BUILDROOT}%{dynload_dir}:%{BUILDROOT}%{libdir}" \
-                       PYTHONPATH="%{BUILDROOT}%{libdir}python%{major_ver} %{BUILDROOT}/%{libdir}python%{major_ver}/site-packages" \
-                       xargs -0 %{BUILDROOT}%{bindir}/python%{major_ver} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{BUILDROOT}")[2]) for f in sys.argv[1:]]' || :
-               # compile *.pyc
-               find %{BUILDROOT} -type f -a -name "*.py" -print0 | \
-                       LD_LIBRARY_PATH="%{BUILDROOT}%{dynload_dir}:%{BUILDROOT}%{libdir}" \
-                       PYTHONPATH="%{BUILDROOT}%{libdir}python%{major_ver} %{BUILDROOT}/%{libdir}python%{major_ver}/site-packages" \
-                       xargs -0 %{BUILDROOT}%{bindir}/python%{major_ver} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{BUILDROOT}")[2], optimize=0) for f in sys.argv[1:]]' || :
-
-               # Fixup permissions for shared libraries from non-standard 555 to standard 755:
-               find %{BUILDROOT} -perm 555 -exec chmod 755 {} \;
        end
 end
 
@@ -186,18 +125,20 @@ packages
                requires
                        expat >= 2.1.0
                end
-
-               files += %{dynload_dir}
        end
 
        package %{name}-devel
                template DEVEL
 
-               requires += %{name}-libs = %{thisver}
+               requires
+                       %{name} = %{thisver}
+                       %{name}-libs = %{thisver}
+               end
 
                files += \
                        !%{libdir}/python*/config*/Makefile \
-                       !%{includedir}/python*/pyconfig.h
+                       !%{includedir}/python*/pyconfig.h \
+                       !%{pylibdir}/lib-dynload
        end
 
        package %{name}-test