Blame SPECS/python.spec

2a6dbc
# ======================================================
2a6dbc
# Conditionals and other variables controlling the build
2a6dbc
# ======================================================
2a6dbc
2a6dbc
# NOTES ON BOOTSTRAPING PYTHON 3.6:
2a6dbc
#
2a6dbc
# Due to dependency cycle between Python, pip, setuptools and
2a6dbc
# wheel caused by the rewheel patch, one has to build in the
2a6dbc
# following order:
2a6dbc
#
2a6dbc
# 1) python3 with with_rewheel set to 0
2a6dbc
# 2) python3-setuptools and python3-pip with with_rewheel set to 0
2a6dbc
# 3) python3-wheel
2a6dbc
# 4) python3-setuptools and python3-pip with with_rewheel set to 1
2a6dbc
# 5) python3 with with_rewheel set to 1
2a6dbc
2a6dbc
%global with_rewheel 1
2a6dbc
2a6dbc
%{!?scl:%global pkg_name %{name}}
2a6dbc
%{?scl:%scl_package python}
2a6dbc
# Turn off default SCL bytecompiling.
2a6dbc
%{?scl:%global _turn_off_bytecompile 1}
2a6dbc
2a6dbc
2a6dbc
%global pybasever 3.6
2a6dbc
2a6dbc
# pybasever without the dot:
2a6dbc
%global pyshortver 36
2a6dbc
2a6dbc
%global pylibdir %{_libdir}/python%{pybasever}
2a6dbc
%global dynload_dir %{pylibdir}/lib-dynload
2a6dbc
2a6dbc
# SOABI is defined in the upstream configure.in from Python-3.2a2 onwards,
2a6dbc
# for PEP 3149:
2a6dbc
#   http://www.python.org/dev/peps/pep-3149/
2a6dbc
2a6dbc
# ("configure.in" became "configure.ac" in Python 3.3 onwards, and in
2a6dbc
# backports)
2a6dbc
2a6dbc
# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
2a6dbc
# With Python 3.3, we lose the "u" suffix due to PEP 393
2a6dbc
%global ABIFLAGS_optimized m
2a6dbc
%global ABIFLAGS_debug     dm
2a6dbc
2a6dbc
%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
2a6dbc
%global LDVERSION_debug     %{pybasever}%{ABIFLAGS_debug}
2a6dbc
2a6dbc
%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
2a6dbc
%global SOABI_debug     cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
2a6dbc
2a6dbc
# All bytecode files are now in a __pycache__ subdirectory, with a name
2a6dbc
# reflecting the version of the bytecode (to permit sharing of python libraries
2a6dbc
# between different runtimes)
2a6dbc
# See http://www.python.org/dev/peps/pep-3147/
2a6dbc
# For example,
2a6dbc
#   foo/bar.py
2a6dbc
# now has bytecode at:
2a6dbc
#   foo/__pycache__/bar.cpython-36.pyc
2a6dbc
#   foo/__pycache__/bar.cpython-36.opt-1.pyc
2a6dbc
#   foo/__pycache__/bar.cpython-36.opt-2.pyc
2a6dbc
%global bytecode_suffixes .cpython-36*.pyc
2a6dbc
2a6dbc
# Python's configure script defines SOVERSION, and this is used in the Makefile
2a6dbc
# to determine INSTSONAME, the name of the libpython DSO:
2a6dbc
#   LDLIBRARY='libpython$(VERSION).so'
2a6dbc
#   INSTSONAME="$LDLIBRARY".$SOVERSION
2a6dbc
# We mirror this here in order to make it easier to add the -gdb.py hooks.
2a6dbc
# (if these get out of sync, the payload of the libs subpackage will fail
2a6dbc
# and halt the build)
2a6dbc
%global py_SOVERSION %{scl}-1.0
2a6dbc
%global py_INSTSONAME_optimized libpython%{LDVERSION_optimized}.so.%{py_SOVERSION}
2a6dbc
%global py_INSTSONAME_debug     libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
2a6dbc
2a6dbc
%global with_debug_build 1
2a6dbc
2a6dbc
%global with_gdb_hooks 1
2a6dbc
2a6dbc
# some arches don't have valgrind so we need to disable its support on them
2a6dbc
%ifnarch s390 %{mips} riscv64
2a6dbc
%global with_valgrind 1
2a6dbc
%else
2a6dbc
%global with_valgrind 0
2a6dbc
%endif
2a6dbc
2a6dbc
%global with_gdbm 1
2a6dbc
2a6dbc
# Change from yes to no to turn this off
2a6dbc
%global with_computed_gotos yes
2a6dbc
2a6dbc
# Turn this to 0 to turn off the "check" phase:
2a6dbc
%global run_selftest_suite 1
2a6dbc
2a6dbc
# We want to byte-compile the .py files within the packages using the new
2a6dbc
# python3 binary.
2a6dbc
#
2a6dbc
# Unfortunately, rpmbuild's infrastructure requires us to jump through some
2a6dbc
# hoops to avoid byte-compiling with the system python 2 version:
2a6dbc
#   /usr/lib/rpm/redhat/macros sets up build policy that (amongst other things)
2a6dbc
# defines __os_install_post.  In particular, "brp-python-bytecompile" is
2a6dbc
# invoked without an argument thus using the wrong version of python
2a6dbc
# (/usr/bin/python, rather than the freshly built python), thus leading to
2a6dbc
# numerous syntax errors, and incorrect magic numbers in the .pyc files.  We
2a6dbc
# thus override __os_install_post to avoid invoking this script:
2a6dbc
%global __os_install_post /usr/lib/rpm/brp-%{?scl:scl-}compress %{?_scl_root}\
2a6dbc
  %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
2a6dbc
  /usr/lib/rpm/brp-strip-static-archive %{__strip} \
2a6dbc
  /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
2a6dbc
  /usr/lib/rpm/redhat/brp-python-hardlink
2a6dbc
# to remove the invocation of brp-python-bytecompile, whilst keeping the
2a6dbc
# invocation of brp-python-hardlink (since this should still work for python3
2a6dbc
# pyc/pyo files)
2a6dbc
2a6dbc
# These two macros are defined in the `macros.python3` file, part of python-devel.
2a6dbc
# We define them here as well so they are available when building Python
2a6dbc
# itself, as Python does not have a BuildRequires on the `python-devel` package
2a6dbc
# and thus it's not part of its buildroot.
2a6dbc
# Adding a build-time dependency on `python-devel` was contemplated but decided
2a6dbc
# against because it could create hard-to-debug issues: python-devel installs
2a6dbc
# header files into the buildroot which could be then mistakenly used during
2a6dbc
# the building of a newer Python version if there is a bug in the build
2a6dbc
# scripts.
2a6dbc
# Note that the macros point to a file in the buildroot which will already be
2a6dbc
# copied there by the time this macros are invoked in %%__os_install_post.
2a6dbc
%{?scl:%global python36_python_provides %{buildroot}%{_root_prefix}/lib/rpm/pythondeps-scl-36.sh --provides %{scl}-}
2a6dbc
%{?scl:%global python36_python_requires %{buildroot}%{_root_prefix}/lib/rpm/pythondeps-scl-36.sh --requires %{scl}-}
2a6dbc
2a6dbc
2a6dbc
# ==================
2a6dbc
# Top-level metadata
2a6dbc
# ==================
2a6dbc
Summary: Version 3 of the Python programming language aka Python 3000
2a6dbc
Name: %{?scl_prefix}python
2a6dbc
Version: %{pybasever}.3
b13608
Release: 7%{?dist}
2a6dbc
License: Python
2a6dbc
Group: Development/Languages
2a6dbc
2a6dbc
2a6dbc
# =======================
2a6dbc
# Build-time requirements
2a6dbc
# =======================
2a6dbc
2a6dbc
# (keep this list alphabetized)
2a6dbc
2a6dbc
%{?scl:BuildRequires: %{scl}-runtime}
2a6dbc
BuildRequires: autoconf
2a6dbc
BuildRequires: bluez-libs-devel
2a6dbc
BuildRequires: bzip2
2a6dbc
BuildRequires: bzip2-devel
2a6dbc
BuildRequires: libdb-devel
2a6dbc
2a6dbc
# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME.  We use
2a6dbc
# it (in pyexpat) in order to enable the fix in Python-3.2.3 for CVE-2012-0876:
2a6dbc
BuildRequires: expat-devel
2a6dbc
2a6dbc
BuildRequires: findutils
2a6dbc
BuildRequires: gcc-c++
2a6dbc
%if %{with_gdbm}
2a6dbc
BuildRequires: gdbm-devel
2a6dbc
%endif
2a6dbc
BuildRequires: glibc-devel
2a6dbc
BuildRequires: gmp-devel
2a6dbc
BuildRequires: libffi-devel
2a6dbc
BuildRequires: libGL-devel
2a6dbc
BuildRequires: libX11-devel
2a6dbc
BuildRequires: ncurses-devel
2a6dbc
# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
2a6dbc
BuildRequires: net-tools
2a6dbc
BuildRequires: openssl-devel
2a6dbc
BuildRequires: pkgconfig
2a6dbc
BuildRequires: readline-devel
2a6dbc
BuildRequires: sqlite-devel
2a6dbc
2a6dbc
BuildRequires: systemtap-sdt-devel
2a6dbc
BuildRequires: systemtap-devel
2a6dbc
# (this introduces a dependency on "python", in that systemtap-sdt-devel's
2a6dbc
# /usr/bin/dtrace is a python 2 script)
2a6dbc
%global tapsetdir      %{_datadir}/systemtap/tapset
2a6dbc
2a6dbc
BuildRequires: tar
2a6dbc
BuildRequires: tcl-devel
2a6dbc
BuildRequires: tix-devel
2a6dbc
BuildRequires: tk-devel
2a6dbc
2a6dbc
%if 0%{?with_valgrind}
2a6dbc
BuildRequires: valgrind-devel
2a6dbc
%endif
2a6dbc
2a6dbc
BuildRequires: xz-devel
2a6dbc
BuildRequires: zlib-devel
2a6dbc
2a6dbc
%if 0%{?with_rewheel}
2a6dbc
BuildRequires: %{?scl_prefix}python-setuptools
2a6dbc
BuildRequires: %{?scl_prefix}python-pip
2a6dbc
%endif
2a6dbc
2a6dbc
2a6dbc
# =======================
2a6dbc
# Source code and patches
2a6dbc
# =======================
2a6dbc
2a6dbc
Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
2a6dbc
2a6dbc
# Avoid having various bogus auto-generated Provides lines for the various
2a6dbc
# python c modules' SONAMEs:
2a6dbc
2a6dbc
# Supply various useful macros for building python 3 modules:
2a6dbc
#  __python3, python3_sitelib, python3_sitearch
2a6dbc
Source2: macros.python3
2a6dbc
2a6dbc
# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
2a6dbc
# to enable specfiles to selectively byte-compile individual files and paths
2a6dbc
# with different Python runtimes as necessary:
2a6dbc
Source3: macros.pybytecompile
2a6dbc
2a6dbc
# Systemtap tapset to make it easier to use the systemtap static probes
2a6dbc
# (actually a template; LIBRARY_PATH will get fixed up during install)
2a6dbc
# Written by dmalcolm; not yet sent upstream
2a6dbc
Source5: libpython.stp
2a6dbc
2a6dbc
# Example systemtap script using the tapset
2a6dbc
# Written by wcohen, mjw, dmalcolm; not yet sent upstream
2a6dbc
Source6: systemtap-example.stp
2a6dbc
2a6dbc
# Another example systemtap script that uses the tapset
2a6dbc
# Written by dmalcolm; not yet sent upstream
2a6dbc
Source7: pyfuntop.stp
2a6dbc
2a6dbc
# SCL-custom version of pythondeps.sh
2a6dbc
# Append 36 to not collide with python27 SCL
2a6dbc
Source8: pythondeps-scl-36.sh
2a6dbc
2a6dbc
# Append 36 for the same reason here
2a6dbc
Source9: brp-python-bytecompile-with-scl-python-36
2a6dbc
2a6dbc
# A simple script to check timestamps of bytecode files
2a6dbc
# Run in check section with Python that is currently being built
2a6dbc
# Written by bkabrda
2a6dbc
Source10:  check-pyc-and-pyo-timestamps.py
2a6dbc
2a6dbc
# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
2a6dbc
# Was Patch0 in ivazquez' python3000 specfile:
2a6dbc
Patch1:         Python-3.1.1-rpath.patch
2a6dbc
2a6dbc
# 00055 #
2a6dbc
# Systemtap support: add statically-defined probe points
2a6dbc
# Patch sent upstream as http://bugs.python.org/issue14776
2a6dbc
# with some subsequent reworking to cope with LANG=C in an rpmbuild
2a6dbc
# (where sys.getfilesystemencoding() == 'ascii')
2a6dbc
Patch55: 00055-systemtap.patch
2a6dbc
2a6dbc
Patch102: 00102-lib64.patch
2a6dbc
2a6dbc
# 00104 #
2a6dbc
# Only used when "%%{_lib}" == "lib64"
2a6dbc
# Another lib64 fix, for distutils/tests/test_install.py; not upstream:
2a6dbc
Patch104: 00104-lib64-fix-for-test_install.patch
2a6dbc
2a6dbc
# 00111 #
2a6dbc
# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
2a6dbc
# a libpythonMAJOR.MINOR.a (bug 550692):
2a6dbc
# Downstream only: not appropriate for upstream
2a6dbc
Patch111: 00111-no-static-lib.patch
2a6dbc
2a6dbc
# 00132 #
2a6dbc
# Add non-standard hooks to unittest for use in the "check" phase below, when
2a6dbc
# running selftests within the build:
2a6dbc
#   @unittest._skipInRpmBuild(reason)
2a6dbc
# for tests that hang or fail intermittently within the build environment, and:
2a6dbc
#   @unittest._expectedFailureInRpmBuild
2a6dbc
# for tests that always fail within the build environment
2a6dbc
#
2a6dbc
# The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the
2a6dbc
# environment, which we set manually in the appropriate portion of the "check"
2a6dbc
# phase below (and which potentially other python-* rpms could set, to reuse
2a6dbc
# these unittest hooks in their own "check" phases)
2a6dbc
Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
2a6dbc
2a6dbc
# 00137 #
2a6dbc
# Some tests within distutils fail when run in an rpmbuild:
2a6dbc
Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
2a6dbc
2a6dbc
# 00146 #
2a6dbc
# Support OpenSSL FIPS mode (e.g. when OPENSSL_FORCE_FIPS_MODE=1 is set)
2a6dbc
# - handle failures from OpenSSL (e.g. on attempts to use MD5 in a
2a6dbc
#   FIPS-enforcing environment)
2a6dbc
# - add a new "usedforsecurity" keyword argument to the various digest
2a6dbc
#   algorithms in hashlib so that you can whitelist a callsite with
2a6dbc
#   "usedforsecurity=False"
2a6dbc
# (sent upstream for python 3 as http://bugs.python.org/issue9216 ; see RHEL6
2a6dbc
# python patch 119)
2a6dbc
# - enforce usage of the _hashlib implementation: don't fall back to the _md5
2a6dbc
#   and _sha* modules (leading to clearer error messages if fips selftests
2a6dbc
#   fail)
2a6dbc
# - don't build the _md5 and _sha* modules; rely on the _hashlib implementation
2a6dbc
#   of hashlib
2a6dbc
# (rhbz#563986)
2a6dbc
# Note: Up to Python 3.4.0.b1, upstream had their own implementation of what
2a6dbc
# they assumed would become sha3. This patch was adapted to give it the
2a6dbc
# usedforsecurity argument, even though it did nothing (OpenSSL didn't have
2a6dbc
# sha3 implementation at that time).In 3.4.0.b2, sha3 implementation was reverted
2a6dbc
# (see http://bugs.python.org/issue16113), but the alterations were left in the
2a6dbc
# patch, since they may be useful again if upstream decides to rerevert sha3
2a6dbc
# implementation and OpenSSL still doesn't support it. For now, they're harmless.
2a6dbc
2a6dbc
# Patch is updated to be compatible with blake2 and shake algorithms
2a6dbc
2a6dbc
# As of python 3.6.3, upstream raises a ValueError when a hash function
2a6dbc
# fails to be initialized (e.g. in fips mode).
2a6dbc
# https://github.com/python/cpython/commit/31b8efeaa893e95358b71eb2b8365552d3966b4a
2a6dbc
# Since we carry downstream our own implementation of hashlib for fips mode
2a6dbc
# we remove the implementation that was introduced with python 3.6.3 for now.
2a6dbc
Patch146: 00146-hashlib-fips.patch
2a6dbc
2a6dbc
# 00155 #
2a6dbc
# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
2a6dbc
# generating SELinux denials on "import ctypes" and "import uuid" when
2a6dbc
# embedding Python within httpd (rhbz#814391)
2a6dbc
Patch155: 00155-avoid-ctypes-thunks.patch
2a6dbc
2a6dbc
# 00157 #
2a6dbc
# Update uid/gid handling throughout the standard library: uid_t and gid_t are
2a6dbc
# unsigned 32-bit values, but existing code often passed them through C long
2a6dbc
# values, which are signed 32-bit values on 32-bit architectures, leading to
2a6dbc
# negative int objects for uid/gid values >= 2^31 on 32-bit architectures.
2a6dbc
#
2a6dbc
# Introduce _PyObject_FromUid/Gid to convert uid_t/gid_t values to python
2a6dbc
# objects, using int objects where the value will fit (long objects otherwise),
2a6dbc
# and _PyArg_ParseUid/Gid to convert int/long to uid_t/gid_t, with -1 allowed
2a6dbc
# as a special case (since this is given special meaning by the chown syscall)
2a6dbc
#
2a6dbc
# Update standard library to use this throughout for uid/gid values, so that
2a6dbc
# very large uid/gid values are round-trippable, and -1 remains usable.
2a6dbc
# (rhbz#697470)
2a6dbc
Patch157: 00157-uid-gid-overflows.patch
2a6dbc
2a6dbc
# 00160 #
2a6dbc
# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
2a6dbc
# header files in the build chroot, but may not be supported in the running
2a6dbc
# kernel, hence we disable this test in an rpm build.
2a6dbc
# Adding these was upstream issue http://bugs.python.org/issue10142
2a6dbc
# Not yet sent upstream
2a6dbc
Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
2a6dbc
2a6dbc
# 00163 #
2a6dbc
# Some tests within test_socket fail intermittently when run inside Koji;
2a6dbc
# disable them using unittest._skipInRpmBuild
2a6dbc
# Not yet sent upstream
2a6dbc
Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch
2a6dbc
2a6dbc
# 00170 #
2a6dbc
# In debug builds, try to print repr() when a C-level assert fails in the
2a6dbc
# garbage collector (typically indicating a reference-counting error
2a6dbc
# somewhere else e.g in an extension module)
2a6dbc
# Backported to 2.7 from a patch I sent upstream for py3k
2a6dbc
#   http://bugs.python.org/issue9263  (rhbz#614680)
2a6dbc
# hiding the proposed new macros/functions within gcmodule.c to avoid exposing
2a6dbc
# them within the extension API.
2a6dbc
# (rhbz#850013
2a6dbc
Patch170: 00170-gc-assertions.patch
2a6dbc
2a6dbc
# 00178 #
2a6dbc
# Don't duplicate various FLAGS in sysconfig values
2a6dbc
# http://bugs.python.org/issue17679
2a6dbc
# Does not affect python2 AFAICS (different sysconfig values initialization)
2a6dbc
Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
2a6dbc
2a6dbc
# 00180 #
2a6dbc
# Enable building on ppc64p7
2a6dbc
# Not appropriate for upstream, Fedora-specific naming
2a6dbc
Patch180: 00180-python-add-support-for-ppc64p7.patch
2a6dbc
2a6dbc
# 00186 #
2a6dbc
# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=1023607
2a6dbc
# Previously, this fixed a problem where some *.py files were not being
2a6dbc
# bytecompiled properly during build. This was result of py_compile.compile
2a6dbc
# raising exception when trying to convert test file with bad encoding, and
2a6dbc
# thus not continuing bytecompilation for other files.
2a6dbc
# This was fixed upstream, but the test hasn't been merged yet, so we keep it
2a6dbc
Patch186: 00186-dont-raise-from-py_compile.patch
2a6dbc
2a6dbc
# 00188 #
2a6dbc
# Downstream only patch that should be removed when we compile all guaranteed
2a6dbc
# hashlib algorithms properly. The problem is this:
2a6dbc
# - during tests, test_hashlib is imported and executed before test_lib2to3
2a6dbc
# - if at least one hash function has failed, trying to import it triggers an
2a6dbc
#   exception that is being caught and exception is logged:
2a6dbc
#   http://hg.python.org/cpython/file/2de806c8b070/Lib/hashlib.py#l217
2a6dbc
# - logging the exception makes logging module run basicConfig
2a6dbc
# - when lib2to3 tests are run again, lib2to3 runs basicConfig again, which
2a6dbc
#   doesn't do anything, because it was run previously
2a6dbc
#   (logging.root.handlers != []), which means that the default setup
2a6dbc
#   (most importantly logging level) is not overriden. That means that a test
2a6dbc
#   relying on this will fail (test_filename_changing_on_output_single_dir)
2a6dbc
Patch188: 00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
2a6dbc
2a6dbc
# 00189 #
2a6dbc
# Add the rewheel module, allowing to recreate wheels from already installed
2a6dbc
# ones
2a6dbc
# https://github.com/bkabrda/rewheel
2a6dbc
Patch189: 00189-add-rewheel-module.patch
2a6dbc
2a6dbc
# 00205 #
2a6dbc
# LIBPL variable in makefile takes LIBPL from configure.ac
2a6dbc
# but the LIBPL variable defined there doesn't respect libdir macro
2a6dbc
Patch205: 00205-make-libpl-respect-lib64.patch
2a6dbc
2a6dbc
# 00206 #
2a6dbc
# Remove hf flag from arm triplet which is used
2a6dbc
# by debian but fedora infra uses only eabi without hf
2a6dbc
Patch206: 00206-remove-hf-from-arm-triplet.patch
2a6dbc
2a6dbc
# 00231 #
2a6dbc
# Add choices for sort option of cProfile for better output message
2a6dbc
# http://bugs.python.org/issue23420
2a6dbc
# Resolves: rhbz#1326287
2a6dbc
Patch231: 00231-cprofile-sort-option.patch
2a6dbc
2a6dbc
# 00243 #
2a6dbc
# Fix the triplet used on 64-bit MIPS
2a6dbc
# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
2a6dbc
# Upstream uses Debian-like style mips64-linux-gnuabi64
2a6dbc
# Fedora needs the default mips64-linux-gnu
2a6dbc
Patch243: 00243-fix-mips64-triplet.patch
2a6dbc
2a6dbc
# 00264 #
2a6dbc
# Fix pass by value for structs on 64-bit Cygwin/MinGW/aarch64
2a6dbc
# Fixed upstream: http://bugs.python.org/issue29804
2a6dbc
Patch264: 00264-fix-pass-by-value-for-structs-on-aarch64.patch
2a6dbc
2a6dbc
# 00277 #
2a6dbc
# Fix test_exception_errpipe_bad_data() and
2a6dbc
# test_exception_errpipe_normal() of test_subprocess: mock os.waitpid()
2a6dbc
# to avoid calling the real os.waitpid(0, 0) which is an unexpected
2a6dbc
# side effect of the test, which makes the brew builds hang.
2a6dbc
Patch277: 00277-fix-test-subprocess-hanging-tests.patch
2a6dbc
2a6dbc
# 00278 #
2a6dbc
# skip test_sha256 from test_socket, as it relies on the implementation
2a6dbc
# of kernel's crypto API  and the behaviour is not consistent for powerpc
2a6dbc
# architectures, making the test fail.
2a6dbc
# Reported upstream: https://bugs.python.org/issue31705
2a6dbc
Patch278: 00278-skip-test-sha256.patch
2a6dbc
2a6dbc
Patch300: 00300-change-so-version-scl.patch
2a6dbc
b13608
# 00320 #
b13608
# Security fix for CVE-2019-9636: Information Disclosure due to urlsplit improper NFKC normalization
b13608
# FIXED UPSTREAM: https://bugs.python.org/issue36216
b13608
# Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1689322
b13608
Patch320: 00320-CVE-2019-9636.patch
b13608
2a6dbc
# (New patches go here ^^^)
2a6dbc
#
2a6dbc
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
2a6dbc
# please try to keep the patch numbers in-sync between all specfiles.
2a6dbc
#
2a6dbc
# More information, and a patch number catalog, is at:
2a6dbc
#
2a6dbc
#     https://fedoraproject.org/wiki/SIGs/Python/PythonPatches
2a6dbc
2a6dbc
b13608
# add correct arch for ppc/ppc64/ppc64le
b13608
# it should be ppc-linux-gnu/ppc64le-linux-gnu/ppc64-linux-gnu
b13608
# instead of powerpc-linux-gnu/powerpc64le-linux-gnu/powerpc64-linux-gnu
2a6dbc
Patch5001: python3-powerppc-arch.patch
2a6dbc
2a6dbc
BuildRoot: %{_tmppath}/%{name}-%{version}-root
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# Additional metadata, and subpackages
2a6dbc
# ======================================================
2a6dbc
2a6dbc
URL: https://www.python.org/
2a6dbc
2a6dbc
Provides: %{?scl_prefix}python(abi) = %{pybasever}
2a6dbc
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-libs%{?_isa} = %{version}-%{release}
2a6dbc
%{?scl:Requires: %{scl}-runtime}
2a6dbc
%if 0%{with_rewheel}
2a6dbc
Requires: %{?scl_prefix}python-setuptools
2a6dbc
Requires: %{?scl_prefix}python-pip
2a6dbc
%endif
2a6dbc
2a6dbc
%description
2a6dbc
Python 3 is a new version of the language that is incompatible with the 2.x
2a6dbc
line of releases. The language is mostly the same, but many details, especially
2a6dbc
how built-in objects like dictionaries and strings work, have changed
2a6dbc
considerably, and a lot of deprecated features have finally been removed.
2a6dbc
2a6dbc
%package libs
2a6dbc
Summary:        Python 3 runtime libraries
2a6dbc
Group:          Development/Libraries
2a6dbc
%{?scl:Requires:       %{scl}-runtime}
2a6dbc
#Requires:       %%{name} = %%{version}-%%{release}
2a6dbc
2a6dbc
# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME.  We use
2a6dbc
# this symbol (in pyexpat), so we must explicitly state this dependency to
2a6dbc
# prevent "import pyexpat" from failing with a linker error if someone hasn't
2a6dbc
# yet upgraded expat:
2a6dbc
Requires: expat >= 2.1.0
2a6dbc
2a6dbc
%description libs
2a6dbc
This package contains files used to embed Python 3 into applications.
2a6dbc
2a6dbc
%package devel
2a6dbc
Summary: Libraries and header files needed for Python 3 development
2a6dbc
Group: Development/Libraries
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}%{?_isa} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-libs%{?_isa} = %{version}-%{release}
2a6dbc
# we filtered provides of pkgconfig on rhel7 so we need to manully re add them
2a6dbc
Provides: %{?scl_prefix}pkgconfig(python) = %{version}-%{release}
2a6dbc
Provides: %{?scl_prefix}pkgconfig(python-3.6m) = %{version}-%{release}
2a6dbc
Provides: %{?scl_prefix}pkgconfig(python-3.6) = %{version}-%{release}
2a6dbc
Provides: %{?scl_prefix}pkgconfig(python3) = %{version}-%{release}
2a6dbc
Conflicts: %{?scl_prefix}%{pkg_name} < %{version}-%{release}
2a6dbc
2a6dbc
# Fix for rhbz#1144601
2a6dbc
Requires:       scl-utils-build
2a6dbc
2a6dbc
%description devel
2a6dbc
This package contains libraries and header files used to build applications
2a6dbc
with and native libraries for Python 3
2a6dbc
2a6dbc
%package tools
2a6dbc
Summary: A collection of tools included with Python 3
2a6dbc
Group: Development/Tools
2a6dbc
Requires: %{?scl_prefix}%{pkg_name} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-tkinter = %{version}-%{release}
2a6dbc
2a6dbc
%description tools
2a6dbc
This package contains several tools included with Python 3
2a6dbc
2a6dbc
%package tkinter
2a6dbc
Summary: A GUI toolkit for Python 3
2a6dbc
Group: Development/Languages
2a6dbc
Requires: %{?scl_prefix}%{pkg_name} = %{version}-%{release}
2a6dbc
2a6dbc
%description tkinter
2a6dbc
The Tkinter (Tk interface) program is an graphical user interface for
2a6dbc
the Python scripting language.
2a6dbc
2a6dbc
%package test
2a6dbc
Summary: The test modules from the main python 3 package
2a6dbc
Group: Development/Languages
2a6dbc
Requires: %{?scl_prefix}%{pkg_name} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-tools = %{version}-%{release}
2a6dbc
2a6dbc
%description test
2a6dbc
The test modules from the main %{name} package.
2a6dbc
These are in a separate package to save space, as they are almost never used
2a6dbc
in production.
2a6dbc
2a6dbc
You might want to install the python3-test package if you're developing
2a6dbc
python 3 code that uses more than just unittest and/or test_support.py.
2a6dbc
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
%package debug
2a6dbc
Summary: Debug version of the Python 3 runtime
2a6dbc
Group: Applications/System
2a6dbc
2a6dbc
# The debug build is an all-in-one package version of the regular build, and
2a6dbc
# shares the same .py/.pyc files and directories as the regular build.  Hence
2a6dbc
# we depend on all of the subpackages of the regular build:
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}%{?_isa} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-libs%{?_isa} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-devel%{?_isa} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-test%{?_isa} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-tkinter%{?_isa} = %{version}-%{release}
2a6dbc
Requires: %{?scl_prefix}%{pkg_name}-tools%{?_isa} = %{version}-%{release}
2a6dbc
# we filtered provides of pkgconfig on rhel7 so we need to manully re add them
2a6dbc
Provides: %{?scl_prefix}pkgconfig(python-3.6dm) = %{version}-%{release}
2a6dbc
2a6dbc
%description debug
2a6dbc
python3-debug provides a version of the Python 3 runtime with numerous debugging
2a6dbc
features enabled, aimed at advanced Python users, such as developers of Python
2a6dbc
extension modules.
2a6dbc
2a6dbc
This version uses more memory and will be slower than the regular Python 3 build,
2a6dbc
but is useful for tracking down reference-counting issues, and other bugs.
2a6dbc
2a6dbc
The bytecodes are unchanged, so that .pyc files are compatible between the two
2a6dbc
versions of Python 3, but the debugging features mean that C/C++ extension
2a6dbc
modules are ABI-incompatible with those built for the standard runtime.
2a6dbc
2a6dbc
It shares installation directories with the standard Python 3 runtime, so that
2a6dbc
.py and .pyc files can be shared.  All compiled extension modules gain a "_d"
2a6dbc
suffix ("foo_d.so" rather than "foo.so") so that each Python 3 implementation
2a6dbc
can load its own extensions.
2a6dbc
%endif # with_debug_build
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# The prep phase of the build:
2a6dbc
# ======================================================
2a6dbc
2a6dbc
%prep
2a6dbc
%setup -q -n Python-%{version}
2a6dbc
2a6dbc
%if 0%{?with_systemtap}
2a6dbc
# Provide an example of usage of the tapset:
2a6dbc
cp -a %{SOURCE6} .
2a6dbc
cp -a %{SOURCE7} .
2a6dbc
%endif # with_systemtap
2a6dbc
2a6dbc
# Ensure that we're using the system copy of various libraries, rather than
2a6dbc
# copies shipped by upstream in the tarball:
2a6dbc
#   Remove embedded copy of expat:
2a6dbc
rm -r Modules/expat || exit 1
2a6dbc
2a6dbc
#   Remove embedded copy of zlib:
2a6dbc
rm -r Modules/zlib || exit 1
2a6dbc
2a6dbc
# Don't build upstream Python's implementation of these crypto algorithms;
2a6dbc
# instead rely on _hashlib and OpenSSL.
2a6dbc
#
2a6dbc
# For example, in our builds hashlib.md5 is implemented within _hashlib via
2a6dbc
# OpenSSL (and thus respects FIPS mode), and does not fall back to _md5
2a6dbc
# TODO: there seems to be no OpenSSL support in Python for sha3 so far
2a6dbc
# when it is there, also remove _sha3/ dir
2a6dbc
for f in md5module.c sha1module.c sha256module.c sha512module.c; do
2a6dbc
    rm Modules/$f
