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=7e131d07a....
Change:
-%ifarch %{valgrind_arches}
Thanks.
Full change:
============
commit 7e131d07a3f07d410d3733fffc5bde6b2be7ab03
Author: Miro Hronok <miro(a)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(a)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(a)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(a)redhat.com>
-Co-authored-by: Thomas Spura <tomspur(a)fedoraproject.org>
-Co-authored-by: Slavek Kabrda <bkabrda(a)redhat.com>
-Co-authored-by: Matej Stuchlik <mstuchli(a)redhat.com>
-Co-authored-by: Tomas Orsava <torsava(a)redhat.com>
-Co-authored-by: Charalampos Stratakis <cstratak(a)redhat.com>
-Co-authored-by: Petr Viktorin <pviktori(a)redhat.com>
-Co-authored-by: Miro Hronok <miro(a)hroncok.cz>
-Co-authored-by: Iryna Shcherbina <shcherbina.iryna(a)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(a)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(a)redhat.com>
-Co-authored-by: Bohuslav Kabrda <bkabrda(a)redhat.com>
-Co-authored-by: Matej Stuchlik <mstuchli(a)redhat.com>
-Co-authored-by: Robert Kuska <rkuska(a)redhat.com>
-Co-authored-by: Charalampos Stratakis <cstratak(a)redhat.com>
-Co-authored-by: Miro Hronok <miro(a)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(a)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(a)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(a)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(a)redhat.com>
-Co-authored-by: Miro Hronok <miro(a)hroncok.cz>
-Co-authored-by: Tomas Orsava <torsava(a)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(a)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#comm...
----
- 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&...
- <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(a)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/%{general_version}/Python-%{upstream_ve...
-
-# 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#comm...
-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_...
-#
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_...
-#
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_...
-# 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(a)redhat.com> - 3.8.0~b3-1
-- Update to 3.8.0b3
-
-* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> -
3.8.0~b2-2
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Fri Jul 05 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.8.0~b2-1
-- Update to 3.8.0b2
-
-* Wed Jun 05 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.8.0~b1-1
-- Update to 3.8.0b1
-
-* Fri May 17 2019 Miro Hronok <mhroncok(a)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(a)redhat.com> - 3.8.0~a4-1
-- Update to 3.8.0a4
-
-* Tue Mar 26 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.8.0~a3-1
-- Update to 3.8.0a3
-
-* Mon Feb 25 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.8.0~a2-1
-- Update to 3.8.0a2
-
-* Mon Feb 18 2019 Miro Hronok <mhroncok(a)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(a)fedoraproject.org> - 3.8.0~a1-2
-- Rebuild for readline 8.0
-
-* Tue Feb 05 2019 Miro Hronok <mhroncok(a)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