diff mbox series

[v3,1/1] package/frr: update to 9.1.1

Message ID 20240825164038.42818-2-vjardin@free.fr
State Not Applicable
Headers show
Series package/frr: update to 9.1.1 | expand

Commit Message

Vincent Jardin Aug. 25, 2024, 4:40 p.m. UTC
Update to the latest 9.x version.  Protobuf becomes mandatory.

Thanks to the suggestions from Thomas Petazzoni:
since we have added a dependency on BR2_PACKAGE_PROTOBUF_C, we should
"import" into FRR's Config.in the protobuf_c's depends and align the
comment accordingly too.

COPYING hash updated:
The COPYING file has evoled toward more details: the respective
licenses are listed except the GPLv3 one since it is only required
when FRR is compiled with the GCC plugin that extends the printf's
type checks. This plugin shall not be enabled for production code.

See FRR's workflow.rst document for more information.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
Suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/frr/Config.in | 11 +++++++++--
 package/frr/frr.hash  | 12 ++++++++++--
 package/frr/frr.mk    | 21 ++++++++++++++++++---
 3 files changed, 37 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/package/frr/Config.in b/package/frr/Config.in
index 0afd8c61a2..a445b0fbe7 100644
--- a/package/frr/Config.in
+++ b/package/frr/Config.in
@@ -4,12 +4,17 @@  config BR2_PACKAGE_FRR
 	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_TOOLCHAIN_HAS_THREADS # 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.
 
@@ -34,7 +39,9 @@  config BR2_PACKAGE_FRR_NHRPD
 
 endif
 
-comment "frr needs a toolchain w/ threads, dynamic library"
+comment "frr needs a toolchain w/ threads, dynamic library, C++, host gcc >= 7"
+	depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on BR2_USE_MMU
-	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
+		!BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7
diff --git a/package/frr/frr.hash b/package/frr/frr.hash
index 4a61084bae..81f8dfdae3 100644
--- a/package/frr/frr.hash
+++ b/package/frr/frr.hash
@@ -1,3 +1,11 @@ 
 # Locally calculated
-sha256  7ae9d8bafc65bb5d0f21061ac61dbc6cf93b2b05a5dae9e5eec72ed42388551e  frr-8.5.4.tar.gz
-sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
+sha256  6eb254c72dca867fefffd5ded80a6c2d5ce8df223ce93263302db4b8bfbb19c4  frr-9.1.1.tar.gz
+sha256  7bf053957d6c38e39a06a112c60ff35b228d3bd03edbe8c9a03508b051128d16  COPYING
+sha256  f9e0c21faf738da586281c0beaad3cd56204c19085a10fe05e4d3d7f8b5863d2  doc/licenses/BSD-2-Clause
+sha256  aca297b8fd3a43e3bb200f1e2e043c0db6c897325f5ff7f23f7530302a6bf713  doc/licenses/BSD-3-Clause
+sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  doc/licenses/GPL-2.0
+sha256  6d80da3224cbdcf016ea554e00fc9cd933bd1a3417cb5e5b7abf59f6d126761d  doc/licenses/ISC
+sha256  dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551  doc/licenses/LGPL-2.1
+sha256  2a1124bf8bc60f1f59b67e15e3d261b5d60fcd9674a3eace0a5502fd4287d528  doc/licenses/LicenseRef-Skiplist-BSD-0-Clause
+sha256  074415b57c6ba1780483d89e55f40dec3ded96c28aaf47d63c486683ba553e7c  doc/licenses/MIT
+sha256  b5065838cbac452dfc855ba6e6e031481ad2c68406f70d21ead9321374653e6c  doc/licenses/Unlicense
diff --git a/package/frr/frr.mk b/package/frr/frr.mk
index 1b7d66fc68..5af819262c 100644
--- a/package/frr/frr.mk
+++ b/package/frr/frr.mk
@@ -4,15 +4,28 @@ 
 #
 ################################################################################
 
-FRR_VERSION = 8.5.4
+FRR_VERSION = 9.1.1
 FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION))
-FRR_LICENSE = GPL-2.0
-FRR_LICENSE_FILES = COPYING
+FRR_LICENSE = GPL-2.0+
+FRR_LICENSE_FILES = \
+	COPYING \
+	doc/licenses/BSD-2-Clause \
+	doc/licenses/BSD-3-Clause \
+	doc/licenses/GPL-2.0 \
+	doc/licenses/ISC \
+	doc/licenses/LGPL-2.1 \
+	doc/licenses/LicenseRef-Skiplist-BSD-0-Clause \
+	doc/licenses/MIT \
+	doc/licenses/Unlicense
+# tools/gcc-plugins/frr-format.[ch] is not enabled at ./configure time, so gcc's GPL3
+# for this plugin does not apply
+#	doc/licenses/GPL-3.0
 FRR_CPE_ID_VENDOR = linuxfoundation
 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)
 
@@ -22,6 +35,8 @@  FRR_CONF_ENV = \
 	ac_cv_lib_cunit_CU_initialize_registry=no \
 	CFLAGS="$(TARGET_CFLAGS) -DFRR_XREF_NO_NOTE"
 
+# Do not enable -fplugin=frr-format for production, see doc/developer/workflow.rst
+# for more information ; it is only intended for FRR's developments
 FRR_CONF_OPTS = --with-clippy=$(HOST_DIR)/bin/clippy \
 	--sysconfdir=/etc/frr \
 	--localstatedir=/var/run/frr \