Sophie

Sophie

distrib > Mageia > 7 > armv7hl > by-pkgid > f3d18286edea62dbae9867ab3593eb8d > files > 23

python3-3.7.6-1.mga7.src.rpm

# NOTES ON BOOTSTRAPING PYTHON 3.x:
#
# Due to a dependency cycle between Python, rpm, pip, setuptools, wheel,
# and other packages, in order to rebase Python 3 one has to build in the
# following order:
#
# 1.  gdb %%bcond_with python
# 2.  rpm-mageia-setup %%bcond_without bootstrap
# 3.  python-rpm-generators %%define bootstrapping_python 1
# 4   python3 (if python3 is build to core/udpates_testing there's no need to use %bcond_with rpmwheels)
# 5.  python-setuptools %%bcond_without bootstrap
# 6.  python-rpm-generators %%define bootstrapping_python 0
# 7.  python-pip %%bcond_without bootstrap
# 8.  python-wheel %%bcond_without bootstrap
# 9.  python-setuptools %%bcond_with bootstrap
# 10. python-pip %%bcond_with bootstrap
# 11. python-wheel %%bcond_with bootstrap
# 12. rpm
# 13. gdb %%bcond_without python
# 14. meson
# 15. python-coverage
# 16. python-nose
# 17. python-cython
# 18. python-yaml
# 19. python-markdown
# 20. python-markupsafe
# 21. python-beaker
# 22. python-six
# 23. python-pbr
# 24. python-argparse
# 25. python-traceback2
# 26. python-linecache2
# 27. python-unittest2
# 28. python-funcsigs
# 29. python-mock
# 30. python-mako
# 31. gobject-introspection
# 32. python-enchant
# 33. file
# 34. rpmlint
# 35. rpm-mageia-setup %%bcond_with bootstrap
    
# Then the most important packages have to be built, starting from their
# various leaf dependencies recursively. After these have been built, a
# targeted rebuild should be requested for the rest.
#
# Currently these packages are recommended to have been built before a targeted
# rebuild after a python abi change:
#   python-sphinx, python-pytest, python-requests

%global docver  3.7.6

%global pybasever 3.7
%global familyver 3

#pybasever without the dot:
%global pyshortver 37

# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
# Uses upstream bundled prebuilt wheels otherwise
%bcond_without rpmwheels

# Run the test suite in %%check
%bcond_without tests

# Support for the GDB debugger
%bcond_without gdb_hooks

# The dbm.gnu module (key-value database)
%bcond_without gdbm

# Support for the Valgrind debugger/profiler
%ifarch %{valgrind_arches}
%bcond_without valgrind
%else
%bcond_with valgrind
%endif

# Some defines to ease files list
%global pylibdir %{_libdir}/python%{pybasever}
%global dynload_dir %{pylibdir}/lib-dynload
%global site_packages %{pylibdir}/site-packages

# ABIFLAGS, LDVERSION and SOABI are in the upstream configure.ac
# See PEP 3149 for some background: http://www.python.org/dev/peps/pep-3149/
%global ABIFLAGS_optimized m

%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}

%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}

# All bytecode files are in a __pycache__ subdirectory, with a name
# reflecting the version of the bytecode.
# See PEP 3147: http://www.python.org/dev/peps/pep-3147/
# For example,
#   foo/bar.py
# has bytecode at:
#   foo/__pycache__/bar.cpython-%%{pyshortver}.pyc
#   foo/__pycache__/bar.cpython-%%{pyshortver}.opt-1.pyc
#   foo/__pycache__/bar.cpython-%%{pyshortver}.opt-2.pyc
%global bytecode_suffixes .cpython-%{pyshortver}*.py?

# Disable automatic bytecompilation. The python3 binary is not yet be
# available in /usr/bin when Python is built. Also, the bytecompilation fails
# on files that test invalid syntax.
%global __brp_python_bytecompile %nil

%define lib_major       %{pybasever}
%define lib_name_orig   libpython%{familyver}
%define lib_name        %mklibname python %{lib_major}
%define develname       %mklibname python3 -d

Summary:        An interpreted, interactive object-oriented programming language
Name:           python3
Version:        3.7.6
Release:        %mkrel 1
License:        Modified CNRI Open Source License
Group:          Development/Python

BuildRequires:  automake
BuildRequires:  gcc-c++
BuildRequires:  blt
BuildRequires:  db-devel
BuildRequires:  pkgconfig(expat)
BuildRequires:  gdbm-devel
BuildRequires:  gmp-devel
BuildRequires:  pkgconfig(libffi)
BuildRequires:  pkgconfig(ncursesw)
BuildRequires:  pkgconfig(openssl) >= 1.1
BuildRequires:  readline-devel
BuildRequires:  termcap-devel
BuildRequires:  tcl
BuildRequires:  pkgconfig(tcl)
BuildRequires:  tk
BuildRequires:  pkgconfig(tk)
BuildRequires:  autoconf
BuildRequires:  pkgconfig(bzip2)
BuildRequires:  pkgconfig(sqlite3)
BuildRequires:  pkgconfig(liblzma)
# uncomment once the emacs part no longer conflict with python 2.X
#BuildRequires: emacs
#BuildRequires: emacs-bin
%if %{with valgrind}
BuildRequires:  pkgconfig(valgrind)
%endif

%if %{with rpmwheels}
BuildRequires:  python-setuptools-wheel
BuildRequires:  python-pip-wheel
%endif

Source0:        https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
Source1:        https://docs.python.org/%{pybasever}/archives/python-%{docver}-docs-html.tar.bz2

# A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built
# Originally written by bkabrda
Source8: check-pyc-timestamps.py

#
# Upstream patches
#

#
# Fedora patches
#

# 00001 #
# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
# Was Patch0 in ivazquez' python3000 specfile:
Patch1:         00001-rpath.patch

# 00102 #
# Change the various install paths to use /usr/lib64/ instead or /usr/lib
# Only used when "%%{_lib}" == "lib64"
# Not yet sent upstream.
Patch102: 00102-lib64.patch

# 00111 #
# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
# a libpythonMAJOR.MINOR.a
# See https://bugzilla.redhat.com/show_bug.cgi?id=556092
# Downstream only: not appropriate for upstream
Patch111: 00111-no-static-lib.patch

# 00132 #
# Add non-standard hooks to unittest for use in the "check" phase below, when
# running selftests within the build:
#   @unittest._skipInRpmBuild(reason)
# for tests that hang or fail intermittently within the build environment, and:
#   @unittest._expectedFailureInRpmBuild
# for tests that always fail within the build environment
#
# The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the
# environment, which we set manually in the appropriate portion of the "check"
# phase below (and which potentially other python-* rpms could set, to reuse
# these unittest hooks in their own "check" phases)
Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch

