package/snagboot: bump to version 2.6.1

Changelog 2.5..2.6:

treewide:
Migrate documentation to readthedocs
Emit more specific error messages for USB permission-based access issues
Add unit tests

snagflash:
Support compressed input files, e.g. *.wic.bz2
Refactor fastboot-uboot logic to factor out common code and improve logging
Automatically detect when oem_run isn't supported by U-Boot, and fallback to ucmd

snagrecover:
Support Renesas RZ/N1 platforms
Support SoC model aliases, and add i.MX8MP alias
Handle relative path prefixes with the -F syntax

Changelog 2.6..2.6.1:

snagrecover:
Correct i.MX93 ROM code recovery which doesn't support control endpoint HID commands
Add multi-board support to AM335x recovery setup script
Add i.MX7Solo support

treewide:
Fix broken links in documentation
Drop Python 3.9 support
Add CI for Python 3.14

One packaging-related change is that Snagboot would now
unconditionally import the bzip2, gzip and lzma Python modules, which
are not necessarily available. Since these are only needed when
compressed images are provided as input, we submitted a patch upstream
to make those imports only when compressed files are provided as
input, relaxing those dependencies.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Thomas Petazzoni
2026-08-08 19:11:55 +02:00
committed by Julien Olivain
parent 8aa301fc81
commit a60ae04dbd
3 changed files with 59 additions and 2 deletions

View File

@@ -0,0 +1,57 @@
From fa60aaf200eb1e6d31124ac3e7631e9e5458d145 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Sat, 8 Aug 2026 19:03:52 +0200
Subject: [PATCH] src/snagrecover/utils.py: import compression modules when
needed
Commit 4f98bdec5ebeb13d9f851f848c3bd0086ef31eeb ("snagflash: Support
on-the-fly decompression of input files") has added unconditional
imports of lzma, bz2 and gzip Python modules, even if compressed input
files are not used.
Switch to dynamic imports where these modules are only imported
on-demand. This allows to relax the need to have support for those
modules in Python, which can be helpful in environments such as
Buildroot where dependencies are kept to a minimum.
Upstream: https://github.com/bootlin/snagboot/pull/95
[Thomas: upstream version is different as upstream master branch also
supports zstd compression, which wasn't supported as of v2.6.1 of
snagboot]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
src/snagrecover/utils.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/snagrecover/utils.py b/src/snagrecover/utils.py
index 8d240f6..dfe7d23 100644
--- a/src/snagrecover/utils.py
+++ b/src/snagrecover/utils.py
@@ -16,9 +16,7 @@ from snagrecover.usb import SnagbootUSBContext
import yaml
import importlib.resources
-import lzma
-import bz2
-import gzip
+from math import ceil
USB_RETRIES = 9
USB_INTERVAL = 1
@@ -47,10 +45,13 @@ def open_compressed_file(path: str, mode):
comp = get_compression_method(path)
if comp == "xz":
+ import lzma
file = lzma.open(path, mode)
elif comp == "bz2":
+ import bz2
file = bz2.open(path, mode)
elif comp == "gz":
+ import gzip
file = gzip.open(path, mode)
else:
return open(path, mode)
--
2.55.0

View File

@@ -1,3 +1,3 @@
# Locally calculated # Locally calculated
sha256 03b3793feb9d926f5cb4f1c89f7a22075247fe91942c7be13065b6b62029376e snagboot-2.5.tar.gz sha256 0b94184d9668c46cc2cf11002772ddb2fe06542f4f96cc6884342b5561d84b8d snagboot-2.6.1.tar.gz
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE

View File

@@ -4,7 +4,7 @@
# #
################################################################################ ################################################################################
SNAGBOOT_VERSION = 2.5 SNAGBOOT_VERSION = 2.6.1
SNAGBOOT_SITE = $(call github,bootlin,snagboot,v$(SNAGBOOT_VERSION)) SNAGBOOT_SITE = $(call github,bootlin,snagboot,v$(SNAGBOOT_VERSION))
SNAGBOOT_LICENSE = GPL-2.0 SNAGBOOT_LICENSE = GPL-2.0
SNAGBOOT_LICENSE_FILES = LICENSE SNAGBOOT_LICENSE_FILES = LICENSE