Commit e6471c98 authored by Michal Nowikowski's avatar Michal Nowikowski

[#1072] support building kea on fedora 31 and ubuntu 19.10

- added this support in hammer.py
- fixed checking sphinx in configure.ac on fedora 31
parent 059992a0
...@@ -1393,9 +1393,9 @@ if test "x$enable_generate_docs" != xno ; then ...@@ -1393,9 +1393,9 @@ if test "x$enable_generate_docs" != xno ; then
echo 'hello' > $ti/contents.rst echo 'hello' > $ti/contents.rst
sphinx-build -b latex -C $ti $to > /dev/null 2>&1 sphinx-build -b latex -C $ti $to > /dev/null 2>&1
pushd $to > /dev/null 2>&1 pushd $to > /dev/null 2>&1
$PDFLATEX -interaction nonstopmode Python.tex > /dev/null 2>&1 $PDFLATEX -interaction nonstopmode [[pP]]ython.tex > /dev/null 2>&1
popd > /dev/null 2>&1 popd > /dev/null 2>&1
file $to/Python.pdf | grep PDF > /dev/null 2>&1 file $to/[[pP]]ython.pdf | grep PDF > /dev/null 2>&1
if test $? -ne 0 ; then if test $? -ne 0 ; then
AC_MSG_RESULT([no - disabled building docs in PDF]) AC_MSG_RESULT([no - disabled building docs in PDF])
PDFLATEX=no PDFLATEX=no
......
...@@ -36,20 +36,21 @@ import xml.etree.ElementTree as ET ...@@ -36,20 +36,21 @@ import xml.etree.ElementTree as ET
# TODO: # TODO:
# - add docker provider # - add docker provider
# https://developer.fedoraproject.org/tools/docker/docker-installation.html # https://developer.fedoraproject.org/tools/docker/docker-installation.html
# - avoid using network if possible (e.g. check first if pkgs are installed)
SYSTEMS = { SYSTEMS = {
'fedora': [#'27', # EOLed 'fedora': [#'27', # EOLed
#'28', # EOLed #'28', # EOLed
'29', '29',
'30'], '30',
'31'],
'centos': ['7', '8'], 'centos': ['7', '8'],
'rhel': ['8'], 'rhel': ['8'],
'ubuntu': [#'16.04', 'ubuntu': [#'16.04',
'18.04', '18.04',
#'18.10', # EOLed #'18.10', # EOLed
'19.04'], '19.04',
'19.10'],
'debian': [#'8', 'debian': [#'8',
'9', '9',
'10'], '10'],
...@@ -68,6 +69,8 @@ IMAGE_TEMPLATES = { ...@@ -68,6 +69,8 @@ IMAGE_TEMPLATES = {
'fedora-29-virtualbox': {'bare': 'generic/fedora29', 'kea': 'godfryd/kea-fedora-29'}, 'fedora-29-virtualbox': {'bare': 'generic/fedora29', 'kea': 'godfryd/kea-fedora-29'},
'fedora-30-lxc': {'bare': 'godfryd/lxc-fedora-30', 'kea': 'godfryd/kea-fedora-30'}, 'fedora-30-lxc': {'bare': 'godfryd/lxc-fedora-30', 'kea': 'godfryd/kea-fedora-30'},
'fedora-30-virtualbox': {'bare': 'generic/fedora30', 'kea': 'godfryd/kea-fedora-30'}, 'fedora-30-virtualbox': {'bare': 'generic/fedora30', 'kea': 'godfryd/kea-fedora-30'},
'fedora-31-lxc': {'bare': 'isc/lxc-fedora-31', 'kea': 'isc/kea-fedora-31'},
'fedora-31-virtualbox': {'bare': 'isc/vbox-fedora-31', 'kea': 'isc/kea-fedora-31'},
'centos-7-lxc': {'bare': 'godfryd/lxc-centos-7', 'kea': 'godfryd/kea-centos-7'}, 'centos-7-lxc': {'bare': 'godfryd/lxc-centos-7', 'kea': 'godfryd/kea-centos-7'},
'centos-7-virtualbox': {'bare': 'generic/centos7', 'kea': 'godfryd/kea-centos-7'}, 'centos-7-virtualbox': {'bare': 'generic/centos7', 'kea': 'godfryd/kea-centos-7'},
'centos-8-lxc': {'bare': 'isc/lxc-centos-8', 'kea': 'isc/kea-centos-8'}, 'centos-8-lxc': {'bare': 'isc/lxc-centos-8', 'kea': 'isc/kea-centos-8'},
...@@ -81,6 +84,8 @@ IMAGE_TEMPLATES = { ...@@ -81,6 +84,8 @@ IMAGE_TEMPLATES = {
'ubuntu-18.10-virtualbox': {'bare': 'ubuntu/cosmic64', 'kea': 'godfryd/kea-ubuntu-18.10'}, 'ubuntu-18.10-virtualbox': {'bare': 'ubuntu/cosmic64', 'kea': 'godfryd/kea-ubuntu-18.10'},
'ubuntu-19.04-lxc': {'bare': 'godfryd/lxc-ubuntu-19.04', 'kea': 'godfryd/kea-ubuntu-19.04'}, 'ubuntu-19.04-lxc': {'bare': 'godfryd/lxc-ubuntu-19.04', 'kea': 'godfryd/kea-ubuntu-19.04'},
'ubuntu-19.04-virtualbox': {'bare': 'ubuntu/disco64', 'kea': 'godfryd/kea-ubuntu-19.04'}, 'ubuntu-19.04-virtualbox': {'bare': 'ubuntu/disco64', 'kea': 'godfryd/kea-ubuntu-19.04'},
'ubuntu-19.10-lxc': {'bare': 'isc/lxc-ubuntu-19.10', 'kea': 'isc/kea-ubuntu-19.10'},
'ubuntu-19.10-virtualbox': {'bare': 'generic/ubuntu1910', 'kea': 'isc/kea-ubuntu-19.10'},
'debian-8-lxc': {'bare': 'godfryd/lxc-debian-8', 'kea': 'godfryd/kea-debian-8'}, 'debian-8-lxc': {'bare': 'godfryd/lxc-debian-8', 'kea': 'godfryd/kea-debian-8'},
'debian-8-virtualbox': {'bare': 'debian/jessie64', 'kea': 'godfryd/kea-debian-8'}, 'debian-8-virtualbox': {'bare': 'debian/jessie64', 'kea': 'godfryd/kea-debian-8'},
'debian-9-lxc': {'bare': 'godfryd/lxc-debian-9', 'kea': 'godfryd/kea-debian-9'}, 'debian-9-lxc': {'bare': 'godfryd/lxc-debian-9', 'kea': 'godfryd/kea-debian-9'},
...@@ -189,6 +194,8 @@ def get_system_revision(): ...@@ -189,6 +194,8 @@ def get_system_revision():
elif system == 'FreeBSD': elif system == 'FreeBSD':
system = system.lower() system = system.lower()
revision = platform.release() revision = platform.release()
if '"' in revision:
revision = revision.replace('"', '')
return system.lower(), revision return system.lower(), revision
...@@ -1045,7 +1052,7 @@ def _install_cassandra_rpm(system, revision, env, check_times): ...@@ -1045,7 +1052,7 @@ def _install_cassandra_rpm(system, revision, env, check_times):
if system == 'centos': if system == 'centos':
execute('sudo systemctl daemon-reload') execute('sudo systemctl daemon-reload')
if system == 'fedora' and revision == '30': if system == 'fedora' and int(revision) >= 30:
execute("echo '-Xms1G -Xmx1G' | sudo tee -a /etc/cassandra/jvm.options") execute("echo '-Xms1G -Xmx1G' | sudo tee -a /etc/cassandra/jvm.options")
execute('sudo systemctl start cassandra') execute('sudo systemctl start cassandra')
...@@ -1105,6 +1112,8 @@ def prepare_system_local(features, check_times): ...@@ -1105,6 +1112,8 @@ def prepare_system_local(features, check_times):
if 'docs' in features: if 'docs' in features:
packages.extend(['python3-sphinx', 'texlive', 'texlive-collection-latexextra']) packages.extend(['python3-sphinx', 'texlive', 'texlive-collection-latexextra'])
if int(revision) >= 31:
packages.extend(['python3-sphinx_rtd_theme'])
if 'mysql' in features: if 'mysql' in features:
execute('sudo dnf remove -y community-mysql-devel || true') execute('sudo dnf remove -y community-mysql-devel || true')
...@@ -1112,7 +1121,7 @@ def prepare_system_local(features, check_times): ...@@ -1112,7 +1121,7 @@ def prepare_system_local(features, check_times):
if 'pgsql' in features: if 'pgsql' in features:
packages.extend(['postgresql-devel', 'postgresql-server']) packages.extend(['postgresql-devel', 'postgresql-server'])
if revision in ['30']: if int(revision) >= 30:
packages.extend(['postgresql-server-devel']) packages.extend(['postgresql-server-devel'])
if 'radius' in features: if 'radius' in features:
...@@ -1609,6 +1618,9 @@ def _build_rpm(system, revision, features, tarball_path, env, check_times, dry_r ...@@ -1609,6 +1618,9 @@ def _build_rpm(system, revision, features, tarball_path, env, check_times, dry_r
elif system == 'fedora' and revision == '30': elif system == 'fedora' and revision == '30':
frc.append('freeradius-client-1.1.7-isc20190916210635.fc30') frc.append('freeradius-client-1.1.7-isc20190916210635.fc30')
frc.append('freeradius-client-devel-1.1.7-isc20190916210635.fc30') frc.append('freeradius-client-devel-1.1.7-isc20190916210635.fc30')
elif system == 'fedora' and revision == '31':
frc.append('freeradius-client-1.1.7-isc20191219090215.fc31')
frc.append('freeradius-client-devel-1.1.7-isc20191219090215.fc31')
elif system == 'centos' and revision == '7': elif system == 'centos' and revision == '7':
frc.append('freeradius-client-1.1.7-isc20190916210635.el7') frc.append('freeradius-client-1.1.7-isc20190916210635.el7')
frc.append('freeradius-client-devel-1.1.7-isc20190916210635.el7') frc.append('freeradius-client-devel-1.1.7-isc20190916210635.el7')
...@@ -1911,7 +1923,7 @@ class CollectCommaSeparatedArgsAction(argparse.Action): ...@@ -1911,7 +1923,7 @@ class CollectCommaSeparatedArgsAction(argparse.Action):
DEFAULT_FEATURES = ['install', 'unittest', 'docs', 'perfdhcp'] DEFAULT_FEATURES = ['install', 'unittest', 'docs', 'perfdhcp']
ALL_FEATURES = ['install', 'distcheck', 'unittest', 'docs', 'mysql', 'pgsql', 'cql', 'native-pkg', ALL_FEATURES = ['install', 'distcheck', 'unittest', 'docs', 'mysql', 'pgsql', 'cql', 'native-pkg',
'radius', 'shell', 'forge', 'perfdhcp', 'ccache'] 'radius', 'shell', 'forge', 'perfdhcp', 'ccache', 'all']
def parse_args(): def parse_args():
...@@ -2093,13 +2105,27 @@ def destroy_system(path): ...@@ -2093,13 +2105,27 @@ def destroy_system(path):
def _get_features(args): def _get_features(args):
features = set(vars(args)['with']) features = set(vars(args)['with'])
# distcheck is not compatible with defaults so do not add them
if 'distcheck' not in features: # establish initial set of features
if 'all' in features:
# special case 'all' but some of features needs to be removed
# as they are not compatible with others
features = set(ALL_FEATURES)
features.discard('all')
features.discard('distcheck')
features.discard('native-pkg')
features.discard('ccache')
elif 'distcheck' not in features:
# distcheck is not compatible with defaults so do not add defaults
features = features.union(DEFAULT_FEATURES) features = features.union(DEFAULT_FEATURES)
nofeatures = set(args.without) nofeatures = set(args.without)
features = features.difference(nofeatures) features = features.difference(nofeatures)
if hasattr(args, 'ccache_dir') and args.ccache_dir: if hasattr(args, 'ccache_dir') and args.ccache_dir:
features.add('ccache') features.add('ccache')
# if we build native packages then some features are required and some not
if 'native-pkg' in features: if 'native-pkg' in features:
features.add('docs') features.add('docs')
features.add('perfdhcp') features.add('perfdhcp')
...@@ -2108,6 +2134,7 @@ def _get_features(args): ...@@ -2108,6 +2134,7 @@ def _get_features(args):
features.add('pgsql') features.add('pgsql')
features.add('radius') features.add('radius')
features.discard('unittest') features.discard('unittest')
return features return features
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment