%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: 8 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 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: python-libs%{?_isa} < %{version}-%{release} Obsoletes: %{name}-libs < %{version}-%{release} Obsoletes: %{name}-libs%{?_isa} < %{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: tkinter%{?_isa} < %{version}-%{release} Obsoletes: tkinter2 < %{version}-%{release} Obsoletes: tkinter2%{?_isa} < %{version}-%{release} Obsoletes: python-tkinter < %{version}-%{release} Obsoletes: python-tkinter%{?_isa} < %{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} Obsoletes: python-test%{?_isa} < %{version}-%{release} Provides: python-test = %{version}-%{release} Provides: python-test%{?_isa} = %{version}-%{release} Obsoletes: %{name}-test < %{version}-%{release} Obsoletes: %{name}-test%{?_isa} < %{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 * 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