diff --git a/package/utils/bcm27xx-utils/Makefile b/package/utils/bcm27xx-utils/Makefile index b1750bab02e..26389d1aa8d 100644 --- a/package/utils/bcm27xx-utils/Makefile +++ b/package/utils/bcm27xx-utils/Makefile @@ -3,13 +3,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bcm27xx-utils -PKG_VERSION:=2026.06.21 +PKG_VERSION:=2026.09.17 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/raspberrypi/utils.git -PKG_SOURCE_VERSION:=61371fa6d93463c5451131f7bb68ae145aaf1e7a -PKG_MIRROR_HASH:=412b9faad4d37580a8316e967da65dea8f85d1622ed588bed3f2080325d9b6c9 +PKG_SOURCE_VERSION:=ebc4a56bac3a896d5c14e56fe27dcd6cb36dd373 +PKG_MIRROR_HASH:=e5c6c22bb0fbb450cebaf72622c9453d31f25f215cb59c89898c2cf725ebb2a7 PKG_FLAGS:=nonshared PKG_BUILD_FLAGS:=no-lto diff --git a/package/utils/bcm27xx-utils/patches/0001-raspinfo-adapt-to-OpenWrt.patch b/package/utils/bcm27xx-utils/patches/0001-raspinfo-adapt-to-OpenWrt.patch index 1d73cfda50f..cbd34be5fbe 100644 --- a/package/utils/bcm27xx-utils/patches/0001-raspinfo-adapt-to-OpenWrt.patch +++ b/package/utils/bcm27xx-utils/patches/0001-raspinfo-adapt-to-OpenWrt.patch @@ -1,4 +1,4 @@ -From 0db3fb3119eda8c2360454c2a01f84602a879c38 Mon Sep 17 00:00:00 2001 +From 3620d4ead69a4f928d8b81f24785ba7504197e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Tue, 16 Jan 2024 15:32:12 +0100 Subject: [PATCH] raspinfo: adapt to OpenWrt @@ -8,8 +8,8 @@ Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas --- - raspinfo/raspinfo | 206 +++------------------------------------------- - 1 file changed, 11 insertions(+), 195 deletions(-) + raspinfo/raspinfo | 214 ++++------------------------------------------ + 1 file changed, 15 insertions(+), 199 deletions(-) --- a/raspinfo/raspinfo +++ b/raspinfo/raspinfo @@ -270,7 +270,7 @@ Signed-off-by: Álvaro Fernández Rojas elif command -v raspi-gpio > /dev/null; then raspi-gpio get 2>&1 else -@@ -335,9 +151,9 @@ echo "------------------" +@@ -335,11 +151,11 @@ echo "------------------" echo if command -v vcdbg > /dev/null; then @@ -280,8 +280,11 @@ Signed-off-by: Álvaro Fernández Rojas - sudo vclog --msg 2>&1 + vclog --msg 2>&1 else - echo "vcdbg not found" +- echo "vcdbg not found" ++ echo "vcdbg/vclog not found" fi + + echo @@ -347,16 +163,16 @@ echo "dmesg log" echo "---------" echo diff --git a/package/utils/bcm27xx-utils/patches/1001-rpifwcrypto-switch-from-GnuTLS-to-OpenSSL.patch b/package/utils/bcm27xx-utils/patches/1001-rpifwcrypto-switch-from-GnuTLS-to-OpenSSL.patch index afa6a9af97b..27880f756a8 100644 --- a/package/utils/bcm27xx-utils/patches/1001-rpifwcrypto-switch-from-GnuTLS-to-OpenSSL.patch +++ b/package/utils/bcm27xx-utils/patches/1001-rpifwcrypto-switch-from-GnuTLS-to-OpenSSL.patch @@ -1,22 +1,37 @@ -From 74a161cc45b1f68ff4735b31c37329a97e73ea2e Mon Sep 17 00:00:00 2001 +From 2ddd6298ec558ffe7f856d342ed57e1bce692782 Mon Sep 17 00:00:00 2001 From: Joshua Covington -Date: Mon, 8 Jun 2026 22:46:01 +0000 -Subject: [PATCH 1/2] rpifwcrypto: switch from GnuTLS to OpenSSL +Date: Thu, 17 Sep 2026 23:47:23 +0000 +Subject: [PATCH] rpifwcrypto: switch from GnuTLS to OpenSSL -Switch rpi-fw-crypto from GnuTLS to OpenSSL +Replace GnuTLS with OpenSSL (EVP) for SHA-256 hashing in +rpi-fw-crypto, since libgnutls28-dev is being phased out in +favor of libssl-dev across the project. + +- hash_file(): rewrite using EVP_MD_CTX / EVP_DigestInit_ex / + EVP_DigestUpdate / EVP_DigestFinal_ex, with single-exit error + handling and a length check on the returned digest. +- CMakeLists.txt: find_package(OpenSSL) instead of GnuTLS; guard + the top-level rpifwcrypto subdirectory on OPENSSL_FOUND (not + the OpenSSL_FOUND alias, only available since CMake 4.2). +- Link against the OpenSSL::Crypto imported target instead of + raw ${GNUTLS_LIBRARIES}/${GNUTLS_INCLUDE_DIRS}. +- Update prerequisites.sh and rpifwcrypto READMEs to require libssl-dev + instead of libgnutls28-dev. Signed-off-by: Joshua Covington --- CMakeLists.txt | 9 +++--- + prerequisites.sh | 2 +- rpifwcrypto/CMakeLists.txt | 8 +++--- - rpifwcrypto/main.c | 57 +++++++++++++++++++++++--------------- - 3 files changed, 43 insertions(+), 31 deletions(-) + rpifwcrypto/README.md | 2 +- + rpifwcrypto/main.c | 56 ++++++++++++++++++++++++-------------- + 5 files changed, 45 insertions(+), 32 deletions(-) --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -22,11 +22,10 @@ add_subdirectory(vcgencmd) - add_subdirectory(vclog) +@@ -23,11 +23,10 @@ add_subdirectory(vclog) add_subdirectory(vcmailbox) + add_subdirectory(splashasm) -# Only build rpifwcrypto if GnuTLS is available -include(CheckIncludeFile) @@ -24,12 +39,17 @@ Signed-off-by: Joshua Covington -if(HAVE_GNUTLS_CRYPTO_H) +# Only build rpifwcrypto if OpenSSL is available +find_package(OpenSSL QUIET) -+if(OpenSSL_FOUND) ++if(OPENSSL_FOUND) add_subdirectory(rpifwcrypto) else() - message(STATUS "gnutls/crypto.h not found - skipping rpifwcrypto") + message(STATUS "OpenSSL not found - skipping rpifwcrypto") endif() +--- a/prerequisites.sh ++++ b/prerequisites.sh +@@ -1 +1 @@ +-apt install cmake device-tree-compiler libncurses-dev libfdt-dev libgnutls28-dev ++apt install cmake device-tree-compiler libncurses-dev libfdt-dev libssl-dev --- a/rpifwcrypto/CMakeLists.txt +++ b/rpifwcrypto/CMakeLists.txt @@ -10,8 +10,8 @@ endif() @@ -54,6 +74,17 @@ Signed-off-by: Joshua Covington # Install rules install(TARGETS rpi-fw-crypto RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +--- a/rpifwcrypto/README.md ++++ b/rpifwcrypto/README.md +@@ -18,7 +18,7 @@ or the librpifwcrypto.so shared library. + + ## Build Instructions + +-Install prerequisites with `sudo apt install cmake libgnutls28-dev` - you need at least version 3.10. ++Install prerequisites with `sudo apt install cmake libssl-dev` - you need at least version 3.10. + + ``` + mkdir build --- a/rpifwcrypto/main.c +++ b/rpifwcrypto/main.c @@ -2,7 +2,7 @@ @@ -65,7 +96,7 @@ Signed-off-by: Joshua Covington #include "rpifwcrypto.h" #define SHA256_HASH_SIZE 32 -@@ -69,53 +69,66 @@ static void usage(const char *progname) +@@ -69,53 +69,67 @@ static void usage(const char *progname) static int hash_file(const char *filename, unsigned char *hash, size_t hash_size) { @@ -138,10 +169,10 @@ Signed-off-by: Joshua Covington + goto out; + } -- /* Get the hash output, ensuring we don't write beyond the provided buffer */ + /* Get the hash output, ensuring we don't write beyond the provided buffer */ - gnutls_hash_deinit(hash_handle, temp_hash); - memcpy(hash, temp_hash, hash_size < SHA256_HASH_SIZE ? hash_size : SHA256_HASH_SIZE); -+ memcpy(hash, temp_hash, SHA256_HASH_SIZE); ++ memcpy(hash, temp_hash, hash_size < temp_hash_len ? hash_size : temp_hash_len); + rc = 0; - return 0; diff --git a/package/utils/bcm27xx-utils/patches/1002-piolib-make-piolib-a-shared-library.patch b/package/utils/bcm27xx-utils/patches/1002-piolib-make-piolib-a-shared-library.patch index 237a4cc4f65..2a3850e4c80 100644 --- a/package/utils/bcm27xx-utils/patches/1002-piolib-make-piolib-a-shared-library.patch +++ b/package/utils/bcm27xx-utils/patches/1002-piolib-make-piolib-a-shared-library.patch @@ -1,27 +1,52 @@ -From fc43ae46c05acfcc4d5ce74162bb171989db2c20 Mon Sep 17 00:00:00 2001 +From 96d0ca810fea0b349e758b9ffb1dd385a5684d70 Mon Sep 17 00:00:00 2001 From: Joshua Covington -Date: Mon, 8 Jun 2026 22:46:43 +0000 -Subject: [PATCH 2/2] piolib: make piolib a shared library +Date: Mon, 27 Jul 2026 23:41:43 +0000 +Subject: [PATCH] piolib: make piolib a shared library -Make PIOlib/libPIO a shared library. +Build libpio as a shared library (libpio.so) rather than static, +so it can be packaged and linked against independently of the +executables in piolib/examples. Unlike other subprojects, piolib +is always built shared regardless of BUILD_SHARED_LIBS, since +downstream packaging ships libpio.so as its own component. + +- add_library(pio SHARED ...) instead of following + BUILD_SHARED_LIBS. +- install(): add LIBRARY DESTINATION alongside ARCHIVE + DESTINATION so the .so is actually installed. +- README.md: drop piolib from the BUILD_SHARED_LIBS-controlled + list and note that it is always shared. Signed-off-by: Joshua Covington --- - piolib/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + README.md | 2 +- + piolib/CMakeLists.txt | 7 +++++-- + 2 files changed, 6 insertions(+), 3 deletions(-) +--- a/README.md ++++ b/README.md +@@ -42,6 +42,6 @@ A collection of scripts and simple appli + Install the prerequisites with "sudo sh prerequisites.sh" - you need at least version 3.10 of cmake. Run the following commands to build and install everything, or see the README files in the subdirectories to just build utilities individually: + + - *cmake .* +- N.B. Use *cmake -DBUILD_SHARED_LIBS=1 .* to build the libraries in the subprojects (libdtovl, gpiolib and piolib) as shared (as opposed to static) libraries. Add -DCMAKE_INSTALL_PREFIX=/usr to override the default install path of /usr/local. ++ Use *cmake -DBUILD_SHARED_LIBS=1 .* to build the libraries in the subprojects (libdtovl and gpiolib) as shared (as opposed to static) libraries. piolib is always built as a shared library. Add -DCMAKE_INSTALL_PREFIX=/usr to override the default install path of /usr/local. + - *make* + - *sudo make install* --- a/piolib/CMakeLists.txt +++ b/piolib/CMakeLists.txt -@@ -19,7 +19,7 @@ if (CMAKE_COMPILER_IS_GNUCC) +@@ -19,7 +19,10 @@ if (CMAKE_COMPILER_IS_GNUCC) add_definitions (-ffunction-sections) endif () -add_library (pio piolib.c library_piochips.c pio_rp1.c) ++# Always built as a shared library (unlike other subprojects, which follow ++# BUILD_SHARED_LIBS) since downstream packaging ships libpio.so as its own ++# runtime component. +add_library (pio SHARED piolib.c library_piochips.c pio_rp1.c) target_include_directories(pio PUBLIC include) set_target_properties(pio PROPERTIES SOVERSION 0) -@@ -34,7 +34,7 @@ set(INCLUDE_FILES +@@ -34,7 +37,7 @@ set(INCLUDE_FILES "pico/stdlib.h" ) diff --git a/package/utils/bcm27xx-utils/patches/1003-cmake-disable-splashasm.patch b/package/utils/bcm27xx-utils/patches/1003-cmake-disable-splashasm.patch new file mode 100644 index 00000000000..40edb813864 --- /dev/null +++ b/package/utils/bcm27xx-utils/patches/1003-cmake-disable-splashasm.patch @@ -0,0 +1,27 @@ +From 2d8d5b93b93917a9c96add209511aa0b3a9dd2e5 Mon Sep 17 00:00:00 2001 +From: Joshua Covington +Date: Fri, 21 Aug 2026 12:51:28 +0000 +Subject: [PATCH] cmake: disable splashasm + +splashasm is a small tool to compile .splash files that describe +i2c & spi dumps for spitting out during start.elf. + +Not needed for the OpenWrt build at this time, so disable it in +CMakeLists.txt. + +Signed-off-by: Joshua Covington +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -21,7 +21,7 @@ add_subdirectory(rpi-gpu-usage) + add_subdirectory(vcgencmd) + add_subdirectory(vclog) + add_subdirectory(vcmailbox) +-add_subdirectory(splashasm) ++#add_subdirectory(splashasm) + + # Only build rpifwcrypto if OpenSSL is available + find_package(OpenSSL QUIET)