2a6dbc
done
2a6dbc
2a6dbc
%if 0%{with_rewheel}
2a6dbc
%global pip_version 9.0.1
2a6dbc
sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
2a6dbc
%endif
2a6dbc
2a6dbc
#
2a6dbc
# Apply patches:
2a6dbc
#
2a6dbc
%patch1 -p1
2a6dbc
2a6dbc
%if 0%{?with_systemtap}
2a6dbc
%patch55 -p1 -b .systemtap
2a6dbc
%endif
2a6dbc
2a6dbc
%if "%{_lib}" == "lib64"
2a6dbc
%patch102 -p1
2a6dbc
%patch104 -p1
2a6dbc
%endif
2a6dbc
%patch111 -p1
2a6dbc
2a6dbc
%patch132 -p1
2a6dbc
%patch137 -p1
2a6dbc
%patch146 -p1
2a6dbc
%patch155 -p1
2a6dbc
%patch157 -p1
2a6dbc
%patch160 -p1
2a6dbc
%patch163 -p1
2a6dbc
%patch170 -p1
2a6dbc
%patch178 -p1
2a6dbc
%patch180 -p1
2a6dbc
%patch186 -p1
2a6dbc
%patch188 -p1
2a6dbc
2a6dbc
%if 0%{with_rewheel}
2a6dbc
%patch189 -p1
2a6dbc
%endif
2a6dbc
2a6dbc
%patch205 -p1
2a6dbc
%patch206 -p1
2a6dbc
%patch231 -p1
2a6dbc
%patch243 -p1
2a6dbc
%patch264 -p1
2a6dbc
%patch277 -p1
2a6dbc
2a6dbc
%ifarch %{power64}
2a6dbc
%patch278 -p1
2a6dbc
%endif
2a6dbc
b13608
%patch320 -p1
b13608
2a6dbc
cat %{PATCH300} | sed -e "s/__SCL_NAME__/%{?scl}/" \
2a6dbc
                | patch -p1
2a6dbc
2a6dbc
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
2a6dbc
# are many differences between 2.6 and the Python 3 library.
2a6dbc
#
2a6dbc
# Fix up the URLs within pydoc to point at the documentation for this
2a6dbc
# MAJOR.MINOR version:
2a6dbc
#
2a6dbc
sed --in-place \
2a6dbc
    --expression="s|http://docs.python.org/library|http://docs.python.org/%{pybasever}/library|g" \
2a6dbc
    Lib/pydoc.py || exit 1
2a6dbc
2a6dbc
%patch5001 -p1
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# Configuring and building the code:
2a6dbc
# ======================================================
2a6dbc
2a6dbc
2a6dbc
# filter pkgconfig Requires/Provides on rhel7 as filter_from doesnt work there
2a6dbc
%global __provides_exclude ^pkgconfig\\(.*$
2a6dbc
2a6dbc
%build
2a6dbc
export topdir=$(pwd)
2a6dbc
export CFLAGS="-I%{_includedir} $RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
2a6dbc
export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
2a6dbc
export CPPFLAGS="-I%{_includedir}`pkg-config --cflags-only-I libffi`"
2a6dbc
export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
2a6dbc
export LINKCC="gcc"
2a6dbc
export CFLAGS="$CFLAGS `pkg-config --cflags openssl`"
2a6dbc
# Passing to the dynamic linker parameters -rpath and --enable-new-dtags causes
2a6dbc
# ld to set RUNPATH instead of RPATH in the executables and libraries
2a6dbc
# Setting RUNPATH resolves rhbz#1479406
2a6dbc
export LDFLAGS="-L%{_libdir}$RPM_LD_FLAGS `pkg-config --libs-only-L openssl` \
2a6dbc
                -Wl,-rpath,%{_libdir} -Wl,--enable-new-dtags"
2a6dbc
2a6dbc
# Define a function, for how to perform a "build" of python for a given
2a6dbc
# configuration:
2a6dbc
BuildPython() {
2a6dbc
  ConfName=$1
2a6dbc
  BinaryName=$2
2a6dbc
  SymlinkName=$3
2a6dbc
  ExtraConfigArgs=$4
2a6dbc
  PathFixWithThisBinary=$5
2a6dbc
  MoreCFlags=$6
2a6dbc
2a6dbc
  ConfDir=build/$ConfName
2a6dbc
2a6dbc
  echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
2a6dbc
  mkdir -p $ConfDir
2a6dbc
2a6dbc
  pushd $ConfDir
2a6dbc
2a6dbc
  # Use the freshly created "configure" script, but in the directory two above:
2a6dbc
  %global _configure $topdir/configure
2a6dbc
2a6dbc
%configure \
2a6dbc
  --enable-ipv6 \
2a6dbc
  --enable-shared \
2a6dbc
  --with-computed-gotos=%{with_computed_gotos} \
2a6dbc
  --with-dbmliborder=gdbm:ndbm:bdb \
2a6dbc
  --with-system-expat \
2a6dbc
  --with-system-ffi \
2a6dbc
  --enable-loadable-sqlite-extensions \
2a6dbc
  --with-dtrace \
2a6dbc
%if 0%{?with_valgrind}
2a6dbc
  --with-valgrind \
2a6dbc
%endif
2a6dbc
  $ExtraConfigArgs \
2a6dbc
  %{nil}
2a6dbc
2a6dbc
  # Set EXTRA_CFLAGS to our CFLAGS (rather than overriding OPT, as we've done
2a6dbc
  # in the past).
2a6dbc
  # This should fix a problem with --with-valgrind where it adds
2a6dbc
  #   -DDYNAMIC_ANNOTATIONS_ENABLED=1
2a6dbc
  # to OPT which must be passed to all compilation units in the build,
2a6dbc
  # otherwise leading to linker errors, e.g.
2a6dbc
  #    missing symbol AnnotateRWLockDestroy
2a6dbc
  #
2a6dbc
  # Invoke the build:
2a6dbc
  make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
2a6dbc
2a6dbc
  popd
2a6dbc
  echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir
2a6dbc
}
2a6dbc
2a6dbc
export -f BuildPython
2a6dbc
# Use "BuildPython" to support building with different configurations:
2a6dbc
2a6dbc
%{?scl:scl enable %scl - << \EOF}
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
BuildPython debug \
2a6dbc
  python-debug \
2a6dbc
  python%{pybasever}-debug \
2a6dbc
%ifarch %{ix86} x86_64 ppc %{power64}
2a6dbc
  "--with-pydebug --without-ensurepip" \
2a6dbc
%else
2a6dbc
  "--with-pydebug --without-ensurepip" \
2a6dbc
%endif
2a6dbc
  false \
2a6dbc
  -O0
2a6dbc
%endif # with_debug_build
2a6dbc
2a6dbc
BuildPython optimized \
2a6dbc
  python \
2a6dbc
  python%{pybasever} \
2a6dbc
%ifarch %{ix86} x86_64
2a6dbc
  "--without-ensurepip --enable-optimizations" \
2a6dbc
%else
2a6dbc
  "--without-ensurepip" \
2a6dbc
%endif
2a6dbc
  true
2a6dbc
%{?scl:EOF}
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# Installing the built code:
2a6dbc
# ======================================================
2a6dbc
2a6dbc
%install
2a6dbc
topdir=$(pwd)
2a6dbc
rm -fr %{buildroot}
2a6dbc
mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
2a6dbc
2a6dbc
# install SCL custom RPM scripts
2a6dbc
%{?scl:mkdir -p %{buildroot}%{_root_prefix}/lib/rpm/redhat}
2a6dbc
%{?scl:cp -a %{SOURCE8} %{buildroot}%{_root_prefix}/lib/rpm}
2a6dbc
%{?scl:cp -a %{SOURCE9} %{buildroot}%{_root_prefix}/lib/rpm/redhat}
2a6dbc
2a6dbc
InstallPython() {
2a6dbc
2a6dbc
  ConfName=$1
2a6dbc
  PyInstSoName=$2
2a6dbc
  MoreCFlags=$3
2a6dbc
2a6dbc
  ConfDir=build/$ConfName
2a6dbc
2a6dbc
  echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
2a6dbc
  mkdir -p $ConfDir
2a6dbc
2a6dbc
  pushd $ConfDir
2a6dbc
2a6dbc
make install DESTDIR=%{buildroot} INSTALL="install -p" EXTRA_CFLAGS="$MoreCFlags"
2a6dbc
2a6dbc
  popd
2a6dbc
2a6dbc
  # We install a collection of hooks for gdb that make it easier to debug
2a6dbc
  # executables linked against libpython3* (such as /usr/bin/python3 itself)
2a6dbc
  #
2a6dbc
  # These hooks are implemented in Python itself (though they are for the version
2a6dbc
  # of python that gdb is linked with, in this case Python 2.7)
2a6dbc
  #
2a6dbc
  # gdb-archer looks for them in the same path as the ELF file, with a -gdb.py suffix.
2a6dbc
  # We put them in the debuginfo package by installing them to e.g.:
2a6dbc
  #  /usr/lib/debug/usr/lib/libpython3.2.so.1.0.debug-gdb.py
2a6dbc
  #
2a6dbc
  # See https://fedoraproject.org/wiki/Features/EasierPythonDebugging for more
2a6dbc
  # information
2a6dbc
  #
2a6dbc
  # Copy up the gdb hooks into place; the python file will be autoloaded by gdb
2a6dbc
  # when visiting libpython.so, provided that the python file is installed to the
2a6dbc
  # same path as the library (or its .debug file) plus a "-gdb.py" suffix, e.g:
2a6dbc
  #  /usr/lib/debug/usr/lib64/libpython3.2.so.1.0.debug-gdb.py
2a6dbc
  # (note that the debug path is /usr/lib/debug for both 32/64 bit)
2a6dbc
  #
2a6dbc
  # Initially I tried:
2a6dbc
  #  /usr/lib/libpython3.1.so.1.0-gdb.py
2a6dbc
  # but doing so generated noise when ldconfig was rerun (rhbz:562980)
2a6dbc
  #
2a6dbc
%if 0%{?with_gdb_hooks}
2a6dbc
  DirHoldingGdbPy=%{?scl:%_root_prefix}%{!?scl:%_prefix}/lib/debug/%{_libdir}
2a6dbc
  PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName.debug-gdb.py
2a6dbc
2a6dbc
  mkdir -p %{buildroot}$DirHoldingGdbPy
2a6dbc
  cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
2a6dbc
%endif # with_gdb_hooks
2a6dbc
2a6dbc
  echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
2a6dbc
}
2a6dbc
2a6dbc
# Use "InstallPython" to support building with different configurations:
2a6dbc
2a6dbc
# Install the "debug" build first, so that we can move some files aside
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
InstallPython debug \
2a6dbc
  %{py_INSTSONAME_debug} \
2a6dbc
  -O0
2a6dbc
%endif # with_debug_build
2a6dbc
2a6dbc
# Now the optimized build:
2a6dbc
InstallPython optimized \
2a6dbc
  %{py_INSTSONAME_optimized}
2a6dbc
2a6dbc
install -d -m 0755 ${RPM_BUILD_ROOT}%{pylibdir}/site-packages/__pycache__
2a6dbc
2a6dbc
ln -s %{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/python3-2to3
2a6dbc
2a6dbc
# Development tools
2a6dbc
install -m755 -d ${RPM_BUILD_ROOT}%{pylibdir}/Tools
2a6dbc
install Tools/README ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
2a6dbc
cp -ar Tools/freeze ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
2a6dbc
cp -ar Tools/i18n ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
2a6dbc
cp -ar Tools/pynche ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
2a6dbc
cp -ar Tools/scripts ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
2a6dbc
2a6dbc
# pynche
2a6dbc
cat > ${RPM_BUILD_ROOT}%{_bindir}/pynche << EOF
2a6dbc
#!/bin/bash
2a6dbc
exec %{pylibdir}/Tools/pynche/pynche
2a6dbc
EOF
2a6dbc
chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/pynche
2a6dbc
2a6dbc
# Documentation tools
2a6dbc
install -m755 -d %{buildroot}%{pylibdir}/Doc
2a6dbc
cp -ar Doc/tools %{buildroot}%{pylibdir}/Doc/
2a6dbc
2a6dbc
# Demo scripts
2a6dbc
cp -ar Tools/demo %{buildroot}%{pylibdir}/Tools/
2a6dbc
2a6dbc
# Fix for bug #136654
2a6dbc
rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
2a6dbc
2a6dbc
%if "%{_lib}" == "lib64"
2a6dbc
install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
2a6dbc
%endif
2a6dbc
2a6dbc
# Make python3-devel multilib-ready (bug #192747, #139911)
2a6dbc
%global _pyconfig32_h pyconfig-32.h
2a6dbc
%global _pyconfig64_h pyconfig-64.h
2a6dbc
2a6dbc
%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64} riscv64
2a6dbc
%global _pyconfig_h %{_pyconfig64_h}
2a6dbc
%else
2a6dbc
%global _pyconfig_h %{_pyconfig32_h}
2a6dbc
%endif
2a6dbc
2a6dbc
# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
2a6dbc
%global ABIFLAGS_optimized m
2a6dbc
%global ABIFLAGS_debug     dm
2a6dbc
2a6dbc
%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
2a6dbc
%global LDVERSION_debug     %{pybasever}%{ABIFLAGS_debug}
2a6dbc
2a6dbc
%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
2a6dbc
%global SOABI_debug     cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
2a6dbc
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
%global PyIncludeDirs python%{LDVERSION_optimized} python%{LDVERSION_debug}
2a6dbc
2a6dbc
%else
2a6dbc
%global PyIncludeDirs python%{LDVERSION_optimized}
2a6dbc
%endif
2a6dbc
2a6dbc
for PyIncludeDir in %{PyIncludeDirs} ; do
2a6dbc
  mv %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h \
2a6dbc
     %{buildroot}%{_includedir}/$PyIncludeDir/%{_pyconfig_h}
2a6dbc
  cat > %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h << EOF
2a6dbc
#include <bits/wordsize.h>
2a6dbc
2a6dbc
#if __WORDSIZE == 32
2a6dbc
#include "%{_pyconfig32_h}"
2a6dbc
#elif __WORDSIZE == 64
2a6dbc
#include "%{_pyconfig64_h}"
2a6dbc
#else
2a6dbc
#error "Unknown word size"
2a6dbc
#endif
2a6dbc
EOF
2a6dbc
done
2a6dbc
2a6dbc
# Fix for bug 201434: make sure distutils looks at the right pyconfig.h file
2a6dbc
# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
2a6dbc
# pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
2a6dbc
# when python starts up (bug 653058)
2a6dbc
#
2a6dbc
# Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
2a6dbc
# variants:
2a6dbc
sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
2a6dbc
  %{buildroot}%{pylibdir}/distutils/sysconfig.py \
2a6dbc
  %{buildroot}%{pylibdir}/sysconfig.py
2a6dbc
2a6dbc
# Switch all shebangs to refer to the specific Python version.
2a6dbc
LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
2a6dbc
  Tools/scripts/pathfix.py \
2a6dbc
  -i "%{_bindir}/python%{pybasever}" \
2a6dbc
  %{buildroot}
2a6dbc
2a6dbc
# Remove shebang lines from .py files that aren't executable, and
2a6dbc
# remove executability from .py files that don't have a shebang line:
2a6dbc
find %{buildroot} -name \*.py \
2a6dbc
  \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
2a6dbc
  -print -exec sed -i '1d' {} \; \) -o \( \
2a6dbc
  -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
2a6dbc
  -exec chmod a-x {} \; \) \)