# 00155 #
# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
# generating SELinux denials on "import ctypes" and "import uuid" when
# embedding Python within httpd
# See https://bugzilla.redhat.com/show_bug.cgi?id=814391
Patch155: 00155-avoid-ctypes-thunks.patch

# 00160 #
# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
# header files in the build chroot, but may not be supported in the running
# kernel, hence we disable this test in an rpm build.
# Adding these was upstream issue http://bugs.python.org/issue10142
# Not yet sent upstream
Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch

# 00163 #
# Some tests within test_socket fail intermittently when run inside Koji;
# disable them using unittest._skipInRpmBuild
# Not yet sent upstream
Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch

# 00170 #
# In debug builds, try to print repr() when a C-level assert fails in the
# garbage collector (typically indicating a reference-counting error
# somewhere else e.g in an extension module)
# The new macros/functions within gcmodule.c are hidden to avoid exposing
# them within the extension API.
# Sent upstream: http://bugs.python.org/issue9263
# See https://bugzilla.redhat.com/show_bug.cgi?id=614680
Patch170: 00170-gc-assertions.patch

# 00178 #
# Don't duplicate various FLAGS in sysconfig values
# http://bugs.python.org/issue17679
# Does not affect python2 AFAICS (different sysconfig values initialization)
Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch

# 00189 #
# Instead of bundled wheels, use our RPM packaged wheels from
# /usr/share/python-wheels
Patch189: 00189-use-rpm-wheels.patch

# 00205 #
# LIBPL variable in makefile takes LIBPL from configure.ac
# but the LIBPL variable defined there doesn't respect libdir macro
Patch205: 00205-make-libpl-respect-lib64.patch

# 00251
# Set values of prefix and exec_prefix in distutils install command
# to /usr/local if executable is /usr/bin/python* and RPM build
# is not detected to make pip and distutils install into separate location
# Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
Patch251: 00251-change-user-install-location.patch

# 00316 #
# We remove the exe files from distutil's bdist_wininst
# So we mark the command as unsupported - and the tests are skipped
Patch316: 00316-mark-bdist_wininst-unsupported.patch

#
# Mageia patches
#
Patch500:        python3-3.7.1-module-linkage.patch
Patch501:        python3-3.5.2-skip-distutils-tests-that-fail-in-rpmbuild.patch
Patch502:        python3-3.7.1-uid-gid-overflows.patch
Patch503:        python3-3.5.2-dont-raise-from-py_compile.patch
Patch504:        python3-3.5.2-remove-hf-from-arm-triplet.patch
Patch506:        python3-3.7.5-python3-config-LIBPLUSED-cmp0004-error.patch


Provides:       python(abi) = %{pybasever}
Provides:       /usr/bin/python%{LDVERSION_optimized}
Provides:       /usr/bin/python%{pybasever}
Requires:       python-rpm-macros
Requires:       python3-rpm-macros

Conflicts:      tkinter3 < %{version}
Requires:       %{lib_name} = %{version}-%{release}

%description
Python is an interpreted, interactive, object-oriented programming
language often compared to Tcl, Perl, Scheme or Java. Python includes
modules, classes, exceptions, very high level dynamic data types and
dynamic typing. Python supports interfaces to many system calls and
libraries, as well as to various windowing systems (X11, Motif, Tk,
Mac and MFC).

Programmers can write new built-in modules for Python in C or C++.
Python can be used as an extension language for applications that
need a programmable interface. This package contains most of the
standard Python modules, as well as modules for interfacing to the
Tix widget set for Tk and RPM.

Note that documentation for Python is provided in the python-docs
package.

%package -n     %{lib_name}
Summary:        Shared libraries for Python %{version}
Group:          System/Libraries
Requires:       %{lib_name}-stdlib = %{version}-%{release}

%description -n %{lib_name}
This packages contains Python shared object library.  Python is an
interpreted, interactive, object-oriented programming language often
compared to Tcl, Perl, Scheme or Java.

%package -n     %{lib_name}-stdlib
Summary:        Python %{version} standard library
Group:          Development/Python
%if %{with rpmwheels}
Requires:	python-setuptools-wheel
Requires:	python-pip-wheel
%else
Provides:	bundled(python3-pip) = 19.2.3
Provides:	bundled(python3-setuptools) = 41.2.0
%endif

%description -n %{lib_name}-stdlib
This package contains Python 3's standard library.
It is normally not used on its own, but as a dependency of Python %{version}.

%package -n     %{lib_name}-testsuite
Summary:        Testsuite for the Python %{version} standard library
Group:          Development/Python
Requires:       %{lib_name}-stdlib = %{version}-%{release}
Requires:       %{lib_name} = %{version}-%{release}
Recommends:     tkinter3

%description -n %{lib_name}-testsuite
The complete testsuite for the Python standard library.
It is normally not used on its own, but as a dependency of Python %{version}.

%package -n     %{develname}
Summary:        The libraries and header files needed for Python development
Group:          Development/Python
Requires:       %{name} = %version
Requires:       %{lib_name} = %{version}-%{release}
Provides:       %{name}-devel = %{version}-%{release}
Provides:       %{lib_name_orig}-devel = %{version}-%{release}
Obsoletes:      %{_lib}python3.1-devel < %{version}
Obsoletes:      %{_lib}python3.2-devel < %{version}
Obsoletes:      %{_lib}python3.3-devel < %{version}
Recommends:     %{lib_name}-testsuite
Recommends:     %{name}-docs

%description -n %{develname}
The Python programming language's interpreter can be extended with
dynamically loaded extensions and can be embedded in other programs.
This package contains the header files and libraries needed to do
these types of tasks.

Install %{develname} if you want to develop Python extensions.  The
python package will also need to be installed.  You'll probably also
want to install the python-docs package, which contains Python
documentation.

%package        docs
Summary:        Documentation for the Python programming language
Requires:       %{name} >= %{version}
Requires:       xdg-utils
Group:          Development/Python
BuildArch:      noarch

%description    docs
The python-docs package contains documentation on the Python
programming language and interpreter.  The documentation is provided
in ASCII text files and in LaTeX source files.

Install the python-docs package if you'd like to use the documentation
for the Python language.

%package -n     tkinter3
Summary:        A graphical user interface for the Python scripting language
Group:          Development/Python
Requires:       %{name} = %{version}-%{release}
Requires:       tcl tk
Provides:       python3-tkinter

%description -n tkinter3
The Tkinter (Tk interface) program is an graphical user interface for
the Python scripting language.

You should install the tkinter package if you'd like to use a graphical
user interface for Python programming.

%package -n     tkinter3-apps
Summary:        Various applications written using tkinter
Group:          Development/Python
Requires:       tkinter3

%description -n tkinter3-apps
Various applications written using tkinter

%prep
%setup -qn Python-%{version}
# Remove all exe files to ensure we are not shipping prebuilt binaries
# note that those are only used to create Microsoft Windows installers
# and that functionality is broken on Linux anyway
find -name '*.exe' -print -delete

