python2/python2.spec
梳碧湖的砍柴人 b8861bd282 fix CVE-2020-8492
2020-03-13 15:52:28 +08:00

703 lines
22 KiB
RPMSpec

%global pybasever 2.7
%global py_SOVERSION 1.0
%global pylibdir %{_libdir}/python%{pybasever}
%global tools_dir %{pylibdir}/Tools
%global demo_dir %{pylibdir}/Demo
%global dynload_dir %{pylibdir}/lib-dynload
%global site_packages %{pylibdir}/site-packages
%global py_INSTSONAME_optimized libpython%{pybasever}.so.%{py_SOVERSION}
%global py_INSTSONAME_debug libpython%{pybasever}_d.so.%{py_SOVERSION}
#with systemtap
%global tapsetdir /usr/share/systemtap/tapset
%undefine __brp_python_bytecompile
%undefine py_auto_byte_compile
%undefine _debuginfo_subpackages
Name: python2
Version: 2.7.16
Release: 15
Summary: Python is an interpreted, interactive object-oriented programming language suitable
License: Python
URL: https://www.python.org/
Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
#with systemtap
Source1: libpython.stp
#custom modifications
Patch0: python-2.7.1-config.patch
Patch1: 00001-pydocnogui.patch
Patch4: python-2.5-cflags.patch
Patch6: python-2.5.1-plural-fix.patch
Patch7: python-2.5.1-sqlite-encoding.patch
Patch10: 00010-2.7.13-binutils-no-dep.patch
Patch13: python-2.7rc1-socketmodule-constants.patch
Patch14: python-2.7rc1-socketmodule-constants2.patch
Patch16: python-2.6-rpath.patch
Patch17: python-2.6.4-distutils-rpath.patch
Patch55: 00055-systemtap.patch
Patch102: 00102-2.7.13-lib64.patch
Patch103: python-2.7-lib64-sysconfig.patch
Patch104: 00104-lib64-fix-for-test_install.patch
Patch111: 00111-no-static-lib.patch
Patch112: 00112-2.7.13-debug-build.patch
Patch113: 00113-more-configuration-flags.patch
Patch114: 00114-statvfs-f_flag-constants.patch
Patch121: 00121-add-Modules-to-build-path.patch
Patch128: python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch
Patch130: python-2.7.2-add-extension-suffix-to-python-config.patch
Patch131: 00131-disable-tests-in-test_io.patch
Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
Patch133: 00133-skip-test_dl.patch
Patch136: 00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch
Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
Patch138: 00138-fix-distutils-tests-in-debug-build.patch
Patch139: 00139-skip-test_float-known-failure-on-arm.patch
Patch140: 00140-skip-test_ctypes-known-failure-on-sparc.patch
Patch142: 00142-skip-failing-pty-tests-in-rpmbuild.patch
Patch143: 00143-tsc-on-ppc.patch
Patch147: 00147-add-debug-malloc-stats.patch
Patch153: 00153-fix-test_gdb-noise.patch
Patch155: 00155-avoid-ctypes-thunks.patch
Patch156: 00156-gdb-autoload-safepath.patch
Patch157: 00157-uid-gid-overflows.patch
Patch165: 00165-crypt-module-salt-backport.patch
Patch167: 00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch
Patch168: 00168-distutils-cflags.patch
Patch169: 00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch
Patch170: 00170-gc-assertions.patch
Patch174: 00174-fix-for-usr-move.patch
Patch180: 00180-python-add-support-for-ppc64p7.patch
Patch181: 00181-allow-arbitrary-timeout-in-condition-wait.patch
Patch185: 00185-urllib2-honors-noproxy-for-ftp.patch
Patch187: 00187-add-RPATH-to-pyexpat.patch
Patch189: 00189-use-rpm-wheels.patch
Patch191: 00191-disable-NOOP.patch
Patch193: 00193-enable-loading-sqlite-extensions.patch
Patch289: 00289-disable-nis-detection.patch
Patch04000: 04000-modularity-disable-tk.patch
Patch5000: 05000-autotool-intermediates.patch
#upstream patches
Patch6035: 0342-bpo-36126-Fix-ref-count-leakage-in-structseq_repr.-G.patch
Patch6036: 0349-2.7-bpo-13096-Fix-memory-leak-in-ctypes-POINTER-hand.patch
Patch6037: 0350-2.7-bpo-36179-Fix-ref-leaks-in-_hashopenssl-GH-12158.patch
Patch6038: 0351-2.7-bpo-36149-Fix-potential-use-of-uninitialized-mem.patch
Patch6039: 0353-2.7-bpo-36186-Fix-linuxaudiodev.linux_audio_device-e.patch
Patch6040: 0354-bpo-36147-Fix-a-memory-leak-in-ctypes-s_get-GH-12102.patch
Patch6041: 0357-bpo-36140-Fix-an-incorrect-check-in-msidb_getsummary.patch
Patch6042: 0358-2.7-IDLE-Fix-typo-in-keybindingDialog.py-GH-2322-GH-.patch
Patch6044: python2-CVE-2019-9948-1.patch
Patch6045: python2-CVE-2019-9948-2.patch
Patch6047: CVE-2019-9740.patch
Patch9000: python2-add-generic-os-supportr.patch
Patch6048: bugfix-linux_distribution-skip-link-file.patch
Patch6049: bugfix-test_locale-and-test_codecs.patch
Patch6050: CVE-2019-9636-bpo-36216-Add-check-for-characters.patch
Patch6051: CVE-2019-10160-1.patch
Patch6052: CVE-2019-10160-2.patch
Patch6053: CVE-2019-10160-3.patch
Patch6054: CVE-2019-16056.patch
Patch6055: CVE-2018-20852.patch
Patch6056: CVE-2019-16935.patch
Patch6057: CVE-2019-17514.patch
Patch6058: CVE-2017-18207.patch
Patch6059: bugfix-excessive-memory-usage-when-using-regular-expressions.patch
Patch6060: CVE-2020-8492.patch
BuildRequires: libdb-devel libffi-devel valgrind-devel ncurses-devel expat-devel readline-devel
BuildRequires: openssl-devel libtirpc-devel tcl-devel tk-devel glibc-devel libnsl2-devel
BuildRequires: zlib-devel tix-devel gdbm-devel sqlite-devel chrpath sed systemtap-sdt-devel
Requires: expat glibc gdbm python-setuptools-wheel python-pip-wheel
Recommends: python2-setuptools python2-pip
Provides: python = %{version}-%{release}
Provides: python27 = %{version}-%{release}
Provides: python(abi) = %{pybasever}
Obsoletes: python-libs < %{version}-%{release}
Obsoletes: %{name}-libs < %{version}-%{release}
Provides: python-libs = %{version}-%{release}
Provides: python-libs%{?_isa} = %{version}-%{release}
Provides: %{name}-libs = %{version}-%{release}
Provides: %{name}-libs%{?_isa} = %{version}-%{release}
Obsoletes: python-unversioned-command < %{version}-%{release}
Provides: python-unversioned-command = %{version}-%{release}
%description
Python 2.x series is the old version that is incompatible with the 3.x series.
The EOL of Python 2.x upstream is January 2020, there will no updates,
Our suggestions for switching to Python3 as soon as possible.
%package tkinter
Summary: A graphical user interface for the Python 2 scripting language
Requires: %{name} = %{version}-%{release}
Obsoletes: tkinter < %{version}-%{release}
Obsoletes: tkinter2 < %{version}-%{release}
Obsoletes: python-tkinter < %{version}-%{release}
Provides: tkinter = %{version}-%{release}
Provides: tkinter%{?_isa} = %{version}-%{release}
Provides: tkinter2 = %{version}-%{release}
Provides: tkinter2%{?_isa} = %{version}-%{release}
Provides: python-tkinter = %{version}-%{release}
Provides: python-tkinter%{?_isa} = %{version}-%{release}
%description tkinter
The Tkinter (Tk interface) program is an graphical user interface for
the Python 2 scripting language.
%package devel
Summary: Development files for %{name}
Requires: %{name} = %{version}-%{release}
Requires: python-rpm-macros
Requires: python2-rpm-macros
Requires: pkgconfig
Requires: python2-setuptools
Requires: openEuler-rpm-config
Requires: python3-rpm-generators
Provides: python-devel = %{version}-%{release}
Provides: python-devel%{?_isa} = %{version}-%{release}
Obsoletes: python-test < %{version}-%{release}
Provides: python-test = %{version}-%{release}
Provides: python-test%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-test < %{version}-%{release}
Provides: %{name}-test = %{version}-%{release}
Provides: %{name}-test%{?_isa} = %{version}-%{release}
Requires: openEuler-rpm-config
%description devel
This package contains libraries and header files used to build applications
with and native libraries for Python2.
%package tools
Summary: A collection of development tools included with Python 2
Requires: %{name} = %{version}-%{release}
Requires: %{name}-tkinter = %{version}-%{release}
Provides: python-tools = %{version}-%{release}
Provides: python-tools%{?_isa} = %{version}-%{release}
%description tools
This package includes several tools to help with the development of Python 2
programs, including IDLE (an IDE with editing and debugging facilities), a
color editor (pynche), and a python gettext program (pygettext.py).
%package help
Summary: Man pages for %{name}
BuildArch: noarch
%description help
%{summary}.
%package debug
Summary: Debug package for the Python 2 runtime
# The debug build is an all-in-one package version of the regular build, and
# shares the same .py/.pyc files and directories as the regular build. Hence
# we depend on all of the subpackages of the regular build:
Requires: %{name} = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
Requires: %{name}-help = %{version}-%{release}
Requires: %{name}-tkinter = %{version}-%{release}
Requires: %{name}-tools = %{version}-%{release}
Provides: python-debug = %{version}-%{release}
%description debug
python2-debug provides a version of the Python 2 runtime with numerous debugging
features enabled, aimed at advanced Python users, such as developers of Python
extension modules.
This version uses more memory and will be slower than the regular Python 2 build,
but is useful for tracking down reference-counting issues, and other bugs.
The bytecodes are unchanged, so that .pyc files are compatible between the two
version of Python 2, but the debugging features mean that C/C++ extension modules
are ABI-incompatible with those built for the standard runtime.
It shares installation directories with the standard Python 2 runtime, so that
.py and .pyc files can be shared. All compiled extension modules gain a "_d"
suffix ("foo_d.so" rather than "foo.so") so that each Python 2 implementation can
load its own extensions.
%prep
%autosetup -n Python-%{version} -p1
sed -i "s/generic_os/%{_vendor}/g" Lib/platform.py
mv Modules/cryptmodule.c Modules/_cryptmodule.c
%build
topdir=$(pwd)
BuildPython() {
ConfName=$1
BinaryName=$2
SymlinkName=$3
PathFixWithThisBinary=$4
ExtraConfigArgs=$5
ConfDir=build/$ConfName
echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName
mkdir -p $ConfDir
pushd $ConfDir
%global _configure $topdir/configure
%configure \
--enable-ipv6 \
--enable-shared \
--enable-unicode=ucs4 \
--with-dbmliborder=gdbm:ndbm:bdb \
--with-system-expat \
--with-system-ffi \
--with-dtrace \
--with-tapset-install-dir=%{tapsetdir} \
--with-valgrind \
$ExtraConfigArgs
%make_build
#Fix "WARNING: mangling shebang, only for python2 optimized"
echo "PathFixWithThisBinary = " $PathFixWithThisBinary
if $PathFixWithThisBinary
then
LD_LIBRARY_PATH="$topdir/$ConfDir" ./$BinaryName \
$topdir/Tools/scripts/pathfix.py -i "%{_bindir}/python%{pybasever}" \
$topdir
fi
ln -s $BinaryName $SymlinkName
LD_LIBRARY_PATH="$topdir/$ConfDir" PATH=$PATH:$topdir/$ConfDir make -s EXTRA_CFLAGS="$CFLAGS" %{?_smp_mflags}
popd
echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir
}
BuildPython debug \
python-debug \
python%{pybasever}-debug \
false \
%ifarch %{ix86} x86_64 ppc %{power64}
"--with-pydebug --with-tsc --with-count-allocs --with-call-profile"
%else
"--with-pydebug --with-count-allocs --with-call-profile"
%endif
BuildPython optimized \
python \
python%{pybasever} \
true \
%ifarch %{ix86} x86_64
"--disable-optimizations" \
%else
""
%endif
%install
topdir=$(pwd)
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
for f in distutils/command/install distutils/sysconfig; do
rm -f Lib/$f.py.lib64
done
InstallPython() {
ConfName=$1
BinaryName=$2
PyInstSoName=$3
ConfDir=build/$ConfName
echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
mkdir -p $ConfDir
pushd $ConfDir
%make_install
chrpath -d $(find %{buildroot} -name pyexpat.so)
DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName-%{version}-%{release}.%{_arch}.debug-gdb.py
mkdir -p %{buildroot}$DirHoldingGdbPy
cp $topdir/Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
# Manually byte-compile the file, in case find-debuginfo.sh is run before
# brp-python-bytecompile, so that the .pyc/.pyo files are properly listed in
# the debuginfo manifest:
LD_LIBRARY_PATH="$topdir/$ConfDir" $topdir/$ConfDir/$BinaryName \
-c "import compileall; import sys; compileall.compile_dir('%{buildroot}$DirHoldingGdbPy', ddir='$DirHoldingGdbPy')"
LD_LIBRARY_PATH="$topdir/$ConfDir" $topdir/$ConfDir/$BinaryName -O \
-c "import compileall; import sys; compileall.compile_dir('%{buildroot}$DirHoldingGdbPy', ddir='$DirHoldingGdbPy')"
popd
echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
}
InstallPython debug \
python%{pybasever}-debug \
%{py_INSTSONAME_debug}
InstallPython optimized \
python%{pybasever} \
%{py_INSTSONAME_optimized}
install -d -m755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages
mv %{buildroot}%{_bindir}/idle %{buildroot}%{_bindir}/idle%{pybasever}
%{__ln_s} idle%{pybasever} %{buildroot}%{_bindir}/idle2
%{__ln_s} idle2 %{buildroot}%{_bindir}/idle
mv %{buildroot}%{_bindir}/pydoc %{buildroot}%{_bindir}/pydoc%{pybasever}
%{__ln_s} pydoc%{pybasever} %{buildroot}%{_bindir}/pydoc2
%{__ln_s} pydoc2 %{buildroot}%{_bindir}/pydoc
mv %{buildroot}%{_bindir}/smtpd.py %{buildroot}%{_bindir}/smtpd%{pybasever}.py
%{__ln_s} smtpd%{pybasever}.py %{buildroot}%{_bindir}/smtpd2.py
%{__ln_s} smtpd2.py %{buildroot}%{_bindir}/smtpd.py
rm -f %{buildroot}%{pylibdir}/LICENSE.txt
find %{buildroot} -name "*.bat" | xargs rm -f
%global _pyconfig32_h pyconfig-32.h
%global _pyconfig64_h pyconfig-64.h
for Dir in python%{pybasever} python%{pybasever}-debug ; do
mv %{buildroot}%{_includedir}/$Dir/pyconfig.h \
%{buildroot}%{_includedir}/$Dir/pyconfig-64.h
cat > %{buildroot}%{_includedir}/$Dir/pyconfig.h << EOF
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "%{_pyconfig32_h}"
#elif __WORDSIZE == 64
#include "%{_pyconfig64_h}"
#else
#error "Unknown word size"
#endif
EOF
done
ln -s ../../libpython%{pybasever}.so %{buildroot}%{pylibdir}/config/libpython%{pybasever}.so
#with systemtap
mkdir -p %{buildroot}%{tapsetdir}
sed -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_debug}|" %{SOURCE1} \
> %{buildroot}%{tapsetdir}/libpython%{pybasever}-debug-64.stp
# Ensure the libs readable
%{__chmod} 755 %{buildroot}%{dynload_dir}/*.so
%{__chmod} 755 %{buildroot}%{_libdir}/libpython%{pybasever}.so.1.0
%{__chmod} 755 %{buildroot}%{_libdir}/libpython%{pybasever}_d.so.1.0
%check
#make test || :
%files
%defattr(-,root,root)
%license LICENSE
%doc README
%{_bindir}/pydoc*
%{_bindir}/{python,python2,python%{pybasever}}
%dir %{_prefix}/lib/python%{pybasever}
%dir %{_prefix}/lib/python%{pybasever}/site-packages
%{_libdir}/libpython%{pybasever}.so.1.0
%dir %{pylibdir}
%{dynload_dir}/
%exclude %{dynload_dir}/_ctypes_test.so
%exclude %{dynload_dir}/_tkinter.so
%dir %{site_packages}
%{site_packages}/README
%{pylibdir}/*.py*
%{pylibdir}/*.doc
%{pylibdir}/*.egg-info
%dir %{pylibdir}/bsddb
%{pylibdir}/bsddb/*.py*
%dir %{pylibdir}/compiler
%{pylibdir}/compiler/*.py*
%dir %{pylibdir}/ctypes
%{pylibdir}/ctypes/*.py*
%{pylibdir}/ctypes/macholib
%dir %{pylibdir}/curses
%{pylibdir}/curses/*.py*
%dir %{pylibdir}/distutils
%{pylibdir}/distutils/*.py*
%{pylibdir}/distutils/README
%{pylibdir}/distutils/command
%exclude %{pylibdir}/distutils/command/*.exe
%dir %{pylibdir}/email
%{pylibdir}/email/*.py*
%{pylibdir}/email/mime
%{pylibdir}/encodings
%{pylibdir}/hotshot
%{pylibdir}/idlelib
%{pylibdir}/importlib
%dir %{pylibdir}/json
%{pylibdir}/json/*.py*
%{pylibdir}/lib2to3
%exclude %{pylibdir}/lib2to3/tests
%{pylibdir}/logging
%{pylibdir}/multiprocessing
%{pylibdir}/plat-linux2
%{pylibdir}/pydoc_data
%dir %{pylibdir}/sqlite3
%{pylibdir}/sqlite3/*.py*
%{pylibdir}/unittest
%{pylibdir}/wsgiref
%{pylibdir}/xml
%dir %{pylibdir}/ensurepip
%{pylibdir}/ensurepip/*.py*
%exclude %{pylibdir}/ensurepip/_bundled
%dir %{pylibdir}/test
%{pylibdir}/test/__init__.py*
%{pylibdir}/test/support/
%{pylibdir}/test/script_helper.py*
%{pylibdir}/test/test_support.py*
%files tkinter
%defattr(-,root,root)
%{pylibdir}/lib-tk
%{dynload_dir}/_tkinter.so
%files devel
%defattr(-,root,root)
#Development files
%{pylibdir}/config/
%{_includedir}/python%{pybasever}/*.h
%{_libdir}/pkgconfig/python*.pc
%{_libdir}/libpython%{pybasever}.so
%{_bindir}/python*-config
%{pylibdir}/distutils/command/wininst-*.exe
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
#Tests
%{pylibdir}/bsddb/test
%{pylibdir}/ctypes/test
%{pylibdir}/distutils/tests
%{pylibdir}/email/test
%{pylibdir}/json/tests
%{pylibdir}/lib2to3/tests
%{pylibdir}/sqlite3/test
%{pylibdir}/test/*
%exclude %{pylibdir}/test/allsans.pem
%exclude %{pylibdir}/test/badcert.pem
%exclude %{pylibdir}/test/badkey.pem
%exclude %{pylibdir}/test/keycert2.pem
%exclude %{pylibdir}/test/keycert3.pem
%exclude %{pylibdir}/test/keycert4.pem
%exclude %{pylibdir}/test/keycert.pem
%exclude %{pylibdir}/test/ssl_key.pem
%exclude %{pylibdir}/test/ssl_key.passwd.pem
%exclude %{pylibdir}/test/keycert.passwd.pem
%exclude %{pylibdir}/test/__init__.py*
%exclude %{pylibdir}/test/support/
%exclude %{pylibdir}/test/script_helper.py*
%exclude %{pylibdir}/test/test_support.py*
%{dynload_dir}/_ctypes_test.so
%files tools
%{_bindir}/idle*
%{_bindir}/smtpd*.py*
%exclude %{_bindir}/2to3*
%files help
%defattr(-,root,root)
%{_mandir}/man1/python*.1.*
%files debug
/usr/lib/debug/usr/lib64/libpython*.debug-gdb.py*
# Analog of the core subpackage's files:
%{_bindir}/python-debug
%{_bindir}/python2-debug
%{_bindir}/python%{pybasever}-debug
# Analog of the -libs subpackage's files, with debug builds of the built-in
# "extension" modules:
%{dynload_dir}/_md5module_d.so
%{dynload_dir}/_sha256module_d.so
%{dynload_dir}/_sha512module_d.so
%{dynload_dir}/_shamodule_d.so
%{dynload_dir}/_bisectmodule_d.so
%{dynload_dir}/_bsddb_d.so
%{dynload_dir}/_codecs_cn_d.so
%{dynload_dir}/_codecs_hk_d.so
%{dynload_dir}/_codecs_iso2022_d.so
%{dynload_dir}/_codecs_jp_d.so
%{dynload_dir}/_codecs_kr_d.so
%{dynload_dir}/_codecs_tw_d.so
%{dynload_dir}/_collectionsmodule_d.so
%{dynload_dir}/_csv_d.so
%{dynload_dir}/_ctypes_d.so
%{dynload_dir}/_curses_d.so
%{dynload_dir}/_curses_panel_d.so
%{dynload_dir}/_elementtree_d.so
%{dynload_dir}/_functoolsmodule_d.so
%{dynload_dir}/_hashlib_d.so
%{dynload_dir}/_heapq_d.so
%{dynload_dir}/_hotshot_d.so
%{dynload_dir}/_io_d.so
%{dynload_dir}/_json_d.so
%{dynload_dir}/_localemodule_d.so
%{dynload_dir}/_lsprof_d.so
%{dynload_dir}/_multibytecodecmodule_d.so
%{dynload_dir}/_multiprocessing_d.so
%{dynload_dir}/_randommodule_d.so
%{dynload_dir}/_socketmodule_d.so
%{dynload_dir}/_sqlite3_d.so
%{dynload_dir}/_ssl_d.so
%{dynload_dir}/_struct_d.so
%{dynload_dir}/arraymodule_d.so
%{dynload_dir}/audioop_d.so
%{dynload_dir}/binascii_d.so
%{dynload_dir}/bz2_d.so
%{dynload_dir}/cPickle_d.so
%{dynload_dir}/cStringIO_d.so
%{dynload_dir}/cmathmodule_d.so
%{dynload_dir}/_cryptmodule_d.so
%{dynload_dir}/datetime_d.so
%{dynload_dir}/dbm_d.so
%{dynload_dir}/dlmodule_d.so
%{dynload_dir}/fcntlmodule_d.so
%{dynload_dir}/future_builtins_d.so
#with_gdbm
%{dynload_dir}/gdbmmodule_d.so
#%endif
%{dynload_dir}/grpmodule_d.so
%{dynload_dir}/imageop_d.so
%{dynload_dir}/itertoolsmodule_d.so
%{dynload_dir}/linuxaudiodev_d.so
%{dynload_dir}/math_d.so
%{dynload_dir}/mmapmodule_d.so
%{dynload_dir}/nismodule_d.so
%{dynload_dir}/operator_d.so
%{dynload_dir}/ossaudiodev_d.so
%{dynload_dir}/parsermodule_d.so
%{dynload_dir}/pyexpat_d.so
%{dynload_dir}/readline_d.so
%{dynload_dir}/resource_d.so
%{dynload_dir}/selectmodule_d.so
%{dynload_dir}/spwdmodule_d.so
%{dynload_dir}/stropmodule_d.so
%{dynload_dir}/syslog_d.so
%{dynload_dir}/termios_d.so
%{dynload_dir}/timemodule_d.so
%{dynload_dir}/timingmodule_d.so
%{dynload_dir}/unicodedata_d.so
%{dynload_dir}/xxsubtype_d.so
%{dynload_dir}/zlibmodule_d.so
# No need to split things out the "Makefile" and the config-32/64.h file as we
# do for the regular build above (bug 531901), since they're all in one package
# now; they're listed below, under "-devel":
%{_libdir}/%{py_INSTSONAME_debug}
#with_systemtap
%dir %(dirname %{tapsetdir})
%dir %{tapsetdir}
%{tapsetdir}/libpython%{pybasever}-debug-64.stp
#%endif
# Analog of the -devel subpackage's files:
%dir %{pylibdir}/config-debug
%{_libdir}/pkgconfig/python-%{pybasever}-debug.pc
%{_libdir}/pkgconfig/python-debug.pc
%{_libdir}/pkgconfig/python2-debug.pc
%{pylibdir}/config-debug/*
%{_includedir}/python%{pybasever}-debug/*.h
%{_bindir}/python-debug-config
%{_bindir}/python2-debug-config
%{_bindir}/python%{pybasever}-debug-config
%{_libdir}/libpython%{pybasever}_d.so
# Analog of the -tools subpackage's files:
# None for now; we could build precanned versions that have the appropriate
# shebang if needed
#%_module_build
# Analog of the tkinter subpackage's files:
%{dynload_dir}/_tkinter_d.so
#%endif
# Analog of the -test subpackage's files:
%{dynload_dir}/_ctypes_test_d.so
%{dynload_dir}/_testcapimodule_d.so
%changelog
* Fri Mar 6 2020 hanxinke<hanxinke@huawei.com> - 2.7.16-15
- Type:cves
- ID:CVE-2020-8492
- SUG:NA
- DESC:fix CVE-2020-8492
* Sat Feb 29 2020 hanxinke<hanxinke@huawei.com> - 2.7.16-14
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix excessive memory usage when using regular expressions
* Sat Feb 22 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-13
- Type:bugfix
- Id:NA
- SUG:NA
- DESC:Rollback version to 2.7.16-10
* Sat Feb 22 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-12
- Type:bugfix
- Id:NA
- SUG:NA
- DESC:fixbug in installing package
* Sat Feb 22 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-11
- Type:bugfix
- Id:NA
- SUG:NA
- DESC:Remove the default version of python2
* Mon Feb 3 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-10
- Type:bugfix
- Id:NA
- SUG:NA
- DESC:fix CVE-2017-18207
* Tue Jan 14 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-9
- delete unneeded obsoletes with isa
* Wed Dec 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-8
- exclude private key; provide some file in python2-devel
* Sat Dec 21 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-7
- Type:bugfix
- Id:NA
- SUG:NA
- DESC:fix CVE
* Thu Nov 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-6
- add _pyconfig32_h _pyconfig64_h global var
* Thu Nov 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-5
- add python2-debug
* Fri Oct 18 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-4
- add generic os support
* Tue Oct 15 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-3
- Provides python2-test
* Wed Sep 26 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-2
- Package init
* Tue Sep 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.7.16-1
- Package init