]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3731] Address review
authorAndrei Pavel <andrei@isc.org>
Tue, 18 Mar 2025 13:30:24 +0000 (15:30 +0200)
committerAndrei Pavel <andrei@isc.org>
Tue, 18 Mar 2025 13:30:24 +0000 (15:30 +0200)
20 files changed:
fuzz/meson.build
meson.build
src/bin/admin/meson.build
src/bin/agent/meson.build
src/bin/d2/meson.build
src/bin/dhcp4/meson.build
src/bin/dhcp4/tests/meson.build
src/bin/dhcp6/meson.build
src/bin/dhcp6/tests/meson.build
src/bin/keactrl/meson.build
src/bin/lfc/meson.build
src/bin/netconf/meson.build
src/bin/perfdhcp/meson.build
src/lib/dhcpsrv/meson.build
src/lib/dhcpsrv/tests/meson.build
src/lib/mysql/meson.build
src/lib/mysql/tests/meson.build
src/lib/pgsql/meson.build
src/lib/pgsql/tests/meson.build
subprojects/krb5/meson.build

index e0d59238d78700c937e037e9f75a2727b4e68c1d..3886616ccd6bb8d47a49d681a7fd6a5701e4d118 100644 (file)
@@ -6,8 +6,8 @@ subdir('tests')
 
 fuzz_sources = ['fuzz.cc', 'fuzz.h']
 cpp_flags = [
-    f'-DKEA_LFC_INSTALLATION="@PREFIX@/sbin/kea-lfc"',
-    f'-DKEA_LFC_SOURCES="@TOP_BUILD_DIR@/src/bin/lfc/kea-lfc"',
+    f'-DKEA_LFC_INSTALLATION="@KEA_LFC_INSTALLED@"',
+    f'-DKEA_LFC_SOURCES="@KEA_LFC_BUILT@"',
 ]
 if FUZZING_WITH_CLUSTERFUZZLITE
     cpp_flags = ['-fsanitize=fuzzer', '-gdwarf-4']
index d5a79bf79a8cac68331ae495285a0febfbffe79e..c483c4002123c438f30b18379790678100514342 100644 (file)
@@ -45,11 +45,15 @@ PREFIX = get_option('prefix')
 SBINDIR = get_option('sbindir')
 SYSCONFDIR = get_option('sysconfdir')
 
-DHCP_DATA_DIR = LOCALSTATEDIR / 'run/kea'
-DEFAULT_HOOKS_PATH = PREFIX / 'lib/kea/hooks'
-TEST_CA_DIR = TOP_SOURCE_DIR / 'src/lib/asiolink/testutils/ca'
 DATABASE_SCRIPTS_DIR = TOP_BUILD_DIR / 'src/share/database/scripts'
+DHCP_DATA_DIR = LOCALSTATEDIR / 'run/kea'
+DEFAULT_HOOKS_PATH = PREFIX / LIBDIR / 'kea/hooks'
+KEA_ADMIN_BUILT = TOP_BUILD_DIR / 'src/bin/lfc/kea-admin'
+KEA_ADMIN_INSTALLED = PREFIX / SBINDIR / 'kea-admin'
+KEA_LFC_BUILT = TOP_BUILD_DIR / 'src/bin/lfc/kea-lfc'
+KEA_LFC_INSTALLED = PREFIX / SBINDIR / 'kea-lfc'
 LEGAL_LOG_DIR = PREFIX / LOCALSTATEDIR / 'lib/kea'
+TEST_CA_DIR = TOP_SOURCE_DIR / 'src/lib/asiolink/testutils/ca'
 
 #### Build Options
 
index 26ce35c4b1070ae06cdf632437072a46d3eb8741..6ba28e8db5542ede39f8e209109e3fadab6b37ea 100644 (file)
@@ -1,14 +1,14 @@
 kea_admin_conf_data = configuration_data()
 kea_admin_conf_data.set('prefix', PREFIX)
