File python3-doc.spec of Package python3

#
# spec file for package python3-doc
#
# Copyright (c) 2015 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 http://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.1
Release:        0
BuildArch:      noarch
%define         tarversion     %{version}
%define         tarname        Python-%{tarversion}
Source0:        http://www.python.org/ftp/python/%{tarversion}/%{tarname}.tar.xz
Source11:       dh2048.pem
BuildRequires:  python-Sphinx
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-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
# Add support for ppc64le (ELFv2) to libffi copy for ctypes
Patch13:        libffi-ppc64le.diff
# Raise timeout value for test_subprocess
Patch15:        subprocess-raise-timeout.patch
# CVE-2014-4650 - File disclosure and directory traversal in CGIHTTPServer
Patch16:        CVE-2014-4650-CGIHTTPServer-traversal.patch
# CVE-2015-4000 - logjam fix for the testsuite
Patch17:        python-fix-short-dh.patch
# PATCH-FIX-UPSTREAM Fix argument passing in libffi for aarch64
Patch18:        python-2.7-libffi-aarch64.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 <guido@python.org>

%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
%patch06 -p1
%patch07
%patch09 -p1
%patch10 -p1
%patch12 -p1
%patch13 -p0
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
cp %{SOURCE11} Lib/test/

# 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
openSUSE Build Service is sponsored by