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.
This commit is contained in:
Miro Hrončok 2018-05-14 13:59:52 +02:00
parent baac7bad24
commit da1eff5e26

View File

@ -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