-kea_admin_conf_data.set('exec_prefix', PREFIX)
-kea_admin_conf_data.set('datarootdir', PREFIX / DATADIR)
+kea_admin_conf_data.set('exec_prefix', '${prefix}')
+kea_admin_conf_data.set('datarootdir', '${prefix}/@DATADIR@')
 kea_admin_conf_data.set('PACKAGE', 'kea')
 kea_admin_conf_data.set('PACKAGE_NAME', 'kea')
 kea_admin_conf_data.set('PACKAGE_VERSION', PROJECT_VERSION)
 kea_admin_conf_data.set('EXTENDED_VERSION', PROJECT_VERSION + ' (tarball)')
 kea_admin_conf_data.set('abs_top_builddir', TOP_BUILD_DIR)
 kea_admin_conf_data.set('abs_top_srcdir', TOP_SOURCE_DIR)
-kea_admin_conf_data.set('sbindir', PREFIX / SBINDIR)
+kea_admin_conf_data.set('sbindir', f'${prefix}/@SBINDIR@')
 kea_admin_conf_data.set('variables', 'variables')
 configure_file(
     input: 'kea-admin.in',
index fa66ad2b88264c29c2978ad97c61cc20a0824b6c..3385ae7f278e56e2b042313be109eebc9b148bc0 100644 (file)
@@ -20,7 +20,7 @@ executable(
     dependencies: [CRYPTO_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
-    install_dir: 'sbin',
+    install_dir: SBINDIR,
     link_with: [agent_lib] + LIBS_BUILT_SO_FAR,
 )
 subdir('tests')
index dd2467cde99f6caa991f5b69507a18359f700179..70166296dacc04b8b27bfd5b25ec29e653863e99 100644 (file)
@@ -24,7 +24,7 @@ executable(
     dependencies: [CRYPTO_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
-    install_dir: 'sbin',
+    install_dir: SBINDIR,
     link_with: [d2_lib] + LIBS_BUILT_SO_FAR,
 )
 subdir('tests')
index 1d4cebb517e5aa8df01610f30d393c4f34791ed1..7ea035d93471c61e032f7a5a06b6ae6296b08f3e 100644 (file)
@@ -19,7 +19,7 @@ kea_dhcp4 = executable(
     dependencies: [CRYPTO_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
-    install_dir: 'sbin',
+    install_dir: SBINDIR,
     link_with: [dhcp4_lib] + LIBS_BUILT_SO_FAR,
 )
 subdir('tests')
index 6a0d33c1492d08074c66c21765f46adf4ebc827d..4f699eb56a30492398ea8981581fb687d30dfbd2 100644 (file)
@@ -138,7 +138,7 @@ kea_dhcp4_tests = executable(
         f'-DCFG_EXAMPLES="@TOP_SOURCE_DIR@/doc/examples/kea4"',
         f'-DDHCP_DATA_DIR="@current_build_dir@"',
         f'-DSYNTAX_FILE="@current_source_dir@/../dhcp4_parser.yy"',
-        f'-DKEA_LFC_EXECUTABLE="@TOP_BUILD_DIR@/src/bin/lfc/kea-lfc"',
+        f'-DKEA_LFC_EXECUTABLE="@KEA_LFC_BUILT@"',
         f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
     ],
     dependencies: dhcp4_tests_deps,
index 359a77559bca313203f80ef14e7fbafba507b720..5c9a707e00a539942b861b8c5e61e11d984bf1e1 100644 (file)
@@ -20,7 +20,7 @@ kea_dhcp6 = executable(
     dependencies: [CRYPTO_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
-    install_dir: 'sbin',
+    install_dir: SBINDIR,
     link_with: [dhcp6_lib] + LIBS_BUILT_SO_FAR,
 )
 subdir('tests')
index ccc69ce498cffc06da91cf587b10e403a06c1150..c62f05bd2451e926cf629fc9a7398e6d67e1fb81 100644 (file)
@@ -140,7 +140,7 @@ kea_dhcp6_tests = executable(
         f'-DCFG_EXAMPLES="@TOP_SOURCE_DIR@/doc/examples/kea6"',
         f'-DDHCP_DATA_DIR="@current_build_dir@"',
         f'-DSYNTAX_FILE="@current_source_dir@/../dhcp6_parser.yy"',
-        f'-DKEA_LFC_EXECUTABLE="@TOP_BUILD_DIR@/src/bin/lfc/kea-lfc"',
+        f'-DKEA_LFC_EXECUTABLE="@KEA_LFC_BUILT@"',
         f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
     ],
     dependencies: dhcp6_tests_deps,
index 5d72d2e093212558d78005600c5fbcf44b0123e1..c1b3fe34a74f85d6c05122d375f5a0b5af763bc0 100644 (file)
@@ -1,9 +1,9 @@
 keactrl_conf_data = configuration_data()
 keactrl_conf_data.set('prefix', PREFIX)
-keactrl_conf_data.set('sysconfdir', PREFIX / SYSCONFDIR)
+keactrl_conf_data.set('sysconfdir', '${prefix}/@SYSCONFDIR@')
 keactrl_conf_data.set('PACKAGE', 'kea')
-keactrl_conf_data.set('exec_prefix', PREFIX)
-keactrl_conf_data.set('sbindir', PREFIX / SBINDIR)
+keactrl_conf_data.set('exec_prefix', '${prefix}')
+keactrl_conf_data.set('sbindir', '${prefix}/' + SBINDIR)
 if NETCONF_DEP.found()
     keactrl_conf_data.set('HAVE_NETCONF', 'yes')
 else
index 2a74ce48fca5247a673e7ff5c155df386f4163a1..e66e6210f8e6df23f8356f60c450d2e65cbeae03 100644 (file)
@@ -10,7 +10,7 @@ kea_lfc = executable(
     'main.cc',
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
-    install_dir: 'sbin',
+    install_dir: SBINDIR,
     link_with: [lfc_lib] + LIBS_BUILT_SO_FAR,
 )
 subdir('tests')
index 291eee3e3c70219bd6771ea0ac153298e537fc84..8de19b0302a77d0d675050197ebc30c4a72b5e90 100644 (file)
@@ -31,7 +31,7 @@ executable(
     dependencies: [NETCONF_DEP, CRYPTO_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
-    install_dir: 'sbin',
+    install_dir: SBINDIR,
     link_with: [netconf_lib] + LIBS_BUILT_SO_FAR,
     override_options: ['cpp_std=c++20'],
 )
index 36c8353d9e2713b5197b55af270caa386c40304c..635a5fa008ff4fe27bd0c85f90722880cc47a006 100644 (file)
@@ -18,7 +18,7 @@ executable(
     'main.cc',
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
-    install_dir: 'sbin',
+    install_dir: SBINDIR,
     link_with: [perfdhcp_lib] + LIBS_BUILT_SO_FAR,
 )
 subdir('tests')
index b5aa74bea8ff8ee8cedb9cb777e56f6a5989731e..8d4b1ab470ab34d85c952c0423e4b43c0f625fc4 100644 (file)
@@ -93,7 +93,7 @@ kea_dhcpsrv_lib = shared_library(
     sources,
     cpp_args: [
         f'-DDHCP_DATA_DIR="@PREFIX@/@DHCP_DATA_DIR@"',
-        f'-DKEA_LFC_EXECUTABLE="@PREFIX@/@SBINDIR@/kea-lfc"',
+        f'-DKEA_LFC_EXECUTABLE="@KEA_LFC_INSTALLED@"',
     ],
     dependencies: [CRYPTO_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
index 13e98a130d86a78304b44a14ef863b2ab0266852..1d2ebc2b87da8c4752ff9099b176258330a2f3e9 100644 (file)
@@ -131,7 +131,7 @@ kea_dhcpsrv_tests = executable(
     cpp_args: [
         f'-DTEST_DATA_BUILDDIR="@current_build_dir@"',
         f'-DDHCP_DATA_DIR="@current_build_dir@"',
-        f'-DKEA_LFC_BUILD_DIR="@TOP_BUILD_DIR@/src/bin/lfc"',
+        f'-DKEA_LFC_BUILD_DIR="@KEA_LFC_BUILT@"',
         f'-DDEFAULT_HOOKS_PATH="@DEFAULT_HOOKS_PATH@"',
     ],
     dependencies: [CRYPTO_DEP, GTEST_DEP],
index c750222ac9cd474731b5410f8f8dfaafa668a0bc..e3142ef2436535bf7e8ad3148cfb575a0e236c7b 100644 (file)
@@ -6,7 +6,7 @@ kea_mysql_lib = shared_library(
     'kea-mysql',
     'mysql_binding.cc',
     'mysql_connection.cc',
-    cpp_args: [f'-DKEA_ADMIN="@PREFIX@/@SBINDIR@/kea-admin"'],
+    cpp_args: [f'-DKEA_ADMIN="@KEA_ADMIN_INSTALLED@"'],
     dependencies: [MYSQL_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
index c494058479d9c167b04fd8017fe01d784c4ee9ac..58e3040a69f64f998445987b64ac8ae1edb0683d 100644 (file)
@@ -14,7 +14,7 @@ kea_mysql_tests = executable(
     'run_unittests.cc',
     cpp_args: [
         f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
-        f'-DKEA_ADMIN="@TOP_BUILD_DIR@/src/bin/admin/kea-admin"',
+        f'-DKEA_ADMIN="@KEA_ADMIN_BUILT@"',
     ],
     dependencies: [GTEST_DEP, MYSQL_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
index 41de5ce4d0a24cc73b867fe652d7eac4b2cc1f39..31e223dbce18c6c3cd82af455f6951197be16370 100644 (file)
@@ -6,7 +6,7 @@ kea_pgsql_lib = shared_library(
     'kea-pgsql',
     'pgsql_connection.cc',
     'pgsql_exchange.cc',
-    cpp_args: [f'-DKEA_ADMIN="@PREFIX@/@SBINDIR@/kea-admin"'],
+    cpp_args: [f'-DKEA_ADMIN="@KEA_ADMIN_INSTALLED@"'],
     dependencies: [POSTGRESQL_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,
index d86b2213832df1c75e9108248579c18008ea70da..3173241c1661f6c56e606f7aa8c50bd74b78c43f 100644 (file)
@@ -15,7 +15,7 @@ kea_pgsql_tests = executable(
     'run_unittests.cc',
     cpp_args: [
         f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
-        f'-DKEA_ADMIN="@TOP_BUILD_DIR@/src/bin/admin/kea-admin"',
+        f'-DKEA_ADMIN="@KEA_ADMIN_BUILT@"',
     ],
     dependencies: [GTEST_DEP, POSTGRESQL_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
index 7f1dad758926db7e76e02cd9a32d3abe54772737..28622555b70725cfefd906e809693774b37dfe2c 100644 (file)
@@ -4,11 +4,27 @@ krb5 = disabler()
 krb5_config = find_program('krb5-config', required: false)
 
 if krb5_config.found()
+    # Detect vendor.
+    vendor_cmd = run_command([krb5_config, '--vendor'], check: false)
+    vendor = 'unknown'
+    if vendor_cmd.returncode() == 0
+        vendor = vendor_cmd.stdout().strip()
+    else
+        all = run_command([krb5_config, '--all'], check: false)
+        if all.returncode() == 0
+            foreach i : all.stdout().split('\n')
+                if i.startswith('Vendor')
+                    vendor = i.split(':')[1].strip()
+                    break
+                endif
+            endforeach
+        endif
+    endif
+
     cflags = run_command([krb5_config, '--cflags', 'gssapi'], check: false)
     libs = run_command([krb5_config, '--libs', 'gssapi'], check: false)
     version = run_command([krb5_config, '--version'], check: false)
-    vendor = run_command([krb5_config, '--vendor'], check: false)
-    if cflags.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0 and vendor.returncode() == 0
+    if cflags.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0
         krb5_version = version.stdout().strip()
         krb5 = declare_dependency(
             compile_args: cflags.stdout().split(),