[python-sphinx] Enable python3 subpackage

Michel Alexandre Salim salimma at fedoraproject.org
Thu Dec 8 17:46:23 UTC 2011


commit 7f502fb34d084e5ee12742e23b281c8a4f416d2d
Author: Michel Alexandre Salim <salimma at fedoraproject.org>
Date:   Thu Dec 8 18:46:16 2011 +0100

    Enable python3 subpackage

 .gitignore         |    3 -
 python-sphinx.spec |  107 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 103 insertions(+), 7 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 17ed307..8817c29 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1 @@
-/Sphinx-1.0.4.tar.gz
-/Sphinx-1.0.6.tar.gz
-/Sphinx-1.0.7.tar.gz
 /Sphinx-1.1.2.tar.gz
diff --git a/python-sphinx.spec b/python-sphinx.spec
index 85cd2aa..bb3ec1e 100644
--- a/python-sphinx.spec
+++ b/python-sphinx.spec
@@ -1,12 +1,15 @@
-%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5)
-%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
+%if 0%{?fedora} || 0%{?rhel} > 6
+%global with_python3 1
+%{!?python3_version: %global python3_version %(%{__python3} -c "import sys; sys.stdout.write(sys.version[:3])")}
+%else
+%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")}
 %endif
 
 %global upstream_name Sphinx
 
 Name:       python-sphinx
 Version:    1.1.2
-Release:    1%{?dist}
+Release:    2%{?dist}
 Summary:    Python documentation generator
 
 Group:      Development/Tools
@@ -28,6 +31,17 @@ BuildRequires: python-nose
 Requires:      python-docutils
 Requires:      python-jinja2
 Requires:      python-pygments
+%if 0%{?with_python3}
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-docutils
+BuildRequires: python3-jinja2
+BuildRequires: python3-pygments
+BuildRequires: python3-nose
+Requires:      python3-docutils
+Requires:      python3-jinja2
+Requires:      python3-pygments
+%endif # with_python3
 
 
 %description
@@ -59,6 +73,41 @@ the Python docs:
       snippets and inclusion of appropriately formatted docstrings.
 
 
+%if 0%{?with_python3}
+%package -n python3-sphinx
+Summary:    Python documentation generator
+Group:      Development/Tools
+
+%description -n python3-sphinx
+Sphinx is a tool that makes it easy to create intelligent and
+beautiful documentation for Python projects (or other documents
+consisting of multiple reStructuredText sources), written by Georg
+Brandl. It was originally created to translate the new Python
+documentation, but has now been cleaned up in the hope that it will be
+useful to many other projects.
+
+Sphinx uses reStructuredText as its markup language, and many of its
+strengths come from the power and straightforwardness of
+reStructuredText and its parsing and translating suite, the Docutils.
+
+Although it is still under constant development, the following
+features are already present, work fine and can be seen "in action" in
+the Python docs:
+
+    * Output formats: HTML (including Windows HTML Help) and LaTeX,
+      for printable PDF versions
+    * Extensive cross-references: semantic markup and automatic links
+      for functions, classes, glossary terms and similar pieces of
+      information
+    * Hierarchical structure: easy definition of a document tree, with
+      automatic links to siblings, parents and children
+    * Automatic indices: general index as well as a module index
+    * Code handling: automatic highlighting using the Pygments highlighter
+    * Various extensions are available, e.g. for automatic testing of
+      snippets and inclusion of appropriately formatted docstrings.
+%endif # with_python3
+
+
 %package doc
 Summary:    Documentation for %{name}
 Group:      Documentation
@@ -81,8 +130,20 @@ This package contains documentation in reST and HTML formats.
 %setup -q -n %{upstream_name}-%{version}%{?prerel}
 sed '1d' -i sphinx/pycode/pgen2/token.py
 
+%if 0%{?with_python3}
+rm -rf %{py3dir}
+cp -a . %{py3dir}
+%endif # with_python3
+
+
 %build
 %{__python} setup.py build
+%if 0%{?with_python3}
+pushd %{py3dir}
+%{__python3} setup.py build
+popd
+%endif # with_python3
+
 pushd doc
 make html
 make man
@@ -94,13 +155,31 @@ popd
 %install
 rm -rf %{buildroot}
 
-%{__python} setup.py install --skip-build --root %{buildroot}
+# Must do the python3 install first because the scripts in /usr/bin are
+# overwritten with every setup.py install (and we want the python2 version
+# to be the default for now).
+%if 0%{?with_python3}
+pushd %{py3dir}
+%{__python3} setup.py install --skip-build --root %{buildroot}
+for f in %{buildroot}%{_bindir}/sphinx-*;
+do
+    mv $f $f-%{python3_version}
+done
+popd
+%endif # with_python3
 
+%{__python} setup.py install --skip-build --root %{buildroot}
 
 pushd doc
 # Deliver man pages
 install -d %{buildroot}%{_mandir}/man1
 mv _build/man/sphinx-*.1 %{buildroot}%{_mandir}/man1/
+%if 0%{?with_python3}
+for f in %{buildroot}%{_mandir}/man1/sphinx-*.1;
+do
+    cp -p $f $(echo $f | sed -e "s|.1$|-%{python3_version}.1|")
+done
+%endif # with_python3
 popd
 
 # Deliver rst files
@@ -134,6 +213,11 @@ popd
 
 %check
 make test
+%if 0%{?with_python3}
+pushd %{py3dir}
+make test
+popd
+%endif # with_python3
 
 
 %files -f sphinx.lang
@@ -144,14 +228,29 @@ make test
 %dir %{_datadir}/sphinx/
 %dir %{_datadir}/sphinx/locale
 %dir %{_datadir}/sphinx/locale/*
+%exclude %{_mandir}/man1/sphinx-*-%{python3_version}.1*
 %{_mandir}/man1/*
 
+%if 0%{?with_python3}
+%files -n python3-sphinx
+%doc AUTHORS CHANGES EXAMPLES LICENSE README TODO
+%{_bindir}/sphinx-*-%{python3_version}
+%{python3_sitelib}/*
+%dir %{_datadir}/sphinx/
+%dir %{_datadir}/sphinx/locale
+%dir %{_datadir}/sphinx/locale/*
+%{_mandir}/man1/sphinx-*-%{python3_version}.1*
+%endif # with_python3
+
 %files doc
 %defattr(-,root,root,-)
 %doc html reST
 
 
 %changelog
+* Thu Dec  8 2011 Michel Salim <salimma at fedoraproject.org> - 1.1.2-2
+- Enable python3 subpackage
+
 * Mon Nov 28 2011 Toshio Kuratomi <toshio at fedoraproject.org> - 1.1.2-1
 - Update to upstream 1.1.2
 


More information about the scm-commits mailing list