2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-22 09:57:41 +00:00

[#1885] hammer: added support for building kea with gss-api

This commit is contained in:
Michal Nowikowski 2021-06-28 12:19:36 +02:00
parent 960c74a45f
commit c7c810d24a

View File

@ -101,7 +101,7 @@ IMAGE_TEMPLATES = {
'fedora-34-lxc': {'bare': 'isc/lxc-fedora-34', 'kea': 'isc/kea-fedora-34'}, 'fedora-34-lxc': {'bare': 'isc/lxc-fedora-34', 'kea': 'isc/kea-fedora-34'},
# centos # centos
'centos-7-lxc': {'bare': 'godfryd/lxc-centos-7', 'kea': 'isc/kea-centos-7'}, 'centos-7-lxc': {'bare': 'isc/lxc-centos-7', 'kea': 'isc/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'},
'centos-8-virtualbox': {'bare': 'generic/centos8', 'kea': 'isc/kea-centos-8'}, 'centos-8-virtualbox': {'bare': 'generic/centos8', 'kea': 'isc/kea-centos-8'},
@ -112,7 +112,7 @@ IMAGE_TEMPLATES = {
# ubuntu # ubuntu
'ubuntu-16.04-lxc': {'bare': 'godfryd/lxc-ubuntu-16.04', 'kea': 'godfryd/kea-ubuntu-16.04'}, 'ubuntu-16.04-lxc': {'bare': 'godfryd/lxc-ubuntu-16.04', 'kea': 'godfryd/kea-ubuntu-16.04'},
'ubuntu-16.04-virtualbox': {'bare': 'ubuntu/xenial64', 'kea': 'godfryd/kea-ubuntu-16.04'}, 'ubuntu-16.04-virtualbox': {'bare': 'ubuntu/xenial64', 'kea': 'godfryd/kea-ubuntu-16.04'},
'ubuntu-18.04-lxc': {'bare': 'godfryd/lxc-ubuntu-18.04', 'kea': 'godfryd/kea-ubuntu-18.04'}, 'ubuntu-18.04-lxc': {'bare': 'isc/lxc-ubuntu-18.04', 'kea': 'isc/kea-ubuntu-18.04'},
'ubuntu-18.04-virtualbox': {'bare': 'ubuntu/bionic64', 'kea': 'godfryd/kea-ubuntu-18.04'}, 'ubuntu-18.04-virtualbox': {'bare': 'ubuntu/bionic64', 'kea': 'godfryd/kea-ubuntu-18.04'},
'ubuntu-18.10-lxc': {'bare': 'godfryd/lxc-ubuntu-18.10', 'kea': 'godfryd/kea-ubuntu-18.10'}, 'ubuntu-18.10-lxc': {'bare': 'godfryd/lxc-ubuntu-18.10', 'kea': 'godfryd/kea-ubuntu-18.10'},
'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'},
@ -127,9 +127,9 @@ IMAGE_TEMPLATES = {
# debian # debian
'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': 'isc/lxc-debian-9', 'kea': 'isc/kea-debian-9'},
'debian-9-virtualbox': {'bare': 'debian/stretch64', 'kea': 'godfryd/kea-debian-9'}, 'debian-9-virtualbox': {'bare': 'debian/stretch64', 'kea': 'godfryd/kea-debian-9'},
'debian-10-lxc': {'bare': 'godfryd/lxc-debian-10', 'kea': 'godfryd/kea-debian-10'}, 'debian-10-lxc': {'bare': 'isc/lxc-debian-10', 'kea': 'isc/kea-debian-10'},
'debian-10-virtualbox': {'bare': 'debian/buster64', 'kea': 'godfryd/kea-debian-10'}, 'debian-10-virtualbox': {'bare': 'debian/buster64', 'kea': 'godfryd/kea-debian-10'},
# freebsd # freebsd
@ -1298,6 +1298,9 @@ def prepare_system_local(features, check_times):
if 'radius' in features: if 'radius' in features:
packages.extend(['git']) packages.extend(['git'])
if 'gssapi' in features:
packages.extend(['krb5-devel'])
if 'ccache' in features: if 'ccache' in features:
packages.extend(['ccache']) packages.extend(['ccache'])
@ -1337,6 +1340,9 @@ def prepare_system_local(features, check_times):
if 'radius' in features: if 'radius' in features:
packages.extend(['git']) packages.extend(['git'])
if 'gssapi' in features:
packages.extend(['krb5-devel'])
if 'ccache' in features: if 'ccache' in features:
packages.extend(['ccache']) packages.extend(['ccache'])
@ -1423,6 +1429,9 @@ def prepare_system_local(features, check_times):
if 'radius' in features: if 'radius' in features:
packages.extend(['git']) packages.extend(['git'])
if 'gssapi' in features:
packages.extend(['libkrb5-dev'])
if 'ccache' in features: if 'ccache' in features:
packages.extend(['ccache']) packages.extend(['ccache'])
@ -1477,6 +1486,9 @@ def prepare_system_local(features, check_times):
if 'radius' in features: if 'radius' in features:
packages.extend(['git']) packages.extend(['git'])
if 'gssapi' in features:
packages.extend(['libkrb5-dev'])
if 'ccache' in features: if 'ccache' in features:
packages.extend(['ccache']) packages.extend(['ccache'])
@ -1514,6 +1526,9 @@ def prepare_system_local(features, check_times):
if 'radius' in features: if 'radius' in features:
packages.extend(['git']) packages.extend(['git'])
if 'gssapi' in features:
packages.extend(['krb5'])
if 'ccache' in features: if 'ccache' in features:
packages.extend(['ccache']) packages.extend(['ccache'])
@ -1554,6 +1569,9 @@ def prepare_system_local(features, check_times):
packages.extend(['postgresql-dev', 'postgresql']) packages.extend(['postgresql-dev', 'postgresql'])
packages.extend(['bison', 'flex', 'boost-dev', 'docbook-xsl', 'python3-dev']) packages.extend(['bison', 'flex', 'boost-dev', 'docbook-xsl', 'python3-dev'])
if 'gssapi' in features:
packages.extend(['krb5-dev'])
if 'native-pkg' in features: if 'native-pkg' in features:
packages.extend(['alpine-sdk']) packages.extend(['alpine-sdk'])
@ -1686,6 +1704,11 @@ def _build_binaries_and_run_ut(system, revision, features, tarball_path, env, ch
cmd += ' --with-sphinx=~/venv/bin/sphinx-build' cmd += ' --with-sphinx=~/venv/bin/sphinx-build'
if 'radius' in features: if 'radius' in features:
cmd += ' --with-freeradius=/usr/local' cmd += ' --with-freeradius=/usr/local'
if 'gssapi' in features:
if system == 'freebsd':
cmd += ' --with-gssapi=/usr/local/bin/krb5-config'
else:
cmd += ' --with-gssapi'
if 'shell' in features: if 'shell' in features:
cmd += ' --enable-shell' cmd += ' --enable-shell'
if 'perfdhcp' in features: if 'perfdhcp' in features:
@ -2209,7 +2232,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', 'all'] 'radius', 'gssapi', 'shell', 'forge', 'perfdhcp', 'ccache', 'all']
def parse_args(): def parse_args():
@ -2426,6 +2449,7 @@ def _get_features(args):
features.add('mysql') features.add('mysql')
features.add('pgsql') features.add('pgsql')
features.add('radius') features.add('radius')
features.add('gssapi')
# in case of build command of native packages, unittest should not # in case of build command of native packages, unittest should not
# be run as they are not built # be run as they are not built
if args.command == 'build': if args.command == 'build':
@ -2661,7 +2685,7 @@ def main():
elif args.command == "package-box": elif args.command == "package-box":
_check_deps_presence() _check_deps_presence()
_check_system_revision(args.system, args.revision) _check_system_revision(args.system, args.revision)
features = set(['docs', 'perfdhcp', 'shell', 'mysql', 'pgsql', 'radius', 'native-pkg']) features = set(['docs', 'perfdhcp', 'shell', 'mysql', 'pgsql', 'radius', 'gssapi', 'native-pkg'])
log.info('Enabled features: %s', ' '.join(features)) log.info('Enabled features: %s', ' '.join(features))
package_box(args.provider, args.system, args.revision, features, args.dry_run, args.check_times, args.reuse, args.skip_upload) package_box(args.provider, args.system, args.revision, features, args.dry_run, args.check_times, args.reuse, args.skip_upload)