From 5ee4e456575d2542078177e1007e3ce3680f9252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Fri, 8 Aug 2025 22:01:15 +0700 Subject: [PATCH] kea: update to 3.1.0. --- common/shlibs | 22 --- srcpkgs/kea/patches/cross.patch | 281 ++++++++++++++++++++++++++++++++ srcpkgs/kea/template | 38 ++--- 3 files changed, 294 insertions(+), 47 deletions(-) create mode 100644 srcpkgs/kea/patches/cross.patch diff --git a/common/shlibs b/common/shlibs index ef308994719..06577203357 100644 --- a/common/shlibs +++ b/common/shlibs @@ -2980,28 +2980,6 @@ libkj-http-1.1.0.so capnproto-1.1.0_1 libkj-async-1.1.0.so capnproto-1.1.0_1 libkj-test-1.1.0.so capnproto-1.1.0_1 libkj-1.1.0.so capnproto-1.1.0_1 -libkea-asiodns.so.35 libkea-2.4.1_1 -libkea-asiolink.so.56 libkea-2.4.1_1 -libkea-cc.so.54 libkea-2.4.1_1 -libkea-cfgclient.so.51 libkea-2.4.1_1 -libkea-cryptolink.so.38 libkea-2.4.1_1 -libkea-d2srv.so.30 libkea-2.4.1_1 -libkea-database.so.48 libkea-2.4.1_1 -libkea-dhcp++.so.74 libkea-2.4.1_1 -libkea-dhcp_ddns.so.41 libkea-2.4.1_1 -libkea-dhcpsrv.so.90 libkea-2.4.1_1 -libkea-dns++.so.42 libkea-2.4.1_1 -libkea-eval.so.52 libkea-2.4.1_1 -libkea-exceptions.so.23 libkea-2.4.1_1 -libkea-hooks.so.78 libkea-2.4.1_1 -libkea-http.so.56 libkea-2.4.1_1 -libkea-log.so.48 libkea-2.4.1_1 -libkea-pgsql.so.53 libkea-2.4.1_1 -libkea-process.so.57 libkea-2.4.1_1 -libkea-stats.so.29 libkea-2.4.1_1 -libkea-tcp.so.5 libkea-2.4.1_1 -libkea-util-io.so.0 libkea-2.4.1_1 -libkea-util.so.68 libkea-2.4.1_1 libytnef.so.0 ytnef-1.8_1 libpisock.so.9 pilot-link-0.12.5_1 libpisync.so.1 pilot-link-0.12.5_1 diff --git a/srcpkgs/kea/patches/cross.patch b/srcpkgs/kea/patches/cross.patch new file mode 100644 index 00000000000..179bda854cc --- /dev/null +++ b/srcpkgs/kea/patches/cross.patch @@ -0,0 +1,281 @@ +--- a/compiler-checks/chrono-same-duration.cc ++++ b/compiler-checks/chrono-same-duration.cc +@@ -2,6 +2,8 @@ + #include + + int main() { +- return(std::is_same::value ? 0 : 1); ++ static_assert(std::is_same::value, ++ "system_clock's duration is steady_clock's duration"); ++ return 0; + } +--- a/meson.build ++++ b/meson.build +@@ -364,15 +364,7 @@ conf_data.set('HAVE_PGSQL', POSTGRESQL_D + #### Compiler Checks + + # The required keyword in cpp.run() is an 1.5.0 feature. +-result = cpp.run( +- fs.read('compiler-checks/get-cpp-standard.cc'), +- name: 'Get cpp standard', +-) +-if result.returncode() == 0 +- cpp_standard = result.stdout().strip() +-else +- error('C++ standard is unknown') +-endif ++cpp_standard = '202000' + message(f'Detected C++ standard (__cplusplus value) is @cpp_standard@.') + cpp_std_opt = get_option('cpp_std') + no_cpp_std_opt_msg = 'Please set a C++ standard by passing the -D cpp_std argument to meson.' +@@ -390,12 +382,12 @@ if cpp_standard.version_compare('<201100 + error('\n'.join(msgs)) + endif + if cpp_standard.version_compare('<201400') +- result = cpp.run( ++ result = cpp.compiles( + fs.read('compiler-checks/boost-math-cpp14.cc'), + name: 'BOOST_MATH_REQUIRES_CPP14', + dependencies: [boost_dep, threads_dep], + ) +- if result.returncode() != 0 ++ if not result + msgs = ['Boost Math requires at least C++14.'] + if cpp_std_opt == 'none' + msgs += no_cpp_std_opt_msg +@@ -430,102 +422,95 @@ if CRYPTO_DEP.name() == botan.name() and + error('\n'.join(msgs)) + endif + +-result = cpp.run( +- fs.read('compiler-checks/boost-has-threads.cc'), ++result = cpp.compiles( ++ files('compiler-checks/boost-has-threads.cc'), + dependencies: [boost_dep, threads_dep], + name: 'BOOST_HAS_THREADS', + ) +-if result.returncode() != 0 ++if not result + error('boost is not configured to use threads') + endif + + if cpp.has_header('boost/regex.h', dependencies: [boost_dep], required: false) +- result = cpp.run( ++ result = cpp.compiles( + fs.read('compiler-checks/boost-regex.cc'), + dependencies: [boost_dep, threads_dep], + name: 'GET_SYSTEM_VS_BOOST_REGEX_HEADER', + ) +- if result.returncode() != 0 ++ if not result + error('boost/regex.h is used in place of system regex.h') + endif + endif + +-result = cpp.run( ++result = cpp.compiles( + fs.read('compiler-checks/chrono-same-duration.cc'), + name: 'CHRONO_SAME_DURATION', + ) +-conf_data.set('CHRONO_SAME_DURATION', result.returncode() == 0) ++conf_data.set('CHRONO_SAME_DURATION', result) + + if CRYPTO_DEP.name() == openssl.name() +- result1 = cpp.run( ++ result1 = cpp.compiles( + fs.read('compiler-checks/have-generic-tls-method.cc'), + name: 'HAVE_GENERIC_TLS_METHOD', + dependencies: [boost_dep, CRYPTO_DEP, threads_dep], + ) +- result2 = cpp.run( ++ result2 = cpp.compiles( + fs.read('compiler-checks/stream-truncated-error.cc'), + name: 'HAVE_STREAM_TRUNCATED_ERROR', + dependencies: [boost_dep, CRYPTO_DEP, threads_dep], + ) +- if result1.returncode() != 0 or result2.returncode() != 0 ++ if not result1 or not result2 + error('Boost TLS support broken.') + endif + endif + + if CRYPTO_DEP.name() == botan.name() +- result = cpp.run( ++ # main do nothing, HashFunction::create returns null if nothing is found ++ result = cpp.links( + fs.read('compiler-checks/botan-hash.cc'), + name: 'CHECK_BOTAN_LIBRARY', + dependencies: [boost_dep, CRYPTO_DEP, threads_dep], + ) +- if result.returncode() != 0 ++ if not result + error('Botan library does not work.') + endif + endif + +-result = cpp.run( ++result = cpp.links( + fs.read('compiler-checks/have-optreset.cc'), + name: 'HAVE_OPTRESET', + ) +-conf_data.set('HAVE_OPTRESET', result.returncode() == 0) ++conf_data.set('HAVE_OPTRESET', result) + +-result = cpp.run(fs.read('compiler-checks/have-sa-len.cc'), name: 'HAVE_SA_LEN') +-conf_data.set('HAVE_SA_LEN', result.returncode() == 0) ++result = cpp.compiles(fs.read('compiler-checks/have-sa-len.cc'), name: 'HAVE_SA_LEN') ++conf_data.set('HAVE_SA_LEN', result) + +-result = cpp.run( ++result = cpp.links( + fs.read('compiler-checks/log4cplus-initializer.cc'), + name: 'LOG4CPLUS_INITIALIZER_H', + dependencies: [LOG4CPLUS_DEP], + ) +-conf_data.set('LOG4CPLUS_INITIALIZER_H', result.returncode() == 0) ++conf_data.set('LOG4CPLUS_INITIALIZER_H', result) + + if MYSQL_DEP.found() +- result = cpp.run( ++ result = cpp.compiles( + fs.read('compiler-checks/mysql-my-bool.cc'), + name: 'MYSQL_MY_BOOL', + dependencies: [MYSQL_DEP], + ) +- conf_data.set('HAVE_MYSQL_MY_BOOL', result.returncode() == 0) ++ conf_data.set('HAVE_MYSQL_MY_BOOL', result) + +- result = cpp.run( ++ result = cpp.links( + fs.read('compiler-checks/mysql-get-option.cc'), + name: 'HAVE_MYSQL_GET_OPTION', + dependencies: [MYSQL_DEP], + ) +- conf_data.set('HAVE_MYSQL_GET_OPTION', result.returncode() == 0) ++ conf_data.set('HAVE_MYSQL_GET_OPTION', result) + endif + +-result = cpp.run( +- fs.read('compiler-checks/fuzzing-with-clusterfuzzlite.cc'), +- name: 'FUZZING_WITH_CLUSTERFUZZLITE', +-) +-FUZZING_WITH_CLUSTERFUZZLITE = result.returncode() == 0 ++FUZZING_WITH_CLUSTERFUZZLITE = false + +-have_afl = false +-result = cpp.run(fs.read('compiler-checks/have-afl.cc'), name: 'HAVE_AFL') +-if result.returncode() == 0 +- have_afl = true +-endif ++have_afl = cpp.compiles(fs.read('compiler-checks/have-afl.cc'), name: 'HAVE_AFL') + conf_data.set('HAVE_AFL', have_afl) + + if GTEST_DEP.found() +@@ -534,22 +519,22 @@ if GTEST_DEP.found() + if GTEST_DEP.type_name() == 'internal' + conf_data.set('HAVE_CREATE_UNIFIED_DIFF', true) + else +- result = cpp.run( ++ result = cpp.links( + fs.read('compiler-checks/have-create-unified-diff.cc'), + name: 'HAVE_CREATE_UNIFIED_DIFF', + dependencies: [GTEST_DEP], + ) +- conf_data.set('HAVE_CREATE_UNIFIED_DIFF', result.returncode() == 0) ++ conf_data.set('HAVE_CREATE_UNIFIED_DIFF', result) + endif + endif + + if KRB5_DEP.found() +- result = cpp.run( ++ result = cpp.links( + fs.read('compiler-checks/have-gss-str-to-oid.cc'), + name: 'HAVE_GSS_STR_TO_OID', + dependencies: [KRB5_DEP], + ) +- conf_data.set('HAVE_GSS_STR_TO_OID', result.returncode() == 0) ++ conf_data.set('HAVE_GSS_STR_TO_OID', result) + endif + + #### Other checks. +@@ -762,29 +747,15 @@ report_conf_data.set('LD_ARGS', ' '.join + report_conf_data.set('PYTHON_PATH', PYTHON.full_path()) + report_conf_data.set('PYTHON_VERSION', PYTHON.version()) + report_conf_data.set('PKGPYTHONDIR', PKGPYTHONDIR) +-result = cpp.run( +- fs.read('compiler-checks/get-boost-version.cc'), +- dependencies: [boost_dep, threads_dep], +- name: 'Get Boost version', +-) +-if result.returncode() == 0 +- report_conf_data.set('BOOST_VERSION', result.stdout().strip()) +-else +- report_conf_data.set('BOOST_VERSION', 'unknown version') ++version = boost_dep.version() ++if version == 'unknown' ++ version = 'unknown version' + endif ++report_conf_data.set('BOOST_VERSION', version) + if CRYPTO_DEP.name() == botan.name() + report_conf_data.set('CRYPTO_NAME', 'Botan') + report_conf_data.set('SPACES', ' ') +- result = cpp.run( +- fs.read('compiler-checks/get-botan-version.cc'), +- name: 'Get Botan version', +- dependencies: [CRYPTO_DEP], +- ) +- if result.returncode() == 0 +- version = result.stdout().strip() +- else +- version = botan.version() +- endif ++ version = botan.version() + if version == 'unknown' + version = 'unknown version' + endif +@@ -792,31 +763,13 @@ if CRYPTO_DEP.name() == botan.name() + elif CRYPTO_DEP.name() == openssl.name() + report_conf_data.set('CRYPTO_NAME', 'OpenSSL') + report_conf_data.set('SPACES', ' ') +- result = cpp.run( +- fs.read('compiler-checks/get-openssl-version.cc'), +- name: 'Get OpenSSL version', +- dependencies: [CRYPTO_DEP], +- ) +- if result.returncode() == 0 +- version = result.stdout().strip() +- else +- version = openssl.version() +- endif ++ version = openssl.version() + if version == 'unknown' + version = 'unknown version' + endif + report_conf_data.set('CRYPTO_VERSION', version) + endif +-result = cpp.run( +- fs.read('compiler-checks/get-log4cplus-version.cc'), +- name: 'Get Log4cplus version', +- dependencies: [LOG4CPLUS_DEP], +-) +-if result.returncode() == 0 +- version = result.stdout().strip() +-else +- version = log4cplus.version() +-endif ++version = LOG4CPLUS_DEP.version() + if version == 'unknown' + version = 'unknown version' + endif +--- a/src/lib/log/compiler/meson.build ++++ b/src/lib/log/compiler/meson.build +@@ -1,7 +1,3 @@ +-if meson.is_cross_build() +- subdir_done() +-endif +- + KEA_MSG_COMPILER = executable( + 'kea-msg-compiler', + 'message.cc', diff --git a/srcpkgs/kea/template b/srcpkgs/kea/template index 7e3647708fa..3b67a0f3388 100644 --- a/srcpkgs/kea/template +++ b/srcpkgs/kea/template @@ -1,18 +1,17 @@ # Template file for 'kea' pkgname=kea -version=2.4.1 +version=3.1.0 revision=1 -build_style=gnu-configure -configure_args="--enable-generate-docs --with-openssl=${XBPS_CROSS_BASE}/usr - $(vopt_if mysql --with-mysql) - $(vopt_if pgsql --with-pgsql=${XBPS_CROSS_BASE}/usr/bin/pg_config.sh)" -hostmakedepends="flex bison perl pkg-config automake libtool +build_style=meson +build_helper=qemu +configure_args="-Dcpp_std=gnu++20 + $(vopt_feature mysql) $(vopt_feature pgsql postgresql)" +hostmakedepends="flex bison perl pkg-config doxygen elinks libxslt docbook-xsl python3-Sphinx python3-sphinx_rtd_theme" -makedepends="boost-devel log4cplus-devel python3-devel - $(vopt_if botan botan-devel openssl-devel) - $(vopt_if mysql libmariadbclient-devel) - $(vopt_if pgsql postgresql-libs-devel)" -depends="libkea>=0" +_devel_depends="log4cplus-devel $(vopt_if botan botan-devel openssl-devel) + $(vopt_if mysql libmariadbclient-devel) $(vopt_if pgsql postgresql-libs-devel)" +makedepends="boost-devel-minimal libboost_system log4cplus-devel python3-devel + gtest-devel $_devel_depends" checkdepends="procps-ng" # needs pgrep conf_files="/etc/kea/*.conf" short_desc="Next generation DHCPv4/v6 server" @@ -20,8 +19,8 @@ maintainer="Orphaned " license="MPL-2.0, Apache-2.0" homepage="https://kea.isc.org" changelog="https://gitlab.isc.org/isc-projects/kea/-/wikis/Release-Notes/release-notes-${version}" -distfiles="http://ftp.isc.org/isc/kea/${version/.P/-P}/kea-${version/.P/-P}.tar.gz" -checksum=815c61f5c271caa4a1db31dd656eb50a7f6ea973da3690f7c8581408e180131a +distfiles="https://ftp.isc.org/isc/kea/${version/.P/-P}/kea-${version/.P/-P}.tar.xz" +checksum=f0565f10ade5d5e4a821fe374e730aab549acae0e8565cb3a4c6824ef9f5b9b3 build_options="botan mysql pgsql" desc_option_botan="With Botan SSL support" @@ -31,22 +30,11 @@ build_options_default="pgsql" make_dirs="/var/kea 755 root root" -post_extract() { - vsed -i -e '/SHTESTS.*sql_tests/d' src/bin/admin/tests/Makefile.am -} - -pre_configure() { - autoreconf -fi -} - post_install() { vsv kea-dhcp4 vsv kea-dhcp6 vsv kea-dhcp-ddns - # We don't have the MPL-2.0 standard license - vlicense COPYING - rm -f ${DESTDIR}/usr/lib64 rmdir ${DESTDIR}/var/run/kea rmdir ${DESTDIR}/var/run @@ -68,7 +56,7 @@ libkea-devel_package() { depends="${makedepends} libkea>=${version}_${revision}" pkg_install() { vmove usr/include - vmove "usr/lib/*.a" vmove "usr/lib/*.so" + vmove "usr/lib/pkgconfig" } }