# Remove bundled libraries to ensure that we're using the system copy.
rm -r Modules/expat

# Fedora patches
%patch1 -p1

%if "%{_lib}" == "lib64"
%patch102 -p1
%endif
%patch111 -p1
%patch132 -p1
%patch155 -p1
%patch160 -p1
%patch163 -p1
%patch170 -p1
%patch178 -p1

%if %{with rpmwheels}
%patch189 -p1
rm Lib/ensurepip/_bundled/*.whl
%endif

%patch205 -p1
%patch251 -p1
%patch316 -p1

# Mageia patches
%patch500 -p1
%patch501 -p1
%patch502 -p1
%patch503 -p1
%patch504 -p1
%patch506 -p1

# Remove files that should be generated by the build
# (This is after patching, so that we can use patches directly from upstream)
rm configure pyconfig.h.in

# drop Autoconf version requirement
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac

# docs
mkdir html
bzcat %{SOURCE1} | tar x  -C html

find . -type f -print0 | xargs -0 perl -p -i -e 's@/usr/local/bin/python@/usr/bin/python3@'

%build
autoreconf -vfi

# We need -fwrapv
# https://bugs.python.org/issue34096
export OPT="%{optflags} -D_GNU_SOURCE -fPIC -fwrapv"
export CFLAGS="%{optflags} -D_GNU_SOURCE -fPIC -fwrapv"
export CXXFLAGS="%{optflags} -D_GNU_SOURCE -fPIC -fwrapv"

# to fix curses module build
# https://bugs.mageia.org/show_bug.cgi?id=6702
export CPPFLAGS="-I/usr/include/ncursesw"

# Remove -Wl,--no-undefined in accordance with MGA #9395 :
# https://bugs.mageia.org/show_bug.cgi?id=9395
%define _disable_ld_no_undefined 1

%configure2_5x \
  --enable-ipv6 \
  --enable-shared \
  --with-dbmliborder=gdbm \
  --with-system-expat \
  --with-system-ffi \
  --enable-loadable-sqlite-extensions \
  --without-dtrace \
  --with-lto \
  --with-ssl-default-suites=openssl \
%if %{with valgrind}
  --with-valgrind \
%endif
  --with-threads \
  --without-ensurepip

# (misc) if the home is nfs mounted, rmdir fails due to delay
export TMP="/tmp" TMPDIR="/tmp"

make EXTRA_CFLAGS="$CFLAGS" LN="ln -sf"

%install

%if %{with gdb_hooks}
DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
mkdir -p %{buildroot}$DirHoldingGdbPy
%endif # with gdb_hooks

# fix Makefile to get rid of reference to distcc
perl -pi -e "/^CC=/ and s/distcc/gcc/" Makefile

# set the install path
echo '[install_scripts]' >setup.cfg
echo 'install_dir='"${RPM_BUILD_ROOT}/usr/bin" >>setup.cfg

%make_install LN="ln -sf"

%if %{with gdb_hooks}
  # See comment on $DirHoldingGdbPy above
  PathOfGdbPy=$DirHoldingGdbPy/libpython%{pybasever}%{ABIFLAGS_optimized}-%{version}-%{release}.%{_arch}.debug-gdb.py
  cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
%endif # with gdb_hooks

# Install directories for additional packages
install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
%if "%{_lib}" == "lib64"
# The 64-bit version needs to create "site-packages" in /usr/lib/ (for
# pure-Python modules) as well as in /usr/lib64/ (for packages with extension
# modules).
# Note that rpmlint will complain about hardcoded library path;
# this is intentional.
install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
%endif

# overwrite the copied binary with a link
pushd %{buildroot}%{_bindir}
ln -sf python%{LDVERSION_optimized} python%{pybasever}
ln -sf python%{pybasever} python%{familyver}
popd

pushd %{buildroot}%{_libdir}
ln -sf $(ls libpython%{lib_major}*.so.*) libpython%{lib_major}.so
popd

# fix files conflicting with python2
mv %{buildroot}/%{_bindir}/2to3 %{buildroot}/%{_bindir}/python3-2to3

# install pynche as pynche3
cat << EOF > %{buildroot}%{_bindir}/pynche3
#!/usr/bin/bash
exec %{_libdir}/python%{pybasever}/site-packages/pynche/pynche
EOF
rm -f Tools/pynche/*.pyw
cp -r Tools/pynche %{buildroot}%{_libdir}/python%{pybasever}/site-packages/

chmod 755 %{buildroot}%{_bindir}/{idle3,pynche3}

ln -f Tools/pynche/README Tools/pynche/README.pynche

%if %{with valgrind}
install Misc/valgrind-python.supp -D %{buildroot}%{_libdir}/valgrind/valgrind-python3.supp
%endif

mkdir -p %{buildroot}%{_datadir}/applications
cat > %{buildroot}%{_datadir}/applications/%{_real_vendor}-tkinter3.desktop << EOF
[Desktop Entry]
Name=IDLE
Comment=IDE for Python3
Exec=%{_bindir}/idle3
Icon=development_environment_section
Terminal=false
Type=Application
Categories=Development;IDE;
EOF

cat > %{buildroot}%{_datadir}/applications/%{_real_vendor}-%{name}-docs.desktop << EOF
[Desktop Entry]
Name=Python documentation
Comment=Python complete reference
Exec=%{_bindir}/xdg-open %_defaultdocdir/%{name}-docs/index.html
Icon=documentation_section
Terminal=false
Type=Application
Categories=Documentation;
EOF

# fix non real scripts
#chmod 644 %{buildroot}%{_libdir}/python*/test/test_{binascii,grp,htmlparser}.py*
find %{buildroot} -type f \( -name "test_binascii.py*" -o -name "test_grp.py*" -o -name "test_htmlparser.py*" \) -exec chmod 644 {} \;

# fix python library not stripped
chmod u+w %{buildroot}%{_libdir}/libpython%{lib_major}*.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libpython3.so

# Make python3-devel multilib-ready
mv %{buildroot}%{_includedir}/python%{LDVERSION_optimized}/pyconfig.h \
   %{buildroot}%{_includedir}/python%{LDVERSION_optimized}/pyconfig-%{__isa_bits}.h
cat > %{buildroot}%{_includedir}/python%{LDVERSION_optimized}/pyconfig.h << EOF
#include <bits/wordsize.h>

#if __WORDSIZE == 32
#include "pyconfig-32.h"
#elif __WORDSIZE == 64
#include "pyconfig-64.h"
#else
#error "Unknown word size"
#endif
EOF

