%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.18 Release: 1 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 Patch2: python-2.5-cflags.patch Patch3: python-2.5.1-plural-fix.patch Patch4: python-2.5.1-sqlite-encoding.patch Patch5: 00010-2.7.13-binutils-no-dep.patch Patch6: python-2.7rc1-socketmodule-constants.patch Patch7: python-2.7rc1-socketmodule-constants2.patch Patch8: python-2.6-rpath.patch Patch9: python-2.6.4-distutils-rpath.patch Patch10: 00055-systemtap.patch Patch11: 00102-2.7.13-lib64.patch Patch12: python-2.7-lib64-sysconfig.patch Patch13: 00104-lib64-fix-for-test_install.patch Patch14: 00111-no-static-lib.patch Patch15: 00112-2.7.13-debug-build.patch Patch16: 00113-more-configuration-flags.patch Patch17: 00114-statvfs-f_flag-constants.patch Patch18: 00121-add-Modules-to-build-path.patch Patch19: python-2.7.1-fix_test_abc_with_COUNT_ALLOCS.patch Patch20: python-2.7.2-add-extension-suffix-to-python-config.patch Patch21: 00131-disable-tests-in-test_io.patch Patch22: 00132-add-rpmbuild-hooks-to-unittest.patch Patch23: 00133-skip-test_dl.patch Patch24: 00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch Patch25: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch Patch26: 00138-fix-distutils-tests-in-debug-build.patch Patch27: 00139-skip-test_float-known-failure-on-arm.patch Patch28: 00140-skip-test_ctypes-known-failure-on-sparc.patch Patch29: 00142-skip-failing-pty-tests-in-rpmbuild.patch Patch30: 00143-tsc-on-ppc.patch Patch31: 00147-add-debug-malloc-stats.patch Patch32: 00155-avoid-ctypes-thunks.patch Patch33: 00156-gdb-autoload-safepath.patch Patch34: 00165-crypt-module-salt-backport.patch Patch35: 00167-disable-stack-navigation-tests-when-optimized-in-test_gdb.patch Patch36: 00169-avoid-implicit-usage-of-md5-in-multiprocessing.patch Patch37: 00170-gc-assertions.patch Patch38: 00174-fix-for-usr-move.patch Patch39: 00180-python-add-support-for-ppc64p7.patch Patch40: 00181-allow-arbitrary-timeout-in-condition-wait.patch Patch41: 00185-urllib2-honors-noproxy-for-ftp.patch Patch42: 00187-add-RPATH-to-pyexpat.patch Patch43: 00189-use-rpm-wheels.patch Patch44: 00191-disable-NOOP.patch Patch45: 00193-enable-loading-sqlite-extensions.patch Patch46: 00289-disable-nis-detection.patch Patch47: 04000-modularity-disable-tk.patch Patch48: 05000-autotool-intermediates.patch Patch49: python2-add-generic-os-supportr.patch Patch50: bugfix-linux_distribution-skip-link-file.patch Patch51: bugfix-test_locale-and-test_codecs.patch Patch52: CVE-2019-17514.patch Patch53: CVE-2017-18207.patch Patch54: bugfix-excessive-memory-usage-when-using-regular-expressions.patch Patch55: CVE-2020-8492.patch Patch56: CVE-2019-9674.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 #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 * Thu Aug 06 2020 Leo Fang - 2.7.18-1 - Upgrade to version 2.7.18 and fix CVE-2019-9674 * Thu Jul 9 2020 shixuantong - 2.7.16-16 - Type:bugfix - ID:NA - SUG:NA - DESC:update release number * Fri Mar 6 2020 hanxinke - 2.7.16-15 - Type:cves - ID:CVE-2020-8492 - SUG:NA - DESC:fix CVE-2020-8492 * Sat Feb 29 2020 hanxinke - 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 - 2.7.16-13 - Type:bugfix - Id:NA - SUG:NA - DESC:Rollback version to 2.7.16-10 * Sat Feb 22 2020 openEuler Buildteam - 2.7.16-12 - Type:bugfix - Id:NA - SUG:NA - DESC:fixbug in installing package * Sat Feb 22 2020 openEuler Buildteam - 2.7.16-11 - Type:bugfix - Id:NA - SUG:NA - DESC:Remove the default version of python2 * Mon Feb 3 2020 openEuler Buildteam - 2.7.16-10 - Type:bugfix - Id:NA - SUG:NA - DESC:fix CVE-2017-18207 * Tue Jan 14 2020 openEuler Buildteam - 2.7.16-9 - delete unneeded obsoletes with isa * Wed Dec 25 2019 openEuler Buildteam - 2.7.16-8 - exclude private key; provide some file in python2-devel * Sat Dec 21 2019 openEuler Buildteam - 2.7.16-7 - Type:bugfix - Id:NA - SUG:NA - DESC:fix CVE * Thu Nov 28 2019 openEuler Buildteam - 2.7.16-6 - add _pyconfig32_h _pyconfig64_h global var * Thu Nov 28 2019 openEuler Buildteam - 2.7.16-5 - add python2-debug * Fri Oct 18 2019 openEuler Buildteam - 2.7.16-4 - add generic os support * Tue Oct 15 2019 openEuler Buildteam - 2.7.16-3 - Provides python2-test * Wed Sep 26 2019 openEuler Buildteam - 2.7.16-2 - Package init * Tue Sep 25 2019 openEuler Buildteam - 2.7.16-1 - Package init