]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2969] remove sphinx-tabs from hammer.py
authorAndrei Pavel <andrei@isc.org>
Fri, 3 Nov 2023 14:51:33 +0000 (16:51 +0200)
committerAndrei Pavel <andrei@isc.org>
Tue, 7 Nov 2023 07:59:21 +0000 (09:59 +0200)
- use package managers to install sphinx where possible
- simplify the logic in some areas

hammer.py

index c9dcc4c3abe7fc623542419e6c15f0c17169d2db..628f00e090cebd18df2b09414666896130119994 100755 (executable)
--- a/hammer.py
+++ b/hammer.py
@@ -1637,9 +1637,8 @@ def prepare_system_local(features, check_times, ignore_errors_for):
             packages.extend(['rpm-build', 'python3-devel'])
 
         if 'docs' in features:
-            packages.extend(['python3-sphinx', 'texlive', 'texlive-collection-latexextra'])
-            if int(revision) >= 31:
-                packages.extend(['python3-sphinx_rtd_theme python3-sphinx-tabs'])
+            packages.extend(['python3-sphinx', 'python3-sphinx_rtd_theme',
+                             'texlive', 'texlive-collection-latexextra'])
 
         if 'mysql' in features:
             execute('sudo dnf remove -y community-mysql-devel || true')
@@ -1686,6 +1685,9 @@ def prepare_system_local(features, check_times, ignore_errors_for):
             # --with-boost-include=/usr/include/boost169 --with-boost-lib-dir=/usr/lib64/boost169
             packages.append('boost169-devel')
 
+        if 'docs' in features:
+            packages.extend(['python3-sphinx', 'python3-sphinx_rtd_theme'])
+
         if 'native-pkg' in features:
             packages.extend(['bison', 'flex', 'python3-devel', 'rpm-build'])
 
@@ -1725,12 +1727,6 @@ def prepare_system_local(features, check_times, ignore_errors_for):
 
         install_pkgs(packages, env=env, check_times=check_times)
 
-        if 'docs' in features:
-            execute('python3 -m venv ~/venv',
-                    env=env, timeout=60, check_times=check_times)
-            execute('~/venv/bin/pip install sphinx sphinx-rtd-theme sphinx-tabs',
-                    env=env, timeout=120, check_times=check_times)
-
     # prepare rhel
     elif system == 'rhel':
         packages = ['autoconf', 'automake', 'boost-devel', 'gcc-c++',
@@ -1742,6 +1738,15 @@ def prepare_system_local(features, check_times, ignore_errors_for):
             # --with-boost-include=/usr/include/boost169 --with-boost-lib-dir=/usr/lib64/boost169
             packages.append('boost169-devel')
 
+        if 'docs' in features:
+            # Conflict on the packaging python module between pip and rpm-build.
+            # So create venv instead of installing through package manager.
+            # kea-packaging points Kea to the venv using --with-sphinx.
+            execute('python3 -m venv ~/venv',
+                    env=env, timeout=60, check_times=check_times)
+            execute('~/venv/bin/pip install sphinx sphinx-rtd-theme',
+                    env=env, timeout=120, check_times=check_times)
+
         if 'native-pkg' in features:
             packages.extend(['bison', 'flex', 'python3-devel', 'rpm-build'])
 
@@ -1777,18 +1782,16 @@ def prepare_system_local(features, check_times, ignore_errors_for):
 
         install_pkgs(packages, env=env, timeout=120, check_times=check_times)
 
-        if 'docs' in features:
-            execute('python3 -m venv ~/venv',
-                    env=env, timeout=60, check_times=check_times)
-            execute('~/venv/bin/pip install sphinx sphinx-rtd-theme sphinx-tabs',
-                    env=env, timeout=120, check_times=check_times)
-
     # prepare ubuntu
     elif system == 'ubuntu':
         _apt_update(system, revision, env=env, check_times=check_times, attempts=3, sleep_time_after_attempt=10)
 
         packages = ['gcc', 'g++', 'make', 'autoconf', 'automake', 'libtool', 'libssl-dev', 'liblog4cplus-dev',
-                    'libboost-system-dev', 'gnupg', 'libpcap-dev', 'python3-venv']
+                    'libboost-system-dev', 'gnupg', 'libpcap-dev']
+
+        if 'docs' in features:
+            packages.extend(['python3-sphinx', 'python3-sphinx-rtd-theme',
+                             'texlive', 'texlive-latex-extra'])
 
         if 'unittest' in features:
             if revision.startswith('16.'):
@@ -1796,14 +1799,6 @@ def prepare_system_local(features, check_times, ignore_errors_for):
             else:
                 packages.append('googletest')
 
-        if 'docs' in features:
-            if float(revision) < 22.04:
-                packages.extend(['virtualenv'])
-            else:
-                packages.extend(['python3-sphinx', 'python3-sphinx-rtd-theme',
-                                 'python3-sphinx-tabs', 'tex-gyre',
-                                 'texlive', 'texlive-latex-extra'])
-
         if 'native-pkg' in features:
             packages.extend(['build-essential', 'fakeroot', 'devscripts'])
             packages.extend(['bison', 'debhelper', 'flex', 'libboost-dev', 'python3-dev'])
@@ -1836,13 +1831,6 @@ def prepare_system_local(features, check_times, ignore_errors_for):
 
         install_pkgs(packages, env=env, timeout=240, check_times=check_times)
 
-        if 'docs' in features:
-            if float(revision) < 22.04:
-                execute('python3 -m venv ~/venv',
-                        env=env, timeout=60, check_times=check_times)
-                execute('~/venv/bin/pip install sphinx-tabs',
-                        env=env, timeout=120, check_times=check_times)
-
     # prepare debian
     elif system == 'debian':
         _apt_update(system, revision, env=env, check_times=check_times, attempts=3, sleep_time_after_attempt=10)
@@ -1850,6 +1838,10 @@ def prepare_system_local(features, check_times, ignore_errors_for):
         packages = ['gcc', 'g++', 'make', 'autoconf', 'automake', 'libtool', 'libssl-dev',
                     'liblog4cplus-dev', 'libboost-system-dev', 'gnupg']
 
+        if 'docs' in features:
+            packages.extend(['python3-sphinx', 'python3-sphinx-rtd-theme',
+                             'texlive', 'texlive-latex-extra'])
+
         if 'unittest' in features:
             if revision == '8':
                 # libgtest-dev does not work and googletest is not available
@@ -1862,19 +1854,6 @@ def prepare_system_local(features, check_times, ignore_errors_for):
             if revision == '12':
                 packages.extend(['doxygen', 'graphviz', 'pkg-config'])
 
-        if 'docs' in features:
-            if int(revision) <= 8:
-                packages.extend(['virtualenv'])
-            else:
-                packages.extend(['python3-sphinx', 'python3-sphinx-rtd-theme',
-                                 'texlive', 'texlive-latex-extra'])
-            if int(revision) >= 11:
-                packages.extend(['python3-sphinx-tabs'])
-            if revision == '9':
-                packages.extend(['texlive-generic-extra'])
-            if int(revision) >= 12:
-                packages.extend(['tex-gyre'])
-
         if 'native-pkg' in features:
             packages.extend(['build-essential', 'fakeroot', 'devscripts'])
             packages.extend(['bison', 'debhelper', 'flex', 'libboost-dev', 'python3-dev'])
@@ -1909,16 +1888,6 @@ def prepare_system_local(features, check_times, ignore_errors_for):
 
         install_pkgs(packages, env=env, timeout=240, check_times=check_times)
 
-        if 'docs' in features:
-            if int(revision) <= 10:
-                execute('python3 -m venv ~/venv',
-                        env=env, timeout=60, check_times=check_times)
-                execute('~/venv/bin/pip install sphinx-tabs',
-                        env=env, timeout=120, check_times=check_times)
-                if int(revision) <= 8:
-                    execute('~/venv/bin/pip install sphinx sphinx-rtd-theme',
-                            env=env, timeout=120, check_times=check_times)
-
     # prepare freebsd
     elif system == 'freebsd':
         # Packages are already upgraded by default when installing a package,
@@ -1935,7 +1904,7 @@ def prepare_system_local(features, check_times, ignore_errors_for):
             pyv = _get_package_version('python')
             pyv = pyv.split('_')[0].replace('.', '')
             log.info(">>>>> Detected Sphinx packages version: py%s-sphinx", pyv)
-            packages.extend([f'py{pyv}-sphinx', f'py{pyv}-sphinx_rtd_theme', f'py{pyv}-sphinx-tabs'])
+            packages.extend([f'py{pyv}-sphinx', f'py{pyv}-sphinx_rtd_theme'])
 
         if 'mysql' in features:
             if revision.startswith(('11', '12')):
@@ -1985,14 +1954,7 @@ def prepare_system_local(features, check_times, ignore_errors_for):
                     'gzip']
 
         if 'docs' in features:
-            if revision == '3.10':
-                packages.extend(['py-sphinx', 'py-sphinx_rtd_theme'])
-            elif revision == '3.11':
-                packages.extend(['py3-sphinx'])
-            elif float(revision) < 3.16:
-                packages.extend(['py3-sphinx', 'py3-sphinx_rtd_theme'])
-            else:
-                packages.extend(['py3-pip'])
+            packages.extend(['py3-sphinx py3-sphinx_rtd_theme'])
 
         if 'unittest' in features:
             _install_gtest_sources()
@@ -2018,11 +1980,6 @@ def prepare_system_local(features, check_times, ignore_errors_for):
 
         install_pkgs(packages, env=env, timeout=6 * 60, check_times=check_times)
 
-        # work around outdated sphinx packages on alpine 3.16
-        if 'docs' in features:
-            if float(revision) >= 3.16:
-                execute('sudo pip3 install -U sphinx sphinx_rtd_theme sphinx_tabs')
-
         # check for existence of 'vagrant' user and 'abuild' group before adding him to the group
         try:
             pwd.getpwnam('vagrant')
@@ -2141,8 +2098,6 @@ def _build_binaries_and_run_ut(system, revision, features, tarball_path, env, ch
             raise NotImplementedError('no implementation for %s' % system)
     if 'docs' in features and not system == 'rhel':
         cmd += ' --enable-generate-docs'
-        if system == 'debian' and revision == '8' or system == 'centos' and revision in ['7', '8']:
-            cmd += ' --with-sphinx=~/venv/bin/sphinx-build'
     if 'radius' in features:
         cmd += ' --with-freeradius=/usr/local'
     if 'gssapi' in features: