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