* [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1
@ 2025-08-06 13:21 Maxime Leroy
2025-08-09 15:59 ` Julien Olivain via buildroot
2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy
0 siblings, 2 replies; 9+ messages in thread
From: Maxime Leroy @ 2025-08-06 13:21 UTC (permalink / raw)
To: buildroot; +Cc: Vadim Kochan, Maxime Leroy
Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see [2]).
As protobuf-c is no longer mandatory (see [3]), a new option
BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it.
[1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c
[2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0
[3] https://github.com/FRRouting/frr/commit/e51c16a4ca92
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
---
package/frr/Config.in | 27 ++++++++++++++++++---------
package/frr/frr.hash | 2 +-
package/frr/frr.mk | 11 +++++++++--
3 files changed, 28 insertions(+), 12 deletions(-)
diff --git a/package/frr/Config.in b/package/frr/Config.in
index 211eb83419..feb1aef05a 100644
--- a/package/frr/Config.in
+++ b/package/frr/Config.in
@@ -1,19 +1,15 @@
config BR2_PACKAGE_FRR
bool "frr"
- depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf-c
+ depends on BR2_TOOLCHAIN_HAS_THREADS # pthread
depends on !BR2_STATIC_LIBS # libyang
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c, libyang
- depends on BR2_INSTALL_LIBSTDCPP # protobuf-c
- depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c
- depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c
select BR2_PACKAGE_BASH
select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash
select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_LIBYANG
select BR2_PACKAGE_READLINE
select BR2_PACKAGE_JSON_C
- select BR2_PACKAGE_PROTOBUF_C
help
The FRRouting Protocol Suite.
@@ -43,11 +39,24 @@ config BR2_PACKAGE_FRR_NHRPD
help
Build Next Hop Routing Protocol daemon.
+config BR2_PACKAGE_FRR_PROTOBUF
+ bool "Protobuf support (Binary-FPM and MLAG)"
+ default y
+ depends on BR2_INSTALL_LIBSTDCPP # protobuf-c
+ depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c
+ depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c
+ select BR2_PACKAGE_PROTOBUF_C
+ help
+ Build FRR with protobuf-based Binary-FPM export and MLAG
+ peer synchronization.
+
endif
-comment "frr needs a toolchain w/ threads, dynamic library, C++, host gcc >= 7"
- depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
+comment "frr needs a toolchain w/ threads, dynamic library"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_MMU
- depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
- !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7
+ depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+
+comment "protobuf support for frr needs a toolchain w/ protobuf, C++, host gcc >= 7"
+ depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7
diff --git a/package/frr/frr.hash b/package/frr/frr.hash
index 414aaec7dd..12030a0df8 100644
--- a/package/frr/frr.hash
+++ b/package/frr/frr.hash
@@ -1,5 +1,5 @@
# Locally calculated
-sha256 df4bc4f644f93be09f75c0e0e325b2f6a3ee6d1c6db429b6f36874e88a66ee33 frr-10.3.1.tar.gz
+sha256 8e4003eaba168626c5ea7a6735f2c85c87b04214e6f8c8f2715b21f8ae40970b frr-10.4.1.tar.gz
sha256 7bf053957d6c38e39a06a112c60ff35b228d3bd03edbe8c9a03508b051128d16 COPYING
sha256 f9e0c21faf738da586281c0beaad3cd56204c19085a10fe05e4d3d7f8b5863d2 doc/licenses/BSD-2-Clause
sha256 aca297b8fd3a43e3bb200f1e2e043c0db6c897325f5ff7f23f7530302a6bf713 doc/licenses/BSD-3-Clause
diff --git a/package/frr/frr.mk b/package/frr/frr.mk
index 23a2ca6037..fb7477a211 100644
--- a/package/frr/frr.mk
+++ b/package/frr/frr.mk
@@ -4,7 +4,7 @@
#
################################################################################
-FRR_VERSION = 10.3.1
+FRR_VERSION = 10.4.1
FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION))
FRR_LICENSE = GPL-2.0+
FRR_LICENSE_FILES = \
@@ -25,7 +25,6 @@ FRR_CPE_ID_PRODUCT = free_range_routing
FRR_AUTORECONF = YES
FRR_DEPENDENCIES = host-frr readline json-c libyang \
- protobuf-c \
$(if $(BR2_PACKAGE_C_ARES),c-ares) \
$(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt)
@@ -89,6 +88,14 @@ else
FRR_CONF_OPTS += --disable-bfdd
endif
+# Optional protobuf support
+ifeq ($(BR2_PACKAGE_FRR_PROTOBUF),y)
+FRR_DEPENDENCIES += protobuf-c
+FRR_CONF_OPTS += --enable-protobuf
+else
+FRR_CONF_OPTS += --disable-protobuf
+endif
+
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
FRR_CONF_ENV += LIBS=-latomic
endif
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1
2025-08-06 13:21 [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 Maxime Leroy
@ 2025-08-09 15:59 ` Julien Olivain via buildroot
2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy
1 sibling, 0 replies; 9+ messages in thread
From: Julien Olivain via buildroot @ 2025-08-09 15:59 UTC (permalink / raw)
To: Maxime Leroy; +Cc: buildroot, Vadim Kochan
Hi Maxime,
Thanks for the patch.
On 06/08/2025 15:21, Maxime Leroy wrote:
> Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see
> [2]).
This bump seems to introduce few build failures. See:
https://gitlab.com/jolivain/buildroot/-/pipelines/1975753351
Most failures seems to be introduced by upstream commit:
https://github.com/FRRouting/frr/commit/ff76fb21d7b3bdf66b1710dc9ffb7bb46f376828
which is adding a use of the "getloadavg()" which is not supported in
all libc version.
>
> As protobuf-c is no longer mandatory (see [3]), a new option
> BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it.
>
> [1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c
> [2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0
> [3] https://github.com/FRRouting/frr/commit/e51c16a4ca92
> Signed-off-by: Maxime Leroy <maxime@leroys.fr>
Could you have a look please?
Best regards,
Julien.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 0/2] update FRR to version 10.4.1
2025-08-06 13:21 [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 Maxime Leroy
2025-08-09 15:59 ` Julien Olivain via buildroot
@ 2025-08-11 14:00 ` Maxime Leroy
2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy
` (2 more replies)
1 sibling, 3 replies; 9+ messages in thread
From: Maxime Leroy @ 2025-08-11 14:00 UTC (permalink / raw)
To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy
Changes v1 -> v2:
- Fix compilation with uClibc
- Add new option to configure enable-multipath
Maxime Leroy (2):
package/frr: bump to version 10.4.1
package/frr: make ECMP max configurable
...davg-optional-in-late-timer-warnings.patch | 48 +++++++++++++++++++
package/frr/Config.in | 33 +++++++++----
package/frr/frr.hash | 2 +-
package/frr/frr.mk | 13 +++--
4 files changed, 83 insertions(+), 13 deletions(-)
create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/frr: bump to version 10.4.1
2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy
@ 2025-08-11 14:00 ` Maxime Leroy
2025-08-11 14:00 ` [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable Maxime Leroy
2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy
2 siblings, 0 replies; 9+ messages in thread
From: Maxime Leroy @ 2025-08-11 14:00 UTC (permalink / raw)
To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy
Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see [2]).
As protobuf-c is no longer mandatory (see [3]), a new option
BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it.
getloadavg function [4] is now used by FRR but older libcs (e.g. uClibc,
dietlibc) lack this function, to fix the compilation, a patch must be
applied on FRR.
[1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c
[2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0
[3] https://github.com/FRRouting/frr/commit/e51c16a4ca92
[4] https://github.com/FRRouting/frr/commit/ff76fb21d7b3
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
---
...davg-optional-in-late-timer-warnings.patch | 48 +++++++++++++++++++
package/frr/Config.in | 26 ++++++----
package/frr/frr.hash | 2 +-
package/frr/frr.mk | 11 ++++-
4 files changed, 75 insertions(+), 12 deletions(-)
create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
diff --git a/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
new file mode 100644
index 0000000000..9f23dbab7c
--- /dev/null
+++ b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
@@ -0,0 +1,48 @@
+From 037ae16694805c25c501fe8bb3890dad9b43bf34 Mon Sep 17 00:00:00 2001
+From: Maxime Leroy <maxime@leroys.fr>
+Date: Mon, 11 Aug 2025 13:44:02 +0200
+Subject: [PATCH] lib: make getloadavg() optional in late timer warnings
+
+Commit ff76fb21d7b3 ("lib: improve late timer warnings") added an
+unconditional getloadavg() call. Older libcs (e.g. uClibc, dietlibc)
+lack this function, breaking the build. Before, no system load was
+shown, so skipping it restores prior behavior.
+
+Fixes: ff76fb21d7b3 ("lib: improve late timer warnings")
+Signed-off-by: Maxime Leroy <maxime@leroys.fr>
+---
+ configure.ac | 1 +
+ lib/event.c | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 87eba6784a..b8ef7bb777 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1369,6 +1369,7 @@ dnl ---------------
+ AC_CHECK_FUNCS([ \
+ strlcat strlcpy \
+ getgrouplist \
++ getloadavg \
+ openat \
+ unlinkat \
+ posix_fallocate \
+diff --git a/lib/event.c b/lib/event.c
+index 1eb41d07ce..22876574fb 100644
+--- a/lib/event.c
++++ b/lib/event.c
+@@ -1924,7 +1924,11 @@ static void event_tardy_warn(struct event *thread, unsigned long since_us)
+ double loadavg[3];
+ int rv;
+
++#ifdef HAVE_GETLOADAVG
+ rv = getloadavg(loadavg, array_size(loadavg));
++#else
++ rv = -1;
++#endif
+ if (rv < 0)
+ bprintfrr(&fb, "not available");
+ else {
+--
+2.43.0
+
diff --git a/package/frr/Config.in b/package/frr/Config.in
index 211eb83419..366e0fca82 100644
--- a/package/frr/Config.in
+++ b/package/frr/Config.in
@@ -1,19 +1,15 @@
config BR2_PACKAGE_FRR
bool "frr"
- depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf-c
+ depends on BR2_TOOLCHAIN_HAS_THREADS # FRR uses pthreads
depends on !BR2_STATIC_LIBS # libyang
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c, libyang
- depends on BR2_INSTALL_LIBSTDCPP # protobuf-c
- depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c
- depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c
select BR2_PACKAGE_BASH
select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash
select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_LIBYANG
select BR2_PACKAGE_READLINE
select BR2_PACKAGE_JSON_C
- select BR2_PACKAGE_PROTOBUF_C
help
The FRRouting Protocol Suite.
@@ -43,11 +39,23 @@ config BR2_PACKAGE_FRR_NHRPD
help
Build Next Hop Routing Protocol daemon.
+config BR2_PACKAGE_FRR_PROTOBUF
+ bool "Protobuf support (Binary-FPM and MLAG)"
+ default y
+ depends on BR2_HOST_GCC_AT_LEAST_7
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
+ select BR2_PACKAGE_PROTOBUF_C
+ help
+ Build FRR with protobuf-based Binary-FPM export and MLAG peer sync.
+
endif
-comment "frr needs a toolchain w/ threads, dynamic library, C++, host gcc >= 7"
- depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
+comment "frr needs a toolchain w/ threads, dynamic library"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_MMU
- depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
- !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7
+ depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+
+comment "protobuf support for frr needs a toolchain w/ protobuf, C++, host gcc >= 7"
+ depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7
diff --git a/package/frr/frr.hash b/package/frr/frr.hash
index 414aaec7dd..12030a0df8 100644
--- a/package/frr/frr.hash
+++ b/package/frr/frr.hash
@@ -1,5 +1,5 @@
# Locally calculated
-sha256 df4bc4f644f93be09f75c0e0e325b2f6a3ee6d1c6db429b6f36874e88a66ee33 frr-10.3.1.tar.gz
+sha256 8e4003eaba168626c5ea7a6735f2c85c87b04214e6f8c8f2715b21f8ae40970b frr-10.4.1.tar.gz
sha256 7bf053957d6c38e39a06a112c60ff35b228d3bd03edbe8c9a03508b051128d16 COPYING
sha256 f9e0c21faf738da586281c0beaad3cd56204c19085a10fe05e4d3d7f8b5863d2 doc/licenses/BSD-2-Clause
sha256 aca297b8fd3a43e3bb200f1e2e043c0db6c897325f5ff7f23f7530302a6bf713 doc/licenses/BSD-3-Clause
diff --git a/package/frr/frr.mk b/package/frr/frr.mk
index 23a2ca6037..fb7477a211 100644
--- a/package/frr/frr.mk
+++ b/package/frr/frr.mk
@@ -4,7 +4,7 @@
#
################################################################################
-FRR_VERSION = 10.3.1
+FRR_VERSION = 10.4.1
FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION))
FRR_LICENSE = GPL-2.0+
FRR_LICENSE_FILES = \
@@ -25,7 +25,6 @@ FRR_CPE_ID_PRODUCT = free_range_routing
FRR_AUTORECONF = YES
FRR_DEPENDENCIES = host-frr readline json-c libyang \
- protobuf-c \
$(if $(BR2_PACKAGE_C_ARES),c-ares) \
$(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt)
@@ -89,6 +88,14 @@ else
FRR_CONF_OPTS += --disable-bfdd
endif
+# Optional protobuf support
+ifeq ($(BR2_PACKAGE_FRR_PROTOBUF),y)
+FRR_DEPENDENCIES += protobuf-c
+FRR_CONF_OPTS += --enable-protobuf
+else
+FRR_CONF_OPTS += --disable-protobuf
+endif
+
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
FRR_CONF_ENV += LIBS=-latomic
endif
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable
2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy
2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy
@ 2025-08-11 14:00 ` Maxime Leroy
2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy
2 siblings, 0 replies; 9+ messages in thread
From: Maxime Leroy @ 2025-08-11 14:00 UTC (permalink / raw)
To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy
Upstream FRR accepts --enable-multipath=N in the range 1–999. Buildroot
previously hardcoded 256.
Add a config integer to set the maximum ECMP paths at build time, keeping
256 as the default. Lower values help match hardware limits or reduce
memory; higher values are useful for software routing or lab testing.
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
---
package/frr/Config.in | 7 +++++++
package/frr/frr.mk | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/package/frr/Config.in b/package/frr/Config.in
index 366e0fca82..4dcc08355d 100644
--- a/package/frr/Config.in
+++ b/package/frr/Config.in
@@ -33,6 +33,13 @@ config BR2_PACKAGE_FRR_BMP
help
Build BGP Monitoring Protocol daemon.
+config BR2_PACKAGE_FRR_MULTIPATH_MAX
+ int "maximum ECMP paths"
+ default 256
+ range 1 999
+ help
+ Compile FRR with support for up to this many equal-cost next-hops (ECMP).
+
config BR2_PACKAGE_FRR_NHRPD
bool "NHRPD protocol"
select BR2_PACKAGE_C_ARES
diff --git a/package/frr/frr.mk b/package/frr/frr.mk
index fb7477a211..e41ee33caa 100644
--- a/package/frr/frr.mk
+++ b/package/frr/frr.mk
@@ -40,7 +40,7 @@ FRR_CONF_OPTS = --with-clippy=$(HOST_DIR)/bin/clippy \
--with-moduledir=/usr/lib/frr/modules \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
- --enable-multipath=256 \
+ --enable-multipath=$(BR2_PACKAGE_FRR_MULTIPATH_MAX) \
--disable-ospfclient \
--enable-user=frr \
--enable-group=frr \
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1
2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy
2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy
2025-08-11 14:00 ` [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable Maxime Leroy
@ 2025-08-11 16:11 ` Maxime Leroy
2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy
2025-08-11 16:11 ` [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable Maxime Leroy
2 siblings, 2 replies; 9+ messages in thread
From: Maxime Leroy @ 2025-08-11 16:11 UTC (permalink / raw)
To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy
Changes v2 -> v3:
- Add 'Upstream: ' to FRR patch
- fix help text format for multipath-max option
Changes v1 -> v2:
- Fix compilation with uClibc
- Add new option to configure enable-multipath
Maxime Leroy (2):
package/frr: bump to version 10.4.1
package/frr: make ECMP max configurable
...davg-optional-in-late-timer-warnings.patch | 49 +++++++++++++++++++
package/frr/Config.in | 35 +++++++++----
package/frr/frr.hash | 2 +-
package/frr/frr.mk | 13 +++--
4 files changed, 86 insertions(+), 13 deletions(-)
create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 1/2] package/frr: bump to version 10.4.1
2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy
@ 2025-08-11 16:11 ` Maxime Leroy
2025-08-13 16:21 ` Julien Olivain via buildroot
2025-08-11 16:11 ` [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable Maxime Leroy
1 sibling, 1 reply; 9+ messages in thread
From: Maxime Leroy @ 2025-08-11 16:11 UTC (permalink / raw)
To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy
Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see [2]).
As protobuf-c is no longer mandatory (see [3]), a new option
BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it.
getloadavg function [4] is now used by FRR but older libcs (e.g. uClibc,
dietlibc) lack this function, to fix the compilation, a patch must be
applied on FRR.
[1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c
[2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0
[3] https://github.com/FRRouting/frr/commit/e51c16a4ca92
[4] https://github.com/FRRouting/frr/commit/ff76fb21d7b3
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
---
...davg-optional-in-late-timer-warnings.patch | 49 +++++++++++++++++++
package/frr/Config.in | 27 ++++++----
package/frr/frr.hash | 2 +-
package/frr/frr.mk | 11 ++++-
4 files changed, 77 insertions(+), 12 deletions(-)
create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
diff --git a/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
new file mode 100644
index 0000000000..d03f64882e
--- /dev/null
+++ b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch
@@ -0,0 +1,49 @@
+From d76100a2b9a2ec814ad0a1fb844a395a6dc2f6bd Mon Sep 17 00:00:00 2001
+From: Maxime Leroy <maxime@leroys.fr>
+Date: Mon, 11 Aug 2025 13:44:02 +0200
+Subject: [PATCH] lib: make getloadavg() optional in late timer warnings
+
+Commit ff76fb21d7b3 ("lib: improve late timer warnings") added an
+unconditional getloadavg() call. Older libcs (e.g. uClibc, dietlibc)
+lack this function, breaking the build. Before, no system load was
+shown, so skipping it restores prior behavior.
+
+Fixes: ff76fb21d7b3 ("lib: improve late timer warnings")
+Signed-off-by: Maxime Leroy <maxime@leroys.fr>
+Upstream: https://github.com/FRRouting/frr/pull/19366
+---
+ configure.ac | 1 +
+ lib/event.c | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 87eba6784a..b8ef7bb777 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1369,6 +1369,7 @@ dnl ---------------
+ AC_CHECK_FUNCS([ \
+ strlcat strlcpy \
+ getgrouplist \
++ getloadavg \
+ openat \
+ unlinkat \
+ posix_fallocate \
+diff --git a/lib/event.c b/lib/event.c
+index 1eb41d07ce..22876574fb 100644
+--- a/lib/event.c
++++ b/lib/event.c
+@@ -1924,7 +1924,11 @@ static void event_tardy_warn(struct event *thread, unsigned long since_us)
+ double loadavg[3];
+ int rv;
+
++#ifdef HAVE_GETLOADAVG
+ rv = getloadavg(loadavg, array_size(loadavg));
++#else
++ rv = -1;
++#endif
+ if (rv < 0)
+ bprintfrr(&fb, "not available");
+ else {
+--
+2.43.0
+
diff --git a/package/frr/Config.in b/package/frr/Config.in
index 211eb83419..feb1aef05a 100644
--- a/package/frr/Config.in
+++ b/package/frr/Config.in
@@ -1,19 +1,15 @@
config BR2_PACKAGE_FRR
bool "frr"
- depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf-c
+ depends on BR2_TOOLCHAIN_HAS_THREADS # pthread
depends on !BR2_STATIC_LIBS # libyang
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c, libyang
- depends on BR2_INSTALL_LIBSTDCPP # protobuf-c
- depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c
- depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c
select BR2_PACKAGE_BASH
select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash
select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_LIBYANG
select BR2_PACKAGE_READLINE
select BR2_PACKAGE_JSON_C
- select BR2_PACKAGE_PROTOBUF_C
help
The FRRouting Protocol Suite.
@@ -43,11 +39,24 @@ config BR2_PACKAGE_FRR_NHRPD
help
Build Next Hop Routing Protocol daemon.
+config BR2_PACKAGE_FRR_PROTOBUF
+ bool "Protobuf support (Binary-FPM and MLAG)"
+ default y
+ depends on BR2_INSTALL_LIBSTDCPP # protobuf-c
+ depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c
+ depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c
+ select BR2_PACKAGE_PROTOBUF_C
+ help
+ Build FRR with protobuf-based Binary-FPM export and MLAG
+ peer synchronization.
+
endif
-comment "frr needs a toolchain w/ threads, dynamic library, C++, host gcc >= 7"
- depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
+comment "frr needs a toolchain w/ threads, dynamic library"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_MMU
- depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
- !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7
+ depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+
+comment "protobuf support for frr needs a toolchain w/ protobuf, C++, host gcc >= 7"
+ depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7
diff --git a/package/frr/frr.hash b/package/frr/frr.hash
index 414aaec7dd..12030a0df8 100644
--- a/package/frr/frr.hash
+++ b/package/frr/frr.hash
@@ -1,5 +1,5 @@
# Locally calculated
-sha256 df4bc4f644f93be09f75c0e0e325b2f6a3ee6d1c6db429b6f36874e88a66ee33 frr-10.3.1.tar.gz
+sha256 8e4003eaba168626c5ea7a6735f2c85c87b04214e6f8c8f2715b21f8ae40970b frr-10.4.1.tar.gz
sha256 7bf053957d6c38e39a06a112c60ff35b228d3bd03edbe8c9a03508b051128d16 COPYING
sha256 f9e0c21faf738da586281c0beaad3cd56204c19085a10fe05e4d3d7f8b5863d2 doc/licenses/BSD-2-Clause
sha256 aca297b8fd3a43e3bb200f1e2e043c0db6c897325f5ff7f23f7530302a6bf713 doc/licenses/BSD-3-Clause
diff --git a/package/frr/frr.mk b/package/frr/frr.mk
index 23a2ca6037..fb7477a211 100644
--- a/package/frr/frr.mk
+++ b/package/frr/frr.mk
@@ -4,7 +4,7 @@
#
################################################################################
-FRR_VERSION = 10.3.1
+FRR_VERSION = 10.4.1
FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION))
FRR_LICENSE = GPL-2.0+
FRR_LICENSE_FILES = \
@@ -25,7 +25,6 @@ FRR_CPE_ID_PRODUCT = free_range_routing
FRR_AUTORECONF = YES
FRR_DEPENDENCIES = host-frr readline json-c libyang \
- protobuf-c \
$(if $(BR2_PACKAGE_C_ARES),c-ares) \
$(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt)
@@ -89,6 +88,14 @@ else
FRR_CONF_OPTS += --disable-bfdd
endif
+# Optional protobuf support
+ifeq ($(BR2_PACKAGE_FRR_PROTOBUF),y)
+FRR_DEPENDENCIES += protobuf-c
+FRR_CONF_OPTS += --enable-protobuf
+else
+FRR_CONF_OPTS += --disable-protobuf
+endif
+
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
FRR_CONF_ENV += LIBS=-latomic
endif
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable
2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy
2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy
@ 2025-08-11 16:11 ` Maxime Leroy
1 sibling, 0 replies; 9+ messages in thread
From: Maxime Leroy @ 2025-08-11 16:11 UTC (permalink / raw)
To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy
Upstream FRR accepts --enable-multipath=N in the range 1–999. Buildroot
previously hardcoded 256.
Add a config integer to set the maximum ECMP paths at build time, keeping
256 as the default. Lower values help match hardware limits or reduce
memory; higher values are useful for software routing or lab testing.
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
---
package/frr/Config.in | 8 ++++++++
package/frr/frr.mk | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/package/frr/Config.in b/package/frr/Config.in
index feb1aef05a..6c26b6d2e1 100644
--- a/package/frr/Config.in
+++ b/package/frr/Config.in
@@ -33,6 +33,14 @@ config BR2_PACKAGE_FRR_BMP
help
Build BGP Monitoring Protocol daemon.
+config BR2_PACKAGE_FRR_MULTIPATH_MAX
+ int "maximum ECMP paths"
+ default 256
+ range 1 999
+ help
+ Compile FRR with support for up to this many equal-cost
+ next-hops (ECMP).
+
config BR2_PACKAGE_FRR_NHRPD
bool "NHRPD protocol"
select BR2_PACKAGE_C_ARES
diff --git a/package/frr/frr.mk b/package/frr/frr.mk
index fb7477a211..e41ee33caa 100644
--- a/package/frr/frr.mk
+++ b/package/frr/frr.mk
@@ -40,7 +40,7 @@ FRR_CONF_OPTS = --with-clippy=$(HOST_DIR)/bin/clippy \
--with-moduledir=/usr/lib/frr/modules \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
- --enable-multipath=256 \
+ --enable-multipath=$(BR2_PACKAGE_FRR_MULTIPATH_MAX) \
--disable-ospfclient \
--enable-user=frr \
--enable-group=frr \
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH v3 1/2] package/frr: bump to version 10.4.1
2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy
@ 2025-08-13 16:21 ` Julien Olivain via buildroot
0 siblings, 0 replies; 9+ messages in thread
From: Julien Olivain via buildroot @ 2025-08-13 16:21 UTC (permalink / raw)
To: Maxime Leroy; +Cc: buildroot, Vadim Kochan
On 11/08/2025 18:11, Maxime Leroy wrote:
> Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see
> [2]).
>
> As protobuf-c is no longer mandatory (see [3]), a new option
> BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it.
>
> getloadavg function [4] is now used by FRR but older libcs (e.g.
> uClibc,
> dietlibc) lack this function, to fix the compilation, a patch must be
> applied on FRR.
>
> [1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c
> [2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0
> [3] https://github.com/FRRouting/frr/commit/e51c16a4ca92
> [4] https://github.com/FRRouting/frr/commit/ff76fb21d7b3
> Signed-off-by: Maxime Leroy <maxime@leroys.fr>
Series applied to next, thanks.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-08-13 16:21 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-06 13:21 [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 Maxime Leroy
2025-08-09 15:59 ` Julien Olivain via buildroot
2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy
2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy
2025-08-11 14:00 ` [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable Maxime Leroy
2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy
2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy
2025-08-13 16:21 ` Julien Olivain via buildroot
2025-08-11 16:11 ` [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable Maxime Leroy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox