python-Sphinx/python-Sphinx.spec
Dirk Mueller 6aa0a6f18c Accepting request 1101202 from home:marxin:branches:devel:languages:python
- 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
2023-07-29 09:12:43 +00:00

362 lines
12 KiB
RPMSpec
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# 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 doesnt 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