1
0

- Completely delete strings command check. Fixes (bsc#1230279)

OBS-URL: https://build.opensuse.org/package/show/hardware:boot/raspberrypi-eeprom?expand=0&rev=29
This commit is contained in:
Guillaume GARDET 2024-09-09 11:24:25 +00:00 committed by Git OBS Bridge
commit 236ef8afdb
10 changed files with 410 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

19
_service Normal file
View File

@ -0,0 +1,19 @@
<services>
<service name="tar_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/raspberrypi/rpi-eeprom.git</param>
<param name="filename">raspberrypi-eeprom</param>
<param name="revision">ef2fc67d235d037b2b468813e646e20890fcea07</param>
<param name="versionrewrite-pattern">v([0-9\.]{10}).*</param>
<param name="versionformat">@PARENT_TAG@</param>
<!--
<param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@~g%h</param>
-->
</service>
<service name="set_version" mode="manual"/>
<service name="recompress" mode="manual">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
</services>

13
add-suse-config.patch Normal file
View File

@ -0,0 +1,13 @@
diff --git a/rpi-eeprom-update b/rpi-eeprom-update
index 984ade2..c50a5b1 100755
--- a/rpi-eeprom-update
+++ b/rpi-eeprom-update
@@ -688,7 +688,7 @@ findBootFS()
BOOTFS="${TMP_BOOTFS_MNT}"
elif [ -z "$BOOTFS" ]; then
if ! BOOTFS=$(/usr/lib/raspberrypi-sys-mods/get_fw_loc 2> /dev/null); then
- for BOOTFS in /boot/firmware /boot; do
+ for BOOTFS in /boot/efi /boot; do
if [ -f "${BOOTFS}/config.txt" ]; then
break
elif findmnt --fstab "$BOOTFS" > /dev/null; then

23
dont-use-env.patch Normal file
View File

@ -0,0 +1,23 @@
From e28936a8fa34346727b229e7366960e508545cf0 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Fri, 22 Jan 2021 17:08:46 +0100
Subject: [PATCH] Avoid using env so rpm catches the python dependency
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
---
rpi-eeprom-config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rpi-eeprom-config b/rpi-eeprom-config
index 0a6ce5e..943d0dd 100755
--- a/rpi-eeprom-config
+++ b/rpi-eeprom-config
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/python3
"""
rpi-eeprom-config
--
2.30.0

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6e9a32f8eade9bb9d8df0dece1d7a4d2146c7d8123b31b2863b00898748febac
size 5760252

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2c5d17c412da2653b3d2f0051fbf373d5921fe97d5488d90f6efc1ff2b18524
size 9453052

167
raspberrypi-eeprom.changes Normal file
View File

@ -0,0 +1,167 @@
-------------------------------------------------------------------
Mon Sep 9 10:41:02 UTC 2024 - Ivan Ivanov <ivan.ivanov@suse.com>
- Completely delete strings command check. Fixes (bsc#1230279)
-------------------------------------------------------------------
Tue Sep 3 12:12:53 UTC 2024 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Update to 2024.06.05
- Skipped:
* v2024.04.20-2712
* v2024.02.17-2712
* v2024.02.16-2712
* v.2024.01.05-2712
* v2023.12.06-2712
- Refresh patch:
* rpi-eeprom-update-Use-tr-instead-of-strings.patch
-------------------------------------------------------------------
Thu Nov 23 10:12:48 UTC 2023 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Update to v2023.10.30:
* Fix SDIO / WiFi clock-setup for BOOT_ORDER=0xf14
* Fix SD power-on-reset
* Firmware support for improved watchdog driver
* Update DHCP Option97 to be R,P,i,5 on Pi5
- Updates from skipped v2023.10.18:
* Add support for HAT gpiomap for improved HAT compatibility.
* Add I2C probe for DSI display auto detect
* Automatically set dtparam=nvme if booted from nvme
* Fix network boot reset issue where only the first attempt works.
* Adding pciex4_reset=0 to config.txt will leave RP1 PCIe enabled
when ARM stage is started.
* Prevent HDMI diagnostics being displayed immediately when
waking after HALT.
* Update board-name - "Raspberry Pi 5"
- Refresh patches:
* add-suse-config.patch
* rpi-eeprom-update-Use-tr-instead-of-strings.patch
-------------------------------------------------------------------
Sun Jan 29 14:42:22 UTC 2023 - Tobias Klausmann <tobias.klausmann@freenet.de>
- Refresh patch rpi-eeprom-update-Use-tr-instead-of-strings.patch
Replace the third source for "strings" as well
-------------------------------------------------------------------
Sun Jan 22 20:32:45 UTC 2023 - Tobias Klausmann <tobias.klausmann@freenet.de>
- Packaging changes:
* Compress archive to tar.xz to save space (~43M -> ~3.4M)
* Refresh rpi-eeprom-update-Use-tr-instead-of-strings.patch
- 2023-01-11-vl805-000138c0:
- Interesting changes since the last release:-
* Update VL805 to 138C0 - fix for handling of split transactions
raspberrypi/linux#5262
* Fix HID error handling with network install #458
- 2022-11-25-vl805-000138a1:
- Interesting changes since the last release:-
* Add [tryboot] conditional statement to autoboot.txt + tryboot_a_b mode
* Support custom OTP mac addresses
* Increase TFTP_MAX_BLOCK_SIZE
* Stop NVMe cleanly
* Fixes for NETCONSOLE parsing and initialisation.
* Long filename support for start_file / fixup_file.
* Secure boot and display debug info on the diagnostics screen.
- 2022-04-26-vl805-000138a1:
- Interesting changes since the last default release:
* Implement network install
* Add support for BOOT_ORDER_HTTP
* Enable the boot partition number to be specified as an EEPROM config
property.
-------------------------------------------------------------------
Tue Mar 8 12:28:21 UTC 2022 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- 2022-01-25-vl805-000138a1:
- Interesting changes since the last default release:
* Support and bug fixes for all Compute Module variants.
* NVMe interoperability fixes
* FAT/GPT fixes and file-system performance improvements.
* Added secure-boot support for industrial applications
* Added ramdisk / boot.img - for RPIBOOT and secure-boot.
- Package rpi-eeprom-digest
- Refresh patch:
* dont-use-env.patch
-------------------------------------------------------------------
Wed Jun 30 12:19:25 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
- Use upstream version schema (year.month.day) instead of arbitrary 0.0
- Update to version 2021.04.29
* Add support for NVMe to the bootloader with a new NVMe boot mode
* Add support for [cm4] and [pi400] config conditionals filters.
* TFTP - reply to duplicate ACKS
* Skip rendering of HDMI diagnostics display for the first 8 seconds
unless an error occurs.
* Add support for the BCM2711 XHCI controller - BOOT_ORDER 0x5
* XHCI protocol layer fixes for non-VLI controllers
* Avoid USB MSD timeout of there is only one device
* Fix recovery.bin error handler so that the LED error pattern
is still displayed even if HDMI or SDRAM fail.
* Fix GPIO expander reset issue on some Pi4B 1.1 to 1.3 boards
* Fix regression for GPIO expander reset change which caused PMIC
reset to get card out of 1V8 mode to be missed.
* Timeout USB MSD commands and move to the next boot mode if a device
stops responding.
* Add support for booting from the BCM2711 XHCI controller which is
the USB-C socket on Pi 4B / Pi 400 and the type A sockets on Compute
Module 4 IO board.
* Validate SDRAM in recovery mode.
- Fixes bsc#1194950.
-------------------------------------------------------------------
Fri Feb 19 10:07:06 UTC 2021 - Nicolas Patricio Saenz Julienne <nsaenzjulienne@suse.com>
- Add 'pciutils' as a requirement. 'rpi-eeprom-update' uses lspci.
(bsc#1182437)
- Update to version 0.0~2020.09.03.65~gb9c255d: Simplifies code by removing
legacy functions.
- Add patch: "rpi-eeprom-update-Use-tr-instead-of-strings.patch" to avoid the
dependency with binutils. (bsc#1182437)
-------------------------------------------------------------------
Thu Feb 4 14:17:12 UTC 2021 - Nicolas Patricio Saenz Julienne <nsaenzjulienne@suse.com>
- Fix 'Supplements:' in spec file, as per
https://doc.opensuse.org/projects/libzypp/HEAD/zypp-modalias.html commas are
special charactes that should be replaced with '%2C'
-------------------------------------------------------------------
Thu Jan 28 16:05:58 UTC 2021 - Nicolas Patricio Saenz Julienne <nsaenzjulienne@suse.com>
- Remove VL805 firmware version from package version as it prevents it from
incresing monotonically.
-------------------------------------------------------------------
Thu Jan 28 13:55:46 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Prefix version with 0.0~
-------------------------------------------------------------------
Wed Jan 27 12:22:39 UTC 2021 - Nicolas Patricio Saenz Julienne <nsaenzjulienne@suse.com>
- Define _firmwaredir when relevant
-------------------------------------------------------------------
Tue Jan 26 12:31:38 UTC 2021 - Nicolas Patricio Saenz Julienne <nsaenzjulienne@suse.com>
- Update to b9c255d:
* rpi-eeprom-config: Properly decode sysfs binary files
-------------------------------------------------------------------
Mon Jan 25 18:29:06 UTC 2021 - Nicolas Patricio Saenz Julienne <nsaenzjulienne@suse.com>
- Introduce _service file.
-------------------------------------------------------------------
Mon Jan 25 12:55:26 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Ditch unnecessarily split package.
-------------------------------------------------------------------
Fri Jan 22 14:15:38 UTC 2021 - Nicolas Patricio Saenz Julienne <nsaenzjulienne@suse.com>
- First commit
- Introduce patches: 'add-suse-config.patch' and 'don't-use-env.patch'.

100
raspberrypi-eeprom.spec Normal file
View File

@ -0,0 +1,100 @@
#
# spec file for package raspberrypi-eeprom
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if 0%{?suse_version} < 1550
%define _firmwaredir /lib/firmware
%endif
Name: raspberrypi-eeprom
Version: 2024.06.05
Release: 0
Summary: Raspberry Pi 4 and Pi 5 EEPROM firmware
License: SUSE-Firmware
Group: System/Boot
URL: https://github.com/raspberrypi/rpi-eeprom
Source0: %{name}-%{version}.tar.xz
Patch0: add-suse-config.patch
Patch1: dont-use-env.patch
Patch2: rpi-eeprom-update-Use-tr-instead-of-strings.patch
Provides: rpi-eeprom
Supplements: modalias(of:N*T*Cbrcm%2Cbcm2711*C*)
Requires: raspberrypi-firmware >= 2021.03.03
Requires: raspberrypi-firmware-dt >= 2021.03.03
Provides: rpi-eeprom-config = %{version}
Obsoletes: rpi-eeprom-config < %{version}
Requires: pciutils
Requires: raspberrypi-eeprom-firmware
BuildArch: noarch
%description
First stage bootloader packages for Raspberry Pi 4 and Pi 5
%package firmware
Summary: Raspberry Pi 4 EEPROM firmware blobs
Group: System/Boot
Provides: raspberrypi-firmware-eeprom = %{version}
Obsoletes: raspberrypi-firmware-eeprom < %{version}
Requires: raspberrypi-eeprom
BuildRequires: fdupes
%description firmware
First stage bootloader fimware blobs for Raspberry Pi 4 and Pi 5
%prep
%autosetup -p1
# 'strings' not needed - https://github.com/raspberrypi/rpi-eeprom/commit/ef0cfffced1bbee8ae6755ddf58e478c3d8c8f05
sed -i '/if ! command -v strings/, /fi/d' rpi-eeprom-update
%build
%install
mkdir -p %{buildroot}%{_bindir}
install -m 0755 rpi-eeprom-config %{buildroot}%{_bindir}
install -m 0755 rpi-eeprom-digest %{buildroot}%{_bindir}
install -m 0755 rpi-eeprom-update %{buildroot}%{_bindir}
mkdir -p %{buildroot}/etc/default
install -m 644 rpi-eeprom-update-default %{buildroot}/etc/default/rpi-eeprom-update
for model in 2711 2712; do
mkdir -p %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model
mv firmware-$model/beta %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model
mv firmware-$model/critical %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model
mv firmware-$model/stable %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model
cp -a firmware-$model/latest %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model
cp -a firmware-$model/default %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model
%fdupes -s %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model
done
%files
%license LICENSE
%{_bindir}/rpi-eeprom-config
%{_bindir}/rpi-eeprom-digest
%{_bindir}/rpi-eeprom-update
%config /etc/default/rpi-eeprom-update
%files firmware
%{_firmwaredir}
%{_firmwaredir}/raspberrypi
%{_firmwaredir}/raspberrypi/bootloader-*/beta
%{_firmwaredir}/raspberrypi/bootloader-*/critical
%{_firmwaredir}/raspberrypi/bootloader-*/stable
%{_firmwaredir}/raspberrypi/bootloader-*/latest
%{_firmwaredir}/raspberrypi/bootloader-*/default
%changelog

View File

@ -0,0 +1,58 @@
From 8dbe479a2cc88c960c90054a5106ccfcdcd86ab4 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Thu, 18 Feb 2021 17:49:46 +0100
Subject: [PATCH] rpi-eeprom-update: Use 'tr' instead of 'strings'
The 'strings' utility is installed by binutils whereas 'tr' belongs with
coreutils. Minimal systems will only contain the latter, due to binutils'
size (20-50 MB). So, convert all uses of 'strings' to 'tr' so as to
avoid the package dependency.
The second and third 'tr' usage converts non-ASCII characters into newlines
so as to isolate the "BUILD_TIMESTAMP=1234567890" statement (similar to what
'strings' does). There is no need for this in the first one: non-ASCII
characters are simply discarded as DT aliases have a fixed one line
format.
[tobijk]: Add hunk for third string replacement
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Tobias Klausmann <tobias.klausmann@freenet.de>
---
rpi-eeprom-update | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/rpi-eeprom-update b/rpi-eeprom-update
index 6b54757..5ddf15a 100755
--- a/rpi-eeprom-update
+++ b/rpi-eeprom-update
@@ -127,7 +127,7 @@ getBootloaderConfig() {
local blconfig_nvmem_path=""
if [ -f "${blconfig_alias}" ]; then
- local blconfig_ofnode_path="/sys/firmware/devicetree/base"$(strings "${blconfig_alias}")""
+ local blconfig_ofnode_path="/sys/firmware/devicetree/base"$(tr -cd [:print:] < "${blconfig_alias}")""
local blconfig_ofnode_link=$(find -L /sys/bus/nvmem -maxdepth 3 -samefile "${blconfig_ofnode_path}" 2>/dev/null)
if [ -e "${blconfig_ofnode_link}" ]; then
@@ -194,7 +194,7 @@ applyRecoveryUpdate()
[ -n "${BOOTLOADER_UPDATE_IMAGE}" ] || [ -n "${VL805_UPDATE_IMAGE}" ] || die "No update images specified"
getBootloaderCurrentVersion
- BOOTLOADER_UPDATE_VERSION=$(strings "${BOOTLOADER_UPDATE_IMAGE}" | grep BUILD_TIMESTAMP | sed 's/.*=//g')
+ BOOTLOADER_UPDATE_VERSION=$(tr -c [:print:] "\n" < "${BOOTLOADER_UPDATE_IMAGE}" | sed '/^BUILD_TIMESTAMP=/s/.*=//p;d')
if [ "${BOOTLOADER_CURRENT_VERSION}" -gt "${BOOTLOADER_UPDATE_VERSION}" ]; then
warn " WARNING: Installing an older bootloader version."
warn " Update the rpi-eeprom package to fetch the latest bootloader images."
@@ -367,7 +367,7 @@ getBootloaderUpdateVersion() {
match=".*/pieeprom-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].bin"
latest="$(find "${FIRMWARE_IMAGE_DIR}/" -maxdepth 1 -type f -follow -size "${EEPROM_SIZE}c" -regex "${match}" | sort -r | head -n1)"
if [ -f "${latest}" ]; then
- BOOTLOADER_UPDATE_VERSION=$(strings "${latest}" | grep BUILD_TIMESTAMP | sed 's/.*=//g')
+ BOOTLOADER_UPDATE_VERSION=$(tr -c [:print:] "\n" < "${latest}" | sed '/^BUILD_TIMESTAMP=/s/.*=//p;d')
BOOTLOADER_UPDATE_IMAGE="${latest}"
fi
}
--
2.46.0