-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Package:
- Name: @PACKAGE_NAME@
- Version: @PACKAGE_VERSION@
- Extended version: @EXTENDED_VERSION@
- Version type: @PACKAGE_VERSION_TYPE@
- OS Family: @OS_TYPE@
+ Name: @PACKAGE_NAME@
+ Version: @PACKAGE_VERSION@
+ Extended version: @EXTENDED_VERSION@
+ Version type: @PACKAGE_VERSION_TYPE@
+ OS Family: @OS_TYPE@
- Prefix: @PREFIX@
- Hooks directory: @HOOKS_DIR@
- Premium hooks: @PREMIUM@
+ Prefix: @PREFIX@
+ Hooks directory: @HOOKS_DIR@
+ Premium hooks: @PREMIUM@
-Meson Version: @MESON_VERSION@
-Meson info: @MESON_INFO@
-Build Options: @BUILD_OPTIONS@
+Meson Version: @MESON_VERSION@
+Meson info: @MESON_INFO@
+Build Options: @BUILD_OPTIONS@
HERE_DOCUMENT
add_to_report <<HERE_DOCUMENT
C++ Compiler:
- CXX: @CXX@
- CXX_ID: @CXX_ID@
- CXX_VERSION: @CXX_VERSION@
- CXX_STANDARD: @CXX_STANDARD@
- CXX_ARGS: @CXX_ARGS@
- LD_ID: @LD_ID@
- LD_ARGS: @LD_ARGS@
+ CXX: @CXX@
+ CXX_ID: @CXX_ID@
+ CXX_VERSION: @CXX_VERSION@
+ CXX_STANDARD: @CXX_STANDARD@
+ CXX_ARGS: @CXX_ARGS@
+ LD_ID: @LD_ID@
+ LD_ARGS: @LD_ARGS@
HERE_DOCUMENT
add_to_report <<HERE_DOCUMENT
Python:
- PYTHON: @PYTHON_PATH@
- PYTHON_VERSION: @PYTHON_VERSION@
- PKGPYTHONDIR: @PKGPYTHONDIR@
+ PYTHON: @PYTHON_PATH@
+ PYTHON_VERSION: @PYTHON_VERSION@
+ PKGPYTHONDIR: @PKGPYTHONDIR@
-Boost: @BOOST_VERSION@
+Boost: @BOOST_VERSION@
@CRYPTO_NAME@:@SPACES@@CRYPTO_VERSION@
-Log4cplus: @LOG4CPLUS_VERSION@
+Log4cplus: @LOG4CPLUS_VERSION@
-Flex: @FLEX@
-Bison: @BISON@
+Flex: @FLEX@
+Bison: @BISON@
HERE_DOCUMENT
if test '@HAVE_MYSQL@' != 'no'; then
add_to_report <<HERE_DOCUMENT
-MySQL: @MYSQL_VERSION@
+MySQL: @MYSQL_VERSION@
HERE_DOCUMENT
else
add_to_report <<HERE_DOCUMENT
-MySQL: no
+MySQL: no
HERE_DOCUMENT
fi
if test '@HAVE_PGSQL@' != 'no'; then
add_to_report <<HERE_DOCUMENT
-PostgreSQL: @PGSQL_VERSION@
+PostgreSQL: @PGSQL_VERSION@
HERE_DOCUMENT
else
add_to_report <<HERE_DOCUMENT
-PostgreSQL: no
+PostgreSQL: no
HERE_DOCUMENT
fi
if test '@HAVE_NETCONF@' != 'no'; then
add_to_report <<HERE_DOCUMENT
Netconf:
- LIBYANG: @LIBYANG_VERSION@
- LIBYANGCPP: @LIBYANGCPP_VERSION@
- LIBYANG_PREFIX: @LIBYANG_PREFIX@
- SYSREPO: @SYSREPO_VERSION@
- SYSREPOCPP: @SYSREPOCPP_VERSION@
- SYSREPO_PREFIX: @SYSREPO_PREFIX@
+ YANG: @YANG_VERSION@
+ YANG_PREFIX: @YANG_PREFIX@
+ YANGCPP: @YANGCPP_VERSION@
+ YANGCPP_PREFIX: @YANGCPP_PREFIX@
+ SYSREPO: @SYSREPO_VERSION@
+ SYSREPO_PREFIX: @SYSREPO_PREFIX@
+ SYSREPOCPP: @SYSREPOCPP_VERSION@
+ SYSREPOCPP_PREFIX: @SYSREPOCPP_PREFIX@
HERE_DOCUMENT
else
add_to_report <<HERE_DOCUMENT
-Netconf: no
+Netconf: no
HERE_DOCUMENT
fi
if test '@HAVE_GTEST@' != 'no'; then
add_to_report <<HERE_DOCUMENT
-Google Test: @GTEST_VERSION@
+Google Test: @GTEST_VERSION@
HERE_DOCUMENT
else
add_to_report <<HERE_DOCUMENT
-Google Test: no
+Google Test: no
HERE_DOCUMENT
fi
if test '@HAVE_KRB5@' != 'no'; then
add_to_report <<HERE_DOCUMENT
Kerberos5 GSS-API:
- VERSION: @KRB5_GSSAPI_VERSION@
- VENDOR: @KRB5_GSSAPI_VENDOR@
+ VERSION: @KRB5_GSSAPI_VERSION@
+ VENDOR: @KRB5_GSSAPI_VENDOR@
HERE_DOCUMENT
else
add_to_report <<HERE_DOCUMENT
-Kerberos5 GSS-API: no
+Kerberos5 GSS-API: no
HERE_DOCUMENT
fi
add_to_report <<HERE_DOCUMENT
Developer:
- Tests: @TESTS_ENABLED@
- Fuzzing: @FUZZ_ENABLED@
- Valgrind: @VALGRIND@
- AFL: @HAVE_AFL@
+ Tests: @TESTS_ENABLED@
+ Fuzzing: @FUZZ_ENABLED@
+ Valgrind: @VALGRIND@
+ AFL: @HAVE_AFL@
HERE_DOCUMENT
required: netconf_opt,
)
if netconf_opt.enabled() and NETCONF_DEP.get_variable(
- 'libyang_prefix',
+ 'yang-prefix',
default_value: 'unknown',
) == 'unknown'
error('Dependency not found: NETCONF.')
compile_args = []
link_args = []
+# TODO: Use $ORIGIN
# $ORIGIN documented at https://www.man7.org/linux/man-pages/man8/ld.so.8.html
+# It is preferable since it would allow Kea to start even if the installation is moved.
+# We have to be careful at making executables work both in the build directory and in the installation directory.
+# Also, Meson might use it by default, but might not use it on all systems, so lots of variables...
# EXECUTABLE_RPATH = f'$ORIGIN/../@LIBDIR@'
# HOOK_RPATH = '$ORIGIN/../..'
+
BUILD_RPATH = TOP_BUILD_DIR / 'src/lib'
INSTALL_RPATH = PREFIX / LIBDIR
+
+# Add rpaths for NETCONF dependencies.
+if NETCONF_DEP.found()
+ foreach i : ['yang', 'yang-cpp', 'sysrepo', 'sysrepo-cpp']
+ libdir = NETCONF_DEP.get_variable(f'@i@-libdir')
+ BUILD_RPATH += f':@libdir@'
+ INSTALL_RPATH += f':@libdir@'
+ endforeach
+endif
+
# rpmbuild complains about rpaths to standard locations so let us conform to
# its liking and remove them. And let's do it consistently for all packages.
if kea_pkg_type_in_configure != ''
endif
if CRYPTO_DEP.name() == botan.name()
report_conf_data.set('CRYPTO_NAME', 'Botan')
- report_conf_data.set('SPACES', ' ')
+ report_conf_data.set('SPACES', ' ')
result = cpp.run(
fs.read('compiler-checks/get-botan-version.cc'),
name: 'Get Botan version',
report_conf_data.set('CRYPTO_VERSION', version)
elif CRYPTO_DEP.name() == openssl.name()
report_conf_data.set('CRYPTO_NAME', 'OpenSSL')
- report_conf_data.set('SPACES', ' ')
+ report_conf_data.set('SPACES', ' ')
result = cpp.run(
fs.read('compiler-checks/get-openssl-version.cc'),
name: 'Get OpenSSL version',
if NETCONF_DEP.found()
report_conf_data.set('HAVE_NETCONF', 'yes')
report_conf_data.set(
- 'LIBYANG_PREFIX',
- NETCONF_DEP.get_variable('libyang_prefix', default_value: 'unknown'),
+ 'YANG_VERSION',
+ NETCONF_DEP.get_variable(
+ 'yang-version',
+ default_value: 'unknown version',
+ ),
)
report_conf_data.set(
- 'SYSREPO_PREFIX',
- NETCONF_DEP.get_variable('sysrepo_prefix', default_value: 'unknown'),
+ 'YANG_PREFIX',
+ NETCONF_DEP.get_variable('yang-prefix', default_value: 'unknown'),
)
report_conf_data.set(
- 'LIBYANG_VERSION',
+ 'YANGCPP_VERSION',
NETCONF_DEP.get_variable(
- 'libyang_version',
+ 'yang-cpp-version',
default_value: 'unknown version',
),
)
report_conf_data.set(
- 'LIBYANGCPP_VERSION',
- NETCONF_DEP.get_variable(
- 'libyangcpp_version',
- default_value: 'unknown version',
- ),
+ 'YANGCPP_PREFIX',
+ NETCONF_DEP.get_variable('yang-cpp-prefix', default_value: 'unknown'),
)
report_conf_data.set(
'SYSREPO_VERSION',
NETCONF_DEP.get_variable(
- 'sysrepo_version',
+ 'sysrepo-version',
default_value: 'unknown version',
),
)
+ report_conf_data.set(
+ 'SYSREPO_PREFIX',
+ NETCONF_DEP.get_variable('sysrepo-prefix', default_value: 'unknown'),
+ )
report_conf_data.set(
'SYSREPOCPP_VERSION',
NETCONF_DEP.get_variable(
- 'sysrepocpp_version',
+ 'sysrepo-cpp-version',
default_value: 'unknown version',
),
)
+ report_conf_data.set(
+ 'SYSREPOCPP_PREFIX',
+ NETCONF_DEP.get_variable('sysrepo-cpp-prefix', default_value: 'unknown'),
+ )
else
report_conf_data.set('HAVE_NETCONF', 'no')
- report_conf_data.set('LIBYANG_PREFIX', 'no')
- report_conf_data.set('SYSREPO_PREFIX', 'no')
- report_conf_data.set('LIBYANG_VERSION', 'no')
- report_conf_data.set('LIBYANGCPP_VERSION', 'no')
+ report_conf_data.set('YANG_VERSION', 'no')
+ report_conf_data.set('YANG_PREFIX', 'no')
+ report_conf_data.set('YANGCPP_VERSION', 'no')
+ report_conf_data.set('YANGCPP_PREFIX', 'no')
report_conf_data.set('SYSREPO_VERSION', 'no')
+ report_conf_data.set('SYSREPO_PREFIX', 'no')
report_conf_data.set('SYSREPOCPP_VERSION', 'no')
+ report_conf_data.set('SYSREPOCPP_PREFIX', 'no')
endif
if FUZZ_OPT.enabled() or TESTS_OPT.enabled()
report_conf_data.set('HAVE_GTEST', 'yes')
yang_utils_conf_data.set('prefix', PREFIX)
yang_utils_conf_data.set(
'LIBYANG_PREFIX',
- NETCONF_DEP.get_variable('libyang_prefix'),
+ NETCONF_DEP.get_variable('yang-prefix'),
)
yang_utils_conf_data.set(
'SYSREPO_PREFIX',
- NETCONF_DEP.get_variable('sysrepo_prefix'),
+ NETCONF_DEP.get_variable('sysrepo-prefix'),
)
configure_file(
continue
endif
- # Try adding lib to it. libyang and libyang-cpp define the wrong pkg-config.
+ # Try adding lib to it. yang and yang-cpp define the wrong pkg-config.
netconf_deps = netconf_deps + {
dep: dependency('lib' + dep, required: false),
}
if netconf_deps[dep].found()
continue
endif
-
- # Search in /opt.
- foreach prefix : ['', 'lib']
- path = f'/opt/@prefix@@dep@'
- lib = cpp.find_library(dep, dirs: [f'/@path@/lib'], required: false)
- if lib.found()
- netconf_deps = netconf_deps + {
- dep: declare_dependency(
- dependencies: [lib],
- include_directories: include_directories(f'/@path@/include'),
- variables: {'prefix': f'@path@'},
- ),
- }
- if SYSTEM == 'darwin'
- add_project_link_arguments(
- f'-Wl,-rpath,@path@/lib',
- language: 'cpp',
- )
- else
- add_project_link_arguments(
- f'-Wl,-rpath=@path@/lib',
- language: 'cpp',
- )
- endif
- endif
- endforeach
endforeach
all_deps_found = true
if all_deps_found
variables = {}
- if netconf_deps['yang'].found()
- libyang_prefix = netconf_deps['yang'].get_variable('prefix')
- libyang_version = netconf_deps['yang'].version()
- if libyang_version == 'unknown'
- libyang_version = 'unknown version'
- endif
- else
- libyang_prefix = 'unknown'
- libyang_version = 'unknown version'
- endif
- variables += {'libyang_prefix': libyang_prefix}
- variables += {'libyang_version': libyang_version}
- if netconf_deps['yang-cpp'].found()
- libyangcpp_version = netconf_deps['yang-cpp'].version()
- if libyangcpp_version == 'unknown'
- libyangcpp_version = 'unknown version'
- endif
- else
- libyangcpp_version = 'unknown version'
- endif
- variables += {'libyangcpp_version': libyangcpp_version}
- if netconf_deps['sysrepo'].found()
- sysrepo_prefix = netconf_deps['sysrepo'].get_variable('prefix')
- sysrepo_version = netconf_deps['sysrepo'].version()
- if sysrepo_version == 'unknown'
- sysrepo_version = 'unknown version'
- endif
- else
- sysrepo_prefix = 'unknown'
- sysrepo_version = 'unknown version'
- endif
- variables += {'sysrepo_prefix': sysrepo_prefix}
- variables += {'sysrepo_version': sysrepo_version}
- if netconf_deps['sysrepo-cpp'].found()
- sysrepocpp_version = netconf_deps['sysrepo-cpp'].version()
- if sysrepocpp_version == 'unknown'
- sysrepocpp_version = 'unknown version'
+ foreach i : ['yang', 'yang-cpp', 'sysrepo', 'sysrepo-cpp']
+ if netconf_deps[i].found()
+ libdir = netconf_deps[i].get_variable('libdir')
+ prefix = netconf_deps[i].get_variable('prefix')
+ version = netconf_deps[i].version()
+ if version == 'unknown'
+ version = 'unknown version'
+ endif
+ else
+ prefix = 'unknown'
+ version = 'unknown version'
endif
- else
- sysrepocpp_version = 'unknown version'
- endif
- variables += {'sysrepocpp_version': sysrepocpp_version}
+ variables += {f'@i@-libdir': libdir}
+ variables += {f'@i@-prefix': prefix}
+ variables += {f'@i@-version': version}
+ endforeach
netconf = declare_dependency(
dependencies: [
netconf_deps['yang'],