summaryrefslogtreecommitdiff
path: root/dev-libs
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/Manifest.gzbin97703 -> 97688 bytes
-rw-r--r--dev-libs/libdnet/Manifest8
-rw-r--r--dev-libs/libdnet/files/libdnet-1.14-ndisc.patch796
-rw-r--r--dev-libs/libdnet/files/libdnet-1.14-strlcpy.patch10
-rw-r--r--dev-libs/libdnet/libdnet-1.14-r2.ebuild84
-rw-r--r--dev-libs/libdnet/libdnet-1.16.1.ebuild79
-rw-r--r--dev-libs/libdnet/libdnet-1.16.2.ebuild12
-rw-r--r--dev-libs/libmodbus/Manifest2
-rw-r--r--dev-libs/libmodbus/libmodbus-3.1.10.ebuild4
-rw-r--r--dev-libs/librdkafka/Manifest2
-rw-r--r--dev-libs/librdkafka/files/librdkafka-2.2.0-backport-pr4449.patch285
-rw-r--r--dev-libs/librdkafka/librdkafka-2.2.0-r1.ebuild110
-rw-r--r--dev-libs/libretls/Manifest2
-rw-r--r--dev-libs/libretls/libretls-3.8.1.ebuild4
-rw-r--r--dev-libs/qr-code-generator/Manifest2
-rw-r--r--dev-libs/qr-code-generator/qr-code-generator-1.8.0.ebuild4
-rw-r--r--dev-libs/skalibs/Manifest2
-rw-r--r--dev-libs/skalibs/skalibs-2.14.0.1.ebuild4
-rw-r--r--dev-libs/spdlog/Manifest4
-rw-r--r--dev-libs/spdlog/spdlog-1.12.0-r2.ebuild2
-rw-r--r--dev-libs/spdlog/spdlog-1.13.0.ebuild54
-rw-r--r--dev-libs/vala-common/Manifest2
-rw-r--r--dev-libs/vala-common/vala-common-0.56.14.ebuild4
23 files changed, 476 insertions, 1000 deletions
diff --git a/dev-libs/Manifest.gz b/dev-libs/Manifest.gz
index 181588af2d2a..e7217ef505c2 100644
--- a/dev-libs/Manifest.gz
+++ b/dev-libs/Manifest.gz
Binary files differ
diff --git a/dev-libs/libdnet/Manifest b/dev-libs/libdnet/Manifest
index 7f58d0627a13..d3c27a67fdbe 100644
--- a/dev-libs/libdnet/Manifest
+++ b/dev-libs/libdnet/Manifest
@@ -1,13 +1,7 @@
-AUX libdnet-1.14-ndisc.patch 18209 BLAKE2B a295d81c247f884293efdf8d4740e2a4fd80c9febd8a5eed02db725151f886ad32e3a52ee7a62cabd31c0a218b23a9acf7d9c52b48c0d9aa597524886e38cfc4 SHA512 6da36c0f421b58819410df9507a973199fcafebb6447765c5de97fde6bdb16607f32dcb8b86da4216656c4d4ad4d21e153f15906a400249a7d44766d0539ecfb
-AUX libdnet-1.14-strlcpy.patch 233 BLAKE2B fb35015b16a206e55cbc1dc39c032dd43f74cc17e173252227707bef616df827c0ce0d7a7e4349ebc442a9198ee8953c45739b03b306ddc2af2753e31a15ebbd SHA512 8cabaf75382537755d79b588b629978d47a4b8e7c4bda22d7098bba09b5b1fec8dabeacb1727a821df2d29040a3e420803ebfdc66df5824630fae8da1059d164
-DIST libdnet-1.14.tar.gz 520833 BLAKE2B 97e241fc374fc9489e70d440db5e19199f4e653650af85e24af56bbbc0167db1c451349c43fcb630a26c61f8ca15c58f5c879e0d82654e275189ca3e140bb22a SHA512 ce8d95228f5175e4d9a8ff71bb99eb1ccc3ccd599a85dd07adbfd9842fc54066235d362c8060828fb3ba8129d0e1e8e071e93d60d69c6d03be310c80e61cea93
-DIST libdnet-1.16.1.tar.gz 666619 BLAKE2B 74472af1bc97c4771909e926eb9b27193c50d665036672fc89ff21159408daeef090e682c5e76e19f31d04e802fb73edf01d1aa057b543568f534d31f8db375b SHA512 9c6899b42502f3892463f1ec694934cc3b02831222fa15b5a899868229366ed4e9cc728ea2c70ec857ee9d676d763b1e390f6878a597a33f7d1cd5a7bd870586
DIST libdnet-1.16.2.tar.gz 675191 BLAKE2B 04e4533dbe45700decec4755c7db608d0ca68be05431bf44e6984b2c6a4aec55888fc0f0159916c8ac4a60ec5f743047d2a0a541786cd13fda61739bd7eef0fb SHA512 4b1902553a57eeb56952968e15be032de92d8106dc6e0ebf8e10470605c9c2ed69cb015f4057a5c119d01509c6795fc0dcda85a311d14124dddefdeb6223f848
DIST libdnet-1.16.4.tar.gz 684358 BLAKE2B 40be891c9004288329aaee0c79a29ebf0f095dfaaca4da98fd5ecfd759e22b8d10dc6b906200db1ac5b0a8cfbbea8fbe509da393e60cddeb5f875ad179cdc67a SHA512 6c5556e365047afcc5da3f76b1c99aa70723c076a7cf75c03d96a661a583dfa6d0ab605076e68efffe5ddca2d69875e4bc4938e0874b8aa24915fcfbfe3f3ff9
DIST libdnet-1.17.0.tar.gz 684645 BLAKE2B b208cb41201145411b1949531cb1ab27b4edc6026b8ca703c24231fdb021f46bfe922eb1da11090c271f439339f5384c93168fad3130ed2f89b3d2eca5c7f89f SHA512 b207b2f61e3759a2b17827eabf37b0eb68cb9fa27418f99ee4efd754b01dfe8504dff465664b14054d54df334195d43963d142c7104dc603b2b8b1491590d2a7
-EBUILD libdnet-1.14-r2.ebuild 1556 BLAKE2B c549d9c5e392f2f15df9c2c2bcc474f2c408a3236743a19432b519cb7208574684c7d63947d037d1aba8412ef84497381d52e48edd869268046aa0ac26ad939b SHA512 0e45ffea4a32f5c105882f74c2234642dffbe2401ba4c8ac1d123cd201d7ce26476f4d7fe0024aed7aa97e33d75fed4d919d35460dc5ca8bdb4d05f55f279989
-EBUILD libdnet-1.16.1.ebuild 1553 BLAKE2B dbcf406178927cd3a534870b65410c43c7ac596635bc4892acd95d8791c63623024afc2775a2c8b3dfb72489e62678a68b3e26ade7c9616a3ae7f7c89321a96d SHA512 289bced20031cd4a2098848af0681a723f59154b0ada4fc123dfd2c0379f341f35734e217d45321c5f36790efc5a0127e2c90f69151bd0f2d5d0651f06d397cc
-EBUILD libdnet-1.16.2.ebuild 1553 BLAKE2B d5a9091bffff2432a91da5835f4c8bd2d84622ec7a89de2c44befebde0f82db4bbe9f1ddb6c6b41088053793f540982874b6929e24ef0a70ac159d456518cc27 SHA512 38b7ff68ef2790c0dd3fb6e3700bf79313371e9587e0244a13a2ebed27c1bac1f0da9bc86b3ae5402c30b2f94bce5a229ec2d336a9c3108a4410e13bd0d0a9c2
+EBUILD libdnet-1.16.2.ebuild 1487 BLAKE2B 4d64d85c38a042642cfa408c8efde1959a291c6e11cd87c8030e258f4196c52d5bdc21017b6b554609c52e977e3f619e55fe1e32505374b64e5634e0f7c43b02 SHA512 a0fa5cd49edb6cecc2ae4f8ca5fd3018cde8d926bedfc8dac40b8598d9b1ca269d9ed28ae0d9c69ad411aa3a0d9f2e20954acfe04a872f7bacd3b4b6209b1d01
EBUILD libdnet-1.16.4.ebuild 1656 BLAKE2B ae80580d5bc7356f15656301952d32ab8cb378c6c04f34bfa48322140dfa815c6f5f2f9de9148b8c1576c00e041807b322b4e20155f6c8d9fa0771de80da2c13 SHA512 d1c6d190c359f12bdeb25440f89c32d29145da43d3de90900db79670420067fce15eccfaaef9d7dd5a17d24f3dedcbb8b8ab5ff0d5c89a1d46af48eef03657ee
EBUILD libdnet-1.17.0.ebuild 1694 BLAKE2B 28220e61da04de8acdb0b9ccf8b9639877e46ba9cdb2b931dbedc83f78dae485fd9c7df60556922df06de37c83bdefeea614ceb8314906ebe2f4796a2229c2c3 SHA512 0c5f36eb0445327af59cf4296c06f37ab3f49702458a3d0e4706c898f67e3cde690309cf113f2c1a87e101c6d21792d8459e21ce616b282011ccc4a137df81ba
MISC metadata.xml 413 BLAKE2B 91e8ea8dfe7585b6bcce394bc63e466cd7094b8b12ecb4f6b03303b37575387250f81c85a3be03cf8b36cbe10ef724794c86afec5decb5f042d0cde5db2bfdc6 SHA512 af7f752fa0811cb6e57b2398a86f5c57bbc0af1e3392ff3c26af27568ae3ed5232f765558f5e3b01cb6a6e3debfe2b0b893fc2c3598776d94eb6318744ca6fce
diff --git a/dev-libs/libdnet/files/libdnet-1.14-ndisc.patch b/dev-libs/libdnet/files/libdnet-1.14-ndisc.patch
deleted file mode 100644
index 439ffb7cb927..000000000000
--- a/dev-libs/libdnet/files/libdnet-1.14-ndisc.patch
+++ /dev/null
@@ -1,796 +0,0 @@
-From 1c324828f4c6c64c9340f169bc059152dba1f998 Mon Sep 17 00:00:00 2001
-From: Stas Grabois <finpushack@gmail.com>
-Date: Sat, 5 Sep 2020 13:15:32 +0300
-Subject: [PATCH] IPv6 support
-
----
- configure | 20 ++++
- configure.ac | 7 ++
- include/dnet.h | 1 +
- include/dnet/Makefile.am | 2 +-
- include/dnet/Makefile.in | 2 +-
- include/dnet/ip6.h | 3 +
- include/dnet/ndisc.h | 35 +++++++
- include/dnet/route.h | 3 +
- src/Makefile.in | 2 +-
- src/intf.c | 101 +++++++++++++-------
- src/ip6.c | 56 +++++++++++
- src/ndisc-linux.c | 197 +++++++++++++++++++++++++++++++++++++++
- src/ndisc-none.c | 55 +++++++++++
- src/route-linux.c | 95 ++++++++++++++++++-
- 14 files changed, 541 insertions(+), 38 deletions(-)
- create mode 100644 include/dnet/ndisc.h
- create mode 100644 src/ndisc-linux.c
- create mode 100644 src/ndisc-none.c
-
---- a/configure
-+++ b/configure
-@@ -22025,6 +22025,26 @@
-
- fi
-
-+if test "$ac_cv_dnet_linux_procfs" = yes ; then
-+ case $LIBOBJS in
-+ "ndisc-linux.$ac_objext" | \
-+ *" ndisc-linux.$ac_objext" | \
-+ "ndisc-linux.$ac_objext "* | \
-+ *" ndisc-linux.$ac_objext "* ) ;;
-+ *) LIBOBJS="$LIBOBJS ndisc-linux.$ac_objext" ;;
-+esac
-+
-+else
-+ case $LIBOBJS in
-+ "ndisc-none.$ac_objext" | \
-+ *" ndisc-none.$ac_objext" | \
-+ "ndisc-none.$ac_objext "* | \
-+ *" ndisc-none.$ac_objext "* ) ;;
-+ *) LIBOBJS="$LIBOBJS ndisc-none.$ac_objext" ;;
-+esac
-+
-+fi
-+
- if test "$ac_cv_header_linux_if_tun_h" = yes ; then
- case $LIBOBJS in
- "tun-linux.$ac_objext" | \
---- a/configure.ac
-+++ b/configure.ac
-@@ -303,6 +303,13 @@
- AC_LIBOBJ([route-none])
- fi
-
-+dnl Check for ndisc interface.
-+if test "$ac_cv_dnet_linux_procfs" = yes ; then
-+ AC_LIBOBJ([ndisc-linux])
-+else
-+ AC_LIBOBJ([ndisc-none])
-+fi
-+
- dnl Check for tun interface.
- if test "$ac_cv_header_linux_if_tun_h" = yes ; then
- AC_LIBOBJ([tun-linux])
---- a/include/dnet.h
-+++ b/include/dnet.h
-@@ -16,6 +16,7 @@
- #include <dnet/ip6.h>
- #include <dnet/addr.h>
- #include <dnet/arp.h>
-+#include <dnet/ndisc.h>
- #include <dnet/icmp.h>
- #include <dnet/tcp.h>
- #include <dnet/udp.h>
---- a/include/dnet/Makefile.am
-+++ b/include/dnet/Makefile.am
-@@ -5,4 +5,4 @@
- dnetincludedir = $(includedir)/dnet
-
- dnetinclude_HEADERS = addr.h arp.h blob.h eth.h fw.h icmp.h intf.h ip.h \
-- ip6.h os.h rand.h route.h tcp.h tun.h udp.h sctp.h
-+ ip6.h os.h rand.h route.h tcp.h tun.h udp.h sctp.h ndisc.h
---- a/include/dnet/Makefile.in
-+++ b/include/dnet/Makefile.in
-@@ -106,7 +106,7 @@
- dnetincludedir = $(includedir)/dnet
-
- dnetinclude_HEADERS = addr.h arp.h blob.h eth.h fw.h icmp.h intf.h ip.h \
-- ip6.h os.h rand.h route.h tcp.h tun.h udp.h sctp.h
-+ ip6.h os.h rand.h route.h tcp.h tun.h udp.h sctp.h ndisc.h
-
- subdir = include/dnet
- mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
---- a/include/dnet/ip6.h
-+++ b/include/dnet/ip6.h
-@@ -179,6 +179,9 @@
- char *ip6_ntoa(const ip6_addr_t *ip6);
- #define ip6_aton ip6_pton
-
-+ssize_t ip6_add_option(void *buf, size_t len,
-+ int proto, const void *optbuf, size_t optlen);
-+
- void ip6_checksum(void *buf, size_t len);
- __END_DECLS
-
-new file mode 100644
---- a//dev/null
-+++ b/include/dnet/ndisc.h
-@@ -0,0 +1,35 @@
-+/*
-+ * ndisc.c
-+ *
-+ * Kernel arp/ndisc table operations.
-+ *
-+ * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
-+ *
-+ */
-+
-+#ifndef DNET_NDISC_H
-+#define DNET_NDISC_H
-+
-+/*
-+ * NDISC cache entry
-+ */
-+struct ndisc_entry {
-+ int intf_index;
-+ struct addr ndisc_pa; /* protocol address */
-+ struct addr ndisc_ha; /* hardware address */
-+};
-+
-+typedef struct ndisc_handle ndisc_t;
-+
-+typedef int (*ndisc_handler)(const struct ndisc_entry *entry, void *arg);
-+
-+__BEGIN_DECLS
-+ndisc_t *ndisc_open(void);
-+int ndisc_add(ndisc_t *n, const struct ndisc_entry *entry);
-+int ndisc_delete(ndisc_t *n, const struct ndisc_entry *entry);
-+int ndisc_get(ndisc_t *n, struct ndisc_entry *entry);
-+int ndisc_loop(ndisc_t *n, ndisc_handler callback, void *arg);
-+ndisc_t *ndisc_close(ndisc_t *r);
-+__END_DECLS
-+
-+#endif /* DNET_NDISC_H */
---- a/include/dnet/route.h
-+++ b/include/dnet/route.h
-@@ -26,7 +26,10 @@
- __BEGIN_DECLS
- route_t *route_open(void);
- int route_add(route_t *r, const struct route_entry *entry);
-+int route_add_dev(route_t *r, const struct route_entry *entry, const char* dev);
-+int route6_add(route_t *r, const struct route_entry *entry, int intf_index);
- int route_delete(route_t *r, const struct route_entry *entry);
-+int route6_delete(route_t *r, const struct route_entry *entry, int intf_index);
- int route_get(route_t *r, struct route_entry *entry);
- int route_loop(route_t *r, route_handler callback, void *arg);
- route_t *route_close(route_t *r);
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -144,7 +144,7 @@
- intf-win32.c intf.c ip-cooked.c ip-win32.c ip.c memcmp.c \
- route-bsd.c route-hpux.c route-linux.c route-none.c \
- route-win32.c strlcat.c strlcpy.c strsep.c tun-bsd.c \
-- tun-linux.c tun-none.c tun-solaris.c
-+ tun-linux.c tun-none.c tun-solaris.c ndisc-linux.c ndisc-none.c
- SOURCES = $(libdnet_la_SOURCES)
-
- all: all-am
---- a/src/intf.c
-+++ b/src/intf.c
-@@ -20,6 +20,9 @@
- # define IP_MULTICAST
- #endif
- #include <net/if.h>
-+#ifdef HAVE_NET_IF_DL_H
-+# include <net/if_dl.h>
-+#endif
- #ifdef HAVE_NET_IF_VAR_H
- # include <net/if_var.h>
- #endif
-@@ -79,6 +82,21 @@
- u_char ifcbuf[4192];
- };
-
-+/* TODO: move to .h */
-+union sockunion {
-+#ifdef HAVE_NET_IF_DL_H
-+ struct sockaddr_dl sdl;
-+#endif
-+ struct sockaddr_in sin;
-+#ifdef HAVE_SOCKADDR_IN6
-+ struct sockaddr_in6 sin6;
-+#endif
-+ struct sockaddr sa;
-+#ifdef AF_RAW
-+ struct sockaddr_raw sr;
-+#endif
-+};
-+
- static int
- intf_flags_to_iff(u_short flags, int iff)
- {
-@@ -129,14 +147,10 @@
-
- setsockopt(intf->fd, SOL_SOCKET, SO_BROADCAST,
- (const char *) &one, sizeof(one));
--#ifdef SIOCGIFNETMASK_IN6
- if ((intf->fd6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
--# ifdef EPROTONOSUPPORT
- if (errno != EPROTONOSUPPORT)
--# endif
- return (intf_close(intf));
- }
--#endif
- }
- return (intf);
- }
-@@ -586,34 +600,50 @@
- return (_intf_get_aliases(intf, entry));
- }
-
-+static int
-+get_max_bits(const struct addr *a)
-+{
-+ if (a->addr_type == ADDR_TYPE_IP) {
-+ return IP_ADDR_BITS;
-+ } else if (a->addr_type == ADDR_TYPE_IP6) {
-+ return IP6_ADDR_BITS;
-+ } else {
-+ return 0;
-+ }
-+}
-+
- static int
- _match_intf_src(const struct intf_entry *entry, void *arg)
- {
-- int matched = 0;
-- int cnt;
- struct intf_entry *save = (struct intf_entry *)arg;
--
-- if (entry->intf_addr.addr_type == ADDR_TYPE_IP &&
-- entry->intf_addr.addr_ip == save->intf_addr.addr_ip) {
-- matched = 1;
-- } else {
-- for (cnt = 0; !matched && cnt < (int) entry->intf_alias_num; cnt++) {
-- if (entry->intf_alias_addrs[cnt].addr_type != ADDR_TYPE_IP)
-- continue;
-- if (entry->intf_alias_addrs[cnt].addr_ip == save->intf_addr.addr_ip)
-- matched = 1;
-- }
-+ int len = save->intf_len < entry->intf_len ? save->intf_len : entry->intf_len;
-+ int i;
-+
-+ struct addr a, saved_addr;
-+
-+ saved_addr = save->intf_addr;
-+ saved_addr.addr_bits = get_max_bits(&saved_addr);
-+
-+ a = entry->intf_addr;
-+ a.addr_bits = get_max_bits(&a);
-+
-+ if (addr_cmp(&a, &saved_addr) == 0) {
-+ memcpy(save, entry, len);
-+ return 1;
- }
-
-- if (matched) {
-- /* XXX - truncated result if entry is too small. */
-- if (save->intf_len < entry->intf_len)
-- memcpy(save, entry, save->intf_len);
-- else
-- memcpy(save, entry, entry->intf_len);
-- return (1);
-+ for (i = 0; i < (int)entry->intf_alias_num; i++) {
-+ a = entry->intf_alias_addrs[i];
-+ a.addr_bits = get_max_bits(&a);
-+
-+ if (addr_cmp(&a, &saved_addr) == 0) {
-+ memcpy(save, entry, len);
-+ save->intf_addr = entry->intf_alias_addrs[i];
-+ return 1;
-+ }
- }
-- return (0);
-+
-+ return 0;
- }
-
- int
-@@ -631,24 +661,27 @@
- int
- intf_get_dst(intf_t *intf, struct intf_entry *entry, struct addr *dst)
- {
-- struct sockaddr_in sin;
-+ union sockunion sun;
- socklen_t n;
-
-- if (dst->addr_type != ADDR_TYPE_IP) {
-+ int fd;
-+
-+ if (dst->addr_type != ADDR_TYPE_IP && dst->addr_type != ADDR_TYPE_IP6) {
- errno = EINVAL;
- return (-1);
- }
-- addr_ntos(dst, (struct sockaddr *)&sin);
-- sin.sin_port = htons(666);
--
-- if (connect(intf->fd, (struct sockaddr *)&sin, sizeof(sin)) < 0)
-+ addr_ntos(dst, (struct sockaddr *)&sun);
-+ sun.sin.sin_port = htons(666);
-+
-+ fd = dst->addr_type == ADDR_TYPE_IP6 ? intf->fd6 : intf->fd;
-+ if (connect(fd, (struct sockaddr *)&sun, sizeof(sun)) < 0)
- return (-1);
-
-- n = sizeof(sin);
-- if (getsockname(intf->fd, (struct sockaddr *)&sin, &n) < 0)
-+ n = sizeof(sun);
-+ if (getsockname(fd, (struct sockaddr *)&sun, &n) < 0)
- return (-1);
-
-- addr_ston((struct sockaddr *)&sin, &entry->intf_addr);
-+ addr_ston((struct sockaddr *)&sun, &entry->intf_addr);
-
- if (intf_loop(intf, _match_intf_src, entry) != 1)
- return (-1);
---- a/src/ip6.c
-+++ b/src/ip6.c
-@@ -9,6 +9,8 @@
- #include "config.h"
-
- #include "dnet.h"
-+#include <string.h>
-+#include <errno.h>
-
- #define IP6_IS_EXT(n) \
- ((n) == IP_PROTO_HOPOPTS || (n) == IP_PROTO_DSTOPTS || \
-@@ -70,3 +72,57 @@
- }
- }
- }
-+
-+ssize_t
-+ip6_add_option(void *buf, size_t len, int proto,
-+ const void *optbuf, size_t optlen)
-+{
-+ struct ip6_hdr *ip6;
-+ struct tcp_hdr *tcp = NULL;
-+ u_char *p;
-+ int hl, datalen, padlen;
-+
-+ if (proto != IP_PROTO_TCP) {
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+
-+ ip6 = (struct ip6_hdr *)buf;
-+ p = (u_char *)buf + IP6_HDR_LEN;
-+
-+ tcp = (struct tcp_hdr *)p;
-+ hl = tcp->th_off << 2;
-+ p = (u_char *)tcp + hl;
-+
-+ datalen = ntohs(ip6->ip6_plen) + IP6_HDR_LEN - (p - (u_char *)buf);
-+
-+ /* Compute padding to next word boundary. */
-+ if ((padlen = 4 - (optlen % 4)) == 4)
-+ padlen = 0;
-+
-+ /* XXX - IP_HDR_LEN_MAX == TCP_HDR_LEN_MAX */
-+ if (hl + optlen + padlen > IP_HDR_LEN_MAX ||
-+ ntohs(ip6->ip6_plen) + IP6_HDR_LEN + optlen + padlen > len) {
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+
-+ /* Shift any existing data. */
-+ if (datalen) {
-+ memmove(p + optlen + padlen, p, datalen);
-+ }
-+ /* XXX - IP_OPT_NOP == TCP_OPT_NOP */
-+ if (padlen) {
-+ memset(p, IP_OPT_NOP, padlen);
-+ p += padlen;
-+ }
-+ memmove(p, optbuf, optlen);
-+ p += optlen;
-+ optlen += padlen;
-+
-+ tcp->th_off = (p - (u_char *)tcp) >> 2;
-+
-+ ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) + optlen);
-+
-+ return (optlen);
-+}
-new file mode 100644
---- a//dev/null
-+++ b/src/ndisc-linux.c
-@@ -0,0 +1,197 @@
-+/*
-+ * ndisc-linux.c
-+ *
-+ * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
-+ *
-+ */
-+
-+#include "config.h"
-+
-+#include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/socket.h>
-+#include <sys/uio.h>
-+
-+#include <asm/types.h>
-+#include <netinet/in.h>
-+#include <linux/netlink.h>
-+#include <linux/rtnetlink.h>
-+
-+#include <net/route.h>
-+
-+#include <ctype.h>
-+#include <errno.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include "dnet.h"
-+
-+struct ndisc_handle
-+{
-+ int nlfd;
-+ int seq;
-+};
-+
-+ndisc_t *
-+ndisc_open(void)
-+{
-+ struct sockaddr_nl snl;
-+ ndisc_t *n;
-+
-+ if ((n = calloc(1, sizeof(*n))) != NULL) {
-+ n->nlfd = -1;
-+
-+ if ((n->nlfd = socket(AF_NETLINK, SOCK_RAW,
-+ NETLINK_ROUTE)) < 0)
-+ return (ndisc_close(n));
-+
-+ memset(&snl, 0, sizeof(snl));
-+ snl.nl_family = AF_NETLINK;
-+
-+ if (bind(n->nlfd, (struct sockaddr *)&snl, sizeof(snl)) < 0)
-+ return (ndisc_close(n));
-+ }
-+ return (n);
-+}
-+
-+static int
-+netlink_addattr(struct nlmsghdr *n, int type, const void *data, int data_len)
-+{
-+ int len = RTA_LENGTH(data_len);
-+ struct rtattr *rta;
-+
-+ rta = (struct rtattr *)((uint8_t*)n + NLMSG_ALIGN(n->nlmsg_len));
-+ rta->rta_type = type;
-+ rta->rta_len = len;
-+ memcpy(RTA_DATA(rta), data, data_len);
-+ n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + RTA_ALIGN(len);
-+ return 0;
-+}
-+
-+int
-+ndisc_modify(ndisc_t *n, const struct ndisc_entry *entry, int type, int flags)
-+{
-+ struct nlmsghdr *nmsg;
-+ struct ndmsg *ndm;
-+ struct rtattr *rta;
-+ struct sockaddr_nl snl;
-+ struct iovec iov;
-+ struct msghdr msg;
-+ u_char buf[512];
-+ int i, af, alen;
-+
-+ switch (entry->ndisc_pa.addr_type) {
-+ case ADDR_TYPE_IP:
-+ af = AF_INET;
-+ alen = IP_ADDR_LEN;
-+ break;
-+ case ADDR_TYPE_IP6:
-+ af = AF_INET6;
-+ alen = IP6_ADDR_LEN;
-+ break;
-+ default:
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ memset(buf, 0, sizeof(buf));
-+
-+ nmsg = (struct nlmsghdr *)buf;
-+ nmsg->nlmsg_len = NLMSG_LENGTH(sizeof(struct ndmsg));
-+ nmsg->nlmsg_flags = NLM_F_REQUEST | flags;
-+ nmsg->nlmsg_type = type;
-+ nmsg->nlmsg_seq = ++n->seq;
-+
-+ nmsg->nlmsg_flags |= NLM_F_ACK;
-+
-+ ndm = (struct ndmsg *)(nmsg + 1);
-+ ndm->ndm_family = af;
-+ ndm->ndm_state = NUD_PERMANENT;
-+ ndm->ndm_ifindex = entry->intf_index;
-+
-+ netlink_addattr(nmsg, NDA_DST, &entry->ndisc_pa.addr_data8[0],
-+ alen);
-+
-+ if (type == RTM_NEWNEIGH) {
-+ netlink_addattr(nmsg, NDA_LLADDR,
-+ &entry->ndisc_ha.addr_data8[0], ETH_ADDR_LEN);
-+ }
-+
-+ memset(&snl, 0, sizeof(snl));
-+ snl.nl_family = AF_NETLINK;
-+
-+ iov.iov_base = nmsg;
-+ iov.iov_len = nmsg->nlmsg_len;
-+
-+ memset(&msg, 0, sizeof(msg));
-+ msg.msg_name = &snl;
-+ msg.msg_namelen = sizeof(snl);
-+ msg.msg_iov = &iov;
-+ msg.msg_iovlen = 1;
-+
-+ if (sendmsg(n->nlfd, &msg, 0) < 0)
-+ return (-1);
-+
-+ iov.iov_base = buf;
-+ iov.iov_len = sizeof(buf);
-+
-+ if ((i = recvmsg(n->nlfd, &msg, 0)) <= 0)
-+ return (-1);
-+
-+ if (nmsg->nlmsg_len < (int)sizeof(*nmsg) || nmsg->nlmsg_len > i ||
-+ nmsg->nlmsg_seq != n->seq) {
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ if (nmsg->nlmsg_type == NLMSG_ERROR) {
-+ struct nlmsgerr *err = (struct nlmsgerr*)NLMSG_DATA(nmsg);
-+ errno = -err->error;
-+ if (errno == 0) {
-+ return 0;
-+ }
-+
-+ return (-1);
-+ }
-+
-+ return (-1);
-+}
-+
-+int
-+ndisc_add(ndisc_t *n, const struct ndisc_entry *entry)
-+{
-+ return ndisc_modify(n, entry, RTM_NEWNEIGH, NLM_F_CREATE | NLM_F_EXCL);
-+}
-+
-+int
-+ndisc_delete(ndisc_t *n, const struct ndisc_entry *entry)
-+{
-+ return ndisc_modify(n, entry, RTM_DELNEIGH, 0);
-+}
-+
-+int
-+ndisc_get(ndisc_t *n, struct ndisc_entry *entry)
-+{
-+ /* TBD */
-+ errno = ENOSYS;
-+ return (-1);
-+}
-+
-+int
-+nsidc_loop(ndisc_t *n, ndisc_handler callback, void *arg)
-+{
-+ /* TBD */
-+ errno = ENOSYS;
-+ return (-1);
-+}
-+
-+ndisc_t *
-+ndisc_close(ndisc_t *n)
-+{
-+ if (n != NULL) {
-+ if (n->nlfd >= 0)
-+ close(n->nlfd);
-+ free(n);
-+ }
-+ return (NULL);
-+}
-new file mode 100644
---- a//dev/null
-+++ b/src/ndisc-none.c
-@@ -0,0 +1,55 @@
-+/*
-+ * ndisc-linux.c
-+ *
-+ * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
-+ *
-+ */
-+
-+#include "config.h"
-+
-+#include <errno.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#include "dnet.h"
-+
-+ndisc_t *
-+ndisc_open(void)
-+{
-+ errno = ENOSYS;
-+ return (NULL);
-+}
-+
-+int
-+ndisc_add(ndisc_t *n, const struct ndisc_entry *entry)
-+{
-+ errno = ENOSYS;
-+ return (-1);
-+}
-+
-+int
-+ndisc_delete(ndisc_t *n, const struct ndisc_entry *entry)
-+{
-+ errno = ENOSYS;
-+ return (-1);
-+}
-+
-+int
-+ndisc_get(ndisc_t *n, struct ndisc_entry *entry)
-+{
-+ errno = ENOSYS;
-+ return (-1);
-+}
-+
-+int
-+nsidc_loop(ndisc_t *n, ndisc_handler callback, void *arg)
-+{
-+ errno = ENOSYS;
-+ return (-1);
-+}
-+
-+ndisc_t *
-+ndisc_close(ndisc_t *n)
-+{
-+ return (NULL);
-+}
---- a/src/route-linux.c
-+++ b/src/route-linux.c
-@@ -39,6 +39,7 @@
-
- struct route_handle {
- int fd;
-+ int fd6;
- int nlfd;
- };
-
-@@ -49,10 +50,13 @@
- route_t *r;
-
- if ((r = calloc(1, sizeof(*r))) != NULL) {
-- r->fd = r->nlfd = -1;
-+ r->fd = r->fd6 = r->nlfd = -1;
-
- if ((r->fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
- return (route_close(r));
-+
-+ if ((r->fd6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
-+ return (route_close(r));
-
- if ((r->nlfd = socket(AF_NETLINK, SOCK_RAW,
- NETLINK_ROUTE)) < 0)
-@@ -90,6 +94,67 @@
- return (ioctl(r->fd, SIOCADDRT, &rt));
- }
-
-+int
-+route_add_dev(route_t *r, const struct route_entry *entry, const char* dev)
-+{
-+ struct rtentry rt;
-+ struct addr dst;
-+
-+ memset(&rt, 0, sizeof(rt));
-+ rt.rt_flags = RTF_UP;
-+ rt.rt_dev = (char*)dev;
-+
-+ if (ADDR_ISHOST(&entry->route_dst)) {
-+ rt.rt_flags |= RTF_HOST;
-+ memcpy(&dst, &entry->route_dst, sizeof(dst));
-+ } else
-+ addr_net(&entry->route_dst, &dst);
-+
-+ if (entry->route_gw.addr_ip != 0) {
-+ rt.rt_flags |= RTF_GATEWAY;
-+ }
-+
-+ if (addr_ntos(&dst, &rt.rt_dst) < 0 ||
-+ addr_ntos(&entry->route_gw, &rt.rt_gateway) < 0 ||
-+ addr_btos(entry->route_dst.addr_bits, &rt.rt_genmask) < 0)
-+ return (-1);
-+
-+ int ret = (ioctl(r->fd, SIOCADDRT, &rt));
-+ return ret;
-+}
-+
-+int
-+route6_add(route_t *r, const struct route_entry *entry, int intf_index)
-+{
-+ struct in6_rtmsg rt;
-+ struct addr dst;
-+
-+ memset(&rt, 0, sizeof(rt));
-+ rt.rtmsg_flags = RTF_UP;
-+
-+ if (ADDR_ISHOST(&entry->route_dst)) {
-+ rt.rtmsg_flags |= RTF_HOST;
-+ memcpy(&dst, &entry->route_dst, sizeof(dst));
-+ } else {
-+ addr_net(&entry->route_dst, &dst);
-+ }
-+
-+ rt.rtmsg_dst_len = entry->route_dst.addr_bits;
-+ rt.rtmsg_ifindex = intf_index;
-+ rt.rtmsg_metric = 1;
-+
-+ memcpy(&rt.rtmsg_dst, &dst.addr_ip6, sizeof(rt.rtmsg_dst));
-+
-+ if (!IN6_IS_ADDR_UNSPECIFIED(&entry->route_gw.addr_ip6)) {
-+ rt.rtmsg_flags |= RTF_GATEWAY;
-+ memcpy(&rt.rtmsg_gateway, &entry->route_gw.addr_ip6,
-+ sizeof(rt.rtmsg_gateway));
-+ }
-+
-+ int ret = (ioctl(r->fd6, SIOCADDRT, &rt));
-+ return ret;
-+}
-+
- int
- route_delete(route_t *r, const struct route_entry *entry)
- {
-@@ -112,6 +177,32 @@
- return (ioctl(r->fd, SIOCDELRT, &rt));
- }
-
-+int
-+route6_delete(route_t *r, const struct route_entry *entry, int intf_index)
-+{
-+ struct in6_rtmsg rt;
-+ struct addr dst;
-+
-+ memset(&rt, 0, sizeof(rt));
-+ rt.rtmsg_flags = RTF_UP;
-+
-+ if (ADDR_ISHOST(&entry->route_dst)) {
-+ rt.rtmsg_flags |= RTF_HOST;
-+ memcpy(&dst, &entry->route_dst, sizeof(dst));
-+ } else
-+ addr_net(&entry->route_dst, &dst);
-+
-+ rt.rtmsg_dst_len = entry->route_dst.addr_bits;
-+ rt.rtmsg_ifindex = intf_index;
-+ rt.rtmsg_metric = 1;
-+
-+ memcpy(&rt.rtmsg_dst, &dst, sizeof(rt.rtmsg_dst));
-+ memcpy(&rt.rtmsg_gateway, &entry->route_gw, sizeof(rt.rtmsg_gateway));
-+
-+ int ret = (ioctl(r->fd6, SIOCDELRT, &rt));
-+ return ret;
-+}
-+
- int
- route_get(route_t *r, struct route_entry *entry)
- {
-@@ -278,6 +369,8 @@
- if (r != NULL) {
- if (r->fd >= 0)
- close(r->fd);
-+ if (r->fd6 >= 0)
-+ close(r->fd6);
- if (r->nlfd >= 0)
- close(r->nlfd);
- free(r);
diff --git a/dev-libs/libdnet/files/libdnet-1.14-strlcpy.patch b/dev-libs/libdnet/files/libdnet-1.14-strlcpy.patch
deleted file mode 100644
index abc3a6b0f2d3..000000000000
--- a/dev-libs/libdnet/files/libdnet-1.14-strlcpy.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/python/dnet.c
-+++ b/python/dnet.c
-@@ -22,6 +22,7 @@
- #endif
- __PYX_EXTERN_C double pow(double, double);
- #include "dnet.h"
-+#include "config.h"
-
-
- typedef struct {const char *s; const void **p;} __Pyx_CApiTabEntry; /*proto*/
diff --git a/dev-libs/libdnet/libdnet-1.14-r2.ebuild b/dev-libs/libdnet/libdnet-1.14-r2.ebuild
deleted file mode 100644
index 90dbdead4409..000000000000
--- a/dev-libs/libdnet/libdnet-1.14-r2.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-AT_M4DIR="config"
-PYTHON_COMPAT=( python3_{9..10} )
-DISTUTILS_OPTIONAL=1
-inherit autotools distutils-r1
-
-DESCRIPTION="simplified, portable interface to several low-level networking routines"
-HOMEPAGE="https://github.com/ofalk/libdnet"
-SRC_URI="https://github.com/ofalk/${PN}/archive/${P}.tar.gz"
-S="${WORKDIR}/${PN}-${P}"
-
-LICENSE="LGPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86"
-IUSE="python test"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-RESTRICT="!test? ( test )"
-
-DEPEND="python? ( ${PYTHON_DEPS} )"
-RDEPEND="${DEPEND}"
-BDEPEND="
- python? (
- dev-python/cython[${PYTHON_USEDEP}]
- )
-"
-
-DOCS=( README.md THANKS )
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.14-ndisc.patch"
- "${FILESDIR}/${PN}-1.14-strlcpy.patch"
-)
-
-src_prepare() {
- default
-
- sed -i \
- -e 's/libcheck.a/libcheck.so/g' \
- -e 's|AM_CONFIG_HEADER|AC_CONFIG_HEADERS|g' \
- configure.ac || die
- sed -i \
- -e 's|-L$libdir ||g' \
- dnet-config.in || die
- sed -i \
- -e '/^SUBDIRS/s|python||g' \
- Makefile.am || die
-
- eautoreconf
-
- if use python; then
- cd python || die
- distutils-r1_src_prepare
- fi
-}
-
-src_configure() {
- econf \
- --disable-static \
- $(use_with python)
-}
-
-src_compile() {
- default
- if use python; then
- cd python || die
- distutils-r1_src_compile
- fi
-}
-
-src_install() {
- default
-
- if use python; then
- cd python || die
- unset DOCS
- distutils-r1_src_install
- fi
-
- find "${ED}" -name '*.la' -delete || die
-}
diff --git a/dev-libs/libdnet/libdnet-1.16.1.ebuild b/dev-libs/libdnet/libdnet-1.16.1.ebuild
deleted file mode 100644
index 6321f1a10785..000000000000
--- a/dev-libs/libdnet/libdnet-1.16.1.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..10} )
-DISTUTILS_OPTIONAL=1
-inherit autotools distutils-r1
-
-DESCRIPTION="Simplified, portable interface to several low-level networking routines"
-HOMEPAGE="https://github.com/ofalk/libdnet"
-SRC_URI="https://github.com/ofalk/${PN}/archive/${P}.tar.gz"
-S="${WORKDIR}/${PN}-${P}"
-
-LICENSE="LGPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86"
-IUSE="python test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-DEPEND="dev-libs/libbsd
- python? ( ${PYTHON_DEPS} )"
-RDEPEND="${DEPEND}"
-BDEPEND="python? ( dev-python/cython[${PYTHON_USEDEP}] )
- test? ( dev-libs/check )"
-
-DOCS=( README.md THANKS )
-
-src_prepare() {
- default
-
- sed -i \
- -e 's/libcheck.a/libcheck.so/g' \
- configure.ac || die
- sed -i \
- -e 's|-L$libdir ||g' \
- dnet-config.in || die
- sed -i \
- -e '/^SUBDIRS/s|python||g' \
- Makefile.am || die
-
- # Stale e.g. pkg-config macros w/ bashisms
- rm aclocal.m4 {config,m4}/libtool.m4 || die
-
- AT_M4DIR="config" eautoreconf
-
- if use python; then
- cd python || die
- distutils-r1_src_prepare
- fi
-}
-
-src_configure() {
- econf \
- $(use_with python) \
- $(use_enable test check)
-}
-
-src_compile() {
- default
- if use python; then
- cd python || die
- distutils-r1_src_compile
- fi
-}
-
-src_install() {
- default
-
- if use python; then
- cd python || die
- unset DOCS
- distutils-r1_src_install
- fi
-
- find "${ED}" -name '*.la' -delete || die
-}
diff --git a/dev-libs/libdnet/libdnet-1.16.2.ebuild b/dev-libs/libdnet/libdnet-1.16.2.ebuild
index 7b853da8a2fc..8ed52eca9704 100644
--- a/dev-libs/libdnet/libdnet-1.16.2.ebuild
+++ b/dev-libs/libdnet/libdnet-1.16.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..11} )
DISTUTILS_OPTIONAL=1
inherit autotools distutils-r1
@@ -15,16 +15,14 @@ S="${WORKDIR}/${PN}-${P}"
LICENSE="LGPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86"
-IUSE="python test"
-RESTRICT="!test? ( test )"
+IUSE="python"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
DEPEND="dev-libs/libbsd
python? ( ${PYTHON_DEPS} )"
RDEPEND="${DEPEND}"
-BDEPEND="python? ( dev-python/cython[${PYTHON_USEDEP}] )
- test? ( dev-libs/check )"
+BDEPEND="python? ( dev-python/cython[${PYTHON_USEDEP}] )"
DOCS=( README.md THANKS )
@@ -55,7 +53,7 @@ src_prepare() {
src_configure() {
econf \
$(use_with python) \
- $(use_enable test check)
+ --without-check
}
src_compile() {
diff --git a/dev-libs/libmodbus/Manifest b/dev-libs/libmodbus/Manifest
index 4c56ec0b04d8..97cac0ee46f9 100644
--- a/dev-libs/libmodbus/Manifest
+++ b/dev-libs/libmodbus/Manifest
@@ -1,3 +1,3 @@
DIST libmodbus-3.1.10.tar.gz 463325 BLAKE2B ea1c54e52f0927e9e97b2303b35925d6a40b30f1eed881eeed2d05a229c858ebdde6212431699e24a331744b30f447dfe6704c7ca0d4eb73d193ae5b5055c4b3 SHA512 d9a56d2cd3285823b287b6bf4f79741f2e626e09cfc1872405a306e8dcc0f64c15695e8aee45614071c615cd248b87293ef2351c830120a515d28303bad0ccee
-EBUILD libmodbus-3.1.10.ebuild 691 BLAKE2B 672e599f2e7baa71ecaa78987b7a0dcc9466c4d63a5343af3b9306d71c4818dd049625b06d9e6da1821dcd55e636eb7fb5aeb246b6ed34741282ddfb31c99aaa SHA512 96c15e1414fe37f19ece61cc5c235f994ea3680befd3c1c8128a16fb365859e374c977f37ed18780aa1ca2e5898f71d4d1a8bde0d2860928d86652cb06c8f1da
+EBUILD libmodbus-3.1.10.ebuild 690 BLAKE2B adf47b3463e698daba8b23f060243ea71aa464252fad1e77c401647a1a20e71ee0c5b361410af6aabe8aa8803d30a08fcbf899458ce657cd8b59606824081115 SHA512 23ad79d565fa84c21a337a61405c6cf911e06f4f753092fd58f9b64f1a0cb6ec444601303f2290d405af031792a509e4ecafb803dff3723f237c21faa843e5fc
MISC metadata.xml 400 BLAKE2B 13cbac9e5f8b0b4af1330ef236dff85b8d3f167cabb19979942fa610c525c9d0b532e5c6a359f716ab198872f622dbbbe9575fc1ab53f82b8abe8e4996e6d921 SHA512 248080a171c05cca240271d8dc3e7cd0b30e78100697dddf0a0d8216d4d0c42abc9c52731b0abaa5de9dbacf9c402ada6e1b406699b7eefdb0ede78717d587c5
diff --git a/dev-libs/libmodbus/libmodbus-3.1.10.ebuild b/dev-libs/libmodbus/libmodbus-3.1.10.ebuild
index ff5f8c1fb503..0faa7ec5b0df 100644
--- a/dev-libs/libmodbus/libmodbus-3.1.10.ebuild
+++ b/dev-libs/libmodbus/libmodbus-3.1.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -9,7 +9,7 @@ SRC_URI="https://github.com/stephane/${PN}/releases/download/v${PV}/${P}.tar.gz"
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ppc64 ~riscv x86"
+KEYWORDS="amd64 arm ~arm64 ~ppc ppc64 ~riscv x86"
IUSE="static-libs test"
RESTRICT="!test? ( test )"
diff --git a/dev-libs/librdkafka/Manifest b/dev-libs/librdkafka/Manifest
index ea424dc77719..61d861ad56d2 100644
--- a/dev-libs/librdkafka/Manifest
+++ b/dev-libs/librdkafka/Manifest
@@ -1,7 +1,9 @@
+AUX librdkafka-2.2.0-backport-pr4449.patch 12334 BLAKE2B 1787951e628e64890e1a84203f25609d0488ebf8508e16214a9c9c97f23b853cbd86d1b5ceeb3f00d9118245bf9771ad5db82f5db60c37f1c3d2ba493bf3fa4a SHA512 4e8e2de48025ec7b17c070d1e830a8bead9470d283e26ed0b4a9c7779cb2963cd129e59283da07d44f5a46917c783b026367ce575c6a3d103759e7b64855d937
DIST librdkafka-1.8.2.tar.gz 4097028 BLAKE2B 37a3190417e973ea4629012e358ff61cda45eb0134448dd0054fd1f1cac57f3543b133331b0b0d518f219f30f79f7665a214c75084d6a8474687b7e686395724 SHA512 8c8ae291129b78e3b8367307ad1b1715af1438cd76d7160d64d13a58adf84c7c9f51efeba4656f55e101c25e4cb744db0d8bb5c01a2decb229e4567d16bdcb22
DIST librdkafka-2.1.1.tar.gz 4281061 BLAKE2B 8200c2aee0d04109cb78f13b186cf907f3260ee6a17a2fffc4f7706ed9cbea9436eb31d17167e9af783495ef2365f7401bbdc671d5a8d7e7f2ecb9b5c7d57fbb SHA512 6bf1761e7ed1820b587fda24277f6606ec046da281064df13c4380f49a92f3e2b165614b9c622d46b27078ec024a4dc211610e500e597265e8219f8869c4d203
DIST librdkafka-2.2.0.tar.gz 4340164 BLAKE2B 394c9fd25db0a3a02b16fec3d5d5acc4808b4c8a6c8e025e71f15a91c6311206bf4d7c863860be36483c150bb10955cdc98ba0f088fa493b20ae52154e2a83d0 SHA512 1a85b5864efdeece1327e461b62a378f24b73eb7174168f630aeff01d4a5074d6b2f15744bc267665fcfc6384e804df00c20b7271ecd85a98dca84746b86b4d9
EBUILD librdkafka-1.8.2.ebuild 2377 BLAKE2B 1ac13b1f1df3dcd58db7ecd0ac0afef58c431aa796ebddce48ae1ae8f0b06293623ae7731a04a044022bb4767444d8e680759738c9ee9cccbd0c5b33671bdf5c SHA512 fa963b50fe52ed39e1e6c206e0c6a9729d134e6001cb5534a4f0cc0cfe58fbf8438122e0dc9925c45939ce0ff3576116f6a7aea3f7df7ed95e89d4d64ccbf10d
EBUILD librdkafka-2.1.1.ebuild 2377 BLAKE2B 1ac13b1f1df3dcd58db7ecd0ac0afef58c431aa796ebddce48ae1ae8f0b06293623ae7731a04a044022bb4767444d8e680759738c9ee9cccbd0c5b33671bdf5c SHA512 fa963b50fe52ed39e1e6c206e0c6a9729d134e6001cb5534a4f0cc0cfe58fbf8438122e0dc9925c45939ce0ff3576116f6a7aea3f7df7ed95e89d4d64ccbf10d
+EBUILD librdkafka-2.2.0-r1.ebuild 2457 BLAKE2B b0e1d8922ff5fdea718f0da84ceaac2d42501adb41cbe9ff2e32f721236576047972482ef6e01e204c9015577f8020ae55218a4a33ee375f7c4c314ab0b655cc SHA512 4f48b2b6f0b74bef92621fd3b8f0706482ddc978e5c7d709542ac9426ee56be85f5ce0435dddfc8f4774a256038fb46d3245c6c66d0ef9dd34a9254fea770679
EBUILD librdkafka-2.2.0.ebuild 2392 BLAKE2B 66094f8e29286889e87e1334aefc5e8613c3b3a425941ba1ebb6f06d583ae1c185541c236cc3054244e7c544f781d4edeb65634b9bbe8f68754a7780feaa086e SHA512 aa4c3d4aca88411f478412e16104b725c42f5b43c3aa4af117e03ea06e20ef352079e16a97c71c9eff04c25c7147010613120186c8d48da6b472ab371f2a97c8
MISC metadata.xml 458 BLAKE2B 9fe3256ed33cb5691e327d86d5276cfa37e898e938c623f0643bf6cb583e4ee6bd34922880185bdbabc638e2e85ffe157554ff95063db7a348fc9e6f425411e6 SHA512 84279a77f53332007509a0912059a5fb71fed16f0976dbdad200f7a0ff54cff43e17d94afa05f8169181c3fd1aa18e93f6c2e4e279e01cbe9fefdaba46042e7a
diff --git a/dev-libs/librdkafka/files/librdkafka-2.2.0-backport-pr4449.patch b/dev-libs/librdkafka/files/librdkafka-2.2.0-backport-pr4449.patch
new file mode 100644
index 000000000000..cc6b57ea72d2
--- /dev/null
+++ b/dev-libs/librdkafka/files/librdkafka-2.2.0-backport-pr4449.patch
@@ -0,0 +1,285 @@
+https://bugs.gentoo.org/915433
+https://github.com/confluentinc/librdkafka/pull/4449
+
+From 8b311b8a850805f4ec9bb068c0edb31492ad03fe Mon Sep 17 00:00:00 2001
+From: Emanuele Sabellico <esabellico@confluent.io>
+Date: Wed, 27 Sep 2023 11:08:33 +0200
+Subject: [PATCH 1/3] tmpabuf refactor and fix for insufficient buffer
+ allocation
+
+---
+ CHANGELOG.md | 10 ++++++
+ src/rdkafka_buf.h | 25 ++++++++++++---
+ src/rdkafka_metadata.c | 59 +++++++++++++++++++-----------------
+ src/rdkafka_metadata_cache.c | 38 +++++++++++------------
+ src/rdkafka_topic.c | 36 +++++++++++++---------
+ 5 files changed, 100 insertions(+), 68 deletions(-)
+
+diff --git a/src/rdkafka_buf.h b/src/rdkafka_buf.h
+index ccd563cc6..623ec49ae 100644
+--- a/src/rdkafka_buf.h
++++ b/src/rdkafka_buf.h
+@@ -49,21 +49,36 @@ typedef struct rd_tmpabuf_s {
+ size_t of;
+ char *buf;
+ int failed;
+- int assert_on_fail;
++ rd_bool_t assert_on_fail;
+ } rd_tmpabuf_t;
+
+ /**
+- * @brief Allocate new tmpabuf with \p size bytes pre-allocated.
++ * @brief Initialize new tmpabuf of non-final \p size bytes.
+ */
+ static RD_UNUSED void
+-rd_tmpabuf_new(rd_tmpabuf_t *tab, size_t size, int assert_on_fail) {
+- tab->buf = rd_malloc(size);
+- tab->size = size;
++rd_tmpabuf_new(rd_tmpabuf_t *tab, size_t size, rd_bool_t assert_on_fail) {
++ tab->buf = NULL;
++ tab->size = RD_ROUNDUP(size, 8);
+ tab->of = 0;
+ tab->failed = 0;
+ tab->assert_on_fail = assert_on_fail;
+ }
+
++/**
++ * @brief Add a new allocation of \p _size bytes,
++ * rounded up to maximum word size,
++ * for \p _times times.
++ */
++#define rd_tmpabuf_add_alloc_times(_tab, _size, _times) \
++ (_tab)->size += RD_ROUNDUP(_size, 8) * _times
++
++#define rd_tmpabuf_add_alloc(_tab, _size) \
++ rd_tmpabuf_add_alloc_times(_tab, _size, 1)
++/**
++ * @brief Finalize tmpabuf pre-allocating tab->size bytes.
++ */
++#define rd_tmpabuf_finalize(_tab) (_tab)->buf = rd_malloc((_tab)->size)
++
+ /**
+ * @brief Free memory allocated by tmpabuf
+ */
+diff --git a/src/rdkafka_metadata.c b/src/rdkafka_metadata.c
+index f96edf658..6c2f60ae3 100644
+--- a/src/rdkafka_metadata.c
++++ b/src/rdkafka_metadata.c
+@@ -164,7 +164,8 @@ static rd_kafka_metadata_internal_t *rd_kafka_metadata_copy_internal(
+ * Because of this we copy all the structs verbatim but
+ * any pointer fields needs to be copied explicitly to update
+ * the pointer address. */
+- rd_tmpabuf_new(&tbuf, size, 1 /*assert on fail*/);
++ rd_tmpabuf_new(&tbuf, size, rd_true /*assert on fail*/);
++ rd_tmpabuf_finalize(&tbuf);
+ mdi = rd_tmpabuf_write(&tbuf, src, sizeof(*mdi));
+ md = &mdi->metadata;
+
+@@ -506,11 +507,13 @@ rd_kafka_parse_Metadata(rd_kafka_broker_t *rkb,
+ * no more than 4 times larger than the wire representation.
+ * This is increased to 5 times in case if we want to compute partition
+ * to rack mapping. */
+- rd_tmpabuf_new(&tbuf,
+- sizeof(*mdi) + rkb_namelen +
+- (rkbuf->rkbuf_totlen * 4 +
+- (compute_racks ? rkbuf->rkbuf_totlen : 0)),
+- 0 /*dont assert on fail*/);
++ rd_tmpabuf_new(&tbuf, 0, rd_false /*dont assert on fail*/);
++ rd_tmpabuf_add_alloc(&tbuf, sizeof(*mdi));
++ rd_tmpabuf_add_alloc(&tbuf, rkb_namelen);
++ rd_tmpabuf_add_alloc(&tbuf, rkbuf->rkbuf_totlen *
++ (4 + (compute_racks ? 1 : 0)));
++
++ rd_tmpabuf_finalize(&tbuf);
+
+ if (!(mdi = rd_tmpabuf_alloc(&tbuf, sizeof(*mdi)))) {
+ rd_kafka_broker_unlock(rkb);
+@@ -1603,35 +1606,37 @@ rd_kafka_metadata_new_topic_mock(const rd_kafka_metadata_topic_t *topics,
+ rd_kafka_metadata_internal_t *mdi;
+ rd_kafka_metadata_t *md;
+ rd_tmpabuf_t tbuf;
+- size_t topic_names_size = 0;
+- int total_partition_cnt = 0;
+ size_t i;
+ int curr_broker = 0;
+
+- /* Calculate total partition count and topic names size before
+- * allocating memory. */
+- for (i = 0; i < topic_cnt; i++) {
+- topic_names_size += 1 + strlen(topics[i].topic);
+- total_partition_cnt += topics[i].partition_cnt;
+- }
+-
+ /* If the replication factor is given, num_brokers must also be given */
+ rd_assert(replication_factor <= 0 || num_brokers > 0);
+
+ /* Allocate contiguous buffer which will back all the memory
+ * needed by the final metadata_t object */
+- rd_tmpabuf_new(
+- &tbuf,
+- sizeof(*mdi) + (sizeof(*md->topics) * topic_cnt) +
+- topic_names_size + (64 /*topic name size..*/ * topic_cnt) +
+- (sizeof(*md->topics[0].partitions) * total_partition_cnt) +
+- (sizeof(*mdi->topics) * topic_cnt) +
+- (sizeof(*mdi->topics[0].partitions) * total_partition_cnt) +
+- (sizeof(*mdi->brokers) * RD_ROUNDUP(num_brokers, 8)) +
+- (replication_factor > 0 ? RD_ROUNDUP(replication_factor, 8) *
+- total_partition_cnt * sizeof(int)
+- : 0),
+- 1 /*assert on fail*/);
++ rd_tmpabuf_new(&tbuf, sizeof(*mdi), rd_true /*assert on fail*/);
++
++ rd_tmpabuf_add_alloc(&tbuf, topic_cnt * sizeof(*md->topics));
++ rd_tmpabuf_add_alloc(&tbuf, topic_cnt * sizeof(*mdi->topics));
++ rd_tmpabuf_add_alloc(&tbuf, num_brokers * sizeof(*md->brokers));
++
++ /* Calculate total partition count and topic names size before
++ * allocating memory. */
++ for (i = 0; i < topic_cnt; i++) {
++ rd_tmpabuf_add_alloc(&tbuf, 1 + strlen(topics[i].topic));
++ rd_tmpabuf_add_alloc(&tbuf,
++ topics[i].partition_cnt *
++ sizeof(*md->topics[i].partitions));
++ rd_tmpabuf_add_alloc(&tbuf,
++ topics[i].partition_cnt *
++ sizeof(*mdi->topics[i].partitions));
++ if (replication_factor > 0)
++ rd_tmpabuf_add_alloc_times(
++ &tbuf, replication_factor * sizeof(int),
++ topics[i].partition_cnt);
++ }
++
++ rd_tmpabuf_finalize(&tbuf);
+
+ mdi = rd_tmpabuf_alloc(&tbuf, sizeof(*mdi));
+ memset(mdi, 0, sizeof(*mdi));
+diff --git a/src/rdkafka_metadata_cache.c b/src/rdkafka_metadata_cache.c
+index 18f19a4d0..1530e699e 100644
+--- a/src/rdkafka_metadata_cache.c
++++ b/src/rdkafka_metadata_cache.c
+@@ -249,8 +249,6 @@ static struct rd_kafka_metadata_cache_entry *rd_kafka_metadata_cache_insert(
+ rd_kafka_metadata_broker_internal_t *brokers_internal,
+ size_t broker_cnt) {
+ struct rd_kafka_metadata_cache_entry *rkmce, *old;
+- size_t topic_len;
+- size_t racks_size = 0;
+ rd_tmpabuf_t tbuf;
+ int i;
+
+@@ -261,34 +259,32 @@ static struct rd_kafka_metadata_cache_entry *rd_kafka_metadata_cache_insert(
+ * any pointer fields needs to be copied explicitly to update
+ * the pointer address.
+ * See also rd_kafka_metadata_cache_delete which frees this. */
+- topic_len = strlen(mtopic->topic) + 1;
++ rd_tmpabuf_new(&tbuf, 0, rd_true /*assert on fail*/);
++
++ rd_tmpabuf_add_alloc(&tbuf, sizeof(*rkmce));
++ rd_tmpabuf_add_alloc(&tbuf, strlen(mtopic->topic) + 1);
++ rd_tmpabuf_add_alloc(&tbuf, mtopic->partition_cnt *
++ sizeof(*mtopic->partitions));
++ rd_tmpabuf_add_alloc(&tbuf,
++ mtopic->partition_cnt *
++ sizeof(*metadata_internal_topic->partitions));
+
+ for (i = 0; include_racks && i < mtopic->partition_cnt; i++) {
+ size_t j;
+- racks_size += RD_ROUNDUP(
+- metadata_internal_topic->partitions[i].racks_cnt *
+- sizeof(char *),
+- 8);
++ rd_tmpabuf_add_alloc(
++ &tbuf, metadata_internal_topic->partitions[i].racks_cnt *
++ sizeof(char *));
+ for (j = 0;
+ j < metadata_internal_topic->partitions[i].racks_cnt;
+ j++) {
+- racks_size += RD_ROUNDUP(
+- strlen(metadata_internal_topic->partitions[i]
+- .racks[j]) +
+- 1,
+- 8);
++ rd_tmpabuf_add_alloc(
++ &tbuf, strlen(metadata_internal_topic->partitions[i]
++ .racks[j]) +
++ 1);
+ }
+ }
+
+- rd_tmpabuf_new(
+- &tbuf,
+- RD_ROUNDUP(sizeof(*rkmce), 8) + RD_ROUNDUP(topic_len, 8) +
+- (mtopic->partition_cnt *
+- RD_ROUNDUP(sizeof(*mtopic->partitions), 8)) +
+- (mtopic->partition_cnt *
+- RD_ROUNDUP(sizeof(*metadata_internal_topic->partitions), 8)) +
+- racks_size,
+- 1 /*assert on fail*/);
++ rd_tmpabuf_finalize(&tbuf);
+
+ rkmce = rd_tmpabuf_alloc(&tbuf, sizeof(*rkmce));
+
+diff --git a/src/rdkafka_topic.c b/src/rdkafka_topic.c
+index 3b3986d43..b63a0bbea 100644
+--- a/src/rdkafka_topic.c
++++ b/src/rdkafka_topic.c
+@@ -1831,38 +1831,44 @@ rd_kafka_topic_info_t *rd_kafka_topic_info_new_with_rack(
+ const rd_kafka_metadata_partition_internal_t *mdpi) {
+ rd_kafka_topic_info_t *ti;
+ rd_tmpabuf_t tbuf;
+- size_t tlen = RD_ROUNDUP(strlen(topic) + 1, 8);
+- size_t total_racks_size = 0;
+ int i;
++ rd_bool_t has_racks = rd_false;
+
++ rd_tmpabuf_new(&tbuf, 0, rd_true /* assert on fail */);
++
++ rd_tmpabuf_add_alloc(&tbuf, sizeof(*ti));
++ rd_tmpabuf_add_alloc(&tbuf, strlen(topic) + 1);
+ for (i = 0; i < partition_cnt; i++) {
+ size_t j;
+ if (!mdpi[i].racks)
+ continue;
+
++ if (unlikely(!has_racks))
++ has_racks = rd_true;
++
+ for (j = 0; j < mdpi[i].racks_cnt; j++) {
+- total_racks_size +=
+- RD_ROUNDUP(strlen(mdpi[i].racks[j]) + 1, 8);
++ rd_tmpabuf_add_alloc(&tbuf,
++ strlen(mdpi[i].racks[j]) + 1);
+ }
+- total_racks_size +=
+- RD_ROUNDUP(sizeof(char *) * mdpi[i].racks_cnt, 8);
++ rd_tmpabuf_add_alloc(&tbuf, sizeof(char *) * mdpi[i].racks_cnt);
++ }
++
++ /* Only bother allocating this if at least one
++ * rack is there. */
++ if (has_racks) {
++ rd_tmpabuf_add_alloc(
++ &tbuf, sizeof(rd_kafka_metadata_partition_internal_t) *
++ partition_cnt);
+ }
+
+- if (total_racks_size) /* Only bother allocating this if at least one
+- rack is there. */
+- total_racks_size +=
+- RD_ROUNDUP(sizeof(rd_kafka_metadata_partition_internal_t) *
+- partition_cnt,
+- 8);
++ rd_tmpabuf_finalize(&tbuf);
+
+- rd_tmpabuf_new(&tbuf, sizeof(*ti) + tlen + total_racks_size,
+- 1 /* assert on fail */);
+ ti = rd_tmpabuf_alloc(&tbuf, sizeof(*ti));
+ ti->topic = rd_tmpabuf_write_str(&tbuf, topic);
+ ti->partition_cnt = partition_cnt;
+ ti->partitions_internal = NULL;
+
+- if (total_racks_size) {
++ if (has_racks) {
+ ti->partitions_internal = rd_tmpabuf_alloc(
+ &tbuf, sizeof(*ti->partitions_internal) * partition_cnt);
+
+
diff --git a/dev-libs/librdkafka/librdkafka-2.2.0-r1.ebuild b/dev-libs/librdkafka/librdkafka-2.2.0-r1.ebuild
new file mode 100644
index 000000000000..c3f8341d2d7d
--- /dev/null
+++ b/dev-libs/librdkafka/librdkafka-2.2.0-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+PYTHON_COMPAT=( python3_{9..12} )
+
+inherit python-any-r1 toolchain-funcs
+
+DESCRIPTION="Apache Kafka C/C++ client library"
+HOMEPAGE="https://github.com/confluentinc/librdkafka"
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/confluentinc/${PN}.git"
+
+ inherit git-r3
+else
+ SRC_URI="https://github.com/confluentinc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+LICENSE="BSD-2"
+
+# subslot = soname version
+SLOT="0/1"
+
+IUSE="lz4 sasl ssl static-libs zstd"
+
+LIB_DEPEND="
+ lz4? ( app-arch/lz4:=[static-libs(+)] )
+ sasl? ( dev-libs/cyrus-sasl:=[static-libs(+)] )
+ ssl? ( dev-libs/openssl:0=[static-libs(+)] )
+ zstd? ( app-arch/zstd:=[static-libs(+)] )
+ sys-libs/zlib:=[static-libs(+)]
+"
+# which: https://github.com/confluentinc/librdkafka/pull/4353
+BDEPEND="
+ sys-apps/which
+ virtual/pkgconfig
+ ${PYTHON_DEPS}
+"
+
+RDEPEND="net-misc/curl
+ !static-libs? ( ${LIB_DEPEND//\[static-libs(+)]} )"
+
+DEPEND="
+ ${RDEPEND}
+ static-libs? ( ${LIB_DEPEND} )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-2.2.0-backport-pr4449.patch" )
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ if [[ ${PV} != "9999" ]]; then
+ sed -i \
+ -e "s/^\(export RDKAFKA_GITVER=\).*/\1\"${PV}@release\"/" \
+ tests/run-test.sh || die
+ fi
+}
+
+src_configure() {
+ tc-export AR CC CXX LD NM OBJDUMP PKG_CONFIG STRIP
+
+ local myeconf=(
+ --prefix="${EPREFIX}/usr"
+ --build="${CBUILD}"
+ --host="${CHOST}"
+ --mandir="${EPREFIX}/usr/share/man"
+ --infodir="${EPREFIX}/usr/share/info"
+ --datadir="${EPREFIX}/usr/share"
+ --sysconfdir="${EPREFIX}/etc"
+ --localstatedir="${EPREFIX}/var"
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --no-cache
+ --no-download
+ --disable-debug-symbols
+ $(use_enable lz4)
+ $(use_enable sasl)
+ $(usex static-libs '--enable-static' '')
+ $(use_enable ssl)
+ $(use_enable zstd)
+ )
+
+ ./configure ${myeconf[@]} || die
+}
+
+src_test() {
+ # Simulate CI so we do not fail when tests are running longer than expected,
+ # https://github.com/confluentinc/librdkafka/blob/v1.6.1/tests/0062-stats_event.c#L101-L116
+ local -x CI=true
+
+ emake -C tests run_local
+}
+
+src_install() {
+ emake -j1 \
+ DESTDIR="${D}" \
+ docdir="/usr/share/doc/${PF}" \
+ install
+
+ if ! use static-libs; then
+ find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
+ fi
+}
diff --git a/dev-libs/libretls/Manifest b/dev-libs/libretls/Manifest
index 5cfb4194b260..a6225688ed33 100644
--- a/dev-libs/libretls/Manifest
+++ b/dev-libs/libretls/Manifest
@@ -1,3 +1,3 @@
DIST libretls-3.8.1.tar.gz 432142 BLAKE2B d8f3c178daadcdc3b78683d25a77cd2b20235c77d8ace43fa2c658c77165db6383d8673b7047b66a894e7de5b203c6bc89d226959040f6d93b2675ceee1ba7b7 SHA512 bbf4854622401bfc8662016a73202467714b603425dea2012e72846f0a22412018448fda8befa777d67c5dae44839b81e3b039130cf4970a4026c178d3a43ce2
-EBUILD libretls-3.8.1.ebuild 601 BLAKE2B a3b1396c561ef3524decf9b66453e88aec8c826f781838f8b2c54ab4f43de8c2f3a1edd316c4f45838670501a3ccc5dd8a2a5c67c0aec73a947dc3f60edacadb SHA512 f10de7316d419fa06775419f35bb23c3f6b00ff2d2997d0e3559490184347389099c5e9a92f8ee985b22acd8ecaf85ae9af2445a1813a80292dd191c3dc1d868
+EBUILD libretls-3.8.1.ebuild 600 BLAKE2B 775e6bc4dc9d096f2b4fccd9f558f58928b96e181192228474db24edd216ad7660a52a65a11a5ef24ba24318493e5ec0039177e5deb20ec246377d2bc273ffd9 SHA512 cf970df0479fc22ef5398ffdc3c8b5f63483b95ed3c7c627175faf859864482f04f25efc16d66b19a6c10e6af62db574cf1865ac55903ffcd3f9938c7f8ff2e8
MISC metadata.xml 248 BLAKE2B f308d2aa052d11e427850af58bbebf95e7773f5562ed221f39043474b4c3827d724d49667edf1874272a5586a13201159f40e8f5eafb7e400e79c6566e1a6ac2 SHA512 b875c838394523483ae7d93585207eb3c642a345bbb08e1dcef3ceb737c813fa779e2f5479d48cdcc30732b8a0a9e6ecc648df940def6731e4dff43b23786e6d
diff --git a/dev-libs/libretls/libretls-3.8.1.ebuild b/dev-libs/libretls/libretls-3.8.1.ebuild
index 43546c20d021..988269d3cce4 100644
--- a/dev-libs/libretls/libretls-3.8.1.ebuild
+++ b/dev-libs/libretls/libretls-3.8.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2023 Gentoo Authors
+# Copyright 2020-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -9,7 +9,7 @@ SRC_URI="https://causal.agency/libretls/${P}.tar.gz"
LICENSE="ISC"
SLOT="0/28"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
DEPEND="
dev-libs/openssl:=
diff --git a/dev-libs/qr-code-generator/Manifest b/dev-libs/qr-code-generator/Manifest
index 430b93181c57..559b9af5f831 100644
--- a/dev-libs/qr-code-generator/Manifest
+++ b/dev-libs/qr-code-generator/Manifest
@@ -1,4 +1,4 @@
DIST qr-code-generator-1.8.0.tar.gz 193288 BLAKE2B 2e511baf35fbfdb71ad5e2dc91c1400a113eb9bce51afa022c34b7ad7d3c9be4a862e2caaef89f517fbbf29879223fb078c88fdec27d6a876126c798ac6772c6 SHA512 0cdf0873e71aed124fc7357da86fb26f23fd26432f94c9752fa5a044085b26e5aece2115134d0e50213ff24be7c55818e7dec31205a68751065bc82ab0c2c6ac
DIST qr-code-generator-cmake-1.8.0.tar.gz 5573 BLAKE2B 206e88a0a2b9c069f5b9ebe78cb570c141ee12ea16c2bea0635b054ebb05c78654175e8391d744cc66bd00326d255acd96e25079d398cbb44569597fcf9797a5 SHA512 cd7da1c5cbb92ad25ee4c4cc820216628f2943268f884acc6c67ee6f74e943c639b74ec05470b6497f606594b5c6544b1ac9ab98d5b2d5196c0f7c627a4ce06e
-EBUILD qr-code-generator-1.8.0.ebuild 714 BLAKE2B 1a4ada25ad86502d3d3762b1c0f8be9f3d7eaf088d4b794da365f29873ba60cae63e5095e95e0f4a98f37fcb5d195d46a665dd255cc6d701aa74b04bfaf9cac6 SHA512 a04660a3dde28bfbea9c66e3b76f866b9278eab27519ebe8ad32abfb27eec0bfe5251f39f3d50fd6d5e1a96668ee90256744db1715e5beaa42d575fa1b946908
+EBUILD qr-code-generator-1.8.0.ebuild 726 BLAKE2B 2226df51ae7bb6ac5aef0ef8601cc6c3ee0704675c71679c00ca43d56003d01ada1323c4b5ca7f0528ffb7b57f6225f4ffb37338512657ada43e9b18c5794be7 SHA512 b74933884b2f6304b3d75fa044be84a1ebdba3c2911aebadaf8d60aad900412b50aa416635bff686c76dc4d3771feb76beeb8a108a5e6d40b1343a5e5ed9d4e1
MISC metadata.xml 602 BLAKE2B b64d0fe7a660ae29b3cafae032139ff5f5e2a51651f8091bb48b36f33a8e627b14e7fbb223243f71ebb0b4e1cbf4489a5e6df9307f3cac61b73356ce731ac041 SHA512 eb0abf9d8095d705be741e9f1b57d9d3a9fb25b26b671533c8c30297b876b1bea9738c6e256b156eb3387d3b6eaea9cee331f35bd662904c2d1d848445f88b6b
diff --git a/dev-libs/qr-code-generator/qr-code-generator-1.8.0.ebuild b/dev-libs/qr-code-generator/qr-code-generator-1.8.0.ebuild
index 61a40ffe65b0..c188bc7119f3 100644
--- a/dev-libs/qr-code-generator/qr-code-generator-1.8.0.ebuild
+++ b/dev-libs/qr-code-generator/qr-code-generator-1.8.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023 Gentoo Authors
+# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -18,7 +18,7 @@ S="${WORKDIR}/QR-Code-generator-${PV}"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm64"
src_prepare() {
# Move the CMake files into the project root.
diff --git a/dev-libs/skalibs/Manifest b/dev-libs/skalibs/Manifest
index fd63801a3831..9e60f2a7fad5 100644
--- a/dev-libs/skalibs/Manifest
+++ b/dev-libs/skalibs/Manifest
@@ -2,6 +2,6 @@ DIST skalibs-2.13.1.1.tar.gz 229706 BLAKE2B 299beb3136492858e1dcf221e349fde9e3de
DIST skalibs-2.14.0.1.tar.gz 236327 BLAKE2B 6f95bfbdbb78ebf66f3b1d5bd7be2609194302d201d4e731f99feb1c9aaff459dfa4ddc4eb71e2b950b273547a4d0202cb55b348ef6e8556fe1c13133febe615 SHA512 6236b5a37209fb13fa643faf3fc71b2593168dd32be869f7d4c118b38fb37bc0728eea2bd9e9e4277d37eda81fcc85a43731934da06a7a6cf1e756b7973cd4ab
DIST skalibs-2.14.1.0.tar.gz 237166 BLAKE2B a787bd5aab7e22f1c49422a3010ff186a3324bcf97b32b954ef05cd8609bc19a48b06e1e14c58481f0507bad5c3bbf294121826e9fdd3f895cf5d2735ca01fe7 SHA512 41e76a52e49d8bf9458f7feee6cc85b8168a346e5688261293fc556462695b573b70c51b67d85aa0a788db1d6ecc1dfc450f8e8e9807812d149dab88028d98c0
EBUILD skalibs-2.13.1.1.ebuild 883 BLAKE2B 9de52e375172adb3009dbd55e9fb65272f5c1aa62e7a2a2b3752e818284820e5592635a8b762948d703d520a3ef55ce7da95640c7d01408b943745329ece8a1c SHA512 ef7428ff109d4b4858f6127343d3a92a8a4de4269074b588611ca1cc9e5fa6a20f2b9ebce2535d3b9a53dc22831f8270e8328af9e7a253b71ca3c4ab78d94511
-EBUILD skalibs-2.14.0.1.ebuild 900 BLAKE2B 4f4f6e4caf98386e28869b74d265ab9043923e6659296a5905790afc5b27c6c217aa3c0ab36618d9fea1e1733a9725c48ddffe62efffbb222d097481c7e9f827 SHA512 6b44c14a9f4ec3f4fa79f0b7fdcfb74d8dc48bd73d92e3577dd0f2b7759340f6a635615ec43943914076a2b9942ba9434cf352bf19a371a92963e462360d04bf
+EBUILD skalibs-2.14.0.1.ebuild 899 BLAKE2B a9e4b321cee50647a674b8d4a337f058c72efb0b10eebe9df391340d85731aff8a6936a3dab07eafd4d9f8d9dd3fe663e277d094ef326f36c0c507743da1ed40 SHA512 ac34af44991b4d6ec5d4def73c3f4887f91f98ae2c456e6116ec047f101aed925610edb8240877ac17833ff207468050ac46abc9cf7a8a4050e2387b76a7e588
EBUILD skalibs-2.14.1.0.ebuild 902 BLAKE2B 226e7ded1bcee3ddeefdc83ef2bb5d189af7149f7df46dae798fe4918a9580fe4a27f1b1035ba2ffaff7513e021781664d024cad888f33b370588adc4dd66c6c SHA512 b40dad57b813ab2ffb84f80d0ec66e96d544a31d279849db8f96f2e53edf14384995732db46f38c1f6a7bab259487a48102867732a87f45aa170b13a34aca504
MISC metadata.xml 355 BLAKE2B 66e0a671da1ad125bd77d9d05bf03ea2e4bb9f8ec0c91bfe2f5b87192ce2de48a5137105af6e34260fb53c0a858577bc63681a53436d40ae635d87b2a346da25 SHA512 c6240c87d05a08450803a5887077715842112da1fa49264a8594735909d07e76a25a10bff4b09e7cf6049081153f520ac12019d93384357b692734ce82b07089
diff --git a/dev-libs/skalibs/skalibs-2.14.0.1.ebuild b/dev-libs/skalibs/skalibs-2.14.0.1.ebuild
index 9e658744b9ab..ea5da9db95bb 100644
--- a/dev-libs/skalibs/skalibs-2.14.0.1.ebuild
+++ b/dev-libs/skalibs/skalibs-2.14.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -11,7 +11,7 @@ SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
LICENSE="ISC"
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~mips ~riscv x86"
+KEYWORDS="~alpha amd64 arm ~arm64 ~mips ~riscv x86"
HTML_DOCS=( doc/. )
diff --git a/dev-libs/spdlog/Manifest b/dev-libs/spdlog/Manifest
index 70a4827c6cfe..a1fd7dbdbd1c 100644
--- a/dev-libs/spdlog/Manifest
+++ b/dev-libs/spdlog/Manifest
@@ -4,7 +4,9 @@ AUX spdlog-force_external_fmt.patch 539 BLAKE2B 326f40d3d496e7373a77476d5aba237d
AUX spdlog-musl-1.2.4.patch 1428 BLAKE2B 22d1c0ada761c52f29e1a4dff0c16140741d78f878d14fc78fbfde9dbf7a73fe08e3b0bfa22c9e0ccfa4f631459bb6349c6a33f0e6ba5f646c2e56e731831bbe SHA512 8cc281e126eb0246a13880487a667e8672eb190810698b0737dd1211153e3b158e13a0bba8c57f8e72f5f3f0532b856c9ef9ab6c5825c694cb96c02877a73151
DIST spdlog-1.11.0.tar.gz 373033 BLAKE2B a05a535ba55641ecb3bf484eeff902f266bf3967cfbd619234ab0ca2d0c15bddb27b73ce43c33623d02fb046f621933cd52cf39f377f354182d9cdab33340f28 SHA512 210f3135c7af3ec774ef9a5c77254ce172a44e2fa720bf590e1c9214782bf5c8140ff683403a85b585868bc308286fbdeb1c988e4ed1eb3c75975254ffe75412
DIST spdlog-1.12.0.tar.gz 251037 BLAKE2B 3170f1e680fc4652ed8ddc0f74627aec22149f028def599fc5ed4db3a942d840006963789577f2e3df0e2b8ca1d98a881f3b96be5e1174fdf0acea15b3676d6e SHA512 db9a4f13b6c39ffde759db99bcdfe5e2dbe4231e73b29eb906a3fa78d6b8ec66920b8bd4371df17ae21b7b562472a236bc4435678f3af92b6496be090074181d
+DIST spdlog-1.13.0.tar.gz 264003 BLAKE2B 8ffeec847f082a0932f406ab44b4653661fdbe95a15f7b736367ee6d8f45ab36ca2182a9e9c6fba5c0688ab5436c16932b130541a8532cc2e5f4980e6340b929 SHA512 44fcb414ad9fbbe2a6d72c29143eeeae477b687ed30ae870d661b032a029ad4214ef43e7ef6350d02791d05504492978ade2d6733fab12ce4884d8f0bc4c6340
EBUILD spdlog-1.11.0-r3.ebuild 1066 BLAKE2B 2f9e5013ded134257381f8be7a545677ff1950018cbee2d6e56a1c668890c0d5c2a1f606473cfed9858155ee1e7ba15fc147bd0c0a2f54480be35d58525989ab SHA512 07fa9eb7b51213654f012761aa0d3c107499bcf9f07371b5fdfcccfefba5d378cb825bea61c618c8284759091030cd995fc454e132b541c8bf95cad043d78689
-EBUILD spdlog-1.12.0-r2.ebuild 1111 BLAKE2B f965bb7d15ee57895edc9a70076661687e0ccef444e66e87b556b8754a285fe30e045ec34d39581fa86026ab28e49f26155296d97498ebc17ea2914b3b699a2c SHA512 1bc38f614aeed8688f17d9d32b1706844358ab76e3b712e6fd3465869932bce53a8a71c2d6a9f2d8a52520e2043814959652c503a1d2c51b8a4a41acb84ff568
+EBUILD spdlog-1.12.0-r2.ebuild 1109 BLAKE2B 072bf95186a95a2c60401634d7408198c591c8e57863aa6fadb290f861da2253c64c39bc30e08a6f875b8ff8cc2049a323e511b5a5d271151d33b7ad895879da SHA512 70e1f219b6b88c9b162c59ae63b1acf60bcbdcb97288dfc1f1663916e3c337cb05b455e48386ef41c106063130f7cfb15bf193f24b4784ef2b84303a394482a5
+EBUILD spdlog-1.13.0.ebuild 1078 BLAKE2B 0ea422619dfe01a0aa8229eca9789e6d90837b2841dd65e9c1c5df19cf2837c10d26eff6ee05ef194a27176294c7446bc24845714ecccf62701c024d58e93816 SHA512 56b9588fbbaca09c64da1bbda9b5ddab76acb2811b0ec705b61b8ed336bafb49686e3f2450c5219e39f594b4fec39d02f9ff1fc782ae7e42b6026df6cc52ae20
EBUILD spdlog-9999.ebuild 1037 BLAKE2B dc327846fe1bb2ed5199ba13f53ba24b2040af8df5e6e094059d96436b1e882cf1fee83f92da10812ac738a4c50e8eaae3d0c7b1fe5fca72ca1e17831b647364 SHA512 fe9ec2e627e4dc8195bfee5892e966ee119bd6149e9002d5a8469f981d20e980fccb6bbeaf9eb90b564982ab479efe9f4cf2235a3db60cf4807b89e8296b9943
MISC metadata.xml 475 BLAKE2B cd5f474d10b31fb435f603c876f20d7a13c892eb6b10b4f135855fcd3c2da9ee5d9679ccf384de61472f36df06af8f49ac19c302a27fd0112b07a7da2dba1504 SHA512 89ddbd67b6fd5a54f035d068d71eac904b677d2370f9e15842eb442bc7e4ec9f579df8db2090480c3673d558371c6d7ca3a8f7b36c316ac54d47e4baa018381c
diff --git a/dev-libs/spdlog/spdlog-1.12.0-r2.ebuild b/dev-libs/spdlog/spdlog-1.12.0-r2.ebuild
index 6d7faea245b6..3e92d724e638 100644
--- a/dev-libs/spdlog/spdlog-1.12.0-r2.ebuild
+++ b/dev-libs/spdlog/spdlog-1.12.0-r2.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]]; then
EGIT_REPO_URI="https://github.com/gabime/${PN}"
else
SRC_URI="https://github.com/gabime/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 sparc x86"
fi
LICENSE="MIT"
diff --git a/dev-libs/spdlog/spdlog-1.13.0.ebuild b/dev-libs/spdlog/spdlog-1.13.0.ebuild
new file mode 100644
index 000000000000..bdb630b7d8d3
--- /dev/null
+++ b/dev-libs/spdlog/spdlog-1.13.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Fast C++ logging library"
+HOMEPAGE="https://github.com/gabime/spdlog"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/gabime/${PN}"
+else
+ SRC_URI="https://github.com/gabime/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ >=dev-cpp/catch-3.4.0
+ )
+"
+DEPEND="
+ >=dev-libs/libfmt-8.0.0:=
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-force_external_fmt.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+ rm -r include/spdlog/fmt/bundled || die "Failed to delete bundled libfmt"
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DSPDLOG_BUILD_BENCH=no
+ -DSPDLOG_BUILD_EXAMPLE=no
+ -DSPDLOG_FMT_EXTERNAL=yes
+ -DSPDLOG_BUILD_SHARED=yes
+ -DSPDLOG_BUILD_TESTS=$(usex test)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-libs/vala-common/Manifest b/dev-libs/vala-common/Manifest
index 1d048f6d30a6..4281f3d4c356 100644
--- a/dev-libs/vala-common/Manifest
+++ b/dev-libs/vala-common/Manifest
@@ -2,6 +2,6 @@ DIST vala-0.56.13.tar.xz 3999680 BLAKE2B 8ec1003a670f7349196e1f62a645fadf918f687
DIST vala-0.56.14.tar.xz 4003276 BLAKE2B db6ccca635122ff2089cd61fd8335376eed435f15d9bd7c20837829fe5acc8df49a51194e3bc17d0c24567240cf2519348cc2b0a7b177b971dc037ed39e893de SHA512 f13e7916acaba220bf8a0fb8825bf9a125fadcc13011c4e4f426e5d3a5af650543457294bede66dc5e1c742dd9b55f722a65b880e4737a6b480365c9df4c8c8b
DIST vala-0.56.8.tar.xz 3994328 BLAKE2B 4d68b102838a854b870865c6223dfb6cf56741db2cf918d393a4c279cc63a5e7af3464d256ef9a7c90eb5a8773812613315815c64a1b11e5b3fce86ac52278b6 SHA512 152a7378c42602296c5797d0425e51c2f9d2c65449f035158ef7f8dbf48f3a6a09e7c9028d196c967d8a9dfcdbd5f5deaa09ffcde5e2a335872e9740cd79ba41
EBUILD vala-common-0.56.13.ebuild 696 BLAKE2B 6f2e9998804c827aa65daa006a6f69bf9e78e5f11b882926fba70bdf1167b2244d668045b98a4ae1b695569b025cda2234e9729611b804b8adab79b0344cb4d4 SHA512 b2dba932b10631795c727a31e7cf03d924b5f738bc9ca17cccdc702970bac339474469b0f490d0a425f9fe777e9d6d455c8f9ac5876ef8fe0fa4acf17887784d
-EBUILD vala-common-0.56.14.ebuild 689 BLAKE2B 9d465c2d39750729bbe395eec9e6ef99b40eab21f2b956a7986c6eff136ed102c8c0306838089600a22bbd9d3647e27401cb352a3b23ae9f227f58a5836100ef SHA512 9c00f8c82af9a67b3fcad4de7a2d7aef4bacd6ec6072ca9362383a6baf5d177e7341a8064d19a07e1313b884a763f26a864a9b8556fdbb6c25b5926bdde35075
+EBUILD vala-common-0.56.14.ebuild 688 BLAKE2B 28196ed4908fcc410f0dbed71c06f82bfdced15ff2e2f3ba099e8073c251c0a5ae759157a5e49553dacd34fd4c4fd0530b7d82b33f2ddeae99a029e071c4a4cb SHA512 49474b0154c9e71579128d72d231ac18f0650a9e78bc23f925dbc75d69efd9f1e0900a87de745abbb163449bb94539cda7952159c395f64f510c348f4602c8c2
EBUILD vala-common-0.56.8.ebuild 688 BLAKE2B 43035d0285a4fc8cc360969b0cea254660cc6d1645499258c1ff9171797a522a0d8f3ae4736a3c33ed39c3788a5bdd750b6063958b60cc21b21a20823b55f27b SHA512 b030fde9c0945ac51e18acae0504fe7d7c2188a1972ac72c30227e38956f5abc106b07cc1dff66a1cd02d819d40426dfcd3e11bd42656c01a687519eec6dfb9b
MISC metadata.xml 426 BLAKE2B 5d4ef5f9505178faae0cd5ea94378517ca8fbf2304e3fa77880dceb4194f520bb62ac4c61e5c9b0f2125194fc9470cbe97ecf9708494031ef4d0f222de58c6b1 SHA512 f3fe4cdff9d1ac255e1c4f565edab3b01d569c93b77179bc1efe8de2843bb5e031bc442e76fd1bfe775fbaaadab87b0fec8f1839ade2bdc6c1d2eac08565834e
diff --git a/dev-libs/vala-common/vala-common-0.56.14.ebuild b/dev-libs/vala-common/vala-common-0.56.14.ebuild
index d787e07b54de..39e3c39dc4dc 100644
--- a/dev-libs/vala-common/vala-common-0.56.14.ebuild
+++ b/dev-libs/vala-common/vala-common-0.56.14.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -11,7 +11,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/Vala https://gitlab.gnome.org/GNOME/va
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
RDEPEND=""
DEPEND=""