Dirk Mueller
6aa0a6f18c
- Update to 7.1.1: * #11514: Fix ``SOURCE_DATE_EPOCH`` in multi-line copyright footer. Patch by Bénédikt Tran. - Update to 7.1.0: * Releases are no longer signed, given the `change in PyPI policy`_. * #11412: Emit warnings on using a deprecated Python-specific index entry type (namely, ``module``, ``keyword``, ``operator``, ``object``, ``exception``, ``statement``, and ``builtin``) in the :rst:dir:`index` directive, and set the removal version to Sphinx 9. Patch by Adam Turner. * #11415: Add a checksum to JavaScript and CSS asset URIs included within generated HTML, using the CRC32 algorithm. * :meth:`~sphinx.application.Sphinx.require_sphinx` now allows the version requirement to be specified as ``(major, minor)``. * #11011: Allow configuring a line-length limit for object signatures, via :confval:`maximum_signature_line_length` and the domain-specific variants. If the length of the signature (in characters) is greater than the configured limit, each parameter in the signature will be split to its own logical line. This behaviour may also be controlled by options on object description directives, for example :rst:dir:`py:function:single-line-parameter-list`. Patch by Thomas Louf, Adam Turner, and Jean-François B. * #10983: Support for multiline copyright statements in the footer block. Patch by Stefanie Molin * ``sphinx.util.display.status_iterator`` now clears the current line with ANSI control codes, rather than overprinting with space characters. * #11431: linkcheck: Treat SSL failures as broken links. Patch by Bénédikt Tran * #11157: Keep the ``translated`` attribute on translated nodes. * #11451: Improve the traceback displayed when using :option:`sphinx-build -T` in parallel builds. Patch by Bénédikt Tran * #11324: linkcheck: Use session-basd HTTP requests. OBS-URL: https://build.opensuse.org/request/show/1101202 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Sphinx?expand=0&rev=245
362 lines
12 KiB
RPMSpec
362 lines
12 KiB
RPMSpec
#
|
||
# spec file
|
||
#
|
||
# Copyright (c) 2023 SUSE LLC
|
||
#
|
||
# 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/
|
||
#
|
||
|
||
|
||
%global flavor @BUILD_FLAVOR@%{nil}
|
||
%if "%{flavor}" == "test"
|
||
%define psuffix -test
|
||
%bcond_without test
|
||
%else
|
||
%define psuffix %{nil}
|
||
%bcond_with test
|
||
%endif
|
||
%{?sle15_python_module_pythons}
|
||
Name: python-Sphinx%{psuffix}
|
||
Version: 7.1.1
|
||
Release: 0
|
||
Summary: Python documentation generator
|
||
License: BSD-2-Clause
|
||
Group: Development/Languages/Python
|
||
URL: http://sphinx-doc.org
|
||
Source: https://files.pythonhosted.org/packages/source/s/sphinx/sphinx-%{version}.tar.gz
|
||
# Provide intersphinx inventory offline, run update-intersphinx.sh
|
||
# https://docs.python.org/3/objects.inv
|
||
Source2: python3.inv
|
||
# https://requests.readthedocs.io/en/stable/objects.inv
|
||
Source3: requests.inv
|
||
# https://docs.readthedocs.io/en/stable/objects.inv
|
||
Source4: readthedocs.inv
|
||
Source5: update-intersphinx.sh
|
||
Source99: python-Sphinx.keyring
|
||
BuildRequires: %{python_module base}
|
||
BuildRequires: %{python_module flit-core}
|
||
BuildRequires: %{python_module pip}
|
||
BuildRequires: %{python_module setuptools}
|
||
BuildRequires: %{python_module wheel}
|
||
BuildRequires: fdupes
|
||
BuildRequires: python-rpm-macros
|
||
BuildRequires: python3-pip
|
||
# workaround for suboptimal CentOS-7 project config
|
||
#!BuildIgnore: texinfo
|
||
Requires: python-Babel >= 1.3
|
||
Requires: python-Jinja2 >= 2.3
|
||
Requires: python-Pygments >= 2.1
|
||
Requires: python-alabaster >= 0.7
|
||
Requires: python-docutils >= 0.12
|
||
Requires: python-imagesize
|
||
Requires: python-packaging
|
||
Requires: python-requests >= 2.5.0
|
||
Requires: python-setuptools
|
||
Requires: python-snowballstemmer >= 1.1
|
||
Requires: python-sphinx_rtd_theme
|
||
Requires: python-sphinxcontrib-applehelp
|
||
Requires: python-sphinxcontrib-devhelp
|
||
Requires: python-sphinxcontrib-htmlhelp >= 2.0.0
|
||
Requires: python-sphinxcontrib-jsmath
|
||
Requires: python-sphinxcontrib-qthelp >= 1.0.2
|
||
Requires: python-sphinxcontrib-serializinghtml >= 1.1.5
|
||
Requires: python-sphinxcontrib-websupport
|
||
Requires(post): update-alternatives
|
||
Requires(postun):update-alternatives
|
||
Recommends: python-SQLAlchemy >= 0.9
|
||
Recommends: python-Sphinx-doc-man
|
||
Recommends: python-Whoosh >= 2.0
|
||
BuildArch: noarch
|
||
%if 0%{?python_version_nodots} < 310
|
||
Requires: python-importlib-metadata >= 4.4
|
||
%endif
|
||
%if %{with test}
|
||
BuildRequires: %{python_module Cython}
|
||
BuildRequires: %{python_module Sphinx = %{version}}
|
||
BuildRequires: %{python_module Sphinx-latex = %{version}}
|
||
BuildRequires: %{python_module filelock}
|
||
BuildRequires: %{python_module html5lib}
|
||
BuildRequires: %{python_module pytest-xdist}
|
||
BuildRequires: %{python_module pytest}
|
||
BuildRequires: %{python_module sphinxcontrib-websupport}
|
||
BuildRequires: %{python_module testsuite}
|
||
BuildRequires: ImageMagick
|
||
BuildRequires: graphviz
|
||
BuildRequires: (python3-typed-ast if python3-base < 3.8)
|
||
# For PNG format
|
||
BuildRequires: graphviz-gd
|
||
# For PDF format (!?)
|
||
BuildRequires: graphviz-gnome
|
||
BuildRequires: texlive-tex-gyre
|
||
%endif
|
||
%python_subpackages
|
||
|
||
%description
|
||
Sphinx is a tool that facilitates creating documentation for Python
|
||
projects (or other documents consisting of multiple reStructuredText
|
||
sources). It was originally created for the Python documentation, and
|
||
supports Python project documentation well, but C/C++ is likewise
|
||
supported.
|
||
|
||
Sphinx uses reStructuredText as its markup language. Sphinx draws from
|
||
the parsing and translating suite, the Docutils.
|
||
|
||
%package latex
|
||
Summary: Sphinx packages for LaTeX
|
||
Group: Productivity/Publishing/TeX/Base
|
||
Requires: python-Sphinx = %{version}
|
||
Requires: texlive-dvipng
|
||
Requires: texlive-gnu-freefont
|
||
Requires: texlive-latex
|
||
Requires: texlive-latexmk
|
||
Requires: texlive-makeindex
|
||
Requires: texlive-metafont
|
||
Requires: texlive-pdftex
|
||
Requires: tex(8r.enc)
|
||
Requires: tex(alltt.sty)
|
||
Requires: tex(amsfonts.sty)
|
||
Requires: tex(amsmath.sty)
|
||
Requires: tex(amssymb.sty)
|
||
Requires: tex(amsthm.sty)
|
||
Requires: tex(anyfontsize.sty)
|
||
Requires: tex(array.sty)
|
||
Requires: tex(article.cls)
|
||
Requires: tex(atbegshi.sty)
|
||
Requires: tex(babel.sty)
|
||
Requires: tex(bm.sty)
|
||
Requires: tex(capt-of.sty)
|
||
Requires: tex(cmap.sty)
|
||
Requires: tex(color.sty)
|
||
Requires: tex(colortbl.sty)
|
||
Requires: tex(dvipdfmx.def)
|
||
Requires: tex(english.ldf)
|
||
Requires: tex(eqparbox.sty)
|
||
Requires: tex(fancybox.sty)
|
||
Requires: tex(fancyhdr.sty)
|
||
Requires: tex(fancyvrb.sty)
|
||
Requires: tex(float.sty)
|
||
Requires: tex(fncychap.sty)
|
||
Requires: tex(fontenc.sty)
|
||
Requires: tex(footnote.sty)
|
||
Requires: tex(framed.sty)
|
||
Requires: tex(graphics.sty)
|
||
Requires: tex(graphicx.sty)
|
||
Requires: tex(hypcap.sty)
|
||
Requires: tex(hyperref.sty)
|
||
Requires: tex(ifthen.sty)
|
||
Requires: tex(inputenc.sty)
|
||
Requires: tex(longtable.sty)
|
||
Requires: tex(luatex85.sty)
|
||
Requires: tex(makeidx.sty)
|
||
Requires: tex(multirow.sty)
|
||
Requires: tex(needspace.sty)
|
||
Requires: tex(newfloat.sty)
|
||
Requires: tex(palatino.sty)
|
||
Requires: tex(parskip.sty)
|
||
Requires: tex(pcrr.tfm)
|
||
Requires: tex(pdftex.def)
|
||
Requires: tex(pdftex.map)
|
||
Requires: tex(phvr.tfm)
|
||
Requires: tex(polyglossia.sty)
|
||
Requires: tex(pplr.tfm)
|
||
Requires: tex(preview.sty)
|
||
Requires: tex(ptmr.tfm)
|
||
Requires: tex(pzcmi.tfm)
|
||
Requires: tex(tabulary.sty)
|
||
Requires: tex(textcomp.sty)
|
||
Requires: tex(tgtermes.sty)
|
||
Requires: tex(threeparttable.sty)
|
||
Requires: tex(times.sty)
|
||
Requires: tex(titlesec.sty)
|
||
Requires: tex(upquote.sty)
|
||
Requires: tex(utf8.def)
|
||
Requires: tex(utf8x.def)
|
||
Requires: tex(varwidth.sty)
|
||
Requires: tex(wrapfig.sty)
|
||
|
||
%description latex
|
||
Sphinx is a tool that facilitates creating documentation for Python
|
||
projects (or other documents consisting of multiple reStructuredText
|
||
sources).
|
||
|
||
This package contains the LaTeX components for python-Sphinx.
|
||
|
||
%if 0%{?suse_version} > 1500
|
||
%package -n python-Sphinx-doc
|
||
Summary: Man files for python-Sphinx
|
||
Group: Documentation/Other
|
||
Requires: python3-Sphinx = %{version}
|
||
|
||
%description -n python-Sphinx-doc
|
||
Sphinx is a tool that facilitates creating documentation for Python
|
||
projects (or other documents consisting of multiple reStructuredText
|
||
sources). It was originally created for the Python documentation, and
|
||
supports Python project documentation well, but C/C++ is likewise
|
||
supported.
|
||
|
||
Sphinx uses reStructuredText as its markup language. Sphinx draws from
|
||
the parsing and translating suite, the Docutils.
|
||
|
||
This package contains the documentation for Sphinx.
|
||
|
||
%package -n python-Sphinx-doc-man
|
||
Summary: Man files for python-Sphinx
|
||
Group: Documentation/Man
|
||
Requires: python3-Sphinx = %{version}
|
||
Requires(post): update-alternatives
|
||
Requires(postun):update-alternatives
|
||
Supplements: python3-Sphinx
|
||
Obsoletes: python-Sphinx-doc-man-common <= %{version}
|
||
|
||
%description -n python-Sphinx-doc-man
|
||
Sphinx is a tool that facilitates creating documentation for Python
|
||
projects (or other documents consisting of multiple reStructuredText
|
||
sources).
|
||
|
||
This package contains the manual pages for the Sphinx executables.
|
||
|
||
%package -n python-Sphinx-doc-html
|
||
Summary: HTML Documentation for python-Sphinx
|
||
Group: Documentation/HTML
|
||
Provides: python-Sphinx-doc-html = %{version}
|
||
|
||
%description -n python-Sphinx-doc-html
|
||
Sphinx is a tool that facilitates creating documentation for Python
|
||
projects (or other documents consisting of multiple reStructuredText
|
||
sources).
|
||
|
||
This package contains the HTML documentation for Sphinx.
|
||
%endif
|
||
|
||
%prep
|
||
%setup -q -n sphinx-%{version}
|
||
%autopatch -p1
|
||
|
||
%build
|
||
%pyproject_wheel
|
||
|
||
%if %{with test}
|
||
mkdir build.doc
|
||
|
||
cp %{SOURCE2} doc/python3.inv
|
||
cp %{SOURCE3} doc/requests.inv
|
||
cp %{SOURCE4} doc/readthedocs.inv
|
||
%{python_expand # Use one bundled intersphinx inventory for all flavors.
|
||
# The python3.6 inventory fails to build even in its own flavor.
|
||
# Use a more recent default (currently 3.9) from the source tag instead.
|
||
# The same for requests.
|
||
sed -i -e "s/\((.https:..docs.python.org.3.., \)None\()\)/\1'python3.inv'\2/g" doc/conf.py
|
||
sed -i -e "s/\((.https:..requests.readthedocs.io.*, \)None\()\)/\1'requests.inv'\2/g" doc/conf.py
|
||
sed -i -e "s/\((.https:..docs.readthedocs.io.*, \)None\()\)/\1'readthedocs.inv'\2/g" doc/conf.py
|
||
# rm build/sphinx/html/.buildinfo
|
||
$python -m sphinx -b man -j auto ./doc ./build.doc/man
|
||
$python -m sphinx -b html -j auto ./doc ./build.doc/html
|
||
}
|
||
%endif
|
||
|
||
%install
|
||
%if ! %{with test}
|
||
%pyproject_install
|
||
|
||
%python_clone -a %{buildroot}%{_bindir}/sphinx-apidoc
|
||
%python_clone -a %{buildroot}%{_bindir}/sphinx-autogen
|
||
%python_clone -a %{buildroot}%{_bindir}/sphinx-build
|
||
%python_clone -a %{buildroot}%{_bindir}/sphinx-quickstart
|
||
|
||
%python_expand mkdir -p %{buildroot}%{$python_sitelib}/sphinxcontrib
|
||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||
|
||
# gh#openSUSE/python-rpm-macros#74
|
||
%{!?python_find_lang: %define python_find_lang() \
|
||
%find_lang %{**} \
|
||
langfile=%{?2}%{!?2:%1.lang} \
|
||
%{python_expand # \
|
||
grep -v 'python.*site-packages' ${langfile} > %{$python_prefix}-${langfile} \
|
||
grep -F %{$python_sitelib} ${langfile} >> %{$python_prefix}-${langfile} \
|
||
} \
|
||
}
|
||
%python_find_lang sphinx
|
||
|
||
%else
|
||
%if 0%{?suse_version} > 1500
|
||
mkdir -p %{buildroot}%{_docdir}/python-Sphinx/
|
||
mv build.doc/html %{buildroot}%{_docdir}/python-Sphinx/
|
||
rm -rf %{buildroot}%{_docdir}/python-Sphinx/html/_images
|
||
|
||
mkdir -p %{buildroot}%{_mandir}/man1
|
||
mv build.doc/man/sphinx-all.1 %{buildroot}%{_mandir}/man1/sphinx-all.1
|
||
mv build.doc/man/sphinx-apidoc.1 %{buildroot}%{_mandir}/man1/sphinx-apidoc.1
|
||
mv build.doc/man/sphinx-build.1 %{buildroot}%{_mandir}/man1/sphinx-build.1
|
||
mv build.doc/man/sphinx-quickstart.1 %{buildroot}%{_mandir}/man1/sphinx-quickstart.1
|
||
%endif
|
||
%endif
|
||
|
||
# Always deduplicate
|
||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||
|
||
%if ! %{with test}
|
||
%post
|
||
%python_install_alternative sphinx-apidoc sphinx-autogen sphinx-build sphinx-quickstart
|
||
:
|
||
|
||
%postun
|
||
%python_uninstall_alternative sphinx-apidoc
|
||
%endif
|
||
|
||
%check
|
||
%if %{with test}
|
||
export LC_ALL="C.utf8"
|
||
# test_latex_images test downloading a remote image
|
||
# test_signature_annotations doesn’t work
|
||
%pytest tests -k 'not (linkcheck or test_latex_images or test_signature_annotations or test_copy_images)' -n auto --dist=loadfile
|
||
%endif
|
||
|
||
%if ! %{with test}
|
||
%files %{python_files} -f %{python_prefix}-sphinx.lang
|
||
%license LICENSE
|
||
%doc AUTHORS CHANGES README.rst
|
||
%python_alternative %{_bindir}/sphinx-apidoc
|
||
%python_alternative %{_bindir}/sphinx-autogen
|
||
%python_alternative %{_bindir}/sphinx-build
|
||
%python_alternative %{_bindir}/sphinx-quickstart
|
||
%{python_sitelib}/sphinx/
|
||
%exclude %{python_sitelib}/sphinx/texinputs/
|
||
%dir %{python_sitelib}/sphinx-%{version}.dist-info
|
||
%{python_sitelib}/sphinx-%{version}.dist-info/*
|
||
%dir %{python_sitelib}/sphinxcontrib
|
||
|
||
%files %{python_files latex}
|
||
%license LICENSE
|
||
%doc AUTHORS
|
||
%{python_sitelib}/sphinx/texinputs/
|
||
%endif
|
||
|
||
%if %{with test}
|
||
%if 0%{?suse_version} > 1500
|
||
%files -n python-Sphinx-doc-man
|
||
%license LICENSE
|
||
%doc AUTHORS
|
||
%{_mandir}/man1/sphinx-all.1%{?ext_man}
|
||
%{_mandir}/man1/sphinx-apidoc.1%{?ext_man}
|
||
%{_mandir}/man1/sphinx-build.1%{?ext_man}
|
||
%{_mandir}/man1/sphinx-quickstart.1%{?ext_man}
|
||
|
||
%files -n python-Sphinx-doc-html
|
||
%license LICENSE
|
||
%doc AUTHORS
|
||
%dir %{_docdir}/python-Sphinx/
|
||
%{_docdir}/python-Sphinx/html/
|
||
%endif
|
||
%endif
|
||
|
||
%changelog
|