2a6dbc
2a6dbc
# .xpm and .xbm files should not be executable:
2a6dbc
find %{buildroot} \
2a6dbc
  \( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
2a6dbc
  -exec chmod a-x {} \;
2a6dbc
2a6dbc
# Remove executable flag from files that shouldn't have it:
2a6dbc
chmod a-x \
2a6dbc
  %{buildroot}%{pylibdir}/distutils/tests/Setup.sample \
2a6dbc
  %{buildroot}%{pylibdir}/Tools/README
2a6dbc
2a6dbc
# Get rid of DOS batch files:
2a6dbc
find %{buildroot} -name \*.bat -exec rm {} \;
2a6dbc
2a6dbc
# Get rid of backup files:
2a6dbc
find %{buildroot}/ -name "*~" -exec rm -f {} \;
2a6dbc
find . -name "*~" -exec rm -f {} \;
2a6dbc
rm -f %{buildroot}%{pylibdir}/LICENSE.txt
2a6dbc
# Junk, no point in putting in -test sub-pkg
2a6dbc
rm -f ${RPM_BUILD_ROOT}/%{pylibdir}/idlelib/testcode.py*
2a6dbc
2a6dbc
# Get rid of stray patch file from buildroot:
2a6dbc
rm -f %{buildroot}%{pylibdir}/test/test_imp.py.apply-our-changes-to-expected-shebang # from patch 4
2a6dbc
2a6dbc
# Fix end-of-line encodings:
2a6dbc
find %{buildroot}/ -name \*.py -exec sed -i 's/\r//' {} \;
2a6dbc
2a6dbc
# Fix an encoding:
2a6dbc
iconv -f iso8859-1 -t utf-8 %{buildroot}/%{pylibdir}/Demo/rpc/README > README.conv && mv -f README.conv %{buildroot}/%{pylibdir}/Demo/rpc/README
2a6dbc
2a6dbc
# Note that
2a6dbc
#  %{pylibdir}/Demo/distutils/test2to3/setup.py
2a6dbc
# is in iso-8859-1 encoding, and that this is deliberate; this is test data
2a6dbc
# for the 2to3 tool, and one of the functions of the 2to3 tool is to fixup
2a6dbc
# character encodings within python source code
2a6dbc
2a6dbc
# Do bytecompilation with the newly installed interpreter.
2a6dbc
# This is similar to the script in macros.pybytecompile
2a6dbc
# compile *.pyc
2a6dbc
find %{buildroot} -type f -a -name "*.py" -print0 | \
2a6dbc
    LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
2a6dbc
    PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
2a6dbc
    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:]]' || :
2a6dbc
2a6dbc
# Fixup permissions for shared libraries from non-standard 555 to standard 755:
2a6dbc
find %{buildroot} \
2a6dbc
    -perm 555 -exec chmod 755 {} \;
2a6dbc
2a6dbc
# Install macros for rpm:
2a6dbc
mkdir -p %{buildroot}/%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/rpm
2a6dbc
install -m 644 %{SOURCE2} %{buildroot}/%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/rpm
2a6dbc
install -m 644 %{SOURCE3} %{buildroot}/%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/rpm
2a6dbc
# Optionally rename macro files by appending scl name
2a6dbc
pushd %{buildroot}/%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}
2a6dbc
find -type f -name 'macros.py*' -exec mv {} {}%{?scl:.%{scl}} \;
2a6dbc
popd
2a6dbc
2a6dbc
%{?scl:sed -i 's|^\(%@scl@__python3\)|\1 %{_bindir}/python3|' %{buildroot}%{_root_sysconfdir}/rpm/macros.python3.%{scl}}
2a6dbc
# We replace @scl@ with scl_no_vendor macro from build meta subpackage because macros names cant contain
2a6dbc
# dash, scl_no_vendor is scl macro without vendor prefix
2a6dbc
%{?scl:sed -i 's|@scl@|%{scl_no_vendor}|g' %{buildroot}%{_root_sysconfdir}/rpm/macros.python3.%{scl}}
2a6dbc
# when using scl enable we have to pass original scl macro with vendor prefix
2a6dbc
%{?scl:sed -i 's|@vendorscl@|%{scl}|g' %{buildroot}%{_root_sysconfdir}/rpm/macros.python3.%{scl}}
2a6dbc
2a6dbc
# Ensure that the curses module was linked against libncursesw.so, rather than
2a6dbc
# libncurses.so (bug 539917)
2a6dbc
ldd %{buildroot}/%{dynload_dir}/_curses*.so \
2a6dbc
    | grep curses \
2a6dbc
    | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1)
