git: af0648d7c66c - main - net/kea: Update to 2.6.3

From: Brad Davis <brd_at_FreeBSD.org>
Date: Thu, 29 May 2025 15:12:28 UTC
The branch main has been updated by brd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=af0648d7c66ca73aeca97977c90300f74bd3f361

commit af0648d7c66ca73aeca97977c90300f74bd3f361
Author:     Andrey Pevnev <apevnev@me.com>
AuthorDate: 2025-05-29 15:09:35 +0000
Commit:     Brad Davis <brd@FreeBSD.org>
CommitDate: 2025-05-29 15:09:35 +0000

    net/kea: Update to 2.6.3
    
    PR:             287120
    MFH:            2025Q2
    Security:       34744aab-3bf7-11f0-b81c-001b217e4ee5
---
 net/kea/Makefile                                   |  2 +-
 net/kea/distinfo                                   |  6 +-
 net/kea/files/patch-Makefile.am                    | 19 +++---
 .../files/patch-src_lib_asiolink_io__address.cc    | 20 ------
 .../files/patch-src_lib_asiolink_io__service.cc    | 35 ----------
 .../files/patch-src_lib_asiolink_tcp__endpoint.h   | 11 ----
 .../files/patch-src_lib_asiolink_udp__endpoint.h   | 11 ----
 .../patch-src_lib_asiolink_unix__domain__socket.cc | 74 ----------------------
 net/kea/files/patch-src_lib_dhcp_iface__mgr.cc     | 11 ----
 net/kea/files/patch-src_lib_dns_name.cc            | 57 -----------------
 net/kea/files/patch-src_lib_dns_name.h             | 11 ----
 net/kea/pkg-plist                                  | 53 ++++++++--------
 12 files changed, 42 insertions(+), 268 deletions(-)

diff --git a/net/kea/Makefile b/net/kea/Makefile
index 943e9581143f..80773ed1169d 100644
--- a/net/kea/Makefile
+++ b/net/kea/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	kea
-DISTVERSION=	2.6.2
+DISTVERSION=	2.6.3
 CATEGORIES=	net
 MASTER_SITES=	ISC/kea/${DISTVERSION}
 
diff --git a/net/kea/distinfo b/net/kea/distinfo
index 809a7ac17730..b06f6438ef8a 100644
--- a/net/kea/distinfo
+++ b/net/kea/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742998274
-SHA256 (kea-2.6.2.tar.gz) = 8a50b63103734b59c3b8619ccd6766d2dfee3f02e3a5f9f3abc1cd55f70fa424
-SIZE (kea-2.6.2.tar.gz) = 10474184
+TIMESTAMP = 1748454460
+SHA256 (kea-2.6.3.tar.gz) = 00241a5955ffd3d215a2c098c4527f9d7f4b203188b276f9a36250dd3d9dd612
+SIZE (kea-2.6.3.tar.gz) = 10498882
diff --git a/net/kea/files/patch-Makefile.am b/net/kea/files/patch-Makefile.am
index 77fc64848c9e..2ffd64ee99a7 100644
--- a/net/kea/files/patch-Makefile.am
+++ b/net/kea/files/patch-Makefile.am
@@ -1,10 +1,13 @@
---- Makefile.am.orig	2019-10-25 12:41:08 UTC
+--- Makefile.am.orig	2025-05-22 13:26:43 UTC
 +++ Makefile.am
-@@ -154,7 +154,6 @@ docs:
- # These steps are necessary during installation
- install-exec-hook:
- 	mkdir -p $(DESTDIR)${localstatedir}/log/
--	mkdir -p $(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}
- 	mkdir -p $(DESTDIR)${runstatedir}/${PACKAGE_NAME}
+@@ -176,10 +176,6 @@ install-exec-hook:
  
- EXTRA_DIST  = tools/path_replacer.sh
+ # These steps are necessary during installation. chmod is for reinstallation/upgrade.
+ install-exec-hook:
+-	mkdir -m 750 -p "$(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}"
+-	chmod 750 "$(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}"
+-	mkdir -m 750 -p "$(DESTDIR)${localstatedir}/log/${PACKAGE_NAME}"
+-	chmod 750 "$(DESTDIR)${localstatedir}/log/${PACKAGE_NAME}"
+ 	mkdir -m 750 -p "$(DESTDIR)${runstatedir}/${PACKAGE_NAME}"
+ 	chmod 750 "$(DESTDIR)${runstatedir}/${PACKAGE_NAME}"
+ 	mkdir -m 750 -p "$(DESTDIR)${sysconfdir}/${PACKAGE_NAME}"
diff --git a/net/kea/files/patch-src_lib_asiolink_io__address.cc b/net/kea/files/patch-src_lib_asiolink_io__address.cc
deleted file mode 100644
index a61e7460eebd..000000000000
--- a/net/kea/files/patch-src_lib_asiolink_io__address.cc
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/lib/asiolink/io_address.cc.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/asiolink/io_address.cc
-@@ -37,7 +37,7 @@ IOAddress::IOAddress(const std::string& address_str) {
- // 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::toUint32() 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.");
diff --git a/net/kea/files/patch-src_lib_asiolink_io__service.cc b/net/kea/files/patch-src_lib_asiolink_io__service.cc
deleted file mode 100644
index 21e451eb0648..000000000000
--- a/net/kea/files/patch-src_lib_asiolink_io__service.cc
+++ /dev/null
@@ -1,35 +0,0 @@
---- src/lib/asiolink/io_service.cc.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/asiolink/io_service.cc
-@@ -30,7 +30,7 @@ class IOServiceImpl { (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 @@ class IOServiceImpl { (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 @@ class IOServiceImpl { (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()) {
diff --git a/net/kea/files/patch-src_lib_asiolink_tcp__endpoint.h b/net/kea/files/patch-src_lib_asiolink_tcp__endpoint.h
deleted file mode 100644
index c2c0d7d80442..000000000000
--- a/net/kea/files/patch-src_lib_asiolink_tcp__endpoint.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/asiolink/tcp_endpoint.h.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/asiolink/tcp_endpoint.h
-@@ -42,7 +42,7 @@ class TCPEndpoint : public IOEndpoint { (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_)
-     {}
diff --git a/net/kea/files/patch-src_lib_asiolink_udp__endpoint.h b/net/kea/files/patch-src_lib_asiolink_udp__endpoint.h
deleted file mode 100644
index c528b76f5ce1..000000000000
--- a/net/kea/files/patch-src_lib_asiolink_udp__endpoint.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/asiolink/udp_endpoint.h.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/asiolink/udp_endpoint.h
-@@ -42,7 +42,7 @@ class UDPEndpoint : public IOEndpoint { (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_)
-     {}
diff --git a/net/kea/files/patch-src_lib_asiolink_unix__domain__socket.cc b/net/kea/files/patch-src_lib_asiolink_unix__domain__socket.cc
deleted file mode 100644
index b540cacb5890..000000000000
--- a/net/kea/files/patch-src_lib_asiolink_unix__domain__socket.cc
+++ /dev/null
@@ -1,74 +0,0 @@
---- src/lib/asiolink/unix_domain_socket.cc.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/asiolink/unix_domain_socket.cc
-@@ -83,7 +83,7 @@ class UnixDomainSocketImpl : public boost::enable_shar
-     /// @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 @@ class UnixDomainSocketImpl : public boost::enable_shar
-     /// @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 @@ class UnixDomainSocketImpl : public boost::enable_shar
-     /// @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 @@ class UnixDomainSocketImpl : public boost::enable_shar
-     /// @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 @@ void
- }
- 
- 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::sendHandler(const UnixDomainSock
- 
- 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 @@ 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::receiveHandler(const UnixDomainS
- 
- 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
diff --git a/net/kea/files/patch-src_lib_dhcp_iface__mgr.cc b/net/kea/files/patch-src_lib_dhcp_iface__mgr.cc
deleted file mode 100644
index e0347d0cb59e..000000000000
--- a/net/kea/files/patch-src_lib_dhcp_iface__mgr.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/dhcp/iface_mgr.cc.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/dhcp/iface_mgr.cc
-@@ -1034,7 +1034,7 @@ IfaceMgr::getLocalAddress(const IOAddress& remote_addr
-     }
- 
-     // 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;
diff --git a/net/kea/files/patch-src_lib_dns_name.cc b/net/kea/files/patch-src_lib_dns_name.cc
deleted file mode 100644
index a22b2eb3998c..000000000000
--- a/net/kea/files/patch-src_lib_dns_name.cc
+++ /dev/null
@@ -1,57 +0,0 @@
---- src/lib/dns/name.cc.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/dns/name.cc
-@@ -303,7 +303,7 @@ Name::Name(const std::string &namestring, bool downcas
-     // And get the output
-     labelcount_ = offsets.size();
-     isc_throw_assert(labelcount_ > 0 && labelcount_ <= Name::MAX_LABELS);
--    ndata_.assign(ndata.data(), ndata.size());
-+    ndata_.assign(ndata.data(), ndata.data() + ndata.size());
-     length_ = ndata_.size();
-     offsets_.assign(offsets.begin(), offsets.end());
- }
-@@ -336,7 +336,7 @@ Name::Name(const char* namedata, size_t data_len, cons
-     // Get the output
-     labelcount_ = offsets.size();
-     isc_throw_assert(labelcount_ > 0 && labelcount_ <= Name::MAX_LABELS);
--    ndata_.assign(ndata.data(), ndata.size());
-+    ndata_.assign(ndata.data(), ndata.data() + ndata.size());
-     length_ = ndata_.size();
-     offsets_.assign(offsets.begin(), offsets.end());
- 
-@@ -347,7 +347,7 @@ Name::Name(const char* namedata, size_t data_len, cons
-         // Drop the last character of the data (the \0) and append a copy of
-         // the origin's data
-         ndata_.erase(ndata_.end() - 1);
--        ndata_.append(origin->ndata_);
-+        ndata_.insert(ndata_.end(), origin->ndata_.begin(), origin->ndata_.end());
- 
-         // Do a similar thing with offsets. However, we need to move them
-         // so they point after the prefix we parsed before.
-@@ -582,7 +582,7 @@ Name::concatenate(const Name& suffix) const {
- 
-     Name retname;
-     retname.ndata_.reserve(length);
--    retname.ndata_.assign(ndata_, 0, length_ - 1);
-+    retname.ndata_.assign(ndata_.data(), ndata_.data() + length_ - 1);
-     retname.ndata_.insert(retname.ndata_.end(),
-                           suffix.ndata_.begin(), suffix.ndata_.end());
-     isc_throw_assert(retname.ndata_.size() == length);
-@@ -622,7 +622,7 @@ Name::reverse() const {
-     NameString::const_iterator n0 = ndata_.begin();
-     retname.offsets_.push_back(0);
-     while (rit1 != offsets_.rend()) {
--        retname.ndata_.append(n0 + *rit1, n0 + *rit0);
-+        retname.ndata_.insert(retname.ndata_.end(), n0 + *rit1, n0 + *rit0);
-         retname.offsets_.push_back(retname.ndata_.size());
-         ++rit0;
-         ++rit1;
-@@ -662,7 +662,8 @@ Name::split(const unsigned int first, const unsigned i
-     // original name, and append the trailing dot explicitly.
-     //
-     retname.ndata_.reserve(retname.offsets_.back() + 1);
--    retname.ndata_.assign(ndata_, offsets_[first], retname.offsets_.back());
-+    auto it = ndata_.data() + offsets_[first];
-+    retname.ndata_.assign(it, it + retname.offsets_.back());
-     retname.ndata_.push_back(0);
- 
-     retname.length_ = retname.ndata_.size();
diff --git a/net/kea/files/patch-src_lib_dns_name.h b/net/kea/files/patch-src_lib_dns_name.h
deleted file mode 100644
index e83fde6a960d..000000000000
--- a/net/kea/files/patch-src_lib_dns_name.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/dns/name.h.orig	2024-07-25 08:50:58 UTC
-+++ src/lib/dns/name.h
-@@ -228,7 +228,7 @@ class Name { (private)
-     //@{
- private:
-     /// \brief Name data string
--    typedef std::basic_string<uint8_t> NameString;
-+    typedef std::vector<uint8_t> NameString;
-     /// \brief Name offsets type
-     typedef std::vector<uint8_t> NameOffsets;
- 
diff --git a/net/kea/pkg-plist b/net/kea/pkg-plist
index 8accfc85cb20..a60605888d82 100644
--- a/net/kea/pkg-plist
+++ b/net/kea/pkg-plist
@@ -63,6 +63,7 @@ include/kea/config/config_log.h
 include/kea/config/config_messages.h
 include/kea/config/hooked_command_mgr.h
 include/kea/config/timeouts.h
+include/kea/config/unix_command_config.h
 include/kea/config_backend/base_config_backend.h
 include/kea/config_backend/base_config_backend_mgr.h
 include/kea/config_backend/base_config_backend_pool.h
@@ -454,48 +455,48 @@ lib/kea/hooks/libdhcp_stat_cmds.a
 lib/kea/hooks/libdhcp_stat_cmds.so
 lib/libkea-asiodns.a
 lib/libkea-asiodns.so
-lib/libkea-asiodns.so.48
-lib/libkea-asiodns.so.48.0.0
+lib/libkea-asiodns.so.49
+lib/libkea-asiodns.so.49.0.0
 lib/libkea-asiolink.a
 lib/libkea-asiolink.so
-lib/libkea-asiolink.so.71
-lib/libkea-asiolink.so.71.0.0
+lib/libkea-asiolink.so.72
+lib/libkea-asiolink.so.72.0.0
 lib/libkea-cc.a
 lib/libkea-cc.so
 lib/libkea-cc.so.68
 lib/libkea-cc.so.68.0.0
 lib/libkea-cfgclient.a
 lib/libkea-cfgclient.so
-lib/libkea-cfgclient.so.65
-lib/libkea-cfgclient.so.65.0.0
+lib/libkea-cfgclient.so.66
+lib/libkea-cfgclient.so.66.0.0
 lib/libkea-cryptolink.a
 lib/libkea-cryptolink.so
 lib/libkea-cryptolink.so.50
 lib/libkea-cryptolink.so.50.0.0
 lib/libkea-d2srv.a
 lib/libkea-d2srv.so
-lib/libkea-d2srv.so.46
-lib/libkea-d2srv.so.46.0.0
+lib/libkea-d2srv.so.47
+lib/libkea-d2srv.so.47.0.0
 lib/libkea-database.a
 lib/libkea-database.so
 lib/libkea-database.so.62
 lib/libkea-database.so.62.0.0
 lib/libkea-dhcp++.a
 lib/libkea-dhcp++.so
-lib/libkea-dhcp++.so.91
-lib/libkea-dhcp++.so.91.0.0
+lib/libkea-dhcp++.so.92
+lib/libkea-dhcp++.so.92.0.0
 lib/libkea-dhcp_ddns.a
 lib/libkea-dhcp_ddns.so
-lib/libkea-dhcp_ddns.so.56
-lib/libkea-dhcp_ddns.so.56.0.0
+lib/libkea-dhcp_ddns.so.57
+lib/libkea-dhcp_ddns.so.57.0.0
 lib/libkea-dhcpsrv.a
 lib/libkea-dhcpsrv.so
-lib/libkea-dhcpsrv.so.110
-lib/libkea-dhcpsrv.so.110.0.0
+lib/libkea-dhcpsrv.so.111
+lib/libkea-dhcpsrv.so.111.0.0
 lib/libkea-dns++.a
 lib/libkea-dns++.so
-lib/libkea-dns++.so.56
-lib/libkea-dns++.so.56.0.0
+lib/libkea-dns++.so.57
+lib/libkea-dns++.so.57.0.0
 lib/libkea-eval.a
 lib/libkea-eval.so
 lib/libkea-eval.so.69
@@ -506,12 +507,12 @@ lib/libkea-exceptions.so.33
 lib/libkea-exceptions.so.33.0.0
 lib/libkea-hooks.a
 lib/libkea-hooks.so
-lib/libkea-hooks.so.99
-lib/libkea-hooks.so.99.0.0
+lib/libkea-hooks.so.100
+lib/libkea-hooks.so.100.0.0
 lib/libkea-http.a
 lib/libkea-http.so
-lib/libkea-http.so.71
-lib/libkea-http.so.71.0.0
+lib/libkea-http.so.72
+lib/libkea-http.so.72.0.0
 lib/libkea-log.a
 lib/libkea-log.so
 lib/libkea-log.so.61
@@ -526,24 +527,24 @@ lib/libkea-log.so.61.0.0
 %%PGSQL%%lib/libkea-pgsql.so.71.0.0
 lib/libkea-process.a
 lib/libkea-process.so
-lib/libkea-process.so.73
-lib/libkea-process.so.73.0.0
+lib/libkea-process.so.74
+lib/libkea-process.so.74.0.0
 lib/libkea-stats.a
 lib/libkea-stats.so
 lib/libkea-stats.so.41
 lib/libkea-stats.so.41.0.0
 lib/libkea-tcp.a
 lib/libkea-tcp.so
-lib/libkea-tcp.so.18
-lib/libkea-tcp.so.18.0.0
+lib/libkea-tcp.so.19
+lib/libkea-tcp.so.19.0.0
 lib/libkea-util-io.a
 lib/libkea-util-io.so
 lib/libkea-util-io.so.0
 lib/libkea-util-io.so.0.0.1
 lib/libkea-util.a
 lib/libkea-util.so
-lib/libkea-util.so.85
-lib/libkea-util.so.85.0.0
+lib/libkea-util.so.86
+lib/libkea-util.so.86.0.0
 %%SHELL%%%%PYTHON_SITELIBDIR%%/kea/__pycache__/kea_conn%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%SHELL%%%%PYTHON_SITELIBDIR%%/kea/__pycache__/kea_conn%%PYTHON_EXT_SUFFIX%%.opt-2.pyc
 %%SHELL%%%%PYTHON_SITELIBDIR%%/kea/__pycache__/kea_conn%%PYTHON_EXT_SUFFIX%%.pyc