From da1eff5e261f52f9963a460df91f97c0a097b1fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 14 May 2018 13:59:52 +0200 Subject: [PATCH] Allow bootstrapping sphinx 1. Introduce --without websupport Sphinx (build)requires sphinxcontrib-websupport but that (build)requires sphinx. This bcond can be used to bootstrap this. 2. Introduce --without tests The tests bring a lot of additional dependencies that make bootstrapping harder. This allows to build without tests. 3. Build the docs with self The documentation was built with 'python', thus importing sphinx from python2's sitelib. Sphinx was installed because of the above mentioned buildrequirement of sphinxcontrib-websupport. Now current sphinx from PWD is used, also python3 is used when available, otherwise python2. Never just python. --- python-sphinx.spec | 56 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/python-sphinx.spec b/python-sphinx.spec index 9de6388..b844232 100644 --- a/python-sphinx.spec +++ b/python-sphinx.spec @@ -11,6 +11,11 @@ %bcond_without imagemagick_tests %endif +# When bootstrapping sphinx, we don't yet have sphinxcontrib-websupport +%bcond_without websupport +# Also, we don't have all the tests requirements +%bcond_without tests + # Currently, python2 version is always the default: https://fedoraproject.org/wiki/Packaging:Python#Naming %if 1 %global py3_default 0 @@ -67,13 +72,15 @@ BuildRequires: python2-imagesize BuildRequires: python2-requests BuildRequires: python2-packaging BuildRequires: python2-typing +%if %{with websupport} BuildRequires: python2-sphinxcontrib-websupport +%endif BuildRequires: environment(modules) # for fixes BuildRequires: dos2unix -# for testing +%if %{with tests} BuildRequires: python2-nose BuildRequires: python2-pytest BuildRequires: python2-pytest-cov @@ -126,6 +133,7 @@ BuildRequires: tex(tabulary.sty) BuildRequires: tex(polyglossia.sty) BuildRequires: tex(ctablestack.sty) BuildRequires: tex(eu1enc.def) +%endif %if 0%{?with_python3} BuildRequires: python3-devel @@ -134,6 +142,16 @@ BuildRequires: python3-setuptools BuildRequires: python3-docutils BuildRequires: python3-jinja2 BuildRequires: python3-pygments +BuildRequires: python3-six +BuildRequires: python3-sphinx_rtd_theme +BuildRequires: python3-sphinx-theme-alabaster +BuildRequires: python3-packaging +BuildRequires: python3-imagesize +BuildRequires: python3-requests +%if %{with websupport} +BuildRequires: python3-sphinxcontrib-websupport +%endif +%if %{with tests} BuildRequires: python3-nose BuildRequires: python3-pytest BuildRequires: python3-pytest-cov @@ -143,13 +161,7 @@ BuildRequires: python3-simplejson BuildRequires: python3-html5lib BuildRequires: python3-whoosh BuildRequires: python3-snowballstemmer -BuildRequires: python3-six -BuildRequires: python3-sphinx_rtd_theme -BuildRequires: python3-sphinx-theme-alabaster -BuildRequires: python3-packaging -BuildRequires: python3-imagesize -BuildRequires: python3-requests -BuildRequires: python3-sphinxcontrib-websupport +%endif %endif # with_python3 @@ -198,7 +210,9 @@ Requires: python2-imagesize Requires: python2-requests Requires: python2-packaging Requires: python2-typing +%if %{with websupport} Requires: python2-sphinxcontrib-websupport +%endif Requires: environment(modules) # Needed to get rid of the alternatives config installed in f24 and f25 # versions of the package @@ -310,8 +324,10 @@ Requires: python3-sphinx-theme-alabaster Requires: python3-imagesize Requires: python3-requests Requires: python3-six -Requires: python3-sphinxcontrib-websupport Requires: python3-packaging +%if %{with websupport} +Requires: python3-sphinxcontrib-websupport +%endif Recommends: graphviz Recommends: ImageMagick Requires: environment(modules) @@ -394,10 +410,14 @@ cp %{SOURCE5} . # fix line encoding of bundled jquery.js dos2unix -k ./sphinx/themes/basic/static/jquery.js -%if ! %{with imagemagick_tests} +%if %{without imagemagick_tests} rm tests/test_ext_imgconverter.py %endif +%if %{without websupport} +rm tests/test_websupport.py tests/test_api_translator.py +%endif + %if 0%{?with_python3} rm -rf %{py3dir} cp -a . %{py3dir} @@ -409,9 +429,16 @@ cp -a . %{py3dir} %py3_build %endif # with_python3 +export PYTHONPATH=$PWD pushd doc -make html -make man +%if 0%{?with_python3} +export SPHINXBUILD="%{__python3} ../sphinx/cmd/build.py" +%else +export SPHINXBUILD="%{__python2} ../sphinx/cmd/build.py" +%endif + +make html SPHINXBUILD="$SPHINXBUILD" +make man SPHINXBUILD="$SPHINXBUILD" rm -rf _build/html/.buildinfo mv _build/html .. popd @@ -520,10 +547,14 @@ done >> sphinx.lang +%if %{with tests} %check +export PYTHONPATH=$PWD + # Currently, all linkcheck tests hit external websites. Since network access # is disabled in koji, we have to disable these. rm tests/test_build_linkcheck.py + # Igoring test_api_translator for now as it fails on Fedora. # The issue has been reported upstream: https://github.com/sphinx-doc/sphinx/issues/4710 LANG=en_US.UTF-8 %{__python2} -m pytest -v --ignore=tests/test_api_translator.py @@ -535,6 +566,7 @@ rm tests/test_build_linkcheck.py LANG=en_US.UTF-8 PYTHON=python3 make test popd %endif # with_python3 +%endif # with tests %files latex