File python3-Sphinx.spec of Package python3-Sphinx

#
# spec file for package python3-Sphinx
#
# Copyright (c) 2014 SUSE LINUX Products 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-Sphinx
Version:        1.2.3
Release:        0
Url:            http://sphinx.pocoo.org
Summary:        Python documentation generator
License:        BSD-2-Clause
Group:          Development/Languages/Python
Source:         http://pypi.python.org/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz
BuildRequires:  python3-2to3
BuildRequires:  python3-devel
BuildRequires:  python3-setuptools
# Documentation requirements:
BuildRequires:  python3-Jinja2
BuildRequires:  python3-docutils
# Testsuite requirements:
BuildRequires:  python3-Pygments
BuildRequires:  python3-nose
Requires(post): update-alternatives
Requires(postun): update-alternatives
Requires:       python3-Jinja2
Requires:       python3-Pygments
Requires:       python3-docutils
Requires:       python3-setuptools
Recommends:     python3-rst2pdf
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildArch:      noarch

%description
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
for the new Python documentation, and has excellent facilities for Python
project documentation, but C/C++ is supported as well, and more languages are
planned.

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.

%package        doc
Summary:        Documentation for %{name}
Group:          Documentation/Other
Requires:       %{name} = %{version}

%description    doc
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
for the new Python documentation, and has excellent facilities for Python
project documentation, but C/C++ is supported as well, and more languages are
planned.

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.

%prep
%setup -q -n Sphinx-%{version}
sed -i '/#\!/d' sphinx/pycode/pgen2/token.py # Fix non-excutable-script warning
# Add Interpreter version suffix to entrypoints (and thus /usr/bin binaries) to
# allow for update-alternatives later on:
sed -i "s|\(sphinx-.*\) =|\1-%{py3_ver} =|" setup.py # Add Python version suffix to binaries 
# Fix wrong end-of-line encoding
sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js

%build
#NOTE(saschpe): We have custom fixes only invoked during 'install'. Using 2to3 in %build will break things,
# later on. Thus run 'setup.py install first' and generate docs afterwards with the sphinx-build in BUILDROOT.
#TODO(saschpe): Check back at some point to see if this changed...
##2to3 -wn .
##python3 setup.py build
##python3 setup.py build_sphinx && rm build/sphinx/html/.buildinfo # Build HTML documentation
##python3 setup.py build_sphinx -b man # Build man-pages

%install
python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
for builder in html man ; do
    PYTHONPATH=%{buildroot}%{python3_sitelib} %{buildroot}%{_bindir}/sphinx-build-%{py3_ver} -b $builder doc/ build/sphinx/$builder
done
rm -rf build/sphinx/html/{.buildinfo,.doctrees}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for B in apidoc autogen build quickstart ; do
  touch %{buildroot}%{_sysconfdir}/alternatives/sphinx-$B
  ln -sf %{_sysconfdir}/alternatives/sphinx-$B %{buildroot}/%{_bindir}/sphinx-$B
done
install -d %{buildroot}%{_mandir}/man1/
for M in all apidoc build quickstart ; do
  install -m 644 build/sphinx/man/sphinx-$M.1 %{buildroot}%{_mandir}/man1/sphinx-$M-%{py3_ver}.1
  touch %{buildroot}%{_sysconfdir}/alternatives/sphinx-$M.1.gz
  ln -sf %{_sysconfdir}/alternatives/sphinx-$M.1.gz %{buildroot}%{_mandir}/man1/sphinx-$M.1.gz
done
%find_lang sphinx

%post
update-alternatives \
    --install %{_bindir}/sphinx-apidoc sphinx-apidoc %{_bindir}/sphinx-apidoc-%{py3_ver} 30 \
    --slave %{_bindir}/sphinx-build sphinx-build %{_bindir}/sphinx-build-%{py3_ver} \
    --slave %{_bindir}/sphinx-autogen sphinx-autogen %{_bindir}/sphinx-autogen-%{py3_ver} \
    --slave %{_bindir}/sphinx-quickstart sphinx-quickstart %{_bindir}/sphinx-quickstart-%{py3_ver} \
    --slave %{_mandir}/man1/sphinx-all.1.gz sphinx-all.1 %{_mandir}/sphinx-all-%{py3_ver}.1.gz \
    --slave %{_mandir}/man1/sphinx-apidoc.1.gz sphinx-apidoc.1 %{_mandir}/sphinx-apidoc-%{py3_ver}.1.gz \
    --slave %{_mandir}/man1/sphinx-build.1.gz sphinx-build.1 %{_mandir}/sphinx-build-%{py3_ver}.1.gz \
    --slave %{_mandir}/man1/sphinx-quickstart.1.gz sphinx-quickstart.1 %{_mandir}/sphinx-quickstart-%{py3_ver}.1.gz \

%postun
if [ $1 -eq 0 ] ; then
  update-alternatives --remove sphinx-build %{_bindir}/sphinx-apidoc-%{py3_ver}
fi

%check
pushd tests
2to3 -wn .
export PYTHON3PATH=%{buildroot}%{python3_sitelib}:$PYTHON3PATH 
export PYTHONPATH=%{buildroot}%{python3_sitelib}:$PYTHONPATH 
nosetests
popd

%files -f sphinx.lang
%defattr(-,root,root,-)
%doc AUTHORS CHANGES LICENSE README.rst TODO
%{_bindir}/sphinx-apidoc
%{_bindir}/sphinx-apidoc-%{py3_ver}
%{_bindir}/sphinx-autogen
%{_bindir}/sphinx-autogen-%{py3_ver}
%{_bindir}/sphinx-build
%{_bindir}/sphinx-build-%{py3_ver}
%{_bindir}/sphinx-quickstart
%{_bindir}/sphinx-quickstart-%{py3_ver}
%{_mandir}/man1/sphinx-all.1.gz
%{_mandir}/man1/sphinx-all-%{py3_ver}.1.gz
%{_mandir}/man1/sphinx-apidoc.1.gz
%{_mandir}/man1/sphinx-apidoc-%{py3_ver}.1.gz
%{_mandir}/man1/sphinx-build.1.gz
%{_mandir}/man1/sphinx-build-%{py3_ver}.1.gz
%{_mandir}/man1/sphinx-quickstart.1.gz
%{_mandir}/man1/sphinx-quickstart-%{py3_ver}.1.gz
%{python3_sitelib}/sphinx/
%{python3_sitelib}/Sphinx-%{version}-py%{py3_ver}.egg-info
%ghost %{_sysconfdir}/alternatives/sphinx-apidoc
%ghost %{_sysconfdir}/alternatives/sphinx-autogen
%ghost %{_sysconfdir}/alternatives/sphinx-build
%ghost %{_sysconfdir}/alternatives/sphinx-quickstart
%ghost %{_sysconfdir}/alternatives/sphinx-all.1.gz
%ghost %{_sysconfdir}/alternatives/sphinx-apidoc.1.gz
%ghost %{_sysconfdir}/alternatives/sphinx-build.1.gz
%ghost %{_sysconfdir}/alternatives/sphinx-quickstart.1.gz

%files doc
%defattr(-,root,root,-)
%doc EXAMPLES build/sphinx/html

%changelog
openSUSE Build Service is sponsored by