public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Martin Osvald <mosvald@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/kea] rawhide: New version 3.2.0 (rhbz#2492125)
Date: Mon, 13 Jul 2026 10:52:54 GMT [thread overview]
Message-ID: <178393997453.1.8470738092097149410.rpms-kea-1fc18be4274e@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/kea
Branch : rawhide
Commit : 1fc18be4274ecdf89697d4420c77bbb5930772ba
Author : Martin Osvald <mosvald@redhat.com>
Date : 2026-07-13T11:09:09+02:00
Stats : +126/-978 in 8 file(s)
URL : https://src.fedoraproject.org/rpms/kea/c/1fc18be4274ecdf89697d4420c77bbb5930772ba?branch=rawhide
Log:
New version 3.2.0 (rhbz#2492125)
- Update keama to latest upstream git snapshot (046ceef)
---
diff --git a/0001-Add-const-qualifiers-to-OpenSSL-X509-pointers.patch b/0001-Add-const-qualifiers-to-OpenSSL-X509-pointers.patch
deleted file mode 100644
index 5c72bf7..0000000
--- a/0001-Add-const-qualifiers-to-OpenSSL-X509-pointers.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 82d28b1be73bbc00e73e59d0c59c51a1e76519a5 Mon Sep 17 00:00:00 2001
-From: Simo Sorce <simo@redhat.com>
-Date: Mon, 27 Apr 2026 17:49:56 -0400
-Subject: [PATCH] Add const qualifiers to OpenSSL X509 pointers
-
-Added const qualifiers to the X509_NAME and X509_NAME_ENTRY pointers when
-retrieving subject and issuer names from TLS certificates. This ensures const-
-correctness and maintains compatibility with newer OpenSSL versions, which
-return const pointers from these getter functions.
-
-Co-authored-by: Gemini <gemini@google.com>
-Signed-off-by: Simo Sorce <simo@redhat.com>
----
- src/lib/asiolink/openssl_tls.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/lib/asiolink/openssl_tls.h b/src/lib/asiolink/openssl_tls.h
-index 57c3323..52a969b 100644
---- a/src/lib/asiolink/openssl_tls.h
-+++ b/src/lib/asiolink/openssl_tls.h
-@@ -175,9 +175,9 @@ public:
- if (!cert) {
- return ("");
- }
-- ::X509_NAME *name = ::X509_get_subject_name(cert);
-+ const ::X509_NAME *name = ::X509_get_subject_name(cert);
- int loc = ::X509_NAME_get_index_by_NID(name, NID_commonName, -1);
-- ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
-+ const ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
- if (!ne) {
- ::X509_free(cert);
- return ("");
-@@ -209,9 +209,9 @@ public:
- if (!cert) {
- return ("");
- }
-- ::X509_NAME *name = ::X509_get_issuer_name(cert);
-+ const ::X509_NAME *name = ::X509_get_issuer_name(cert);
- int loc = ::X509_NAME_get_index_by_NID(name, NID_commonName, -1);
-- ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
-+ const ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
- if (!ne) {
- ::X509_free(cert);
- return ("");
---
-2.53.0
-
diff --git a/kea-add-const-qualifiers-to-OpenSSL-X509-pointers.patch b/kea-add-const-qualifiers-to-OpenSSL-X509-pointers.patch
new file mode 100644
index 0000000..5c72bf7
--- /dev/null
+++ b/kea-add-const-qualifiers-to-OpenSSL-X509-pointers.patch
@@ -0,0 +1,47 @@
+From 82d28b1be73bbc00e73e59d0c59c51a1e76519a5 Mon Sep 17 00:00:00 2001
+From: Simo Sorce <simo@redhat.com>
+Date: Mon, 27 Apr 2026 17:49:56 -0400
+Subject: [PATCH] Add const qualifiers to OpenSSL X509 pointers
+
+Added const qualifiers to the X509_NAME and X509_NAME_ENTRY pointers when
+retrieving subject and issuer names from TLS certificates. This ensures const-
+correctness and maintains compatibility with newer OpenSSL versions, which
+return const pointers from these getter functions.
+
+Co-authored-by: Gemini <gemini@google.com>
+Signed-off-by: Simo Sorce <simo@redhat.com>
+---
+ src/lib/asiolink/openssl_tls.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/lib/asiolink/openssl_tls.h b/src/lib/asiolink/openssl_tls.h
+index 57c3323..52a969b 100644
+--- a/src/lib/asiolink/openssl_tls.h
++++ b/src/lib/asiolink/openssl_tls.h
+@@ -175,9 +175,9 @@ public:
+ if (!cert) {
+ return ("");
+ }
+- ::X509_NAME *name = ::X509_get_subject_name(cert);
++ const ::X509_NAME *name = ::X509_get_subject_name(cert);
+ int loc = ::X509_NAME_get_index_by_NID(name, NID_commonName, -1);
+- ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
++ const ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
+ if (!ne) {
+ ::X509_free(cert);
+ return ("");
+@@ -209,9 +209,9 @@ public:
+ if (!cert) {
+ return ("");
+ }
+- ::X509_NAME *name = ::X509_get_issuer_name(cert);
++ const ::X509_NAME *name = ::X509_get_issuer_name(cert);
+ int loc = ::X509_NAME_get_index_by_NID(name, NID_commonName, -1);
+- ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
++ const ::X509_NAME_ENTRY* ne = ::X509_NAME_get_entry(name, loc);
+ if (!ne) {
+ ::X509_free(cert);
+ return ("");
+--
+2.53.0
+
diff --git a/kea-ctrl-agent.service b/kea-ctrl-agent.service
deleted file mode 100644
index 0cfcf16..0000000
--- a/kea-ctrl-agent.service
+++ /dev/null
@@ -1,31 +0,0 @@
-[Unit]
-Description=Kea Control Agent
-Documentation=man:kea-ctrl-agent(8)
-Wants=network-online.target
-After=network-online.target
-After=time-sync.target
-
-[Service]
-Type=notify
-User=kea
-#Environment="KEA_PIDFILE_DIR=/var/run/kea"
-#Environment="KEA_LOCKFILE_DIR=/var/run/kea"
-#Environment="KEA_LOGGER_DESTINATION=/var/log/kea/early-startup.log"
-#Environment="KEA_DHCP_DATA_DIR=/var/lib/kea"
-#Environment="KEA_LOG_FILE_DIR=/var/log/kea"
-#Environment="KEA_CONTROL_SOCKET_DIR=/var/run/kea"
-ConfigurationDirectory=kea
-ConfigurationDirectoryMode=0750
-RuntimeDirectory=kea
-RuntimeDirectoryPreserve=yes
-RuntimeDirectoryMode=0750
-LogsDirectory=kea
-LogsDirectoryMode=0750
-StateDirectory=kea
-StateDirectoryMode=0750
-ExecStart=/usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf
-ExecReload=/usr/bin/kill -HUP $MAINPID
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
diff --git a/kea-move-to-system-timer.patch b/kea-move-to-system-timer.patch
deleted file mode 100644
index a87d892..0000000
--- a/kea-move-to-system-timer.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-diff --git a/src/lib/asiodns/io_fetch.cc b/src/lib/asiodns/io_fetch.cc
-index c140676..24b1761 100644
---- a/src/lib/asiodns/io_fetch.cc
-+++ b/src/lib/asiodns/io_fetch.cc
-@@ -25,6 +25,7 @@
- #include <boost/scoped_ptr.hpp>
- #include <boost/date_time/posix_time/posix_time_types.hpp>
-
-+#include <chrono>
- #include <functional>
- #include <unistd.h> // for some IPC/network system calls
- #include <netinet/in.h>
-@@ -67,7 +68,7 @@ struct IOFetchData : boost::noncopyable {
- OutputBufferPtr msgbuf; // Wire buffer for question
- OutputBufferPtr received; // Received data put here
- IOFetch::Callback* callback; // Called on I/O Completion
-- boost::asio::deadline_timer timer; // Timer to measure timeouts
-+ boost::asio::system_timer timer; // Timer to measure timeouts
- IOFetch::Protocol protocol; // Protocol being used
- size_t cumulative; // Cumulative received amount
- size_t expected; // Expected amount of data
-@@ -227,7 +228,7 @@ IOFetch::operator()(boost::system::error_code ec, size_t length) {
- // If we timeout, we stop, which cancels outstanding I/O operations and
- // shuts down everything.
- if (data_->timeout != -1) {
-- data_->timer.expires_from_now(boost::posix_time::milliseconds(
-+ data_->timer.expires_after(std::chrono::milliseconds(
- data_->timeout));
- data_->timer.async_wait(std::bind(&IOFetch::stop, *this,
- TIME_OUT));
-diff --git a/src/lib/asiodns/io_fetch.h b/src/lib/asiodns/io_fetch.h
-index 6fcbb78..46e6255 100644
---- a/src/lib/asiodns/io_fetch.h
-+++ b/src/lib/asiodns/io_fetch.h
-@@ -16,6 +16,7 @@
- #include <util/buffer.h>
-
- #include <boost/asio/coroutine.hpp>
-+#include <boost/asio/system_timer.hpp>
- #include <boost/shared_array.hpp>
- #include <boost/shared_ptr.hpp>
- #include <boost/date_time/posix_time/posix_time_types.hpp>
-diff --git a/src/lib/asiodns/tests/io_fetch_unittest.cc b/src/lib/asiodns/tests/io_fetch_unittest.cc
-index 7b4cd05..045678f 100644
---- a/src/lib/asiodns/tests/io_fetch_unittest.cc
-+++ b/src/lib/asiodns/tests/io_fetch_unittest.cc
-@@ -23,6 +23,7 @@
- #include <boost/date_time/posix_time/posix_time_types.hpp>
-
- #include <algorithm>
-+#include <chrono>
- #include <cstdlib>
- #include <functional>
- #include <string>
-@@ -66,7 +67,7 @@ public:
- IOFetch tcp_fetch_; ///< For TCP query test
- IOFetch::Protocol protocol_; ///< Protocol being tested
- size_t cumulative_; ///< Cumulative data received by "server".
-- deadline_timer timer_; ///< Timer to measure timeouts
-+ system_timer timer_; ///< Timer to measure timeouts
-
- // The next member is the buffer in which the "server" (implemented by the
- // response handler methods in this class) receives the question sent by the
-@@ -431,7 +432,7 @@ public:
- // tcpSendData, which will then send the next chunk. We pass the
- // socket over which data should be sent as an argument to that
- // function.
-- timer_.expires_from_now(boost::posix_time::milliseconds(SEND_INTERVAL));
-+ timer_.expires_after(std::chrono::milliseconds(SEND_INTERVAL));
- timer_.async_wait(std::bind(&IOFetchTest::tcpSendData, this,
- socket));
- }
-diff --git a/src/lib/asiolink/interval_timer.cc b/src/lib/asiolink/interval_timer.cc
-index fa0d9e1..4c5902b 100644
---- a/src/lib/asiolink/interval_timer.cc
-+++ b/src/lib/asiolink/interval_timer.cc
-@@ -16,6 +16,7 @@
- #include <exceptions/exceptions.h>
-
- #include <atomic>
-+#include <chrono>
- #include <functional>
- #include <mutex>
-
-@@ -88,7 +89,7 @@ private:
- IOServicePtr io_service_;
-
- /// @brief The asio timer.
-- boost::asio::deadline_timer timer_;
-+ boost::asio::system_timer timer_;
-
- /// @brief Controls how the timer behaves after expiration.
- IntervalTimer::Mode mode_;
-@@ -141,7 +142,7 @@ void
- IntervalTimerImpl::update() {
- try {
- // Update expire time to (current time + interval_).
-- timer_.expires_from_now(boost::posix_time::millisec(long(interval_)));
-+ timer_.expires_after(std::chrono::milliseconds(interval_));
- // Reset timer.
- // Pass a function bound with a shared_ptr to this.
- timer_.async_wait(std::bind(&IntervalTimerImpl::callback,
-diff --git a/src/lib/asiolink/interval_timer.h b/src/lib/asiolink/interval_timer.h
-index 0b1c10c..8b7e457 100644
---- a/src/lib/asiolink/interval_timer.h
-+++ b/src/lib/asiolink/interval_timer.h
-@@ -7,6 +7,7 @@
- #ifndef ASIOLINK_INTERVAL_TIMER_H
- #define ASIOLINK_INTERVAL_TIMER_H 1
-
-+#include <boost/asio/system_timer.hpp>
- #include <boost/shared_ptr.hpp>
- #include <functional>
-
-@@ -18,9 +19,9 @@ namespace asiolink {
- class IntervalTimerImpl;
-
- /// \brief The \c IntervalTimer class is a wrapper for the ASIO
--/// \c boost::asio::deadline_timer class.
-+/// \c boost::asio::system_timer class.
- ///
--/// This class is implemented to use \c boost::asio::deadline_timer as interval
-+/// This class is implemented to use \c boost::asio::system_timer as interval
- /// timer.
- ///
- /// \c setup() sets a timer to expire on (now + interval), a call back
-@@ -87,7 +88,7 @@ public:
- /// This destructor never throws an exception.
- ///
- /// On the destruction of this class the timer will be canceled
-- /// inside \c boost::asio::deadline_timer.
-+ /// inside \c boost::asio::system_timer.
- ~IntervalTimer();
- //@}
-
diff --git a/kea-replace-BOOST_STATIC_ASSERT.patch b/kea-replace-BOOST_STATIC_ASSERT.patch
deleted file mode 100644
index 62dcb89..0000000
--- a/kea-replace-BOOST_STATIC_ASSERT.patch
+++ /dev/null
@@ -1,601 +0,0 @@
-diff --git a/src/hooks/d2/gss_tsig/gss_tsig_cfg.cc b/src/hooks/d2/gss_tsig/gss_tsig_cfg.cc
-index 2edabfe..78c5a8c 100644
---- a/src/hooks/d2/gss_tsig/gss_tsig_cfg.cc
-+++ b/src/hooks/d2/gss_tsig/gss_tsig_cfg.cc
-@@ -59,8 +59,10 @@ DnsServer::DnsServer(const string& id, const set<string>& domains,
- rekey_interval_(DEFAULT_REKEY_INTERVAL),
- retry_interval_(DEFAULT_RETRY_INTERVAL), tkey_proto_(IOFetch::TCP),
- fallback_(false), exchange_timeout_(DEFAULT_EXCHANGE_TIMEOUT), timer_() {
-- BOOST_STATIC_ASSERT(DEFAULT_REKEY_INTERVAL < DEFAULT_KEY_LIFETIME);
-- BOOST_STATIC_ASSERT(DEFAULT_RETRY_INTERVAL < DEFAULT_REKEY_INTERVAL);
-+ static_assert(DEFAULT_REKEY_INTERVAL < DEFAULT_KEY_LIFETIME,
-+ "DEFAULT_REKEY_INTERVAL < DEFAULT_KEY_LIFETIME");
-+ static_assert(DEFAULT_RETRY_INTERVAL < DEFAULT_REKEY_INTERVAL,
-+ "DEFAULT_RETRY_INTERVAL < DEFAULT_REKEY_INTERVAL");
- initStats();
- }
-
-diff --git a/src/hooks/dhcp/mysql/mysql_host_data_source.cc b/src/hooks/dhcp/mysql/mysql_host_data_source.cc
-index 900bb5a..61a1d2d 100644
---- a/src/hooks/dhcp/mysql/mysql_host_data_source.cc
-+++ b/src/hooks/dhcp/mysql/mysql_host_data_source.cc
-@@ -30,7 +30,6 @@
- #include <boost/array.hpp>
- #include <boost/foreach.hpp>
- #include <boost/pointer_cast.hpp>
--#include <boost/static_assert.hpp>
-
- #include <mysql.h>
- #include <mysqld_error.h>
-@@ -169,7 +168,7 @@ public:
- columns_[DHCP4_BOOT_FILE_NAME_COL] = "dhcp4_boot_file_name";
- columns_[AUTH_KEY_COL] = "auth_key";
-
-- BOOST_STATIC_ASSERT(13 < HOST_COLUMNS);
-+ static_assert(13 < HOST_COLUMNS, "13 < HOST_COLUMNS");
- }
-
- /// @brief Virtual destructor.
-@@ -1722,7 +1721,7 @@ public:
- columns_[5] = "excluded_prefix";
- columns_[6] = "excluded_prefix_len";
-
-- BOOST_STATIC_ASSERT(6 < RESRV_COLUMNS);
-+ static_assert(6 < RESRV_COLUMNS, "6 < RESRV_COLUMNS");
- }
-
- /// @brief Create MYSQL_BIND objects for IPv6 Reservation.
-@@ -1904,7 +1903,7 @@ public:
- user_context_(), user_context_len_(0), subnet_id_(SUBNET_ID_UNUSED),
- host_id_(0), option_() {
-
-- BOOST_STATIC_ASSERT(10 <= OPTION_COLUMNS);
-+ static_assert(10 <= OPTION_COLUMNS, "10 <= OPTION_COLUMNS");
- }
-
- /// @brief Creates binding array to insert option data into database.
-diff --git a/src/hooks/dhcp/mysql/mysql_lease_mgr.cc b/src/hooks/dhcp/mysql/mysql_lease_mgr.cc
-index 4a51976..d18e069 100644
---- a/src/hooks/dhcp/mysql/mysql_lease_mgr.cc
-+++ b/src/hooks/dhcp/mysql/mysql_lease_mgr.cc
-@@ -22,7 +22,6 @@
-
- #include <boost/array.hpp>
- #include <boost/make_shared.hpp>
--#include <boost/static_assert.hpp>
- #include <mysqld_error.h>
-
- #include <ctime>
-@@ -659,7 +658,7 @@ public:
- columns_[RELAY_ID_COL] = "relay_id";
- columns_[REMOTE_ID_COL] = "remote_id";
- columns_[POOL_ID_COL] = "pool_id";
-- BOOST_STATIC_ASSERT(13 < LEASE_COLUMNS);
-+ static_assert(13 < LEASE_COLUMNS, "13 < LEASE_COLUMNS");
- }
-
- /// @brief Create MYSQL_BIND objects for Lease4 Pointer
-@@ -882,7 +881,7 @@ public:
- setErrorIndicators(bind_, error_, LEASE_COLUMNS);
-
- // .. and check that we have the numbers correct at compile time.
-- BOOST_STATIC_ASSERT(13 < LEASE_COLUMNS);
-+ static_assert(13 < LEASE_COLUMNS, "13 < LEASE_COLUMNS");
-
- } catch (const std::exception& ex) {
- isc_throw(DbOperationError,
-@@ -1025,7 +1024,7 @@ public:
- setErrorIndicators(bind_, error_, LEASE_COLUMNS);
-
- // .. and check that we have the numbers correct at compile time.
-- BOOST_STATIC_ASSERT(13 < LEASE_COLUMNS);
-+ static_assert(13 < LEASE_COLUMNS, "13 < LEASE_COLUMNS");
-
- // Add the data to the vector. Note the end element is one after the
- // end of the array.
-@@ -1252,7 +1251,7 @@ public:
- columns_[STATE_COL] = "state";
- columns_[USER_CONTEXT_COL] = "user_context";
- columns_[POOL_ID_COL] = "pool_id";
-- BOOST_STATIC_ASSERT(17 < LEASE_COLUMNS);
-+ static_assert(17 < LEASE_COLUMNS, "17 < LEASE_COLUMNS");
- }
-
- /// @brief Create MYSQL_BIND objects for Lease6 Pointer
-@@ -1496,7 +1495,7 @@ public:
- setErrorIndicators(bind_, error_, LEASE_COLUMNS);
-
- // .. and check that we have the numbers correct at compile time.
-- BOOST_STATIC_ASSERT(17 < LEASE_COLUMNS);
-+ static_assert(17 < LEASE_COLUMNS, "17 < LEASE_COLUMNS");
-
- } catch (const std::exception& ex) {
- isc_throw(DbOperationError,
-@@ -1662,7 +1661,7 @@ public:
- setErrorIndicators(bind_, error_, LEASE_COLUMNS);
-
- // .. and check that we have the numbers correct at compile time.
-- BOOST_STATIC_ASSERT(17 < LEASE_COLUMNS);
-+ static_assert(17 < LEASE_COLUMNS, "17 < LEASE_COLUMNS");
-
- // Add the data to the vector. Note the end element is one after the
- // end of the array.
-diff --git a/src/hooks/dhcp/mysql/mysql_legal_log.cc b/src/hooks/dhcp/mysql/mysql_legal_log.cc
-index 559e36a..d7e4720 100644
---- a/src/hooks/dhcp/mysql/mysql_legal_log.cc
-+++ b/src/hooks/dhcp/mysql/mysql_legal_log.cc
-@@ -15,7 +15,6 @@
- #include <util/multi_threading_mgr.h>
-
- #include <boost/array.hpp>
--#include <boost/static_assert.hpp>
- #include <mysqld_error.h>
-
- #include <iomanip>
-@@ -62,7 +61,7 @@ public:
- // Set the column names (for error messages)
- columns_[0] = "address";
- columns_[1] = "log";
-- BOOST_STATIC_ASSERT(1 < LOG_COLUMNS);
-+ static_assert(1 < LOG_COLUMNS, "1 < LOG_COLUMNS");
- }
-
- /// @brief Destructor
-@@ -183,7 +182,7 @@ public:
- setErrorIndicators(bind_, error_, LOG_COLUMNS);
-
- // .. and check that we have the numbers correct at compile time.
-- BOOST_STATIC_ASSERT(1 < LOG_COLUMNS);
-+ static_assert(1 < LOG_COLUMNS, "1 < LOG_COLUMNS");
-
- } catch (const std::exception& ex) {
- isc_throw(DbOperationError,
-diff --git a/src/hooks/dhcp/pgsql/pgsql_host_data_source.cc b/src/hooks/dhcp/pgsql/pgsql_host_data_source.cc
-index 37cca25..caa5550 100644
---- a/src/hooks/dhcp/pgsql/pgsql_host_data_source.cc
-+++ b/src/hooks/dhcp/pgsql/pgsql_host_data_source.cc
-@@ -30,7 +30,6 @@
- #include <boost/array.hpp>
- #include <boost/foreach.hpp>
- #include <boost/pointer_cast.hpp>
--#include <boost/static_assert.hpp>
-
- #include <stdint.h>
-
-@@ -140,7 +139,7 @@ public:
- columns_[DHCP4_BOOT_FILE_NAME_COL] = "dhcp4_boot_file_name";
- columns_[AUTH_KEY_COL] = "auth_key";
-
-- BOOST_STATIC_ASSERT(12 < HOST_COLUMNS);
-+ static_assert(12 < HOST_COLUMNS, "12 < HOST_COLUMNS");
- };
-
- /// @brief Virtual destructor.
-@@ -942,7 +941,7 @@ public:
- columns_[excluded_prefix_index_] = "excluded_prefix";
- columns_[excluded_prefix_len_index_] = "excluded_prefix_len";
-
-- BOOST_STATIC_ASSERT(6 < RESERVATION_COLUMNS);
-+ static_assert(6 < RESERVATION_COLUMNS, "6 < RESERVATION_COLUMNS");
- }
-
- /// @brief Reinitializes state information
-@@ -1126,7 +1125,7 @@ public:
- columns_[5] = "excluded_prefix";
- columns_[6] = "excluded_prefix_len";
-
-- BOOST_STATIC_ASSERT(7 < RESRV_COLUMNS);
-+ static_assert(7 < RESRV_COLUMNS, "7 < RESRV_COLUMNS");
- }
-
- /// @brief Populate a bind array representing an IPv6 reservation
-@@ -1242,7 +1241,7 @@ public:
- columns_[DHCP_SUBNET_ID_COL] = "dhcp_subnet_id";
- columns_[HOST_ID_COL] = "host_id";
-
-- BOOST_STATIC_ASSERT(10 <= OPTION_COLUMNS);
-+ static_assert(10 <= OPTION_COLUMNS, "10 <= OPTION_COLUMNS");
- }
-
- /// @brief Creates binding array to insert option data into database.
-diff --git a/src/hooks/dhcp/pgsql/pgsql_lease_mgr.cc b/src/hooks/dhcp/pgsql/pgsql_lease_mgr.cc
-index 2567e58..a56dbac 100644
---- a/src/hooks/dhcp/pgsql/pgsql_lease_mgr.cc
-+++ b/src/hooks/dhcp/pgsql/pgsql_lease_mgr.cc
-@@ -21,7 +21,6 @@
- #include <util/multi_threading_mgr.h>
-
- #include <boost/make_shared.hpp>
--#include <boost/static_assert.hpp>
-
- #include <iomanip>
- #include <limits>
-@@ -727,7 +726,7 @@ public:
- : lease_(), addr4_(0), client_id_length_(0),
- relay_id_length_(0), remote_id_length_(0) {
-
-- BOOST_STATIC_ASSERT(13 < LEASE_COLUMNS);
-+ static_assert(13 < LEASE_COLUMNS, "13 < LEASE_COLUMNS");
-
- memset(hwaddr_buffer_, 0, sizeof(hwaddr_buffer_));
- memset(client_id_buffer_, 0, sizeof(client_id_buffer_));
-@@ -1029,7 +1028,7 @@ public:
- preferred_lifetime_str_(""), hwtype_(0), hwtype_str_(""),
- hwaddr_source_(0), hwaddr_source_str_("") {
-
-- BOOST_STATIC_ASSERT(17 < LEASE_COLUMNS);
-+ static_assert(17 < LEASE_COLUMNS, "17 < LEASE_COLUMNS");
-
- memset(duid_buffer_, 0, sizeof(duid_buffer_));
-
-diff --git a/src/hooks/dhcp/pgsql/pgsql_legal_log.cc b/src/hooks/dhcp/pgsql/pgsql_legal_log.cc
-index 5b4aef5..2599cff 100644
---- a/src/hooks/dhcp/pgsql/pgsql_legal_log.cc
-+++ b/src/hooks/dhcp/pgsql/pgsql_legal_log.cc
-@@ -14,8 +14,6 @@
- #include <dhcpsrv/timer_mgr.h>
- #include <util/multi_threading_mgr.h>
-
--#include <boost/static_assert.hpp>
--
- #include <iomanip>
- #include <limits>
- #include <sstream>
-@@ -65,7 +63,7 @@ public:
- /// @brief Constructor
- PgSqlLegLExchange() : address_(""), log_("") {
-
-- BOOST_STATIC_ASSERT(0 < LOG_COLUMNS);
-+ static_assert(0 < LOG_COLUMNS, "0 < LOG_COLUMNS");
-
- // Set the column names (for error messages)
- columns_.push_back("log");
-diff --git a/src/lib/asiolink/io_address.cc b/src/lib/asiolink/io_address.cc
-index e912f0f..bbc96b1 100644
---- a/src/lib/asiolink/io_address.cc
-+++ b/src/lib/asiolink/io_address.cc
-@@ -10,7 +10,6 @@
- #include <asiolink/io_error.h>
- #include <exceptions/exceptions.h>
-
--#include <boost/static_assert.hpp>
- // moved to container_hash on recent boost versions (backward compatible)
- #include <boost/functional/hash.hpp>
-
-@@ -71,7 +70,8 @@ IOAddress::fromBytes(short family, const uint8_t* data) {
- << "are supported");
- }
-
-- BOOST_STATIC_ASSERT(INET6_ADDRSTRLEN >= INET_ADDRSTRLEN);
-+ static_assert(INET6_ADDRSTRLEN >= INET_ADDRSTRLEN,
-+ "INET6_ADDRSTRLEN >= INET_ADDRSTRLEN");
- char addr_str[INET6_ADDRSTRLEN];
- inet_ntop(family, data, addr_str, INET6_ADDRSTRLEN);
- return IOAddress(string(addr_str));
-diff --git a/src/lib/dhcp/iface_mgr_linux.cc b/src/lib/dhcp/iface_mgr_linux.cc
-index d49518c..89dd65d 100644
---- a/src/lib/dhcp/iface_mgr_linux.cc
-+++ b/src/lib/dhcp/iface_mgr_linux.cc
-@@ -32,7 +32,6 @@
- #include <util/io/sockaddr_util.h>
-
- #include <boost/array.hpp>
--#include <boost/static_assert.hpp>
-
- #include <fcntl.h>
- #include <stdint.h>
-@@ -45,7 +44,7 @@ using namespace isc::asiolink;
- using namespace isc::dhcp;
- using namespace isc::util::io::internal;
-
--BOOST_STATIC_ASSERT(IFLA_MAX>=IFA_MAX);
-+static_assert(IFLA_MAX>=IFA_MAX, "IFLA_MAX>=IFA_MAX");
-
- namespace {
-
-@@ -180,7 +179,8 @@ void Netlink::rtnl_send_request(int family, int type) {
- struct sockaddr_nl nladdr;
-
- // do a sanity check. Verify that Req structure is aligned properly
-- BOOST_STATIC_ASSERT(sizeof(nlmsghdr) == offsetof(Req, generic));
-+ static_assert(sizeof(nlmsghdr) == offsetof(Req, generic),
-+ "sizeof(nlmsghdr) == offsetof(Req, generic)");
-
- memset(&nladdr, 0, sizeof(nladdr));
- nladdr.nl_family = AF_NETLINK;
-diff --git a/src/lib/dhcp/protocol_util.cc b/src/lib/dhcp/protocol_util.cc
-index da70104..f3bc355 100644
---- a/src/lib/dhcp/protocol_util.cc
-+++ b/src/lib/dhcp/protocol_util.cc
-@@ -8,7 +8,6 @@
- #include <asiolink/io_address.h>
- #include <dhcp/dhcp6.h>
- #include <dhcp/protocol_util.h>
--#include <boost/static_assert.hpp>
- // in_systm.h is required on some some BSD systems
- // complaining that n_time is undefined but used
- // in ip.h.
-@@ -41,7 +40,8 @@ decodeEthernetHeader(InputBuffer& buf, Pkt4Ptr& pkt) {
- // The size of the single address is always lower then the size of
- // the header that holds this address. Otherwise, it is a programming
- // error that we want to detect in the compilation time.
-- BOOST_STATIC_ASSERT(ETHERNET_HEADER_LEN > HWAddr::ETHERNET_HWADDR_LEN);
-+ static_assert(ETHERNET_HEADER_LEN > HWAddr::ETHERNET_HWADDR_LEN,
-+ "ETHERNET_HEADER_LEN > HWAddr::ETHERNET_HWADDR_LEN");
-
- // Remember initial position.
- size_t start_pos = buf.getPosition();
-@@ -76,7 +76,8 @@ decodeIpUdpHeader(InputBuffer& buf, Pkt4Ptr& pkt) {
- " packet headers");
- }
-
-- BOOST_STATIC_ASSERT(IP_SRC_ADDR_OFFSET < MIN_IP_HEADER_LEN);
-+ static_assert(IP_SRC_ADDR_OFFSET < MIN_IP_HEADER_LEN,
-+ "IP_SRC_ADDR_OFFSET < MIN_IP_HEADER_LEN");
-
- // Remember initial position of the read pointer.
- size_t start_pos = buf.getPosition();
-diff --git a/src/lib/dhcp/tests/pkt4_unittest.cc b/src/lib/dhcp/tests/pkt4_unittest.cc
-index 8092029..773e626 100644
---- a/src/lib/dhcp/tests/pkt4_unittest.cc
-+++ b/src/lib/dhcp/tests/pkt4_unittest.cc
-@@ -24,7 +24,6 @@
- #include <boost/shared_array.hpp>
- #include <boost/shared_ptr.hpp>
- #include <boost/scoped_ptr.hpp>
--#include <boost/static_assert.hpp>
- #include <gtest/gtest.h>
-
- #include <iostream>
-@@ -86,9 +85,10 @@ const uint8_t dummyFile[] = "Lorem ipsum dolor sit amet, consectetur "
- const uint8_t dummySname[] = "Lorem ipsum dolor sit amet, consectetur "
- "adipiscing elit posuere.";
-
--BOOST_STATIC_ASSERT(sizeof(dummyFile) == Pkt4::MAX_FILE_LEN + 1);
--BOOST_STATIC_ASSERT(sizeof(dummySname) == Pkt4::MAX_SNAME_LEN + 1);
--
-+static_assert(sizeof(dummyFile) == Pkt4::MAX_FILE_LEN + 1,
-+ "sizeof(dummyFile) == Pkt4::MAX_FILE_LEN + 1");
-+static_assert(sizeof(dummySname) == Pkt4::MAX_SNAME_LEN + 1,
-+ "sizeof(dummySname) == Pkt4::MAX_SNAME_LEN + 1");
-
- class Pkt4Test : public ::testing::Test {
- public:
-diff --git a/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc b/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc
-index 5370e35..94a6c77 100644
---- a/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc
-+++ b/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc
-@@ -13,7 +13,6 @@
- #include <hooks/hooks_manager.h>
- #include <stats/stats_mgr.h>
- #include <gtest/gtest.h>
--#include <boost/static_assert.hpp>
- #include <functional>
- #include <iomanip>
- #include <sstream>
-@@ -691,7 +690,8 @@ public:
- // Hence, it is convenient if the number of test leases is a
- // multiple of 10.
- const size_t reclamation_group_size = 10;
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM % reclamation_group_size == 0);
-+ static_assert(TEST_LEASES_NUM % reclamation_group_size == 0,
-+ "TEST_LEASES_NUM % reclamation_group_size == 0");
-
- // Leases will be reclaimed in groups of 10.
- for (unsigned int i = reclamation_group_size; i < TEST_LEASES_NUM;
-@@ -760,7 +760,8 @@ public:
- }
-
- const size_t reclamation_group_size = 10;
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM % reclamation_group_size == 0);
-+ static_assert(TEST_LEASES_NUM % reclamation_group_size == 0,
-+ "TEST_LEASES_NUM % reclamation_group_size == 0");
-
- // Leases will be reclaimed in groups of 10
- for (unsigned int i = 10; i < TEST_LEASES_NUM; i += reclamation_group_size) {
-@@ -1438,7 +1439,7 @@ ExpirationAllocEngine6Test::setLeaseType(const uint16_t lease_index,
- void
- ExpirationAllocEngine6Test::testReclaimExpiredLeasesStats() {
- // This test requires that the number of leases is an even number.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM % 2 == 0);
-+ static_assert(TEST_LEASES_NUM % 2 == 0, "TEST_LEASES_NUM % 2 == 0");
-
- for (unsigned int i = 0; i < TEST_LEASES_NUM; ++i) {
- // Mark all leases as expired. The higher the index the less
-@@ -1477,7 +1478,7 @@ ExpirationAllocEngine6Test::testReclaimExpiredLeasesStats() {
- void
- ExpirationAllocEngine6Test::testReclaimReusedLeases(const uint16_t msg_type,
- const bool use_reclaimed) {
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM < 1000);
-+ static_assert(TEST_LEASES_NUM < 1000, "TEST_LEASES_NUM < 1000");
-
- for (unsigned int i = 0; i < TEST_LEASES_NUM; ++i) {
- // Depending on the parameter, mark leases 'expired-reclaimed' or
-@@ -1580,7 +1581,7 @@ ExpirationAllocEngine6Test::testReclaimDeclinedHook(bool skip) {
- void
- ExpirationAllocEngine6Test::testReclaimExpiredLeasesRegisteredStats() {
- // This test requires that the number of leases is an even number.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM % 2 == 0);
-+ static_assert(TEST_LEASES_NUM % 2 == 0, "TEST_LEASES_NUM % 2 == 0");
-
- for (unsigned int i = 0; i < TEST_LEASES_NUM; ++i) {
- // Mark all leases as expired. The higher the index the less
-@@ -1675,7 +1676,8 @@ TEST_F(ExpirationAllocEngine6Test, reclaimExpiredLeasesHooksWithSkip) {
- // execution of the lease reclamation routine.
- TEST_F(ExpirationAllocEngine6Test, reclaimExpiredLeasesTimeout) {
- // This test needs at least 40 leases to make sense.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 40);
-+ static_assert(TEST_LEASES_NUM >= 40, "TEST_LEASES_NUM >= 40");
-+
- // Run with timeout of 1.2s.
- testReclaimExpiredLeasesTimeout(1200);
- }
-@@ -1687,7 +1689,7 @@ TEST_F(ExpirationAllocEngine6Test, reclaimExpiredLeasesTimeout) {
- // reclamation.
- TEST_F(ExpirationAllocEngine6Test, reclaimExpiredLeasesShortTimeout) {
- // We will most likely reclaim just one lease, so 5 is more than enough.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 5);
-+ static_assert(TEST_LEASES_NUM >= 5, "TEST_LEASES_NUM >= 5");
- // Reclaim leases with the 1ms timeout.
- testReclaimExpiredLeasesTimeout(1);
- }
-@@ -1695,7 +1697,7 @@ TEST_F(ExpirationAllocEngine6Test, reclaimExpiredLeasesShortTimeout) {
- // This test verifies that expired-reclaimed leases are removed from the
- // lease database.
- TEST_F(ExpirationAllocEngine6Test, deleteExpiredReclaimedLeases) {
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 10);
-+ static_assert(TEST_LEASES_NUM >= 10, "TEST_LEASES_NUM >= 10");
- testDeleteExpiredReclaimedLeases();
- }
-
-@@ -2152,7 +2154,7 @@ ExpirationAllocEngine4Test::testReclaimExpiredLeasesWithDDNSAndClientId() {
- void
- ExpirationAllocEngine4Test::testReclaimExpiredLeasesStats() {
- // This test requires that the number of leases is an even number.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM % 2 == 0);
-+ static_assert(TEST_LEASES_NUM % 2 == 0, "TEST_LEASES_NUM % 2 == 0");
-
- for (unsigned int i = 0; i < TEST_LEASES_NUM; ++i) {
- // Mark all leases as expired. The higher the index the less
-@@ -2192,7 +2194,7 @@ ExpirationAllocEngine4Test::testReclaimReusedLeases(const uint8_t msg_type,
- const bool client_renews,
- const bool use_reclaimed) {
- // Let's restrict the number of leases.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM < 1000);
-+ static_assert(TEST_LEASES_NUM < 1000, "TEST_LEASES_NUM < 1000");
-
- for (unsigned int i = 0; i < TEST_LEASES_NUM; ++i) {
- // Depending on the parameter, mark leases 'expired-reclaimed' or
-@@ -2361,7 +2363,7 @@ TEST_F(ExpirationAllocEngine4Test, reclaimExpiredLeasesHooksWithSkip) {
- // execution of the lease reclamation routine.
- TEST_F(ExpirationAllocEngine4Test, reclaimExpiredLeasesTimeout) {
- // This test needs at least 40 leases to make sense.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 40);
-+ static_assert(TEST_LEASES_NUM >= 40, "TEST_LEASES_NUM >= 40");
- // Run with timeout of 1.2s.
- testReclaimExpiredLeasesTimeout(1200);
- }
-@@ -2373,7 +2375,7 @@ TEST_F(ExpirationAllocEngine4Test, reclaimExpiredLeasesTimeout) {
- // reclamation.
- TEST_F(ExpirationAllocEngine4Test, reclaimExpiredLeasesShortTimeout) {
- // We will most likely reclaim just one lease, so 5 is more than enough.
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 5);
-+ static_assert(TEST_LEASES_NUM >= 5, "TEST_LEASES_NUM >= 5");
- // Reclaim leases with the 1ms timeout.
- testReclaimExpiredLeasesTimeout(1);
- }
-@@ -2381,7 +2383,7 @@ TEST_F(ExpirationAllocEngine4Test, reclaimExpiredLeasesShortTimeout) {
- // This test verifies that expired-reclaimed leases are removed from the
- // lease database.
- TEST_F(ExpirationAllocEngine4Test, deleteExpiredReclaimedLeases) {
-- BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 10);
-+ static_assert(TEST_LEASES_NUM >= 10, "TEST_LEASES_NUM >= 10");
- testDeleteExpiredReclaimedLeases();
- }
-
-diff --git a/src/lib/dns/messagerenderer.cc b/src/lib/dns/messagerenderer.cc
-index 4e1dfea..5c9cc36 100644
---- a/src/lib/dns/messagerenderer.cc
-+++ b/src/lib/dns/messagerenderer.cc
-@@ -15,7 +15,6 @@
- #include <util/buffer.h>
-
- #include <boost/array.hpp>
--#include <boost/static_assert.hpp>
- #include <limits>
- #include <cassert>
- #include <vector>
-diff --git a/src/lib/dns/rdataclass.cc b/src/lib/dns/rdataclass.cc
-index 1bf515c..79dc094 100644
---- a/src/lib/dns/rdataclass.cc
-+++ b/src/lib/dns/rdataclass.cc
-@@ -1398,8 +1398,9 @@ SOA::getSerial() const {
- uint32_t
- SOA::getMinimum() const {
- // Make sure the buffer access is safe.
-- BOOST_STATIC_ASSERT(sizeof(numdata_) ==
-- sizeof(uint32_t) * 4 + sizeof(uint32_t));
-+ static_assert(
-+ sizeof(numdata_) == sizeof(uint32_t) * 4 + sizeof(uint32_t),
-+ "sizeof(numdata_) == sizeof(uint32_t) * 4 + sizeof(uint32_t)");
-
- InputBuffer b(&numdata_[sizeof(uint32_t) * 4], sizeof(uint32_t));
- return (b.readUint32());
-diff --git a/src/lib/hooks/callout_manager.cc b/src/lib/hooks/callout_manager.cc
-index fbf4b90..7c30b08 100644
---- a/src/lib/hooks/callout_manager.cc
-+++ b/src/lib/hooks/callout_manager.cc
-@@ -12,8 +12,6 @@
- #include <hooks/pointer_converter.h>
- #include <util/stopwatch.h>
-
--#include <boost/static_assert.hpp>
--
- #include <algorithm>
- #include <climits>
- #include <functional>
-diff --git a/src/lib/log/logger_impl.cc b/src/lib/log/logger_impl.cc
-index 1718f30..fe2c3af 100644
---- a/src/lib/log/logger_impl.cc
-+++ b/src/lib/log/logger_impl.cc
-@@ -17,7 +17,6 @@
-
- #include <boost/make_shared.hpp>
- #include <boost/lexical_cast.hpp>
--#include <boost/static_assert.hpp>
- #include <boost/algorithm/string.hpp>
-
- #include <log4cplus/configurator.h>
-diff --git a/src/lib/log/logger_level_impl.cc b/src/lib/log/logger_level_impl.cc
-index a4aba73..a6a4fdd 100644
---- a/src/lib/log/logger_level_impl.cc
-+++ b/src/lib/log/logger_level_impl.cc
-@@ -44,13 +44,20 @@ LoggerLevelImpl::convertFromBindLevel(const Level& level) {
- };
-
- // ... with compile-time checks to ensure that table indexes are correct.
-- BOOST_STATIC_ASSERT(static_cast<int>(DEFAULT) == 0);
-- BOOST_STATIC_ASSERT(static_cast<int>(DEBUG) == 1);
-- BOOST_STATIC_ASSERT(static_cast<int>(INFO) == 2);
-- BOOST_STATIC_ASSERT(static_cast<int>(WARN) == 3);
-- BOOST_STATIC_ASSERT(static_cast<int>(ERROR) == 4);
-- BOOST_STATIC_ASSERT(static_cast<int>(FATAL) == 5);
-- BOOST_STATIC_ASSERT(static_cast<int>(NONE) == 6);
-+ static_assert(static_cast<int>(DEFAULT) == 0,
-+ "static_cast<int>(DEFAULT) == 0");
-+ static_assert(static_cast<int>(DEBUG) == 1,
-+ "static_cast<int>(DEBUG) == 1");
-+ static_assert(static_cast<int>(INFO) == 2,
-+ "static_cast<int>(INFO) == 2");
-+ static_assert(static_cast<int>(WARN) == 3,
-+ "static_cast<int>(WARN) == 3");
-+ static_assert(static_cast<int>(ERROR) == 4,
-+ "static_cast<int>(ERROR) == 4");
-+ static_assert(static_cast<int>(FATAL) == 5,
-+ "static_cast<int>(FATAL) == 5");
-+ static_assert(static_cast<int>(NONE) == 6,
-+ "static_cast<int>(NONE) == 6");
-
- // Do the conversion
- if (level.severity == DEBUG) {
-diff --git a/src/lib/log/tests/logger_level_impl_unittest.cc b/src/lib/log/tests/logger_level_impl_unittest.cc
-index c82be69..d9375ee 100644
---- a/src/lib/log/tests/logger_level_impl_unittest.cc
-+++ b/src/lib/log/tests/logger_level_impl_unittest.cc
-@@ -10,7 +10,6 @@
- #include <string>
-
- #include <gtest/gtest.h>
--#include <boost/static_assert.hpp>
- #include <boost/lexical_cast.hpp>
-
- #include <log/logger_level_impl.h>
-@@ -109,7 +108,7 @@ TEST_F(LoggerLevelImplTest, ConversionToBind) {
- // ... and some invalid valid values
- test_convert_to("DEBUG-1", INFO, MIN_DEBUG_LEVEL,
- (log4cplus::DEBUG_LOG_LEVEL + 1));
-- BOOST_STATIC_ASSERT(MAX_DEBUG_LEVEL == 99);
-+ static_assert(MAX_DEBUG_LEVEL == 99, "MAX_DEBUG_LEVEL == 99");
- test_convert_to("DEBUG+100", DEFAULT, 0,
- (log4cplus::DEBUG_LOG_LEVEL - MAX_DEBUG_LEVEL - 1));
- }
diff --git a/kea-sd-daemon.patch b/kea-sd-daemon.patch
index f059e87..7c7aa26 100644
--- a/kea-sd-daemon.patch
+++ b/kea-sd-daemon.patch
@@ -1,8 +1,8 @@
diff --git a/config-report.sh.in b/config-report.sh.in
-index 1af984e..ddd4b62 100755
+index a7ead34..208fcf2 100755
--- a/config-report.sh.in
+++ b/config-report.sh.in
-@@ -105,6 +105,18 @@ Netconf: no
+@@ -111,6 +111,18 @@ Netconf: no
HERE_DOCUMENT
fi
@@ -22,7 +22,7 @@ index 1af984e..ddd4b62 100755
add_to_report <<HERE_DOCUMENT
Google Test: @GTEST_VERSION@
diff --git a/config.h.in b/config.h.in
-index 42ccf28..cc6354a 100644
+index fba9ce7..136c621 100644
--- a/config.h.in
+++ b/config.h.in
@@ -52,6 +52,9 @@
@@ -36,10 +36,10 @@ index 42ccf28..cc6354a 100644
#mesondefine LIBC_MUSL
diff --git a/meson.build b/meson.build
-index 8ed5b2d..df4f125 100644
+index f3ef0ea..bd3850c 100644
--- a/meson.build
+++ b/meson.build
-@@ -100,6 +100,7 @@ krb5_opt = get_option('krb5')
+@@ -101,6 +101,7 @@ krb5_opt = get_option('krb5')
mysql_opt = get_option('mysql')
netconf_opt = get_option('netconf')
postgresql_opt = get_option('postgresql')
@@ -47,7 +47,7 @@ index 8ed5b2d..df4f125 100644
FUZZ_OPT = get_option('fuzz')
TESTS_OPT = get_option('tests')
-@@ -297,6 +298,13 @@ if netconf_opt.allowed()
+@@ -304,6 +305,13 @@ if netconf_opt.allowed()
endif
endif
@@ -59,9 +59,9 @@ index 8ed5b2d..df4f125 100644
+endif
+
# Google Test
- GTEST_DEP = dependency(
- 'gtest',
-@@ -886,6 +894,11 @@ else
+ GTEST_DEP = disabler()
+ if FUZZ_OPT.enabled() or TESTS_OPT.enabled()
+@@ -900,6 +908,11 @@ else
report_conf_data.set('SYSREPOCPP_VERSION', 'no')
report_conf_data.set('SYSREPOCPP_PREFIX', 'no')
endif
@@ -85,61 +85,8 @@ index 5c222d5..3ecd2e1 100644
# Options for enabling testing code (not real features).
option(
-diff --git a/src/bin/agent/ca_process.cc b/src/bin/agent/ca_process.cc
-index f01dd97..4793067 100644
---- a/src/bin/agent/ca_process.cc
-+++ b/src/bin/agent/ca_process.cc
-@@ -18,6 +18,10 @@
- #include <util/filesystem.h>
- #include <boost/pointer_cast.hpp>
-
-+#ifdef HAVE_LIBSYSTEMD_DAEMON
-+#include <systemd/sd-daemon.h>
-+#endif
-+
- using namespace isc::asiolink;
- using namespace isc::config;
- using namespace isc::data;
-@@ -42,7 +46,15 @@ CtrlAgentProcess::init() {
-
- void
- CtrlAgentProcess::run() {
-+
- LOG_INFO(agent_logger, CTRL_AGENT_STARTED).arg(VERSION);
-+#ifdef HAVE_LIBSYSTEMD_DAEMON
-+ // Notify systemd about the same
-+ sd_notifyf(0, "READY=1\n"
-+ "STATUS=Processing requests...\n"
-+ "MAINPID=%lu",
-+ (unsigned long) getpid());
-+#endif
-
- LOG_WARN(agent_logger, CTRL_AGENT_IS_DEPRECATED);
-
-diff --git a/src/bin/agent/meson.build b/src/bin/agent/meson.build
-index c6afbfa..2d30179 100644
---- a/src/bin/agent/meson.build
-+++ b/src/bin/agent/meson.build
-@@ -1,3 +1,8 @@
-+kea_ctrl_agent_dependencies = [CRYPTO_DEP]
-+if SYSTEMD_DEP.found()
-+ kea_ctrl_agent_dependencies += [SYSTEMD_DEP]
-+endif
-+
- agent_lib = static_library(
- 'agent',
- 'agent_lexer.cc',
-@@ -17,7 +22,7 @@ agent_lib = static_library(
- executable(
- 'kea-ctrl-agent',
- 'main.cc',
-- dependencies: [CRYPTO_DEP],
-+ dependencies: kea_ctrl_agent_dependencies,
- include_directories: [include_directories('.')] + INCLUDES,
- install: true,
- install_dir: SBINDIR,
diff --git a/src/bin/d2/d2_process.cc b/src/bin/d2/d2_process.cc
-index 7db49a3..cdb9cef 100644
+index 2412da1..9d2ee7d 100644
--- a/src/bin/d2/d2_process.cc
+++ b/src/bin/d2/d2_process.cc
@@ -21,6 +21,10 @@
@@ -153,7 +100,7 @@ index 7db49a3..cdb9cef 100644
using namespace isc::asiolink;
using namespace isc::config;
using namespace isc::data;
-@@ -95,6 +99,13 @@ D2Process::init() {
+@@ -101,6 +105,13 @@ D2Process::init() {
void
D2Process::run() {
LOG_INFO(d2_logger, DHCP_DDNS_STARTED).arg(VERSION);
@@ -190,11 +137,11 @@ index 012b40d..3aff0c1 100644
install: true,
install_dir: SBINDIR,
diff --git a/src/bin/dhcp4/main.cc b/src/bin/dhcp4/main.cc
-index 4f88e29..5581b7a 100644
+index 4781405..c5167cb 100644
--- a/src/bin/dhcp4/main.cc
+++ b/src/bin/dhcp4/main.cc
-@@ -24,6 +24,10 @@
-
+@@ -25,6 +25,10 @@
+ #include <cstdlib>
#include <iostream>
+#ifdef HAVE_LIBSYSTEMD_DAEMON
@@ -204,7 +151,7 @@ index 4f88e29..5581b7a 100644
using namespace isc::data;
using namespace isc::dhcp;
using namespace isc::process;
-@@ -290,6 +294,13 @@ main(int argc, char* argv[]) {
+@@ -296,6 +300,13 @@ main(int argc, char* argv[]) {
// Tell the admin we are ready to process packets
LOG_INFO(dhcp4_logger, DHCP4_STARTED).arg(VERSION);
@@ -241,11 +188,11 @@ index 3dac320..e8cacb9 100644
install: true,
install_dir: SBINDIR,
diff --git a/src/bin/dhcp6/main.cc b/src/bin/dhcp6/main.cc
-index 7ab1999..abac799 100644
+index 3a119e7..8764473 100644
--- a/src/bin/dhcp6/main.cc
+++ b/src/bin/dhcp6/main.cc
-@@ -24,6 +24,10 @@
-
+@@ -25,6 +25,10 @@
+ #include <cstdlib>
#include <iostream>
+#ifdef HAVE_LIBSYSTEMD_DAEMON
@@ -255,7 +202,7 @@ index 7ab1999..abac799 100644
using namespace isc::data;
using namespace isc::dhcp;
using namespace isc::process;
-@@ -290,6 +294,13 @@ main(int argc, char* argv[]) {
+@@ -296,6 +300,13 @@ main(int argc, char* argv[]) {
// Tell the admin we are ready to process packets
LOG_INFO(dhcp6_logger, DHCP6_STARTED).arg(VERSION);
diff --git a/kea.spec b/kea.spec
index 0565006..23fa711 100644
--- a/kea.spec
+++ b/kea.spec
@@ -1,5 +1,5 @@
Name: kea
-Version: 3.0.3
+Version: 3.2.0
Release: %autorelease
Summary: DHCPv4, DHCPv6 and DDNS server from ISC
License: MPL-2.0 AND BSL-1.0
@@ -9,9 +9,12 @@ URL: http://kea.isc.org
%bcond_with sysrepo
%bcond_with tests
-%global keama_version 4.5.0
-# Bundled version of Bind libraries linked into Keama
-%global bind_version 9.11.36
+# The upstream tagged the 4.5.0 on Sep 19, 2023; grab the latest Keama from git instead
+# To switch to a tagged release: uncomment keama_version
+#%%global keama_version 4.5.0
+%global keama_commit 046ceef7a5db084211179dac42e986cda88a3c0e
+%global keama_shortcommit %{lua:print(rpm.expand("%{keama_commit}"):sub(1,7))}
+%global keama_dir keama-%{?keama_version}%{!?keama_version:%{keama_shortcommit}}
# Conflict with kea-next
%global upstream_name kea
@@ -23,26 +26,22 @@ Conflicts: %1 \
Source0: https://downloads.isc.org/isc/kea/%{version}/kea-%{version}.tar.xz
Source1: https://downloads.isc.org/isc/kea/%{version}/kea-%{version}.tar.xz.asc
+%if 0%{?keama_version:1}
Source2: https://downloads.isc.org/isc/keama/%{keama_version}/keama-%{keama_version}.tar.gz
Source3: https://downloads.isc.org/isc/keama/%{keama_version}/keama-%{keama_version}.tar.gz.asc
+%else
+Source2: https://gitlab.isc.org/isc-projects/keama/-/archive/%{keama_shortcommit}/keama-%{keama_shortcommit}.tar.gz
+%endif
Source10: https://www.isc.org/docs/isc-keyblock.asc
Source11: kea-dhcp4.service
Source12: kea-dhcp6.service
Source13: kea-dhcp-ddns.service
-Source14: kea-ctrl-agent.service
-Source15: systemd-tmpfiles.conf
-Source16: systemd-sysusers.conf
+Source14: systemd-tmpfiles.conf
+Source15: systemd-sysusers.conf
Patch1: kea-sd-daemon.patch
-# Patch2 & Patch3:
-# https://bugzilla.redhat.com/show_bug.cgi?id=2430574
-# https://gitlab.isc.org/isc-projects/kea/-/issues/4266
-# Based on: https://gitlab.isc.org/isc-projects/kea/-/commit/c54dfd47714fea7e79c16d99c09b896d9c8d44df
-Patch2: kea-replace-BOOST_STATIC_ASSERT.patch
-# Based on: https://gitlab.isc.org/isc-projects/kea/-/commit/9a86f27a94677ec9ee1988af892d65b7ab22027e
-Patch3: kea-move-to-system-timer.patch
-#Fix build with OpenSSL 4.0
-Patch4: 0001-Add-const-qualifiers-to-OpenSSL-X509-pointers.patch
+# Fix build with OpenSSL 4.0
+Patch2: kea-add-const-qualifiers-to-OpenSSL-X509-pointers.patch
BuildRequires: boost-devel
# %%meson -D crypto=openssl
@@ -135,7 +134,6 @@ This package contains shared libraries used by Kea DHCP server.
%package keama
Summary: Experimental migration assistant for Kea
-Provides: bundled(bind-libs) = %{bind_version}
%description keama
The KEA Migration Assistant is an experimental tool which helps to translate
@@ -143,9 +141,11 @@ ISC DHCP configurations to Kea.
%prep
%{gpgverify} --keyring='%{S:10}' --signature='%{S:1}' --data='%{S:0}'
+%if 0%{?keama_version:1}
%{gpgverify} --keyring='%{S:10}' --signature='%{S:3}' --data='%{S:2}'
+%endif
-%autosetup -T -b2 -N -n keama-%{keama_version}
+%autosetup -T -b2 -N -n %{keama_dir}
%autosetup -p1 -n kea-%{version}
%build
@@ -174,26 +174,9 @@ export KEA_PKG_TYPE_IN_CONFIGURE="rpm"
%meson_build doc
# Configure & build Keama
-pushd ../keama-%{keama_version}
-
-# We need to unpack the embedded copy of bind and call autoreconf to
-# ensure that config.{sub,guess} is up to date, since the copies
-# included in the archive are extremely old (2013) and unaware of
-# more recent architectures such as riscv64. The Keama build system
-# would normally take care of unpacking the archive, but it also
-# handles gracefully us doing it ourselves
-tar -C bind/ -zxvf bind/bind.tar.gz
-
-pushd bind/bind-%{bind_version}/
+pushd ../%{keama_dir}
autoreconf --verbose --force --install
-
-# Back to Keama. Its build system will take care of configuring and
-# building the embedded copy of bind
-popd
-
-autoreconf --verbose --force --install
-
%configure \
--disable-dependency-tracking \
--disable-silent-rules
@@ -210,37 +193,26 @@ popd
%meson_install
# Install Keama
-pushd ../keama-%{keama_version}
+pushd ../%{keama_dir}
%make_install
popd
-# Remove Keama's static library, dhcp headers and man pages
-rm %{buildroot}/%{_libdir}/libdhcp.a
-rm -rf %{buildroot}/%{_includedir}/omapip/
-rm -rf %{buildroot}%{_mandir}/man5/
-
# Remove keactrl
-rm %{buildroot}%{_sysconfdir}/kea/keactrl.conf
-rm %{buildroot}%{_sbindir}/keactrl
-rm %{buildroot}%{_mandir}/man8/keactrl.8*
+find %{buildroot} -name keactrl\* -delete
%if %{without sysrepo}
# Remove netconf files
-rm %{buildroot}%{_mandir}/man8/kea-netconf.8
+find %{buildroot} -name kea-netconf\* -delete
%endif
rm %{buildroot}%{_pkgdocdir}/COPYING
rm -rf %{buildroot}/usr/share/kea/meson-info/
-# Create empty password file for the Kea Control Agent
-install -m 0640 /dev/null %{buildroot}%{_sysconfdir}/kea/kea-api-password
-
# Install systemd units
install -Dpm 0644 %{S:11} %{buildroot}%{_unitdir}/kea-dhcp4.service
install -Dpm 0644 %{S:12} %{buildroot}%{_unitdir}/kea-dhcp6.service
install -Dpm 0644 %{S:13} %{buildroot}%{_unitdir}/kea-dhcp-ddns.service
-install -Dpm 0644 %{S:14} %{buildroot}%{_unitdir}/kea-ctrl-agent.service
# Start empty lease databases
mkdir -p %{buildroot}%{_sharedstatedir}/kea/
@@ -248,8 +220,8 @@ touch %{buildroot}%{_sharedstatedir}/kea/kea-leases4.csv
touch %{buildroot}%{_sharedstatedir}/kea/kea-leases6.csv
# Install systemd sysusers and tmpfiles configs
-install -Dpm 0644 %{S:16} %{buildroot}%{_sysusersdir}/kea.conf
-install -Dpm 0644 %{S:15} %{buildroot}%{_tmpfilesdir}/kea.conf
+install -Dpm 0644 %{S:15} %{buildroot}%{_sysusersdir}/kea.conf
+install -Dpm 0644 %{S:14} %{buildroot}%{_tmpfilesdir}/kea.conf
mkdir -p %{buildroot}%{_rundir}
install -dm 0750 %{buildroot}%{_rundir}/kea/
@@ -257,25 +229,25 @@ install -dm 0750 %{buildroot}%{_rundir}/kea/
mkdir -p %{buildroot}%{_localstatedir}/log
install -dm 0750 %{buildroot}%{_localstatedir}/log/kea/
-%post
-# Set a pseudo-random password for default config to secure fresh install and allow CA startup without user intervention
-if [[ ! -s %{_sysconfdir}/kea/kea-api-password && -n `grep '"password-file": "kea-api-password"' %{_sysconfdir}/kea/kea-ctrl-agent.conf` ]]; then
- (umask 0027; head -c 32 /dev/urandom | base64 > %{_sysconfdir}/kea/kea-api-password)
- chown root:kea %{_sysconfdir}/kea/kea-api-password
+%pretrans
+if [ $1 -ge 2 ]; then
+ # kea-ctrl-agent was removed in 3.2.0; stop any running instance on upgrade
+ systemctl disable --now kea-ctrl-agent.service >/dev/null 2>&1 || :
fi
-%systemd_post kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service kea-ctrl-agent.service
+
+%post
+%systemd_post kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service
%preun
-%systemd_preun kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service kea-ctrl-agent.service
+%systemd_preun kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service
%postun
-%systemd_postun_with_restart kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service kea-ctrl-agent.service
+%systemd_postun_with_restart kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service
%ldconfig_scriptlets libs
%files
%license COPYING
%{_sbindir}/kea-admin
-%{_sbindir}/kea-ctrl-agent
%{_sbindir}/kea-dhcp-ddns
%{_sbindir}/kea-dhcp4
%{_sbindir}/kea-dhcp6
@@ -286,14 +258,12 @@ fi
%{_datarootdir}/kea
%dir %attr(0750,root,kea) %{_sysconfdir}/kea/
%config(noreplace) %attr(0640,root,kea) %{_sysconfdir}/kea/kea*.conf
-%ghost %config(noreplace,missingok) %attr(0640,root,kea) %verify(not md5 size mtime) %{_sysconfdir}/kea/kea-api-password
%dir %attr(0750,kea,kea) %{_sharedstatedir}/kea
%config(noreplace) %attr(0640,kea,kea) %{_sharedstatedir}/kea/kea-leases*.csv
%dir %attr(0750,kea,kea) %{_rundir}/kea/
%dir %attr(0750,kea,kea) %{_localstatedir}/log/kea
%{python3_sitelib}/kea
%{_mandir}/man8/kea-admin.8*
-%{_mandir}/man8/kea-ctrl-agent.8*
%{_mandir}/man8/kea-dhcp-ddns.8*
%{_mandir}/man8/kea-dhcp4.8*
%{_mandir}/man8/kea-dhcp6.8*
@@ -377,33 +347,32 @@ fi
%files libs
%license COPYING
-# older: find `rpm --eval %%{_topdir}`/BUILDROOT/kea-*/usr/lib64/ -type f | grep /usr/lib64/libkea | sed -e 's#.*/usr/lib64\(.*\.so\.[0-9]\+\)\.[0-9]\+\.[0-9]\+#%%{_libdir}\1*#' | sort
-# >=f41: find `rpm --eval %%{_topdir}`/BUILD/kea-*/BUILDROOT/usr/lib64/ -type f | grep /usr/lib64/libkea | sed -e 's#.*/usr/lib64\(.*\.so\.[0-9]\+\)\.[0-9]\+\.[0-9]\+#%%{_libdir}\1*#' | sort
-%{_libdir}/libkea-asiodns.so.62*
-%{_libdir}/libkea-asiolink.so.88*
-%{_libdir}/libkea-cc.so.83*
+# find `rpm --eval %%{_topdir}`/BUILD/kea-*/BUILDROOT/usr/lib64/ -type f | grep /usr/lib64/libkea | sed -e 's#.*/usr/lib64\(.*\.so\.[0-9]\+\)\.[0-9]\+\.[0-9]\+#%%{_libdir}\1*#' | sort
+%{_libdir}/libkea-asiodns.so.75*
+%{_libdir}/libkea-asiolink.so.105*
+%{_libdir}/libkea-cc.so.98*
%{_libdir}/libkea-cfgrpt.so.3*
-%{_libdir}/libkea-config.so.84*
-%{_libdir}/libkea-cryptolink.so.64*
-%{_libdir}/libkea-d2srv.so.63*
-%{_libdir}/libkea-database.so.76*
-%{_libdir}/libkea-dhcp_ddns.so.68*
-%{_libdir}/libkea-dhcp.so.109*
-%{_libdir}/libkea-dhcpsrv.so.131*
-%{_libdir}/libkea-dns.so.71*
-%{_libdir}/libkea-eval.so.84*
-%{_libdir}/libkea-exceptions.so.45*
-%{_libdir}/libkea-hooks.so.121*
-%{_libdir}/libkea-http.so.87*
-%{_libdir}/libkea-log-interprocess.so.3*
-%{_libdir}/libkea-log.so.75*
-%{_libdir}/libkea-mysql.so.88*
-%{_libdir}/libkea-pgsql.so.88*
-%{_libdir}/libkea-process.so.91*
-%{_libdir}/libkea-stats.so.53*
-%{_libdir}/libkea-tcp.so.33*
+%{_libdir}/libkea-config.so.98*
+%{_libdir}/libkea-cryptolink.so.76*
+%{_libdir}/libkea-d2srv.so.75*
+%{_libdir}/libkea-database.so.88*
+%{_libdir}/libkea-dhcp_ddns.so.82*
+%{_libdir}/libkea-dhcp.so.129*
+%{_libdir}/libkea-dhcpsrv.so.149*
+%{_libdir}/libkea-dns.so.84*
+%{_libdir}/libkea-eval.so.97*
+%{_libdir}/libkea-exceptions.so.55*
+%{_libdir}/libkea-hooks.so.139*
+%{_libdir}/libkea-http.so.100*
+%{_libdir}/libkea-log-interprocess.so.4*
+%{_libdir}/libkea-log.so.86*
+%{_libdir}/libkea-mysql.so.106*
+%{_libdir}/libkea-pgsql.so.105*
+%{_libdir}/libkea-process.so.105*
+%{_libdir}/libkea-stats.so.64*
+%{_libdir}/libkea-tcp.so.45*
%{_libdir}/libkea-util-io.so.12*
-%{_libdir}/libkea-util.so.102*
+%{_libdir}/libkea-util.so.118*
%files keama
%license COPYING
diff --git a/sources b/sources
index 619062e..ab6f5e9 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,3 @@
-SHA512 (kea-3.0.3.tar.xz) = 38dff3a089b76d043c0bd1cc1bbf480b71b627d101954eb2d8200bce507dcd43e8a1cbdb5b55b7f425424a156ec56e36af52b6c591ecf6c80c29b58875b5b585
-SHA512 (kea-3.0.3.tar.xz.asc) = 8ca4af7417915cddf0b1746c5de1717e939baae19dc9a8a87196ac624ede379681881e5a863859b93e7fae778f7d767183d29519c8ad070d387d739d52b00f45
-SHA512 (keama-4.5.0.tar.gz) = 2e48987e21999718be7ceb5b604be672c84666b07dde9545285ff7146ab6825e81af1ec3b5a4b50f20e61b40ed11b0254e3705cc580bb85de24b77ee8cbca162
-SHA512 (keama-4.5.0.tar.gz.asc) = 8ec416e44e143037a6936682d1e11b96c1a48be05f3e747e7a26b190e1f11c75104ef16c23eda9b257433b8de5a73c081b65fd903b611d8faa9c4b3b47702763
+SHA512 (kea-3.2.0.tar.xz) = 67677a90f98704bca2b769cd1fededb384ba8d627fa2564c66f44a656d82a4de9ae9cd86071ec0d953e9291d82b009c63ceed56947daa5530d97ae83e66d0afe
+SHA512 (kea-3.2.0.tar.xz.asc) = eec8835aa59b7f244c13d56b4d7883129b65f0c9a13e520a05492f6118a34050a4436405e0885a811b6b7eecd6836b87c6194aa62add841a43c4ef3ea4beb70f
+SHA512 (keama-046ceef.tar.gz) = 4e9c51b6ab40a90fa6fe5bc44d69241257a9e3745328ac27015a9b9fac74988f8dda0a813c869fa9d426c934cc5df61e595e6a8c704932e56e4252a1b5b7d72c
reply other threads:[~2026-07-13 10:52 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178393997453.1.8470738092097149410.rpms-kea-1fc18be4274e@fedoraproject.org \
--to=mosvald@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox