kea: update to 2.6.2
authorRosen Penev <[email protected]>
Tue, 29 Apr 2025 22:37:55 +0000 (15:37 -0700)
committerTianling Shen <[email protected]>
Wed, 30 Apr 2025 06:52:07 +0000 (14:52 +0800)
Add upstream backport for compatibility with Boost 1.87

Signed-off-by: Rosen Penev <[email protected]>
net/kea/Makefile
net/kea/patches/020-boost-187.patch [new file with mode: 0644]

index 83147142ffd6ab93eee63a8eade6f85d22fffa39..4ff3762ed370f0d26ec1bc3f6eed709a510d2920 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kea
-PKG_VERSION:=2.6.0
+PKG_VERSION:=2.6.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://ftp.isc.org/isc/kea/$(PKG_VERSION)
-PKG_HASH:=207ceae33eb3b81ec4e6ac5605249a85b93779333b62aadf39e489f11dbcdc8d
+PKG_HASH:=8a50b63103734b59c3b8619ccd6766d2dfee3f02e3a5f9f3abc1cd55f70fa424
 
 PKG_MAINTAINER:=BangLang Huang <[email protected]>, Rosy Song <[email protected]>
 PKG_LICENSE:=MPL-2.0
diff --git a/net/kea/patches/020-boost-187.patch b/net/kea/patches/020-boost-187.patch
new file mode 100644 (file)
index 0000000..7402936
--- /dev/null
@@ -0,0 +1,176 @@
+From 81edc181f85395c39964104ef049a195bafb9737 Mon Sep 17 00:00:00 2001
+From: q66 <[email protected]>
+Date: Sun, 15 Dec 2024 03:04:53 +0100
+Subject: [PATCH] [#3696] Update asiolink for boost 1.87
+
+---
+ src/lib/asiolink/io_address.cc         |  4 ++--
+ src/lib/asiolink/io_service.cc         |  8 ++++----
+ src/lib/asiolink/tcp_endpoint.h        |  2 +-
+ src/lib/asiolink/udp_endpoint.h        |  2 +-
+ src/lib/asiolink/unix_domain_socket.cc | 16 ++++++++--------
+ src/lib/dhcp/iface_mgr.cc              |  2 +-
+ 6 files changed, 17 insertions(+), 17 deletions(-)
+
+--- a/src/lib/asiolink/io_address.cc
++++ b/src/lib/asiolink/io_address.cc
+@@ -37,7 +37,7 @@ IOAddress::Hash::operator()(const IOAddr
+ // because we'd like to throw our own exception on failure.
+ IOAddress::IOAddress(const std::string& address_str) {
+     boost::system::error_code err;
+-    asio_address_ = ip::address::from_string(address_str, err);
++    asio_address_ = ip::make_address(address_str, err);
+     if (err) {
+         isc_throw(IOError, "Failed to convert string to address '"
+                   << address_str << "': " << err.message());
+@@ -116,7 +116,7 @@ IOAddress::isV6Multicast() const {
+ uint32_t
+ IOAddress::toUint32() const {
+     if (asio_address_.is_v4()) {
+-        return (asio_address_.to_v4().to_ulong());
++        return (asio_address_.to_v4().to_uint());
+     } else {
+         isc_throw(BadValue, "Can't convert " << toText()
+                   << " address to IPv4.");
+--- a/src/lib/asiolink/io_service.cc
++++ b/src/lib/asiolink/io_service.cc
+@@ -30,7 +30,7 @@ public:
+     /// @brief The constructor.
+     IOServiceImpl() :
+         io_service_(),
+-        work_(new boost::asio::io_service::work(io_service_)) {
++        work_(boost::asio::make_work_guard(io_service_)) {
+     };
+     /// @brief The destructor.
+@@ -92,7 +92,7 @@ public:
+     /// @brief Restarts the IOService in preparation for a subsequent @ref run() invocation.
+     void restart() {
+-        io_service_.reset();
++        io_service_.restart();
+     }
+     /// @brief Removes IO service work object to let it finish running
+@@ -115,12 +115,12 @@ public:
+     ///
+     /// @param callback The callback to be run on the IO service.
+     void post(const std::function<void ()>& callback) {
+-        io_service_.post(callback);
++        boost::asio::post(io_service_, callback);
+     }
+ private:
+     boost::asio::io_service io_service_;
+-    boost::shared_ptr<boost::asio::io_service::work> work_;
++    boost::asio::executor_work_guard<boost::asio::io_service::executor_type> work_;
+ };
+ IOService::IOService() : io_impl_(new IOServiceImpl()) {
+--- a/src/lib/asiolink/tcp_endpoint.h
++++ b/src/lib/asiolink/tcp_endpoint.h
+@@ -42,7 +42,7 @@ public:
+     /// \param port The TCP port number of the endpoint.
+     TCPEndpoint(const IOAddress& address, const unsigned short port) :
+         asio_endpoint_placeholder_(
+-            new boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(address.toText()),
++            new boost::asio::ip::tcp::endpoint(boost::asio::ip::make_address(address.toText()),
+                               port)),
+         asio_endpoint_(*asio_endpoint_placeholder_)
+     {}
+--- a/src/lib/asiolink/udp_endpoint.h
++++ b/src/lib/asiolink/udp_endpoint.h
+@@ -42,7 +42,7 @@ public:
+     /// \param port The UDP port number of the endpoint.
+     UDPEndpoint(const IOAddress& address, const unsigned short port) :
+         asio_endpoint_placeholder_(
+-            new boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string(address.toText()),
++            new boost::asio::ip::udp::endpoint(boost::asio::ip::make_address(address.toText()),
+                               port)),
+         asio_endpoint_(*asio_endpoint_placeholder_)
+     {}
+--- a/src/lib/asiolink/unix_domain_socket.cc
++++ b/src/lib/asiolink/unix_domain_socket.cc
+@@ -83,7 +83,7 @@ public:
+     /// @param buffer Buffers holding the data to be sent.
+     /// @param handler User supplied callback to be invoked when data have
+     /// been sent or sending error is signalled.
+-    void doSend(const boost::asio::const_buffers_1& buffer,
++    void doSend(const boost::asio::const_buffer& buffer,
+                 const UnixDomainSocket::Handler& handler);
+@@ -103,7 +103,7 @@ public:
+     /// @param ec Error code returned as a result of sending the data.
+     /// @param length Length of the data sent.
+     void sendHandler(const UnixDomainSocket::Handler& remote_handler,
+-                     const boost::asio::const_buffers_1& buffer,
++                     const boost::asio::const_buffer& buffer,
+                      const boost::system::error_code& ec,
+                      size_t length);
+@@ -127,7 +127,7 @@ public:
+     /// @param buffer A buffer into which the data should be received.
+     /// @param handler User supplied callback invoked when data have been
+     /// received on an error is signalled.
+-    void doReceive(const boost::asio::mutable_buffers_1& buffer,
++    void doReceive(const boost::asio::mutable_buffer& buffer,
+                    const UnixDomainSocket::Handler& handler);
+     /// @brief Local handler invoked as a result of asynchronous receive.
+@@ -146,7 +146,7 @@ public:
+     /// @param ec Error code returned as a result of asynchronous receive.
+     /// @param length Size of the received data.
+     void receiveHandler(const UnixDomainSocket::Handler& remote_handler,
+-                        const boost::asio::mutable_buffers_1& buffer,
++                        const boost::asio::mutable_buffer& buffer,
+                         const boost::system::error_code& ec,
+                         size_t length);
+@@ -197,7 +197,7 @@ UnixDomainSocketImpl::asyncSend(const vo
+ }
+ void
+-UnixDomainSocketImpl::doSend(const boost::asio::const_buffers_1& buffer,
++UnixDomainSocketImpl::doSend(const boost::asio::const_buffer& buffer,
+                              const UnixDomainSocket::Handler& handler) {
+     auto local_handler = std::bind(&UnixDomainSocketImpl::sendHandler,
+                                    shared_from_this(),
+@@ -207,7 +207,7 @@ UnixDomainSocketImpl::doSend(const boost
+ void
+ UnixDomainSocketImpl::sendHandler(const UnixDomainSocket::Handler& remote_handler,
+-                                  const boost::asio::const_buffers_1& buffer,
++                                  const boost::asio::const_buffer& buffer,
+                                   const boost::system::error_code& ec,
+                                   size_t length) {
+     // The asynchronous send may return EWOULDBLOCK or EAGAIN on some
+@@ -230,7 +230,7 @@ UnixDomainSocketImpl::asyncReceive(void*
+ }
+ void
+-UnixDomainSocketImpl::doReceive(const boost::asio::mutable_buffers_1& buffer,
++UnixDomainSocketImpl::doReceive(const boost::asio::mutable_buffer& buffer,
+                                 const UnixDomainSocket::Handler& handler) {
+     auto local_handler = std::bind(&UnixDomainSocketImpl::receiveHandler,
+                                    shared_from_this(),
+@@ -240,7 +240,7 @@ UnixDomainSocketImpl::doReceive(const bo
+ void
+ UnixDomainSocketImpl::receiveHandler(const UnixDomainSocket::Handler& remote_handler,
+-                                     const boost::asio::mutable_buffers_1& buffer,
++                                     const boost::asio::mutable_buffer& buffer,
+                                      const boost::system::error_code& ec,
+                                      size_t length) {
+     // The asynchronous receive may return EWOULDBLOCK or EAGAIN on some
+--- a/src/lib/dhcp/iface_mgr.cc
++++ b/src/lib/dhcp/iface_mgr.cc
+@@ -1034,7 +1034,7 @@ IfaceMgr::getLocalAddress(const IOAddres
+     }
+     // Create socket that will be used to connect to remote endpoint.
+-    boost::asio::io_service io_service;
++    boost::asio::io_context io_service;
+     boost::asio::ip::udp::socket sock(io_service);
+     boost::system::error_code err_code;