diff options
Diffstat (limited to 'net')
117 files changed, 341 insertions, 2389 deletions
diff --git a/net/Makefile b/net/Makefile index 8b6f8ba0d8c0..4949a024b740 100644 --- a/net/Makefile +++ b/net/Makefile @@ -405,6 +405,7 @@ SUBDIR += libnfs SUBDIR += libngtcp2 SUBDIR += libngtcp2-gnutls + SUBDIR += libngtcp2-wolfssl SUBDIR += libnids SUBDIR += libnpupnp SUBDIR += libnss-cache @@ -1259,6 +1260,7 @@ SUBDIR += rtg SUBDIR += rtpproxy SUBDIR += rtptools + SUBDIR += rubygem-activestorage-gitlab SUBDIR += rubygem-activestorage52 SUBDIR += rubygem-activestorage60 SUBDIR += rubygem-activestorage61 @@ -1282,7 +1284,6 @@ SUBDIR += rubygem-cloudflare SUBDIR += rubygem-connection_pool SUBDIR += rubygem-devfile - SUBDIR += rubygem-devfile-gitlab SUBDIR += rubygem-docker-api SUBDIR += rubygem-dogapi SUBDIR += rubygem-domain_name diff --git a/net/akonadi-search/Makefile b/net/akonadi-search/Makefile index adb3203e158c..9a85ca9bbf74 100644 --- a/net/akonadi-search/Makefile +++ b/net/akonadi-search/Makefile @@ -1,5 +1,6 @@ PORTNAME= akonadi-search DISTVERSION= ${KDE_APPLICATIONS_VERSION} +PORTREVISION= 1 CATEGORIES= net kde kde-applications MAINTAINER= kde@FreeBSD.org diff --git a/net/bird3/Makefile b/net/bird3/Makefile index 8c27bcafdc41..e2ab2236fc95 100644 --- a/net/bird3/Makefile +++ b/net/bird3/Makefile @@ -1,7 +1,7 @@ PORTNAME= bird -DISTVERSION= 3.0.0 +DISTVERSION= 3.1.1 CATEGORIES= net -MASTER_SITES= https://bird.network.cz/download/ +MASTER_SITES= https://bird.nic.cz/download/ PKGNAMESUFFIX= 3 MAINTAINER= olivier@FreeBSD.org diff --git a/net/bird3/distinfo b/net/bird3/distinfo index 66fda3f7d35c..afb1fadf1af4 100644 --- a/net/bird3/distinfo +++ b/net/bird3/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1734554961 -SHA256 (bird-3.0.0.tar.gz) = 8130440a2e273ba6456df2fb3acb43da7cb4d566f94a294a3a52a1b118f2512a -SIZE (bird-3.0.0.tar.gz) = 2641569 +TIMESTAMP = 1747656270 +SHA256 (bird-3.1.1.tar.gz) = 297251974ff883e4ef03fccd6c912d116ed49ff2f1c63b66d1dba5f07094444a +SIZE (bird-3.1.1.tar.gz) = 2725214 diff --git a/net/bird3/files/patch-00-kernel-Fix-crash-for-merge-paths b/net/bird3/files/patch-00-kernel-Fix-crash-for-merge-paths deleted file mode 100644 index d008d4cf070c..000000000000 --- a/net/bird3/files/patch-00-kernel-Fix-crash-for-merge-paths +++ /dev/null @@ -1,38 +0,0 @@ -From b6caccfd45fb639b6dd3a8d140d3c5ba4cc79311 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Thu, 19 Dec 2024 11:00:15 +0100 -Subject: [PATCH] Kernel: Fix crash for merge paths on if no route is in BIRD - -There was a missing check for a NULL return value. -Also fixed an indenting error. - -Thanks to Radu Anghel for reporting it: -https://bird.network.cz/pipermail/bird-users/2024-December/017977.html ---- - nest/rt-table.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/nest/rt-table.c b/nest/rt-table.c -index fd8bb50dd..05191d743 100644 ---- nest/rt-table.c -+++ nest/rt-table.c -@@ -5265,14 +5265,14 @@ krt_export_net(struct channel *c, const net_addr *a, linpool *lp) - if (c->ra_mode == RA_MERGED) - { - struct rt_export_feed *feed = rt_net_feed(c->table, a, NULL); -- if (!feed->count_routes) -+ if (!feed || !feed->count_routes) - return NULL; - - if (!bmap_test(&c->export_accepted_map, feed->block[0].id)) - return NULL; - - return rt_export_merged(c, feed, lp, 1); -- } -+ } - - static _Thread_local rte best; - best = rt_net_best(c->table, a); --- -GitLab - diff --git a/net/bird3/files/patch-01-Table-not-feeding-twice b/net/bird3/files/patch-01-Table-not-feeding-twice deleted file mode 100644 index 4fb40a644fb2..000000000000 --- a/net/bird3/files/patch-01-Table-not-feeding-twice +++ /dev/null @@ -1,39 +0,0 @@ -From 0a2f92ad205d96d0be0945ecf2bb740b68d5a3c1 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Thu, 19 Dec 2024 11:54:05 +0100 -Subject: [PATCH] Table: not feeding twice, once is enough - -If there is no feed pending, the requested one should be -activated immediately, otherwise it is activated only after -the full run, effectively running first a full feed and -then the requested one. ---- - nest/rt-export.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/nest/rt-export.c b/nest/rt-export.c -index 7368447de..7d51e54cf 100644 ---- nest/rt-export.c -+++ nest/rt-export.c -@@ -357,8 +357,16 @@ rt_export_refeed_feeder(struct rt_export_feeder *f, struct rt_feeding_request *r - if (!rfr) - return; - -- rfr->next = f->feed_pending; -- f->feed_pending = rfr; -+ if (f->feeding) -+ { -+ rfr->next = f->feed_pending; -+ f->feed_pending = rfr; -+ } -+ else -+ { -+ rfr->next = NULL; -+ f->feeding = rfr; -+ } - } - - void rt_export_refeed_request(struct rt_export_request *rer, struct rt_feeding_request *rfr) --- -GitLab - diff --git a/net/bird3/files/patch-02-kernel-trace-the-final-result b/net/bird3/files/patch-02-kernel-trace-the-final-result deleted file mode 100644 index a3c97320f30e..000000000000 --- a/net/bird3/files/patch-02-kernel-trace-the-final-result +++ /dev/null @@ -1,53 +0,0 @@ -From ab74652f96c301dd2d2d2a831dd1a159ae1d5e02 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Thu, 19 Dec 2024 12:28:27 +0100 -Subject: [PATCH] Kernel: when channel traces, we have to trace the final - result - -Otherwise it looks like we are sending too much traffic to netlink -every other while, which is not true. Now we can disambiguate between -in-kernel updates and ignored routes. ---- - sysdep/unix/krt.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c -index 2770b8be2..34882b88f 100644 ---- sysdep/unix/krt.c -+++ sysdep/unix/krt.c -@@ -672,7 +672,7 @@ krt_preexport(struct channel *C, rte *e) - } - - static void --krt_rt_notify(struct proto *P, struct channel *ch UNUSED, const net_addr *net, -+krt_rt_notify(struct proto *P, struct channel *ch, const net_addr *net, - rte *new, const rte *old) - { - struct krt_proto *p = (struct krt_proto *) P; -@@ -688,13 +688,21 @@ krt_rt_notify(struct proto *P, struct channel *ch UNUSED, const net_addr *net, - case KPS_IDLE: - case KPS_PRUNING: - if (new && bmap_test(&p->seen_map, new->id)) -- /* Already installed and seen in the kernel dump */ -- return; -+ if (ch->debug & D_ROUTES) -+ { -+ /* Already installed and seen in the kernel dump */ -+ log(L_TRACE "%s.%s: %N already in kernel", -+ P->name, ch->name, net); -+ return; -+ } - - /* fall through */ - case KPS_SCANNING: - /* Actually replace the route */ - krt_replace_rte(p, net, new, old); -+ if (ch->debug & D_ROUTES) -+ log(L_TRACE "%s.%s: %N %s kernel", -+ P->name, ch->name, net, old ? "replaced in" : "added to"); - break; - - } --- -GitLab - diff --git a/net/bird3/files/patch-03-BGP-fix-locking-order b/net/bird3/files/patch-03-BGP-fix-locking-order deleted file mode 100644 index 51b73c26f8f8..000000000000 --- a/net/bird3/files/patch-03-BGP-fix-locking-order +++ /dev/null @@ -1,176 +0,0 @@ -From 6779e5da698feb9b9e02411859ad81885ba46c01 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Fri, 20 Dec 2024 11:28:00 +0100 -Subject: [PATCH] BGP: fix locking order error on dynamic protocol spawn - -We missed that the protocol spawner violates the prescribed -locking order. When the rtable level is locked, no new protocol can be -started, thus we need to: - -* create the protocol from a clean mainloop context -* in protocol start hook, take the socket - -Testsuite: cf-bgp-autopeer -Fixes: #136 - -Thanks to Job Snijders <job@fastly.com> for reporting: -https://trubka.network.cz/pipermail/bird-users/2024-December/017980.html ---- - nest/proto.c | 19 +++++++++++++++++++ - nest/protocol.h | 2 ++ - proto/bgp/bgp.c | 46 +++++++++++++++++++++++++++++++++++----------- - 3 files changed, 56 insertions(+), 11 deletions(-) - -diff --git a/nest/proto.c b/nest/proto.c -index dded84f51..678697d69 100644 ---- nest/proto.c -+++ nest/proto.c -@@ -1867,6 +1867,25 @@ proto_spawn(struct proto_config *cf, uint disabled) - return p; - } - -+bool -+proto_disable(struct proto *p) -+{ -+ ASSERT_DIE(birdloop_inside(&main_birdloop)); -+ bool changed = !p->disabled; -+ p->disabled = 1; -+ proto_rethink_goal(p); -+ return changed; -+} -+ -+bool -+proto_enable(struct proto *p) -+{ -+ ASSERT_DIE(birdloop_inside(&main_birdloop)); -+ bool changed = p->disabled; -+ p->disabled = 0; -+ proto_rethink_goal(p); -+ return changed; -+} - - /** - * DOC: Graceful restart recovery -diff --git a/nest/protocol.h b/nest/protocol.h -index 25ed6f553..cf7ecb898 100644 ---- nest/protocol.h -+++ nest/protocol.h -@@ -78,6 +78,8 @@ void proto_build(struct protocol *); /* Called from protocol to register itself - void protos_preconfig(struct config *); - void protos_commit(struct config *new, struct config *old, int type); - struct proto * proto_spawn(struct proto_config *cf, uint disabled); -+bool proto_disable(struct proto *p); -+bool proto_enable(struct proto *p); - void protos_dump_all(struct dump_request *); - - #define GA_UNKNOWN 0 /* Attribute not recognized */ -diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c -index 5fc2b5fff..3170e3a42 100644 ---- proto/bgp/bgp.c -+++ proto/bgp/bgp.c -@@ -378,8 +378,6 @@ bgp_startup(struct bgp_proto *p) - if (p->postponed_sk) - { - /* Apply postponed incoming connection */ -- sk_reloop(p->postponed_sk, p->p.loop); -- - bgp_setup_conn(p, &p->incoming_conn); - bgp_setup_sk(&p->incoming_conn, p->postponed_sk); - bgp_send_open(&p->incoming_conn); -@@ -583,6 +581,9 @@ bgp_graceful_close_conn(struct bgp_conn *conn, int subcode, byte *data, uint len - static void - bgp_down(struct bgp_proto *p) - { -+ /* Check that the dynamic BGP socket has been picked up */ -+ ASSERT_DIE(p->postponed_sk == NULL); -+ - if (bgp_start_state(p) > BSS_PREPARE) - { - bgp_setup_auth(p, 0); -@@ -617,8 +618,8 @@ bgp_decision(void *vp) - bgp_down(p); - } - --static struct bgp_proto * --bgp_spawn(struct bgp_proto *pp, ip_addr remote_ip) -+static void -+bgp_spawn(struct bgp_proto *pp, struct birdsock *sk) - { - struct symbol *sym; - char fmt[SYM_MAX_LEN]; -@@ -635,9 +636,16 @@ bgp_spawn(struct bgp_proto *pp, ip_addr remote_ip) - cfg_mem = NULL; - - /* Just pass remote_ip to bgp_init() */ -- ((struct bgp_config *) sym->proto)->remote_ip = remote_ip; -+ ((struct bgp_config *) sym->proto)->remote_ip = sk->daddr; -+ -+ /* Create the protocol disabled initially */ -+ SKIP_BACK_DECLARE(struct bgp_proto, p, p, proto_spawn(sym->proto, 1)); - -- return (void *) proto_spawn(sym->proto, 0); -+ /* Pass the socket */ -+ p->postponed_sk = sk; -+ -+ /* And enable the protocol */ -+ proto_enable(&p->p); - } - - void -@@ -1489,10 +1497,15 @@ bgp_incoming_connection(sock *sk, uint dummy UNUSED) - /* For dynamic BGP, spawn new instance and postpone the socket */ - if (bgp_is_dynamic(p)) - { -- p = bgp_spawn(p, sk->daddr); -- p->postponed_sk = sk; -- rmove(sk, p->p.pool); -- goto leave; -+ UNLOCK_DOMAIN(rtable, bgp_listen_domain); -+ -+ /* The dynamic protocol must be in the START state */ -+ ASSERT_DIE(p->p.proto_state == PS_START); -+ birdloop_leave(p->p.loop); -+ -+ /* Now we have a clean mainloop */ -+ bgp_spawn(p, sk); -+ return 0; - } - - rmove(sk, p->p.pool); -@@ -1806,7 +1819,6 @@ bgp_start(struct proto *P) - p->incoming_conn.state = BS_IDLE; - p->neigh = NULL; - p->bfd_req = NULL; -- p->postponed_sk = NULL; - p->gr_ready = 0; - p->gr_active_num = 0; - -@@ -1848,6 +1860,16 @@ bgp_start(struct proto *P) - channel_graceful_restart_lock(&c->c); - } - -+ /* Now it's the last chance to move the postponed socket to this BGP, -+ * as bgp_start is the only hook running from main loop. */ -+ if (p->postponed_sk) -+ { -+ LOCK_DOMAIN(rtable, bgp_listen_domain); -+ rmove(p->postponed_sk, p->p.pool); -+ sk_reloop(p->postponed_sk, p->p.loop); -+ UNLOCK_DOMAIN(rtable, bgp_listen_domain); -+ } -+ - /* - * Before attempting to create the connection, we need to lock the port, - * so that we are the only instance attempting to talk with that neighbor. -@@ -1999,6 +2021,8 @@ bgp_init(struct proto_config *CF) - p->remote_ip = cf->remote_ip; - p->remote_as = cf->remote_as; - -+ p->postponed_sk = NULL; -+ - /* Hack: We use cf->remote_ip just to pass remote_ip from bgp_spawn() */ - if (cf->c.parent) - cf->remote_ip = IPA_NONE; --- -GitLab - diff --git a/net/bird3/files/patch-04-BFD-Fix-session-locking-order b/net/bird3/files/patch-04-BFD-Fix-session-locking-order deleted file mode 100644 index 3f5500500691..000000000000 --- a/net/bird3/files/patch-04-BFD-Fix-session-locking-order +++ /dev/null @@ -1,400 +0,0 @@ -From 83495362789d961914c4bfaa590e31cb17370ed0 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Sat, 21 Dec 2024 19:02:22 +0100 -Subject: [PATCH] BFD: Fix session reconfiguration locking order - -The sessions have to be updated asynchronously to avoid -cross-locking between protocols. - -Testsuite: cf-ibgp-bfd-switch, cf-ibgp-multi-bfd-auth -Fixes: #139 - -Thanks to Daniel Suchy <danny@danysek.cz> for reporting: -https://trubka.network.cz/pipermail/bird-users/2024-December/017984.html ---- - nest/bfd.h | 7 ++- - proto/bfd/bfd.c | 144 +++++++++++++++++++++++--------------------- - proto/bfd/bfd.h | 21 +------ - proto/bfd/config.Y | 42 +++++-------- - proto/bfd/packets.c | 4 +- - 5 files changed, 98 insertions(+), 120 deletions(-) - -diff --git a/nest/bfd.h b/nest/bfd.h -index 5dacff5d7..c046152f8 100644 ---- nest/bfd.h -+++ nest/bfd.h -@@ -18,8 +18,11 @@ struct bfd_options { - u32 min_tx_int; - u32 idle_tx_int; - u8 multiplier; -- u8 passive; -- u8 passive_set; -+ PACKED enum bfd_opt_passive { -+ BFD_OPT_PASSIVE_UNKNOWN = 0, -+ BFD_OPT_PASSIVE, -+ BFD_OPT_NOT_PASSIVE, -+ } passive; - u8 mode; - u8 auth_type; /* Authentication type (BFD_AUTH_*) */ - list *passwords; /* Passwords for authentication */ -diff --git a/proto/bfd/bfd.c b/proto/bfd/bfd.c -index 34f992b93..4997f803a 100644 ---- proto/bfd/bfd.c -+++ proto/bfd/bfd.c -@@ -172,17 +172,17 @@ static void bfd_free_iface(struct bfd_iface *ifa); - * BFD sessions - */ - --static inline struct bfd_session_config --bfd_merge_options(const struct bfd_iface_config *cf, const struct bfd_options *opts) -+static inline struct bfd_options -+bfd_merge_options(const struct bfd_options *bottom, const struct bfd_options *top) - { -- return (struct bfd_session_config) { -- .min_rx_int = opts->min_rx_int ?: cf->min_rx_int, -- .min_tx_int = opts->min_tx_int ?: cf->min_tx_int, -- .idle_tx_int = opts->idle_tx_int ?: cf->idle_tx_int, -- .multiplier = opts->multiplier ?: cf->multiplier, -- .passive = opts->passive_set ? opts->passive : cf->passive, -- .auth_type = opts->auth_type ?: cf->auth_type, -- .passwords = opts->passwords ?: cf->passwords, -+ return (struct bfd_options) { -+ .min_rx_int = top->min_rx_int ?: bottom->min_rx_int, -+ .min_tx_int = top->min_tx_int ?: bottom->min_tx_int, -+ .idle_tx_int = top->idle_tx_int ?: bottom->idle_tx_int, -+ .multiplier = top->multiplier ?: bottom->multiplier, -+ .passive = top->passive ?: bottom->passive, -+ .auth_type = top->auth_type ?: bottom->auth_type, -+ .passwords = top->passwords ?: bottom->passwords, - }; - } - -@@ -478,7 +478,7 @@ bfd_add_session(struct bfd_proto *p, ip_addr addr, ip_addr local, struct iface * - HASH_INSERT(p->session_hash_id, HASH_ID, s); - HASH_INSERT(p->session_hash_ip, HASH_IP, s); - -- s->cf = bfd_merge_options(ifa->cf, opts); -+ s->cf = bfd_merge_options(&ifa->cf->opts, opts); - - /* Initialization of state variables - see RFC 5880 6.8.1 */ - s->loc_state = BFD_STATE_DOWN; -@@ -561,26 +561,58 @@ bfd_remove_session(struct bfd_proto *p, struct bfd_session *s) - birdloop_leave(p->p.loop); - } - -+struct bfd_reconfigure_sessions_deferred_call { -+ struct deferred_call dc; -+ struct bfd_proto *p; -+ config_ref old_config; -+}; -+ - static void --bfd_reconfigure_session(struct bfd_proto *p, struct bfd_session *s) -+bfd_reconfigure_sessions(struct deferred_call *dc) - { -- if (EMPTY_LIST(s->request_list)) -- return; -+ SKIP_BACK_DECLARE(struct bfd_reconfigure_sessions_deferred_call, -+ brsdc, dc, dc); - -- ASSERT_DIE(birdloop_inside(p->p.loop)); -+ struct bfd_proto *p = brsdc->p; -+ birdloop_enter(p->p.loop); - -- SKIP_BACK_DECLARE(struct bfd_request, req, n, HEAD(s->request_list)); -- s->cf = bfd_merge_options(s->ifa->cf, &req->opts); -+ HASH_WALK(p->session_hash_id, next_id, s) -+ { -+ if (!EMPTY_LIST(s->request_list)) -+ { -+ SKIP_BACK_DECLARE(struct bfd_request, req, n, HEAD(s->request_list)); -+ struct bfd_options opts = bfd_merge_options(&s->ifa->cf->opts, &req->opts); - -- u32 tx = (s->loc_state == BFD_STATE_UP) ? s->cf.min_tx_int : s->cf.idle_tx_int; -- bfd_session_set_min_tx(s, tx); -- bfd_session_set_min_rx(s, s->cf.min_rx_int); -- s->detect_mult = s->cf.multiplier; -- s->passive = s->cf.passive; -+#define CHK(x) (opts.x != s->cf.x) || -+ bool reload = MACRO_FOREACH(CHK, -+ min_rx_int, -+ min_tx_int, -+ idle_tx_int, -+ multiplier, -+ passive) false; /* terminating the || chain */ -+#undef CHK - -- bfd_session_control_tx_timer(s, 0); -+ s->cf = opts; -+ -+ if (reload) -+ { -+ u32 tx = (s->loc_state == BFD_STATE_UP) ? s->cf.min_tx_int : s->cf.idle_tx_int; -+ bfd_session_set_min_tx(s, tx); -+ bfd_session_set_min_rx(s, s->cf.min_rx_int); -+ s->detect_mult = s->cf.multiplier; -+ s->passive = s->cf.passive; -+ -+ bfd_session_control_tx_timer(s, 0); -+ -+ TRACE(D_EVENTS, "Session to %I reconfigured", s->addr); -+ } -+ } -+ } -+ HASH_WALK_END; -+ birdloop_leave(p->p.loop); - -- TRACE(D_EVENTS, "Session to %I reconfigured", s->addr); -+ /* Now the config is clean */ -+ OBSREF_CLEAR(brsdc->old_config); - } - - -@@ -589,10 +621,12 @@ bfd_reconfigure_session(struct bfd_proto *p, struct bfd_session *s) - */ - - static struct bfd_iface_config bfd_default_iface = { -- .min_rx_int = BFD_DEFAULT_MIN_RX_INT, -- .min_tx_int = BFD_DEFAULT_MIN_TX_INT, -- .idle_tx_int = BFD_DEFAULT_IDLE_TX_INT, -- .multiplier = BFD_DEFAULT_MULTIPLIER, -+ .opts = { -+ .min_rx_int = BFD_DEFAULT_MIN_RX_INT, -+ .min_tx_int = BFD_DEFAULT_MIN_TX_INT, -+ .idle_tx_int = BFD_DEFAULT_IDLE_TX_INT, -+ .multiplier = BFD_DEFAULT_MULTIPLIER, -+ }, - }; - - static inline struct bfd_iface_config * -@@ -650,24 +684,6 @@ bfd_free_iface(struct bfd_iface *ifa) - mb_free(ifa); - } - --static void --bfd_reconfigure_iface(struct bfd_proto *p UNUSED, struct bfd_iface *ifa, struct bfd_config *nc) --{ -- struct bfd_iface_config *new = bfd_find_iface_config(nc, ifa->iface); -- struct bfd_iface_config *old = ifa->cf; -- -- /* Check options that are handled in bfd_reconfigure_session() */ -- ifa->changed = -- (new->min_rx_int != old->min_rx_int) || -- (new->min_tx_int != old->min_tx_int) || -- (new->idle_tx_int != old->idle_tx_int) || -- (new->multiplier != old->multiplier) || -- (new->passive != old->passive); -- -- /* This should be probably changed to not access ifa->cf from the BFD thread */ -- ifa->cf = new; --} -- - - /* - * BFD requests -@@ -900,20 +916,7 @@ bfd_request_session(pool *p, ip_addr addr, ip_addr local, - void - bfd_update_request(struct bfd_request *req, const struct bfd_options *opts) - { -- struct bfd_session *s = req->session; -- -- if (!memcmp(opts, &req->opts, sizeof(const struct bfd_options))) -- return; -- - req->opts = *opts; -- -- if (s) -- { -- struct bfd_proto *p = s->ifa->bfd; -- birdloop_enter(p->p.loop); -- bfd_reconfigure_session(p, s); -- birdloop_leave(p->p.loop); -- } - } - - static void -@@ -1193,21 +1196,22 @@ bfd_reconfigure(struct proto *P, struct proto_config *c) - (new->zero_udp6_checksum_rx != old->zero_udp6_checksum_rx)) - return 0; - -- birdloop_mask_wakeups(p->p.loop); -- - WALK_LIST(ifa, p->iface_list) -- bfd_reconfigure_iface(p, ifa, new); -- -- HASH_WALK(p->session_hash_id, next_id, s) -- { -- if (s->ifa->changed) -- bfd_reconfigure_session(p, s); -- } -- HASH_WALK_END; -+ ifa->cf = bfd_find_iface_config(new, ifa->iface); - - bfd_reconfigure_neighbors(p, new); - -- birdloop_unmask_wakeups(p->p.loop); -+ /* Sessions get reconfigured after all the config is applied */ -+ struct bfd_reconfigure_sessions_deferred_call brsdc = { -+ .dc.hook = bfd_reconfigure_sessions, -+ .p = p, -+ }; -+ SKIP_BACK_DECLARE(struct bfd_reconfigure_sessions_deferred_call, -+ brsdcp, dc, defer_call(&brsdc.dc, sizeof brsdc)); -+ -+ /* We need to keep the old config alive until all the sessions get -+ * reconfigured */ -+ OBSREF_SET(brsdcp->old_config, P->cf->global); - - return 1; - } -diff --git a/proto/bfd/bfd.h b/proto/bfd/bfd.h -index 578ce8755..107829b72 100644 ---- proto/bfd/bfd.h -+++ proto/bfd/bfd.h -@@ -54,24 +54,7 @@ struct bfd_config - struct bfd_iface_config - { - struct iface_patt i; -- u32 min_rx_int; -- u32 min_tx_int; -- u32 idle_tx_int; -- u8 multiplier; -- u8 passive; -- u8 auth_type; /* Authentication type (BFD_AUTH_*) */ -- list *passwords; /* Passwords for authentication */ --}; -- --struct bfd_session_config --{ -- u32 min_rx_int; -- u32 min_tx_int; -- u32 idle_tx_int; -- u8 multiplier; -- u8 passive; -- u8 auth_type; /* Authentication type (BFD_AUTH_*) */ -- list *passwords; /* Passwords for authentication */ -+ struct bfd_options opts; - }; - - struct bfd_neighbor -@@ -146,7 +129,7 @@ struct bfd_session - u32 loc_id; /* Local session ID (local discriminator) */ - u32 rem_id; /* Remote session ID (remote discriminator) */ - -- struct bfd_session_config cf; /* Static configuration parameters */ -+ struct bfd_options cf; /* Static configuration parameters */ - - u32 des_min_tx_int; /* Desired min rx interval, local option */ - u32 des_min_tx_new; /* Used for des_min_tx_int change */ -diff --git a/proto/bfd/config.Y b/proto/bfd/config.Y -index 9e9919c4e..56d1ffac4 100644 ---- proto/bfd/config.Y -+++ proto/bfd/config.Y -@@ -86,44 +86,37 @@ bfd_iface_start: - add_tail(&BFD_CFG->patt_list, NODE this_ipatt); - init_list(&this_ipatt->ipn_list); - -- BFD_IFACE->min_rx_int = BFD_DEFAULT_MIN_RX_INT; -- BFD_IFACE->min_tx_int = BFD_DEFAULT_MIN_TX_INT; -- BFD_IFACE->idle_tx_int = BFD_DEFAULT_IDLE_TX_INT; -- BFD_IFACE->multiplier = BFD_DEFAULT_MULTIPLIER; -+ this_bfd_opts = &BFD_IFACE->opts; -+ -+ this_bfd_opts->min_rx_int = BFD_DEFAULT_MIN_RX_INT; -+ this_bfd_opts->min_tx_int = BFD_DEFAULT_MIN_TX_INT; -+ this_bfd_opts->idle_tx_int = BFD_DEFAULT_IDLE_TX_INT; -+ this_bfd_opts->multiplier = BFD_DEFAULT_MULTIPLIER; - - reset_passwords(); - }; - - bfd_iface_finish: - { -- BFD_IFACE->passwords = get_passwords(); -+ this_bfd_opts->passwords = get_passwords(); - -- if (!BFD_IFACE->auth_type != !BFD_IFACE->passwords) -+ if (!this_bfd_opts->auth_type != !this_bfd_opts->passwords) - cf_warn("Authentication and password options should be used together"); - -- if (BFD_IFACE->passwords) -+ if (this_bfd_opts->passwords) - { - struct password_item *pass; -- WALK_LIST(pass, *BFD_IFACE->passwords) -+ WALK_LIST(pass, *this_bfd_opts->passwords) - { - if (pass->alg) - cf_error("Password algorithm option not available in BFD protocol"); - -- pass->alg = bfd_auth_type_to_hash_alg[BFD_IFACE->auth_type]; -+ pass->alg = bfd_auth_type_to_hash_alg[this_bfd_opts->auth_type]; - } - } --}; - --bfd_iface_item: -- INTERVAL expr_us { BFD_IFACE->min_rx_int = BFD_IFACE->min_tx_int = $2; } -- | MIN RX INTERVAL expr_us { BFD_IFACE->min_rx_int = $4; } -- | MIN TX INTERVAL expr_us { BFD_IFACE->min_tx_int = $4; } -- | IDLE TX INTERVAL expr_us { BFD_IFACE->idle_tx_int = $4; } -- | MULTIPLIER expr { BFD_IFACE->multiplier = $2; } -- | PASSIVE bool { BFD_IFACE->passive = $2; } -- | AUTHENTICATION bfd_auth_type { BFD_IFACE->auth_type = $2; } -- | password_list {} -- ; -+ this_bfd_opts = NULL; -+}; - - bfd_auth_type: - NONE { $$ = BFD_AUTH_NONE; } -@@ -134,14 +127,9 @@ bfd_auth_type: - | METICULOUS KEYED SHA1 { $$ = BFD_AUTH_METICULOUS_KEYED_SHA1; } - ; - --bfd_iface_opts: -- /* empty */ -- | bfd_iface_opts bfd_iface_item ';' -- ; -- - bfd_iface_opt_list: - /* empty */ -- | '{' bfd_iface_opts '}' -+ | '{' bfd_items '}' - ; - - bfd_iface: -@@ -194,7 +182,7 @@ bfd_item: - | MIN TX INTERVAL expr_us { this_bfd_opts->min_tx_int = $4; } - | IDLE TX INTERVAL expr_us { this_bfd_opts->idle_tx_int = $4; } - | MULTIPLIER expr { this_bfd_opts->multiplier = $2; } -- | PASSIVE bool { this_bfd_opts->passive = $2; this_bfd_opts->passive_set = 1; } -+ | PASSIVE bool { this_bfd_opts->passive = $2 ? BFD_OPT_PASSIVE : BFD_OPT_NOT_PASSIVE; } - | GRACEFUL { this_bfd_opts->mode = BGP_BFD_GRACEFUL; } - | AUTHENTICATION bfd_auth_type { this_bfd_opts->auth_type = $2; } - | password_list {} -diff --git a/proto/bfd/packets.c b/proto/bfd/packets.c -index 1ceb470c1..f8bd63d73 100644 ---- proto/bfd/packets.c -+++ proto/bfd/packets.c -@@ -109,7 +109,7 @@ const u8 bfd_auth_type_to_hash_alg[] = { - static void - bfd_fill_authentication(struct bfd_proto *p, struct bfd_session *s, struct bfd_ctl_packet *pkt) - { -- struct bfd_session_config *cf = &s->cf; -+ struct bfd_options *cf = &s->cf; - struct password_item *pass = password_find(cf->passwords, 0); - uint meticulous = 0; - -@@ -179,7 +179,7 @@ bfd_fill_authentication(struct bfd_proto *p, struct bfd_session *s, struct bfd_c - static int - bfd_check_authentication(struct bfd_proto *p, struct bfd_session *s, struct bfd_ctl_packet *pkt) - { -- struct bfd_session_config *cf = &s->cf; -+ struct bfd_options *cf = &s->cf; - const char *err_dsc = NULL; - uint err_val = 0; - uint auth_type = 0; --- -GitLab - diff --git a/net/bird3/files/patch-05-mainloop-dropped-old-socket b/net/bird3/files/patch-05-mainloop-dropped-old-socket deleted file mode 100644 index eea4d1d26af2..000000000000 --- a/net/bird3/files/patch-05-mainloop-dropped-old-socket +++ /dev/null @@ -1,86 +0,0 @@ -From 3d1f19e335f55c8cfa3cb7ca9d7b88ca03173d8e Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Sun, 22 Dec 2024 21:32:28 +0100 -Subject: [PATCH] Mainloop: Dropped old socket prioritization magic - -This is now done in worker threads and the mainloop needs to do other things, -most notably kernel and CLI, with less overhead of repeatedly checking poll. ---- - sysdep/unix/io-loop.c | 2 +- - sysdep/unix/io.c | 21 +++++++-------------- - 2 files changed, 8 insertions(+), 15 deletions(-) - -diff --git a/sysdep/unix/io-loop.c b/sysdep/unix/io-loop.c -index f69189e06..a72c69a03 100644 ---- sysdep/unix/io-loop.c -+++ sysdep/unix/io-loop.c -@@ -1403,7 +1403,7 @@ bool task_still_in_limit(void) - { - static u64 main_counter = 0; - if (this_birdloop == &main_birdloop) -- return (++main_counter % 2048); /* This is a hack because of no accounting in mainloop */ -+ return (++main_counter % 512); /* This is a hack because of no accounting in mainloop */ - else - return ns_now() < account_last + this_thread->max_loop_time_ns; - } -diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c -index f9785c074..51395e1e9 100644 ---- sysdep/unix/io.c -+++ sysdep/unix/io.c -@@ -53,14 +53,15 @@ - - /* Maximum number of calls of tx handler for one socket in one - * poll iteration. Should be small enough to not monopolize CPU by -- * one protocol instance. -+ * one protocol instance. But as most of the problems are now offloaded -+ * to worker threads, too low values may actually bring problems with -+ * latency. - */ --#define MAX_STEPS 4 -+#define MAX_STEPS 2048 - - /* Maximum number of calls of rx handler for all sockets in one poll -- iteration. RX callbacks are often much more costly so we limit -- this to gen small latencies */ --#define MAX_RX_STEPS 4 -+ iteration. RX callbacks are often a little bit more costly. */ -+#define MAX_RX_STEPS 512 - - - /* -@@ -2581,8 +2582,6 @@ io_init(void) - srandom((uint) (now ^ (now >> 32))); - } - --static int short_loops = 0; --#define SHORT_LOOP_MAX 10 - #define WORK_EVENTS_MAX 10 - - sock *stored_sock; -@@ -2670,10 +2669,9 @@ io_loop(void) - { - if (pfd.pfd.data[0].revents & POLLIN) - { -- /* IO loop reload requested */ -+ /* Somebody sent an event to mainloop */ - pipe_drain(&main_birdloop.thread->wakeup); - atomic_fetch_and_explicit(&main_birdloop.thread_transition, ~LTT_PING, memory_order_acq_rel); -- continue; - } - - times_update(); -@@ -2719,11 +2717,6 @@ io_loop(void) - main_birdloop.sock_active = sk_next(s); - } - -- short_loops++; -- if (events && (short_loops < SHORT_LOOP_MAX)) -- continue; -- short_loops = 0; -- - int count = 0; - main_birdloop.sock_active = stored_sock; - if (main_birdloop.sock_active == NULL) --- -GitLab - diff --git a/net/bird3/files/patch-06-cli-allocate-tx-buffers b/net/bird3/files/patch-06-cli-allocate-tx-buffers deleted file mode 100644 index 0e9af5de5d63..000000000000 --- a/net/bird3/files/patch-06-cli-allocate-tx-buffers +++ /dev/null @@ -1,134 +0,0 @@ -From de9dbee796876f5b621e40e0082612aad746cac1 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Sun, 22 Dec 2024 22:10:38 +0100 -Subject: [PATCH] CLI: allocate TX buffers as pages, not by malloc - -Every malloc risks heap bloating and these blocks are already -the same size as pages. ---- - nest/cli.c | 59 ++++++++++++++++++++++++++++++++++++++++++------------ - nest/cli.h | 2 +- - 2 files changed, 47 insertions(+), 14 deletions(-) - -diff --git a/nest/cli.c b/nest/cli.c -index 3b8e6f468..b33ffd437 100644 ---- nest/cli.c -+++ nest/cli.c -@@ -81,13 +81,14 @@ cli_alloc_out(cli *c, int size) - o = c->tx_buf; - else - { -- o = mb_alloc(c->pool, sizeof(struct cli_out) + CLI_TX_BUF_SIZE); -+ o = alloc_page(); -+ c->tx_pending_count++; - if (c->tx_write) - c->tx_write->next = o; - else - c->tx_buf = o; - o->wpos = o->outpos = o->buf; -- o->end = o->buf + CLI_TX_BUF_SIZE; -+ o->end = (void *) o + page_size; - } - c->tx_write = o; - if (!c->tx_pos) -@@ -167,19 +168,18 @@ cli_hello(cli *c) - static void - cli_free_out(cli *c) - { -- struct cli_out *o, *p; -+ for (struct cli_out *o = c->tx_buf, *n; o; o = n) -+ { -+ n = o->next; -+ free_page(o); -+ c->tx_pending_count--; -+ } - -- if (o = c->tx_buf) -- { -- o->wpos = o->outpos = o->buf; -- while (p = o->next) -- { -- o->next = p->next; -- mb_free(p); -- } -- } -+ c->tx_buf = NULL; - c->tx_write = c->tx_pos = NULL; - c->async_msg_size = 0; -+ -+ ASSERT_DIE(c->tx_pending_count == 0); - } - - void -@@ -189,6 +189,38 @@ cli_written(cli *c) - ev_schedule(c->event); - } - -+/* A dummy resource to show and free memory pages allocated for pending TX */ -+struct cli_tx_resource { -+ resource r; -+ struct cli *c; -+}; -+ -+static void -+cli_tx_resource_free(resource *r) -+{ -+ cli_free_out(SKIP_BACK(struct cli_tx_resource, r, r)->c); -+} -+ -+static void -+cli_tx_resource_dump(struct dump_request *dreq UNUSED, resource *r UNUSED) {} -+ -+static struct resmem -+cli_tx_resource_memsize(resource *r) -+{ -+ return (struct resmem) { -+ .effective = SKIP_BACK(struct cli_tx_resource, r, r)->c->tx_pending_count * page_size, -+ .overhead = sizeof(struct cli_tx_resource), -+ }; -+} -+ -+static struct resclass cli_tx_resource_class = { -+ .name = "CLI TX buffers", -+ .size = sizeof (struct cli_tx_resource), -+ .free = cli_tx_resource_free, -+ .dump = cli_tx_resource_dump, -+ .memsize = cli_tx_resource_memsize, -+}; -+ - - static byte *cli_rh_pos; - static uint cli_rh_len; -@@ -272,7 +304,8 @@ cli * - cli_new(struct birdsock *sock, struct cli_config *cf) - { - pool *p = rp_new(cli_pool, the_bird_domain.the_bird, "CLI"); -- cli *c = mb_alloc(p, sizeof(cli)); -+ struct cli_tx_resource *ctr = ralloc(p, &cli_tx_resource_class); -+ cli *c = ctr->c = mb_alloc(p, sizeof(cli)); - - bzero(c, sizeof(cli)); - c->pool = p; -diff --git a/nest/cli.h b/nest/cli.h -index d86ec3801..671be04d8 100644 ---- nest/cli.h -+++ nest/cli.h -@@ -17,7 +17,6 @@ - #include "conf/conf.h" - - #define CLI_RX_BUF_SIZE 4096 --#define CLI_TX_BUF_SIZE 4096 - #define CLI_MAX_ASYNC_QUEUE 4096 - - #define CLI_MSG_SIZE 500 -@@ -49,6 +48,7 @@ typedef struct cli { - uint log_mask; /* Mask of allowed message levels */ - uint log_threshold; /* When free < log_threshold, store only important messages */ - uint async_msg_size; /* Total size of async messages queued in tx_buf */ -+ uint tx_pending_count; /* How many blocks are pending */ - } cli; - - struct cli_config { --- -GitLab - diff --git a/net/bird3/files/patch-07-cli-flushing-tmp-linpool b/net/bird3/files/patch-07-cli-flushing-tmp-linpool deleted file mode 100644 index c05321812dac..000000000000 --- a/net/bird3/files/patch-07-cli-flushing-tmp-linpool +++ /dev/null @@ -1,29 +0,0 @@ -From 5fd0fd77e293328f354e7f6ed22632ba6ff96593 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Sun, 22 Dec 2024 22:26:44 +0100 -Subject: [PATCH] CLI: Flushing tmp_linpool after every shown net. - -There is no reason to keep the allocated objects through multiple nets. ---- - nest/rt-show.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/nest/rt-show.c b/nest/rt-show.c -index 3986da83d..aa9209ca5 100644 ---- nest/rt-show.c -+++ nest/rt-show.c -@@ -282,8 +282,9 @@ rt_show_cont(struct cli *c) - rt_show_table(d); - - RT_FEED_WALK(&d->tab->req, f) -- if (f->count_routes) -- rt_show_net(d, f); -+ TMP_SAVED -+ if (f->count_routes) -+ rt_show_net(d, f); - - if (rt_export_feed_active(&d->tab->req)) - rt_feeder_unsubscribe(&d->tab->req); --- -GitLab - diff --git a/net/bird3/files/patch-08-kernel-feed-only-once b/net/bird3/files/patch-08-kernel-feed-only-once deleted file mode 100644 index 33a98cbc4795..000000000000 --- a/net/bird3/files/patch-08-kernel-feed-only-once +++ /dev/null @@ -1,274 +0,0 @@ -From 0fa80d7c79428e5370740a2eba5605b65131ebd6 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Mon, 23 Dec 2024 11:58:05 +0100 -Subject: [PATCH] Kernel: feed only once during startup - -There was an inefficiency in the initial scan state machine, -causing routes to be fed several times instead of just once. -Now the export startup is postponed until first krt_scan() -finishes and we actually can do the pruning with full information. ---- - nest/proto.c | 4 ++- - nest/protocol.h | 2 ++ - sysdep/unix/krt.c | 69 ++++++++++++++++++++++++++++------------------- - sysdep/unix/krt.h | 5 ++-- - 4 files changed, 48 insertions(+), 32 deletions(-) - -diff --git a/nest/proto.c b/nest/proto.c -index 678697d69..6fa74e9f1 100644 ---- nest/proto.c -+++ nest/proto.c -@@ -676,9 +676,11 @@ void channel_notify_basic(void *); - void channel_notify_accepted(void *); - void channel_notify_merged(void *); - --static void -+void - channel_start_export(struct channel *c) - { -+ ASSERT_DIE(birdloop_inside(c->proto->loop)); -+ - if (rt_export_get_state(&c->out_req) != TES_DOWN) - bug("%s.%s: Attempted to start channel's already started export", c->proto->name, c->name); - -diff --git a/nest/protocol.h b/nest/protocol.h -index cf7ecb898..2bfa1628a 100644 ---- nest/protocol.h -+++ nest/protocol.h -@@ -747,6 +747,8 @@ int proto_configure_channel(struct proto *p, struct channel **c, struct channel_ - - void channel_set_state(struct channel *c, uint state); - -+void channel_start_export(struct channel *c); -+ - void channel_add_obstacle(struct channel *c); - void channel_del_obstacle(struct channel *c); - -diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c -index 34882b88f..1658dd6fe 100644 ---- sysdep/unix/krt.c -+++ sysdep/unix/krt.c -@@ -342,6 +342,8 @@ krt_learn_async(struct krt_proto *p, rte *e, int new) - /* Hook defined in nest/rt-table.c ... to be refactored away later */ - rte *krt_export_net(struct channel *c, const net_addr *a, linpool *lp); - -+static void krt_rt_notify(struct proto *P, struct channel *ch, const net_addr *net, rte *new, const rte *old); -+ - static int - krt_same_dest(rte *k, rte *e) - { -@@ -361,6 +363,11 @@ krt_same_dest(rte *k, rte *e) - void - krt_got_route(struct krt_proto *p, rte *e, s8 src) - { -+ /* If we happen to get an asynchronous route notification -+ * before initialization, we wait for the scan. */ -+ if (p->sync_state == KPS_INIT) -+ return; -+ - rte *new = NULL; - e->pflags = 0; - -@@ -391,10 +398,6 @@ krt_got_route(struct krt_proto *p, rte *e, s8 src) - - /* The rest is for KRT_SRC_BIRD (or KRT_SRC_UNKNOWN) */ - -- /* We wait for the initial feed to have correct installed state */ -- if (!p->ready) -- goto ignore; -- - /* Get the exported version */ - new = krt_export_net(p->p.main_channel, e->net, krt_filter_lp); - -@@ -423,10 +426,6 @@ aseen: - krt_trace_in(p, e, "already seen"); - goto done; - --ignore: -- krt_trace_in(p, e, "ignored"); -- goto done; -- - update: - krt_trace_in(p, new, "updating"); - krt_replace_rte(p, e->net, new, e); -@@ -447,12 +446,21 @@ krt_init_scan(struct krt_proto *p) - { - switch (p->sync_state) - { -+ case KPS_INIT: -+ /* Allow exports now */ -+ p->p.rt_notify = krt_rt_notify; -+ channel_start_export(p->p.main_channel); -+ rt_refresh_begin(&p->p.main_channel->in_req); -+ p->sync_state = KPS_FIRST_SCAN; -+ return 1; -+ - case KPS_IDLE: - rt_refresh_begin(&p->p.main_channel->in_req); - bmap_reset(&p->seen_map, 1024); - p->sync_state = KPS_SCANNING; - return 1; - -+ case KPS_FIRST_SCAN: - case KPS_SCANNING: - bug("Kernel scan double-init"); - -@@ -470,14 +478,17 @@ krt_prune(struct krt_proto *p) - { - switch (p->sync_state) - { -+ case KPS_INIT: - case KPS_IDLE: - bug("Kernel scan prune without scan"); - - case KPS_SCANNING: -+ channel_request_full_refeed(p->p.main_channel); -+ /* fall through */ -+ case KPS_FIRST_SCAN: - p->sync_state = KPS_PRUNING; - KRT_TRACE(p, D_EVENTS, "Pruning table %s", p->p.main_channel->table->name); - rt_refresh_end(&p->p.main_channel->in_req); -- channel_request_full_refeed(p->p.main_channel); - break; - - case KPS_PRUNING: -@@ -549,7 +560,7 @@ krt_scan_all(timer *t UNUSED) - krt_do_scan(NULL); - - WALK_LIST2(p, n, krt_proto_list, krt_node) -- if (p->sync_state == KPS_SCANNING) -+ if ((p->sync_state == KPS_SCANNING) || (p->sync_state == KPS_FIRST_SCAN)) - krt_prune(p); - } - -@@ -644,6 +655,9 @@ krt_scan_timer_kick(struct krt_proto *p) - static int - krt_preexport(struct channel *C, rte *e) - { -+ /* The export should not start before proper sync */ -+ ASSERT_DIE(SKIP_BACK(struct krt_proto, p, C->proto)->sync_state != KPS_INIT); -+ - if (e->src->owner == &C->proto->sources) - #ifdef CONFIG_SINGLE_ROUTE - return 1; -@@ -659,15 +673,6 @@ krt_preexport(struct channel *C, rte *e) - return -1; - } - -- /* Before first scan we don't touch the routes */ -- if (!SKIP_BACK(struct krt_proto, p, C->proto)->ready) -- { -- if (C->debug & D_ROUTES) -- log(L_TRACE "%s.%s not ready yet to accept route for %N", -- C->proto->name, C->name, e->net); -- return -1; -- } -- - return 0; - } - -@@ -685,18 +690,24 @@ krt_rt_notify(struct proto *P, struct channel *ch, const net_addr *net, - - switch (p->sync_state) - { -+ case KPS_INIT: -+ bug("Routes in init state should have been rejected by preexport."); -+ - case KPS_IDLE: - case KPS_PRUNING: - if (new && bmap_test(&p->seen_map, new->id)) -+ { - if (ch->debug & D_ROUTES) - { - /* Already installed and seen in the kernel dump */ - log(L_TRACE "%s.%s: %N already in kernel", - P->name, ch->name, net); -- return; - } -+ return; -+ } - - /* fall through */ -+ case KPS_FIRST_SCAN: - case KPS_SCANNING: - /* Actually replace the route */ - krt_replace_rte(p, net, new, old); -@@ -732,7 +743,6 @@ krt_reload_routes(struct channel *C, struct rt_feeding_request *rfr) - - if (KRT_CF->learn) - { -- p->reload = 1; - krt_scan_timer_kick(p); - } - -@@ -749,15 +759,18 @@ krt_export_fed(struct channel *C) - { - struct krt_proto *p = (void *) C->proto; - -- p->ready = 1; -- p->initialized = 1; -- - switch (p->sync_state) - { -+ case KPS_INIT: -+ bug("KRT export started before scan"); -+ - case KPS_IDLE: - krt_scan_timer_kick(p); - break; - -+ case KPS_FIRST_SCAN: -+ bug("KRT export done before first scan"); -+ - case KPS_SCANNING: - break; - -@@ -831,7 +844,8 @@ krt_init(struct proto_config *CF) - p->p.main_channel = proto_add_channel(&p->p, proto_cf_main_channel(CF)); - - p->p.preexport = krt_preexport; -- p->p.rt_notify = krt_rt_notify; -+ /* Not setting rt_notify here to not start exports, must wait for the first scan -+ * and then we can start exports manually */ - p->p.iface_sub.if_notify = krt_if_notify; - p->p.reload_routes = krt_reload_routes; - p->p.export_fed = krt_export_fed; -@@ -887,7 +901,7 @@ krt_shutdown(struct proto *P) - return PS_FLUSH; - - /* FIXME we should flush routes even when persist during reconfiguration */ -- if (p->initialized && !KRT_CF->persist && (P->down_code != PDC_CMD_GR_DOWN)) -+ if ((p->sync_state != KPS_INIT) && !KRT_CF->persist && (P->down_code != PDC_CMD_GR_DOWN)) - { - struct rt_export_feeder req = (struct rt_export_feeder) - { -@@ -922,8 +936,7 @@ krt_shutdown(struct proto *P) - static void - krt_cleanup(struct krt_proto *p) - { -- p->ready = 0; -- p->initialized = 0; -+ p->sync_state = KPS_INIT; - - krt_sys_shutdown(p); - rem_node(&p->krt_node); -diff --git a/sysdep/unix/krt.h b/sysdep/unix/krt.h -index 394e74010..14be715f8 100644 ---- sysdep/unix/krt.h -+++ sysdep/unix/krt.h -@@ -59,10 +59,9 @@ struct krt_proto { - struct bmap seen_map; /* Routes seen during last periodic scan */ - node krt_node; /* Node in krt_proto_list */ - byte af; /* Kernel address family (AF_*) */ -- byte ready; /* Initial feed has been finished */ -- byte initialized; /* First scan has been finished */ -- byte reload; /* Next scan is doing reload */ - PACKED enum krt_prune_state { -+ KPS_INIT, -+ KPS_FIRST_SCAN, - KPS_IDLE, - KPS_SCANNING, - KPS_PRUNING, --- -GitLab - diff --git a/net/bird3/files/patch-09-graceful-recovery b/net/bird3/files/patch-09-graceful-recovery deleted file mode 100644 index d576f80ebc42..000000000000 --- a/net/bird3/files/patch-09-graceful-recovery +++ /dev/null @@ -1,311 +0,0 @@ -From f7639a9fafa7411ebd1f2af56c270b970ac09f3d Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Mon, 23 Dec 2024 21:06:26 +0100 -Subject: [PATCH] Graceful recovery: converted to obstacles - -Yet another refcounting mechanism had a locking collision. ---- - nest/proto.c | 178 ++++++++++++++++++++++++++---------------------- - nest/protocol.h | 14 +++- - 2 files changed, 110 insertions(+), 82 deletions(-) - -diff --git a/nest/proto.c b/nest/proto.c -index 6fa74e9f1..caf99829b 100644 ---- nest/proto.c -+++ nest/proto.c -@@ -31,15 +31,8 @@ static list STATIC_LIST_INIT(protocol_list); - #define CD(c, msg, args...) ({ if (c->debug & D_STATES) log(L_TRACE "%s.%s: " msg, c->proto->name, c->name ?: "?", ## args); }) - #define PD(p, msg, args...) ({ if (p->debug & D_STATES) log(L_TRACE "%s: " msg, p->name, ## args); }) - --static timer *gr_wait_timer; -- --#define GRS_NONE 0 --#define GRS_INIT 1 --#define GRS_ACTIVE 2 --#define GRS_DONE 3 -- --static int graceful_restart_state; --static u32 graceful_restart_locks; -+static struct graceful_recovery_context _graceful_recovery_context; -+OBSREF(struct graceful_recovery_context) graceful_recovery_context; - - static char *p_states[] = { "DOWN", "START", "UP", "STOP" }; - static char *c_states[] = { "DOWN", "START", "UP", "STOP", "RESTART" }; -@@ -912,7 +905,7 @@ channel_do_stop(struct channel *c) - ev_postpone(&c->reimport_event); - - c->gr_wait = 0; -- if (c->gr_lock) -+ if (OBSREF_GET(c->gr_lock)) - channel_graceful_restart_unlock(c); - - CALL(c->class->shutdown, c); -@@ -1407,7 +1400,7 @@ proto_start(struct proto *p) - DBG("Kicking %s up\n", p->name); - PD(p, "Starting"); - -- if (graceful_restart_state == GRS_INIT) -+ if (OBSREF_GET(graceful_recovery_context)) - p->gr_recovery = 1; - - if (p->cf->loop_order != DOMAIN_ORDER(the_bird)) -@@ -1921,7 +1914,45 @@ proto_enable(struct proto *p) - * - */ - --static void graceful_restart_done(timer *t); -+/** -+ * graceful_restart_done - finalize graceful restart -+ * @t: unused -+ * -+ * When there are no locks on graceful restart, the functions finalizes the -+ * graceful restart recovery. Protocols postponing route export until the end of -+ * the recovery are awakened and the export to them is enabled. -+ */ -+static void -+graceful_recovery_done(struct callback *_ UNUSED) -+{ -+ ASSERT_DIE(birdloop_inside(&main_birdloop)); -+ ASSERT_DIE(_graceful_recovery_context.grc_state == GRS_ACTIVE); -+ -+ tm_stop(&_graceful_recovery_context.wait_timer); -+ log(L_INFO "Graceful recovery done"); -+ -+ WALK_TLIST(proto, p, &global_proto_list) -+ PROTO_LOCKED_FROM_MAIN(p) -+ { -+ p->gr_recovery = 0; -+ -+ struct channel *c; -+ WALK_LIST(c, p->channels) -+ { -+ ASSERT_DIE(!OBSREF_GET(c->gr_lock)); -+ -+ /* Resume postponed export of routes */ -+ if ((c->channel_state == CS_UP) && c->gr_wait && p->rt_notify) -+ channel_start_export(c); -+ -+ /* Cleanup */ -+ c->gr_wait = 0; -+ } -+ } -+ -+ _graceful_recovery_context.grc_state = GRS_DONE; -+} -+ - - /** - * graceful_restart_recovery - request initial graceful restart recovery -@@ -1933,7 +1964,30 @@ static void graceful_restart_done(timer *t); - void - graceful_restart_recovery(void) - { -- graceful_restart_state = GRS_INIT; -+ obstacle_target_init( -+ &_graceful_recovery_context.obstacles, -+ &_graceful_recovery_context.obstacles_cleared, -+ &root_pool, "Graceful recovery"); -+ -+ OBSREF_SET(graceful_recovery_context, &_graceful_recovery_context); -+ _graceful_recovery_context.grc_state = GRS_INIT; -+} -+ -+static void -+graceful_recovery_timeout(timer *t UNUSED) -+{ -+ log(L_INFO "Graceful recovery timeout"); -+ WALK_TLIST(proto, p, &global_proto_list) -+ PROTO_LOCKED_FROM_MAIN(p) -+ { -+ struct channel *c; -+ WALK_LIST(c, p->channels) -+ if (OBSREF_GET(c->gr_lock)) -+ { -+ log(L_INFO "Graceful recovery: Not waiting for %s.%s", p->name, c->name); -+ OBSREF_CLEAR(c->gr_lock); -+ } -+ } - } - - /** -@@ -1946,73 +2000,35 @@ graceful_restart_recovery(void) - void - graceful_restart_init(void) - { -- if (!graceful_restart_state) -+ if (!OBSREF_GET(graceful_recovery_context)) - return; - -- log(L_INFO "Graceful restart started"); -+ log(L_INFO "Graceful recovery started"); - -- if (!graceful_restart_locks) -- { -- graceful_restart_done(NULL); -- return; -- } -+ _graceful_recovery_context.grc_state = GRS_ACTIVE; - -- graceful_restart_state = GRS_ACTIVE; -- gr_wait_timer = tm_new_init(proto_pool, graceful_restart_done, NULL, 0, 0); -+ _graceful_recovery_context.wait_timer = (timer) { .hook = graceful_recovery_timeout }; - u32 gr_wait = atomic_load_explicit(&global_runtime, memory_order_relaxed)->gr_wait; -- tm_start(gr_wait_timer, gr_wait S); --} -- --/** -- * graceful_restart_done - finalize graceful restart -- * @t: unused -- * -- * When there are no locks on graceful restart, the functions finalizes the -- * graceful restart recovery. Protocols postponing route export until the end of -- * the recovery are awakened and the export to them is enabled. All other -- * related state is cleared. The function is also called when the graceful -- * restart wait timer fires (but there are still some locks). -- */ --static void --graceful_restart_done(timer *t) --{ -- log(L_INFO "Graceful restart done"); -- graceful_restart_state = GRS_DONE; -- -- WALK_TLIST(proto, p, &global_proto_list) -- { -- if (!p->gr_recovery) -- continue; -- -- struct channel *c; -- WALK_LIST(c, p->channels) -- { -- /* Resume postponed export of routes */ -- if ((c->channel_state == CS_UP) && c->gr_wait && p->rt_notify) -- channel_start_export(c); -+ tm_start(&_graceful_recovery_context.wait_timer, gr_wait S); - -- /* Cleanup */ -- c->gr_wait = 0; -- c->gr_lock = 0; -- } -- -- p->gr_recovery = 0; -- } -+ callback_init(&_graceful_recovery_context.obstacles_cleared, graceful_recovery_done, &main_birdloop); - -- graceful_restart_locks = 0; -- -- rfree(t); -+ /* The last clearing of obstacle reference will cause -+ * the graceful recovery finish immediately. */ -+ OBSREF_CLEAR(graceful_recovery_context); - } - - void - graceful_restart_show_status(void) - { -- if (graceful_restart_state != GRS_ACTIVE) -+ if (_graceful_recovery_context.grc_state != GRS_ACTIVE) - return; - - cli_msg(-24, "Graceful restart recovery in progress"); -- cli_msg(-24, " Waiting for %d channels to recover", graceful_restart_locks); -- cli_msg(-24, " Wait timer is %t/%u", tm_remains(gr_wait_timer), -+ cli_msg(-24, " Waiting for %u channels to recover", -+ obstacle_target_count(&_graceful_recovery_context.obstacles)); -+ cli_msg(-24, " Wait timer is %t/%u", -+ tm_remains(&_graceful_recovery_context.wait_timer), - atomic_load_explicit(&global_runtime, memory_order_relaxed)->gr_wait); - } - -@@ -2032,14 +2048,22 @@ graceful_restart_show_status(void) - void - channel_graceful_restart_lock(struct channel *c) - { -- ASSERT(graceful_restart_state == GRS_INIT); -- ASSERT(c->proto->gr_recovery); -+ ASSERT_DIE(birdloop_inside(&main_birdloop)); - -- if (c->gr_lock) -+ if (OBSREF_GET(c->gr_lock)) - return; - -- c->gr_lock = 1; -- graceful_restart_locks++; -+ switch (_graceful_recovery_context.grc_state) -+ { -+ case GRS_INIT: -+ case GRS_ACTIVE: -+ OBSREF_SET(c->gr_lock, &_graceful_recovery_context); -+ break; -+ -+ case GRS_NONE: -+ case GRS_DONE: -+ break; -+ } - } - - /** -@@ -2052,18 +2076,10 @@ channel_graceful_restart_lock(struct channel *c) - void - channel_graceful_restart_unlock(struct channel *c) - { -- if (!c->gr_lock) -- return; -- -- c->gr_lock = 0; -- graceful_restart_locks--; -- -- if ((graceful_restart_state == GRS_ACTIVE) && !graceful_restart_locks) -- tm_start(gr_wait_timer, 0); -+ OBSREF_CLEAR(c->gr_lock); - } - - -- - /** - * protos_dump_all - dump status of all protocols - * -@@ -2615,9 +2631,9 @@ channel_show_info(struct channel *c) - cli_msg(-1006, " Input filter: %s", filter_name(c->in_filter)); - cli_msg(-1006, " Output filter: %s", filter_name(c->out_filter)); - -- if (graceful_restart_state == GRS_ACTIVE) -+ if (_graceful_recovery_context.grc_state == GRS_ACTIVE) - cli_msg(-1006, " GR recovery: %s%s", -- c->gr_lock ? " pending" : "", -+ OBSREF_GET(c->gr_lock) ? " pending" : "", - c->gr_wait ? " waiting" : ""); - - channel_show_limit(&c->rx_limit, "Receive limit:", c->limit_active & (1 << PLD_RX), c->limit_actions[PLD_RX]); -diff --git a/nest/protocol.h b/nest/protocol.h -index 2bfa1628a..ec561b263 100644 ---- nest/protocol.h -+++ nest/protocol.h -@@ -659,7 +659,7 @@ struct channel { - - u8 channel_state; - u8 reloadable; /* Hook reload_routes() is allowed on the channel */ -- u8 gr_lock; /* Graceful restart mechanism should wait for this channel */ -+ OBSREF(struct graceful_recovery_context) gr_lock; /* Graceful restart mechanism should wait for this channel */ - u8 gr_wait; /* Route export to channel is postponed until graceful restart */ - - u32 obstacles; /* External obstacles remaining before cleanup */ -@@ -763,4 +763,16 @@ void *channel_config_new(const struct channel_class *cc, const char *name, uint - void *channel_config_get(const struct channel_class *cc, const char *name, uint net_type, struct proto_config *proto); - int channel_reconfigure(struct channel *c, struct channel_config *cf); - -+struct graceful_recovery_context { -+ struct obstacle_target obstacles; -+ struct callback obstacles_cleared; -+ enum { -+ GRS_NONE, -+ GRS_INIT, -+ GRS_ACTIVE, -+ GRS_DONE, -+ } grc_state; -+ timer wait_timer; -+}; -+ - #endif --- -GitLab - diff --git a/net/bird3/files/patch-10-stonehenge b/net/bird3/files/patch-10-stonehenge deleted file mode 100644 index a640442dae8d..000000000000 --- a/net/bird3/files/patch-10-stonehenge +++ /dev/null @@ -1,116 +0,0 @@ -From f6ef8b5b58c674dd270b40aa57d20d2d638c48e9 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Tue, 24 Dec 2024 12:18:39 +0100 -Subject: [PATCH] Stonehenge: multi-slab allocator - -To mid-term allocate and free lots of small blocks in a fast pace, -mb_alloc is too slow and causes heap bloating. We can already allocate -blocks from slabs, and if we allow for a little bit of inefficiency, -we can just use multiple slabs with stepped sizes. - -This technique is already used in ea_list allocation which is gonna be -converted to Stonehenge. ---- - lib/resource.h | 14 ++++++++++++ - lib/slab.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 76 insertions(+) - -diff --git a/lib/resource.h b/lib/resource.h -index 48bf1f9ba..12b788510 100644 ---- lib/resource.h -+++ lib/resource.h -@@ -139,6 +139,20 @@ void *sl_allocz(slab *); - void sl_free(void *); - void sl_delete(slab *); - -+/* A whole stonehenge of slabs */ -+ -+typedef struct stonehenge stonehenge; -+typedef struct sth_block { -+ void *block; -+ bool large; -+} sth_block; -+ -+stonehenge *sth_new(pool *); -+sth_block sth_alloc(stonehenge *, uint size); -+sth_block sth_allocz(stonehenge *, uint size); -+void sth_free(sth_block); -+void sth_delete(stonehenge *); -+ - /* - * Low-level memory allocation functions, please don't use - * outside resource manager and possibly sysdep code. -diff --git a/lib/slab.c b/lib/slab.c -index ca971f9fb..d68bfef1e 100644 ---- lib/slab.c -+++ lib/slab.c -@@ -469,4 +469,66 @@ slab_lookup(resource *r, unsigned long a) - return NULL; - } - -+static const uint stonehenge_sizes[] = { 56, 112, 168, 288, 448, 800, 1344 }; -+ -+struct stonehenge { -+ pool *p; -+ slab *s[ARRAY_SIZE(stonehenge_sizes)]; -+}; -+ -+sth_block -+sth_alloc(stonehenge *sth, uint size) -+{ -+ for (uint i=0; i<ARRAY_SIZE(stonehenge_sizes); i++) -+ if (size <= stonehenge_sizes[i]) -+ { -+ if (!sth->s[i]) -+ sth->s[i] = sl_new(sth->p, stonehenge_sizes[i]); -+ -+ return (sth_block) { .block = sl_alloc(sth->s[i]), }; -+ } -+ -+ return (sth_block) { -+ .block = mb_alloc(sth->p, size), -+ .large = 1, -+ }; -+} -+ -+sth_block -+sth_allocz(stonehenge *sth, uint size) -+{ -+ sth_block b = sth_alloc(sth, size); -+ bzero(b.block, size); -+ return b; -+} -+ -+void -+sth_free(sth_block b) -+{ -+ if (b.large) -+ mb_free(b.block); -+ else -+ sl_free(b.block); -+} -+ -+stonehenge * -+sth_new(pool *pp) -+{ -+ stonehenge tmps = { -+ .p = rp_new(pp, pp->domain, "Stonehenge"), -+ }; -+ -+ stonehenge *s = sth_alloc(&tmps, sizeof(stonehenge)).block; -+ *s = tmps; -+ return s; -+} -+ -+void sth_delete(stonehenge *s) -+{ -+ pool *p = s->p; -+ sth_free((sth_block) { s }); -+ rp_free(p); -+} -+ -+ - #endif --- -GitLab - diff --git a/net/bird3/files/patch-11-route-attribute-storage b/net/bird3/files/patch-11-route-attribute-storage deleted file mode 100644 index 5097846203eb..000000000000 --- a/net/bird3/files/patch-11-route-attribute-storage +++ /dev/null @@ -1,80 +0,0 @@ -From 8b389a503ef56aa69aa456fabebd562abe247119 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Tue, 24 Dec 2024 13:12:58 +0100 -Subject: [PATCH] Route attribute storage moved to Stonehenge - ---- - nest/rt-attr.c | 29 ++++++++--------------------- - 1 file changed, 8 insertions(+), 21 deletions(-) - -diff --git a/nest/rt-attr.c b/nest/rt-attr.c -index a0f7d5718..8d651efb2 100644 ---- nest/rt-attr.c -+++ nest/rt-attr.c -@@ -204,9 +204,7 @@ DOMAIN(attrs) attrs_domain; - - pool *rta_pool; - --/* Assuming page size of 4096, these are magic values for slab allocation */ --static const uint ea_slab_sizes[] = { 56, 112, 168, 288, 448, 800, 1344 }; --static slab *ea_slab[ARRAY_SIZE(ea_slab_sizes)]; -+static stonehenge *ea_sth; - - static slab *rte_src_slab; - -@@ -1583,24 +1581,18 @@ ea_lookup_slow(ea_list *o, u32 squash_upto, enum ea_stored oid) - return rr; - } - -- struct ea_storage *r = NULL; - uint elen = ea_list_size(o); - uint sz = elen + sizeof(struct ea_storage); -- for (uint i=0; i<ARRAY_SIZE(ea_slab_sizes); i++) -- if (sz <= ea_slab_sizes[i]) -- { -- r = sl_alloc(ea_slab[i]); -- break; -- } -+ sth_block b = sth_alloc(ea_sth, sz); - -- int huge = r ? 0 : EALF_HUGE;; -- if (huge) -- r = mb_alloc(rta_pool, sz); -+ struct ea_storage *r = b.block; - - ea_list_copy(r->l, o, elen); - ea_list_ref(r->l); - -- r->l->flags |= huge; -+ if (b.large) -+ r->l->flags |= EALF_HUGE; -+ - r->l->stored = oid; - r->hash_key = h; - atomic_store_explicit(&r->uc, 1, memory_order_release); -@@ -1668,10 +1660,7 @@ ea_free_deferred(struct deferred_call *dc) - - /* And now we can free the object, finally */ - ea_list_unref(r->l); -- if (r->l->flags & EALF_HUGE) -- mb_free(r); -- else -- sl_free(r); -+ sth_free((sth_block) { r, !!(r->l->flags & EALF_HUGE) }); - - RTA_UNLOCK; - } -@@ -1722,9 +1711,7 @@ rta_init(void) - RTA_LOCK; - rta_pool = rp_new(&root_pool, attrs_domain.attrs, "Attributes"); - -- for (uint i=0; i<ARRAY_SIZE(ea_slab_sizes); i++) -- ea_slab[i] = sl_new(rta_pool, ea_slab_sizes[i]); -- -+ ea_sth = sth_new(rta_pool); - SPINHASH_INIT(rta_hash_table, RTAH, rta_pool, &global_work_list); - - rte_src_init(); --- -GitLab - diff --git a/net/bird3/files/patch-12-BGP-tx-bucket-storage b/net/bird3/files/patch-12-BGP-tx-bucket-storage deleted file mode 100644 index 513824f86769..000000000000 --- a/net/bird3/files/patch-12-BGP-tx-bucket-storage +++ /dev/null @@ -1,84 +0,0 @@ -From fdb5c4920b45139fb3c37e1144643c0f756364b6 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Tue, 24 Dec 2024 13:22:56 +0100 -Subject: [PATCH] BGP: TX bucket storage moved to Stonehenge - ---- - proto/bgp/attrs.c | 11 +++++++---- - proto/bgp/bgp.h | 4 ++-- - 2 files changed, 9 insertions(+), 6 deletions(-) - -diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c -index a2feaef53..725c469ff 100644 ---- proto/bgp/attrs.c -+++ proto/bgp/attrs.c -@@ -1734,13 +1734,16 @@ bgp_get_bucket(struct bgp_ptx_private *c, ea_list *new) - uint size = sizeof(struct bgp_bucket) + ea_size; - - /* Allocate the bucket */ -- b = mb_alloc(c->pool, size); -+ sth_block blk = sth_alloc(c->sth, size); -+ b = blk.block; - *b = (struct bgp_bucket) { }; - init_list(&b->prefixes); - b->hash = hash; - - /* Copy the ea_list */ - ea_list_copy(b->eattrs, new, ea_size); -+ if (blk.large) -+ b->eattrs->flags |= EALF_HUGE; - - /* Insert the bucket to bucket hash */ - HASH_INSERT2(c->bucket_hash, RBH, c->pool, b); -@@ -1764,7 +1767,7 @@ static void - bgp_free_bucket(struct bgp_ptx_private *c, struct bgp_bucket *b) - { - HASH_REMOVE2(c->bucket_hash, RBH, c->pool, b); -- mb_free(b); -+ sth_free((sth_block) { b, !!(b->eattrs->flags & EALF_HUGE) }); - } - - int -@@ -2086,6 +2089,7 @@ bgp_init_pending_tx(struct bgp_channel *c) - - bpp->lock = dom; - bpp->pool = p; -+ bpp->sth = sth_new(p); - bpp->c = c; - - bgp_init_bucket_table(bpp); -@@ -2160,8 +2164,7 @@ bgp_free_pending_tx(struct bgp_channel *bc) - HASH_WALK_END; - - HASH_FREE(c->bucket_hash); -- sl_delete(c->bucket_slab); -- c->bucket_slab = NULL; -+ sth_delete(c->sth); - - rp_free(c->pool); - -diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h -index 202e78ba3..dac6e84ea 100644 ---- proto/bgp/bgp.h -+++ proto/bgp/bgp.h -@@ -452,7 +452,8 @@ struct bgp_ptx_private { - struct { BGP_PTX_PUBLIC; }; - struct bgp_ptx_private **locked_at; - -- pool *pool; /* Resource pool for TX related allocations */ -+ pool *pool; /* Pool for infrequent long-term blocks */ -+ stonehenge *sth; /* Bucket allocator */ - - HASH(struct bgp_bucket) bucket_hash; /* Hash table of route buckets */ - struct bgp_bucket *withdraw_bucket; /* Withdrawn routes */ -@@ -461,7 +462,6 @@ struct bgp_ptx_private { - HASH(struct bgp_prefix) prefix_hash; /* Hash table of pending prefices */ - - slab *prefix_slab; /* Slab holding prefix nodes */ -- slab *bucket_slab; /* Slab holding buckets to send */ - - char bmp; /* This is a fake ptx for BMP encoding */ - }; --- -GitLab - diff --git a/net/bird3/files/patch-13-allocate-normalization-buckets b/net/bird3/files/patch-13-allocate-normalization-buckets deleted file mode 100644 index 60ff582d71c5..000000000000 --- a/net/bird3/files/patch-13-allocate-normalization-buckets +++ /dev/null @@ -1,100 +0,0 @@ -From c3c12e1b4ff908211b156a182a5027f2b11b0709 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Tue, 24 Dec 2024 16:16:55 +0100 -Subject: [PATCH] Allocate the normalization buckets on stack - -Even though allocating from tmp_linpool is quite cheap, -it isn't cheap when the block is larger than a page, which is the case here. -Instead, we now allocate just the result which typically fits in a page, -avoiding a necessity of a malloc(). ---- - nest/rt-attr.c | 37 ++++++++++++++++++++++++------------- - 1 file changed, 24 insertions(+), 13 deletions(-) - -diff --git a/nest/rt-attr.c b/nest/rt-attr.c -index 8d651efb2..9d5e10980 100644 ---- nest/rt-attr.c -+++ nest/rt-attr.c -@@ -967,8 +967,8 @@ ea_list_size(ea_list *o) - * and creates the final structure useful for storage or fast searching. - * The method is a bucket sort. - * -- * Returns the final ea_list with some excess memory at the end, -- * allocated from the tmp_linpool. The adata is linked from the original places. -+ * Returns the final ea_list allocated from the tmp_linpool. -+ * The adata is linked from the original places. - */ - ea_list * - ea_normalize(ea_list *e, u32 upto) -@@ -976,21 +976,17 @@ ea_normalize(ea_list *e, u32 upto) - /* We expect some work to be actually needed. */ - ASSERT_DIE(!BIT32_TEST(&upto, e->stored)); - -- /* Allocate the output */ -- ea_list *out = tmp_allocz(ea_class_max * sizeof(eattr) + sizeof(ea_list)); -- *out = (ea_list) { -- .flags = EALF_SORTED, -- }; -- -+ /* Allocate the buckets locally */ -+ eattr *buckets = allocz(ea_class_max * sizeof(eattr)); - uint min_id = ~0, max_id = 0; - -- eattr *buckets = out->attrs; -+ ea_list *next = NULL; - - /* Walk the attribute lists, one after another. */ - for (; e; e = e->next) - { -- if (!out->next && BIT32_TEST(&upto, e->stored)) -- out->next = e; -+ if (!next && BIT32_TEST(&upto, e->stored)) -+ next = e; - - for (int i = 0; i < e->count; i++) - { -@@ -1000,7 +996,7 @@ ea_normalize(ea_list *e, u32 upto) - if (id < min_id) - min_id = id; - -- if (out->next) -+ if (next) - { - /* Underlay: check whether the value is duplicate */ - if (buckets[id].id && buckets[id].fresh) -@@ -1026,6 +1022,18 @@ ea_normalize(ea_list *e, u32 upto) - } - } - -+ /* Find out how big the output actually is. */ -+ uint len = 0; -+ for (uint id = min_id; id <= max_id; id++) -+ if (buckets[id].id && !(buckets[id].undef && buckets[id].fresh)) -+ len++; -+ -+ ea_list *out = tmp_alloc(sizeof(ea_list) + len * sizeof(eattr)); -+ *out = (ea_list) { -+ .flags = EALF_SORTED, -+ .next = next, -+ }; -+ - /* And now we just walk the list from beginning to end and collect - * everything to the beginning of the list. - * Walking just that part which is inhabited for sure. */ -@@ -1044,9 +1052,12 @@ ea_normalize(ea_list *e, u32 upto) - - /* Move the attribute to the beginning */ - ASSERT_DIE(out->count < id); -- buckets[out->count++] = buckets[id]; -+ ASSERT_DIE(out->count < len); -+ out->attrs[out->count++] = buckets[id]; - } - -+ ASSERT_DIE(out->count == len); -+ - /* We want to bisect only if the list is long enough */ - if (out->count > 5) - out->flags |= EALF_BISECT; --- -GitLab - diff --git a/net/bird3/files/patch-14-BGP-fix-dislpay-name b/net/bird3/files/patch-14-BGP-fix-dislpay-name deleted file mode 100644 index faf53ec128ef..000000000000 --- a/net/bird3/files/patch-14-BGP-fix-dislpay-name +++ /dev/null @@ -1,25 +0,0 @@ -From b58bfcad683f46da9470ad87e8c78e423e04ff97 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Fri, 27 Dec 2024 16:22:59 +0100 -Subject: [PATCH] BGP: fix display name of bgp_otc attribute - ---- - proto/bgp/attrs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c -index 725c469ff..5dc06be51 100644 ---- proto/bgp/attrs.c -+++ proto/bgp/attrs.c -@@ -1192,7 +1192,7 @@ static union bgp_attr_desc bgp_attr_table[BGP_ATTR_MAX] = { - .decode = bgp_decode_large_community, - }, - [BA_ONLY_TO_CUSTOMER] = { -- .name = "otc", -+ .name = "bgp_otc", - .type = T_INT, - .flags = BAF_OPTIONAL | BAF_TRANSITIVE, - .encode = bgp_encode_u32, --- -GitLab - diff --git a/net/bird3/files/patch-15-BGP-fixed-deterministic-med-crashes b/net/bird3/files/patch-15-BGP-fixed-deterministic-med-crashes deleted file mode 100644 index 15f3fac00287..000000000000 --- a/net/bird3/files/patch-15-BGP-fixed-deterministic-med-crashes +++ /dev/null @@ -1,65 +0,0 @@ -From c5b07695ce810e4345ed1811eadfce935c83b324 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Tue, 7 Jan 2025 11:08:04 +0100 -Subject: [PATCH] BGP: fixed deterministic med crashes - -There were several places of forgotten NULL checks. - -Thanks to Alarig Le Lay <alarig@swordarmor.fr> for reporting: -https://trubka.network.cz/pipermail/bird-users/2024-December/017990.html ---- - nest/rt-table.c | 14 ++++++++++++-- - proto/bgp/attrs.c | 8 ++++---- - 2 files changed, 16 insertions(+), 6 deletions(-) - -diff --git a/nest/rt-table.c b/nest/rt-table.c -index 05191d743..fc6d0d4e0 100644 ---- nest/rt-table.c -+++ nest/rt-table.c -@@ -2024,12 +2024,22 @@ rte_recalculate(struct rtable_private *table, struct rt_import_hook *c, struct n - do_recalculate: - /* Add the new route to the list right behind the old one */ - if (new_stored) -+ { -+ /* There is the same piece of code several lines farther. Needs refactoring. -+ * The old_stored check is needed because of the possible jump from deterministic med */ -+ if (old_stored) - { - atomic_store_explicit(&new_stored->next, atomic_load_explicit(&old_stored->next, memory_order_relaxed), memory_order_release); - atomic_store_explicit(&old_stored->next, new_stored, memory_order_release); -- -- table->rt_count++; - } -+ else -+ { -+ atomic_store_explicit(&new_stored->next, NULL, memory_order_release); -+ atomic_store_explicit(last_ptr, new_stored, memory_order_release); -+ } -+ -+ table->rt_count++; -+ } - - /* Find a new optimal route (if there is any) */ - struct rte_storage * _Atomic *bp = &local_sentinel.next; -diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c -index 5dc06be51..db6542343 100644 ---- proto/bgp/attrs.c -+++ proto/bgp/attrs.c -@@ -2689,10 +2689,10 @@ bgp_rte_recalculate(struct rtable_private *table, net *net, - struct rte_storage *new_stored, struct rte_storage *old_stored, struct rte_storage *old_best_stored) - { - struct rte_storage *key_stored = new_stored ? new_stored : old_stored; -- const struct rte *new = &new_stored->rte, -- *old = &old_stored->rte, -- *old_best = &old_best_stored->rte, -- *key = &key_stored->rte; -+ const struct rte *new = RTE_OR_NULL(new_stored), -+ *old = RTE_OR_NULL(old_stored), -+ *old_best = RTE_OR_NULL(old_best_stored), -+ *key = RTE_OR_NULL(key_stored); - - u32 lpref = rt_get_preference(key); - u32 lasn = bgp_get_neighbor(key); --- -GitLab - diff --git a/net/bird3/files/patch-16-Table-old-best-route-refeed-fix b/net/bird3/files/patch-16-Table-old-best-route-refeed-fix deleted file mode 100644 index 60dc7cece2a2..000000000000 --- a/net/bird3/files/patch-16-Table-old-best-route-refeed-fix +++ /dev/null @@ -1,87 +0,0 @@ -From 2e14832d36c83b2ab5b7fb28b701de554fa5fdd9 Mon Sep 17 00:00:00 2001 -From: Maria Matejka <mq@ucw.cz> -Date: Tue, 7 Jan 2025 12:13:57 +0100 -Subject: [PATCH] Table: old best route refeed fix - -When refeeding with RA_OPTIMAL, the old best routes weren't announced, -leading to weird behavior of protocols, mostly kernel. Fixed. ---- - nest/rt-table.c | 30 ++++++++++++++++++++++++++---- - 1 file changed, 26 insertions(+), 4 deletions(-) - -diff --git a/nest/rt-table.c b/nest/rt-table.c -index fc6d0d4e0..18a445a62 100644 ---- nest/rt-table.c -+++ nest/rt-table.c -@@ -1485,11 +1485,18 @@ channel_notify_basic(void *_channel) - rte *new = &u->feed->block[i]; - rte *old = NULL; - for (uint o = oldpos; o < u->feed->count_routes; o++) -- if (new->src == u->feed->block[o].src) -+ if ((c->ra_mode == RA_ANY) && (new->src == u->feed->block[o].src)) - { - old = &u->feed->block[o]; - break; - } -+ else if ((c->ra_mode == RA_OPTIMAL) && ( -+ bmap_test(&c->export_accepted_map, u->feed->block[o].id) || -+ bmap_test(&c->export_rejected_map, u->feed->block[o].id))) -+ { -+ ASSERT_DIE(!old); -+ old = &u->feed->block[o]; -+ } - - rt_notify_basic(c, new, old); - -@@ -2542,10 +2549,14 @@ rt_feed_net_best(struct rt_exporter *e, struct rcu_unwinder *u, u32 index, bool - last_in_net = atomic_load_explicit(&n->best.last, memory_order_acquire); - first = rt_net_feed_validate_first(tr, first_in_net, last_in_net, first); - -- uint ecnt = 0; -+ uint ecnt = 0, ocnt = 0; - for (const struct rt_pending_export *rpe = first; rpe; - rpe = atomic_load_explicit(&rpe->next, memory_order_acquire)) -+ { - ecnt++; -+ if (rpe->it.old) -+ ocnt++; -+ } - - if (ecnt) { - const net_addr *a = (first->it.new ?: first->it.old)->net; -@@ -2558,10 +2569,11 @@ rt_feed_net_best(struct rt_exporter *e, struct rcu_unwinder *u, u32 index, bool - if (!ecnt && (!best || prefilter && !prefilter(f, best->rte.net))) - return NULL; - -- struct rt_export_feed *feed = rt_alloc_feed(!!best, ecnt); -+ struct rt_export_feed *feed = rt_alloc_feed(!!best + ocnt, ecnt); -+ uint bpos = 0; - if (best) - { -- feed->block[0] = best->rte; -+ feed->block[bpos++] = best->rte; - feed->ni = NET_TO_INDEX(best->rte.net); - } - else -@@ -2575,8 +2587,18 @@ rt_feed_net_best(struct rt_exporter *e, struct rcu_unwinder *u, u32 index, bool - if (e >= ecnt) - RT_READ_RETRY(tr); - else -+ { - feed->exports[e++] = rpe->it.seq; -+ if (rpe->it.old) -+ { -+ ASSERT_DIE(bpos < !!best + ocnt); -+ feed->block[bpos] = *rpe->it.old; -+ feed->block[bpos].flags |= REF_OBSOLETE; -+ bpos++; -+ } -+ } - -+ ASSERT_DIE(bpos == !!best + ocnt); - ASSERT_DIE(e == ecnt); - } - --- -GitLab - diff --git a/net/dhcpcd/Makefile b/net/dhcpcd/Makefile index a055b445c774..34649b0cbc36 100644 --- a/net/dhcpcd/Makefile +++ b/net/dhcpcd/Makefile @@ -1,5 +1,5 @@ PORTNAME= dhcpcd -DISTVERSION= 10.2.2 +DISTVERSION= 10.2.3 CATEGORIES= net MASTER_SITES= https://github.com/NetworkConfiguration/${PORTNAME}/releases/download/v${DISTVERSION}/ diff --git a/net/dhcpcd/distinfo b/net/dhcpcd/distinfo index 66b2435f6931..232bfeb2f81b 100644 --- a/net/dhcpcd/distinfo +++ b/net/dhcpcd/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740499857 -SHA256 (dhcpcd-10.2.2.tar.xz) = 5f257b02f874b3b8cb031e5be79c99cf9cbd4f65eae2a50c9b1beddafb3f51bc -SIZE (dhcpcd-10.2.2.tar.xz) = 275700 +TIMESTAMP = 1747631204 +SHA256 (dhcpcd-10.2.3.tar.xz) = 4137a382d1a203bffdf8e757bbdfd0032433d06e5c69a3785b88b83251f89616 +SIZE (dhcpcd-10.2.3.tar.xz) = 276216 diff --git a/net/freerdp3/Makefile b/net/freerdp3/Makefile index 9d042d3acc3a..f9d7dbf3a0d0 100644 --- a/net/freerdp3/Makefile +++ b/net/freerdp3/Makefile @@ -1,10 +1,16 @@ PORTNAME= freerdp DISTVERSION= 3.15.0 +PORTREVISION= 1 CATEGORIES= net comms MASTER_SITES= https://pub.freerdp.com/releases/ \ https://github.com/FreeRDP/FreeRDP/releases/download/${DISTVERSION}/ PKGNAMESUFFIX= 3 +PATCH_SITES= https://github.com/FreeRDP/FreeRDP/commit/ +# Fix realm usage for Heimdal: https://bugs.freebsd.org/286816 +PATCHFILES+= 8c2be5fd53501c129042ec8205ca2ff1bae90cda.patch:-p1 +PATCHFILES+= 374707d4fa609e5434f2166b5c11df655f6ff952.patch:-p1 + MAINTAINER= vvd@FreeBSD.org COMMENT= Free implementation of Remote Desktop Protocol WWW= https://www.freerdp.com/ diff --git a/net/freerdp3/distinfo b/net/freerdp3/distinfo index c4c838dbdd62..b71c876354d5 100644 --- a/net/freerdp3/distinfo +++ b/net/freerdp3/distinfo @@ -1,3 +1,7 @@ -TIMESTAMP = 1744722609 +TIMESTAMP = 1747401167 SHA256 (freerdp-3.15.0.tar.gz) = e8cd58decef4c970faea2fbea675970eea60e440ebe8033c54889acb83787371 SIZE (freerdp-3.15.0.tar.gz) = 10444672 +SHA256 (8c2be5fd53501c129042ec8205ca2ff1bae90cda.patch) = 9ad6bcef07b0b17bdcb86ee0c516f5842146def42288a206b7ab5cfb75052e7a +SIZE (8c2be5fd53501c129042ec8205ca2ff1bae90cda.patch) = 946 +SHA256 (374707d4fa609e5434f2166b5c11df655f6ff952.patch) = 997ba5dd88b223c897741a3a8f0cc134cdf53131459d6402e62958075dda2142 +SIZE (374707d4fa609e5434f2166b5c11df655f6ff952.patch) = 4571 diff --git a/net/gerbera/Makefile b/net/gerbera/Makefile index f39e25400ce7..444ad43a32f1 100644 --- a/net/gerbera/Makefile +++ b/net/gerbera/Makefile @@ -1,8 +1,12 @@ PORTNAME= gerbera DISTVERSIONPREFIX= v DISTVERSION= 2.5.0 +PORTREVISION= 1 CATEGORIES= net multimedia +PATCH_SITES= https://github.com/gerbera/gerbera/commit/ +PATCHFILES= 2ff1b35372854b5856f244fe1277abb987c7418c.patch:-p1 + MAINTAINER= diizzy@FreeBSD.org COMMENT= Media server compatible with DLNA and UPnP WWW= https://gerbera.io/ diff --git a/net/gerbera/distinfo b/net/gerbera/distinfo index cacc5e1c0754..2d677b46963b 100644 --- a/net/gerbera/distinfo +++ b/net/gerbera/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1741381325 +TIMESTAMP = 1747426124 SHA256 (gerbera-gerbera-v2.5.0_GH0.tar.gz) = e1dd2c710758fbb9f4db6f1afc461bdd1b6c55ef29147d450ab6d90624177f09 SIZE (gerbera-gerbera-v2.5.0_GH0.tar.gz) = 9873077 +SHA256 (2ff1b35372854b5856f244fe1277abb987c7418c.patch) = 49e0738f53ad8dfebf91d3ce1d0187afbf56912ecccbe8644a820c80e56b8807 +SIZE (2ff1b35372854b5856f244fe1277abb987c7418c.patch) = 1564 diff --git a/net/gitlab-agent/Makefile b/net/gitlab-agent/Makefile index 9442fc9d92d4..8aae2990842e 100644 --- a/net/gitlab-agent/Makefile +++ b/net/gitlab-agent/Makefile @@ -15,7 +15,7 @@ BUILD_DEPENDS= git>=0:devel/git \ golangci-lint>=0:devel/golangci-lint USES= go:modules,1.23 -GO_MODULE= gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v17 +GO_MODULE= gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18 _BUILD_DATE= $$(date -u "+%Y-%m-%d-%H%M UTC") GO_TARGET= ./cmd/kas diff --git a/net/gitlab-agent/distinfo b/net/gitlab-agent/distinfo index f0ad922f0408..8a8b5d5f9007 100644 --- a/net/gitlab-agent/distinfo +++ b/net/gitlab-agent/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1746703450 -SHA256 (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.mod) = 6c36855cd351c829e5b19c5aa99876db58a2b4bd7b934e05497e7777faa64f8f -SIZE (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.mod) = 9293 -SHA256 (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.zip) = 08c74935d6a0ba77a11eade2b3ca11c20bf3f8619dae652e1e286757dfdaa654 -SIZE (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.zip) = 1555390 +TIMESTAMP = 1747297291 +SHA256 (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.mod) = 0c2121b2efd0904b758621ebeefb6d8ac0a504c59ec144b7b59fc05ab4a73ae8 +SIZE (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.mod) = 9417 +SHA256 (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.zip) = c94d69eeffe74fcbc3301ef65026033b55f34d9b1b4f57a753b4cd1f53f694e6 +SIZE (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.zip) = 1606160 diff --git a/net/jose/Makefile b/net/jose/Makefile index d8c9bc583c5d..034b4b98ef4d 100644 --- a/net/jose/Makefile +++ b/net/jose/Makefile @@ -1,5 +1,6 @@ PORTNAME= jose DISTVERSION= 14 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://github.com/latchset/${PORTNAME}/releases/download/v${DISTVERSION}/ diff --git a/net/jose/files/patch-lib_meson.build b/net/jose/files/patch-lib_meson.build new file mode 100644 index 000000000000..26e763f161a9 --- /dev/null +++ b/net/jose/files/patch-lib_meson.build @@ -0,0 +1,11 @@ +--- lib/meson.build.orig 2025-03-24 16:00:40 UTC ++++ lib/meson.build +@@ -4,7 +4,7 @@ if host_machine.system() == 'freebsd' + + if host_machine.system() == 'freebsd' + if not cc.links(code, args: flags + ',--undefined-version' , name: '-Wl,--version-script=...') +- flags = [ '-export-symbols-regex=^jose_.*' ] ++ # flags = [ '-export-symbols-regex=^jose_.*' ] + endif + else + if not cc.links(code, args: flags, name: '-Wl,--version-script=...') diff --git a/net/libngtcp2-wolfssl/Makefile b/net/libngtcp2-wolfssl/Makefile new file mode 100644 index 000000000000..48b3ec8a1648 --- /dev/null +++ b/net/libngtcp2-wolfssl/Makefile @@ -0,0 +1,37 @@ +PORTNAME= ngtcp2 +PORTVERSION= 1.12.0 +CATEGORIES= net +MASTER_SITES= https://github.com/ngtcp2/ngtcp2/releases/download/v${PORTVERSION}/ +PKGNAMEPREFIX= lib +PKGNAMESUFFIX= -wolfssl + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Implementation of QUIC protocol (wolfssl backend) +WWW= https://nghttp2.org/ngtcp2/ \ + https://github.com/ngtcp2/ngtcp2 + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= libngtcp2>=${PORTVERSION}<${PORTVERSION}_99:net/libngtcp2 +LIB_DEPENDS= libwolfssl.so:security/wolfssl +RUN_DEPENDS= libngtcp2>=${PORTVERSION}<${PORTVERSION}_99:net/libngtcp2 + +USES= libtool pathfix pkgconfig tar:xz + +CONFIGURE_ARGS= --enable-lib-only \ + --with-jemalloc \ + --with-wolfssl \ + --without-boringssl \ + --without-gnutls \ + --without-libbrotlidec \ + --without-libbrotlienc \ + --without-libev \ + --without-libnghttp3 \ + --without-openssl +GNU_CONFIGURE= yes +INSTALL_TARGET= install-strip +INSTALL_WRKSRC= ${WRKSRC}/crypto/wolfssl +USE_LDCONFIG= yes + +.include <bsd.port.mk> diff --git a/net/libngtcp2-wolfssl/distinfo b/net/libngtcp2-wolfssl/distinfo new file mode 100644 index 000000000000..e8e0cf92099c --- /dev/null +++ b/net/libngtcp2-wolfssl/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1745177912 +SHA256 (ngtcp2-1.12.0.tar.xz) = 2527a4c9305dbed610a000a88f94696526aa8959f74249a59f2b96ee73630629 +SIZE (ngtcp2-1.12.0.tar.xz) = 656116 diff --git a/net/libngtcp2-wolfssl/files/patch-Makefile.in b/net/libngtcp2-wolfssl/files/patch-Makefile.in new file mode 100644 index 000000000000..afad6594b328 --- /dev/null +++ b/net/libngtcp2-wolfssl/files/patch-Makefile.in @@ -0,0 +1,13 @@ +--- Makefile.in.orig 2022-01-16 12:35:06 UTC ++++ Makefile.in +@@ -425,8 +425,8 @@ top_srcdir = @top_srcdir@ + # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-SUBDIRS = lib tests doc $(am__append_1) $(am__append_2) +-dist_doc_DATA = README.rst ++SUBDIRS = lib $(am__append_1) ++dist_doc_DATA = + ACLOCAL_AMFLAGS = -I m4 + EXTRA_DIST = \ + cmakeconfig.h.in \ diff --git a/net/libngtcp2-wolfssl/pkg-descr b/net/libngtcp2-wolfssl/pkg-descr new file mode 100644 index 000000000000..badfac901e6b --- /dev/null +++ b/net/libngtcp2-wolfssl/pkg-descr @@ -0,0 +1,4 @@ +ngtcp2 project is an effort to implement QUIC protocol which is now being +discussed in IETF QUICWG for its standardization. + +This port provides the crypto helper library for wolfssl backend. diff --git a/net/libngtcp2-wolfssl/pkg-plist b/net/libngtcp2-wolfssl/pkg-plist new file mode 100644 index 000000000000..c0ba6b3e66e4 --- /dev/null +++ b/net/libngtcp2-wolfssl/pkg-plist @@ -0,0 +1,5 @@ +lib/libngtcp2_crypto_wolfssl.a +lib/libngtcp2_crypto_wolfssl.so +lib/libngtcp2_crypto_wolfssl.so.5 +lib/libngtcp2_crypto_wolfssl.so.5.2.0 +libdata/pkgconfig/libngtcp2_crypto_wolfssl.pc diff --git a/net/p5-Net-Patricia/Makefile b/net/p5-Net-Patricia/Makefile index a91027284949..e8d95b4fc277 100644 --- a/net/p5-Net-Patricia/Makefile +++ b/net/p5-Net-Patricia/Makefile @@ -1,5 +1,6 @@ PORTNAME= Net-Patricia PORTVERSION= 1.23 +PORTREVISION= 1 CATEGORIES= net perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- @@ -8,12 +9,17 @@ MAINTAINER= perl@FreeBSD.org COMMENT= Perl module for fast IP address lookups WWW= https://metacpan.org/release/Net-Patricia -BUILD_DEPENDS= p5-Net-CIDR-Lite>=0.20:net/p5-Net-CIDR-Lite -RUN_DEPENDS= p5-Socket6>=0:net/p5-Socket6 +LICENSE= GPLv2+ +LICENSE_FILE= ${WRKSRC}/COPYING -MAKE_JOBS_UNSAFE=yes +BUILD_DEPENDS= ${RUN_DEPENDS} +RUN_DEPENDS= p5-Net-CIDR-Lite>=0.20:net/p5-Net-CIDR-Lite \ + p5-Socket6>=0:net/p5-Socket6 USES= perl5 USE_PERL5= configure +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Net/Patricia/Patricia.so + .include <bsd.port.mk> diff --git a/net/p5-Net-Patricia/pkg-plist b/net/p5-Net-Patricia/pkg-plist index f5c395475190..13658866cf87 100644 --- a/net/p5-Net-Patricia/pkg-plist +++ b/net/p5-Net-Patricia/pkg-plist @@ -1,3 +1,3 @@ -%%SITE_ARCH%%/auto/Net/Patricia/Patricia.so %%SITE_ARCH%%/Net/Patricia.pm +%%SITE_ARCH%%/auto/Net/Patricia/Patricia.so %%PERL5_MAN3%%/Net::Patricia.3.gz diff --git a/net/pecl-radius/Makefile b/net/pecl-radius/Makefile index 782f1c9ed3b2..013651b682d6 100644 --- a/net/pecl-radius/Makefile +++ b/net/pecl-radius/Makefile @@ -1,6 +1,6 @@ PORTNAME= radius PORTVERSION= 1.4.0b1 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net security pear MAINTAINER= sunpoet@FreeBSD.org diff --git a/net/pecl-radius/files/patch-radlib.c b/net/pecl-radius/files/patch-radlib.c new file mode 100644 index 000000000000..ce4e016181dd --- /dev/null +++ b/net/pecl-radius/files/patch-radlib.c @@ -0,0 +1,10 @@ +--- radlib.c.orig 2025-05-06 17:27:50 UTC ++++ radlib.c +@@ -748,7 +748,6 @@ rad_auth_open(void) + + h = (struct rad_handle *)malloc(sizeof(struct rad_handle)); + if (h != NULL) { +- php_srand(time(NULL) * getpid() * (unsigned long) (php_combined_lcg() * 10000.0)); + h->fd = -1; + h->num_servers = 0; + h->ident = (zend_long) php_mt_rand(); diff --git a/net/py-aiostalk/Makefile b/net/py-aiostalk/Makefile index e05bd0443763..227305893890 100644 --- a/net/py-aiostalk/Makefile +++ b/net/py-aiostalk/Makefile @@ -1,5 +1,5 @@ PORTNAME= aiostalk -DISTVERSION= 1.3 +DISTVERSION= 1.3.1 CATEGORIES= net python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -16,4 +16,6 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}greenstalk>=0:net/py-greenstalk@${PY_FLAVOR} USES= python USE_PYTHON= autoplist distutils +NO_ARCH= yes + .include <bsd.port.mk> diff --git a/net/py-aiostalk/distinfo b/net/py-aiostalk/distinfo index 6d87131417d4..9873e2ba6c5e 100644 --- a/net/py-aiostalk/distinfo +++ b/net/py-aiostalk/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743208973 -SHA256 (aiostalk-1.3.tar.gz) = 024d366a3347c60ce044f3566d83575c5697c6f4a04947428606140ff5a3788b -SIZE (aiostalk-1.3.tar.gz) = 5258 +TIMESTAMP = 1747431472 +SHA256 (aiostalk-1.3.1.tar.gz) = a2ce935e04051671489b6e5bec88188e5ebad3450dedb9f13a47356c458fa03d +SIZE (aiostalk-1.3.1.tar.gz) = 5353 diff --git a/net/py-greenstalk/Makefile b/net/py-greenstalk/Makefile index c0f3bca4734b..cda44795944f 100644 --- a/net/py-greenstalk/Makefile +++ b/net/py-greenstalk/Makefile @@ -1,5 +1,5 @@ PORTNAME= greenstalk -DISTVERSION= 2.0.2 +DISTVERSION= 2.1.0 CATEGORIES= net python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -12,9 +12,12 @@ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} USES= python USE_PYTHON= autoplist pep517 +NO_ARCH= yes + .include <bsd.port.mk> diff --git a/net/py-greenstalk/distinfo b/net/py-greenstalk/distinfo index 64dd87854e5d..63a5d476b055 100644 --- a/net/py-greenstalk/distinfo +++ b/net/py-greenstalk/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1743207566 -SHA256 (greenstalk-2.0.2.tar.gz) = 3ebde5fc9ecf986f96f6779fd6d15a53f33d432c52a2e28012e100a99ee154a4 -SIZE (greenstalk-2.0.2.tar.gz) = 6809 +TIMESTAMP = 1747431511 +SHA256 (greenstalk-2.1.0.tar.gz) = a731ca15bc3b03dfffc438db08c96d0c4e8ce5f472403573e40a1939791c12a7 +SIZE (greenstalk-2.1.0.tar.gz) = 6674 diff --git a/net/py-msrplib/Makefile b/net/py-msrplib/Makefile index 68271dc4dae1..4dd9d511d324 100644 --- a/net/py-msrplib/Makefile +++ b/net/py-msrplib/Makefile @@ -1,10 +1,9 @@ PORTNAME= msrplib -PORTVERSION= 0.20.0 -PORTREVISION= 2 +PORTVERSION= 0.21.1 CATEGORIES= net python -MASTER_SITES= http://download.ag-projects.com/MSRP/ +MASTER_SITES= https://download.ag-projects.com/MSRP/ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -DISTNAME= python-${PORTNAME}-${PORTVERSION} +DISTNAME= python3-msrplib-${PORTVERSION} MAINTAINER= python@FreeBSD.org COMMENT= Python MSRP client library diff --git a/net/py-msrplib/distinfo b/net/py-msrplib/distinfo index 96c26a744425..265ffc41bb42 100644 --- a/net/py-msrplib/distinfo +++ b/net/py-msrplib/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1597570081 -SHA256 (python-msrplib-0.20.0.tar.gz) = 3a2ed4f174b6e758bb511b05211177cdc0c887c77488cbf0c31fe34b669d6231 -SIZE (python-msrplib-0.20.0.tar.gz) = 34278 +TIMESTAMP = 1747520769 +SHA256 (python3-msrplib-0.21.1.tar.gz) = e8c916ca8c74a20a285553605acab7942cd29f66fb1dff9ea28aee4c19bea1df +SIZE (python3-msrplib-0.21.1.tar.gz) = 42149 diff --git a/net/py-msrplib/files/patch-2to3 b/net/py-msrplib/files/patch-2to3 deleted file mode 100644 index edbd524cf770..000000000000 --- a/net/py-msrplib/files/patch-2to3 +++ /dev/null @@ -1,69 +0,0 @@ ---- msrplib/digest.py.orig 2017-09-29 19:26:59 UTC -+++ msrplib/digest.py -@@ -6,7 +6,7 @@ from base64 import b64encode, b64decode - import random - - def get_random_data(length): -- return ''.join(chr(random.randint(0, 255)) for x in xrange(length)) -+ return ''.join(chr(random.randint(0, 255)) for x in range(length)) - - class LoginFailed(Exception): - pass -@@ -28,7 +28,7 @@ def calc_hash(**parameters): - return md5(hash_text).hexdigest() - - def calc_responses(**parameters): -- if parameters.has_key("ha1"): -+ if "ha1" in parameters: - ha1 = parameters.pop("ha1") - else: - ha1 = calc_ha1(**parameters) -@@ -80,7 +80,7 @@ class AuthChallenger(object): - nonce = parameters["nonce"] - opaque = parameters["opaque"] - response = parameters["response"] -- except IndexError, e: -+ except IndexError as e: - raise LoginFailed("Parameter not present: %s", e.message) - try: - expected_response, rspauth = calc_responses(ha1 = ha1, **parameters) ---- msrplib/session.py.orig 2020-02-07 08:31:31 UTC -+++ msrplib/session.py -@@ -120,7 +120,7 @@ class MSRPSession(object): - chunk = self.msrp.make_send_request() - chunk.add_header(protocol.MSRPHeader('Keep-Alive', 'yes')) - self.deliver_chunk(chunk) -- except MSRPTransactionError, e: -+ except MSRPTransactionError as e: - if e.code == 408: - self.msrp.loseConnection(wait=False) - self.set_state('CLOSING') -@@ -237,7 +237,7 @@ class MSRPSession(object): - if item is None: - break - self._write_chunk(item.chunk, item.response_callback) -- except ConnectionClosedErrors + (proc.LinkedExited, proc.ProcExit), e: -+ except ConnectionClosedErrors + (proc.LinkedExited, proc.ProcExit) as e: - self.logger.debug('writer: exiting because of %r' % e) - except: - self.logger.exception('writer: captured unhandled exception:') ---- msrplib/transport.py.orig 2020-02-07 08:31:31 UTC -+++ msrplib/transport.py -@@ -46,7 +46,7 @@ class MSRPNoSuchSessionError(MSRPTransactionError): - comment = 'No such session' - - --data_start, data_end, data_write, data_final_write = range(4) -+data_start, data_end, data_write, data_final_write = list(range(4)) - - - def make_report(chunk, code, comment): -@@ -244,7 +244,7 @@ class MSRPTransport(GreenTransportBase): - """Generate and write the response, lose the connection in case of error""" - try: - response = make_response(chunk, code, comment) -- except ChunkParseError, ex: -+ except ChunkParseError as ex: - log.error('Failed to generate a response: %s' % ex) - self.loseConnection(wait=False) - raise diff --git a/net/py-pyzmq/Makefile b/net/py-pyzmq/Makefile index 5d7ae910f2b8..bfd0de970bfe 100644 --- a/net/py-pyzmq/Makefile +++ b/net/py-pyzmq/Makefile @@ -5,7 +5,7 @@ CATEGORIES= net devel MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -MAINTAINER= novel@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Python bindings for ZeroMQ WWW= https://github.com/zeromq/pyzmq diff --git a/net/py-s3transfer/Makefile b/net/py-s3transfer/Makefile index 62f1a9c22252..3a774005361c 100644 --- a/net/py-s3transfer/Makefile +++ b/net/py-s3transfer/Makefile @@ -1,5 +1,5 @@ PORTNAME= s3transfer -PORTVERSION= 0.11.5 +PORTVERSION= 0.12.0 CATEGORIES= net python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/net/py-s3transfer/distinfo b/net/py-s3transfer/distinfo index 8fea40ecee58..66d5641dad85 100644 --- a/net/py-s3transfer/distinfo +++ b/net/py-s3transfer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745178084 -SHA256 (s3transfer-0.11.5.tar.gz) = 8c8aad92784779ab8688a61aefff3e28e9ebdce43142808eaa3f0b0f402f68b7 -SIZE (s3transfer-0.11.5.tar.gz) = 149107 +TIMESTAMP = 1745936208 +SHA256 (s3transfer-0.12.0.tar.gz) = 8ac58bc1989a3fdb7c7f3ee0918a66b160d038a147c7b5db1500930a607e9a1c +SIZE (s3transfer-0.12.0.tar.gz) = 149178 diff --git a/net/py-uritools/Makefile b/net/py-uritools/Makefile index b296acd38aad..afa41ad7efbc 100644 --- a/net/py-uritools/Makefile +++ b/net/py-uritools/Makefile @@ -1,5 +1,5 @@ PORTNAME= uritools -PORTVERSION= 4.0.3 +PORTVERSION= 5.0.0 CATEGORIES= net python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/net/py-uritools/distinfo b/net/py-uritools/distinfo index 7534612b5b2b..87d8287b2571 100644 --- a/net/py-uritools/distinfo +++ b/net/py-uritools/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1717003910 -SHA256 (uritools-4.0.3.tar.gz) = ee06a182a9c849464ce9d5fa917539aacc8edd2a4924d1b7aabeeecabcae3bc2 -SIZE (uritools-4.0.3.tar.gz) = 24184 +TIMESTAMP = 1747546570 +SHA256 (uritools-5.0.0.tar.gz) = 68180cad154062bd5b5d9ffcdd464f8de6934414b25462ae807b00b8df9345de +SIZE (uritools-5.0.0.tar.gz) = 22730 diff --git a/net/py-urllib3-future/Makefile b/net/py-urllib3-future/Makefile index ae886284da27..09b126f0b974 100644 --- a/net/py-urllib3-future/Makefile +++ b/net/py-urllib3-future/Makefile @@ -1,5 +1,5 @@ PORTNAME= urllib3-future -PORTVERSION= 2.12.917 +PORTVERSION= 2.12.920 CATEGORIES= net python MASTER_SITES= PYPI \ https://github.com/jawah/urllib3.future/releases/download/${PORTVERSION}/ diff --git a/net/py-urllib3-future/distinfo b/net/py-urllib3-future/distinfo index eb5932b18bc6..875619a2d0ab 100644 --- a/net/py-urllib3-future/distinfo +++ b/net/py-urllib3-future/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745178086 -SHA256 (urllib3_future-2.12.917.tar.gz) = e5cf749b7861d3006d9cead2ac742f0f9d8880022b62799689cb2c4134dede6f -SIZE (urllib3_future-2.12.917.tar.gz) = 1069369 +TIMESTAMP = 1747546572 +SHA256 (urllib3_future-2.12.920.tar.gz) = 642b235a89cbddb7a3c6703a11fd0255473231be791214fd01abd465371ea8fb +SIZE (urllib3_future-2.12.920.tar.gz) = 1074474 diff --git a/net/rubygem-activestorage-gitlab/Makefile b/net/rubygem-activestorage-gitlab/Makefile new file mode 100644 index 000000000000..aa7f53cc97cc --- /dev/null +++ b/net/rubygem-activestorage-gitlab/Makefile @@ -0,0 +1,28 @@ +PORTNAME= activestorage +PORTVERSION= ${RAILS_VERSION} +CATEGORIES= net rubygems +MASTER_SITES= RG +PKGNAMESUFFIX= -gitlab + +MAINTAINER= mfechner@FreeBSD.org +COMMENT= Attach cloud and local files in Rails applications +WWW= https://github.com/rails/rails/tree/main/activestorage \ + https://rubyonrails.org/ + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/MIT-LICENSE + +RUN_DEPENDS= rubygem-actionpack-gitlab>=${PORTVERSION}<${PORTVERSION}_99:www/rubygem-actionpack-gitlab \ + rubygem-activejob-gitlab>=${PORTVERSION}<${PORTVERSION}_99:devel/rubygem-activejob-gitlab \ + rubygem-activerecord-gitlab>=${PORTVERSION}<${PORTVERSION}_99:databases/rubygem-activerecord-gitlab \ + rubygem-activesupport-gitlab>=${PORTVERSION}<${PORTVERSION}_99:devel/rubygem-activesupport-gitlab \ + rubygem-marcel>=1.0<2:devel/rubygem-marcel + +USES= gem + +NO_ARCH= yes + +PORTSCOUT= limit:^7\.1\. + +.include "${.CURDIR}/../../www/gitlab/Makefile.common" +.include <bsd.port.mk> diff --git a/net/rubygem-activestorage-gitlab/distinfo b/net/rubygem-activestorage-gitlab/distinfo new file mode 100644 index 000000000000..705479df0713 --- /dev/null +++ b/net/rubygem-activestorage-gitlab/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1734888818 +SHA256 (rubygem/activestorage-7.1.5.1.gem) = ae6b8b076858c666eaad6f896d786b67654235e861e24a83f61f1cc97b43ff63 +SIZE (rubygem/activestorage-7.1.5.1.gem) = 67584 diff --git a/net/rubygem-activestorage-gitlab/pkg-descr b/net/rubygem-activestorage-gitlab/pkg-descr new file mode 100644 index 000000000000..48422441ebc3 --- /dev/null +++ b/net/rubygem-activestorage-gitlab/pkg-descr @@ -0,0 +1,11 @@ +Active Storage makes it simple to upload and reference files in cloud services +like Amazon S3, Google Cloud Storage, or Microsoft Azure Storage, and attach +those files to Active Records. Supports having one main service and mirrors in +other services for redundancy. It also provides a disk service for testing or +local deployments, but the focus is on cloud storage. + +Files can be uploaded from the server to the cloud or directly from the client +to the cloud. + +Image files can furthermore be transformed using on-demand variants for quality, +aspect ratio, size, or any other MiniMagick or Vips supported transformation. diff --git a/net/rubygem-amq-protocol/Makefile b/net/rubygem-amq-protocol/Makefile index 7a9c12f327ed..deab5789a4c1 100644 --- a/net/rubygem-amq-protocol/Makefile +++ b/net/rubygem-amq-protocol/Makefile @@ -13,7 +13,6 @@ LICENSE_FILE= ${WRKSRC}/LICENSE USES= gem python:env shebangfix NO_ARCH= yes -REINPLACE_ARGS= -i '' SHEBANG_FILES= codegen/codegen.py diff --git a/net/rubygem-apollo_upload_server/Makefile b/net/rubygem-apollo_upload_server/Makefile index 1ba6a42c566e..8d0a4c6d89f0 100644 --- a/net/rubygem-apollo_upload_server/Makefile +++ b/net/rubygem-apollo_upload_server/Makefile @@ -1,5 +1,6 @@ PORTNAME= apollo_upload_server PORTVERSION= 2.1.6 +PORTREVISION= 1 CATEGORIES= net rubygems MASTER_SITES= RG @@ -10,7 +11,7 @@ WWW= https://github.com/jetruby/apollo_upload_server-ruby LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.txt -RUN_DEPENDS= rubygem-actionpack70>=6.1.6:www/rubygem-actionpack70 \ +RUN_DEPENDS= rubygem-actionpack-gitlab>=6.1.6:www/rubygem-actionpack-gitlab \ rubygem-graphql>=1.8:devel/rubygem-graphql USES= gem diff --git a/net/rubygem-connection_pool/Makefile b/net/rubygem-connection_pool/Makefile index 22117669dd9a..bcbb3ede08be 100644 --- a/net/rubygem-connection_pool/Makefile +++ b/net/rubygem-connection_pool/Makefile @@ -1,5 +1,5 @@ PORTNAME= connection_pool -PORTVERSION= 2.5.1 +PORTVERSION= 2.5.3 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-connection_pool/distinfo b/net/rubygem-connection_pool/distinfo index 6ead3e72f040..7ce41d793dc9 100644 --- a/net/rubygem-connection_pool/distinfo +++ b/net/rubygem-connection_pool/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745178270 -SHA256 (rubygem/connection_pool-2.5.1.gem) = ae802a90a4b5a081101b39d618e69921a9a50bea9ac3420a5b8c71f1befa3e9c -SIZE (rubygem/connection_pool-2.5.1.gem) = 12800 +TIMESTAMP = 1745936446 +SHA256 (rubygem/connection_pool-2.5.3.gem) = cfd74a82b9b094d1ce30c4f1a346da23ee19dc8a062a16a85f58eab1ced4305b +SIZE (rubygem/connection_pool-2.5.3.gem) = 12800 diff --git a/net/rubygem-devfile-gitlab/Makefile b/net/rubygem-devfile-gitlab/Makefile deleted file mode 100644 index 55085ca8abe1..000000000000 --- a/net/rubygem-devfile-gitlab/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -PORTNAME= devfile -DISTVERSION= 0.4.4 -CATEGORIES= net rubygems -MASTER_SITES= RG -PKGNAMESUFFIX= -gitlab - -MAINTAINER= mfechner@FreeBSD.org -COMMENT= Library used to generate kubernetes manifests from a Devfile -WWW= https://gitlab.com/gitlab-org/ruby/gems/devfile-gem - -LICENSE= MIT - -USES= gem - -NO_ARCH= yes - -.include <bsd.port.mk> diff --git a/net/rubygem-devfile-gitlab/distinfo b/net/rubygem-devfile-gitlab/distinfo deleted file mode 100644 index 3f7e9308d15a..000000000000 --- a/net/rubygem-devfile-gitlab/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1746603888 -SHA256 (rubygem/devfile-0.4.4.gem) = 7ab954cfb23755bba94d188e5927fa66be979084b84c1cf464c413f8501e92b5 -SIZE (rubygem/devfile-0.4.4.gem) = 124867584 diff --git a/net/rubygem-devfile-gitlab/pkg-descr b/net/rubygem-devfile-gitlab/pkg-descr deleted file mode 100644 index 05adde9472f4..000000000000 --- a/net/rubygem-devfile-gitlab/pkg-descr +++ /dev/null @@ -1,2 +0,0 @@ -This gem generates Kubernetes yamls from a Devfile. This gem wraps the existing -go Devfile library using FFI. diff --git a/net/rubygem-fog-aws/Makefile b/net/rubygem-fog-aws/Makefile index 1fd7a6687d9d..4e7774a47b52 100644 --- a/net/rubygem-fog-aws/Makefile +++ b/net/rubygem-fog-aws/Makefile @@ -1,5 +1,5 @@ PORTNAME= fog-aws -PORTVERSION= 3.30.0 +PORTVERSION= 3.31.0 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-fog-aws/distinfo b/net/rubygem-fog-aws/distinfo index 7ef5da3f6c9f..286b5396cf2f 100644 --- a/net/rubygem-fog-aws/distinfo +++ b/net/rubygem-fog-aws/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1735228162 -SHA256 (rubygem/fog-aws-3.30.0.gem) = f70b811b655fbfa2e7c59da9c3c0672af43436128cbee4bbf46ee6d78d9a5004 -SIZE (rubygem/fog-aws-3.30.0.gem) = 435200 +TIMESTAMP = 1745936398 +SHA256 (rubygem/fog-aws-3.31.0.gem) = 31f7854f102a5133562828c32c8587bdbf276576cadd2cd3aec1292eaf3f0405 +SIZE (rubygem/fog-aws-3.31.0.gem) = 435200 diff --git a/net/rubygem-fog-google/Makefile b/net/rubygem-fog-google/Makefile index ab09919b0859..32aa7b588853 100644 --- a/net/rubygem-fog-google/Makefile +++ b/net/rubygem-fog-google/Makefile @@ -1,6 +1,5 @@ PORTNAME= fog-google -PORTVERSION= 1.24.1 -PORTREVISION= 2 +PORTVERSION= 1.25.0 CATEGORIES= net rubygems MASTER_SITES= RG @@ -12,7 +11,7 @@ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.md RUN_DEPENDS= rubygem-addressable>=2.7.0:www/rubygem-addressable \ - rubygem-fog-core250>=0<2.6:devel/rubygem-fog-core250 \ + rubygem-fog-core>=2.5<3:devel/rubygem-fog-core \ rubygem-fog-json>=1.2<2:devel/rubygem-fog-json \ rubygem-fog-xml>=0.1.0<0.2:textproc/rubygem-fog-xml \ rubygem-google-apis-compute_v1>=0.53<1:devel/rubygem-google-apis-compute_v1 \ diff --git a/net/rubygem-fog-google/distinfo b/net/rubygem-fog-google/distinfo index 9c34f0e30d69..110c4e4492e4 100644 --- a/net/rubygem-fog-google/distinfo +++ b/net/rubygem-fog-google/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1713001210 -SHA256 (rubygem/fog-google-1.24.1.gem) = dcd64ec5d12ed53f269afd7a88738b453e5150ef72b451900bb7abf3678358e0 -SIZE (rubygem/fog-google-1.24.1.gem) = 155648 +TIMESTAMP = 1745936400 +SHA256 (rubygem/fog-google-1.25.0.gem) = 58aea3b0abf5938ed6ca2a3b51282cfe7038403e2eeb70bdb0a1b998307ce18f +SIZE (rubygem/fog-google-1.25.0.gem) = 155136 diff --git a/net/rubygem-fog-google/files/patch-gemspec b/net/rubygem-fog-google/files/patch-gemspec deleted file mode 100644 index c58ba9710bf3..000000000000 --- a/net/rubygem-fog-google/files/patch-gemspec +++ /dev/null @@ -1,11 +0,0 @@ ---- fog-google.gemspec.orig 2024-10-30 07:29:28 UTC -+++ fog-google.gemspec -@@ -21,7 +21,7 @@ Gem::Specification.new do |s| - - s.specification_version = 4 - -- s.add_runtime_dependency(%q<fog-core>.freeze, ["< 2.5".freeze]) -+ s.add_runtime_dependency(%q<fog-core>.freeze, ["< 2.7".freeze]) - s.add_runtime_dependency(%q<fog-json>.freeze, ["~> 1.2".freeze]) - s.add_runtime_dependency(%q<fog-xml>.freeze, ["~> 0.1.0".freeze]) - s.add_runtime_dependency(%q<google-apis-storage_v1>.freeze, [">= 0.19".freeze, "< 1".freeze]) diff --git a/net/rubygem-fog-vsphere/Makefile b/net/rubygem-fog-vsphere/Makefile index b39540a2053d..e1b8bb105630 100644 --- a/net/rubygem-fog-vsphere/Makefile +++ b/net/rubygem-fog-vsphere/Makefile @@ -1,5 +1,5 @@ PORTNAME= fog-vsphere -PORTVERSION= 3.7.0 +PORTVERSION= 3.7.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-fog-vsphere/distinfo b/net/rubygem-fog-vsphere/distinfo index e73d46a8ad5e..fffce494b945 100644 --- a/net/rubygem-fog-vsphere/distinfo +++ b/net/rubygem-fog-vsphere/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1723201149 -SHA256 (rubygem/fog-vsphere-3.7.0.gem) = 99f922b79518ed5c777f3daa987ee608ed419cbb8aacc2cea4f75ee7b1edcbaf -SIZE (rubygem/fog-vsphere-3.7.0.gem) = 97280 +TIMESTAMP = 1747547480 +SHA256 (rubygem/fog-vsphere-3.7.1.gem) = e5cee970b33c92e2edc50e8954ad55c91e65293a058c4724a3a5a4190646ef43 +SIZE (rubygem/fog-vsphere-3.7.1.gem) = 317440 diff --git a/net/rubygem-gitlab-kas-grpc/distinfo b/net/rubygem-gitlab-kas-grpc/distinfo index f9d7101dc764..0c29dc280488 100644 --- a/net/rubygem-gitlab-kas-grpc/distinfo +++ b/net/rubygem-gitlab-kas-grpc/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746703509 -SHA256 (rubygem/gitlab-kas-grpc-17.11.2.gem) = f2b9054dcf636346e89549e9478a684a38bf03bf853332e84154ec3a9856ae1c -SIZE (rubygem/gitlab-kas-grpc-17.11.2.gem) = 10752 +TIMESTAMP = 1747297312 +SHA256 (rubygem/gitlab-kas-grpc-18.0.0.gem) = 48956943a9a314561970eff65bcb2619df39d52e9469ae91c410e65042365e43 +SIZE (rubygem/gitlab-kas-grpc-18.0.0.gem) = 10752 diff --git a/net/rubygem-google-cloud-bigtable-admin-v2/Makefile b/net/rubygem-google-cloud-bigtable-admin-v2/Makefile index d5d91e93bc01..6785d033fcc5 100644 --- a/net/rubygem-google-cloud-bigtable-admin-v2/Makefile +++ b/net/rubygem-google-cloud-bigtable-admin-v2/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-bigtable-admin-v2 -PORTVERSION= 1.8.0 +PORTVERSION= 1.9.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-bigtable-admin-v2/distinfo b/net/rubygem-google-cloud-bigtable-admin-v2/distinfo index d84b803b5215..19d39b356468 100644 --- a/net/rubygem-google-cloud-bigtable-admin-v2/distinfo +++ b/net/rubygem-google-cloud-bigtable-admin-v2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742405562 -SHA256 (rubygem/google-cloud-bigtable-admin-v2-1.8.0.gem) = cf058b30e5b7ad262e340e46b5d02221a22b2b5db0536873aa9a3bd0a7152b88 -SIZE (rubygem/google-cloud-bigtable-admin-v2-1.8.0.gem) = 132096 +TIMESTAMP = 1747547482 +SHA256 (rubygem/google-cloud-bigtable-admin-v2-1.9.1.gem) = 256e5bbb7d190996e813a7f00d012df3fef4b1c511a7de9a2d03695f08381a8a +SIZE (rubygem/google-cloud-bigtable-admin-v2-1.9.1.gem) = 132096 diff --git a/net/rubygem-google-cloud-bigtable-v2/Makefile b/net/rubygem-google-cloud-bigtable-v2/Makefile index 16add52b93fb..9efcc878f24c 100644 --- a/net/rubygem-google-cloud-bigtable-v2/Makefile +++ b/net/rubygem-google-cloud-bigtable-v2/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-bigtable-v2 -PORTVERSION= 1.6.0 +PORTVERSION= 1.6.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-bigtable-v2/distinfo b/net/rubygem-google-cloud-bigtable-v2/distinfo index d2767939d404..cd654553e6b8 100644 --- a/net/rubygem-google-cloud-bigtable-v2/distinfo +++ b/net/rubygem-google-cloud-bigtable-v2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742405564 -SHA256 (rubygem/google-cloud-bigtable-v2-1.6.0.gem) = 43f5859e0737021a700bfc1d2088c45d1327df32ed0c0a0b455faa349c2566c2 -SIZE (rubygem/google-cloud-bigtable-v2-1.6.0.gem) = 74752 +TIMESTAMP = 1747547484 +SHA256 (rubygem/google-cloud-bigtable-v2-1.6.1.gem) = af26aabc9338701f2da9fd9d15caed294c2e7772009ec72d7fae0bfa78651828 +SIZE (rubygem/google-cloud-bigtable-v2-1.6.1.gem) = 74752 diff --git a/net/rubygem-google-cloud-env/Makefile b/net/rubygem-google-cloud-env/Makefile index 50ad09b38f37..88fb60c5bc6c 100644 --- a/net/rubygem-google-cloud-env/Makefile +++ b/net/rubygem-google-cloud-env/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-env -PORTVERSION= 2.2.2 +PORTVERSION= 2.3.0 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-env/distinfo b/net/rubygem-google-cloud-env/distinfo index ccfca43e8d6b..4df30f0729e7 100644 --- a/net/rubygem-google-cloud-env/distinfo +++ b/net/rubygem-google-cloud-env/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742070728 -SHA256 (rubygem/google-cloud-env-2.2.2.gem) = 94bed40e05a67e9468ce1cb38389fba9a90aa8fc62fc9e173204c1dca59e21e7 -SIZE (rubygem/google-cloud-env-2.2.2.gem) = 33792 +TIMESTAMP = 1747547486 +SHA256 (rubygem/google-cloud-env-2.3.0.gem) = db80b120fc163d1b83ffe8c0bc82e9ad0025ef0d51d987068c7278677ee5caf7 +SIZE (rubygem/google-cloud-env-2.3.0.gem) = 33792 diff --git a/net/rubygem-google-cloud-location/Makefile b/net/rubygem-google-cloud-location/Makefile index 53b89d88599b..f2baa8891379 100644 --- a/net/rubygem-google-cloud-location/Makefile +++ b/net/rubygem-google-cloud-location/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-location -PORTVERSION= 0.10.0 +PORTVERSION= 0.10.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-location/distinfo b/net/rubygem-google-cloud-location/distinfo index e1269b640ad7..edd137330a07 100644 --- a/net/rubygem-google-cloud-location/distinfo +++ b/net/rubygem-google-cloud-location/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738606601 -SHA256 (rubygem/google-cloud-location-0.10.0.gem) = 9244b465b6d7b404c65b4a9c3dcf7336da16724a9cad4e221de82792db934dc0 -SIZE (rubygem/google-cloud-location-0.10.0.gem) = 30720 +TIMESTAMP = 1747547488 +SHA256 (rubygem/google-cloud-location-0.10.1.gem) = aad6e51f66a10912a3b4beda9e8e2ed973d9bd233ecb92910b2e2dee55772015 +SIZE (rubygem/google-cloud-location-0.10.1.gem) = 30720 diff --git a/net/rubygem-google-cloud-logging-v2/Makefile b/net/rubygem-google-cloud-logging-v2/Makefile index f045f0e47f9a..2650afa5a47b 100644 --- a/net/rubygem-google-cloud-logging-v2/Makefile +++ b/net/rubygem-google-cloud-logging-v2/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-logging-v2 -PORTVERSION= 1.2.0 +PORTVERSION= 1.2.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-logging-v2/distinfo b/net/rubygem-google-cloud-logging-v2/distinfo index cb6e1193c733..9b263e920df6 100644 --- a/net/rubygem-google-cloud-logging-v2/distinfo +++ b/net/rubygem-google-cloud-logging-v2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740836330 -SHA256 (rubygem/google-cloud-logging-v2-1.2.0.gem) = a0551d31835c82f6df1191a6fcc3c7df0c92ccbf7fb4c51693c055911534d4f2 -SIZE (rubygem/google-cloud-logging-v2-1.2.0.gem) = 113152 +TIMESTAMP = 1747547490 +SHA256 (rubygem/google-cloud-logging-v2-1.2.1.gem) = 9b7d3c94a47437c8a9949104e2d42b68ee13544f6ce55e87b2b4e20830371b57 +SIZE (rubygem/google-cloud-logging-v2-1.2.1.gem) = 113664 diff --git a/net/rubygem-google-cloud-monitoring-dashboard-v1/Makefile b/net/rubygem-google-cloud-monitoring-dashboard-v1/Makefile index a305fdd77b4e..f68f3793c936 100644 --- a/net/rubygem-google-cloud-monitoring-dashboard-v1/Makefile +++ b/net/rubygem-google-cloud-monitoring-dashboard-v1/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-monitoring-dashboard-v1 -PORTVERSION= 1.2.0 +PORTVERSION= 1.2.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-monitoring-dashboard-v1/distinfo b/net/rubygem-google-cloud-monitoring-dashboard-v1/distinfo index f6e5a3daca3a..476a1ce09a40 100644 --- a/net/rubygem-google-cloud-monitoring-dashboard-v1/distinfo +++ b/net/rubygem-google-cloud-monitoring-dashboard-v1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740836332 -SHA256 (rubygem/google-cloud-monitoring-dashboard-v1-1.2.0.gem) = ef9c7ac8688ab246ee0ac1d23ccb43ac433317c66134bbd57847c0bbdb1ee288 -SIZE (rubygem/google-cloud-monitoring-dashboard-v1-1.2.0.gem) = 68096 +TIMESTAMP = 1747547494 +SHA256 (rubygem/google-cloud-monitoring-dashboard-v1-1.2.1.gem) = aa2478ce9cf00af17ff8539d8ba285ca3af8d14a3471c8044dfddd963ab9dfa1 +SIZE (rubygem/google-cloud-monitoring-dashboard-v1-1.2.1.gem) = 68096 diff --git a/net/rubygem-google-cloud-monitoring-metrics_scope-v1/Makefile b/net/rubygem-google-cloud-monitoring-metrics_scope-v1/Makefile index d245dd6b47ad..e21aa63532db 100644 --- a/net/rubygem-google-cloud-monitoring-metrics_scope-v1/Makefile +++ b/net/rubygem-google-cloud-monitoring-metrics_scope-v1/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-monitoring-metrics_scope-v1 -PORTVERSION= 1.2.0 +PORTVERSION= 1.2.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-monitoring-metrics_scope-v1/distinfo b/net/rubygem-google-cloud-monitoring-metrics_scope-v1/distinfo index 6f3496b5f6b0..1a4e6be2467b 100644 --- a/net/rubygem-google-cloud-monitoring-metrics_scope-v1/distinfo +++ b/net/rubygem-google-cloud-monitoring-metrics_scope-v1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738606605 -SHA256 (rubygem/google-cloud-monitoring-metrics_scope-v1-1.2.0.gem) = 4846113733c111eb2c53e6fbd609707ec414869e82165bb09e02ed5c1d6675bd -SIZE (rubygem/google-cloud-monitoring-metrics_scope-v1-1.2.0.gem) = 43520 +TIMESTAMP = 1747547496 +SHA256 (rubygem/google-cloud-monitoring-metrics_scope-v1-1.2.1.gem) = f10135bc4fcaf1a902d5bc2ee4de26cb7007b491f9ba6e937569ffe78e7b6106 +SIZE (rubygem/google-cloud-monitoring-metrics_scope-v1-1.2.1.gem) = 43520 diff --git a/net/rubygem-google-cloud-monitoring-v3/Makefile b/net/rubygem-google-cloud-monitoring-v3/Makefile index 6d03439ee684..d17f692f6754 100644 --- a/net/rubygem-google-cloud-monitoring-v3/Makefile +++ b/net/rubygem-google-cloud-monitoring-v3/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-monitoring-v3 -PORTVERSION= 1.5.0 +PORTVERSION= 1.5.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-monitoring-v3/distinfo b/net/rubygem-google-cloud-monitoring-v3/distinfo index caa6c5eca780..fe712d23c69e 100644 --- a/net/rubygem-google-cloud-monitoring-v3/distinfo +++ b/net/rubygem-google-cloud-monitoring-v3/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740836334 -SHA256 (rubygem/google-cloud-monitoring-v3-1.5.0.gem) = 783752cbb4f45f2618df8ce68ee26a6af244e564e80e4e95fab85b455b3e0b77 -SIZE (rubygem/google-cloud-monitoring-v3-1.5.0.gem) = 175104 +TIMESTAMP = 1747547498 +SHA256 (rubygem/google-cloud-monitoring-v3-1.5.1.gem) = 59e3a9f46bc0ea65a06a2a72c50609fc15465764563a61c501879ec3071fc7db +SIZE (rubygem/google-cloud-monitoring-v3-1.5.1.gem) = 175616 diff --git a/net/rubygem-google-cloud-monitoring/Makefile b/net/rubygem-google-cloud-monitoring/Makefile index 01262b36c601..b2b7bef5a70a 100644 --- a/net/rubygem-google-cloud-monitoring/Makefile +++ b/net/rubygem-google-cloud-monitoring/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-monitoring -PORTVERSION= 1.9.0 +PORTVERSION= 1.9.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-monitoring/distinfo b/net/rubygem-google-cloud-monitoring/distinfo index 7a12daa735a6..3cd0d147fb87 100644 --- a/net/rubygem-google-cloud-monitoring/distinfo +++ b/net/rubygem-google-cloud-monitoring/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738606603 -SHA256 (rubygem/google-cloud-monitoring-1.9.0.gem) = ed5813941814c352136ee83301d27621dda9dbcf589c4eade7f3d315988d3467 -SIZE (rubygem/google-cloud-monitoring-1.9.0.gem) = 20480 +TIMESTAMP = 1747547492 +SHA256 (rubygem/google-cloud-monitoring-1.9.1.gem) = e05877ac6fe0f9933fed8d92785c88a09a8c498462a7ed456c16757ce2427053 +SIZE (rubygem/google-cloud-monitoring-1.9.1.gem) = 20480 diff --git a/net/rubygem-google-cloud-pubsub-v1/Makefile b/net/rubygem-google-cloud-pubsub-v1/Makefile index 122a97401006..9417f2f7a939 100644 --- a/net/rubygem-google-cloud-pubsub-v1/Makefile +++ b/net/rubygem-google-cloud-pubsub-v1/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-pubsub-v1 -PORTVERSION= 1.8.0 +PORTVERSION= 1.8.2 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-pubsub-v1/distinfo b/net/rubygem-google-cloud-pubsub-v1/distinfo index 062a345a7b38..13cd3aaf2bfe 100644 --- a/net/rubygem-google-cloud-pubsub-v1/distinfo +++ b/net/rubygem-google-cloud-pubsub-v1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742070734 -SHA256 (rubygem/google-cloud-pubsub-v1-1.8.0.gem) = a40f5ac13851b57a3f63c4266cdbb16f4fd0d94a9c6bae354c1c5418e5ecabe1 -SIZE (rubygem/google-cloud-pubsub-v1-1.8.0.gem) = 95232 +TIMESTAMP = 1747547500 +SHA256 (rubygem/google-cloud-pubsub-v1-1.8.2.gem) = e776498f59bcbeeac6b9b00538e08863b27fa48e42d37f527f51563dc159fa7b +SIZE (rubygem/google-cloud-pubsub-v1-1.8.2.gem) = 95232 diff --git a/net/rubygem-google-cloud-spanner-admin-database-v1/Makefile b/net/rubygem-google-cloud-spanner-admin-database-v1/Makefile index 068d22ece36a..4675ab7dc4be 100644 --- a/net/rubygem-google-cloud-spanner-admin-database-v1/Makefile +++ b/net/rubygem-google-cloud-spanner-admin-database-v1/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-spanner-admin-database-v1 -PORTVERSION= 1.6.0 +PORTVERSION= 1.6.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-spanner-admin-database-v1/distinfo b/net/rubygem-google-cloud-spanner-admin-database-v1/distinfo index 58cd34662d72..68e14b8e3081 100644 --- a/net/rubygem-google-cloud-spanner-admin-database-v1/distinfo +++ b/net/rubygem-google-cloud-spanner-admin-database-v1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1739930308 -SHA256 (rubygem/google-cloud-spanner-admin-database-v1-1.6.0.gem) = 08d57b51b208f48fc3af50b0298d58711f5cc0c82fabe61773e9348e0c96dbc3 -SIZE (rubygem/google-cloud-spanner-admin-database-v1-1.6.0.gem) = 115712 +TIMESTAMP = 1747547502 +SHA256 (rubygem/google-cloud-spanner-admin-database-v1-1.6.1.gem) = 6b8758e4def80d69e9ee64a42078d3a59ab028a638f7a849abd8130cf85add9b +SIZE (rubygem/google-cloud-spanner-admin-database-v1-1.6.1.gem) = 115712 diff --git a/net/rubygem-google-cloud-spanner-v1/Makefile b/net/rubygem-google-cloud-spanner-v1/Makefile index 922d6ad4faaf..14184f410f34 100644 --- a/net/rubygem-google-cloud-spanner-v1/Makefile +++ b/net/rubygem-google-cloud-spanner-v1/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-spanner-v1 -PORTVERSION= 1.7.0 +PORTVERSION= 1.7.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-spanner-v1/distinfo b/net/rubygem-google-cloud-spanner-v1/distinfo index 8bc51d806c7b..8d824e162ec4 100644 --- a/net/rubygem-google-cloud-spanner-v1/distinfo +++ b/net/rubygem-google-cloud-spanner-v1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740836336 -SHA256 (rubygem/google-cloud-spanner-v1-1.7.0.gem) = 9e2b7f34a016db5d73e51d067dc1fba7463f6658c24c4e742a29545526a4bf72 -SIZE (rubygem/google-cloud-spanner-v1-1.7.0.gem) = 83968 +TIMESTAMP = 1747547504 +SHA256 (rubygem/google-cloud-spanner-v1-1.7.1.gem) = ab0a1256aaab8e7f18a13205a99a389e196d259df2675a4cbddb4db937dc97be +SIZE (rubygem/google-cloud-spanner-v1-1.7.1.gem) = 83968 diff --git a/net/rubygem-google-cloud-storage/Makefile b/net/rubygem-google-cloud-storage/Makefile index 37e4d564e7c9..82200736b311 100644 --- a/net/rubygem-google-cloud-storage/Makefile +++ b/net/rubygem-google-cloud-storage/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-storage -PORTVERSION= 1.55.0 +PORTVERSION= 1.56.0 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-storage/distinfo b/net/rubygem-google-cloud-storage/distinfo index 56af9e0cdfb5..7e6b41ee825f 100644 --- a/net/rubygem-google-cloud-storage/distinfo +++ b/net/rubygem-google-cloud-storage/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1739930310 -SHA256 (rubygem/google-cloud-storage-1.55.0.gem) = 006b111a50ad4f81eb06ac1abf1b9f0e3405ca2fbae555c014343fb4f2f8ae2b -SIZE (rubygem/google-cloud-storage-1.55.0.gem) = 107520 +TIMESTAMP = 1745936406 +SHA256 (rubygem/google-cloud-storage-1.56.0.gem) = 9db05d2244c9750955b8a49a618431ae0935b6841fa18ba9638d659446b9694b +SIZE (rubygem/google-cloud-storage-1.56.0.gem) = 108032 diff --git a/net/rubygem-google-cloud-storage_transfer-v1/Makefile b/net/rubygem-google-cloud-storage_transfer-v1/Makefile index f7bf96b4c48d..a68aec330c7f 100644 --- a/net/rubygem-google-cloud-storage_transfer-v1/Makefile +++ b/net/rubygem-google-cloud-storage_transfer-v1/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-storage_transfer-v1 -PORTVERSION= 1.4.0 +PORTVERSION= 1.4.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-storage_transfer-v1/distinfo b/net/rubygem-google-cloud-storage_transfer-v1/distinfo index 678d3925fc05..eed66243898d 100644 --- a/net/rubygem-google-cloud-storage_transfer-v1/distinfo +++ b/net/rubygem-google-cloud-storage_transfer-v1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738606701 -SHA256 (rubygem/google-cloud-storage_transfer-v1-1.4.0.gem) = 1720a21d46de05876507f06d5615ae2360ea7cd3a27148d70cc0a437926574ab -SIZE (rubygem/google-cloud-storage_transfer-v1-1.4.0.gem) = 88064 +TIMESTAMP = 1747547556 +SHA256 (rubygem/google-cloud-storage_transfer-v1-1.4.1.gem) = 69d97f7f1839008cbe4f38db19e0284c6ca3ae1636200c1f7cbe03ef63f61721 +SIZE (rubygem/google-cloud-storage_transfer-v1-1.4.1.gem) = 88576 diff --git a/net/rubygem-google-cloud-storage_transfer/Makefile b/net/rubygem-google-cloud-storage_transfer/Makefile index 0dd25750df63..4675b58d309c 100644 --- a/net/rubygem-google-cloud-storage_transfer/Makefile +++ b/net/rubygem-google-cloud-storage_transfer/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-storage_transfer -PORTVERSION= 1.5.0 +PORTVERSION= 1.5.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-storage_transfer/distinfo b/net/rubygem-google-cloud-storage_transfer/distinfo index 8e444e59338d..61a18746086f 100644 --- a/net/rubygem-google-cloud-storage_transfer/distinfo +++ b/net/rubygem-google-cloud-storage_transfer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738606699 -SHA256 (rubygem/google-cloud-storage_transfer-1.5.0.gem) = 2e3284917260b414f5cbcfdbb77bdab3facae3b78181440e8df212a65169903a -SIZE (rubygem/google-cloud-storage_transfer-1.5.0.gem) = 14336 +TIMESTAMP = 1747547554 +SHA256 (rubygem/google-cloud-storage_transfer-1.5.1.gem) = 1a9d31c552795a9668c03c776d7d36a81db43d62adbb675fb57cc71eb30678a0 +SIZE (rubygem/google-cloud-storage_transfer-1.5.1.gem) = 14336 diff --git a/net/rubygem-google-cloud-trace-v1/Makefile b/net/rubygem-google-cloud-trace-v1/Makefile index 8eb5aa6bb8db..4fa79f095cd3 100644 --- a/net/rubygem-google-cloud-trace-v1/Makefile +++ b/net/rubygem-google-cloud-trace-v1/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-trace-v1 -PORTVERSION= 1.3.0 +PORTVERSION= 1.3.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-trace-v1/distinfo b/net/rubygem-google-cloud-trace-v1/distinfo index 0010950839bd..73c5b4ffed8d 100644 --- a/net/rubygem-google-cloud-trace-v1/distinfo +++ b/net/rubygem-google-cloud-trace-v1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738606615 -SHA256 (rubygem/google-cloud-trace-v1-1.3.0.gem) = 2d49dd0093ce937fb524f74c262a769b18f9efb33f2fba0f55214447827a5727 -SIZE (rubygem/google-cloud-trace-v1-1.3.0.gem) = 44544 +TIMESTAMP = 1747547506 +SHA256 (rubygem/google-cloud-trace-v1-1.3.1.gem) = 22b18fa936fb955058ed8de53dc0a1f86ba3be36994db0da2366c3c90c126133 +SIZE (rubygem/google-cloud-trace-v1-1.3.1.gem) = 44544 diff --git a/net/rubygem-google-cloud-trace-v2/Makefile b/net/rubygem-google-cloud-trace-v2/Makefile index 14a1d98bdf2b..ab7432155489 100644 --- a/net/rubygem-google-cloud-trace-v2/Makefile +++ b/net/rubygem-google-cloud-trace-v2/Makefile @@ -1,5 +1,5 @@ PORTNAME= google-cloud-trace-v2 -PORTVERSION= 1.2.0 +PORTVERSION= 1.2.1 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-google-cloud-trace-v2/distinfo b/net/rubygem-google-cloud-trace-v2/distinfo index 42ee61a25460..4a64a674acad 100644 --- a/net/rubygem-google-cloud-trace-v2/distinfo +++ b/net/rubygem-google-cloud-trace-v2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738606617 -SHA256 (rubygem/google-cloud-trace-v2-1.2.0.gem) = be41ba8d0e4e0a7952f355ab1f980fa5128651596b645c8e291e794a7a8ebc56 -SIZE (rubygem/google-cloud-trace-v2-1.2.0.gem) = 47104 +TIMESTAMP = 1747547508 +SHA256 (rubygem/google-cloud-trace-v2-1.2.1.gem) = 22910f423a35a0fc5667397f39c7d50d60ca1809f1cd5e1b56c28e4fd15cae5e +SIZE (rubygem/google-cloud-trace-v2-1.2.1.gem) = 47616 diff --git a/net/rubygem-grpc/Makefile b/net/rubygem-grpc/Makefile index e3ccc16084ee..9a8f6886a286 100644 --- a/net/rubygem-grpc/Makefile +++ b/net/rubygem-grpc/Makefile @@ -1,6 +1,6 @@ PORTNAME= grpc PORTVERSION= 1.67.0 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-oauth2-gitlab/Makefile b/net/rubygem-oauth2-gitlab/Makefile index 5be782149caa..4e554369a79f 100644 --- a/net/rubygem-oauth2-gitlab/Makefile +++ b/net/rubygem-oauth2-gitlab/Makefile @@ -1,5 +1,5 @@ PORTNAME= oauth2 -PORTVERSION= 2.0.9 +PORTVERSION= 2.0.10 CATEGORIES= net rubygems MASTER_SITES= RG PKGNAMESUFFIX= -gitlab @@ -9,14 +9,15 @@ COMMENT= Ruby wrapper for the OAuth 2.0 protocol WWW= https://github.com/oauth-xx/oauth2 LICENSE= MIT -LICENSE_FILE= ${WRKSRC}/LICENSE +LICENSE_FILE= ${WRKSRC}/LICENSE.txt -RUN_DEPENDS= rubygem-faraday-gitlab>=0.17.3<3.0:www/rubygem-faraday-gitlab \ - rubygem-jwt>=1.0<3.0:www/rubygem-jwt \ +RUN_DEPENDS= rubygem-faraday-gitlab>=0.17.3<4:www/rubygem-faraday-gitlab \ + rubygem-jwt>=1.0<4:www/rubygem-jwt \ + rubygem-logger>=1.2<2:devel/rubygem-logger \ rubygem-multi_xml>=0.5<1:textproc/rubygem-multi_xml \ rubygem-rack>=1.2,3<4,3:www/rubygem-rack \ rubygem-snaky_hash>=2.0<3:devel/rubygem-snaky_hash \ - rubygem-version_gem>=1.1<2:devel/rubygem-version_gem + rubygem-version_gem>=1.1.8<3:devel/rubygem-version_gem USES= gem diff --git a/net/rubygem-oauth2-gitlab/distinfo b/net/rubygem-oauth2-gitlab/distinfo index aec0acc8be92..b4207eaf9071 100644 --- a/net/rubygem-oauth2-gitlab/distinfo +++ b/net/rubygem-oauth2-gitlab/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1663672998 -SHA256 (rubygem/oauth2-2.0.9.gem) = b21f9defcf52dc1610e0dfab4c868342173dcd707fd15c777d9f4f04e153f7fb -SIZE (rubygem/oauth2-2.0.9.gem) = 34816 +TIMESTAMP = 1747481298 +SHA256 (rubygem/oauth2-2.0.10.gem) = 8f132679598d21885d4bcc68d7e7e6ef0a29f9a782abca00d67d884280dc3a42 +SIZE (rubygem/oauth2-2.0.10.gem) = 54272 diff --git a/net/rubygem-t/Makefile b/net/rubygem-t/Makefile index 324313ee3c27..2b61d07cb7ac 100644 --- a/net/rubygem-t/Makefile +++ b/net/rubygem-t/Makefile @@ -1,5 +1,5 @@ PORTNAME= t -PORTVERSION= 4.1.1 +PORTVERSION= 4.2.0 CATEGORIES= net rubygems MASTER_SITES= RG @@ -17,7 +17,7 @@ RUN_DEPENDS= rubygem-geokit>=1.14<2:graphics/rubygem-geokit \ rubygem-oauth>=1.1<2:net/rubygem-oauth \ rubygem-retryable>=3.0<4:devel/rubygem-retryable \ rubygem-thor>=1.3<2:devel/rubygem-thor \ - rubygem-twitter>=8.1<9:net/rubygem-twitter + rubygem-twitter>=8.2<9:net/rubygem-twitter USES= gem diff --git a/net/rubygem-t/distinfo b/net/rubygem-t/distinfo index 0865bc6a24fc..7155dfd69daa 100644 --- a/net/rubygem-t/distinfo +++ b/net/rubygem-t/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1715843768 -SHA256 (rubygem/t-4.1.1.gem) = 3017a1eddab05d487fbeffd77fc89d749089170efde00006e62ae400aab9d50e -SIZE (rubygem/t-4.1.1.gem) = 30208 +TIMESTAMP = 1747547510 +SHA256 (rubygem/t-4.2.0.gem) = cb41e05aebdd8fc5f8391353a3d1220c330372ff2707ea8d73e8db656d609ba2 +SIZE (rubygem/t-4.2.0.gem) = 30208 diff --git a/net/rubygem-twitter/Makefile b/net/rubygem-twitter/Makefile index f257dfd46199..1bca4c7a5aa3 100644 --- a/net/rubygem-twitter/Makefile +++ b/net/rubygem-twitter/Makefile @@ -1,5 +1,5 @@ PORTNAME= twitter -PORTVERSION= 8.1.0 +PORTVERSION= 8.2.0 CATEGORIES= net rubygems MASTER_SITES= RG diff --git a/net/rubygem-twitter/distinfo b/net/rubygem-twitter/distinfo index 08c23c1de92b..e121f623df52 100644 --- a/net/rubygem-twitter/distinfo +++ b/net/rubygem-twitter/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1715843770 -SHA256 (rubygem/twitter-8.1.0.gem) = 674bd09af38a6250cfa15067217f95ba67f35d128db809031f97da9f95ff87d6 -SIZE (rubygem/twitter-8.1.0.gem) = 77824 +TIMESTAMP = 1747547512 +SHA256 (rubygem/twitter-8.2.0.gem) = e6cc09c3a1308c403f8952835158354e4bf05b208991a8043c1d3e900fb241b0 +SIZE (rubygem/twitter-8.2.0.gem) = 76800 diff --git a/net/rubygem-x/Makefile b/net/rubygem-x/Makefile index f0722e69fe67..24037713b011 100644 --- a/net/rubygem-x/Makefile +++ b/net/rubygem-x/Makefile @@ -1,5 +1,5 @@ PORTNAME= x -PORTVERSION= 0.15.2 +PORTVERSION= 0.15.4 CATEGORIES= net rubygems MASTER_SITES= RG @@ -11,6 +11,8 @@ WWW= https://sferik.github.io/x-ruby/ \ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.txt +RUN_DEPENDS= rubygem-base64>=0.2:converters/rubygem-base64 + USES= gem NO_ARCH= yes diff --git a/net/rubygem-x/distinfo b/net/rubygem-x/distinfo index e343d9761ca6..73996acee2f7 100644 --- a/net/rubygem-x/distinfo +++ b/net/rubygem-x/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744289332 -SHA256 (rubygem/x-0.15.2.gem) = 6abbfd7d58a8b732d45bed85035dac006649cd3379819d295349aa333ba9f8a7 -SIZE (rubygem/x-0.15.2.gem) = 18944 +TIMESTAMP = 1747547514 +SHA256 (rubygem/x-0.15.4.gem) = afc049905edebfb686186e550659923f46b0171010c0d02020efcdcd6204f9d9 +SIZE (rubygem/x-0.15.4.gem) = 18944 diff --git a/net/syncthing/Makefile b/net/syncthing/Makefile index e4c4df0aa0ec..25cdfe2c307a 100644 --- a/net/syncthing/Makefile +++ b/net/syncthing/Makefile @@ -19,22 +19,23 @@ USE_RC_SUBR= syncthing syncthing-discosrv syncthing-relaysrv \ BINS= syncthing stdiscosrv strelaysrv strelaypoolsrv -.for x in ${BINS} -PLIST_FILES+= bin/${x} -.endfor +# Anonymize +MAKE_ENV+= BUILD_HOST=freebsd \ + BUILD_USER=ports -PORTDOCS= * +NO_CCACHE= yes +NO_WRKSUBDIR= yes USERS= syncthing GROUPS= syncthing -# Anonymize -MAKE_ENV+= BUILD_HOST=freebsd \ - BUILD_USER=ports +.for x in ${BINS} +PLIST_FILES+= bin/${x} +.endfor -OPTIONS_DEFINE= DOCS +PORTDOCS= * -NO_WRKSUBDIR= yes +OPTIONS_DEFINE= DOCS do-build: @( cd ${WRKSRC}/${PORTNAME} ; \ @@ -44,11 +45,6 @@ do-build: ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} run build.go -version v${DISTVERSION} -no-upgrade build strelaypoolsrv; \ ) -do-test: - @( cd ${WRKSRC}/${PORTNAME} ; \ - ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} run build.go -version v${DISTVERSION} -no-upgrade test ; \ - ) - do-install: .for x in ${BINS} ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}/${x} \ @@ -60,4 +56,8 @@ do-install: ${STAGEDIR}${DOCSDIR} .endfor +do-test: + @( cd ${WRKSRC}/${PORTNAME} ; \ + ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} run build.go -version v${DISTVERSION} -no-upgrade test ; \ + ) .include <bsd.port.mk> diff --git a/net/zmap/Makefile b/net/zmap/Makefile index d829817f1b74..d0e67aa7346a 100644 --- a/net/zmap/Makefile +++ b/net/zmap/Makefile @@ -11,23 +11,19 @@ WWW= https://zmap.io/ \ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= gengetopt>0:devel/gengetopt \ - gmake:devel/gmake -LIB_DEPENDS= libjson-c.so:devel/json-c \ +BUILD_DEPENDS= gengetopt>0:devel/gengetopt +LIB_DEPENDS= libgmp.so:math/gmp \ + libjson-c.so:devel/json-c \ libJudy.so:devel/judy \ - libgmp.so:math/gmp \ libpcap.so:net/libpcap \ libunistring.so:devel/libunistring -USES= cmake:insource pkgconfig -USE_GITHUB= yes +USES= cmake pkgconfig -CFLAGS+= -D_SYSTYPE_BSD +USE_GITHUB= yes CMAKE_ON= FORCE_CONF_INSTALL -MANPAGE= zblacklist.1 zmap.1 ztee.1 - post-patch: @${REINPLACE_CMD} -i '' -e 's|/etc/zmap|${LOCALBASE}/etc/zmap|g' -e 's|/usr/local|${LOCALBASE}|g' \ ${WRKSRC}/CMakeLists.txt @@ -39,8 +35,7 @@ post-patch: ${WRKSRC}/src/zmap.c post-install: -.for cnf in blocklist.conf zmap.conf - @${MV} ${STAGEDIR}${ETCDIR}/${cnf} ${STAGEDIR}${ETCDIR}/${cnf}.sample -.endfor + @${MV} ${STAGEDIR}${ETCDIR}/blocklist.conf ${STAGEDIR}${ETCDIR}/blocklist.conf.sample + @${MV} ${STAGEDIR}${ETCDIR}/zmap.conf ${STAGEDIR}${ETCDIR}/zmap.conf.sample .include <bsd.port.mk> |