# Make sure distutils looks at the right pyconfig.h file
# See https://bugzilla.redhat.com/show_bug.cgi?id=201434
# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
# pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
# when python starts up (see https://bugzilla.redhat.com/show_bug.cgi?id=653058)
#
# Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
# variants:
sed -i -e "s/'pyconfig.h'/'pyconfig-%{__isa_bits}.h'/" \
  %{buildroot}%{pylibdir}/distutils/sysconfig.py \
  %{buildroot}%{pylibdir}/sysconfig.py

# Install pathfix.py to bindir
# See https://github.com/fedora-python/python-rpm-porting/issues/24
cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/

# Switch all shebangs to refer to the specific Python version.
# This currently only covers files matching ^[a-zA-Z0-9_]+\.py$,
# so handle files named using other naming scheme separately.
LD_LIBRARY_PATH=./ ./python \
  Tools/scripts/pathfix.py \
  -i "%{_bindir}/python%{pybasever}" -pn \
  %{buildroot} \
  %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}

# Remove shebang lines from .py files that aren't executable, and
# remove executability from .py files that don't have a shebang line:
find %{buildroot} -name \*.py \
  \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
  -print -exec sed -i '1d' {} \; \) -o \( \
  -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
  -exec chmod a-x {} \; \) \)

# .xpm and .xbm files should not be executable:
find %{buildroot} \
  \( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
  -exec chmod a-x {} \;

# Get rid of DOS batch files:
find %{buildroot} -name \*.bat -exec rm {} \;

# Get rid of backup files:
find %{buildroot}/ -name "*~" -exec rm -f {} \;
find . -name "*~" -exec rm -f {} \;

# Get rid of a stray copy of the license:
rm -f %{buildroot}%{pylibdir}/LICENSE.txt

# Do bytecompilation with the newly installed interpreter.
# This is similar to the script in macros.pybytecompile
# compile *.pyc
find %{buildroot}%{_libdir}/python%{pybasever} -type f -a -name "*.py" -print0 | \
    LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
    PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
    xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || :

# Since we have pathfix.py in bindir, this is created, but we don't want it
rm -rf %{buildroot}%{_bindir}/__pycache__

# Fixup permissions for shared libraries from non-standard 555 to standard 755:
find %{buildroot} -perm 555 -exec chmod 755 {} \;

# There's 2to3-X.X executable and 2to3 soft link to it.
# No reason to have both, so keep only 2to3 as an executable.
# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
#mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3

%if %{with tests}
%check
# (misc) if the home is nfs mounted, rmdir fails
export TMP="/tmp" TMPDIR="/tmp"

# Exclude some tests that hangs on the BS
EXCLUDE="test_ssl test_socket test_epoll"
%ifarch x86_64
EXCLUDE="$EXCLUDE test_faulthandler"
%endif
%ifarch %arm
EXCLUDE="$EXCLUDE test_float test_asyncio test_cmath"
%endif
# Local aarch64 tests succeeds, but fails on BS
%ifarch aarch64
EXCLUDE="$EXCLUDE test_posix test_asyncio"
%endif
# json test pass on local build but fail on BS
EXCLUDE="$EXCLUDE test_json"
# to investigate why it fails on local build
EXCLUDE="$EXCLUDE test_site"
# all tests must pass
# but we disable network on BS
WITHIN_PYTHON_RPM_BUILD= \
make test TESTOPTS="-j1 -wW -u none -x $EXCLUDE"
# consider use network on local build
#EXCLUDE=""
#WITHIN_PYTHON_RPM_BUILD= make test TESTOPTS="-u network -x $EXCLUDE"
%endif

%files
%{_bindir}/pydoc%{familyver}
%{_bindir}/pydoc%{pybasever}
%{_bindir}/python%{familyver}
%{_bindir}/python%{pybasever}
%{_bindir}/python%{LDVERSION_optimized}
%{_bindir}/pyvenv
%{_bindir}/pyvenv-%{pybasever}
%{_bindir}/2to3-%{pybasever}
%{_bindir}/python3-2to3
%{_mandir}/man*/*

%files -n %{lib_name}-stdlib
%license LICENSE
%doc README.rst
%{_includedir}/python%{LDVERSION_optimized}/pyconfig-%{__isa_bits}.h
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
%if "%{_lib}" == "lib64"
%dir %{_prefix}/lib/python%{pybasever}
%dir %{_prefix}/lib/python%{pybasever}/site-packages
%dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
%endif
%dir %{pylibdir}
%dir %{dynload_dir}
%dir %{site_packages}
%dir %{site_packages}/__pycache__/
%{site_packages}/README.txt
%{pylibdir}/*.py
%dir %{pylibdir}/__pycache__/
%{pylibdir}/__pycache__/*%{bytecode_suffixes}

%dir %{pylibdir}/unittest/
%dir %{pylibdir}/unittest/__pycache__/
%{pylibdir}/unittest/*.py
%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}

%dir %{pylibdir}/asyncio/
%dir %{pylibdir}/asyncio/__pycache__/
%{pylibdir}/asyncio/*.py
%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}

%dir %{pylibdir}/venv/
%dir %{pylibdir}/venv/__pycache__/
%{pylibdir}/venv/*.py
%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/venv/scripts

%{pylibdir}/wsgiref
%{pylibdir}/xml
%{pylibdir}/xmlrpc

%dir %{pylibdir}/ensurepip/
%dir %{pylibdir}/ensurepip/__pycache__/
%{pylibdir}/ensurepip/*.py
%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}

%if %{with rpmwheels}
%exclude %{pylibdir}/ensurepip/_bundled
%else
%dir %{pylibdir}/ensurepip/_bundled
%{pylibdir}/ensurepip/_bundled/*.whl
%endif

%dir %{pylibdir}/concurrent/
%dir %{pylibdir}/concurrent/__pycache__/
%{pylibdir}/concurrent/*.py
%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}

%dir %{pylibdir}/concurrent/futures/
%dir %{pylibdir}/concurrent/futures/__pycache__/
%{pylibdir}/concurrent/futures/*.py
%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}

%{pylibdir}/pydoc_data

%dir %{pylibdir}/collections/
%dir %{pylibdir}/collections/__pycache__/
%{pylibdir}/collections/*.py
%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}

%dir %{pylibdir}/ctypes/
%dir %{pylibdir}/ctypes/__pycache__/
%{pylibdir}/ctypes/*.py
%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/ctypes/macholib

%{pylibdir}/curses

%dir %{pylibdir}/dbm/
%dir %{pylibdir}/dbm/__pycache__/
%{pylibdir}/dbm/*.py
%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}

%dir %{pylibdir}/distutils/
%dir %{pylibdir}/distutils/__pycache__/
%{pylibdir}/distutils/*.py
%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/distutils/README
%{pylibdir}/distutils/command

%dir %{pylibdir}/email/
%dir %{pylibdir}/email/__pycache__/
%{pylibdir}/email/*.py
%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
%{pylibdir}/email/mime
%doc %{pylibdir}/email/architecture.rst

%{pylibdir}/encodings

%{pylibdir}/html
%{pylibdir}/http

%dir %{pylibdir}/importlib/
%dir %{pylibdir}/importlib/__pycache__/
%{pylibdir}/importlib/*.py
%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}

%dir %{pylibdir}/json/
%dir %{pylibdir}/json/__pycache__/
%{pylibdir}/json/*.py
%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}

%{pylibdir}/lib2to3
%exclude %{pylibdir}/lib2to3/tests

%{pylibdir}/logging
%{pylibdir}/multiprocessing

%dir %{pylibdir}/sqlite3/
%dir %{pylibdir}/sqlite3/__pycache__/
%{pylibdir}/sqlite3/*.py
%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}

%exclude %{pylibdir}/turtle.py
%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}

%{pylibdir}/urllib

%{dynload_dir}/_bisect.%{SOABI_optimized}.so
%{dynload_dir}/_bz2.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
%{dynload_dir}/_contextvars.%{SOABI_optimized}.so
%{dynload_dir}/_crypt.%{SOABI_optimized}.so
%{dynload_dir}/_csv.%{SOABI_optimized}.so
%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
%{dynload_dir}/_curses.%{SOABI_optimized}.so
%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
%{dynload_dir}/_dbm.%{SOABI_optimized}.so
%{dynload_dir}/_decimal.%{SOABI_optimized}.so
%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
%{dynload_dir}/_heapq.%{SOABI_optimized}.so
%{dynload_dir}/_json.%{SOABI_optimized}.so
%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
%{dynload_dir}/_lzma.%{SOABI_optimized}.so
%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
%{dynload_dir}/_opcode.%{SOABI_optimized}.so
%{dynload_dir}/_pickle.%{SOABI_optimized}.so
%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
%{dynload_dir}/_queue.%{SOABI_optimized}.so
%{dynload_dir}/_random.%{SOABI_optimized}.so
%{dynload_dir}/_socket.%{SOABI_optimized}.so
%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
%{dynload_dir}/_ssl.%{SOABI_optimized}.so
%{dynload_dir}/_struct.%{SOABI_optimized}.so
%{dynload_dir}/_md5.%{SOABI_optimized}.so
%{dynload_dir}/_sha1.%{SOABI_optimized}.so
%{dynload_dir}/_sha256.%{SOABI_optimized}.so
%{dynload_dir}/_sha512.%{SOABI_optimized}.so
%{dynload_dir}/array.%{SOABI_optimized}.so
%{dynload_dir}/audioop.%{SOABI_optimized}.so
%{dynload_dir}/binascii.%{SOABI_optimized}.so
%{dynload_dir}/cmath.%{SOABI_optimized}.so
%{dynload_dir}/_datetime.%{SOABI_optimized}.so
%{dynload_dir}/fcntl.%{SOABI_optimized}.so
%{dynload_dir}/grp.%{SOABI_optimized}.so
%{dynload_dir}/math.%{SOABI_optimized}.so
%{dynload_dir}/mmap.%{SOABI_optimized}.so
%{dynload_dir}/nis.%{SOABI_optimized}.so
%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
%{dynload_dir}/parser.%{SOABI_optimized}.so
%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
%{dynload_dir}/readline.%{SOABI_optimized}.so
%{dynload_dir}/resource.%{SOABI_optimized}.so
%{dynload_dir}/select.%{SOABI_optimized}.so
%{dynload_dir}/spwd.%{SOABI_optimized}.so
%{dynload_dir}/syslog.%{SOABI_optimized}.so
%{dynload_dir}/termios.%{SOABI_optimized}.so
%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
%{dynload_dir}/_uuid.%{SOABI_optimized}.so
%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
%{dynload_dir}/zlib.%{SOABI_optimized}.so
%{dynload_dir}/_asyncio.%{SOABI_optimized}.so
%{dynload_dir}/_blake2.%{SOABI_optimized}.so
%{dynload_dir}/_sha3.%{SOABI_optimized}.so

%files -n %{lib_name}-testsuite
%{pylibdir}/ctypes/test
%{pylibdir}/distutils/tests
%{pylibdir}/lib2to3/tests
%{pylibdir}/sqlite3/test
%{pylibdir}/test/*
%{pylibdir}/unittest/test
# These two are shipped in the main subpackage:
%exclude %{pylibdir}/test/test_support.py*
%exclude %{pylibdir}/test/__init__.py*
%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
%{dynload_dir}/_xxtestfuzz.%{SOABI_optimized}.so

%files -n %{lib_name}
%{_libdir}/libpython%{LDVERSION_optimized}.so.1*

%files -n %{develname}
%{_bindir}/pathfix.py
%{_libdir}/libpython%{LDVERSION_optimized}.so
%{_libdir}/libpython%{pybasever}.so
%{_libdir}/libpython%{familyver}.so
%{_includedir}/python%{LDVERSION_optimized}
%exclude %{_includedir}/python%{LDVERSION_optimized}/pyconfig-%{__isa_bits}.h
%{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}
%{_bindir}/python%{pybasever}-config
%{_bindir}/python%{LDVERSION_optimized}-config
%{_bindir}/python%{familyver}-config
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
%{_libdir}/pkgconfig/python-%{pybasever}.pc
%{_libdir}/pkgconfig/python%{familyver}.pc

%exclude %{pylibdir}/config-%{LDVERSION_optimized}-%{_arch}-linux%{_gnu}/Makefile
%if %{with valgrind}
%{_libdir}/valgrind/valgrind-python3.supp
%endif

%files docs
%doc html/*/*
%{_datadir}/applications/%{_real_vendor}-%{name}-docs.desktop

%files -n tkinter3
%{pylibdir}/tkinter/
%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
%{pylibdir}/idlelib
%{site_packages}/pynche
%{pylibdir}/turtle.py
%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
%dir %{pylibdir}/turtledemo
%{pylibdir}/turtledemo/*.py
%{pylibdir}/turtledemo/*.cfg
%dir %{pylibdir}/turtledemo/__pycache__/
%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}

%files -n tkinter3-apps
%{_bindir}/idle%{familyver}
%{_bindir}/idle%{pybasever}
%{_bindir}/pynche%{familyver}
%{_datadir}/applications/%{_real_vendor}-tkinter3.desktop

# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from ldconfig
# See https://bugzilla.redhat.com/show_bug.cgi?id=562980
#
# The /usr/lib/rpm/redhat/macros defines %%__debug_package to use
# debugfiles.list, and it appears that everything below /usr/lib/debug and
# (/usr/src/debug) gets added to this file (via LISTFILES) in
# /usr/lib/rpm/find-debuginfo.sh
#
# Hence by installing it below /usr/lib/debug we ensure it is added to the
# -debuginfo subpackage
# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
# payload file would be unpackaged)

# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1476593
%undefine _debuginfo_subpackages


%changelog
* Tue Jan 21 2020 daviddavid <daviddavid> 3.7.6-1.mga7
+ Revision: 1481989
- new version: 3.7.6, fixes new security issues (mga#26081)
- new version: 3.7.5, fixes CVE-2019-16056 and CVE-2019-16935 (mga#25641)

* Thu Apr 04 2019 daviddavid <daviddavid> 3.7.3-1.mga7
+ Revision: 1385719
- new version: 3.7.3, fixes CVE-2019-5010 and CVE-2019-9636 (mga#23664)

* Mon Jan 28 2019 luigiwalser <luigiwalser> 3.7.2-2.mga7
+ Revision: 1361535
- add patch from fedora to fix CVE-2019-5010

* Sat Jan 05 2019 wally <wally> 3.7.2-1.mga7
+ Revision: 1349923
- new version 3.7.2 (update docs also)
- drop upstreamed patches P313 and P315
- rediff P111 and P189

* Fri Jan 04 2019 wally <wally> 3.7.1-1.mga7
+ Revision: 1349148
- skip test_asyncio on aarch64 for now
- skip test_posix on aarch64 for now
- new version 3.7.1
- sync patches with Fedora
- sync .spec with Fedora where appropriate

* Thu Dec 27 2018 wally <wally> 3.6.7-3.mga7
+ Revision: 1345300
- build using -fwrapv (and update other flags also)

* Wed Nov 28 2018 tv <tv> 3.6.7-2.mga7
+ Revision: 1336457
- recommends instead of requires pip & setuptools (mga#23894)

* Thu Nov 22 2018 philippem <philippem> 3.6.7-1.mga7
+ Revision: 1333360
- update to 3.6.7

* Wed Sep 26 2018 tv <tv> 3.6.6-4.mga7
+ Revision: 1306465
- make clear which patches are coming from FC (easier to sync)
- reenable rewheel

* Mon Sep 24 2018 tv <tv> 3.6.6-2.mga7
+ Revision: 1303668
- fix pathfix call
- updated docs

* Mon Sep 24 2018 tv <tv> 3.6.6-1.mga7
+ Revision: 1303612
- unset with_rewheel
- new release

* Mon Sep 24 2018 tv <tv> 3.6.5-6.mga7
+ Revision: 1303574
- 3.6.5's pathfix doesn't know yet about -n
- Fix pathfix.py shebang

* Mon Sep 24 2018 tv <tv> 3.6.5-5.mga7
+ Revision: 1303467
- Fix multiprocessing regression on newer glibcs (rhbz#1569933)
- use new way to handle byte compilation
- do not abort build on bytecompile issues
- package pathfix.py for llvm & clang
+ umeabot <umeabot>
- Mageia 7 Mass Rebuild

* Sun Jun 17 2018 luigiwalser <luigiwalser> 3.6.5-3.mga7
+ Revision: 1237491
- rebuild for gdbm

* Wed Jun 06 2018 pterjan <pterjan> 3.6.5-2.mga7
+ Revision: 1234900
- Don't force exact setuptools version, this prevents from building the package

* Thu Apr 12 2018 philippem <philippem> 3.6.5-1.mga7
+ Revision: 1217880
- update to 3.6.5

* Sun Mar 11 2018 philippem <philippem> 3.6.4-1.mga7
+ Revision: 1208180
- update to 3.6.4

* Fri Feb 23 2018 kekepower <kekepower> 3.6.2-6.mga7
+ Revision: 1204288
+ rebuild (emptylog)

* Fri Feb 23 2018 kekepower <kekepower> 3.6.2-5.mga7
+ Revision: 1204287
- Added a patch for an error with python3-config --ldflags
- See https://bugs.python.org/issue32914

* Tue Jan 02 2018 wally <wally> 3.6.2-4.mga7
+ Revision: 1189463
- rebuild for new readline
+ philippem <philippem>
- add instruction on bootstraping

* Thu Aug 03 2017 guillomovitch <guillomovitch> 3.6.2-3.mga7
+ Revision: 1134244
- rebuild for latest openssl

* Sun Jul 30 2017 philippem <philippem> 3.6.2-2.mga7
+ Revision: 1132870
- add patch for libffi
- force pip and setuptools version
- build with rewheel

* Fri Jul 28 2017 philippem <philippem> 3.6.2-1.mga7
+ Revision: 1132067
- First step to upgrade to 3.6.2
- revert to r1083841, keep pip 8.0.2
- update pip to 8.0.3

* Sat Jan 28 2017 philippem <philippem> 3.5.3-1.mga6
+ Revision: 1083841
- update to 3.5.3

* Wed Sep 07 2016 neoclust <neoclust> 3.5.2-4.mga6
+ Revision: 1050299
- Submit to release

* Sat Aug 13 2016 philippem <philippem> 3.5.2-3.mga6
+ Revision: 1046401
- fix CVE-2016-1000110

* Wed Jul 06 2016 tmb <tmb> 3.5.2-2.mga6
+ Revision: 1039105
- submit to release

* Sun Jul 03 2016 philippem <philippem> 3.5.2-1.mga6
+ Revision: 1038565
- update to 3.5.2

* Tue Jun 21 2016 philippem <philippem> 3.5.1-15.mga6
+ Revision: 1037113
- improve patch for zipimporter (mga#18691)

* Sun Jun 19 2016 philippem <philippem> 3.5.1-14.mga6
+ Revision: 1036801
- update conflicts, add conflicts for testsuite and devel
- fix CVE-2016-0772 mga#18691

* Sun Jun 12 2016 philippem <philippem> 3.5.1-12.mga6
+ Revision: 1021228
- fix heap overflow in zipimporter module mga#18691

* Mon Jun 06 2016 tv <tv> 3.5.1-11.mga6
+ Revision: 1020343
- unbloat installation:
  o remove recommends on tkinter-apps
  o move recommends on python-doc in devel package

* Sun Jun 05 2016 philippem <philippem> 3.5.1-10.mga6
+ Revision: 1020248
- fix armv7hl build, remove hf from arm triplet (change patch from Fedora)

* Sat Jun 04 2016 philippem <philippem> 3.5.1-9.mga6
+ Revision: 1020239
- fix armv7hl build, remove hf from arm triplet (patch from Fedora)

* Fri Jun 03 2016 philippem <philippem> 3.5.1-8.mga6
+ Revision: 1020190
- remove idlelib from stdlib, it is in tkinter3
- split in sub packages (mga#18561)
+ ovitters <ovitters>
- undo accidental changelog inclusion
- reenable tests

* Thu Mar 03 2016 umeabot <umeabot> 3.5.1-7.mga6
+ Revision: 983963
- Rebuild for openssl

* Tue Mar 01 2016 ovitters <ovitters> 3.5.1-6.mga6
+ Revision: 981719
- rebuild for new openssl

* Sat Feb 27 2016 philippem <philippem> 3.5.1-5.mga6
+ Revision: 980083
- remove macros now in python-rpm-macros
- remove wrong patch add-mga-support.patch
- remove macros now in python-rpm-macros
- fix test on pip version
+ tv <tv>
- patch 200: make platform supports Mageia
+ umeabot <umeabot>
- Mageia 6 Mass Rebuild

* Wed Dec 09 2015 philippem <philippem> 3.5.1-2.mga6
+ Revision: 909004
- exclude test_asyncio test_cmath on arm

* Tue Dec 08 2015 philippem <philippem> 3.5.1-1.mga6
+ Revision: 908868
- update to 3.5.1

* Tue Oct 13 2015 philippem <philippem> 3.5.0-5.mga6
+ Revision: 890256
- fix upstream issue 25150, mga#16951

* Sat Oct 03 2015 tv <tv> 3.5.0-4.mga6
+ Revision: 885886
- rebuild for new tcl

* Wed Sep 23 2015 philippem <philippem> 3.5.0-3.mga6
+ Revision: 882408
- add rewheel-module.patch
- update to 3.5.0, with wheel, remove obsolete %%py3ver and %%py3_ver macros

* Tue Sep 22 2015 philippem <philippem> 3.5.0-2.mga6
+ Revision: 882274
- json test pass on local build but fail on BS
- update to 3.5.0, first step

* Sun Sep 06 2015 philippem <philippem> 3.4.3-8.mga6
+ Revision: 873282
- add new macros

* Sun Aug 30 2015 philippem <philippem> 3.4.3-7.mga6
+ Revision: 871175
- Use _sysconfigdata.py in distutils to initialize distutils, mga#16570

* Thu Aug 13 2015 philippem <philippem> 3.4.3-6.mga6
+ Revision: 864562
- something is broken with distutils and multiarch, so we add the include

* Thu Aug 13 2015 philippem <philippem> 3.4.3-5.mga6
+ Revision: 864274
- Remove the wrong distutils-pyconfig.patch

* Thu Aug 13 2015 philippem <philippem> 3.4.3-4.mga6
+ Revision: 864190
- patch distutils to find pyconfig, mga#16570

* Sun Jul 19 2015 philippem <philippem> 3.4.3-3.mga6
+ Revision: 855506
- fix shebangs

* Wed Jul 01 2015 philippem <philippem> 3.4.3-2.mga6
+ Revision: 849412
- disable test_socket on the BS
- add missing requires fix mga#16048

* Thu Feb 26 2015 philippem <philippem> 3.4.3-1.mga5
+ Revision: 817018
- update to 3.4.3, fix mga#14780

* Mon Oct 27 2014 philippem <philippem> 3.4.2-1.mga5
+ Revision: 793977
- Update to 3.4.2
+ umeabot <umeabot>
- Second Mageia 5 Mass Rebuild

* Sat Sep 27 2014 tv <tv> 3.4.1-5.mga5
+ Revision: 728013
- rebuild for missing pythoneggs deps
+ umeabot <umeabot>
- Mageia 5 Mass Rebuild

* Sat Jun 28 2014 philippem <philippem> 3.4.1-3.mga5
+ Revision: 640729
- fix CVE-2014-4650 mga#15588)

* Sat May 24 2014 philippem <philippem> 3.4.1-2.mga5
+ Revision: 625308
- Build with rewheel

* Fri May 23 2014 philippem <philippem> 3.4.1-1.mga5
+ Revision: 625082
- update to 3.4.1

* Sat May 10 2014 philippem <philippem> 3.3.4-2.mga5
+ Revision: 621846
- fix CVE-2014-2667 mga#13305

* Sun Feb 16 2014 philippem <philippem> 3.3.4-1.mga5
+ Revision: 592814
- fix patch 00173 (missing backslash)
+ tv <tv>
- fix test suite
- new version
- rediff patches
- drop merged patches

* Sat Feb 15 2014 philippem <philippem> 3.3.2-14.mga5
+ Revision: 592080
-fix buffer overflow CVE-2014-1912 with upstream patch

* Tue Nov 26 2013 philippem <philippem> 3.3.2-13.mga4
+ Revision: 553625
- apply the patch to follow RFC 6125 in ssl.match_hostname() (mga#11785)

* Tue Nov 26 2013 philippem <philippem> 3.3.2-12.mga4
+ Revision: 553620
- change behavior of ssl.match_hostname() to follow RFC 6125 (fix mga#11785)

* Mon Nov 11 2013 philippem <philippem> 3.3.2-11.mga4
+ Revision: 550479
- remove no needed files that may conflict with python2

* Mon Oct 21 2013 umeabot <umeabot> 3.3.2-10.mga4
+ Revision: 539348
- Mageia 4 Mass Rebuild
+ philippem <philippem>
- provide tkinker (module) as python3-tkinter to follow the policy

* Thu Sep 26 2013 philippem <philippem> 3.3.2-8.mga4
+ Revision: 486633
- Add a RPM macro py_byte_compile to enable specfiles to selectively byte-compile individual files and paths with different Python runtimes as necessary

* Thu Sep 26 2013 fwang <fwang> 3.3.2-7.mga4
+ Revision: 486489
- drop unneeded provides

* Wed Sep 25 2013 philippem <philippem> 3.3.2-6.mga4
+ Revision: 486299
+ rebuild (emptylog)

* Wed Sep 25 2013 fwang <fwang> 3.3.2-5.mga4
+ Revision: 485860
- skip test_urllib2_localnet also
+ philippem <philippem>
- remove PYTHONDONTWRITEBYTECODE=1 fix mga#3348
- profile.d files as configfile noreplace fix mga#10758

* Tue Aug 13 2013 philippem <philippem> 3.3.2-4.mga4
+ Revision: 465986
- disable parallel build
+ oden <oden>
- P184: security fix for CVE-2013-4073 (upstream)

* Tue Jun 25 2013 philippem <philippem> 3.3.2-3.mga4
+ Revision: 446647
- add py3dir macro
+ shlomif <shlomif>
- Fix MGA#9395
- Convert inconsistent indentation to spaces only.
- Remove unused docs archive

* Fri May 31 2013 tv <tv> 3.3.2-2.mga4
+ Revision: 433777
- update docs
- patch 183: fix CVE-2013-2099 (ssl.match_hostname DOS)

* Fri May 31 2013 tv <tv> 3.3.2-1.mga4
+ Revision: 433688
- disable some failling tests
- add patches from FC in order to fix gdb tests
- new release
- drop merged patch

* Tue Mar 19 2013 fwang <fwang> 3.3.0-4.mga3
+ Revision: 404044
- add patch from opensuse to fix test

* Sun Jan 13 2013 umeabot <umeabot> 3.3.0-3.mga3
+ Revision: 379744
- Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild

* Fri Dec 28 2012 rtp <rtp> 3.3.0-2.mga3
+ Revision: 335888
- fix tests

* Sat Sep 29 2012 fwang <fwang> 3.3.0-1.mga3
+ Revision: 300282
- add more provides to binary
- update file list
- update file list
- more linkage fix
- skip some failed tests
- drop -l
- add more linkage fix
- new version 3.3.0

* Wed Aug 08 2012 luigiwalser <luigiwalser> 3.2.3-5.mga3
+ Revision: 280050
- add patch from OpenSuSE to fix CVE-2012-2135 (patch 3)
- add upstream patch adding tests to testsuite associated w/CVE (patch 4)

* Mon Jul 30 2012 tv <tv> 3.2.3-4.mga3
+ Revision: 276244
- rebuild for db-5.3

* Thu Jul 05 2012 wally <wally> 3.2.3-3.mga3
+ Revision: 268245
- fix curses module build (mga#6702)

* Tue Jul 03 2012 kamil <kamil> 3.2.3-2.mga3
+ Revision: 266996
- add P2 fdr-lib64-fix-for-test_install.patch
- sync P1 with Fedora and fix x86_64 bugs (mga#6664)

* Sat Apr 14 2012 fwang <fwang> 3.2.3-1.mga2
+ Revision: 230764
- update lib64 patch
- new version 3.2.3

* Mon Feb 20 2012 guillomovitch <guillomovitch> 3.2.2-3.mga2
+ Revision: 211298
- don't hardcode pyconfig.h location in lib64 path
- ship pyconfig.h in main package, not just multiarch wrapper
- spec cleanup

* Mon Dec 05 2011 fwang <fwang> 3.2.2-2.mga2
+ Revision: 176932
- add upstream patch to recognize gdbm 1.9 magic value
- build with gdbm
- rebuild for new gdbm

* Mon Sep 05 2011 fwang <fwang> 3.2.2-1.mga2
+ Revision: 138550
- new version 3.2.2

* Fri Sep 02 2011 tv <tv> 3.2.1-2.mga2
+ Revision: 137805
- make the huge doc subpackage be noarch

* Tue Jul 12 2011 fwang <fwang> 3.2.1-1.mga2
+ Revision: 122718
- use ln -sf always
- update file list
- really rediff lib64 patch
- rediff lib64 patch
- new version 3.2.1

* Sat Jul 02 2011 fwang <fwang> 3.2-6.mga2
+ Revision: 117326
- rebuild for new tcl

* Tue Jun 28 2011 fwang <fwang> 3.2-5.mga2
+ Revision: 115157
- add provides for binary

* Tue Jun 07 2011 dmorgan <dmorgan> 3.2-4.mga2
+ Revision: 101527
- imported package python3


* Mon May 02 2011 Funda Wang <fwang@mandriva.org> 3.2-4mdv2011.0
+ Revision: 661885
- update file list
- update file list
- move makefile and pyconfig into main
- more lib64 patch

* Sun Apr 24 2011 Funda Wang <fwang@mandriva.org> 3.2-3
+ Revision: 658191
- rename devel name

* Sat Apr 23 2011 Funda Wang <fwang@mandriva.org> 3.2-2
+ Revision: 656821
- build with wide-unicode

* Sat Apr 23 2011 Funda Wang <fwang@mandriva.org> 3.2-1
+ Revision: 656799
- update file list
- use space
- clean spec file
- rediff lib64 patch
- rediff lib64 patch
- new version 3.2

* Mon Nov 01 2010 Funda Wang <fwang@mandriva.org> 3.1.2-4mdv2011.0
+ Revision: 591289
- move macro into main package

* Sun Oct 31 2010 Funda Wang <fwang@mandriva.org> 3.1.2-3mdv2011.0
+ Revision: 591178
- fix module link
- drop obsoletes swtich
- add python3.macros to ease python3 packaging
- tweak binary name in scripts

* Sat Oct 30 2010 Anssi Hannula <anssi@mandriva.org> 3.1.2-2mdv2011.0
+ Revision: 590324
- add provides on python(abi) (as per Fedora), for automated python
  module dependencies on python version
- workaround rpm issue in filelist to fix build

  + Per Øyvind Karlsen <peroyvind@mandriva.org>
    - backport disable pymalloc on valgrind from svn

* Thu Apr 22 2010 Michael Scherer <misc@mandriva.org> 3.1.2-1mdv2010.1
+ Revision: 537934
- update to 3.1.2
- fix cruft in lib64 patch

* Sat Apr 17 2010 Michael Scherer <misc@mandriva.org> 3.1.1-9mdv2010.1
+ Revision: 536061
- rebuild for new rpm-mandriva-setup, to fix installation ( #58793 )

* Thu Apr 08 2010 Michael Scherer <misc@mandriva.org> 3.1.1-8mdv2010.1
+ Revision: 533004
- rebuild for new rpm-mandriva-setup

* Thu Mar 25 2010 Michael Scherer <misc@mandriva.org> 3.1.1-7mdv2010.1
+ Revision: 527485
- rebuild to fix upgrade ( due to python-base removal )

* Fri Feb 05 2010 Michael Scherer <misc@mandriva.org> 3.1.1-6mdv2010.1
+ Revision: 501053
- remove BR on emacs as we do not build emacs extension for the moment ( conflict with python 2.x )
- do not add a BuildRequires on emacs, uneeded for the moment
- remove old comment
- use README.mdv, not mdk
- do not obsolete package that does exist
- remove redundant BuildRequires
- do not provides python-base, this should be removed from the distro,
  as there is no subpackage named like this ( more ever, this is likely to
  be a wrong provides, as python 3 is too different from python 2 )

* Sun Jan 17 2010 Michael Scherer <misc@mandriva.org> 3.1.1-5mdv2010.1
+ Revision: 492597
- fix linking to ncursesw, to fix canto segfaulting

* Sun Jan 03 2010 Michael Scherer <misc@mandriva.org> 3.1.1-4mdv2010.1
+ Revision: 486004
- move tkinter module to proper subpackage
- add patch to fix bug 56260, as python do not detect tcl/tk 8.6, by porting the patch from
  regular python package to python 3

* Wed Nov 11 2009 Michael Scherer <misc@mandriva.org> 3.1.1-3mdv2010.1
+ Revision: 464473
- fix file conflict for tkinteer desktop file, as pointed by laurent pointal on bug  55507

* Tue Aug 18 2009 Eugeni Dodonov <eugeni@mandriva.com> 3.1.1-2mdv2010.0
+ Revision: 417514
- updated to 3.1.1

* Fri Jul 24 2009 Bogdano Arendartchuk <bogdano@mandriva.com> 3.1-2mdv2010.0
+ Revision: 399512
- adapted the lib64 patch to py3k

  + Eugeni Dodonov <eugeni@mandriva.com>
    - Packaged python3.
    - Created package structure for python3.