2a6dbc
2a6dbc
# Ensure that the debug modules are linked against the debug libpython, and
2a6dbc
# likewise for the optimized modules and libpython:
2a6dbc
for Module in %{buildroot}/%{dynload_dir}/*.so ; do
2a6dbc
    case $Module in
2a6dbc
    *.%{SOABI_debug})
2a6dbc
        ldd $Module | grep %{py_INSTSONAME_optimized} &&
2a6dbc
            (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
2a6dbc
2a6dbc
        ;;
2a6dbc
    *.%{SOABI_optimized})
2a6dbc
        ldd $Module | grep %{py_INSTSONAME_debug} &&
2a6dbc
            (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
2a6dbc
        ;;
2a6dbc
    esac
2a6dbc
done
2a6dbc
2a6dbc
# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
2a6dbc
# avoid the user having to know the precise version and ABI flags.  (see
2a6dbc
# e.g. rhbz#676748):
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
ln -s \
2a6dbc
  %{_bindir}/python%{LDVERSION_debug} \
2a6dbc
  %{buildroot}%{_bindir}/python3-debug
2a6dbc
%endif
2a6dbc
2a6dbc
#
2a6dbc
# Systemtap hooks:
2a6dbc
#
2a6dbc
%if 0%{?with_systemtap}
2a6dbc
# Install a tapset for this libpython into tapsetdir, fixing up the path to the
2a6dbc
# library:
2a6dbc
mkdir -p %{buildroot}%{tapsetdir}
2a6dbc
%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
2a6dbc
%global libpython_stp_optimized libpython%{pybasever}-64.stp
2a6dbc
%global libpython_stp_debug     libpython%{pybasever}-debug-64.stp
2a6dbc
%else
2a6dbc
%global libpython_stp_optimized libpython%{pybasever}-32.stp
2a6dbc
%global libpython_stp_debug     libpython%{pybasever}-debug-32.stp
2a6dbc
%endif
2a6dbc
2a6dbc
sed \
2a6dbc
   -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_optimized}|" \
2a6dbc
   %{_sourcedir}/libpython.stp \
2a6dbc
   > %{buildroot}%{tapsetdir}/%{libpython_stp_optimized}
2a6dbc
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
# In Python 3, python3 and python3-debug don't point to the same binary,
2a6dbc
# so we have to replace "python3" with "python3-debug" to get systemtap
2a6dbc
# working with debug build
2a6dbc
sed \
2a6dbc
   -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_debug}|" \
2a6dbc
   -e 's|"python3"|"python3-debug"|' \
2a6dbc
   %{_sourcedir}/libpython.stp \
2a6dbc
   > %{buildroot}%{tapsetdir}/%{libpython_stp_debug}
2a6dbc
%endif # with_debug_build
2a6dbc
2a6dbc
%endif # with_systemtap
2a6dbc
2a6dbc
# Create symlinks python* for python3* binaries (and similar)
2a6dbc
pushd %{buildroot}%{_bindir}
2a6dbc
for versioned_binary in idle3 pydoc3 python3-2to3 python3 python3-config; do
2a6dbc
  non_versioned_binary=$(echo $versioned_binary | sed -e 's/python3/python/' -e 's/idle3/idle/' -e 's/pydoc3/pydoc/')
2a6dbc
  ln -s $versioned_binary $non_versioned_binary
2a6dbc
done
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
  ln -s python3-debug python-debug
2a6dbc
%endif
2a6dbc
popd
2a6dbc
2a6dbc
# Create symlink python.pc for python3.pc
2a6dbc
pushd %{buildroot}%{_libdir}/pkgconfig
2a6dbc
ln -s python3.pc python.pc
2a6dbc
popd
2a6dbc
2a6dbc
# Create a python manpage (rhbz#1072522)
2a6dbc
cp %{buildroot}%{_mandir}/man1/python%{pybasever}.1 %{buildroot}%{_mandir}/man1/python.1
2a6dbc
2a6dbc
# Rename the -devel script that differs on different arches to arch specific name
2a6dbc
mv %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-{,`uname -m`-}config
2a6dbc
echo -e '#!/bin/sh\nexec `dirname $0`/python%{LDVERSION_optimized}-`uname -m`-config "$@"' > \
2a6dbc
  %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
2a6dbc
echo '[ $? -eq 127 ] && echo "Could not find python%{LDVERSION_optimized}-`uname -m`-config. Look around to see available arches." >&2' >> \
2a6dbc
  %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
2a6dbc
  chmod +x %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
2a6dbc
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
# Rename the -debug script that differs on different arches to arch specific name
2a6dbc
mv %{buildroot}%{_bindir}/python%{LDVERSION_debug}-{,`uname -m`-}config
2a6dbc
echo -e '#!/bin/sh\nexec `dirname $0`/python%{LDVERSION_debug}-`uname -m`-config "$@"' > \
2a6dbc
  %{buildroot}%{_bindir}/python%{LDVERSION_debug}-config
2a6dbc
echo '[ $? -eq 127 ] && echo "Could not find python%{LDVERSION_debug}-`uname -m`-config. Look around to see available arches." >&2' >> \
2a6dbc
  %{buildroot}%{_bindir}/python%{LDVERSION_debug}-config
2a6dbc
  chmod +x %{buildroot}%{_bindir}/python%{LDVERSION_debug}-config
2a6dbc
%endif # with_debug_build
2a6dbc
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# Running the upstream test suite
2a6dbc
# ======================================================
2a6dbc
2a6dbc
%check
2a6dbc
2a6dbc
# first of all, check timestamps of bytecode files
2a6dbc
find %{buildroot} -type f -a -name "*.py" -print0 | \
2a6dbc
    LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
2a6dbc
    PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
2a6dbc
    xargs -0 %{buildroot}%{_bindir}/python%{pybasever} %{SOURCE10}
2a6dbc
2a6dbc
2a6dbc
topdir=$(pwd)
2a6dbc
CheckPython() {
2a6dbc
  ConfName=$1
2a6dbc
  ConfDir=$(pwd)/build/$ConfName
2a6dbc
2a6dbc
  echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
2a6dbc
2a6dbc
  # Note that we're running the tests using the version of the code in the
2a6dbc
  # builddir, not in the buildroot.
2a6dbc
2a6dbc
  # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the
2a6dbc
  # our non-standard decorators take effect on the relevant tests:
2a6dbc
  #   @unittest._skipInRpmBuild(reason)
2a6dbc
  #   @unittest._expectedFailureInRpmBuild
2a6dbc
  # test_faulthandler.test_register_chain currently fails on ppc64le and
2a6dbc
  #   aarch64, see upstream bug http://bugs.python.org/issue21131
2a6dbc
  WITHIN_PYTHON_RPM_BUILD= \
2a6dbc
  LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
2a6dbc
    -wW --slowest --findleaks \
2a6dbc
    -x test_distutils \
2a6dbc
    -x test_readline \
2a6dbc
    %ifarch ppc64le aarch64
2a6dbc
    -x test_faulthandler \
2a6dbc
    %endif
2a6dbc
    %ifarch %{mips64}
2a6dbc
    -x test_ctypes \
2a6dbc
    %endif
2a6dbc
    %ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
2a6dbc
    -x test_gdb
2a6dbc
    %endif
2a6dbc
2a6dbc
  echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
2a6dbc
2a6dbc
}
2a6dbc
2a6dbc
export -f CheckPython
2a6dbc
2a6dbc
%if 0%{run_selftest_suite}
2a6dbc
2a6dbc
%{?scl:scl enable %scl - << \EOF}
2a6dbc
set -e
2a6dbc
# Check each of the configurations:
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
CheckPython debug
2a6dbc
%endif # with_debug_build
2a6dbc
CheckPython optimized
2a6dbc
%{?scl:EOF}
2a6dbc
2a6dbc
%endif # run_selftest_suite
2a6dbc
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# Cleaning up
2a6dbc
# ======================================================
2a6dbc
2a6dbc
%clean
2a6dbc
rm -fr %{buildroot}
2a6dbc
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# Scriptlets
2a6dbc
# ======================================================
2a6dbc
2a6dbc
%post libs -p /sbin/ldconfig
2a6dbc
2a6dbc
%postun libs -p /sbin/ldconfig
2a6dbc
2a6dbc
2a6dbc
2a6dbc
%files
2a6dbc
%defattr(-, root, root)
2a6dbc
%doc LICENSE README.rst
2a6dbc
%{_bindir}/pydoc*
2a6dbc
%{_bindir}/python
2a6dbc
%{_bindir}/python3
2a6dbc
%{_bindir}/python%{pybasever}
2a6dbc
%{_bindir}/python%{pybasever}m
2a6dbc
%{_bindir}/pyvenv
2a6dbc
%{_bindir}/pyvenv-%{pybasever}
2a6dbc
%{_mandir}/*/*
2a6dbc
2a6dbc
%files libs
2a6dbc
%defattr(-,root,root,-)
2a6dbc
%doc LICENSE README.rst
2a6dbc
%dir %{pylibdir}
2a6dbc
%dir %{dynload_dir}
2a6dbc
2a6dbc
%{pylibdir}/lib2to3
2a6dbc
%exclude %{pylibdir}/lib2to3/tests
2a6dbc
2a6dbc
%dir %{pylibdir}/unittest/
2a6dbc
%dir %{pylibdir}/unittest/__pycache__/
2a6dbc
%{pylibdir}/unittest/*.py
2a6dbc
%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/asyncio/
2a6dbc
%dir %{pylibdir}/asyncio/__pycache__/
2a6dbc
%{pylibdir}/asyncio/*.py
2a6dbc
%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/venv/
2a6dbc
%dir %{pylibdir}/venv/__pycache__/
2a6dbc
%{pylibdir}/venv/*.py
2a6dbc
%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
2a6dbc
%{pylibdir}/venv/scripts
2a6dbc
2a6dbc
%{pylibdir}/wsgiref
2a6dbc
%{pylibdir}/xmlrpc
2a6dbc
2a6dbc
%dir %{pylibdir}/ensurepip/
2a6dbc
%dir %{pylibdir}/ensurepip/__pycache__/
2a6dbc
%{pylibdir}/ensurepip/*.py
2a6dbc
%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
2a6dbc
%exclude %{pylibdir}/ensurepip/_bundled
2a6dbc
2a6dbc
%if 0%{?with_rewheel}
2a6dbc
%dir %{pylibdir}/ensurepip/rewheel/
2a6dbc
%dir %{pylibdir}/ensurepip/rewheel/__pycache__/
2a6dbc
%{pylibdir}/ensurepip/rewheel/*.py
2a6dbc
%{pylibdir}/ensurepip/rewheel/__pycache__/*%{bytecode_suffixes}
2a6dbc
%endif
2a6dbc
2a6dbc
%{pylibdir}/idlelib
2a6dbc
2a6dbc
%dir %{pylibdir}/test/
2a6dbc
%dir %{pylibdir}/test/__pycache__/
2a6dbc
%dir %{pylibdir}/test/support/
2a6dbc
%dir %{pylibdir}/test/support/__pycache__/
2a6dbc
%{pylibdir}/test/__init__.py
2a6dbc
%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
2a6dbc
%{pylibdir}/test/support/__init__.py
2a6dbc
%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/concurrent/
2a6dbc
%dir %{pylibdir}/concurrent/__pycache__/
2a6dbc
%{pylibdir}/concurrent/*.py
2a6dbc
%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/concurrent/futures/
2a6dbc
%dir %{pylibdir}/concurrent/futures/__pycache__/
2a6dbc
%{pylibdir}/concurrent/futures/*.py
2a6dbc
%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%{pylibdir}/pydoc_data
2a6dbc
2a6dbc
%{dynload_dir}/_blake2.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_sha3.%{SOABI_optimized}.so
2a6dbc
2a6dbc
%{dynload_dir}/_asyncio.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_bisect.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_bz2.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_crypt.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_csv.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_curses.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_dbm.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_decimal.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
2a6dbc
%if %{with_gdbm}
2a6dbc
%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
2a6dbc
%endif
2a6dbc
%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_heapq.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_json.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_lzma.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_opcode.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_pickle.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_random.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_socket.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_ssl.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_struct.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/array.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/audioop.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/binascii.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/cmath.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_datetime.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/fcntl.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/grp.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/math.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/mmap.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/nis.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/parser.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/readline.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/resource.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/select.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/spwd.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/syslog.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/termios.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/zlib.%{SOABI_optimized}.so
2a6dbc
2a6dbc
%dir %{pylibdir}/site-packages/
2a6dbc
%dir %{pylibdir}/site-packages/__pycache__/
2a6dbc
%{pylibdir}/site-packages/README.txt
2a6dbc
%{pylibdir}/*.py
2a6dbc
%dir %{pylibdir}/__pycache__/
2a6dbc
%{pylibdir}/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/collections/
2a6dbc
%dir %{pylibdir}/collections/__pycache__/
2a6dbc
%{pylibdir}/collections/*.py
2a6dbc
%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/ctypes/
2a6dbc
%dir %{pylibdir}/ctypes/__pycache__/
2a6dbc
%{pylibdir}/ctypes/*.py
2a6dbc
%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
2a6dbc
%{pylibdir}/ctypes/macholib
2a6dbc
2a6dbc
%{pylibdir}/curses
2a6dbc
2a6dbc
%dir %{pylibdir}/dbm/
2a6dbc
%dir %{pylibdir}/dbm/__pycache__/
2a6dbc
%{pylibdir}/dbm/*.py
2a6dbc
%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/distutils/
2a6dbc
%dir %{pylibdir}/distutils/__pycache__/
2a6dbc
%{pylibdir}/distutils/*.py
2a6dbc
%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
2a6dbc
%{pylibdir}/distutils/README
2a6dbc
%{pylibdir}/distutils/command
2a6dbc
%exclude %{pylibdir}/distutils/command/wininst-*.exe
2a6dbc
2a6dbc
%dir %{pylibdir}/email/
2a6dbc
%dir %{pylibdir}/email/__pycache__/
2a6dbc
%{pylibdir}/email/*.py
2a6dbc
%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
2a6dbc
%{pylibdir}/email/mime
2a6dbc
%doc %{pylibdir}/email/architecture.rst
2a6dbc
2a6dbc
%{pylibdir}/encodings
2a6dbc
2a6dbc
%{pylibdir}/html
2a6dbc
%{pylibdir}/http
2a6dbc
2a6dbc
%dir %{pylibdir}/importlib/
2a6dbc
%dir %{pylibdir}/importlib/__pycache__/
2a6dbc
%{pylibdir}/importlib/*.py
2a6dbc
%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%dir %{pylibdir}/json/
2a6dbc
%dir %{pylibdir}/json/__pycache__/
2a6dbc
%{pylibdir}/json/*.py
2a6dbc
%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%{pylibdir}/logging
2a6dbc
%{pylibdir}/multiprocessing
2a6dbc
2a6dbc
%dir %{pylibdir}/sqlite3/
2a6dbc
%dir %{pylibdir}/sqlite3/__pycache__/
2a6dbc
%{pylibdir}/sqlite3/*.py
2a6dbc
%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%exclude %{pylibdir}/turtle.py
2a6dbc
%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
2a6dbc
2a6dbc
%{pylibdir}/urllib
2a6dbc
%{pylibdir}/xml
2a6dbc
2a6dbc
%if "%{_lib}" == "lib64"
2a6dbc
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
2a6dbc
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
2a6dbc
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
2a6dbc
%endif
2a6dbc
2a6dbc
# "Makefile" and the config-32/64.h file are needed by
2a6dbc
# distutils/sysconfig.py:_init_posix(), so we include them in the core
2a6dbc
# package, along with their parent directories (bug 531901):
2a6dbc
%dir %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/
2a6dbc
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
2a6dbc
%dir %{_includedir}/python%{LDVERSION_optimized}/
2a6dbc
%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
2a6dbc
2a6dbc
%{_libdir}/%{py_INSTSONAME_optimized}
2a6dbc
%{_libdir}/libpython3.so.%{scl}
2a6dbc
%if 0%{?with_systemtap}
2a6dbc
%{?scl:%dir %{_datadir}/tapsetdir}
2a6dbc
%{?scl:%dir %{tapsetdir}}
2a6dbc
%{tapsetdir}/%{libpython_stp_optimized}
2a6dbc
%doc systemtap-example.stp pyfuntop.stp
2a6dbc
%endif
2a6dbc
2a6dbc
%files devel
2a6dbc
%defattr(-,root,root)
2a6dbc
%{?scl:%{_root_prefix}/lib/rpm/pythondeps-scl-36.sh}
2a6dbc
%{?scl:%{_root_prefix}/lib/rpm/redhat/brp-python-bytecompile-with-scl-python-36}
2a6dbc
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/*
2a6dbc
%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
2a6dbc
%{pylibdir}/distutils/command/wininst-*.exe
2a6dbc
%{_includedir}/python%{LDVERSION_optimized}/*.h
2a6dbc
%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
2a6dbc
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
2a6dbc
%{_bindir}/python-config
2a6dbc
%{_bindir}/python3-config
2a6dbc
%{_bindir}/python%{pybasever}-config
2a6dbc
%{_bindir}/python%{LDVERSION_optimized}-config
2a6dbc
%{_bindir}/python%{LDVERSION_optimized}-*-config
2a6dbc
%{_libdir}/libpython%{LDVERSION_optimized}.so
2a6dbc
%{?scl:%dir %{_libdir}/pkgconfig}
2a6dbc
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
2a6dbc
%{_libdir}/pkgconfig/python-%{pybasever}.pc
2a6dbc
%{_libdir}/pkgconfig/python.pc
2a6dbc
%{_libdir}/pkgconfig/python3.pc
2a6dbc
%config(noreplace) %{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/rpm/macros.python3%{?scl:.%{scl}}
2a6dbc
%config(noreplace) %{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/rpm/macros.pybytecompile%{?scl:.%{scl}}
2a6dbc
2a6dbc
%files tools
2a6dbc
%defattr(-,root,root,755)
2a6dbc
%{_bindir}/python3-2to3
2a6dbc
%{_bindir}/python-2to3
2a6dbc
%{_bindir}/2to3-%{pybasever}
2a6dbc
%{_bindir}/2to3
2a6dbc
%{_bindir}/idle*
2a6dbc
%{_bindir}/pynche
2a6dbc
%{pylibdir}/Tools
2a6dbc
%doc %{pylibdir}/Doc
2a6dbc
2a6dbc
%files tkinter
2a6dbc
%defattr(-,root,root,755)
2a6dbc
%{pylibdir}/tkinter
2a6dbc
%exclude %{pylibdir}/tkinter/test
2a6dbc
%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
2a6dbc
%{pylibdir}/turtle.py
2a6dbc
%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
2a6dbc
%dir %{pylibdir}/turtledemo
2a6dbc
%{pylibdir}/turtledemo/*.py
2a6dbc
%{pylibdir}/turtledemo/*.cfg
2a6dbc
%dir %{pylibdir}/turtledemo/__pycache__/
2a6dbc
%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
2a6dbc
2a6dbc
%files test
2a6dbc
%defattr(-, root, root)
2a6dbc
%{pylibdir}/ctypes/test
2a6dbc
%{pylibdir}/distutils/tests
2a6dbc
%{pylibdir}/sqlite3/test
2a6dbc
%{pylibdir}/test
2a6dbc
%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
2a6dbc
%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
2a6dbc
%{pylibdir}/lib2to3/tests
2a6dbc
%{pylibdir}/tkinter/test
2a6dbc
%{pylibdir}/unittest/test
2a6dbc
2a6dbc
2a6dbc
# We don't bother splitting the debug build out into further subpackages:
2a6dbc
# if you need it, you're probably a developer.
2a6dbc
2a6dbc
# Hence the manifest is the combination of analogous files in the manifests of
2a6dbc
# all of the other subpackages
2a6dbc
2a6dbc
%if 0%{?with_debug_build}
2a6dbc
%files debug
2a6dbc
%defattr(-,root,root,-)
2a6dbc
2a6dbc
# Analog of the core subpackage's files:
2a6dbc
%{_bindir}/python%{LDVERSION_debug}
2a6dbc
%{_bindir}/python-debug
2a6dbc
%{_bindir}/python3-debug
2a6dbc
2a6dbc
# Analog of the -libs subpackage's files:
2a6dbc
# ...with debug builds of the built-in "extension" modules:
2a6dbc
2a6dbc
%{dynload_dir}/_blake2.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_sha3.%{SOABI_debug}.so
2a6dbc
2a6dbc
%{dynload_dir}/_asyncio.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_bisect.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_bz2.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_crypt.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_csv.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_ctypes.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_curses.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_dbm.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_decimal.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_elementtree.%{SOABI_debug}.so
2a6dbc
%if %{with_gdbm}
2a6dbc
%{dynload_dir}/_gdbm.%{SOABI_debug}.so
2a6dbc
%endif
2a6dbc
%{dynload_dir}/_hashlib.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_heapq.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_json.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_lsprof.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_lzma.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_opcode.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_pickle.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_random.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_socket.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_ssl.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_struct.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/array.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/audioop.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/binascii.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/cmath.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_datetime.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/fcntl.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/grp.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/math.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/mmap.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/nis.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/parser.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/pyexpat.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/readline.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/resource.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/select.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/spwd.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/syslog.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/termios.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/unicodedata.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/zlib.%{SOABI_debug}.so
2a6dbc
2a6dbc
# No need to split things out the "Makefile" and the config-32/64.h file as we
2a6dbc
# do for the regular build above (bug 531901), since they're all in one package
2a6dbc
# now; they're listed below, under "-devel":
2a6dbc
2a6dbc
%{_libdir}/%{py_INSTSONAME_debug}
2a6dbc
%if 0%{?with_systemtap}
2a6dbc
%dir %(dirname %{tapsetdir})
2a6dbc
%dir %{tapsetdir}
2a6dbc
%{tapsetdir}/%{libpython_stp_debug}
2a6dbc
%endif
2a6dbc
2a6dbc
# Analog of the -devel subpackage's files:
2a6dbc
%{pylibdir}/config-%{LDVERSION_debug}-%{_arch}-linux%{_gnu}
2a6dbc
%{_includedir}/python%{LDVERSION_debug}
2a6dbc
%{_bindir}/python%{LDVERSION_debug}-config
2a6dbc
%{_bindir}/python%{LDVERSION_debug}-*-config
2a6dbc
%{_libdir}/libpython%{LDVERSION_debug}.so
2a6dbc
%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
2a6dbc
2a6dbc
# Analog of the -tools subpackage's files:
2a6dbc
#  None for now; we could build precanned versions that have the appropriate
2a6dbc
# shebang if needed
2a6dbc
2a6dbc
# Analog  of the tkinter subpackage's files:
2a6dbc
%{dynload_dir}/_tkinter.%{SOABI_debug}.so
2a6dbc
2a6dbc
# Analog  of the -test subpackage's files:
2a6dbc
%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_testcapi.%{SOABI_debug}.so
2a6dbc
%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
2a6dbc
2a6dbc
%endif # with_debug_build
2a6dbc
2a6dbc
# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
2a6dbc
# ldconfig (rhbz:562980).
2a6dbc
#
2a6dbc
# The /usr/lib/rpm/redhat/macros defines %%__debug_package to use
2a6dbc
# debugfiles.list, and it appears that everything below /usr/lib/debug and
2a6dbc
# (/usr/src/debug) gets added to this file (via LISTFILES) in
2a6dbc
# /usr/lib/rpm/find-debuginfo.sh
2a6dbc
#
2a6dbc
# Hence by installing it below /usr/lib/debug we ensure it is added to the
2a6dbc
# -debuginfo subpackage
2a6dbc
# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
2a6dbc
# payload file would be unpackaged)
2a6dbc
2a6dbc
2a6dbc
# ======================================================
2a6dbc
# Finally, the changelog:
2a6dbc
# ======================================================
2a6dbc
2a6dbc
%changelog
b13608
* Tue Apr 09 2019 Tomas Orsava <torsava@redhat.com> - 3.6.3-7
b13608
- Security fix for CVE-2019-9636
b13608
Resolves: rhbz#1689322
b13608
b13608
* Thu May 31 2018 Kalev Lember <klember@redhat.com> - 3.6.3-6
b13608
- Rebuild with tests and rewheel.
b13608
b13608
* Thu May 31 2018 Kalev Lember <klember@redhat.com> - 3.6.3-5
b13608
- Rebuild with disabled tests and rewheel.
b13608
b13608
* Wed May 30 2018 Charalampos Stratakis <cstratak@redhat.com> - 3.6.3-4
b13608
- Rebuild with tests and rewheel.
b13608
b13608
* Tue May 29 2018 Charalampos Stratakis <cstratak@redhat.com> - 3.6.3-3.1
b13608
- Rebuild with disabled tests and rewheel.
1f1fb3
1f1fb3
* Mon Jan 08 2018 Charalampos Stratakis <cstratak@redhat.com> - 3.6.3-2
1f1fb3
- Fix conditional logic in the hashlib patch.
b13608
Resolves: rhbz#1497342
1f1fb3
2a6dbc
* Thu Oct 05 2017 Charalampos Stratakis <cstratak@redhat.com> - 3.6.3-1
2a6dbc
- Update to Python 3.6.3
2a6dbc
Resolves: rhbz#1498526
2a6dbc
2a6dbc
* Mon Aug 07 2017 Iryna Shcherbina <ishcherb@redhat.com> - 3.6.2-3
2a6dbc
- Fix the "urllib FTP protocol stream injection" vulnerability
2a6dbc
Resolves: rhbz#1478955
2a6dbc
2a6dbc
* Fri Aug 04 2017 Tomas Orsava <torsava@redhat.com> - 3.6.2-2
2a6dbc
- Hard-code RUNPATH (not RPATH) into the executables and C libraries so that
2a6dbc
  Python can be run without first running scl enable
2a6dbc
Resolves: rhbz#1479406
2a6dbc
2a6dbc
* Wed Aug 2 2017 Iryna Shcherbina <ishcherb@redhat.com> - 3.6.2-1
2a6dbc
- Update to Python 3.6.2
2a6dbc
- Enable profile guided optimizations for x86_64 and i686 architectures
2a6dbc
- Replace the "--verbose" flag with "-wW" and add "--slowest" flag
2a6dbc
Resolves: rhbz#1463715
2a6dbc
2a6dbc
* Tue Aug 1 2017 Iryna Shcherbina <ishcherb@redhat.com> - 3.6.1-3
2a6dbc
- Make test_asyncio not depend on the current SIGHUP signal handler
2a6dbc
Resolves: rhbz#1461453
2a6dbc
2a6dbc
* Wed Jun 14 2017 Charalampos Stratakis <cstratak@redhat.com> - 3.6.1-2
2a6dbc
- Enable rewheel
2a6dbc
2a6dbc
* Tue Jun 06 2017 Charalampos Stratakis <cstratak@redhat.com> - 3.6.1-1
2a6dbc
- Update to Python 3.6.1
2a6dbc
- Disable rewheel mode
2a6dbc
2a6dbc
* Fri Mar 17 2017 Tomas Orsava <torsava@redhat.com> - 3.5.1-12
2a6dbc
- Moved pythondeps-scl-35.sh and 2 macro definitions from the rh-python35-build
2a6dbc
  subpackage here to the python-devel subpackage where it should be for
2a6dbc
  dependant collections to build properly
2a6dbc
- Also defined the 2 macros in this spec file so they are available during the
2a6dbc
  build of Python itself
2a6dbc
Resolves: rhbz#1422346
2a6dbc
2a6dbc
* Wed Sep 14 2016 Tomas Orsava <torsava@redhat.com> - 3.5.1-11
2a6dbc
- Updated .pyc 'bytecompilation with the newly installed interpreter' to also
2a6dbc
  recompile optimized .pyc files
2a6dbc
- Removed .pyo 'bytecompilation with the newly installed interpreter', as .pyo
2a6dbc
  files are no more
2a6dbc
- Updated %py_byte_compile macro
2a6dbc
Resolves rhbz#1374667
2a6dbc
2a6dbc
* Fri Aug 05 2016 Charalampos Stratakis <cstratak@redhat.com> - 3.5.1-10
2a6dbc
- Bump release number for rebuild
2a6dbc
Resolves: rhbz#1359174
2a6dbc
2a6dbc
* Fri Aug 05 2016 Charalampos Stratakis <cstratak@redhat.com> - 3.5.1-8
2a6dbc
- Fix for CVE-2016-1000110 HTTPoxy attack
2a6dbc
Resolves: rhbz#1359174
2a6dbc
2a6dbc
* Tue Jun 21 2016 Tomas Orsava <torsava@redhat.com> - 3.5.1-7
2a6dbc
- Fix for CVE-2016-0772 python: smtplib StartTLS stripping attack (rhbz#1303647)
2a6dbc
  Raise an error when STARTTLS fails (upstream patch)
2a6dbc
Resolves: rhbz#1346361
2a6dbc
2a6dbc
* Tue Apr 26 2016 Charalampos Stratakis <cstratak@redhat.com> - 3.5.1-6
2a6dbc
- Modify cprofile-sort-option.patch for Python 3
2a6dbc
Resolves: rhbz#1326287
2a6dbc
2a6dbc
* Thu Apr 14 2016 Charalampos Stratakis <cstratak@redhat.com> - 3.5.1-5
2a6dbc
- Add choices for sort option of cProfile for better output
2a6dbc
Resolves: rhbz#1326287
2a6dbc
2a6dbc
* Wed Feb 17 2016 Robert Kuska <rkuska@redhat.com> - 3.5.1-4
2a6dbc
- Properly apply patches 170&201, remove duplicated Patch200(207)
2a6dbc
2a6dbc
* Sat Feb 13 2016 Robert Kuska <rkuska@redhat.com> - 3.5.1-3
2a6dbc
- Rebuild with rewheel, enable tests
2a6dbc
2a6dbc
* Sat Feb 13 2016 Robert Kuska <rkuska@redhat.com> - 3.5.1-2
2a6dbc
- Fix bytecompile macro name in macros.python3
2a6dbc
- Temporary disable tests for faster rebuild
2a6dbc
2a6dbc
* Thu Feb 11 2016 Robert Kuska <rkuska@redhat.com> - 3.5.1-1
2a6dbc
- Update to 3.5.1
2a6dbc
2a6dbc
* Tue Nov 24 2015 Robert Kuska <rkuska@redhat.com> - 3.5.0-6
2a6dbc
- Build python3 for scl
2a6dbc
2a6dbc
* Sun Nov 15 2015 Robert Kuska <rkuska@redhat.com> - 3.5.0-5
2a6dbc
- Remove versioned libpython from devel package
2a6dbc
2a6dbc
* Fri Nov 13 2015 Than Ngo <than@redhat.com> 3.5.0-4
2a6dbc
- add correct arch for ppc64/ppc64le to fix build failure
2a6dbc
2a6dbc
* Wed Nov 11 2015 Robert Kuska <rkuska@redhat.com> - 3.5.0-3
2a6dbc
- Hide the private _Py_atomic_xxx symbols from public header
2a6dbc
2a6dbc
* Wed Oct 14 2015 Robert Kuska <rkuska@redhat.com> - 3.5.0-2
2a6dbc
- Rebuild with wheel set to 1
2a6dbc
2a6dbc
* Tue Sep 15 2015 Matej Stuchlik <mstuchli@redhat.com> - 3.5.0-1
2a6dbc
- Update to 3.5.0
2a6dbc
2a6dbc
* Mon Jun 29 2015 Thomas Spura <tomspur@fedoraproject.org> - 3.4.3-4
2a6dbc
- python3-devel: Require python-macros for version independant macros such as
2a6dbc
  python_provide. See fpc#281 and fpc#534.
2a6dbc
2a6dbc
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.3-3
2a6dbc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
2a6dbc
2a6dbc
* Wed Jun 17 2015 Matej Stuchlik <mstuchli@redhat.com> - 3.4.3-4
2a6dbc
- Use 1024bit DH key in test_ssl
2a6dbc
- Use -O0 when compiling -debug build
2a6dbc
- Update pip version variable to the version we actually ship
2a6dbc
2a6dbc
* Wed Jun 17 2015 Matej Stuchlik <mstuchli@redhat.com> - 3.4.3-3
2a6dbc
- Make relocating Python by changing _prefix actually work
2a6dbc
Resolves: rhbz#1231801
2a6dbc
2a6dbc
* Mon May  4 2015 Peter Robinson <pbrobinson@fedoraproject.org> 3.4.3-2
2a6dbc
- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches
2a6dbc
2a6dbc
* Thu Mar 12 2015 Matej Stuchlik <mstuchli@redhat.com> - 3.4.3-1
2a6dbc
- Updated to 3.4.3
2a6dbc
- BuildPython now accepts additional build options
2a6dbc
- Temporarily disabled test_gdb on arm (rhbz#1196181)
2a6dbc
2a6dbc
* Wed Feb 25 2015 Matej Stuchlik <mstuchli@redhat.com> - 3.4.2-7
2a6dbc
- Fixed undefined behaviour in faulthandler which caused test to hang on x86_64
2a6dbc
  (http://bugs.python.org/issue23433)
2a6dbc
2a6dbc
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 3.4.2-6
2a6dbc
- Rebuilt for Fedora 23 Change
2a6dbc
  https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
2a6dbc
2a6dbc
* Tue Feb 17 2015 Ville Skyttä <ville.skytta@iki.fi> - 3.4.2-5
2a6dbc
- Own systemtap dirs (#710733)
2a6dbc
2a6dbc
* Mon Jan 12 2015 Dan Horák <dan[at]danny.cz> - 3.4.2-4
2a6dbc
- build with valgrind on ppc64le
2a6dbc
- disable test_gdb on s390(x) until rhbz#1181034 is resolved
2a6dbc
2a6dbc
* Tue Dec 16 2014 Robert Kuska <rkuska@redhat.com> - 3.4.2-3
2a6dbc
- New patches: 170 (gc asserts), 200 (gettext headers),
2a6dbc
  201 (gdbm memory leak)
2a6dbc
2a6dbc
* Thu Dec 11 2014 Robert Kuska <rkuska@redhat.com> - 3.4.2-2
2a6dbc
- OpenSSL disabled SSLv3 in SSLv23 method
2a6dbc
2a6dbc
* Thu Nov 13 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.2-1
2a6dbc
- Update to 3.4.2
2a6dbc
- Refreshed patches: 156 (gdb autoload)
2a6dbc
- Removed: 195 (Werror declaration), 197 (CVE-2014-4650)
2a6dbc
2a6dbc
* Mon Nov 03 2014 Slavek Kabrda <bkabrda@redhat.com> - 3.4.1-16
2a6dbc
- Fix CVE-2014-4650 - CGIHTTPServer URL handling
2a6dbc
Resolves: rhbz#1113529
2a6dbc
2a6dbc
* Sun Sep 07 2014 Karsten Hopp <karsten@redhat.com> 3.4.1-15
2a6dbc
- exclude test_gdb on ppc* (rhbz#1132488)
2a6dbc
2a6dbc
* Thu Aug 21 2014 Slavek Kabrda <bkabrda@redhat.com> - 3.4.1-14
2a6dbc
- Update rewheel patch with fix from https://github.com/bkabrda/rewheel/pull/1
2a6dbc
2a6dbc
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.1-13
2a6dbc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
2a6dbc
2a6dbc
* Sun Jun  8 2014 Peter Robinson <pbrobinson@fedoraproject.org> 3.4.1-12
2a6dbc
- aarch64 has valgrind, just list those that don't support it
2a6dbc
2a6dbc
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.1-11
2a6dbc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
2a6dbc
2a6dbc
* Wed Jun 04 2014 Karsten Hopp <karsten@redhat.com> 3.4.1-10
2a6dbc
- bump release and rebuild to link with the correct tcl/tk libs on ppcle
2a6dbc
2a6dbc
* Tue Jun 03 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.1-9
2a6dbc
- Change paths to bundled projects in rewheel patch
2a6dbc
2a6dbc
* Fri May 30 2014 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-8
2a6dbc
- In config script, use uname -m to write the arch
2a6dbc
2a6dbc
* Thu May 29 2014 Dan Horák <dan[at]danny.cz> - 3.4.1-7
2a6dbc
- update the arch list where valgrind exists - %%power64 includes also
2a6dbc
    ppc64le which is not supported yet
2a6dbc
2a6dbc
* Thu May 29 2014 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-6
2a6dbc
- Forward arguments to the arch specific config script
2a6dbc
Resolves: rhbz#1102683
2a6dbc
2a6dbc
* Wed May 28 2014 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-5
2a6dbc
- Rename python3.Xm-config script to arch specific.
2a6dbc
Resolves: rhbz#1091815
2a6dbc
2a6dbc
* Tue May 27 2014 Bohuslav Kabrda <bkabrda@redhat.com> - 3.4.1-4
2a6dbc
- Use python3-*, not python-* runtime requires on setuptools and pip
2a6dbc
- rebuild for tcl-8.6
2a6dbc
2a6dbc
* Tue May 27 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.1-3
2a6dbc
- Update the rewheel module
2a6dbc
2a6dbc
* Mon May 26 2014 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-2
2a6dbc
- Fix multilib dependencies.
2a6dbc
Resolves: rhbz#1091815
2a6dbc
2a6dbc
* Sun May 25 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.1-1
2a6dbc
- Update to Python 3.4.1
2a6dbc
2a6dbc
* Sun May 25 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.0-8
2a6dbc
- Fix test_gdb failure on ppc64le
2a6dbc
Resolves: rhbz#1095355
2a6dbc
2a6dbc
* Thu May 22 2014 Miro Hrončok <mhroncok@redhat.com> - 3.4.0-7
2a6dbc
- Add macro %%python3_version_nodots
2a6dbc
2a6dbc
* Sun May 18 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.0-6
2a6dbc
- Disable test_faulthandler, test_gdb on aarch64
2a6dbc
Resolves: rhbz#1045193
2a6dbc
2a6dbc
* Fri May 16 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.0-5
2a6dbc
- Don't add Werror=declaration-after-statement for extension
2a6dbc
  modules through setup.py (PyBT#21121)
2a6dbc
2a6dbc
* Mon May 12 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.0-4
2a6dbc
- Add setuptools and pip to Requires
2a6dbc
2a6dbc
* Tue Apr 29 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.0-3
2a6dbc
- Point __os_install_post to correct brp-* files
2a6dbc
2a6dbc
* Tue Apr 15 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.0-2
2a6dbc
- Temporarily disable tests requiring SIGHUP (rhbz#1088233)
2a6dbc
2a6dbc
* Tue Apr 15 2014 Matej Stuchlik <mstuchli@redhat.com> - 3.4.0-1
2a6dbc
- Update to Python 3.4 final
2a6dbc
- Add patch adding the rewheel module
2a6dbc
- Merge patches from master
2a6dbc
2a6dbc
* Wed Jan 08 2014 Bohuslav Kabrda <bkabrda@redhat.com> - 3.4.0-0.1.b2
2a6dbc
- Update to Python 3.4 beta 2.
2a6dbc
- Refreshed patches: 55 (systemtap), 146 (hashlib-fips), 154 (test_gdb noise)
2a6dbc
- Dropped patches: 114 (statvfs constants), 177 (platform unicode)
2a6dbc
2a6dbc
* Mon Nov 25 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.4.0-0.1.b1
2a6dbc
- Update to Python 3.4 beta 1.
2a6dbc
- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT
2a6dbc
ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips),
2a6dbc
157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port)
2a6dbc
- Removed patch 00187 (remove pthread atfork; upstreamed)
2a6dbc
2a6dbc
* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.4.0-0.1.a4
2a6dbc
- Update to Python 3.4 alpha 4.
2a6dbc
- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
2a6dbc
114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
2a6dbc
test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
2a6dbc
157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
2a6dbc
from py_compile)
2a6dbc
- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
2a6dbc
Koji), 142 (the mock issue that caused this is fixed)
2a6dbc
- Added patch 187 (remove thread atfork) - will be in next version
2a6dbc
- Refreshed script for checking pyc and pyo timestamps with new ignored files.
2a6dbc
- The fips patch is disabled for now until upstream makes a final decision
2a6dbc
what to do with sha3 implementation for 3.4.0.
2a6dbc
2a6dbc
* Wed Oct 30 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.3.2-7
2a6dbc
- Bytecompile all *.py files properly during build (rhbz#1023607)
2a6dbc
2a6dbc
* Fri Aug 23 2013 Matej Stuchlik <mstuchli@redhat.com> - 3.3.2-6
2a6dbc
- Added fix for CVE-2013-4238 (rhbz#996399)
2a6dbc
2a6dbc
* Fri Jul 26 2013 Dennis Gilmore <dennis@ausil.us> - 3.3.2-5
2a6dbc
- fix up indentation in arm patch
2a6dbc
2a6dbc
* Fri Jul 26 2013 Dennis Gilmore <dennis@ausil.us> - 3.3.2-4
2a6dbc
- disable a test that fails on arm
2a6dbc
- enable valgrind support on arm arches
2a6dbc
2a6dbc
* Tue Jul 02 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.3.2-3
2a6dbc
- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696).
2a6dbc
2a6dbc
* Mon May 20 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.3.2-2
2a6dbc
- Add patch for CVE-2013-2099 (rhbz#963261).
2a6dbc
2a6dbc
* Thu May 16 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.3.2-1
2a6dbc
- Updated to Python 3.3.2.
2a6dbc
- Refreshed patches: 153 (gdb test noise)
2a6dbc
- Dropped patches: 175 (configure -Wformat, fixed upstream), 182 (gdb
2a6dbc
test threads)
2a6dbc
- Synced patch numbers with python.spec.
2a6dbc
2a6dbc
* Thu May  9 2013 David Malcolm <dmalcolm@redhat.com> - 3.3.1-4
2a6dbc
- fix test.test_gdb.PyBtTests.test_threads on ppc64 (patch 181; rhbz#960010)
2a6dbc
2a6dbc
* Thu May 02 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.3.1-3
2a6dbc
- Add patch that enables building on ppc64p7 (replace the sed, so that
2a6dbc
we get consistent with python2 spec and it's more obvious that we're doing it.
2a6dbc
2a6dbc
* Wed Apr 24 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.3.1-2
2a6dbc
- Add fix for gdb tests failing on arm, rhbz#951802.
2a6dbc
2a6dbc
* Tue Apr 09 2013 Bohuslav Kabrda <bkabrda@redhat.com> - 3.3.1-1
2a6dbc
- Updated to Python 3.3.1.
2a6dbc
- Refreshed patches: 55 (systemtap), 111 (no static lib), 146 (hashlib fips),
2a6dbc
153 (fix test_gdb noise), 157 (uid, gid overflow - fixed upstream, just
2a6dbc
keeping few more downstream tests)
2a6dbc
- Removed patches: 3 (audiotest.au made it to upstream tarball)
2a6dbc
- Removed workaround for http://bugs.python.org/issue14774, discussed in
2a6dbc
http://bugs.python.org/issue15298 and fixed in revision 24d52d3060e8.
2a6dbc
2a6dbc
* Mon Mar 25 2013 David Malcolm <dmalcolm@redhat.com> - 3.3.0-10
2a6dbc
- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
2a6dbc
2a6dbc
* Mon Mar 25 2013 David Malcolm <dmalcolm@redhat.com> - 3.3.0-9
2a6dbc
- renumber patches to keep them in sync with python.spec
2a6dbc
2a6dbc
* Fri Mar 15 2013 Toshio Kuratomi <toshio@fedoraproject.org> - 3.3.0-8
2a6dbc
- Fix error in platform.platform() when non-ascii byte strings are decoded to
2a6dbc
  unicode (rhbz#922149)
2a6dbc
2a6dbc
* Thu Mar 14 2013 Toshio Kuratomi <toshio@fedoraproject.org> - 3.3.0-7
2a6dbc
- Fix up shared library extension (rhbz#889784)
2a6dbc
2a6dbc
* Thu Mar 07 2013 Karsten Hopp <karsten@redhat.com> 3.3.0-6
2a6dbc
- add ppc64p7 build target, optimized for Power7
2a6dbc
2a6dbc
* Mon Mar  4 2013 David Malcolm <dmalcolm@redhat.com> - 3.3.0-5
2a6dbc
- add workaround for ENOPROTOOPT seen running selftests in Koji
2a6dbc
(rhbz#913732)
2a6dbc
2a6dbc
* Mon Mar  4 2013 David Malcolm <dmalcolm@redhat.com> - 3.3.0-4
2a6dbc
- remove config flag from /etc/rpm/macros.{python3|pybytecompile}
2a6dbc
2a6dbc
* Mon Feb 11 2013 David Malcolm <dmalcolm@redhat.com> - 3.3.0-3
2a6dbc
- add aarch64 (rhbz#909783)
2a6dbc
2a6dbc
* Thu Nov 29 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-2
2a6dbc
- add BR on bluez-libs-devel (rhbz#879720)
2a6dbc
2a6dbc
* Sat Sep 29 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-1
2a6dbc
- 3.3.0rc3 -> 3.3.0; drop alphatag
2a6dbc
2a6dbc
* Mon Sep 24 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-0.6.rc3
2a6dbc
- 3.3.0rc2 -> 3.3.0rc3
2a6dbc
2a6dbc
* Mon Sep 10 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-0.5.rc2
2a6dbc
- 3.3.0rc1 -> 3.3.0rc2; refresh patch 55
2a6dbc
2a6dbc
* Mon Aug 27 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-0.4.rc1
2a6dbc
- 3.3.0b2 -> 3.3.0rc1; refresh patches 3, 55
2a6dbc
2a6dbc
* Mon Aug 13 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-0.3.b2
2a6dbc
- 3.3b1 -> 3.3b2; drop upstreamed patch 152; refresh patches 3, 102, 111,
2a6dbc
134, 153, 160; regenenerate autotools patch; rework systemtap patch to work
2a6dbc
correctly when LANG=C (patch 55); importlib.test was moved to
2a6dbc
test.test_importlib upstream
2a6dbc
2a6dbc
* Mon Aug 13 2012 Karsten Hopp <karsten@redhat.com> 3.3.0-0.2.b1
2a6dbc
- disable some failing checks on PPC* (rhbz#846849)
2a6dbc
2a6dbc
* Fri Aug  3 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-0.1.b1
2a6dbc
- 3.2 -> 3.3: https://fedoraproject.org/wiki/Features/Python_3.3
2a6dbc
- 3.3.0b1: refresh patches 3, 55, 102, 111, 113, 114, 134, 157; drop upstream
2a6dbc
patch 147; regenenerate autotools patch; drop "--with-wide-unicode" from
2a6dbc
configure (PEP 393); "plat-linux2" -> "plat-linux" (upstream issue 12326);
2a6dbc
"bz2" -> "_bz2" and "crypt" -> "_crypt"; egg-info files are no longer shipped
2a6dbc
for stdlib (upstream issues 10645 and 12218); email/test moved to
2a6dbc
test/test_email; add /usr/bin/pyvenv[-3.3] and venv module (PEP 405); add
2a6dbc
_decimal and _lzma modules; make collections modules explicit in payload again
2a6dbc
(upstream issue 11085); add _testbuffer module to tests subpackage (added in
2a6dbc
upstream commit 3f9b3b6f7ff0); fix test failures (patches 160 and 161);
2a6dbc
workaround erroneously shared _sysconfigdata.py upstream issue #14774; fix
2a6dbc
distutils.sysconfig traceback (patch 162); add BuildRequires: xz-devel (for
2a6dbc
_lzma module); skip some tests within test_socket (patch 163)
2a6dbc
2a6dbc
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.3-11
2a6dbc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
2a6dbc
2a6dbc
* Fri Jul 20 2012 David Malcolm <dmalcolm@redhat.com> - 3.3.0-0.1.b1
2a6dbc
2a6dbc
* Fri Jun 22 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-10
2a6dbc
- use macro for power64 (rhbz#834653)
2a6dbc
2a6dbc
* Mon Jun 18 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-9
2a6dbc
- fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
2a6dbc
2a6dbc
* Wed May 30 2012 Bohuslav Kabrda <bkabrda@redhat.com> - 3.2.3-8
2a6dbc
- fix tapset for debug build
2a6dbc
2a6dbc
* Tue May 15 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-7
2a6dbc
- update uid/gid handling to avoid int overflows seen with uid/gid
2a6dbc
values >= 2^31 on 32-bit architectures (patch 157; rhbz#697470)
2a6dbc
2a6dbc
* Fri May  4 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-6
2a6dbc
- renumber autotools patch from 300 to 5000
2a6dbc
- specfile cleanups
2a6dbc
2a6dbc
* Mon Apr 30 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-5
2a6dbc
- fix test_gdb.py (patch 156; rhbz#817072)
2a6dbc
2a6dbc
* Fri Apr 20 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-4
2a6dbc
- avoid allocating thunks in ctypes unless absolutely necessary, to avoid
2a6dbc
generating SELinux denials on "import ctypes" and "import uuid" when embedding
2a6dbc
Python within httpd (patch 155; rhbz#814391)
2a6dbc
2a6dbc
* Fri Apr 20 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-3
2a6dbc
- add explicit version requirements on expat to avoid linkage problems with
2a6dbc
XML_SetHashSalt
2a6dbc
2a6dbc
* Thu Apr 12 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-2
2a6dbc
- fix test_gdb (patch 153)
2a6dbc
2a6dbc
* Wed Apr 11 2012 David Malcolm <dmalcolm@redhat.com> - 3.2.3-1
2a6dbc
- 3.2.3; refresh patch 102 (lib64); drop upstream patches 148 (gdbm magic
2a6dbc
values), 149 (__pycache__ fix); add patch 152 (test_gdb regex)
2a6dbc
2a6dbc
* Thu Feb  9 2012 Thomas Spura <tomspur@fedoraproject.org> - 3.2.2-13
2a6dbc
- use newly installed python for byte compiling (now for real)
2a6dbc
2a6dbc
* Sun Feb  5 2012 Thomas Spura <tomspur@fedoraproject.org> - 3.2.2-12
2a6dbc
- use newly installed python for byte compiling (#787498)
2a6dbc
2a6dbc
* Wed Jan  4 2012 Ville Skyttä <ville.skytta@iki.fi> - 3.2.2-11
2a6dbc
- Build with $RPM_LD_FLAGS (#756863).
2a6dbc
- Use xz-compressed source tarball.
2a6dbc
2a6dbc
* Wed Dec 07 2011 Karsten Hopp <karsten@redhat.com> 3.2.2-10
2a6dbc
- disable rAssertAlmostEqual in test_cmath on PPC (#750811)
2a6dbc
2a6dbc
* Mon Oct 17 2011 Rex Dieter <rdieter@fedoraproject.org> - 3.2.2-9
2a6dbc
- python3-devel missing autogenerated pkgconfig() provides (#746751)
2a6dbc
2a6dbc
* Mon Oct 10 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-8
2a6dbc
- cherrypick fix for distutils not using __pycache__ when byte-compiling
2a6dbc
files (rhbz#722578)
2a6dbc
2a6dbc
* Fri Sep 30 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-7
2a6dbc
- re-enable gdbm (patch 148; rhbz#742242)
2a6dbc
2a6dbc
* Fri Sep 16 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-6
2a6dbc
- add a sys._debugmallocstats() function (patch 147)
2a6dbc
2a6dbc
* Wed Sep 14 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-5
2a6dbc
- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
2a6dbc
_sha* modules, relying on _hashlib in hashlib (rhbz#563986; patch 146)
2a6dbc
2a6dbc
* Tue Sep 13 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-4
2a6dbc
- disable gdbm module to prepare for gdbm soname bump
2a6dbc
2a6dbc
* Mon Sep 12 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-3
2a6dbc
- renumber and rename patches for consistency with python.spec (8 to 55, 106
2a6dbc
to 104, 6 to 111, 104 to 113, 105 to 114, 125, 131, 130 to 143)
2a6dbc
2a6dbc
* Sat Sep 10 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-2
2a6dbc
- rewrite of "check", introducing downstream-only hooks for skipping specific
2a6dbc
cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more
2a6dbc
fine-grained manner than before; (patches 106, 133-142 sparsely, moving
2a6dbc
patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141)
2a6dbc
2a6dbc
* Tue Sep  6 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-1
2a6dbc
- 3.2.2
2a6dbc
2a6dbc
* Thu Sep  1 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.1-7
2a6dbc
- run selftests with "--verbose"
2a6dbc
- disable parts of test_io on ppc (rhbz#732998)
2a6dbc
2a6dbc
* Wed Aug 31 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.1-6
2a6dbc
- use "--findleaks --verbose3" when running test suite
2a6dbc
2a6dbc
* Tue Aug 23 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.1-5
2a6dbc
- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
2a6dbc
ppc to avoid aliasing violations (patch 130; rhbz#698726)
2a6dbc
2a6dbc
* Tue Aug 23 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.1-4
2a6dbc
- don't use --with-tsc on ppc64 debug builds (rhbz#698726)
2a6dbc
2a6dbc
* Thu Aug 18 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.1-3
2a6dbc
- add %%python3_version to the rpm macros (rhbz#719082)
2a6dbc
2a6dbc
* Mon Jul 11 2011 Dennis Gilmore <dennis@ausil.us> - 3.2.1-2
2a6dbc
- disable some tests on sparc arches
2a6dbc
2a6dbc
* Mon Jul 11 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.1-1
2a6dbc
- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling
2a6dbc
of static library build (due to Modules/_testembed; patch 6), autotool
2a6dbc
intermediates (patch 300)
2a6dbc
2a6dbc
* Fri Jul  8 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-5
2a6dbc
- use the gdb hooks from the upstream tarball, rather than keeping our own copy
2a6dbc
2a6dbc
* Fri Jul  8 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-4
2a6dbc
- don't run test_openpty and test_pty in %%check
2a6dbc
2a6dbc
* Fri Jul  8 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-3
2a6dbc
- cleanup of BuildRequires; add comment headings to specfile sections
2a6dbc
2a6dbc
* Tue Apr 19 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-2
2a6dbc
- fix the libpython.stp systemtap tapset (rhbz#697730)
2a6dbc
2a6dbc
* Mon Feb 21 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-1
2a6dbc
- 3.2
2a6dbc
- drop alphatag
2a6dbc
- regenerate autotool patch
2a6dbc
2a6dbc
* Mon Feb 14 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-0.13.rc3
2a6dbc
- add a /usr/bin/python3-debug symlink within the debug subpackage
2a6dbc
2a6dbc
* Mon Feb 14 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-0.12.rc3
2a6dbc
- 3.2rc3
2a6dbc
- regenerate autotool patch
2a6dbc
2a6dbc
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2-0.11.rc2
2a6dbc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
2a6dbc
2a6dbc
* Mon Jan 31 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-0.10.rc2
2a6dbc
- 3.2rc2
2a6dbc
2a6dbc
* Mon Jan 17 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-0.9.rc1
2a6dbc
- 3.2rc1
2a6dbc
- rework patch 6 (static lib removal)
2a6dbc
- remove upstreamed patch 130 (ppc debug build)
2a6dbc
- regenerate patch 300 (autotool intermediates)
2a6dbc
- updated packaging to reflect upstream rewrite of "Demo" (issue 7962)
2a6dbc
- added libpython3.so and 2to3-3.2
2a6dbc
2a6dbc
* Wed Jan  5 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-0.8.b2
2a6dbc
- set EXTRA_CFLAGS to our CFLAGS, rather than overriding OPT, fixing a linker
2a6dbc
error with dynamic annotations (when configured using --with-valgrind)
2a6dbc
- fix the ppc build of the debug configuration (patch 130; rhbz#661510)
2a6dbc
2a6dbc
* Tue Jan  4 2011 David Malcolm <dmalcolm@redhat.com> - 3.2-0.7.b2
2a6dbc
- add --with-valgrind to configuration (on architectures that support this)
2a6dbc
2a6dbc
* Wed Dec 29 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.6.b2
2a6dbc
- work around test_subprocess failure seen in koji (patch 129)
2a6dbc
2a6dbc
* Tue Dec 28 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.5.b2
2a6dbc
- 3.2b2
2a6dbc
- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
2a6dbc
patch 8 (systemtap), patch 102 (lib64)
2a6dbc
- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
2a6dbc
patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
2a6dbc
fixed upstream)
2a6dbc
- regenerate patch 300 (autotool intermediates)
2a6dbc
- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
2a6dbc
patch 128)
2a6dbc
- stop using runtest.sh in %%check (dropped by upstream), replacing with
2a6dbc
regrtest; fixup list of failing tests
2a6dbc
- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
2a6dbc
- rework manifests of shared libraries to use "SOABI_" macros, reflecting
2a6dbc
PEP 3149
2a6dbc
- drop itertools, operator and _collections modules from the manifests as py3k
2a6dbc
commit r84058 moved these inside libpython; json/tests moved to test/json_tests
2a6dbc
- move turtle code into the tkinter subpackage
2a6dbc
2a6dbc
* Wed Nov 17 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.5.a1
2a6dbc
- fix sysconfig to not rely on the -devel subpackage (rhbz#653058)
2a6dbc
2a6dbc
* Thu Sep  9 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.4.a1
2a6dbc
- move most of the content of the core package to the libs subpackage, given
2a6dbc
that the libs aren't meaningfully usable without the standard libraries
2a6dbc
2a6dbc
* Wed Sep  8 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.3.a1
2a6dbc
- Move test.support to core package (rhbz#596258)
2a6dbc
- Add various missing __pycache__ directories to payload
2a6dbc
2a6dbc
* Sun Aug 22 2010 Toshio Kuratomi <toshio@fedoraproject.org> - 3.2-0.2.a1
2a6dbc
- Add __pycache__ directory for site-packages
2a6dbc
2a6dbc
* Sun Aug 22 2010 Thomas Spura <tomspur@fedoraproject.org> - 3.2-0.1.a1
2a6dbc
- on 64bit "stdlib" was still "/usr/lib/python*" (modify *lib64.patch)
2a6dbc
- make find-provides-without-python-sonames.sh 64bit aware
2a6dbc
2a6dbc
* Sat Aug 21 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.0.a1
2a6dbc
- 3.2a1; add alphatag
2a6dbc
- rework %%files in the light of PEP 3147 (__pycache__)
2a6dbc
- drop our configuration patch to Setup.dist (patch 0): setup.py should do a
2a6dbc
better job of things, and the %%files explicitly lists our modules (r82746
2a6dbc
appears to break the old way of doing things).  This leads to various modules
2a6dbc
changing from "foomodule.so" to "foo.so".  It also leads to the optimized build
2a6dbc
dropping the _sha1, _sha256 and _sha512 modules, but these are provided by
2a6dbc
_hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for
2a6dbc
testing/devel purposes)
2a6dbc
- fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase
2a6dbc
- remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat
2a6dbc
plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983)
2a6dbc
- add machinery for rebuilding "configure" and friends, using the correct
2a6dbc
version of autoconf (patch 300)
2a6dbc
- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
2a6dbc
- "modulator" was removed upstream
2a6dbc
- drop "-b" from patch applications affecting .py files to avoid littering the
2a6dbc
installation tree
2a6dbc
2a6dbc
* Thu Aug 19 2010 Toshio Kuratomi <toshio@fedoraproject.org> - 3.1.2-13
2a6dbc
- Turn on computed-gotos.
2a6dbc
- Fix for parallel make and graminit.c
2a6dbc
2a6dbc
* Fri Jul  2 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-12
2a6dbc
- rebuild
2a6dbc
2a6dbc
* Fri Jul  2 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-11
2a6dbc
- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
2a6dbc
a segfault running test_pyexpat.py (patch 110; upstream issue 9054; rhbz#610312)
2a6dbc
2a6dbc
* Fri Jun  4 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-10
2a6dbc
- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
2a6dbc
- reformat whitespace in audioop.c (patch 106)
2a6dbc
- CVE-2010-1634: fix various integer overflow checks in the audioop
2a6dbc
module (patch 107)
2a6dbc
- CVE-2010-2089: further checks within the audioop module (patch 108)
2a6dbc
- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 109)
2a6dbc
2a6dbc
* Thu May 27 2010 Dan Horák <dan[at]danny.cz> - 3.1.2-9
2a6dbc
- reading the timestamp counter is available only on some arches (see Python/ceval.c)
2a6dbc
2a6dbc
* Wed May 26 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-8
2a6dbc
- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
2a6dbc
(patch 105)
2a6dbc
2a6dbc
* Tue May 25 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-7
2a6dbc
- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
2a6dbc
(patch 104); enable them and the WITH_TSC option within the debug build
2a6dbc
2a6dbc
* Mon May 24 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-6
2a6dbc
- build and install two different configurations of Python 3: debug and
2a6dbc
standard, packaging the debug build in a new "python3-debug" subpackage
2a6dbc
(patch 103)
2a6dbc
2a6dbc
* Tue Apr 13 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-5
2a6dbc
- exclude test_http_cookies when running selftests, due to hang seen on
2a6dbc
http://koji.fedoraproject.org/koji/taskinfo?taskID=2088463 (cancelled after
2a6dbc
11 hours)
2a6dbc
- update python-gdb.py from v5 to py3k version submitted upstream
2a6dbc
2a6dbc
* Wed Mar 31 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-4
2a6dbc
- update python-gdb.py from v4 to v5 (improving performance and stability,
2a6dbc
adding commands)
2a6dbc
2a6dbc
* Thu Mar 25 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-3
2a6dbc
- update python-gdb.py from v3 to v4 (fixing infinite recursion on reference
2a6dbc
cycles and tracebacks on bytes 0x80-0xff in strings, adding handlers for sets
2a6dbc
and exceptions)
2a6dbc
2a6dbc
* Wed Mar 24 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-2
2a6dbc
- refresh gdb hooks to v3 (reworking how they are packaged)
2a6dbc
2a6dbc
* Sun Mar 21 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.2-1
2a6dbc
- update to 3.1.2: http://www.python.org/download/releases/3.1.2/
2a6dbc
- drop upstreamed patch 2 (.pyc permissions handling)
2a6dbc
- drop upstream patch 5 (fix for the test_tk and test_ttk_* selftests)
2a6dbc
- drop upstreamed patch 200 (path-fixing script)
2a6dbc
2a6dbc
* Sat Mar 20 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-28
2a6dbc
- fix typo in libpython.stp (rhbz:575336)
2a6dbc
2a6dbc
* Fri Mar 12 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-27
2a6dbc
- add pyfuntop.stp example (source 7)
2a6dbc
- convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
2a6dbc
consistency with python.spec
2a6dbc
2a6dbc
* Mon Feb 15 2010 Thomas Spura <tomspur@fedoraproject.org> - 3.1.1-26
2a6dbc
- rebuild for new package of redhat-rpm-config (rhbz:564527)
2a6dbc
- use 'install -p' when running 'make install'
2a6dbc
2a6dbc
* Fri Feb 12 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-25
2a6dbc
- split configure options into multiple lines for easy of editing
2a6dbc
- add systemtap static markers (wcohen, mjw, dmalcolm; patch 8), a systemtap
2a6dbc
tapset defining "python.function.entry" and "python.function.return" to make
2a6dbc
the markers easy to use (dmalcolm; source 5), and an example of using the
2a6dbc
tapset to the docs (dmalcolm; source 6) (rhbz:545179)
2a6dbc
2a6dbc
* Mon Feb  8 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-24
2a6dbc
- move the -gdb.py file from %%{_libdir}/INSTSONAME-gdb.py to
2a6dbc
%%{_prefix}/lib/debug/%%{_libdir}/INSTSONAME.debug-gdb.py to avoid noise from
2a6dbc
ldconfig (bug 562980), and which should also ensure it becomes part of the
2a6dbc
debuginfo subpackage, rather than the libs subpackage
2a6dbc
- introduce %%{py_SOVERSION} and %%{py_INSTSONAME} to reflect the upstream
2a6dbc
configure script, and to avoid fragile scripts that try to figure this out
2a6dbc
dynamically (e.g. for the -gdb.py change)
2a6dbc
2a6dbc
* Mon Feb  8 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-23
2a6dbc
- add gdb hooks for easier debugging (Source 4)
2a6dbc
2a6dbc
* Thu Jan 28 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-22
2a6dbc
- update python-3.1.1-config.patch to remove downstream customization of build
2a6dbc
of pyexpat and elementtree modules
2a6dbc
- add patch adapted from upstream (patch 7) to add support for building against
2a6dbc
system expat; add --with-system-expat to "configure" invocation
2a6dbc
- remove embedded copies of expat and zlib from source tree during "prep"
2a6dbc
2a6dbc
* Mon Jan 25 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-21
2a6dbc
- introduce %%{dynload_dir} macro
2a6dbc
- explicitly list all lib-dynload files, rather than dynamically gathering the
2a6dbc
payload into a temporary text file, so that we can be sure what we are
2a6dbc
shipping
2a6dbc
- introduce a macros.pybytecompile source file, to help with packaging python3
2a6dbc
modules (Source3; written by Toshio)
2a6dbc
- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
2a6dbc
plans
2a6dbc
2a6dbc
* Mon Jan 25 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-20
2a6dbc
- change python-3.1.1-config.patch to remove our downstream change to curses
2a6dbc
configuration in Modules/Setup.dist, so that the curses modules are built using
2a6dbc
setup.py with the downstream default (linking against libncursesw.so, rather
2a6dbc
than libncurses.so), rather than within the Makefile; add a test to %%install
2a6dbc
to verify the dso files that the curses module is linked against the correct
2a6dbc
DSO (bug 539917; changes _cursesmodule.so -> _curses.so)
2a6dbc
2a6dbc
* Fri Jan 22 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-19
2a6dbc
- add %%py3dir macro to macros.python3 (to be used during unified python 2/3
2a6dbc
builds for setting up the python3 copy of the source tree)
2a6dbc
2a6dbc
* Wed Jan 20 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-18
2a6dbc
- move lib2to3 from -tools subpackage to main package (bug 556667)
2a6dbc
2a6dbc
* Sun Jan 17 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-17
2a6dbc
- patch Makefile.pre.in to avoid building static library (patch 6, bug 556092)
2a6dbc
2a6dbc
* Fri Jan 15 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-16
2a6dbc
- use the %%{_isa} macro to ensure that the python-devel dependency on python
2a6dbc
is for the correct multilib arch (#555943)
2a6dbc
- delete bundled copy of libffi to make sure we use the system one
2a6dbc
2a6dbc
* Fri Jan 15 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-15
2a6dbc
- fix the URLs output by pydoc so they point at python.org's 3.1 build of the
2a6dbc
docs, rather than the 2.6 build
2a6dbc
2a6dbc
* Wed Jan 13 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-14
2a6dbc
- replace references to /usr with %%{_prefix}; replace references to
2a6dbc
/usr/include with %%{_includedir} (Toshio)
2a6dbc
2a6dbc
* Mon Jan 11 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-13
2a6dbc
- fix permission on find-provides-without-python-sonames.sh from 775 to 755
2a6dbc
2a6dbc
* Mon Jan 11 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-12
2a6dbc
- remove build-time requirements on tix and tk, since we already have
2a6dbc
build-time requirements on the -devel subpackages for each of these (Thomas
2a6dbc
Spura)
2a6dbc
- replace usage of %%define with %%global (Thomas Spura)
2a6dbc
- remove forcing of CC=gcc as this old workaround for bug 109268 appears to
2a6dbc
longer be necessary
2a6dbc
- move various test files from the "tools"/"tkinter" subpackages to the "test"
2a6dbc
subpackage
2a6dbc
2a6dbc
* Thu Jan  7 2010 David Malcolm <dmalcolm@redhat.com> - 3.1.1-11
2a6dbc
- add %%check section (thanks to Thomas Spura)
2a6dbc
- update patch 4 to use correct shebang line
2a6dbc
- get rid of stray patch file from buildroot
2a6dbc
2a6dbc
* Tue Nov 17 2009 Andrew McNabb <amcnabb@mcnabbs.org> - 3.1.1-10
2a6dbc
- switched a few instances of "find |xargs" to "find -exec" for consistency.
2a6dbc
- made the description of __os_install_post more accurate.
2a6dbc
2a6dbc
* Wed Nov  4 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-9
2a6dbc
- add macros.python3 to the -devel subpackage, containing common macros for use
2a6dbc
when packaging python3 modules
2a6dbc
2a6dbc
* Tue Nov  3 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-8
2a6dbc
- add a provides of "python(abi)" (see bug 532118)
2a6dbc
- fix issues identified by a.badger in package review (bug 526126, comment 39):
2a6dbc
  - use "3" thoughout metadata, rather than "3.*"
2a6dbc
  - remove conditional around "pkg-config openssl"
2a6dbc
  - use standard cleanup of RPM_BUILD_ROOT
2a6dbc
  - replace hardcoded references to /usr with _prefix macro
2a6dbc
  - stop removing egg-info files
2a6dbc
  - use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing
2a6dbc
up shebang lines
2a6dbc
  - stop attempting to remove no-longer-present .cvsignore files
2a6dbc
  - move the post/postun sections above the "files" sections
2a6dbc
2a6dbc
* Thu Oct 29 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-7
2a6dbc
- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1
2a6dbc
flag is used by default in the upstream code
2a6dbc
- "Makefile" and the config-32/64.h file are needed by distutils/sysconfig.py
2a6dbc
_init_posix(), so we include them in the core package, along with their parent
2a6dbc
directories (bug 531901)
2a6dbc
2a6dbc
* Tue Oct 27 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-6
2a6dbc
- reword description, based on suggestion by amcnabb
2a6dbc
- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively)
2a6dbc
- fix the test_tk and test_ttk_* selftests (patch 5)
2a6dbc
- fix up the specfile's handling of shebang/perms to avoid corrupting
2a6dbc
test_httpservers.py (sed command suggested by amcnabb)
2a6dbc
2a6dbc
* Thu Oct 22 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-5
2a6dbc
- fixup importlib/_bootstrap.py so that it correctly handles being unable to
2a6dbc
open .pyc files for writing (patch 2, upstream issue 7187)
2a6dbc
- actually apply the rpath patch (patch 1)
2a6dbc
2a6dbc
* Thu Oct 22 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-4
2a6dbc
- update patch0's setup of the crypt module to link it against libcrypt
2a6dbc
- update patch0 to comment "datetimemodule" back out, so that it is built
2a6dbc
using setup.py (see Setup, option 3), thus linking it statically against
2a6dbc
timemodule.c and thus avoiding a run-time "undefined symbol:
2a6dbc
_PyTime_DoubleToTimet" failure on "import datetime"
2a6dbc
2a6dbc
* Wed Oct 21 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-3
2a6dbc
- remove executable flag from various files that shouldn't have it
2a6dbc
- fix end-of-line encodings
2a6dbc
- fix a character encoding
2a6dbc
2a6dbc
* Tue Oct 20 2009 David Malcolm <dmalcolm@redhat.com> - 3.1.1-2
2a6dbc
- disable invocation of brp-python-bytecompile in postprocessing, since
2a6dbc
it would be with the wrong version of python (adapted from ivazquez'
2a6dbc
python3000 specfile)
2a6dbc
- use a custom implementation of __find_provides in order to filter out bogus
2a6dbc
provides lines for the various .so modules
2a6dbc
- fixup distutils/unixccompiler.py to remove standard library path from rpath
2a6dbc
(patch 1, was Patch0 in ivazquez' python3000 specfile)
2a6dbc
- split out libraries into a -libs subpackage
2a6dbc
- update summaries and descriptions, basing content on ivazquez' specfile
2a6dbc
- fixup executable permissions on .py, .xpm and .xbm files, based on work in
2a6dbc
ivazquez's specfile
2a6dbc
- get rid of DOS batch files
2a6dbc
- fixup permissions for shared libraries from non-standard 555 to standard 755
2a6dbc
- move /usr/bin/python*-config to the -devel subpackage
2a6dbc
- mark various directories as being documentation
2a6dbc
2a6dbc
* Thu Sep 24 2009 Andrew McNabb <amcnabb@mcnabbs.org> 3.1.1-1
2a6dbc
- Initial package for Python 3.
2a6dbc