The package rpms/python38.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/python38.git/commit/?id=7e131d07a3f0....
Change: -%ifarch %{valgrind_arches}
Thanks.
Full change: ============
commit 7e131d07a3f07d410d3733fffc5bde6b2be7ab03 Author: Miro Hronok miro@hroncok.cz Date: Thu Aug 22 13:30:51 2019 +0200
Provided by the python3 package. Will be reintroduced when python3 is Python 3.9.
diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1107137..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*.tar.* -/*.src.rpm -/results_python3* diff --git a/00001-rpath.patch b/00001-rpath.patch deleted file mode 100644 index 030bc3c..0000000 --- a/00001-rpath.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 8a93e612de3f9f1e1c04ca2b31f207a2ce611fe1 Mon Sep 17 00:00:00 2001 -From: David Malcolm dmalcolm@redhat.com -Date: Wed, 13 Jan 2010 21:25:18 +0000 -Subject: [PATCH] 00001: Fixup distutils/unixccompiler.py to remove standard - library path from rpath Was Patch0 in ivazquez' python3000 specfile - ---- - Lib/distutils/unixccompiler.py | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py -index d10a78da31..4df4b67810 100644 ---- a/Lib/distutils/unixccompiler.py -+++ b/Lib/distutils/unixccompiler.py -@@ -82,6 +82,15 @@ 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()._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) --- -2.21.0 - diff --git a/00102-lib64.patch b/00102-lib64.patch deleted file mode 100644 index 45677ca..0000000 --- a/00102-lib64.patch +++ /dev/null @@ -1,261 +0,0 @@ -From ee7b218babbed91c283445021a99d4b28fc12b2f Mon Sep 17 00:00:00 2001 -From: David Malcolm dmalcolm@redhat.com -Date: Wed, 13 Jan 2010 21:25:18 +0000 -Subject: [PATCH] 00102: Change the various install paths to use /usr/lib64/ - instead or /usr/lib/ -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Only used when "%{_lib}" == "lib64". - -Co-authored-by: David Malcolm dmalcolm@redhat.com -Co-authored-by: Thomas Spura tomspur@fedoraproject.org -Co-authored-by: Slavek Kabrda bkabrda@redhat.com -Co-authored-by: Matej Stuchlik mstuchli@redhat.com -Co-authored-by: Tomas Orsava torsava@redhat.com -Co-authored-by: Charalampos Stratakis cstratak@redhat.com -Co-authored-by: Petr Viktorin pviktori@redhat.com -Co-authored-by: Miro Hronok miro@hroncok.cz -Co-authored-by: Iryna Shcherbina shcherbina.iryna@gmail.com ---- - Lib/distutils/command/install.py | 4 ++-- - Lib/distutils/sysconfig.py | 6 +++++- - Lib/distutils/tests/test_install.py | 3 ++- - Lib/site.py | 4 ++++ - Lib/sysconfig.py | 12 ++++++------ - Lib/test/test_site.py | 4 ++-- - Makefile.pre.in | 2 +- - Modules/getpath.c | 6 +++--- - configure | 4 ++-- - configure.ac | 4 ++-- - setup.py | 6 +++--- - 11 files changed, 32 insertions(+), 23 deletions(-) - -diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py -index c625c95bf7..ae4f915669 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 b51629eb94..9a4892a737 100644 ---- a/Lib/distutils/sysconfig.py -+++ b/Lib/distutils/sysconfig.py -@@ -146,8 +146,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/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py -index 287ab1989e..d4c05e0ab1 100644 ---- a/Lib/distutils/tests/test_install.py -+++ b/Lib/distutils/tests/test_install.py -@@ -57,8 +57,9 @@ class InstallTestCase(support.TempdirManager, - 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/Lib/site.py b/Lib/site.py -index a065ab0b5d..22d53fa562 100644 ---- a/Lib/site.py -+++ b/Lib/site.py -@@ -335,11 +335,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")) - return sitepackages - -diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py -index e76e6927cb..0cfbea54b9 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': -@@ -62,10 +62,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 41c4229919..543c88432a 100644 ---- a/Lib/test/test_site.py -+++ b/Lib/test/test_site.py -@@ -266,8 +266,8 @@ class HelperFunctionsTests(unittest.TestCase): - dirs = site.getsitepackages() - if os.sep == '/': - # OS X, 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 6a9f4b5270..61d650882f 100644 ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -143,7 +143,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 5f80738188..73d7913441 100644 ---- a/Modules/getpath.c -+++ b/Modules/getpath.c -@@ -689,7 +689,7 @@ calculate_exec_prefix(const PyConfig *config, - if (safe_wcscpy(exec_prefix, calculate->exec_prefix, exec_prefix_len) < 0) { - return PATHLEN_ERR(); - } -- status = joinpath(exec_prefix, L"lib/lib-dynload", exec_prefix_len); -+ status = joinpath(exec_prefix, L"lib64/lib-dynload", exec_prefix_len); - if (_PyStatus_EXCEPTION(status)) { - return status; - } -@@ -1016,7 +1016,7 @@ calculate_zip_path(PyCalculatePath *calculate, const wchar_t *prefix) - return PATHLEN_ERR(); - } - } -- status = joinpath(calculate->zip_path, L"lib/python00.zip", zip_path_len); -+ status = joinpath(calculate->zip_path, L"lib64/python00.zip", zip_path_len); - if (_PyStatus_EXCEPTION(status)) { - return status; - } -@@ -1145,7 +1145,7 @@ calculate_init(PyCalculatePath *calculate, - if (!calculate->prefix) { - return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); - } -- calculate->lib_python = Py_DecodeLocale("lib/python" VERSION, &len); -+ calculate->lib_python = Py_DecodeLocale("lib64/python" VERSION, &len); - if (!calculate->lib_python) { - return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); - } -diff --git a/configure b/configure -index cb5f130d38..b30b4008f2 100755 ---- a/configure -+++ b/configure -@@ -15195,9 +15195,9 @@ fi - - - if test x$PLATFORM_TRIPLET = x; then -- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}" -+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}" - else -- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" -+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" - fi - - -diff --git a/configure.ac b/configure.ac -index b31ed242f1..42d17bc0ad 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -4663,9 +4663,9 @@ fi - dnl define LIBPL after ABIFLAGS and LDVERSION is defined. - AC_SUBST(PY_ENABLE_SHARED) - if test x$PLATFORM_TRIPLET = x; then -- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}" -+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}" - else -- LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" -+ LIBPL='$(prefix)'"/lib64/python${VERSION}/config-${LDVERSION}-${PLATFORM_TRIPLET}" - fi - AC_SUBST(LIBPL) - -diff --git a/setup.py b/setup.py -index 6cbbec9e12..a5092861cf 100644 ---- a/setup.py -+++ b/setup.py -@@ -648,7 +648,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: -@@ -944,11 +944,11 @@ class PyBuildExt(build_ext): - elif curses_library: - readline_libs.append(curses_library) - elif self.compiler.find_library_file(self.lib_dirs + -- ['/usr/lib/termcap'], -+ ['/usr/lib64/termcap'], - 'termcap'): - readline_libs.append('termcap') - self.add(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: --- -2.21.0 - diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch deleted file mode 100644 index bc326cb..0000000 --- a/00111-no-static-lib.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 65208ffdf868d06e6e16eeb12e3f47205a738ed3 Mon Sep 17 00:00:00 2001 -From: David Malcolm dmalcolm@redhat.com -Date: Mon, 18 Jan 2010 17:59:07 +0000 -Subject: [PATCH] 00111: Don't try to build a libpythonMAJOR.MINOR.a -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Downstream only: not appropriate for upstream. - -See https://bugzilla.redhat.com/show_bug.cgi?id=556092 - -Co-authored-by: David Malcolm dmalcolm@redhat.com -Co-authored-by: Bohuslav Kabrda bkabrda@redhat.com -Co-authored-by: Matej Stuchlik mstuchli@redhat.com -Co-authored-by: Robert Kuska rkuska@redhat.com -Co-authored-by: Charalampos Stratakis cstratak@redhat.com -Co-authored-by: Miro Hronok miro@hroncok.cz ---- - Makefile.pre.in | 21 ++------------------- - 1 file changed, 2 insertions(+), 19 deletions(-) - -diff --git a/Makefile.pre.in b/Makefile.pre.in -index 61d650882f..3f5be819c4 100644 ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -561,7 +561,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c - $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) - - # Build the interpreter --$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) -+$(BUILDPYTHON): Programs/python.o $(LDLIBRARY) $(PY3LIBRARY) - $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) - - platform: $(BUILDPYTHON) pybuilddir.txt -@@ -609,12 +609,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o - _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - -- --# Build static library --$(LIBRARY): $(LIBRARY_OBJS) -- -rm -f $@ -- $(AR) $(ARFLAGS) $@ $(LIBRARY_OBJS) -- - libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) - if test $(INSTSONAME) != $(LDLIBRARY); then \ - $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ -@@ -692,7 +686,7 @@ Makefile Modules/config.c: Makefile.pre \ - @echo "The Makefile was updated, you may need to re-run make." - - --Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) -+Programs/_testembed: Programs/_testembed.o $(LDLIBRARY) $(PY3LIBRARY) - $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) - - ############################################################################ -@@ -1552,17 +1546,6 @@ libainstall: @DEF_MAKE_RULE@ python-config - else true; \ - fi; \ - done -- @if test -d $(LIBRARY); then :; else \ -- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -- if test "$(SHLIB_SUFFIX)" = .dll; then \ -- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ -- else \ -- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- fi; \ -- else \ -- echo Skip install of $(LIBRARY) - use make frameworkinstall; \ -- fi; \ -- fi - $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c - $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o - $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in --- -2.21.0 - diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch deleted file mode 100644 index 7be6406..0000000 --- a/00189-use-rpm-wheels.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 327e040bd14b6bd05314b24e59ffcdb2179f9757 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= miro@hroncok.cz -Date: Wed, 15 Aug 2018 15:36:29 +0200 -Subject: [PATCH] 00189: Instead of bundled wheels, use our RPM packaged wheels - -We keep them in /usr/share/python-wheels ---- - Lib/ensurepip/__init__.py | 26 +++++++++++++++++--------- - 1 file changed, 17 insertions(+), 9 deletions(-) - -diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py -index 63de20e288..4d17e413db 100644 ---- a/Lib/ensurepip/__init__.py -+++ b/Lib/ensurepip/__init__.py -@@ -1,16 +1,27 @@ -+import distutils.version -+import glob - import os - import os.path --import pkgutil - import sys - import tempfile - - - __all__ = ["version", "bootstrap"] - -+_WHEEL_DIR = "/usr/share/python-wheels/" - --_SETUPTOOLS_VERSION = "41.0.1" - --_PIP_VERSION = "19.2.1" -+def _get_most_recent_wheel_version(pkg): -+ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg)) -+ suffix = "-py2.py3-none-any.whl" -+ pattern = "{}*{}".format(prefix, suffix) -+ versions = (p[len(prefix):-len(suffix)] for p in glob.glob(pattern)) -+ return str(max(versions, key=distutils.version.LooseVersion)) -+ -+ -+_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools") -+ -+_PIP_VERSION = _get_most_recent_wheel_version("pip") - - _PROJECTS = [ - ("setuptools", _SETUPTOOLS_VERSION), -@@ -96,12 +107,9 @@ def _bootstrap(*, root=None, upgrade=False, user=False, - additional_paths = [] - for project, version in _PROJECTS: - wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version) -- whl = pkgutil.get_data( -- "ensurepip", -- "_bundled/{}".format(wheel_name), -- ) -- with open(os.path.join(tmpdir, wheel_name), "wb") as fp: -- fp.write(whl) -+ with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp: -+ with open(os.path.join(tmpdir, wheel_name), "wb") as fp: -+ fp.write(sfp.read()) - - additional_paths.append(os.path.join(tmpdir, wheel_name)) - --- -2.21.0 - diff --git a/00251-change-user-install-location.patch b/00251-change-user-install-location.patch deleted file mode 100644 index 1b6f283..0000000 --- a/00251-change-user-install-location.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 27348866d660c1344a1f78a6337436443e1ed19c Mon Sep 17 00:00:00 2001 -From: Michal Cyprian m.cyprian@gmail.com -Date: Mon, 26 Jun 2017 16:32:56 +0200 -Subject: [PATCH] 00251: Change user install location - -Set values of prefix and exec_prefix in distutils install command -to /usr/local if executable is /usr/bin/python* and RPM build -is not detected to make pip and distutils install into separate location. - -Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe ---- - Lib/distutils/command/install.py | 15 +++++++++++++-- - Lib/site.py | 9 ++++++++- - 2 files changed, 21 insertions(+), 3 deletions(-) - -diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py -index ae4f915669..0e4fd5b74a 100644 ---- a/Lib/distutils/command/install.py -+++ b/Lib/distutils/command/install.py -@@ -418,8 +418,19 @@ class install(Command): - raise DistutilsOptionError( - "must not supply exec-prefix without prefix") - -- self.prefix = os.path.normpath(sys.prefix) -- self.exec_prefix = os.path.normpath(sys.exec_prefix) -+ # self.prefix is set to sys.prefix + /local/ -+ # if neither RPM build nor virtual environment is -+ # detected to make pip and distutils install packages -+ # into the separate location. -+ if (not (hasattr(sys, 'real_prefix') or -+ sys.prefix != sys.base_prefix) and -+ 'RPM_BUILD_ROOT' not in os.environ): -+ addition = "/local" -+ else: -+ addition = "" -+ -+ self.prefix = os.path.normpath(sys.prefix) + addition -+ self.exec_prefix = os.path.normpath(sys.exec_prefix) + addition - - else: - if self.exec_prefix is None: -diff --git a/Lib/site.py b/Lib/site.py -index 22d53fa562..9513526109 100644 ---- a/Lib/site.py -+++ b/Lib/site.py -@@ -348,7 +348,14 @@ def getsitepackages(prefixes=None): - return sitepackages - - def addsitepackages(known_paths, prefixes=None): -- """Add site-packages to sys.path""" -+ """Add site-packages to sys.path -+ -+ '/usr/local' is included in PREFIXES if RPM build is not detected -+ to make packages installed into this location visible. -+ -+ """ -+ if ENABLE_USER_SITE and 'RPM_BUILD_ROOT' not in os.environ: -+ PREFIXES.insert(0, "/usr/local") - for sitedir in getsitepackages(prefixes): - if os.path.isdir(sitedir): - addsitedir(sitedir, known_paths) --- -2.21.0 - diff --git a/00274-fix-arch-names.patch b/00274-fix-arch-names.patch deleted file mode 100644 index 9bca39d..0000000 --- a/00274-fix-arch-names.patch +++ /dev/null @@ -1,86 +0,0 @@ -From c827bec294a7fb9481a55c1f7d78e80007e38816 Mon Sep 17 00:00:00 2001 -From: Petr Viktorin pviktori@redhat.com -Date: Mon, 28 Aug 2017 17:16:46 +0200 -Subject: [PATCH] 00274: Upstream uses Debian-style architecture naming, change - to match Fedora -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Co-authored-by: Petr Viktorin pviktori@redhat.com -Co-authored-by: Miro Hronok miro@hroncok.cz -Co-authored-by: Tomas Orsava torsava@redhat.com ---- - config.sub | 2 +- - configure.ac | 16 ++++++++-------- - 2 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/config.sub b/config.sub -index ba37cf99e2..52a9ec6662 100755 ---- a/config.sub -+++ b/config.sub -@@ -1042,7 +1042,7 @@ case $basic_machine in - ;; - ppc64) basic_machine=powerpc64-unknown - ;; -- ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` -+ ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown -diff --git a/configure.ac b/configure.ac -index 42d17bc0ad..637a99f159 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -741,9 +741,9 @@ cat >> conftest.c <<EOF - alpha-linux-gnu - # elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP) - # if defined(__ARMEL__) -- arm-linux-gnueabihf -+ arm-linux-gnueabi - # else -- armeb-linux-gnueabihf -+ armeb-linux-gnueabi - # endif - # elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP) - # if defined(__ARMEL__) -@@ -783,7 +783,7 @@ cat >> conftest.c <<EOF - # elif _MIPS_SIM == _ABIN32 - mips64el-linux-gnuabin32 - # elif _MIPS_SIM == _ABI64 -- mips64el-linux-gnuabi64 -+ mips64el-linux-gnu - # else - # error unknown platform triplet - # endif -@@ -793,22 +793,22 @@ cat >> conftest.c <<EOF - # elif _MIPS_SIM == _ABIN32 - mips64-linux-gnuabin32 - # elif _MIPS_SIM == _ABI64 -- mips64-linux-gnuabi64 -+ mips64-linux-gnu - # else - # error unknown platform triplet - # endif - # elif defined(__or1k__) - or1k-linux-gnu - # elif defined(__powerpc__) && defined(__SPE__) -- powerpc-linux-gnuspe -+ ppc-linux-gnuspe - # elif defined(__powerpc64__) - # if defined(__LITTLE_ENDIAN__) -- powerpc64le-linux-gnu -+ ppc64le-linux-gnu - # else -- powerpc64-linux-gnu -+ ppc64-linux-gnu - # endif - # elif defined(__powerpc__) -- powerpc-linux-gnu -+ ppc-linux-gnu - # elif defined(__s390x__) - s390x-linux-gnu - # elif defined(__s390__) --- -2.21.0 - diff --git a/00328-pyc-timestamp-invalidation-mode.patch b/00328-pyc-timestamp-invalidation-mode.patch deleted file mode 100644 index 18e7735..0000000 --- a/00328-pyc-timestamp-invalidation-mode.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 1df081ef9044c6b30fd75d591b6999eb62c48d9b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= miro@hroncok.cz -Date: Thu, 11 Jul 2019 13:44:13 +0200 -Subject: [PATCH] 00328: Restore pyc to TIMESTAMP invalidation mode as default - in rpmbuild - -Since Fedora 31, the $SOURCE_DATE_EPOCH is set in rpmbuild to the latest -%changelog date. This makes Python default to the CHECKED_HASH pyc -invalidation mode, bringing more reproducible builds traded for an import -performance decrease. To avoid that, we don't default to CHECKED_HASH -when $RPM_BUILD_ROOT is set (i.e. when we are building RPM packages). - -See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment... ---- - Lib/py_compile.py | 3 ++- - Lib/test/test_py_compile.py | 2 ++ - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/Lib/py_compile.py b/Lib/py_compile.py -index 21736896af..310bed5620 100644 ---- a/Lib/py_compile.py -+++ b/Lib/py_compile.py -@@ -70,7 +70,8 @@ class PycInvalidationMode(enum.Enum): - - - def _get_default_invalidation_mode(): -- if os.environ.get('SOURCE_DATE_EPOCH'): -+ if (os.environ.get('SOURCE_DATE_EPOCH') and not -+ os.environ.get('RPM_BUILD_ROOT')): - return PycInvalidationMode.CHECKED_HASH - else: - return PycInvalidationMode.TIMESTAMP -diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py -index d6677ab45f..88059b127e 100644 ---- a/Lib/test/test_py_compile.py -+++ b/Lib/test/test_py_compile.py -@@ -17,6 +17,7 @@ def without_source_date_epoch(fxn): - def wrapper(*args, **kwargs): - with support.EnvironmentVarGuard() as env: - env.unset('SOURCE_DATE_EPOCH') -+ env.unset('RPM_BUILD_ROOT') - return fxn(*args, **kwargs) - return wrapper - -@@ -27,6 +28,7 @@ def with_source_date_epoch(fxn): - def wrapper(*args, **kwargs): - with support.EnvironmentVarGuard() as env: - env['SOURCE_DATE_EPOCH'] = '123456789' -+ env.unset('RPM_BUILD_ROOT') - return fxn(*args, **kwargs) - return wrapper - --- -2.21.0 - diff --git a/check-pyc-timestamps.py b/check-pyc-timestamps.py deleted file mode 100644 index 91af4fd..0000000 --- a/check-pyc-timestamps.py +++ /dev/null @@ -1,55 +0,0 @@ -"""Checks if all *.pyc files have later mtime than their *.py files.""" - -import os -import sys -from importlib.util import cache_from_source -from pathlib import Path - - -RPM_BUILD_ROOT = os.environ.get('RPM_BUILD_ROOT', '') - -# ...cpython-3X.pyc -# ...cpython-3X.opt-1.pyc -# ...cpython-3X.opt-2.pyc -LEVELS = (None, 1, 2) - -# list of globs of test and other files that we expect not to have bytecode -not_compiled = [ - '/usr/bin/*', - '*/test/bad_coding.py', - '*/test/bad_coding2.py', - '*/test/badsyntax_*.py', - '*/lib2to3/tests/data/bom.py', - '*/lib2to3/tests/data/crlf.py', - '*/lib2to3/tests/data/different_encoding.py', - '*/lib2to3/tests/data/false_encoding.py', - '*/lib2to3/tests/data/py2_test_grammar.py', - '*.debug-gdb.py', -] - - -def bytecode_expected(path): - path = Path(path[len(RPM_BUILD_ROOT):]) - for glob in not_compiled: - if path.match(glob): - return False - return True - - -failed = 0 -compiled = (path for path in sys.argv[1:] if bytecode_expected(path)) -for path in compiled: - to_check = (cache_from_source(path, optimization=opt) for opt in LEVELS) - f_mtime = os.path.getmtime(path) - for pyc in to_check: - c_mtime = os.path.getmtime(pyc) - if c_mtime < f_mtime: - print('Failed bytecompilation timestamps check: ' - f'Bytecode file {pyc} is older than source file {path}', - file=sys.stderr) - failed += 1 - -if failed: - print(f'\n{failed} files failed bytecompilation timestamps check.', - file=sys.stderr) - sys.exit(1) diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..442ab24 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Provided by the python3 package. Will be reintroduced when python3 is Python 3.9. diff --git a/idle3.appdata.xml b/idle3.appdata.xml deleted file mode 100644 index 94f87a2..0000000 --- a/idle3.appdata.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- Copyright 2017 Zbigniew Jdrzejewski-Szmek --> -<application> - <id type="desktop">idle3.desktop</id> - <name>IDLE3</name> - <metadata_licence>CC0</metadata_licence> - <project_license>Python-2.0</project_license> - <summary>Python 3 Integrated Development and Learning Environment</summary> - <description> - <p> - IDLE is Pythons Integrated Development and Learning Environment. - The GUI is uniform between Windows, Unix, and Mac OS X. - IDLE provides an easy way to start writing, running, and debugging - Python code. - </p> - <p> - IDLE is written in pure Python, and uses the tkinter GUI toolkit. - It provides: - </p> - <ul> - <li>a Python shell window (interactive interpreter) with colorizing of code input, output, and error messages,</li> - <li>a multi-window text editor with multiple undo, Python colorizing, smart indent, call tips, auto completion, and other features,</li> - <li>search within any window, replace within editor windows, and search through multiple files (grep),</li> - <li>a debugger with persistent breakpoints, stepping, and viewing of global and local namespaces.</li> - </ul> - </description> - <url type="homepage">https://docs.python.org/3/library/idle.html</url> - <screenshots> - <screenshot type="default">http://in.waw.pl/~zbyszek/fedora/idle3-appdata/idle3-main-window.png</screenshot> - <screenshot>http://in.waw.pl/~zbyszek/fedora/idle3-appdata/idle3-class-browser.png</screenshot> - <screenshot>http://in.waw.pl/~zbyszek/fedora/idle3-appdata/idle3-code-viewer.png</screenshot> - </screenshots> - <update_contact>zbyszek@in.waw.pl</update_contact> -</application> diff --git a/idle3.desktop b/idle3.desktop deleted file mode 100644 index dc1d3c3..0000000 --- a/idle3.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=IDLE 3 -Comment=Python 3 Integrated Development and Learning Environment -Exec=idle3 %F -TryExec=idle3 -Terminal=false -Type=Application -Icon=idle3 -Categories=Development;IDE; -MimeType=text/x-python; \ No newline at end of file diff --git a/python38.rpmlintrc b/python38.rpmlintrc deleted file mode 100644 index 1314d45..0000000 --- a/python38.rpmlintrc +++ /dev/null @@ -1,80 +0,0 @@ -# KNOWN BUGS: -# https://bugzilla.redhat.com/show_bug.cgi?id=1489816 -addFilter(r'crypto-policy-non-compliance-openssl') - - -# TESTS: -addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test') - - -# OTHER DELIBERATES: -# chroot function -addFilter(r'missing-call-to-chdir-with-chroot') - -# intentionally unversioned and selfobsoleted -addFilter(r'unversioned-explicit-obsoletes python') -addFilter(r'self-obsoletion python3\d obsoletes python3\d') - -# intentionally hardcoded -addFilter(r'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})') - -# intentional for our pythonXY package -addFilter(r'python3\d.[^:]+: (E|W): devel-file-in-non-devel-package') - -# we have non binary stuff, python files -addFilter(r'only-non-binary-in-usr-lib') - -# some devel files that are deliberately needed -addFilter(r'devel-file-in-non-devel-package /usr/include/python3.\dm/pyconfig-(32|64).h') -addFilter(r'devel-file-in-non-devel-package /usr/lib(64)?/python3.\d/distutils/tests/xxmodule.c') - - -# SORRY, NOT SORRY: -# manual pages -addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3-debug|pathfix|msgfmt|pygettext)') -addFilter(r'no-manual-page-for-binary python3.*-config$') -addFilter(r'no-manual-page-for-binary python3.\dd?m$') - -# missing documentation from subpackages -addFilter(r'^python3\d?-(debug|tkinter|test|idle).[^:]+: (E|W): no-documentation') - -# platform python is obsoleted, but not provided -addFilter(r'obsolete-not-provided platform-python') - - -# RPMLINT IMPERFECTIONS -# https://github.com/rpm-software-management/rpmlint/issues/123 -addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d (3.7), found 3393') -# https://github.com/rpm-software-management/rpmlint/pull/133 -addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d (3.7), found 3394') - -# https://bugzilla.redhat.com/show_bug.cgi?id=1550562 -# https://github.com/rpm-software-management/rpmlint/issues/128 -addFilter(r'python-bytecode-inconsistent-mtime .* 1970') - -# debugsource -addFilter(r'^python3\d?-debugsource.[^:]+: (E|W): no-documentation') - -# debuginfo -addFilter(r'^python3\d?-debuginfo.[^:]+: (E|W): useless-provides debuginfo(build-id)') - -# this is OK for F28+ -addFilter(r'library-without-ldconfig-post') - -# debug package contains devel and non-devel files -addFilter(r'python3\d?-debug.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package') - -# this goes to other subpackage, hence not actually dangling, the read error is bogus -addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3.\ddm.pc python-3.\d.pc') -addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3.\ddm.pc [Errno 2]') - -# we need this macro to evaluate, even if the line starts with # -addFilter(r'macro-in-comment %{_pyconfig(32|64)_h}') - -# Python modules don't need to be linked against libc -# Since 3.8 they are no longer linked against libpython3.8.so.1.0 -addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/') -addFilter(r'E: shared-lib-without-dependency-information /usr/lib(64)?/python3.\d/lib-dynload/') - -# SPELLING ERRORS -addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ') diff --git a/python38.spec b/python38.spec deleted file mode 100644 index 85512cf..0000000 --- a/python38.spec +++ /dev/null @@ -1,1564 +0,0 @@ -# ================== -# Top-level metadata -# ================== - -%global pybasever 3.8 - -# pybasever without the dot: -%global pyshortver 38 - -Name: python%{pyshortver} -Summary: Version %{pybasever} of the Python interpreter -URL: https://www.python.org/ - -# WARNING When rebasing to a new Python version, -# remember to update the python3-docs package as well -%global general_version %{pybasever}.0 -%global prerel b3 -%global upstream_version %{general_version}%{?prerel} -Version: %{general_version}%{?prerel:~%{prerel}} -Release: 1%{?dist} -License: Python - - -# ================================== -# Conditionals controlling the build -# ================================== - -# Note that the bcond macros are named for the CLI option they create. -# "%%bcond_without" means "ENABLE by default and create a --without option" - - -# Flat package, i.e. python36, python37, python38 for tox etc. -# warning: changes some other defaults -# in Fedora, never turn this on for the python3 package -# and always keep it on for python37 etc. -# WARNING: This does not change the package name and summary above -%bcond_without flatpackage - -# When bootstrapping python3, we need to build setuptools. -# but setuptools BR python3-devel and that brings in python3-rpm-generators; -# python3-rpm-generators needs python3-setuptools, so we cannot have it yet. -# -# Procedure: https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython -# -# IMPORTANT: When bootstrapping, it's very likely the wheels for pip and -# setuptools are not available. Turn off the rpmwheels bcond until -# the two packages are built with wheels to get around the issue. -%bcond_with bootstrap - -# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package -# Uses upstream bundled prebuilt wheels otherwise -%bcond_without rpmwheels - -# Expensive optimizations (mainly, profile-guided optimizations) -%ifarch %{ix86} x86_64 -%bcond_without optimizations -%else -# On some architectures, the optimized build takes tens of hours, possibly -# longer than Koji's 24-hour timeout. Disable optimizations here. -%bcond_with optimizations -%endif - -# Run the test suite in %%check -%bcond_without tests - -# Extra build for debugging the interpreter or C-API extensions -# (the -debug subpackages) -%if %{with flatpackage} -%bcond_with debug_build -%else -%bcond_without debug_build -%endif - -# Support for the GDB debugger -%bcond_without gdb_hooks - -# The dbm.gnu module (key-value database) -%bcond_without gdbm - -# Main interpreter loop optimization -%bcond_without computed_gotos - -# Support for the Valgrind debugger/profiler -%ifarch %{valgrind_arches} -%bcond_without valgrind -%else -%bcond_with valgrind -%endif - - -# ===================== -# General global macros -# ===================== - -%global pylibdir %{_libdir}/python%{pybasever} -%global dynload_dir %{pylibdir}/lib-dynload - -# ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac -# See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/ -%global ABIFLAGS_optimized %{nil} -%global ABIFLAGS_debug d - -%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized} -%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug} - -%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu} -%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu} - -# All bytecode files are in a __pycache__ subdirectory, with a name -# reflecting the version of the bytecode. -# See PEP 3147: http://www.python.org/dev/peps/pep-3147/ -# For example, -# foo/bar.py -# has bytecode at: -# foo/__pycache__/bar.cpython-%%{pyshortver}.pyc -# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc -# foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc -%global bytecode_suffixes .cpython-%{pyshortver}*.pyc - -# Python's configure script defines SOVERSION, and this is used in the Makefile -# to determine INSTSONAME, the name of the libpython DSO: -# LDLIBRARY='libpython$(VERSION).so' -# INSTSONAME="$LDLIBRARY".$SOVERSION -# We mirror this here in order to make it easier to add the -gdb.py hooks. -# (if these get out of sync, the payload of the libs subpackage will fail -# and halt the build) -%global py_SOVERSION 1.0 -%global py_INSTSONAME_optimized libpython%{LDVERSION_optimized}.so.%{py_SOVERSION} -%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION} - -# Disable automatic bytecompilation. The python3 binary is not yet be -# available in /usr/bin when Python is built. Also, the bytecompilation fails -# on files that test invalid syntax. -%undefine py_auto_byte_compile - -# For multilib support, files that are different between 32- and 64-bit arches -# need different filenames. Use "64" or "32" according to the word size. -# Currently, the best way to determine an architecture's word size happens to -# be checking %%{_lib}. -%if "%{_lib}" == "lib64" -%global wordsize 64 -%else -%global wordsize 32 -%endif - - -# ======================= -# Build-time requirements -# ======================= - -# (keep this list alphabetized) - -BuildRequires: autoconf -BuildRequires: bluez-libs-devel -BuildRequires: bzip2 -BuildRequires: bzip2-devel -BuildRequires: desktop-file-utils -BuildRequires: expat-devel - -BuildRequires: findutils -BuildRequires: gcc-c++ -%if %{with gdbm} -BuildRequires: gdbm-devel -%endif -BuildRequires: glibc-all-langpacks -BuildRequires: glibc-devel -BuildRequires: gmp-devel -BuildRequires: libappstream-glib -BuildRequires: libffi-devel -BuildRequires: libnsl2-devel -BuildRequires: libtirpc-devel -BuildRequires: libGL-devel -BuildRequires: libuuid-devel -BuildRequires: libX11-devel -BuildRequires: ncurses-devel - -BuildRequires: openssl-devel -BuildRequires: pkgconfig -BuildRequires: readline-devel -BuildRequires: redhat-rpm-config >= 127 -BuildRequires: sqlite-devel -BuildRequires: gdb - -BuildRequires: tar -BuildRequires: tcl-devel -BuildRequires: tix-devel -BuildRequires: tk-devel - -%if %{with valgrind} -BuildRequires: valgrind-devel -%endif - -BuildRequires: xz-devel -BuildRequires: zlib-devel - -BuildRequires: /usr/bin/dtrace - -# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig) -BuildRequires: /usr/sbin/ifconfig - -# For %%python_provide -BuildRequires: python-rpm-macros - -%if %{with rpmwheels} -BuildRequires: python-setuptools-wheel -BuildRequires: python-pip-wheel -%endif - -%if %{without bootstrap} -# for make regen-all and distutils.tests.test_bdist_rpm -BuildRequires: python%{pyshortver} -%endif - -# ======================= -# Source code and patches -# ======================= - -Source: https://www.python.org/ftp/python/%%7Bgeneral_version%7D/Python-%%7Bupstream... - -# A simple script to check timestamps of bytecode files -# Run in check section with Python that is currently being built -# Originally written by bkabrda -Source8: check-pyc-timestamps.py - -# Desktop menu entry for idle3 -Source10: idle3.desktop - -# AppData file for idle3 -Source11: idle3.appdata.xml - -# 00001 # -# Fixup distutils/unixccompiler.py to remove standard library path from rpath: -# Was Patch0 in ivazquez' python3000 specfile: -Patch1: 00001-rpath.patch - -# 00102 # -# Change the various install paths to use /usr/lib64/ instead or /usr/lib -# Only used when "%%{_lib}" == "lib64" -# Not yet sent upstream. -Patch102: 00102-lib64.patch - -# 00111 # -# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build -# a libpythonMAJOR.MINOR.a -# See https://bugzilla.redhat.com/show_bug.cgi?id=556092 -# Downstream only: not appropriate for upstream -Patch111: 00111-no-static-lib.patch - -# 00189 # -# Instead of bundled wheels, use our RPM packaged wheels from -# /usr/share/python-wheels -Patch189: 00189-use-rpm-wheels.patch - -# 00251 -# Set values of prefix and exec_prefix in distutils install command -# to /usr/local if executable is /usr/bin/python* and RPM build -# is not detected to make pip and distutils install into separate location -# Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe -Patch251: 00251-change-user-install-location.patch - -# 00274 # -# Upstream uses Debian-style architecture naming. Change to match Fedora. -Patch274: 00274-fix-arch-names.patch - -# 00328 # -# Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild -# See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment... -Patch328: 00328-pyc-timestamp-invalidation-mode.patch - -# (New patches go here ^^^) -# -# When adding new patches to "python" and "python3" in Fedora, EL, etc., -# please try to keep the patch numbers in-sync between all specfiles. -# -# More information, and a patch number catalog, is at: -# -# https://fedoraproject.org/wiki/SIGs/Python/PythonPatches -# -# The patches are stored and rebased at: -# -# https://github.com/fedora-python/cpython - - -# ========================================== -# Descriptions, and metadata for subpackages -# ========================================== - -# People might want to dnf install pythonX.Y instead of pythonXY; -# we enable this in both flat and nonflat package. -Provides: python%{pybasever} = %{version}-%{release} - -%if %{without flatpackage} - -# Packages with Python modules in standard locations automatically -# depend on python(abi). Provide that here. -Provides: python(abi) = %{pybasever} - -Requires: %{name}-libs%{?_isa} = %{version}-%{release} - -# In order to support multiple Python interpreters for development purposes, -# packages with the naming scheme flatpackage (e.g. python35) exist for -# non-default versions of Python 3. -# For consistency, and to keep the upgrade path clean, we Provide/Obsolete -# these names here. -Provides: python%{pyshortver} = %{version}-%{release} -# Note that using Obsoletes without package version is not standard practice. -# Here we assert that *any* version of the system's default interpreter is -# preferable to an "extra" interpreter. For example, python3-3.6.1 will -# replace python36-3.6.2. -Obsoletes: python%{pyshortver} - -# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_pac... -# https://fedoraproject.org/wiki/Changes/Python_means_Python3 -# We recommend /usr/bin/python so users get it by default -# Versioned recommends are problematic, and we know that the package requires -# python3 back with fixed version, so we just use the path here: -Recommends: %{_bindir}/python - -# In Fedora 31, /usr/bin/pydoc was moved here from Python 2. -# Ideally we'd have an explicit conflict with "/usr/bin/pydoc < 3", -# but file provides aren't versioned and the file moved across packages. -# Instead, we rely on the conflict in python3-libs. - -# Previously, this was required for our rewheel patch to work. -# This is technically no longer needed, but we keep it recommended -# for the developer experience. -Recommends: python3-setuptools -Recommends: python3-pip - -# This prevents ALL subpackages built from this spec to require -# /usr/bin/python3*. Granularity per subpackage is impossible. -# It's intended for the libs package not to drag in the interpreter, see -# https://bugzilla.redhat.com/show_bug.cgi?id=1547131 -# All others require %%{name} anyway. -%global __requires_exclude ^/usr/bin/python3 - - -# The description used both for the SRPM and the main `python3` subpackage: -%description -Python is an accessible, high-level, dynamically typed, interpreted programming -language, designed with an emphasis on code readability. -It includes an extensive standard library, and has a vast ecosystem of -third-party libraries. - -The %{name} package provides the "python3" executable: the reference -interpreter for the Python language, version 3. -The majority of its standard library is provided in the %{name}-libs package, -which should be installed automatically along with %{name}. -The remaining parts of the Python standard library are broken out into the -%{name}-tkinter and %{name}-test packages, which may need to be installed -separately. - -Documentation for Python is provided in the %{name}-docs package. - -Packages containing additional libraries for Python are generally named with -the "%{name}-" prefix. - - -# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_pac... -# https://fedoraproject.org/wiki/Changes/Python_means_Python3 -%package -n python-unversioned-command -Summary: The "python" command that runs Python 3 -BuildArch: noarch - -# In theory this could require any python3 version -Requires: python3 == %{version}-%{release} -# But since we want to provide versioned python, we require exact version -Provides: python = %{version}-%{release} -# This also save us an explicit conflict for older python3 builds - -%description -n python-unversioned-command -This package contains /usr/bin/python - the "python" command that runs Python 3. - - -%package libs -Summary: Python runtime libraries - -%if %{with rpmwheels} -Requires: python-setuptools-wheel -Requires: python-pip-wheel -%else -Provides: bundled(python3-pip) = 19.2.1 -Provides: bundled(python3-setuptools) = 41.0.1 -%endif - -%{?python_provide:%python_provide python3-libs} - -# There are files in the standard library that have python shebang. -# We've filtered the automatic requirement out so libs are installable without -# the main package. This however makes it pulled in by default. -# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131 -Recommends: %{name}%{?_isa} = %{version}-%{release} - -# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_pac... -# In Fedora 31, several "unversioned" files like /usr/bin/pydoc and all the -# "unversioned" provides were moved from python2 to python3. -# So, newer python3 packages need to conflict with old Python 2 builds that -# still provided unversioned Python. -# Since all python packages, new and old, have versioned requires on -# python?-libs, we do it here: -Conflicts: python-libs < 3 -# (We explicitly conflict with python-libs and not python2-libs, so only the -# old Python 2 builds that still provided unversioned Python are handled.) - - -%description libs -This package contains runtime libraries for use by Python: -- the majority of the Python standard library -- a dynamically linked library for use by applications that embed Python as - a scripting language, and by the main "python3" executable - - -%package devel -Summary: Libraries and header files needed for Python development -Requires: %{name} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -BuildRequires: python-rpm-macros -# The RPM related dependencies bring nothing to a non-RPM Python developer -# But we want them when packages BuildRequire python3-devel -Requires: (python-rpm-macros if rpm-build) -Requires: (python3-rpm-macros if rpm-build) - -%if %{without bootstrap} -# This is not "API" (packages that need setuptools should still BuildRequire it) -# However some packages apparently can build both with and without setuptools -# producing egg-info as file or directory (depending on setuptools presence). -# Directory-to-file updates are problematic in RPM, so we ensure setuptools is -# installed when -devel is required. -# See https://bugzilla.redhat.com/show_bug.cgi?id=1623914 -# See https://fedoraproject.org/wiki/Packaging:Directory_Replacement -Requires: (python3-setuptools if rpm-build) - -Requires: (python3-rpm-generators if rpm-build) -%endif - -%{?python_provide:%python_provide python3-devel} - -Provides: %{name}-2to3 = %{version}-%{release} -Provides: 2to3 = %{version}-%{release} - -Conflicts: %{name} < %{version}-%{release} - -# In Fedora 31, several "unversioned" files were moved here from Python 2: -# pygettext.py, msgfmt.py, python-config, python.pc -Conflicts: python-devel < 3 - -%description devel -This package contains the header files and configuration needed to compile -Python extension modules (typically written in C or C++), to embed Python -into other programs, and to make binary distributions for Python libraries. - -It also contains the necessary macros to build RPM packages with Python modules -and 2to3 tool, an automatic source converter from Python 2.X. - - -%package idle -Summary: A basic graphical development environment for Python -Requires: %{name} = %{version}-%{release} -Requires: %{name}-tkinter = %{version}-%{release} - -Provides: idle3 = %{version}-%{release} -Provides: idle = %{version}-%{release} - -Provides: %{name}-tools = %{version}-%{release} -Provides: %{name}-tools%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-tools < %{version}-%{release} - -# In Fedora 31, /usr/bin/idle was moved here from Python 2. -Conflicts: python-tools < 3 - -%{?python_provide:%python_provide python3-idle} - -%description idle -IDLE is Pythons Integrated Development and Learning Environment. - -IDLE has the following features: Python shell window (interactive -interpreter) with colorizing of code input, output, and error messages; -multi-window text editor with multiple undo, Python colorizing, -smart indent, call tips, auto completion, and other features; -search within any window, replace within editor windows, and -search through multiple files (grep); debugger with persistent -breakpoints, stepping, and viewing of global and local namespaces; -configuration, browsers, and other dialogs. - - -%package tkinter -Summary: A GUI toolkit for Python -Requires: %{name} = %{version}-%{release} - -%{?python_provide:%python_provide python3-tkinter} - -%description tkinter -The Tkinter (Tk interface) library is a graphical user interface toolkit for -the Python programming language. - - -%package test -Summary: The self-test suite for the main python3 package -Requires: %{name} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} - -%{?python_provide:%python_provide python3-test} - -%description test -The self-test suite for the Python interpreter. - -This is only useful to test Python itself. For testing general Python code, -you should use the unittest module from %{name}-libs, or a library such as -%{name}-pytest or %{name}-nose. - - -%if %{with debug_build} -%package debug -Summary: Debug version of the Python runtime - -# The debug build is an all-in-one package version of the regular build, and -# shares the same .py/.pyc files and directories as the regular build. Hence -# we depend on all of the subpackages of the regular build: -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: %{name}-devel%{?_isa} = %{version}-%{release} -Requires: %{name}-test%{?_isa} = %{version}-%{release} -Requires: %{name}-tkinter%{?_isa} = %{version}-%{release} -Requires: %{name}-idle%{?_isa} = %{version}-%{release} - -# In Fedora 31, /usr/bin/python-debug was moved here from Python 2. -Conflicts: python-debug < 3 - -%{?python_provide:%python_provide python3-debug} - -%description debug -python3-debug provides a version of the Python runtime with numerous debugging -features enabled, aimed at advanced Python users such as developers of Python -extension modules. - -This version uses more memory and will be slower than the regular Python build, -but is useful for tracking down reference-counting issues and other bugs. - -The debug build shares installation directories with the standard Python -runtime. Python modules -- source (.py), bytecode (.pyc), and C-API extensions -(.cpython*.so) -- are compatible between this and the standard version -of Python. - -The debug runtime additionally supports debug builds of C-API extensions -(with the "d" ABI flag) for debugging issues in those extensions. -%endif # with debug_build - -%else # with flatpackage - -# We'll not provide this, on purpose -# No package in Fedora shall ever depend on flatpackage via this -%global __requires_exclude ^python\(abi\) = 3\..$ -%global __provides_exclude ^python\(abi\) = 3\..$ - -%if %{with rpmwheels} -Requires: python-setuptools-wheel -Requires: python-pip-wheel -%else -Provides: bundled(python3-pip) = 19.2.1 -Provides: bundled(python3-setuptools) = 41.0.1 -%endif - -# The description for the flat package -%description -Python %{pybasever} package for developers. - -This package exists to allow developers to test their code against a newer -version of Python. This is not a full Python stack and if you wish to run -your applications with Python %{pybasever}, update your Fedora to a newer -version once Python %{pybasever} is stable. - -%endif # with flatpackage - -# ====================================================== -# The prep phase of the build: -# ====================================================== - -%prep -%setup -q -n Python-%{upstream_version} -# Remove all exe files to ensure we are not shipping prebuilt binaries -# note that those are only used to create Microsoft Windows installers -# and that functionality is broken on Linux anyway -find -name '*.exe' -print -delete - -# Remove bundled libraries to ensure that we're using the system copy. -rm -r Modules/expat - -# -# Apply patches: -# -%patch1 -p1 - -%if "%{_lib}" == "lib64" -%patch102 -p1 -%endif -%patch111 -p1 - -%if %{with rpmwheels} -%patch189 -p1 -rm Lib/ensurepip/_bundled/*.whl -%endif - -%patch251 -p1 -%patch274 -p1 -%patch328 -p1 - - -# Remove files that should be generated by the build -# (This is after patching, so that we can use patches directly from upstream) -rm configure pyconfig.h.in - - -# ====================================================== -# Configuring and building the code: -# ====================================================== - -%build - -# Regenerate the configure script and pyconfig.h.in -autoconf -autoheader - -# Remember the current directory (which has sources and the configure script), -# so we can refer to it after we "cd" elsewhere. -topdir=$(pwd) - -# Get proper option names from bconds -%if %{with computed_gotos} -%global computed_gotos_flag yes -%else -%global computed_gotos_flag no -%endif - -%if %{with optimizations} -%global optimizations_flag "--enable-optimizations" -%else -%global optimizations_flag "--disable-optimizations" -%endif - -# Set common compiler/linker flags -# We utilize the %%extension_...flags macros here so users building C/C++ -# extensions with our python won't get all the compiler/linker flags used -# in Fedora RPMs. -# Standard library built here will still use the %%build_...flags, -# Fedora packages utilizing %%py3_build will use them as well -# https://fedoraproject.org/wiki/Changes/Python_Extension_Flags -export CFLAGS="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv" -export CFLAGS_NODIST="%{build_cflags} -D_GNU_SOURCE -fPIC -fwrapv" -export CXXFLAGS="%{extension_cxxflags} -D_GNU_SOURCE -fPIC -fwrapv" -export CPPFLAGS="$(pkg-config --cflags-only-I libffi)" -export OPT="%{extension_cflags} -D_GNU_SOURCE -fPIC -fwrapv" -export LINKCC="gcc" -export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)" -export LDFLAGS="%{extension_ldflags} -g $(pkg-config --libs-only-L openssl)" -export LDFLAGS_NODIST="%{build_ldflags} -g $(pkg-config --libs-only-L openssl)" - -# We can build several different configurations of Python: regular and debug. -# Define a common function that does one build: -BuildPython() { - ConfName=$1 - ExtraConfigArgs=$2 - MoreCFlags=$3 - - # Each build is done in its own directory - ConfDir=build/$ConfName - echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName - mkdir -p $ConfDir - pushd $ConfDir - - # Normally, %%configure looks for the "configure" script in the current - # directory. - # Since we changed directories, we need to tell %%configure where to look. - %global _configure $topdir/configure - -%configure \ - --enable-ipv6 \ - --enable-shared \ - --with-computed-gotos=%{computed_gotos_flag} \ - --with-dbmliborder=gdbm:ndbm:bdb \ - --with-system-expat \ - --with-system-ffi \ - --enable-loadable-sqlite-extensions \ - --with-dtrace \ - --with-lto \ - --with-ssl-default-suites=openssl \ -%if %{with valgrind} - --with-valgrind \ -%endif - $ExtraConfigArgs \ - %{nil} - -%if %{without bootstrap} - # Regenerate generated files (needs python3) - %make_build regen-all PYTHON_FOR_REGEN="python%{pybasever}" -%endif - - - # Invoke the build - %make_build EXTRA_CFLAGS="$CFLAGS $MoreCFlags" - - popd - echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfName -} - -# Call the above to build each configuration. - -%if %{with debug_build} -BuildPython debug \ - "--without-ensurepip --with-pydebug" \ - "-Og" -%endif # with debug_build - -BuildPython optimized \ - "--without-ensurepip %{optimizations_flag}" \ - "" - -# ====================================================== -# Installing the built code: -# ====================================================== - -%install - -# As in %%build, remember the current directory -topdir=$(pwd) - -# We install a collection of hooks for gdb that make it easier to debug -# executables linked against libpython3* (such as /usr/bin/python3 itself) -# -# These hooks are implemented in Python itself (though they are for the version -# of python that gdb is linked with) -# -# gdb-archer looks for them in the same path as the ELF file or its .debug -# file, with a -gdb.py suffix. -# We put them next to the debug file, because ldconfig would complain if -# it found non-library files directly in /usr/lib/ -# (see https://bugzilla.redhat.com/show_bug.cgi?id=562980) -# -# We'll put these files in the debuginfo package by installing them to e.g.: -# /usr/lib/debug/usr/lib/libpython3.2.so.1.0.debug-gdb.py -# (note that the debug path is /usr/lib/debug for both 32/64 bit) -# -# See https://fedoraproject.org/wiki/Features/EasierPythonDebugging for more -# information - -%if %{with gdb_hooks} -DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir} -mkdir -p %{buildroot}$DirHoldingGdbPy -%endif # with gdb_hooks - -# Multilib support for pyconfig.h -# 32- and 64-bit versions of pyconfig.h are different. For multilib support -# (making it possible to install 32- and 64-bit versions simultaneously), -# we need to install them under different filenames, and to make the common -# "pyconfig.h" include the right file based on architecture. -# See https://bugzilla.redhat.com/show_bug.cgi?id=192747 -# Filanames are defined here: -%global _pyconfig32_h pyconfig-32.h -%global _pyconfig64_h pyconfig-64.h -%global _pyconfig_h pyconfig-%{wordsize}.h - -# Use a common function to do an install for all our configurations: -InstallPython() { - - ConfName=$1 - PyInstSoName=$2 - MoreCFlags=$3 - LDVersion=$4 - - # Switch to the directory with this configuration's built files - ConfDir=build/$ConfName - echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName - mkdir -p $ConfDir - pushd $ConfDir - - make \ - DESTDIR=%{buildroot} \ - INSTALL="install -p" \ - EXTRA_CFLAGS="$MoreCFlags" \ - install - - popd - -%if %{with gdb_hooks} - # See comment on $DirHoldingGdbPy above - PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName-%{version}-%{release}.%{_arch}.debug-gdb.py - cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy -%endif # with gdb_hooks - - # Rename the -devel script that differs on different arches to arch specific name - mv %{buildroot}%{_bindir}/python${LDVersion}-{,`uname -m`-}config - echo -e '#!/bin/sh\nexec `dirname $0`/python'${LDVersion}'-`uname -m`-config "$@"' > \ - %{buildroot}%{_bindir}/python${LDVersion}-config - echo '[ $? -eq 127 ] && echo "Could not find python'${LDVersion}'-`uname -m`-config. Look around to see available arches." >&2' >> \ - %{buildroot}%{_bindir}/python${LDVersion}-config - chmod +x %{buildroot}%{_bindir}/python${LDVersion}-config - - # Make python3-devel multilib-ready - mv %{buildroot}%{_includedir}/python${LDVersion}/pyconfig.h \ - %{buildroot}%{_includedir}/python${LDVersion}/%{_pyconfig_h} - cat > %{buildroot}%{_includedir}/python${LDVersion}/pyconfig.h << EOF -#include <bits/wordsize.h> - -#if __WORDSIZE == 32 -#include "%{_pyconfig32_h}" -#elif __WORDSIZE == 64 -#include "%{_pyconfig64_h}" -#else -#error "Unknown word size" -#endif -EOF - - echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName -} - -# Install the "debug" build first; any common files will be overridden with -# later builds -%if %{with debug_build} -InstallPython debug \ - %{py_INSTSONAME_debug} \ - -O0 \ - %{LDVERSION_debug} -%endif # with debug_build - -# Now the optimized build: -InstallPython optimized \ - %{py_INSTSONAME_optimized} \ - "" \ - %{LDVERSION_optimized} - -# Install directories for additional packages -install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__ -%if "%{_lib}" == "lib64" -# The 64-bit version needs to create "site-packages" in /usr/lib/ (for -# pure-Python modules) as well as in /usr/lib64/ (for packages with extension -# modules). -# Note that rpmlint will complain about hardcoded library path; -# this is intentional. -install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__ -%endif - -%if %{without flatpackage} -# add idle3 to menu -install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png -install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png -install -D -m 0644 Lib/idlelib/Icons/idle_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/idle3.png -desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE10} - -# Install and validate appdata file -mkdir -p %{buildroot}%{_metainfodir} -cp -a %{SOURCE11} %{buildroot}%{_metainfodir} -appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/idle3.appdata.xml -%endif - -# Make sure distutils looks at the right pyconfig.h file -# See https://bugzilla.redhat.com/show_bug.cgi?id=201434 -# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate -# pyconfig.h so it can be parsed, and needs to do this at runtime in site.py -# when python starts up (see https://bugzilla.redhat.com/show_bug.cgi?id=653058) -# -# Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h -# variants: -sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \ - %{buildroot}%{pylibdir}/distutils/sysconfig.py \ - %{buildroot}%{pylibdir}/sysconfig.py - -# Install pathfix.py to bindir -# See https://github.com/fedora-python/python-rpm-porting/issues/24 -cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/ - -# Install i18n tools to bindir -# They are also in python2, so we version them -# https://bugzilla.redhat.com/show_bug.cgi?id=1571474 -for tool in pygettext msgfmt; do - cp -p Tools/i18n/${tool}.py %{buildroot}%{_bindir}/${tool}%{pybasever}.py - ln -s ${tool}%{pybasever}.py %{buildroot}%{_bindir}/${tool}3.py -done - -# Switch all shebangs to refer to the specific Python version. -# This currently only covers files matching ^[a-zA-Z0-9_]+.py$, -# so handle files named using other naming scheme separately. -LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \ - Tools/scripts/pathfix.py \ - -i "%{_bindir}/python%{pybasever}" -pn \ - %{buildroot} \ - %{buildroot}%{_bindir}/*%{pybasever}.py \ - %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py} - -# Remove tests for python3-tools which was removed in -# https://bugzilla.redhat.com/show_bug.cgi?id=1312030 -rm -rf %{buildroot}%{pylibdir}/test/test_tools - -# Remove shebang lines from .py files that aren't executable, and -# remove executability from .py files that don't have a shebang line: -find %{buildroot} -name *.py \ - ( ( ! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} ; \ - -print -exec sed -i '1d' {} ; ) -o ( \ - -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} ; \ - -exec chmod a-x {} ; ) ) - -# Get rid of DOS batch files: -find %{buildroot} -name *.bat -exec rm {} ; - -# Get rid of backup files: -find %{buildroot}/ -name "*~" -exec rm -f {} ; -find . -name "*~" -exec rm -f {} ; - -# Do bytecompilation with the newly installed interpreter. -# This is similar to the script in macros.pybytecompile -# compile *.pyc -find %{buildroot} -type f -a -name "*.py" -print0 | \ - LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \ - PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \ - xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || : - -# Since we have pathfix.py in bindir, this is created, but we don't want it -rm -rf %{buildroot}%{_bindir}/__pycache__ - -# Fixup permissions for shared libraries from non-standard 555 to standard 755: -find %{buildroot} -perm 555 -exec chmod 755 {} ; - -# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to -# avoid the user having to know the precise version and ABI flags. -# See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748 -%if %{with debug_build} && %{without flatpackage} -ln -s \ - %{_bindir}/python%{LDVERSION_debug} \ - %{buildroot}%{_bindir}/python3-debug -%endif - -# There's 2to3-X.X executable and 2to3 soft link to it. -# No reason to have both, so keep only 2to3 as an executable. -# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275 -mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3 - -%if %{with flatpackage} -# Remove stuff that would conflict with python3 package -rm %{buildroot}%{_bindir}/python3 -rm %{buildroot}%{_bindir}/pydoc3 -rm %{buildroot}%{_bindir}/pathfix.py -rm %{buildroot}%{_bindir}/pygettext3.py -rm %{buildroot}%{_bindir}/msgfmt3.py -rm %{buildroot}%{_bindir}/idle3 -rm %{buildroot}%{_bindir}/python3-* -rm %{buildroot}%{_bindir}/2to3 -rm %{buildroot}%{_libdir}/libpython3.so -rm %{buildroot}%{_mandir}/man1/python3.1* -rm %{buildroot}%{_libdir}/pkgconfig/python3.pc -rm %{buildroot}%{_libdir}/pkgconfig/python3-embed.pc -%else -# Link the unversioned stuff -# https://fedoraproject.org/wiki/Changes/Python_means_Python3 -ln -s ./python3 %{buildroot}%{_bindir}/python -ln -s ./pydoc3 %{buildroot}%{_bindir}/pydoc -ln -s ./pygettext3.py %{buildroot}%{_bindir}/pygettext.py -ln -s ./msgfmt3.py %{buildroot}%{_bindir}/msgfmt.py -ln -s ./idle3 %{buildroot}%{_bindir}/idle -ln -s ./python3-config %{buildroot}%{_bindir}/python-config -ln -s ./python3.1 %{buildroot}%{_mandir}/man1/python.1 -ln -s ./python3.pc %{buildroot}%{_libdir}/pkgconfig/python.pc -%if %{with debug_build} -ln -s ./python3-debug %{buildroot}%{_bindir}/python-debug -%endif -%endif - - -# ====================================================== -# Checks for packaging issues -# ====================================================== - -%check - -# first of all, check timestamps of bytecode files -find %{buildroot} -type f -a -name "*.py" -print0 | \ - LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \ - PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \ - xargs -0 %{buildroot}%{_bindir}/python%{pybasever} %{SOURCE8} - -# Ensure that the curses module was linked against libncursesw.so, rather than -# libncurses.so -# See https://bugzilla.redhat.com/show_bug.cgi?id=539917 -ldd %{buildroot}/%{dynload_dir}/_curses*.so \ - | grep curses \ - | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1) - -# Ensure that the debug modules are linked against the debug libpython, and -# likewise for the optimized modules and libpython: -for Module in %{buildroot}/%{dynload_dir}/*.so ; do - case $Module in - *.%{SOABI_debug}) - ldd $Module | grep %{py_INSTSONAME_optimized} && - (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1) - - ;; - *.%{SOABI_optimized}) - ldd $Module | grep %{py_INSTSONAME_debug} && - (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1) - ;; - esac -done - - -# ====================================================== -# Running the upstream test suite -# ====================================================== - -topdir=$(pwd) -CheckPython() { - ConfName=$1 - ConfDir=$(pwd)/build/$ConfName - - echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName - - # Note that we're running the tests using the version of the code in the - # builddir, not in the buildroot. - - # Show some info, helpful for debugging test failures - LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.pythoninfo - - # Run the upstream test suite - # test_gdb skipped on s390x: - # https://bugzilla.redhat.com/show_bug.cgi?id=1678277 - # test_gdb skipped everywhere: - # https://bugzilla.redhat.com/show_bug.cgi?id=1734327 - # test_distutils - # distutils.tests.test_bdist_rpm tests fail when bootstraping the Python - # package: rpmbuild requires /usr/bin/pythonX.Y to be installed - LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ - -wW --slowest -j0 \ - %if %{with bootstrap} - -x test_distutils \ - %endif - -x test_gdb \ - %ifarch %{mips64} - -x test_ctypes \ - %endif - - echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName - -} - -%if %{with tests} - -# Check each of the configurations: -%if %{with debug_build} -CheckPython debug -%endif # with debug_build -CheckPython optimized - -%endif # with tests - - -%files -%doc README.rst - -%if %{without flatpackage} -%{_bindir}/pydoc* -%{_bindir}/python3 -%else -%{_bindir}/pydoc%{pybasever} -%endif - -%{_bindir}/python%{pybasever} -%{_bindir}/python%{LDVERSION_optimized} -%{_mandir}/*/*3* - - -%if %{without flatpackage} -%files -n python-unversioned-command -%{_bindir}/python -%{_mandir}/*/python.1* - -%files libs -%doc README.rst -%endif - -%dir %{pylibdir} -%dir %{dynload_dir} - -%license %{pylibdir}/LICENSE.txt - -%{pylibdir}/lib2to3 -%if %{without flatpackage} -%exclude %{pylibdir}/lib2to3/tests -%endif - -%dir %{pylibdir}/unittest/ -%dir %{pylibdir}/unittest/__pycache__/ -%{pylibdir}/unittest/*.py -%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/asyncio/ -%dir %{pylibdir}/asyncio/__pycache__/ -%{pylibdir}/asyncio/*.py -%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/venv/ -%dir %{pylibdir}/venv/__pycache__/ -%{pylibdir}/venv/*.py -%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes} -%{pylibdir}/venv/scripts - -%{pylibdir}/wsgiref -%{pylibdir}/xmlrpc - -%dir %{pylibdir}/ensurepip/ -%dir %{pylibdir}/ensurepip/__pycache__/ -%{pylibdir}/ensurepip/*.py -%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes} - -%if %{with rpmwheels} -%exclude %{pylibdir}/ensurepip/_bundled -%else -%dir %{pylibdir}/ensurepip/_bundled -%{pylibdir}/ensurepip/_bundled/*.whl -%endif - -%dir %{pylibdir}/concurrent/ -%dir %{pylibdir}/concurrent/__pycache__/ -%{pylibdir}/concurrent/*.py -%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/concurrent/futures/ -%dir %{pylibdir}/concurrent/futures/__pycache__/ -%{pylibdir}/concurrent/futures/*.py -%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes} - -%{pylibdir}/pydoc_data - -%{dynload_dir}/_blake2.%{SOABI_optimized}.so -%{dynload_dir}/_md5.%{SOABI_optimized}.so -%{dynload_dir}/_sha1.%{SOABI_optimized}.so -%{dynload_dir}/_sha256.%{SOABI_optimized}.so -%{dynload_dir}/_sha3.%{SOABI_optimized}.so -%{dynload_dir}/_sha512.%{SOABI_optimized}.so - -%{dynload_dir}/_asyncio.%{SOABI_optimized}.so -%{dynload_dir}/_bisect.%{SOABI_optimized}.so -%{dynload_dir}/_bz2.%{SOABI_optimized}.so -%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so -%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so -%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so -%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so -%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so -%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so -%{dynload_dir}/_contextvars.%{SOABI_optimized}.so -%{dynload_dir}/_crypt.%{SOABI_optimized}.so -%{dynload_dir}/_csv.%{SOABI_optimized}.so -%{dynload_dir}/_ctypes.%{SOABI_optimized}.so -%{dynload_dir}/_curses.%{SOABI_optimized}.so -%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so -%{dynload_dir}/_dbm.%{SOABI_optimized}.so -%{dynload_dir}/_decimal.%{SOABI_optimized}.so -%{dynload_dir}/_elementtree.%{SOABI_optimized}.so -%if %{with gdbm} -%{dynload_dir}/_gdbm.%{SOABI_optimized}.so -%endif -%{dynload_dir}/_hashlib.%{SOABI_optimized}.so -%{dynload_dir}/_heapq.%{SOABI_optimized}.so -%{dynload_dir}/_json.%{SOABI_optimized}.so -%{dynload_dir}/_lsprof.%{SOABI_optimized}.so -%{dynload_dir}/_lzma.%{SOABI_optimized}.so -%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so -%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so -%{dynload_dir}/_opcode.%{SOABI_optimized}.so -%{dynload_dir}/_pickle.%{SOABI_optimized}.so -%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so -%{dynload_dir}/_queue.%{SOABI_optimized}.so -%{dynload_dir}/_random.%{SOABI_optimized}.so -%{dynload_dir}/_socket.%{SOABI_optimized}.so -%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so -%{dynload_dir}/_ssl.%{SOABI_optimized}.so -%{dynload_dir}/_struct.%{SOABI_optimized}.so -%{dynload_dir}/array.%{SOABI_optimized}.so -%{dynload_dir}/audioop.%{SOABI_optimized}.so -%{dynload_dir}/binascii.%{SOABI_optimized}.so -%{dynload_dir}/cmath.%{SOABI_optimized}.so -%{dynload_dir}/_datetime.%{SOABI_optimized}.so -%{dynload_dir}/fcntl.%{SOABI_optimized}.so -%{dynload_dir}/grp.%{SOABI_optimized}.so -%{dynload_dir}/math.%{SOABI_optimized}.so -%{dynload_dir}/mmap.%{SOABI_optimized}.so -%{dynload_dir}/nis.%{SOABI_optimized}.so -%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so -%{dynload_dir}/parser.%{SOABI_optimized}.so -%{dynload_dir}/_posixshmem.%{SOABI_optimized}.so -%{dynload_dir}/pyexpat.%{SOABI_optimized}.so -%{dynload_dir}/readline.%{SOABI_optimized}.so -%{dynload_dir}/resource.%{SOABI_optimized}.so -%{dynload_dir}/select.%{SOABI_optimized}.so -%{dynload_dir}/spwd.%{SOABI_optimized}.so -%{dynload_dir}/syslog.%{SOABI_optimized}.so -%{dynload_dir}/termios.%{SOABI_optimized}.so -%{dynload_dir}/unicodedata.%{SOABI_optimized}.so -%{dynload_dir}/_uuid.%{SOABI_optimized}.so -%{dynload_dir}/xxlimited.%{SOABI_optimized}.so -%{dynload_dir}/_xxsubinterpreters.%{SOABI_optimized}.so -%{dynload_dir}/zlib.%{SOABI_optimized}.so - -%dir %{pylibdir}/site-packages/ -%dir %{pylibdir}/site-packages/__pycache__/ -%{pylibdir}/site-packages/README.txt -%{pylibdir}/*.py -%dir %{pylibdir}/__pycache__/ -%{pylibdir}/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/collections/ -%dir %{pylibdir}/collections/__pycache__/ -%{pylibdir}/collections/*.py -%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/ctypes/ -%dir %{pylibdir}/ctypes/__pycache__/ -%{pylibdir}/ctypes/*.py -%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes} -%{pylibdir}/ctypes/macholib - -%{pylibdir}/curses - -%dir %{pylibdir}/dbm/ -%dir %{pylibdir}/dbm/__pycache__/ -%{pylibdir}/dbm/*.py -%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/distutils/ -%dir %{pylibdir}/distutils/__pycache__/ -%{pylibdir}/distutils/*.py -%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes} -%{pylibdir}/distutils/README -%{pylibdir}/distutils/command - -%dir %{pylibdir}/email/ -%dir %{pylibdir}/email/__pycache__/ -%{pylibdir}/email/*.py -%{pylibdir}/email/__pycache__/*%{bytecode_suffixes} -%{pylibdir}/email/mime -%doc %{pylibdir}/email/architecture.rst - -%{pylibdir}/encodings - -%{pylibdir}/html -%{pylibdir}/http - -%dir %{pylibdir}/importlib/ -%dir %{pylibdir}/importlib/__pycache__/ -%{pylibdir}/importlib/*.py -%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/importlib/metadata/ -%dir %{pylibdir}/importlib/metadata/__pycache__/ -%{pylibdir}/importlib/metadata/*.py -%{pylibdir}/importlib/metadata/__pycache__/*%{bytecode_suffixes} - -%dir %{pylibdir}/json/ -%dir %{pylibdir}/json/__pycache__/ -%{pylibdir}/json/*.py -%{pylibdir}/json/__pycache__/*%{bytecode_suffixes} - -%{pylibdir}/logging -%{pylibdir}/multiprocessing - -%dir %{pylibdir}/sqlite3/ -%dir %{pylibdir}/sqlite3/__pycache__/ -%{pylibdir}/sqlite3/*.py -%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes} - -%if %{without flatpackage} -%exclude %{pylibdir}/turtle.py -%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes} -%endif - -%{pylibdir}/urllib -%{pylibdir}/xml - -%if "%{_lib}" == "lib64" -%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever} -%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages -%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/ -%endif - -# "Makefile" and the config-32/64.h file are needed by -# distutils/sysconfig.py:_init_posix(), so we include them in the core -# package, along with their parent directories (bug 531901): -%dir %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/ -%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile -%dir %{_includedir}/python%{LDVERSION_optimized}/ -%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h} - -%{_libdir}/%{py_INSTSONAME_optimized} -%if %{without flatpackage} -%{_libdir}/libpython3.so -%endif - - -%if %{without flatpackage} -%files devel -%{_bindir}/2to3 -%endif - -%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/* -%if %{without flatpackage} -%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile -%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h} -%endif -%{_includedir}/python%{LDVERSION_optimized}/*.h -%{_includedir}/python%{LDVERSION_optimized}/internal/ -%{_includedir}/python%{LDVERSION_optimized}/cpython/ -%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit - -%if %{without flatpackage} -%{_bindir}/python3-config -%{_bindir}/python-config -%{_libdir}/pkgconfig/python3.pc -%{_libdir}/pkgconfig/python.pc -%{_libdir}/pkgconfig/python3-embed.pc -%{_bindir}/pathfix.py -%{_bindir}/pygettext3.py -%{_bindir}/pygettext.py -%{_bindir}/msgfmt3.py -%{_bindir}/msgfmt.py -%endif - -%{_bindir}/pygettext%{pybasever}.py -%{_bindir}/msgfmt%{pybasever}.py - -%{_bindir}/python%{pybasever}-config -%{_bindir}/python%{LDVERSION_optimized}-config -%{_bindir}/python%{LDVERSION_optimized}-*-config -%{_libdir}/libpython%{LDVERSION_optimized}.so -%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc -%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}-embed.pc -%{_libdir}/pkgconfig/python-%{pybasever}.pc -%{_libdir}/pkgconfig/python-%{pybasever}-embed.pc - - -%if %{without flatpackage} -%files idle - -%{_bindir}/idle* -%else -%{_bindir}/idle%{pybasever} -%endif - -%{pylibdir}/idlelib - -%if %{without flatpackage} -%{_metainfodir}/idle3.appdata.xml -%{_datadir}/applications/idle3.desktop -%{_datadir}/icons/hicolor/*/apps/idle3.* -%endif - -%if %{without flatpackage} -%files tkinter -%endif - -%{pylibdir}/tkinter -%if %{without flatpackage} -%exclude %{pylibdir}/tkinter/test -%endif -%{dynload_dir}/_tkinter.%{SOABI_optimized}.so -%{pylibdir}/turtle.py -%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes} -%dir %{pylibdir}/turtledemo -%{pylibdir}/turtledemo/*.py -%{pylibdir}/turtledemo/*.cfg -%dir %{pylibdir}/turtledemo/__pycache__/ -%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes} - - -%if %{without flatpackage} -%files test -%endif - -%{pylibdir}/ctypes/test -%{pylibdir}/distutils/tests -%{pylibdir}/sqlite3/test -%{pylibdir}/test -%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so -%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so -%{dynload_dir}/_testcapi.%{SOABI_optimized}.so -%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so -%{dynload_dir}/_testinternalcapi.%{SOABI_optimized}.so -%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so -%{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so -%{pylibdir}/lib2to3/tests -%{pylibdir}/tkinter/test -%{pylibdir}/unittest/test - -# We don't bother splitting the debug build out into further subpackages: -# if you need it, you're probably a developer. - -# Hence the manifest is the combination of analogous files in the manifests of -# all of the other subpackages - -%if %{with debug_build} -%if %{without flatpackage} -%files debug -%{_bindir}/python3-debug -%{_bindir}/python-debug -%endif - -# Analog of the core subpackage's files: -%{_bindir}/python%{LDVERSION_debug} - -# Analog of the -libs subpackage's files: -# ...with debug builds of the built-in "extension" modules: - -%{dynload_dir}/_blake2.%{SOABI_debug}.so -%{dynload_dir}/_md5.%{SOABI_debug}.so -%{dynload_dir}/_sha1.%{SOABI_debug}.so -%{dynload_dir}/_sha256.%{SOABI_debug}.so -%{dynload_dir}/_sha3.%{SOABI_debug}.so -%{dynload_dir}/_sha512.%{SOABI_debug}.so - -%{dynload_dir}/_asyncio.%{SOABI_debug}.so -%{dynload_dir}/_bisect.%{SOABI_debug}.so -%{dynload_dir}/_bz2.%{SOABI_debug}.so -%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so -%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so -%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so -%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so -%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so -%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so -%{dynload_dir}/_contextvars.%{SOABI_debug}.so -%{dynload_dir}/_crypt.%{SOABI_debug}.so -%{dynload_dir}/_csv.%{SOABI_debug}.so -%{dynload_dir}/_ctypes.%{SOABI_debug}.so -%{dynload_dir}/_curses.%{SOABI_debug}.so -%{dynload_dir}/_curses_panel.%{SOABI_debug}.so -%{dynload_dir}/_dbm.%{SOABI_debug}.so -%{dynload_dir}/_decimal.%{SOABI_debug}.so -%{dynload_dir}/_elementtree.%{SOABI_debug}.so -%if %{with gdbm} -%{dynload_dir}/_gdbm.%{SOABI_debug}.so -%endif -%{dynload_dir}/_hashlib.%{SOABI_debug}.so -%{dynload_dir}/_heapq.%{SOABI_debug}.so -%{dynload_dir}/_json.%{SOABI_debug}.so -%{dynload_dir}/_lsprof.%{SOABI_debug}.so -%{dynload_dir}/_lzma.%{SOABI_debug}.so -%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so -%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so -%{dynload_dir}/_opcode.%{SOABI_debug}.so -%{dynload_dir}/_pickle.%{SOABI_debug}.so -%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so -%{dynload_dir}/_queue.%{SOABI_debug}.so -%{dynload_dir}/_random.%{SOABI_debug}.so -%{dynload_dir}/_socket.%{SOABI_debug}.so -%{dynload_dir}/_sqlite3.%{SOABI_debug}.so -%{dynload_dir}/_ssl.%{SOABI_debug}.so -%{dynload_dir}/_struct.%{SOABI_debug}.so -%{dynload_dir}/array.%{SOABI_debug}.so -%{dynload_dir}/audioop.%{SOABI_debug}.so -%{dynload_dir}/binascii.%{SOABI_debug}.so -%{dynload_dir}/cmath.%{SOABI_debug}.so -%{dynload_dir}/_datetime.%{SOABI_debug}.so -%{dynload_dir}/fcntl.%{SOABI_debug}.so -%{dynload_dir}/grp.%{SOABI_debug}.so -%{dynload_dir}/math.%{SOABI_debug}.so -%{dynload_dir}/mmap.%{SOABI_debug}.so -%{dynload_dir}/nis.%{SOABI_debug}.so -%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so -%{dynload_dir}/parser.%{SOABI_debug}.so -%{dynload_dir}/_posixshmem.%{SOABI_debug}.so -%{dynload_dir}/pyexpat.%{SOABI_debug}.so -%{dynload_dir}/readline.%{SOABI_debug}.so -%{dynload_dir}/resource.%{SOABI_debug}.so -%{dynload_dir}/select.%{SOABI_debug}.so -%{dynload_dir}/spwd.%{SOABI_debug}.so -%{dynload_dir}/syslog.%{SOABI_debug}.so -%{dynload_dir}/termios.%{SOABI_debug}.so -%{dynload_dir}/unicodedata.%{SOABI_debug}.so -%{dynload_dir}/_uuid.%{SOABI_debug}.so -%{dynload_dir}/_xxsubinterpreters.%{SOABI_debug}.so -%{dynload_dir}/_xxtestfuzz.%{SOABI_debug}.so -%{dynload_dir}/zlib.%{SOABI_debug}.so - -# No need to split things out the "Makefile" and the config-32/64.h file as we -# do for the regular build above (bug 531901), since they're all in one package -# now; they're listed below, under "-devel": - -%{_libdir}/%{py_INSTSONAME_debug} - -# Analog of the -devel subpackage's files: -%{pylibdir}/config-%{LDVERSION_debug}-%{_arch}-linux%{_gnu} -%{_includedir}/python%{LDVERSION_debug} -%{_bindir}/python%{LDVERSION_debug}-config -%{_bindir}/python%{LDVERSION_debug}-*-config -%{_libdir}/libpython%{LDVERSION_debug}.so -%{_libdir}/libpython%{LDVERSION_debug}.so.1.0 -%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc -%{_libdir}/pkgconfig/python-%{LDVERSION_debug}-embed.pc - -# Analog of the -tools subpackage's files: -# None for now; we could build precanned versions that have the appropriate -# shebang if needed - -# Analog of the tkinter subpackage's files: -%{dynload_dir}/_tkinter.%{SOABI_debug}.so - -# Analog of the -test subpackage's files: -%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so -%{dynload_dir}/_testbuffer.%{SOABI_debug}.so -%{dynload_dir}/_testcapi.%{SOABI_debug}.so -%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so -%{dynload_dir}/_testinternalcapi.%{SOABI_debug}.so -%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so - -%endif # with debug_build - -# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig -# See https://bugzilla.redhat.com/show_bug.cgi?id=562980 -# -# The /usr/lib/rpm/redhat/macros defines %%__debug_package to use -# debugfiles.list, and it appears that everything below /usr/lib/debug and -# (/usr/src/debug) gets added to this file (via LISTFILES) in -# /usr/lib/rpm/find-debuginfo.sh -# -# Hence by installing it below /usr/lib/debug we ensure it is added to the -# -debuginfo subpackage -# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py -# payload file would be unpackaged) - -# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1476593 -%undefine _debuginfo_subpackages - -# ====================================================== -# Finally, the changelog: -# ====================================================== - -%changelog -* Mon Jul 29 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~b3-1 -- Update to 3.8.0b3 - -* Fri Jul 26 2019 Fedora Release Engineering releng@fedoraproject.org - 3.8.0~b2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Jul 05 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~b2-1 -- Update to 3.8.0b2 - -* Wed Jun 05 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~b1-1 -- Update to 3.8.0b1 - -* Fri May 17 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~a4-2 -- Remove a faulty patch that resulted in invalid value of - distutils.sysconfig.get_config_var('LIBPL') (#1710767) - -* Tue May 07 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~a4-1 -- Update to 3.8.0a4 - -* Tue Mar 26 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~a3-1 -- Update to 3.8.0a3 - -* Mon Feb 25 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~a2-1 -- Update to 3.8.0a2 - -* Mon Feb 18 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~a1-3 -- Reduced default build flags used to build extension modules - https://fedoraproject.org/wiki/Changes/Python_Extension_Flags - -* Sun Feb 17 2019 Igor Gnatenko ignatenkobrain@fedoraproject.org - 3.8.0~a1-2 -- Rebuild for readline 8.0 - -* Tue Feb 05 2019 Miro Hronok mhroncok@redhat.com - 3.8.0~a1-1 -- Update to 3.8.0a1 diff --git a/sources b/sources deleted file mode 100644 index 58d4f5b..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (Python-3.8.0b3.tar.xz) = 5b29e580514704150b397850b5bf5f3e4b98a45d9a9f8ac0364bef51caac74862f9f349b5d3d1bbcdcc5b48b2722f1a9e5e0a9837bf44360fe74a396e915ae35 diff --git a/tests/.fmf/version b/tests/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/tests/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/tests/provision.fmf b/tests/provision.fmf deleted file mode 100644 index 1a4f0f0..0000000 --- a/tests/provision.fmf +++ /dev/null @@ -1,4 +0,0 @@ ---- -standard-inventory-qcow2: - qemu: - m: 3G # Amount of VM memory diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 6d53a9c..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - repositories: - - repo: "https://src.fedoraproject.org/tests/python.git" - dest: "python" - tests: - - smoke: - dir: python/smoke - run: VERSION=3.8 ./venv.sh - - selftest: - dir: python/selftest - run: VERSION=3.8 X="-x test_wsgiref" ./parallel.sh - required_packages: - - gcc # for extension building in venv and selftest - - gdb # for test_gdb - - python38 # the test subject - - python3-tox # for venv tests - - glibc-all-langpacks # for locale tests