# # spec file for package python3-doc # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: python3-doc Url: http://www.python.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: xz Summary: Additional Package Documentation for Python License: Python-2.0 Group: Development/Languages/Python Version: 3.4.6 Release: 0 BuildArch: noarch %define tarversion %{version} %define tarname Python-%{tarversion} Source0: http://www.python.org/ftp/python/%{tarversion}/%{tarname}.tar.xz BuildRequires: python-Sphinx %if 0%{?is_opensuse} && 0%{?sle_version} >= 120300 BuildRequires: python-Sphinx-latex %endif BuildRequires: texlive-cmap BuildRequires: texlive-collection-fontsrecommended BuildRequires: texlive-fancybox BuildRequires: texlive-fancyvrb BuildRequires: texlive-framed BuildRequires: texlive-mdwtools BuildRequires: texlive-multirow BuildRequires: texlive-parskip BuildRequires: texlive-scheme-basic BuildRequires: texlive-threeparttable BuildRequires: texlive-titlesec BuildRequires: texlive-ucs BuildRequires: texlive-upquote BuildRequires: texlive-wrapfig # for consistency: ### COMMON-PATCH-BEGIN ### # implement "--record-rpm" option for distutils installations Patch01: Python-3.0b1-record-rpm.patch # support lib-vs-lib64 distinction Patch02: Python-3.3.0b2-multilib.patch # securing usage of readlink/realpath in PySys_SetArgv Patch03: python-2.6b1-canonicalize2.patch # support finding packages in /usr/local, install to /usr/local by default Patch04: python-3.3.0b1-localpath.patch # replace DATE, TIME and COMPILER by fixed definitions to aid reproducible builds Patch06: python-3.3.0b1-fix_date_time_compiler.patch # fix wrong include path in curses-panel module Patch07: python-3.3.0b1-curses-panel.patch # POSIX_FADV_WILLNEED throws EINVAL. Use a different constant in test Patch09: python-3.3.0b1-test-posix_fadvise.patch # Add missing bits for aarch64 in libffi Patch10: ctypes-libffi-aarch64.patch # Disable global and distutils sysconfig comparison test, we deviate from the default depending on optflags Patch12: python-3.3.3-skip-distutils-test_sysconfig_module.patch # Raise timeout value for test_subprocess Patch15: subprocess-raise-timeout.patch # PATCH-FIX-UPSTREAM Fix argument passing in libffi for aarch64 Patch18: python-2.7-libffi-aarch64.patch # PATCH-FIX-UPSTREAM Prefer lowercase proxy environment variables Patch19: python3-urllib-prefer-lowercase-proxies.patch # PATCH-FIX-UPSTREAM python-3.6-CVE-2017-18207.patch psimons@suse.com -- Add check for channels of wav file in Lib/wave.py # Suggested in https://github.com/python/cpython/pull/4437. Patch20: python-3.6-CVE-2017-18207.patch # PATCH-FIX-UPSTREAM https://bugs.python.org/issue30693 Patch21: python-sorted_tar.patch # PATCH-FIX-UPSTREAM python-3.6-CVE-2018-1061.patch -- bpo-32981: Fix catastrophic backtracking vulns # Suggested in https://github.com/python/cpython/pull/5955 Patch22: CVE-2018-1061-DOS-via-regexp-difflib.patch # PATCH-FIX-UPSTREAM CVE-2019-5010-null-defer-x509-cert-DOS.patch bnc#1122191 mcepl@suse.com # https://github.com/python/cpython/pull/11569 # Fix segfault in ssl's cert parser Patch23: CVE-2019-5010-null-defer-x509-cert-DOS.patch # PATCH-FIX-UPSTREAM CVE-2018-20406-pickle_LONG_BINPUT.patch bnc#1120644 mcepl@suse.com # _pickle.c integer overflow via a large LONG_BINPUT value Patch24: CVE-2018-20406-pickle_LONG_BINPUT.patch ### COMMON-PATCH-END ### ### COMMON-DEF-BEGIN ### # the versions are autogenerated from pre_checkin.sh # based on the current source tarball %define python_version 3.4 %define python_version_abitag 34 %define python_version_soname 3_4 %define sitedir %{_libdir}/python%{python_version} # three possible ABI kinds: m - pymalloc, d - debug build # see PEP 3149 %define abi_kind m # python ABI version - used in some file names %define python_abi %{python_version}%{abi_kind} # soname ABI tag defined in PEP 3149 %define abi_tag %{python_version_abitag}%{abi_kind} %define so_version %{python_version_soname}%{abi_kind}1_0 %define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}.so ### COMMON-DEF-END ### Enhances: python3 = %{python_version} %description Tutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in HTML format. %package pdf Summary: Python PDF Documentation Group: Development/Languages/Python %description pdf Tutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in PDF format. Authors: -------- Guido van Rossum %prep %setup -q -n %{tarname} # for consistency ### COMMON-PREP-BEGIN ### %patch01 -p1 %patch02 -p1 #%%patch03 #- canonicalize disabled, needs testing whether the exploit still works %patch04 -p1 %patch06 -p1 %patch07 %patch09 -p1 %patch10 -p1 %patch12 -p1 %patch15 -p1 %patch18 -p1 %patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 # drop Autoconf version requirement sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac # fix shebangs - convert /usr/local/bin/python and /usr/bin/env/python to /usr/bin/python3 for dir in Lib Tools; do # find *.py, filter to files that contain bad shebangs find $dir -name '*.py' -type f -print0 \ | xargs -0 grep -lE '^#! *(/usr/.*bin/(env +)?)?python' \ | xargs sed -r -i -e '1s@^#![[:space:]]*(/usr/(local/)?bin/(env +)?)?python([0-9]+(\.[0-9]+)?)?@#!/usr/bin/python3@' done ### COMMON-PREP-END ### %build TODAY_DATE=`date -r %{S:0} "+%B %d, %Y"` # TODO use not date of tarball but date of latest patch cd Doc sed -i "s/^today = .*/today = '$TODAY_DATE'/" conf.py make html make latex PAPER=a4 ( cd build/latex; make all-pdf ) mv build/latex build/paper-a4 make latex PAPER=letter ( cd build/latex; make all-pdf ) mv build/latex build/paper-letter %install export PDOCS=${RPM_BUILD_ROOT}%{_docdir}/python3 mkdir -p $PDOCS # generated docs pushd Doc rm build/html/.buildinfo cp -r build/html $PDOCS install -d -m 755 $PDOCS/paper-a4 cp build/paper-a4/*.pdf $PDOCS/paper-a4 install -d -m 755 $PDOCS/paper-letter cp build/paper-letter/*.pdf $PDOCS/paper-letter popd # misc install -d -m 755 $PDOCS/Misc rm Misc/README.AIX for i in Misc/* ; do [ -f $i ] && install -c -m 644 $i $PDOCS/Misc/ done %clean rm -rf $RPM_BUILD_ROOT %files %defattr(644, root, root, 755) %dir %{_docdir}/python3 %doc %{_docdir}/python3/Misc %doc %{_docdir}/python3/html %files pdf %defattr(644, root, root, 755) %doc %{_docdir}/python3/paper-a4 %doc %{_docdir}/python3/paper-letter %changelog