* [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3. @ 2024-01-17 12:47 Herman Rimm via Guix-patches via 2024-01-17 13:59 ` [bug#68530] [PATCH 2/2] gnu: Add u-boot-amlogic Herman Rimm via Guix-patches via ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Herman Rimm via Guix-patches via @ 2024-01-17 12:47 UTC (permalink / raw) To: 68530; +Cc: Herman Rimm, Efraim Flashner, Vagrant Cascadian * gnu/local.mk: Deregister patch. * gnu/packages/bootloaders.scm (u-boot): Update to 2024.01.3. [source]: remove patman patch. * gnu/packages/patches/u-boot-patman-change-id.patch: Delete file. Change-Id: I44c0cd313986a6b94f786431e00fbeee82b26d20 --- The OpenSSL patch is incomplete, see build errors for variable added in [PATCH 2/2], from #60043 by phodina. It is not obvious where to add the #if-directives to make it compile. gnu/local.mk | 1 - gnu/packages/bootloaders.scm | 7 +- .../patches/u-boot-patman-change-id.patch | 232 ------------------ 3 files changed, 3 insertions(+), 237 deletions(-) delete mode 100644 gnu/packages/patches/u-boot-patman-change-id.patch diff --git a/gnu/local.mk b/gnu/local.mk index 34bed91fc3..98bf04b1e1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2097,7 +2097,6 @@ dist_patch_DATA = \ %D%/packages/patches/twinkle-bcg729.patch \ %D%/packages/patches/u-boot-allow-disabling-openssl.patch \ %D%/packages/patches/u-boot-nintendo-nes-serial.patch \ - %D%/packages/patches/u-boot-patman-change-id.patch \ %D%/packages/patches/u-boot-rockchip-inno-usb.patch \ %D%/packages/patches/ucx-tcp-iface-ioctl.patch \ %D%/packages/patches/ultrastar-deluxe-no-freesans.patch \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index c73a0e665d..151b42210c 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -719,19 +719,18 @@ (define %u-boot-allow-disabling-openssl-patch (define u-boot (package (name "u-boot") - (version "2023.10") + (version "2024.01") (source (origin (patches (list %u-boot-rockchip-inno-usb-patch - %u-boot-allow-disabling-openssl-patch - (search-patch "u-boot-patman-change-id.patch"))) + %u-boot-allow-disabling-openssl-patch)) (method url-fetch) (uri (string-append "https://ftp.denx.de/pub/u-boot/" "u-boot-" version ".tar.bz2")) (sha256 (base32 - "0039rravvjq9yi41645fynycw4c869px024xfc0n212f05pnq3p0")))) + "1czmpszalc6b8cj9j7q6cxcy19lnijv3916w3dag6yr3xpqi35mr")))) (build-system gnu-build-system) (native-inputs (list bison diff --git a/gnu/packages/patches/u-boot-patman-change-id.patch b/gnu/packages/patches/u-boot-patman-change-id.patch deleted file mode 100644 index 354aee2755..0000000000 --- a/gnu/packages/patches/u-boot-patman-change-id.patch +++ /dev/null @@ -1,232 +0,0 @@ -Upstream status: https://patchwork.ozlabs.org/project/uboot/patch/20231013030633.7191-1-maxim.cournoyer@gmail.com/ - -From f83a5e07b0934e38cbee923e0c5b7fc0a890926c Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer <maxim.cournoyer@gmail.com> -Date: Thu, 12 Oct 2023 17:04:25 -0400 -Subject: [PATCH] patman: Add a 'keep_change_id' setting - -A Change-Id can be useful for traceability purposes, and some projects -may wish to have them preserved. This change makes it configurable -via a new 'keep_change_id' setting. - -Series-version: 2 -Series-changes: 2 -- Add missing argument to send parser ---- - tools/patman/__main__.py | 2 ++ - tools/patman/control.py | 12 +++++++++--- - tools/patman/patchstream.py | 17 ++++++++++++----- - tools/patman/patman.rst | 11 ++++++----- - tools/patman/test_checkpatch.py | 16 ++++++++++++++++ - 5 files changed, 45 insertions(+), 13 deletions(-) - -diff --git a/tools/patman/__main__.py b/tools/patman/__main__.py -index 8eba5d3486..197ac1aad1 100755 ---- a/tools/patman/__main__.py -+++ b/tools/patman/__main__.py -@@ -103,6 +103,8 @@ send.add_argument('--no-signoff', action='store_false', dest='add_signoff', - default=True, help="Don't add Signed-off-by to patches") - send.add_argument('--smtp-server', type=str, - help="Specify the SMTP server to 'git send-email'") -+send.add_argument('--keep-change-id', action='store_true', -+ help='Preserve Change-Id tags in patches to send.') - - send.add_argument('patchfiles', nargs='*') - -diff --git a/tools/patman/control.py b/tools/patman/control.py -index 916ddf8fcf..b292da9dc2 100644 ---- a/tools/patman/control.py -+++ b/tools/patman/control.py -@@ -16,11 +16,14 @@ from patman import gitutil - from patman import patchstream - from u_boot_pylib import terminal - -+ - def setup(): - """Do required setup before doing anything""" - gitutil.setup() - --def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): -+ -+def prepare_patches(col, branch, count, start, end, ignore_binary, signoff, -+ keep_change_id=False): - """Figure out what patches to generate, then generate them - - The patch files are written to the current directory, e.g. 0001_xxx.patch -@@ -35,6 +38,7 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): - end (int): End patch to use (0=last one in series, 1=one before that, - etc.) - ignore_binary (bool): Don't generate patches for binary files -+ keep_change_id (bool): Preserve the Change-Id tag. - - Returns: - Tuple: -@@ -59,11 +63,12 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): - branch, start, to_do, ignore_binary, series, signoff) - - # Fix up the patch files to our liking, and insert the cover letter -- patchstream.fix_patches(series, patch_files) -+ patchstream.fix_patches(series, patch_files, keep_change_id) - if cover_fname and series.get('cover'): - patchstream.insert_cover_letter(cover_fname, series, to_do) - return series, cover_fname, patch_files - -+ - def check_patches(series, patch_files, run_checkpatch, verbose, use_tree): - """Run some checks on a set of patches - -@@ -166,7 +171,8 @@ def send(args): - col = terminal.Color() - series, cover_fname, patch_files = prepare_patches( - col, args.branch, args.count, args.start, args.end, -- args.ignore_binary, args.add_signoff) -+ args.ignore_binary, args.add_signoff, -+ keep_change_id=args.keep_change_id) - ok = check_patches(series, patch_files, args.check_patch, - args.verbose, args.check_patch_use_tree) - -diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py -index f91669a940..e2e2a83e67 100644 ---- a/tools/patman/patchstream.py -+++ b/tools/patman/patchstream.py -@@ -68,6 +68,7 @@ STATE_PATCH_SUBJECT = 1 # In patch subject (first line of log for a commit) - STATE_PATCH_HEADER = 2 # In patch header (after the subject) - STATE_DIFFS = 3 # In the diff part (past --- line) - -+ - class PatchStream: - """Class for detecting/injecting tags in a patch or series of patches - -@@ -76,7 +77,7 @@ class PatchStream: - unwanted tags or inject additional ones. These correspond to the two - phases of processing. - """ -- def __init__(self, series, is_log=False): -+ def __init__(self, series, is_log=False, keep_change_id=False): - self.skip_blank = False # True to skip a single blank line - self.found_test = False # Found a TEST= line - self.lines_after_test = 0 # Number of lines found after TEST= -@@ -86,6 +87,7 @@ class PatchStream: - self.section = [] # The current section...END section - self.series = series # Info about the patch series - self.is_log = is_log # True if indent like git log -+ self.keep_change_id = keep_change_id # True to keep Change-Id tags - self.in_change = None # Name of the change list we are in - self.change_version = 0 # Non-zero if we are in a change list - self.change_lines = [] # Lines of the current change -@@ -452,6 +454,8 @@ class PatchStream: - - # Detect Change-Id tags - elif change_id_match: -+ if self.keep_change_id: -+ out = [line] - value = change_id_match.group(1) - if self.is_log: - if self.commit.change_id: -@@ -763,7 +767,7 @@ def get_metadata_for_test(text): - pst.finalise() - return series - --def fix_patch(backup_dir, fname, series, cmt): -+def fix_patch(backup_dir, fname, series, cmt, keep_change_id=False): - """Fix up a patch file, by adding/removing as required. - - We remove our tags from the patch file, insert changes lists, etc. -@@ -776,6 +780,7 @@ def fix_patch(backup_dir, fname, series, cmt): - fname (str): Filename to patch file to process - series (Series): Series information about this patch set - cmt (Commit): Commit object for this patch file -+ keep_change_id (bool): Keep the Change-Id tag. - - Return: - list: A list of errors, each str, or [] if all ok. -@@ -783,7 +788,7 @@ def fix_patch(backup_dir, fname, series, cmt): - handle, tmpname = tempfile.mkstemp() - outfd = os.fdopen(handle, 'w', encoding='utf-8') - infd = open(fname, 'r', encoding='utf-8') -- pst = PatchStream(series) -+ pst = PatchStream(series, keep_change_id=keep_change_id) - pst.commit = cmt - pst.process_stream(infd, outfd) - infd.close() -@@ -795,7 +800,7 @@ def fix_patch(backup_dir, fname, series, cmt): - shutil.move(tmpname, fname) - return cmt.warn - --def fix_patches(series, fnames): -+def fix_patches(series, fnames, keep_change_id=False): - """Fix up a list of patches identified by filenames - - The patch files are processed in place, and overwritten. -@@ -803,6 +808,7 @@ def fix_patches(series, fnames): - Args: - series (Series): The Series object - fnames (:type: list of str): List of patch files to process -+ keep_change_id (bool): Keep the Change-Id tag. - """ - # Current workflow creates patches, so we shouldn't need a backup - backup_dir = None #tempfile.mkdtemp('clean-patch') -@@ -811,7 +817,8 @@ def fix_patches(series, fnames): - cmt = series.commits[count] - cmt.patch = fname - cmt.count = count -- result = fix_patch(backup_dir, fname, series, cmt) -+ result = fix_patch(backup_dir, fname, series, cmt, -+ keep_change_id=keep_change_id) - if result: - print('%d warning%s for %s:' % - (len(result), 's' if len(result) > 1 else '', fname)) -diff --git a/tools/patman/patman.rst b/tools/patman/patman.rst -index 038b651ee8..a8b317eed6 100644 ---- a/tools/patman/patman.rst -+++ b/tools/patman/patman.rst -@@ -371,11 +371,12 @@ Series-process-log: sort, uniq - Separate each tag with a comma. - - Change-Id: -- This tag is stripped out but is used to generate the Message-Id -- of the emails that will be sent. When you keep the Change-Id the -- same you are asserting that this is a slightly different version -- (but logically the same patch) as other patches that have been -- sent out with the same Change-Id. -+ This tag is used to generate the Message-Id of the emails that -+ will be sent. When you keep the Change-Id the same you are -+ asserting that this is a slightly different version (but logically -+ the same patch) as other patches that have been sent out with the -+ same Change-Id. The Change-Id tag line is removed from outgoing -+ patches, unless the `keep_change_id` settings is set to `True`. - - Various other tags are silently removed, like these Chrome OS and - Gerrit tags:: -diff --git a/tools/patman/test_checkpatch.py b/tools/patman/test_checkpatch.py -index a8bb364e42..59a53ef8ca 100644 ---- a/tools/patman/test_checkpatch.py -+++ b/tools/patman/test_checkpatch.py -@@ -160,6 +160,22 @@ Signed-off-by: Simon Glass <sjg@chromium.org> - - rc = os.system('diff -u %s %s' % (inname, expname)) - self.assertEqual(rc, 0) -+ os.remove(inname) -+ -+ # Test whether the keep_change_id settings works. -+ inhandle, inname = tempfile.mkstemp() -+ infd = os.fdopen(inhandle, 'w', encoding='utf-8') -+ infd.write(data) -+ infd.close() -+ -+ patchstream.fix_patch(None, inname, series.Series(), com, -+ keep_change_id=True) -+ -+ with open(inname, 'r') as f: -+ content = f.read() -+ self.assertIn( -+ 'Change-Id: I80fe1d0c0b7dd10aa58ce5bb1d9290b6664d5413', -+ content) - - os.remove(inname) - os.remove(expname) - -base-commit: f9a47ac8d97da2b3aaf463f268a9a872a8d921df --- -2.41.0 - base-commit: b3e0a973bca6fe5de7356f3d70c4b7d468b0a759 -- 2.41.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#68530] [PATCH 2/2] gnu: Add u-boot-amlogic. 2024-01-17 12:47 [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Herman Rimm via Guix-patches via @ 2024-01-17 13:59 ` Herman Rimm via Guix-patches via 2024-01-17 19:13 ` Vagrant Cascadian 2024-01-17 19:59 ` [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Vagrant Cascadian 2024-01-18 16:11 ` [bug#68530] [PATCH v2] gnu: u-boot: Update to 2024.01 Herman Rimm via Guix-patches via 2 siblings, 1 reply; 8+ messages in thread From: Herman Rimm via Guix-patches via @ 2024-01-17 13:59 UTC (permalink / raw) To: 68530; +Cc: Petr Hodina, Efraim Flashner, Vagrant Cascadian From: Petr Hodina <phodina@protonmail.com> * gnu/packages/bootloaders.scm (u-boot-amlogic): New variable. --- gnu/packages/bootloaders.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 151b42210c..b354af06c8 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -894,6 +894,8 @@ (define-public u-boot-tools (lambda* (#:key make-flags test-target #:allow-other-keys) (invoke "test/image/test-imagetools.sh"))) ;; Only run full test suite on x86_64 systems, as many tests + + ;; assume x86_64. ,@(if (string-match "^x86_64-linux" (or (%current-target-system) @@ -1134,6 +1136,14 @@ (define*-public (make-u-boot-sunxi64-package board triplet scp-firmware (modify-inputs (package-inputs base) (append arm-trusted-firmware-sun50i-a64)))))) +(define %u-boot-amlogic-description-64-bit + "This is a common 64-bit build of U-Boot for all 64-bit capable Amlogic s905x +variants.") + +(define-public u-boot-amlogic + (make-u-boot-package "p212" "aarch64-linux-gnu" + #:append-description %u-boot-amlogic-description-64-bit)) + (define-public u-boot-pine64-plus (make-u-boot-sunxi64-package "pine64_plus" "aarch64-linux-gnu" (delay crust-pine64-plus))) base-commit: b3e0a973bca6fe5de7356f3d70c4b7d468b0a759 prerequisite-patch-id: 582e61fddcf1ea430f1701460aae6707d59f69e3 prerequisite-patch-id: 9ec82bb85c0838f430d24e332fce35aa7ed9ca9e prerequisite-patch-id: 57819e880d0c809667f6bf8626606b1babe63481 prerequisite-patch-id: 72858fea23cbc98dbc83cab4b714244f03685450 prerequisite-patch-id: cee17e48bf50155b92c8ea2218b01e4c7e3ce13d -- 2.41.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#68530] [PATCH 2/2] gnu: Add u-boot-amlogic. 2024-01-17 13:59 ` [bug#68530] [PATCH 2/2] gnu: Add u-boot-amlogic Herman Rimm via Guix-patches via @ 2024-01-17 19:13 ` Vagrant Cascadian 0 siblings, 0 replies; 8+ messages in thread From: Vagrant Cascadian @ 2024-01-17 19:13 UTC (permalink / raw) To: Herman Rimm, 68530; +Cc: Petr Hodina, Efraim Flashner [-- Attachment #1: Type: text/plain, Size: 1599 bytes --] On 2024-01-17, Herman Rimm wrote: > diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm > index 151b42210c..b354af06c8 100644 > --- a/gnu/packages/bootloaders.scm > +++ b/gnu/packages/bootloaders.scm > @@ -894,6 +894,8 @@ (define-public u-boot-tools > (lambda* (#:key make-flags test-target #:allow-other-keys) > (invoke "test/image/test-imagetools.sh"))) > ;; Only run full test suite on x86_64 systems, as many tests > + > + > ;; assume x86_64. > ,@(if (string-match "^x86_64-linux" > (or (%current-target-system) Is this whitespace change needed for some reason? > @@ -1134,6 +1136,14 @@ (define*-public (make-u-boot-sunxi64-package board triplet scp-firmware > (modify-inputs (package-inputs base) > (append arm-trusted-firmware-sun50i-a64)))))) > > +(define %u-boot-amlogic-description-64-bit > + "This is a common 64-bit build of U-Boot for all 64-bit capable Amlogic s905x > +variants.") > + > +(define-public u-boot-amlogic > + (make-u-boot-package "p212" "aarch64-linux-gnu" > + #:append-description %u-boot-amlogic-description-64-bit)) > + This should be called u-boot-p212. There are numerous other potential amlogic platforms... Although, an even bigger issues is that amlogic platforms all to my knowledge require some non-free components in order to sign the binaries before installing them, see the documentation in u-boot sources: doc/board/amlogic/p212.rst live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3. 2024-01-17 12:47 [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Herman Rimm via Guix-patches via 2024-01-17 13:59 ` [bug#68530] [PATCH 2/2] gnu: Add u-boot-amlogic Herman Rimm via Guix-patches via @ 2024-01-17 19:59 ` Vagrant Cascadian 2024-01-18 16:03 ` Herman Rimm via Guix-patches via 2024-01-18 16:11 ` [bug#68530] [PATCH v2] gnu: u-boot: Update to 2024.01 Herman Rimm via Guix-patches via 2 siblings, 1 reply; 8+ messages in thread From: Vagrant Cascadian @ 2024-01-17 19:59 UTC (permalink / raw) To: Herman Rimm, 68530; +Cc: Efraim Flashner [-- Attachment #1: Type: text/plain, Size: 14208 bytes --] On 2024-01-17, Herman Rimm wrote: > * gnu/local.mk: Deregister patch. > * gnu/packages/bootloaders.scm (u-boot): Update to 2024.01.3. > [source]: remove patman patch. > * gnu/packages/patches/u-boot-patman-change-id.patch: Delete file. The subject and commit refer to version 2024.01.3, but the code only refers to version 2024.01. > The OpenSSL patch is incomplete, see build errors for variable added in > [PATCH 2/2], from #60043 by phodina. It is not obvious where to add the > #if-directives to make it compile. These two commits were included in upstream git, which might be relevent or helpful? 03e598263e3878b6f5d58f5525577903edadc644 tools: fix build without LIBCRYPTO support b646a1053fda188bfb054acc98aa73bb23b158b1 tools: kwbimage: Allow disabling build on non-mvebu platforms Those two issues aside, this otherwise looks good. Thanks for working on it! live well, vagrant > > gnu/local.mk | 1 - > gnu/packages/bootloaders.scm | 7 +- > .../patches/u-boot-patman-change-id.patch | 232 ------------------ > 3 files changed, 3 insertions(+), 237 deletions(-) > delete mode 100644 gnu/packages/patches/u-boot-patman-change-id.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index 34bed91fc3..98bf04b1e1 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -2097,7 +2097,6 @@ dist_patch_DATA = \ > %D%/packages/patches/twinkle-bcg729.patch \ > %D%/packages/patches/u-boot-allow-disabling-openssl.patch \ > %D%/packages/patches/u-boot-nintendo-nes-serial.patch \ > - %D%/packages/patches/u-boot-patman-change-id.patch \ > %D%/packages/patches/u-boot-rockchip-inno-usb.patch \ > %D%/packages/patches/ucx-tcp-iface-ioctl.patch \ > %D%/packages/patches/ultrastar-deluxe-no-freesans.patch \ > diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm > index c73a0e665d..151b42210c 100644 > --- a/gnu/packages/bootloaders.scm > +++ b/gnu/packages/bootloaders.scm > @@ -719,19 +719,18 @@ (define %u-boot-allow-disabling-openssl-patch > (define u-boot > (package > (name "u-boot") > - (version "2023.10") > + (version "2024.01") > (source (origin > (patches > (list %u-boot-rockchip-inno-usb-patch > - %u-boot-allow-disabling-openssl-patch > - (search-patch "u-boot-patman-change-id.patch"))) > + %u-boot-allow-disabling-openssl-patch)) > (method url-fetch) > (uri (string-append > "https://ftp.denx.de/pub/u-boot/" > "u-boot-" version ".tar.bz2")) > (sha256 > (base32 > - "0039rravvjq9yi41645fynycw4c869px024xfc0n212f05pnq3p0")))) > + "1czmpszalc6b8cj9j7q6cxcy19lnijv3916w3dag6yr3xpqi35mr")))) > (build-system gnu-build-system) > (native-inputs > (list bison > diff --git a/gnu/packages/patches/u-boot-patman-change-id.patch b/gnu/packages/patches/u-boot-patman-change-id.patch > deleted file mode 100644 > index 354aee2755..0000000000 > --- a/gnu/packages/patches/u-boot-patman-change-id.patch > +++ /dev/null > @@ -1,232 +0,0 @@ > -Upstream status: https://patchwork.ozlabs.org/project/uboot/patch/20231013030633.7191-1-maxim.cournoyer@gmail.com/ > - > -From f83a5e07b0934e38cbee923e0c5b7fc0a890926c Mon Sep 17 00:00:00 2001 > -From: Maxim Cournoyer <maxim.cournoyer@gmail.com> > -Date: Thu, 12 Oct 2023 17:04:25 -0400 > -Subject: [PATCH] patman: Add a 'keep_change_id' setting > - > -A Change-Id can be useful for traceability purposes, and some projects > -may wish to have them preserved. This change makes it configurable > -via a new 'keep_change_id' setting. > - > -Series-version: 2 > -Series-changes: 2 > -- Add missing argument to send parser > ---- > - tools/patman/__main__.py | 2 ++ > - tools/patman/control.py | 12 +++++++++--- > - tools/patman/patchstream.py | 17 ++++++++++++----- > - tools/patman/patman.rst | 11 ++++++----- > - tools/patman/test_checkpatch.py | 16 ++++++++++++++++ > - 5 files changed, 45 insertions(+), 13 deletions(-) > - > -diff --git a/tools/patman/__main__.py b/tools/patman/__main__.py > -index 8eba5d3486..197ac1aad1 100755 > ---- a/tools/patman/__main__.py > -+++ b/tools/patman/__main__.py > -@@ -103,6 +103,8 @@ send.add_argument('--no-signoff', action='store_false', dest='add_signoff', > - default=True, help="Don't add Signed-off-by to patches") > - send.add_argument('--smtp-server', type=str, > - help="Specify the SMTP server to 'git send-email'") > -+send.add_argument('--keep-change-id', action='store_true', > -+ help='Preserve Change-Id tags in patches to send.') > - > - send.add_argument('patchfiles', nargs='*') > - > -diff --git a/tools/patman/control.py b/tools/patman/control.py > -index 916ddf8fcf..b292da9dc2 100644 > ---- a/tools/patman/control.py > -+++ b/tools/patman/control.py > -@@ -16,11 +16,14 @@ from patman import gitutil > - from patman import patchstream > - from u_boot_pylib import terminal > - > -+ > - def setup(): > - """Do required setup before doing anything""" > - gitutil.setup() > - > --def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): > -+ > -+def prepare_patches(col, branch, count, start, end, ignore_binary, signoff, > -+ keep_change_id=False): > - """Figure out what patches to generate, then generate them > - > - The patch files are written to the current directory, e.g. 0001_xxx.patch > -@@ -35,6 +38,7 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): > - end (int): End patch to use (0=last one in series, 1=one before that, > - etc.) > - ignore_binary (bool): Don't generate patches for binary files > -+ keep_change_id (bool): Preserve the Change-Id tag. > - > - Returns: > - Tuple: > -@@ -59,11 +63,12 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): > - branch, start, to_do, ignore_binary, series, signoff) > - > - # Fix up the patch files to our liking, and insert the cover letter > -- patchstream.fix_patches(series, patch_files) > -+ patchstream.fix_patches(series, patch_files, keep_change_id) > - if cover_fname and series.get('cover'): > - patchstream.insert_cover_letter(cover_fname, series, to_do) > - return series, cover_fname, patch_files > - > -+ > - def check_patches(series, patch_files, run_checkpatch, verbose, use_tree): > - """Run some checks on a set of patches > - > -@@ -166,7 +171,8 @@ def send(args): > - col = terminal.Color() > - series, cover_fname, patch_files = prepare_patches( > - col, args.branch, args.count, args.start, args.end, > -- args.ignore_binary, args.add_signoff) > -+ args.ignore_binary, args.add_signoff, > -+ keep_change_id=args.keep_change_id) > - ok = check_patches(series, patch_files, args.check_patch, > - args.verbose, args.check_patch_use_tree) > - > -diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py > -index f91669a940..e2e2a83e67 100644 > ---- a/tools/patman/patchstream.py > -+++ b/tools/patman/patchstream.py > -@@ -68,6 +68,7 @@ STATE_PATCH_SUBJECT = 1 # In patch subject (first line of log for a commit) > - STATE_PATCH_HEADER = 2 # In patch header (after the subject) > - STATE_DIFFS = 3 # In the diff part (past --- line) > - > -+ > - class PatchStream: > - """Class for detecting/injecting tags in a patch or series of patches > - > -@@ -76,7 +77,7 @@ class PatchStream: > - unwanted tags or inject additional ones. These correspond to the two > - phases of processing. > - """ > -- def __init__(self, series, is_log=False): > -+ def __init__(self, series, is_log=False, keep_change_id=False): > - self.skip_blank = False # True to skip a single blank line > - self.found_test = False # Found a TEST= line > - self.lines_after_test = 0 # Number of lines found after TEST= > -@@ -86,6 +87,7 @@ class PatchStream: > - self.section = [] # The current section...END section > - self.series = series # Info about the patch series > - self.is_log = is_log # True if indent like git log > -+ self.keep_change_id = keep_change_id # True to keep Change-Id tags > - self.in_change = None # Name of the change list we are in > - self.change_version = 0 # Non-zero if we are in a change list > - self.change_lines = [] # Lines of the current change > -@@ -452,6 +454,8 @@ class PatchStream: > - > - # Detect Change-Id tags > - elif change_id_match: > -+ if self.keep_change_id: > -+ out = [line] > - value = change_id_match.group(1) > - if self.is_log: > - if self.commit.change_id: > -@@ -763,7 +767,7 @@ def get_metadata_for_test(text): > - pst.finalise() > - return series > - > --def fix_patch(backup_dir, fname, series, cmt): > -+def fix_patch(backup_dir, fname, series, cmt, keep_change_id=False): > - """Fix up a patch file, by adding/removing as required. > - > - We remove our tags from the patch file, insert changes lists, etc. > -@@ -776,6 +780,7 @@ def fix_patch(backup_dir, fname, series, cmt): > - fname (str): Filename to patch file to process > - series (Series): Series information about this patch set > - cmt (Commit): Commit object for this patch file > -+ keep_change_id (bool): Keep the Change-Id tag. > - > - Return: > - list: A list of errors, each str, or [] if all ok. > -@@ -783,7 +788,7 @@ def fix_patch(backup_dir, fname, series, cmt): > - handle, tmpname = tempfile.mkstemp() > - outfd = os.fdopen(handle, 'w', encoding='utf-8') > - infd = open(fname, 'r', encoding='utf-8') > -- pst = PatchStream(series) > -+ pst = PatchStream(series, keep_change_id=keep_change_id) > - pst.commit = cmt > - pst.process_stream(infd, outfd) > - infd.close() > -@@ -795,7 +800,7 @@ def fix_patch(backup_dir, fname, series, cmt): > - shutil.move(tmpname, fname) > - return cmt.warn > - > --def fix_patches(series, fnames): > -+def fix_patches(series, fnames, keep_change_id=False): > - """Fix up a list of patches identified by filenames > - > - The patch files are processed in place, and overwritten. > -@@ -803,6 +808,7 @@ def fix_patches(series, fnames): > - Args: > - series (Series): The Series object > - fnames (:type: list of str): List of patch files to process > -+ keep_change_id (bool): Keep the Change-Id tag. > - """ > - # Current workflow creates patches, so we shouldn't need a backup > - backup_dir = None #tempfile.mkdtemp('clean-patch') > -@@ -811,7 +817,8 @@ def fix_patches(series, fnames): > - cmt = series.commits[count] > - cmt.patch = fname > - cmt.count = count > -- result = fix_patch(backup_dir, fname, series, cmt) > -+ result = fix_patch(backup_dir, fname, series, cmt, > -+ keep_change_id=keep_change_id) > - if result: > - print('%d warning%s for %s:' % > - (len(result), 's' if len(result) > 1 else '', fname)) > -diff --git a/tools/patman/patman.rst b/tools/patman/patman.rst > -index 038b651ee8..a8b317eed6 100644 > ---- a/tools/patman/patman.rst > -+++ b/tools/patman/patman.rst > -@@ -371,11 +371,12 @@ Series-process-log: sort, uniq > - Separate each tag with a comma. > - > - Change-Id: > -- This tag is stripped out but is used to generate the Message-Id > -- of the emails that will be sent. When you keep the Change-Id the > -- same you are asserting that this is a slightly different version > -- (but logically the same patch) as other patches that have been > -- sent out with the same Change-Id. > -+ This tag is used to generate the Message-Id of the emails that > -+ will be sent. When you keep the Change-Id the same you are > -+ asserting that this is a slightly different version (but logically > -+ the same patch) as other patches that have been sent out with the > -+ same Change-Id. The Change-Id tag line is removed from outgoing > -+ patches, unless the `keep_change_id` settings is set to `True`. > - > - Various other tags are silently removed, like these Chrome OS and > - Gerrit tags:: > -diff --git a/tools/patman/test_checkpatch.py b/tools/patman/test_checkpatch.py > -index a8bb364e42..59a53ef8ca 100644 > ---- a/tools/patman/test_checkpatch.py > -+++ b/tools/patman/test_checkpatch.py > -@@ -160,6 +160,22 @@ Signed-off-by: Simon Glass <sjg@chromium.org> > - > - rc = os.system('diff -u %s %s' % (inname, expname)) > - self.assertEqual(rc, 0) > -+ os.remove(inname) > -+ > -+ # Test whether the keep_change_id settings works. > -+ inhandle, inname = tempfile.mkstemp() > -+ infd = os.fdopen(inhandle, 'w', encoding='utf-8') > -+ infd.write(data) > -+ infd.close() > -+ > -+ patchstream.fix_patch(None, inname, series.Series(), com, > -+ keep_change_id=True) > -+ > -+ with open(inname, 'r') as f: > -+ content = f.read() > -+ self.assertIn( > -+ 'Change-Id: I80fe1d0c0b7dd10aa58ce5bb1d9290b6664d5413', > -+ content) > - > - os.remove(inname) > - os.remove(expname) > - > -base-commit: f9a47ac8d97da2b3aaf463f268a9a872a8d921df > --- > -2.41.0 > - > > base-commit: b3e0a973bca6fe5de7356f3d70c4b7d468b0a759 > -- > 2.41.0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3. 2024-01-17 19:59 ` [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Vagrant Cascadian @ 2024-01-18 16:03 ` Herman Rimm via Guix-patches via 0 siblings, 0 replies; 8+ messages in thread From: Herman Rimm via Guix-patches via @ 2024-01-18 16:03 UTC (permalink / raw) To: Vagrant Cascadian, 68530; +Cc: Efraim Flashner On Wed, Jan 17, 2024 at 11:59:53AM -0800, Vagrant Cascadian wrote: > These two commits were included in upstream git, which might be > relevent or helpful? > > 03e598263e3878b6f5d58f5525577903edadc644 tools: fix build without LIBCRYPTO support > b646a1053fda188bfb054acc98aa73bb23b158b1 tools: kwbimage: Allow disabling build on non-mvebu platforms Nice find! I have included 03e5982 as a patch, which fixes the u-boot-amlogic-p212 build errors. > Although, an even bigger issues is that amlogic platforms all to my > knowledge require some non-free components in order to sign the binaries > before installing them, see the documentation in u-boot sources: Yes, I think it would be more useful to add u-boot-amlogic-p212 and the tools from #60043 to a non-official channel together with the non-free stuff. Cheers, Herman ^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#68530] [PATCH v2] gnu: u-boot: Update to 2024.01. 2024-01-17 12:47 [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Herman Rimm via Guix-patches via 2024-01-17 13:59 ` [bug#68530] [PATCH 2/2] gnu: Add u-boot-amlogic Herman Rimm via Guix-patches via 2024-01-17 19:59 ` [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Vagrant Cascadian @ 2024-01-18 16:11 ` Herman Rimm via Guix-patches via 2024-01-18 18:14 ` Vagrant Cascadian 2 siblings, 1 reply; 8+ messages in thread From: Herman Rimm via Guix-patches via @ 2024-01-18 16:11 UTC (permalink / raw) To: 68530; +Cc: Herman Rimm, Efraim Flashner, Vagrant Cascadian * gnu/local.mk: Replace patch. * gnu/packages/bootloaders.scm (u-boot): Update to 2024.01. [source]: replace patman patch with new patch. * gnu/packages/patches/u-boot-allow-disabling-openssl.patch: Remove upstreamed diffs. * gnu/packages/patches/u-boot-build-without-libcrypto.patch: Add file. * gnu/packages/patches/u-boot-patman-change-id.patch: Delete file. Change-Id: I5a21d4cd645449ff669f17cdabe5313870bec46f --- gnu/local.mk | 2 +- gnu/packages/bootloaders.scm | 12 +- .../u-boot-allow-disabling-openssl.patch | 64 +---- .../u-boot-build-without-libcrypto.patch | 123 ++++++++++ .../patches/u-boot-patman-change-id.patch | 232 ------------------ 5 files changed, 134 insertions(+), 299 deletions(-) create mode 100644 gnu/packages/patches/u-boot-build-without-libcrypto.patch delete mode 100644 gnu/packages/patches/u-boot-patman-change-id.patch diff --git a/gnu/local.mk b/gnu/local.mk index 34bed91fc3..96faa813c9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2096,8 +2096,8 @@ dist_patch_DATA = \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/twinkle-bcg729.patch \ %D%/packages/patches/u-boot-allow-disabling-openssl.patch \ + %D%/packages/patches/u-boot-build-without-libcrypto.patch \ %D%/packages/patches/u-boot-nintendo-nes-serial.patch \ - %D%/packages/patches/u-boot-patman-change-id.patch \ %D%/packages/patches/u-boot-rockchip-inno-usb.patch \ %D%/packages/patches/ucx-tcp-iface-ioctl.patch \ %D%/packages/patches/ultrastar-deluxe-no-freesans.patch \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index c73a0e665d..986f0ac035 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -716,22 +716,26 @@ (define %u-boot-allow-disabling-openssl-patch ;; https://lists.denx.de/pipermail/u-boot/2021-October/462728.html (search-patch "u-boot-allow-disabling-openssl.patch")) +(define %u-boot-build-without-libcrypto-patch + ;; Upstream commit to fix Amlogic builds in u-boot 2024.01. + (search-patch "u-boot-build-without-libcrypto.patch")) + (define u-boot (package (name "u-boot") - (version "2023.10") + (version "2024.01") (source (origin (patches (list %u-boot-rockchip-inno-usb-patch - %u-boot-allow-disabling-openssl-patch - (search-patch "u-boot-patman-change-id.patch"))) + %u-boot-build-without-libcrypto-patch + %u-boot-allow-disabling-openssl-patch)) (method url-fetch) (uri (string-append "https://ftp.denx.de/pub/u-boot/" "u-boot-" version ".tar.bz2")) (sha256 (base32 - "0039rravvjq9yi41645fynycw4c869px024xfc0n212f05pnq3p0")))) + "1czmpszalc6b8cj9j7q6cxcy19lnijv3916w3dag6yr3xpqi35mr")))) (build-system gnu-build-system) (native-inputs (list bison diff --git a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch index 708ed81e93..9201f9a51d 100644 --- a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch +++ b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch @@ -8,7 +8,8 @@ This reverts commit b4f3cc2c42d97967a3a3c8796c340f6b07ecccac. Addendum 2022-12-08, Ricardo Wurmus: This patch has been updated to introduce CONFIG_FIT_PRELOAD to remove fit_pre_load_data, which depends on openssl. -Addendum 2023-10-17, Herman Rimm: Update patch for u-boot v2023.10. +Addendum 2024-01-18, Herman Rimm: Patch updated to leave out upstreamed +diffs with CONFIG_FIT_PRELOAD. diff --git a/tools/kwbimage.c b/tools/kwbimage.c index 4dce495ff0..976174ae77 100644 @@ -145,64 +146,3 @@ index 4dce495ff0..976174ae77 100644 /* Calculate and set the header checksum */ main_hdr->checksum = image_checksum8(main_hdr, headersz); ---- a/tools/image-host.c -+++ b/tools/image-host.c -@@ -14,8 +14,10 @@ - #include <image.h> - #include <version.h> - -+#ifdef CONFIG_FIT_PRELOAD - #include <openssl/pem.h> - #include <openssl/evp.h> -+#endif - - /** - * fit_set_hash_value - set hash value in requested has node -@@ -1119,6 +1121,7 @@ static int fit_config_add_verification_data(const char *keydir, - return 0; - } - -+#ifdef CONFIG_FIT_PRELOAD - /* - * 0) open file (open) - * 1) read certificate (PEM_read_X509) -@@ -1227,6 +1230,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit) - out: - return ret; - } -+#endif - - int fit_cipher_data(const char *keydir, void *keydest, void *fit, - const char *comment, int require_keys, ---- a/tools/fit_image.c -+++ b/tools/fit_image.c -@@ -61,9 +61,10 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc, - ret = fit_set_timestamp(ptr, 0, time); - } - -+#ifdef CONFIG_FIT_PRELOAD - if (!ret) - ret = fit_pre_load_data(params->keydir, dest_blob, ptr); -- -+#endif - if (!ret) { - ret = fit_cipher_data(params->keydir, dest_blob, ptr, - params->comment, ---- a/include/image.h -+++ b/include/image.h -@@ -1182,6 +1182,7 @@ int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value, - - int fit_set_timestamp(void *fit, int noffset, time_t timestamp); - -+#ifdef CONFIG_FIT_PRELOAD - /** - * fit_pre_load_data() - add public key to fdt blob - * -@@ -1196,6 +1197,7 @@ int fit_set_timestamp(void *fit, int noffset, time_t timestamp); - * < 0, on failure - */ - int fit_pre_load_data(const char *keydir, void *keydest, void *fit); -+#endif - - int fit_cipher_data(const char *keydir, void *keydest, void *fit, - const char *comment, int require_keys, diff --git a/gnu/packages/patches/u-boot-build-without-libcrypto.patch b/gnu/packages/patches/u-boot-build-without-libcrypto.patch new file mode 100644 index 0000000000..d56588941c --- /dev/null +++ b/gnu/packages/patches/u-boot-build-without-libcrypto.patch @@ -0,0 +1,123 @@ +From 03e598263e3878b6f5d58f5525577903edadc644 Mon Sep 17 00:00:00 2001 +From: Paul-Erwan Rio <paulerwan.rio@gmail.com> +Date: Thu, 21 Dec 2023 08:26:11 +0100 +Subject: [PATCH] tools: fix build without LIBCRYPTO support + +Commit cb9faa6f98ae ("tools: Use a single target-independent config to +enable OpenSSL") introduced a target-independent configuration to build +crypto features in host tools. + +But since commit 2c21256b27d7 ("hash: Use Kconfig to enable hashing in +host tools and SPL") the build without OpenSSL is broken, due to FIT +signature/encryption features. Add missing conditional compilation +tokens to fix this. + +Signed-off-by: Paul-Erwan Rio <paulerwan.rio@gmail.com> +Tested-by: Alexander Dahl <ada@thorsis.com> +Cc: Simon Glass <sjg@chromium.org> +Reviewed-by: Tom Rini <trini@konsulko.com> +Reviewed-by: Simon Glass <sjg@chromium.org> +--- + include/image.h | 2 +- + tools/Kconfig | 1 + + tools/fit_image.c | 2 +- + tools/image-host.c | 4 ++++ + tools/mkimage.c | 5 +++-- + 5 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/include/image.h b/include/image.h +index 432ec927b1..21de70f0c9 100644 +--- a/include/image.h ++++ b/include/image.h +@@ -1465,7 +1465,7 @@ int calculate_hash(const void *data, int data_len, const char *algo, + * device + */ + #if defined(USE_HOSTCC) +-# if defined(CONFIG_FIT_SIGNATURE) ++# if CONFIG_IS_ENABLED(FIT_SIGNATURE) + # define IMAGE_ENABLE_SIGN 1 + # define FIT_IMAGE_ENABLE_VERIFY 1 + # include <openssl/evp.h> +diff --git a/tools/Kconfig b/tools/Kconfig +index f8632cd59d..f01ed783e6 100644 +--- a/tools/Kconfig ++++ b/tools/Kconfig +@@ -51,6 +51,7 @@ config TOOLS_FIT_RSASSA_PSS + Support the rsassa-pss signature scheme in the tools builds + + config TOOLS_FIT_SIGNATURE ++ depends on TOOLS_LIBCRYPTO + def_bool y + help + Enable signature verification of FIT uImages in the tools builds +diff --git a/tools/fit_image.c b/tools/fit_image.c +index 71e031c855..beef1fa86e 100644 +--- a/tools/fit_image.c ++++ b/tools/fit_image.c +@@ -61,7 +61,7 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc, + ret = fit_set_timestamp(ptr, 0, time); + } + +- if (!ret) ++ if (CONFIG_IS_ENABLED(FIT_SIGNATURE) && !ret) + ret = fit_pre_load_data(params->keydir, dest_blob, ptr); + + if (!ret) { +diff --git a/tools/image-host.c b/tools/image-host.c +index ca4950312f..90bc9f905f 100644 +--- a/tools/image-host.c ++++ b/tools/image-host.c +@@ -14,8 +14,10 @@ + #include <image.h> + #include <version.h> + ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) + #include <openssl/pem.h> + #include <openssl/evp.h> ++#endif + + /** + * fit_set_hash_value - set hash value in requested has node +@@ -1131,6 +1133,7 @@ static int fit_config_add_verification_data(const char *keydir, + return 0; + } + ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) + /* + * 0) open file (open) + * 1) read certificate (PEM_read_X509) +@@ -1239,6 +1242,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit) + out: + return ret; + } ++#endif + + int fit_cipher_data(const char *keydir, void *keydest, void *fit, + const char *comment, int require_keys, +diff --git a/tools/mkimage.c b/tools/mkimage.c +index 6dfe3e1d42..ac62ebbde9 100644 +--- a/tools/mkimage.c ++++ b/tools/mkimage.c +@@ -115,7 +115,7 @@ static void usage(const char *msg) + " -B => align size in hex for FIT structure and header\n" + " -b => append the device tree binary to the FIT\n" + " -t => update the timestamp in the FIT\n"); +-#ifdef CONFIG_FIT_SIGNATURE ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) + fprintf(stderr, + "Signing / verified boot options: [-k keydir] [-K dtb] [ -c <comment>] [-p addr] [-r] [-N engine]\n" + " -k => set directory containing private keys\n" +@@ -130,8 +130,9 @@ static void usage(const char *msg) + " -o => algorithm to use for signing\n"); + #else + fprintf(stderr, +- "Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefined)\n"); ++ "Signing / verified boot not supported (CONFIG_TOOLS_FIT_SIGNATURE undefined)\n"); + #endif ++ + fprintf(stderr, " %s -V ==> print version information and exit\n", + params.cmdname); + fprintf(stderr, "Use '-T list' to see a list of available image types\n"); +-- +2.41.0 + diff --git a/gnu/packages/patches/u-boot-patman-change-id.patch b/gnu/packages/patches/u-boot-patman-change-id.patch deleted file mode 100644 index 354aee2755..0000000000 --- a/gnu/packages/patches/u-boot-patman-change-id.patch +++ /dev/null @@ -1,232 +0,0 @@ -Upstream status: https://patchwork.ozlabs.org/project/uboot/patch/20231013030633.7191-1-maxim.cournoyer@gmail.com/ - -From f83a5e07b0934e38cbee923e0c5b7fc0a890926c Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer <maxim.cournoyer@gmail.com> -Date: Thu, 12 Oct 2023 17:04:25 -0400 -Subject: [PATCH] patman: Add a 'keep_change_id' setting - -A Change-Id can be useful for traceability purposes, and some projects -may wish to have them preserved. This change makes it configurable -via a new 'keep_change_id' setting. - -Series-version: 2 -Series-changes: 2 -- Add missing argument to send parser ---- - tools/patman/__main__.py | 2 ++ - tools/patman/control.py | 12 +++++++++--- - tools/patman/patchstream.py | 17 ++++++++++++----- - tools/patman/patman.rst | 11 ++++++----- - tools/patman/test_checkpatch.py | 16 ++++++++++++++++ - 5 files changed, 45 insertions(+), 13 deletions(-) - -diff --git a/tools/patman/__main__.py b/tools/patman/__main__.py -index 8eba5d3486..197ac1aad1 100755 ---- a/tools/patman/__main__.py -+++ b/tools/patman/__main__.py -@@ -103,6 +103,8 @@ send.add_argument('--no-signoff', action='store_false', dest='add_signoff', - default=True, help="Don't add Signed-off-by to patches") - send.add_argument('--smtp-server', type=str, - help="Specify the SMTP server to 'git send-email'") -+send.add_argument('--keep-change-id', action='store_true', -+ help='Preserve Change-Id tags in patches to send.') - - send.add_argument('patchfiles', nargs='*') - -diff --git a/tools/patman/control.py b/tools/patman/control.py -index 916ddf8fcf..b292da9dc2 100644 ---- a/tools/patman/control.py -+++ b/tools/patman/control.py -@@ -16,11 +16,14 @@ from patman import gitutil - from patman import patchstream - from u_boot_pylib import terminal - -+ - def setup(): - """Do required setup before doing anything""" - gitutil.setup() - --def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): -+ -+def prepare_patches(col, branch, count, start, end, ignore_binary, signoff, -+ keep_change_id=False): - """Figure out what patches to generate, then generate them - - The patch files are written to the current directory, e.g. 0001_xxx.patch -@@ -35,6 +38,7 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): - end (int): End patch to use (0=last one in series, 1=one before that, - etc.) - ignore_binary (bool): Don't generate patches for binary files -+ keep_change_id (bool): Preserve the Change-Id tag. - - Returns: - Tuple: -@@ -59,11 +63,12 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): - branch, start, to_do, ignore_binary, series, signoff) - - # Fix up the patch files to our liking, and insert the cover letter -- patchstream.fix_patches(series, patch_files) -+ patchstream.fix_patches(series, patch_files, keep_change_id) - if cover_fname and series.get('cover'): - patchstream.insert_cover_letter(cover_fname, series, to_do) - return series, cover_fname, patch_files - -+ - def check_patches(series, patch_files, run_checkpatch, verbose, use_tree): - """Run some checks on a set of patches - -@@ -166,7 +171,8 @@ def send(args): - col = terminal.Color() - series, cover_fname, patch_files = prepare_patches( - col, args.branch, args.count, args.start, args.end, -- args.ignore_binary, args.add_signoff) -+ args.ignore_binary, args.add_signoff, -+ keep_change_id=args.keep_change_id) - ok = check_patches(series, patch_files, args.check_patch, - args.verbose, args.check_patch_use_tree) - -diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py -index f91669a940..e2e2a83e67 100644 ---- a/tools/patman/patchstream.py -+++ b/tools/patman/patchstream.py -@@ -68,6 +68,7 @@ STATE_PATCH_SUBJECT = 1 # In patch subject (first line of log for a commit) - STATE_PATCH_HEADER = 2 # In patch header (after the subject) - STATE_DIFFS = 3 # In the diff part (past --- line) - -+ - class PatchStream: - """Class for detecting/injecting tags in a patch or series of patches - -@@ -76,7 +77,7 @@ class PatchStream: - unwanted tags or inject additional ones. These correspond to the two - phases of processing. - """ -- def __init__(self, series, is_log=False): -+ def __init__(self, series, is_log=False, keep_change_id=False): - self.skip_blank = False # True to skip a single blank line - self.found_test = False # Found a TEST= line - self.lines_after_test = 0 # Number of lines found after TEST= -@@ -86,6 +87,7 @@ class PatchStream: - self.section = [] # The current section...END section - self.series = series # Info about the patch series - self.is_log = is_log # True if indent like git log -+ self.keep_change_id = keep_change_id # True to keep Change-Id tags - self.in_change = None # Name of the change list we are in - self.change_version = 0 # Non-zero if we are in a change list - self.change_lines = [] # Lines of the current change -@@ -452,6 +454,8 @@ class PatchStream: - - # Detect Change-Id tags - elif change_id_match: -+ if self.keep_change_id: -+ out = [line] - value = change_id_match.group(1) - if self.is_log: - if self.commit.change_id: -@@ -763,7 +767,7 @@ def get_metadata_for_test(text): - pst.finalise() - return series - --def fix_patch(backup_dir, fname, series, cmt): -+def fix_patch(backup_dir, fname, series, cmt, keep_change_id=False): - """Fix up a patch file, by adding/removing as required. - - We remove our tags from the patch file, insert changes lists, etc. -@@ -776,6 +780,7 @@ def fix_patch(backup_dir, fname, series, cmt): - fname (str): Filename to patch file to process - series (Series): Series information about this patch set - cmt (Commit): Commit object for this patch file -+ keep_change_id (bool): Keep the Change-Id tag. - - Return: - list: A list of errors, each str, or [] if all ok. -@@ -783,7 +788,7 @@ def fix_patch(backup_dir, fname, series, cmt): - handle, tmpname = tempfile.mkstemp() - outfd = os.fdopen(handle, 'w', encoding='utf-8') - infd = open(fname, 'r', encoding='utf-8') -- pst = PatchStream(series) -+ pst = PatchStream(series, keep_change_id=keep_change_id) - pst.commit = cmt - pst.process_stream(infd, outfd) - infd.close() -@@ -795,7 +800,7 @@ def fix_patch(backup_dir, fname, series, cmt): - shutil.move(tmpname, fname) - return cmt.warn - --def fix_patches(series, fnames): -+def fix_patches(series, fnames, keep_change_id=False): - """Fix up a list of patches identified by filenames - - The patch files are processed in place, and overwritten. -@@ -803,6 +808,7 @@ def fix_patches(series, fnames): - Args: - series (Series): The Series object - fnames (:type: list of str): List of patch files to process -+ keep_change_id (bool): Keep the Change-Id tag. - """ - # Current workflow creates patches, so we shouldn't need a backup - backup_dir = None #tempfile.mkdtemp('clean-patch') -@@ -811,7 +817,8 @@ def fix_patches(series, fnames): - cmt = series.commits[count] - cmt.patch = fname - cmt.count = count -- result = fix_patch(backup_dir, fname, series, cmt) -+ result = fix_patch(backup_dir, fname, series, cmt, -+ keep_change_id=keep_change_id) - if result: - print('%d warning%s for %s:' % - (len(result), 's' if len(result) > 1 else '', fname)) -diff --git a/tools/patman/patman.rst b/tools/patman/patman.rst -index 038b651ee8..a8b317eed6 100644 ---- a/tools/patman/patman.rst -+++ b/tools/patman/patman.rst -@@ -371,11 +371,12 @@ Series-process-log: sort, uniq - Separate each tag with a comma. - - Change-Id: -- This tag is stripped out but is used to generate the Message-Id -- of the emails that will be sent. When you keep the Change-Id the -- same you are asserting that this is a slightly different version -- (but logically the same patch) as other patches that have been -- sent out with the same Change-Id. -+ This tag is used to generate the Message-Id of the emails that -+ will be sent. When you keep the Change-Id the same you are -+ asserting that this is a slightly different version (but logically -+ the same patch) as other patches that have been sent out with the -+ same Change-Id. The Change-Id tag line is removed from outgoing -+ patches, unless the `keep_change_id` settings is set to `True`. - - Various other tags are silently removed, like these Chrome OS and - Gerrit tags:: -diff --git a/tools/patman/test_checkpatch.py b/tools/patman/test_checkpatch.py -index a8bb364e42..59a53ef8ca 100644 ---- a/tools/patman/test_checkpatch.py -+++ b/tools/patman/test_checkpatch.py -@@ -160,6 +160,22 @@ Signed-off-by: Simon Glass <sjg@chromium.org> - - rc = os.system('diff -u %s %s' % (inname, expname)) - self.assertEqual(rc, 0) -+ os.remove(inname) -+ -+ # Test whether the keep_change_id settings works. -+ inhandle, inname = tempfile.mkstemp() -+ infd = os.fdopen(inhandle, 'w', encoding='utf-8') -+ infd.write(data) -+ infd.close() -+ -+ patchstream.fix_patch(None, inname, series.Series(), com, -+ keep_change_id=True) -+ -+ with open(inname, 'r') as f: -+ content = f.read() -+ self.assertIn( -+ 'Change-Id: I80fe1d0c0b7dd10aa58ce5bb1d9290b6664d5413', -+ content) - - os.remove(inname) - os.remove(expname) - -base-commit: f9a47ac8d97da2b3aaf463f268a9a872a8d921df --- -2.41.0 - base-commit: a7a0b5dc59fc5f877d5aaf468667d1b8c35c33bb -- 2.41.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#68530] [PATCH v2] gnu: u-boot: Update to 2024.01. 2024-01-18 16:11 ` [bug#68530] [PATCH v2] gnu: u-boot: Update to 2024.01 Herman Rimm via Guix-patches via @ 2024-01-18 18:14 ` Vagrant Cascadian 2024-01-18 18:23 ` bug#68530: " Vagrant Cascadian 0 siblings, 1 reply; 8+ messages in thread From: Vagrant Cascadian @ 2024-01-18 18:14 UTC (permalink / raw) To: Herman Rimm, 68530; +Cc: Efraim Flashner [-- Attachment #1: Type: text/plain, Size: 23330 bytes --] On 2024-01-18, Herman Rimm wrote: > * gnu/local.mk: Replace patch. > * gnu/packages/bootloaders.scm (u-boot): Update to 2024.01. > [source]: replace patman patch with new patch. This might just be me, but the patman patch is not really being replaced by some other patch; it is dropping the obsolete patman patch that was upstreamed, and adding a new patch (that also happens to be from upstream, yay!). Maybe I would suggest: * gnu/local.mk: Register and de-register patches. * gnu/packages/bootloaders.scm (u-boot): Update to 2024.01. [source]: Remove patman patch, add build-without-libcrypto patch. Another convention that seems common is to list the newly added and removed files first, for example: * gnu/packages/bootloaders.scm (u-boot): Update to 2024.01. [source]: Remove patman patch, add build-without-libcrypto patch. * gnu/packages/patches/u-boot-allow-disabling-openssl.patch: Remove upstreamed diffs. * gnu/packages/patches/u-boot-build-without-libcrypto.patch: Add file. * gnu/packages/patches/u-boot-patman-change-id.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Add patch, remove patch. I think I like that better! Opinions are likely to vary. That said, everything seems to build fine; I am inclined to push these changes! :) live well, vagrant > Change-Id: I5a21d4cd645449ff669f17cdabe5313870bec46f > --- > gnu/local.mk | 2 +- > gnu/packages/bootloaders.scm | 12 +- > .../u-boot-allow-disabling-openssl.patch | 64 +---- > .../u-boot-build-without-libcrypto.patch | 123 ++++++++++ > .../patches/u-boot-patman-change-id.patch | 232 ------------------ > 5 files changed, 134 insertions(+), 299 deletions(-) > create mode 100644 gnu/packages/patches/u-boot-build-without-libcrypto.patch > delete mode 100644 gnu/packages/patches/u-boot-patman-change-id.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index 34bed91fc3..96faa813c9 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -2096,8 +2096,8 @@ dist_patch_DATA = \ > %D%/packages/patches/tuxpaint-stamps-path.patch \ > %D%/packages/patches/twinkle-bcg729.patch \ > %D%/packages/patches/u-boot-allow-disabling-openssl.patch \ > + %D%/packages/patches/u-boot-build-without-libcrypto.patch \ > %D%/packages/patches/u-boot-nintendo-nes-serial.patch \ > - %D%/packages/patches/u-boot-patman-change-id.patch \ > %D%/packages/patches/u-boot-rockchip-inno-usb.patch \ > %D%/packages/patches/ucx-tcp-iface-ioctl.patch \ > %D%/packages/patches/ultrastar-deluxe-no-freesans.patch \ > diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm > index c73a0e665d..986f0ac035 100644 > --- a/gnu/packages/bootloaders.scm > +++ b/gnu/packages/bootloaders.scm > @@ -716,22 +716,26 @@ (define %u-boot-allow-disabling-openssl-patch > ;; https://lists.denx.de/pipermail/u-boot/2021-October/462728.html > (search-patch "u-boot-allow-disabling-openssl.patch")) > > +(define %u-boot-build-without-libcrypto-patch > + ;; Upstream commit to fix Amlogic builds in u-boot 2024.01. > + (search-patch "u-boot-build-without-libcrypto.patch")) > + > (define u-boot > (package > (name "u-boot") > - (version "2023.10") > + (version "2024.01") > (source (origin > (patches > (list %u-boot-rockchip-inno-usb-patch > - %u-boot-allow-disabling-openssl-patch > - (search-patch "u-boot-patman-change-id.patch"))) > + %u-boot-build-without-libcrypto-patch > + %u-boot-allow-disabling-openssl-patch)) > (method url-fetch) > (uri (string-append > "https://ftp.denx.de/pub/u-boot/" > "u-boot-" version ".tar.bz2")) > (sha256 > (base32 > - "0039rravvjq9yi41645fynycw4c869px024xfc0n212f05pnq3p0")))) > + "1czmpszalc6b8cj9j7q6cxcy19lnijv3916w3dag6yr3xpqi35mr")))) > (build-system gnu-build-system) > (native-inputs > (list bison > diff --git a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch > index 708ed81e93..9201f9a51d 100644 > --- a/gnu/packages/patches/u-boot-allow-disabling-openssl.patch > +++ b/gnu/packages/patches/u-boot-allow-disabling-openssl.patch > @@ -8,7 +8,8 @@ This reverts commit b4f3cc2c42d97967a3a3c8796c340f6b07ecccac. > Addendum 2022-12-08, Ricardo Wurmus: This patch has been updated to introduce > CONFIG_FIT_PRELOAD to remove fit_pre_load_data, which depends on openssl. > > -Addendum 2023-10-17, Herman Rimm: Update patch for u-boot v2023.10. > +Addendum 2024-01-18, Herman Rimm: Patch updated to leave out upstreamed > +diffs with CONFIG_FIT_PRELOAD. > > diff --git a/tools/kwbimage.c b/tools/kwbimage.c > index 4dce495ff0..976174ae77 100644 > @@ -145,64 +146,3 @@ index 4dce495ff0..976174ae77 100644 > > /* Calculate and set the header checksum */ > main_hdr->checksum = image_checksum8(main_hdr, headersz); > ---- a/tools/image-host.c > -+++ b/tools/image-host.c > -@@ -14,8 +14,10 @@ > - #include <image.h> > - #include <version.h> > - > -+#ifdef CONFIG_FIT_PRELOAD > - #include <openssl/pem.h> > - #include <openssl/evp.h> > -+#endif > - > - /** > - * fit_set_hash_value - set hash value in requested has node > -@@ -1119,6 +1121,7 @@ static int fit_config_add_verification_data(const char *keydir, > - return 0; > - } > - > -+#ifdef CONFIG_FIT_PRELOAD > - /* > - * 0) open file (open) > - * 1) read certificate (PEM_read_X509) > -@@ -1227,6 +1230,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit) > - out: > - return ret; > - } > -+#endif > - > - int fit_cipher_data(const char *keydir, void *keydest, void *fit, > - const char *comment, int require_keys, > ---- a/tools/fit_image.c > -+++ b/tools/fit_image.c > -@@ -61,9 +61,10 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc, > - ret = fit_set_timestamp(ptr, 0, time); > - } > - > -+#ifdef CONFIG_FIT_PRELOAD > - if (!ret) > - ret = fit_pre_load_data(params->keydir, dest_blob, ptr); > -- > -+#endif > - if (!ret) { > - ret = fit_cipher_data(params->keydir, dest_blob, ptr, > - params->comment, > ---- a/include/image.h > -+++ b/include/image.h > -@@ -1182,6 +1182,7 @@ int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value, > - > - int fit_set_timestamp(void *fit, int noffset, time_t timestamp); > - > -+#ifdef CONFIG_FIT_PRELOAD > - /** > - * fit_pre_load_data() - add public key to fdt blob > - * > -@@ -1196,6 +1197,7 @@ int fit_set_timestamp(void *fit, int noffset, time_t timestamp); > - * < 0, on failure > - */ > - int fit_pre_load_data(const char *keydir, void *keydest, void *fit); > -+#endif > - > - int fit_cipher_data(const char *keydir, void *keydest, void *fit, > - const char *comment, int require_keys, > diff --git a/gnu/packages/patches/u-boot-build-without-libcrypto.patch b/gnu/packages/patches/u-boot-build-without-libcrypto.patch > new file mode 100644 > index 0000000000..d56588941c > --- /dev/null > +++ b/gnu/packages/patches/u-boot-build-without-libcrypto.patch > @@ -0,0 +1,123 @@ > +From 03e598263e3878b6f5d58f5525577903edadc644 Mon Sep 17 00:00:00 2001 > +From: Paul-Erwan Rio <paulerwan.rio@gmail.com> > +Date: Thu, 21 Dec 2023 08:26:11 +0100 > +Subject: [PATCH] tools: fix build without LIBCRYPTO support > + > +Commit cb9faa6f98ae ("tools: Use a single target-independent config to > +enable OpenSSL") introduced a target-independent configuration to build > +crypto features in host tools. > + > +But since commit 2c21256b27d7 ("hash: Use Kconfig to enable hashing in > +host tools and SPL") the build without OpenSSL is broken, due to FIT > +signature/encryption features. Add missing conditional compilation > +tokens to fix this. > + > +Signed-off-by: Paul-Erwan Rio <paulerwan.rio@gmail.com> > +Tested-by: Alexander Dahl <ada@thorsis.com> > +Cc: Simon Glass <sjg@chromium.org> > +Reviewed-by: Tom Rini <trini@konsulko.com> > +Reviewed-by: Simon Glass <sjg@chromium.org> > +--- > + include/image.h | 2 +- > + tools/Kconfig | 1 + > + tools/fit_image.c | 2 +- > + tools/image-host.c | 4 ++++ > + tools/mkimage.c | 5 +++-- > + 5 files changed, 10 insertions(+), 4 deletions(-) > + > +diff --git a/include/image.h b/include/image.h > +index 432ec927b1..21de70f0c9 100644 > +--- a/include/image.h > ++++ b/include/image.h > +@@ -1465,7 +1465,7 @@ int calculate_hash(const void *data, int data_len, const char *algo, > + * device > + */ > + #if defined(USE_HOSTCC) > +-# if defined(CONFIG_FIT_SIGNATURE) > ++# if CONFIG_IS_ENABLED(FIT_SIGNATURE) > + # define IMAGE_ENABLE_SIGN 1 > + # define FIT_IMAGE_ENABLE_VERIFY 1 > + # include <openssl/evp.h> > +diff --git a/tools/Kconfig b/tools/Kconfig > +index f8632cd59d..f01ed783e6 100644 > +--- a/tools/Kconfig > ++++ b/tools/Kconfig > +@@ -51,6 +51,7 @@ config TOOLS_FIT_RSASSA_PSS > + Support the rsassa-pss signature scheme in the tools builds > + > + config TOOLS_FIT_SIGNATURE > ++ depends on TOOLS_LIBCRYPTO > + def_bool y > + help > + Enable signature verification of FIT uImages in the tools builds > +diff --git a/tools/fit_image.c b/tools/fit_image.c > +index 71e031c855..beef1fa86e 100644 > +--- a/tools/fit_image.c > ++++ b/tools/fit_image.c > +@@ -61,7 +61,7 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc, > + ret = fit_set_timestamp(ptr, 0, time); > + } > + > +- if (!ret) > ++ if (CONFIG_IS_ENABLED(FIT_SIGNATURE) && !ret) > + ret = fit_pre_load_data(params->keydir, dest_blob, ptr); > + > + if (!ret) { > +diff --git a/tools/image-host.c b/tools/image-host.c > +index ca4950312f..90bc9f905f 100644 > +--- a/tools/image-host.c > ++++ b/tools/image-host.c > +@@ -14,8 +14,10 @@ > + #include <image.h> > + #include <version.h> > + > ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) > + #include <openssl/pem.h> > + #include <openssl/evp.h> > ++#endif > + > + /** > + * fit_set_hash_value - set hash value in requested has node > +@@ -1131,6 +1133,7 @@ static int fit_config_add_verification_data(const char *keydir, > + return 0; > + } > + > ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) > + /* > + * 0) open file (open) > + * 1) read certificate (PEM_read_X509) > +@@ -1239,6 +1242,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit) > + out: > + return ret; > + } > ++#endif > + > + int fit_cipher_data(const char *keydir, void *keydest, void *fit, > + const char *comment, int require_keys, > +diff --git a/tools/mkimage.c b/tools/mkimage.c > +index 6dfe3e1d42..ac62ebbde9 100644 > +--- a/tools/mkimage.c > ++++ b/tools/mkimage.c > +@@ -115,7 +115,7 @@ static void usage(const char *msg) > + " -B => align size in hex for FIT structure and header\n" > + " -b => append the device tree binary to the FIT\n" > + " -t => update the timestamp in the FIT\n"); > +-#ifdef CONFIG_FIT_SIGNATURE > ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) > + fprintf(stderr, > + "Signing / verified boot options: [-k keydir] [-K dtb] [ -c <comment>] [-p addr] [-r] [-N engine]\n" > + " -k => set directory containing private keys\n" > +@@ -130,8 +130,9 @@ static void usage(const char *msg) > + " -o => algorithm to use for signing\n"); > + #else > + fprintf(stderr, > +- "Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefined)\n"); > ++ "Signing / verified boot not supported (CONFIG_TOOLS_FIT_SIGNATURE undefined)\n"); > + #endif > ++ > + fprintf(stderr, " %s -V ==> print version information and exit\n", > + params.cmdname); > + fprintf(stderr, "Use '-T list' to see a list of available image types\n"); > +-- > +2.41.0 > + > diff --git a/gnu/packages/patches/u-boot-patman-change-id.patch b/gnu/packages/patches/u-boot-patman-change-id.patch > deleted file mode 100644 > index 354aee2755..0000000000 > --- a/gnu/packages/patches/u-boot-patman-change-id.patch > +++ /dev/null > @@ -1,232 +0,0 @@ > -Upstream status: https://patchwork.ozlabs.org/project/uboot/patch/20231013030633.7191-1-maxim.cournoyer@gmail.com/ > - > -From f83a5e07b0934e38cbee923e0c5b7fc0a890926c Mon Sep 17 00:00:00 2001 > -From: Maxim Cournoyer <maxim.cournoyer@gmail.com> > -Date: Thu, 12 Oct 2023 17:04:25 -0400 > -Subject: [PATCH] patman: Add a 'keep_change_id' setting > - > -A Change-Id can be useful for traceability purposes, and some projects > -may wish to have them preserved. This change makes it configurable > -via a new 'keep_change_id' setting. > - > -Series-version: 2 > -Series-changes: 2 > -- Add missing argument to send parser > ---- > - tools/patman/__main__.py | 2 ++ > - tools/patman/control.py | 12 +++++++++--- > - tools/patman/patchstream.py | 17 ++++++++++++----- > - tools/patman/patman.rst | 11 ++++++----- > - tools/patman/test_checkpatch.py | 16 ++++++++++++++++ > - 5 files changed, 45 insertions(+), 13 deletions(-) > - > -diff --git a/tools/patman/__main__.py b/tools/patman/__main__.py > -index 8eba5d3486..197ac1aad1 100755 > ---- a/tools/patman/__main__.py > -+++ b/tools/patman/__main__.py > -@@ -103,6 +103,8 @@ send.add_argument('--no-signoff', action='store_false', dest='add_signoff', > - default=True, help="Don't add Signed-off-by to patches") > - send.add_argument('--smtp-server', type=str, > - help="Specify the SMTP server to 'git send-email'") > -+send.add_argument('--keep-change-id', action='store_true', > -+ help='Preserve Change-Id tags in patches to send.') > - > - send.add_argument('patchfiles', nargs='*') > - > -diff --git a/tools/patman/control.py b/tools/patman/control.py > -index 916ddf8fcf..b292da9dc2 100644 > ---- a/tools/patman/control.py > -+++ b/tools/patman/control.py > -@@ -16,11 +16,14 @@ from patman import gitutil > - from patman import patchstream > - from u_boot_pylib import terminal > - > -+ > - def setup(): > - """Do required setup before doing anything""" > - gitutil.setup() > - > --def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): > -+ > -+def prepare_patches(col, branch, count, start, end, ignore_binary, signoff, > -+ keep_change_id=False): > - """Figure out what patches to generate, then generate them > - > - The patch files are written to the current directory, e.g. 0001_xxx.patch > -@@ -35,6 +38,7 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): > - end (int): End patch to use (0=last one in series, 1=one before that, > - etc.) > - ignore_binary (bool): Don't generate patches for binary files > -+ keep_change_id (bool): Preserve the Change-Id tag. > - > - Returns: > - Tuple: > -@@ -59,11 +63,12 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff): > - branch, start, to_do, ignore_binary, series, signoff) > - > - # Fix up the patch files to our liking, and insert the cover letter > -- patchstream.fix_patches(series, patch_files) > -+ patchstream.fix_patches(series, patch_files, keep_change_id) > - if cover_fname and series.get('cover'): > - patchstream.insert_cover_letter(cover_fname, series, to_do) > - return series, cover_fname, patch_files > - > -+ > - def check_patches(series, patch_files, run_checkpatch, verbose, use_tree): > - """Run some checks on a set of patches > - > -@@ -166,7 +171,8 @@ def send(args): > - col = terminal.Color() > - series, cover_fname, patch_files = prepare_patches( > - col, args.branch, args.count, args.start, args.end, > -- args.ignore_binary, args.add_signoff) > -+ args.ignore_binary, args.add_signoff, > -+ keep_change_id=args.keep_change_id) > - ok = check_patches(series, patch_files, args.check_patch, > - args.verbose, args.check_patch_use_tree) > - > -diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py > -index f91669a940..e2e2a83e67 100644 > ---- a/tools/patman/patchstream.py > -+++ b/tools/patman/patchstream.py > -@@ -68,6 +68,7 @@ STATE_PATCH_SUBJECT = 1 # In patch subject (first line of log for a commit) > - STATE_PATCH_HEADER = 2 # In patch header (after the subject) > - STATE_DIFFS = 3 # In the diff part (past --- line) > - > -+ > - class PatchStream: > - """Class for detecting/injecting tags in a patch or series of patches > - > -@@ -76,7 +77,7 @@ class PatchStream: > - unwanted tags or inject additional ones. These correspond to the two > - phases of processing. > - """ > -- def __init__(self, series, is_log=False): > -+ def __init__(self, series, is_log=False, keep_change_id=False): > - self.skip_blank = False # True to skip a single blank line > - self.found_test = False # Found a TEST= line > - self.lines_after_test = 0 # Number of lines found after TEST= > -@@ -86,6 +87,7 @@ class PatchStream: > - self.section = [] # The current section...END section > - self.series = series # Info about the patch series > - self.is_log = is_log # True if indent like git log > -+ self.keep_change_id = keep_change_id # True to keep Change-Id tags > - self.in_change = None # Name of the change list we are in > - self.change_version = 0 # Non-zero if we are in a change list > - self.change_lines = [] # Lines of the current change > -@@ -452,6 +454,8 @@ class PatchStream: > - > - # Detect Change-Id tags > - elif change_id_match: > -+ if self.keep_change_id: > -+ out = [line] > - value = change_id_match.group(1) > - if self.is_log: > - if self.commit.change_id: > -@@ -763,7 +767,7 @@ def get_metadata_for_test(text): > - pst.finalise() > - return series > - > --def fix_patch(backup_dir, fname, series, cmt): > -+def fix_patch(backup_dir, fname, series, cmt, keep_change_id=False): > - """Fix up a patch file, by adding/removing as required. > - > - We remove our tags from the patch file, insert changes lists, etc. > -@@ -776,6 +780,7 @@ def fix_patch(backup_dir, fname, series, cmt): > - fname (str): Filename to patch file to process > - series (Series): Series information about this patch set > - cmt (Commit): Commit object for this patch file > -+ keep_change_id (bool): Keep the Change-Id tag. > - > - Return: > - list: A list of errors, each str, or [] if all ok. > -@@ -783,7 +788,7 @@ def fix_patch(backup_dir, fname, series, cmt): > - handle, tmpname = tempfile.mkstemp() > - outfd = os.fdopen(handle, 'w', encoding='utf-8') > - infd = open(fname, 'r', encoding='utf-8') > -- pst = PatchStream(series) > -+ pst = PatchStream(series, keep_change_id=keep_change_id) > - pst.commit = cmt > - pst.process_stream(infd, outfd) > - infd.close() > -@@ -795,7 +800,7 @@ def fix_patch(backup_dir, fname, series, cmt): > - shutil.move(tmpname, fname) > - return cmt.warn > - > --def fix_patches(series, fnames): > -+def fix_patches(series, fnames, keep_change_id=False): > - """Fix up a list of patches identified by filenames > - > - The patch files are processed in place, and overwritten. > -@@ -803,6 +808,7 @@ def fix_patches(series, fnames): > - Args: > - series (Series): The Series object > - fnames (:type: list of str): List of patch files to process > -+ keep_change_id (bool): Keep the Change-Id tag. > - """ > - # Current workflow creates patches, so we shouldn't need a backup > - backup_dir = None #tempfile.mkdtemp('clean-patch') > -@@ -811,7 +817,8 @@ def fix_patches(series, fnames): > - cmt = series.commits[count] > - cmt.patch = fname > - cmt.count = count > -- result = fix_patch(backup_dir, fname, series, cmt) > -+ result = fix_patch(backup_dir, fname, series, cmt, > -+ keep_change_id=keep_change_id) > - if result: > - print('%d warning%s for %s:' % > - (len(result), 's' if len(result) > 1 else '', fname)) > -diff --git a/tools/patman/patman.rst b/tools/patman/patman.rst > -index 038b651ee8..a8b317eed6 100644 > ---- a/tools/patman/patman.rst > -+++ b/tools/patman/patman.rst > -@@ -371,11 +371,12 @@ Series-process-log: sort, uniq > - Separate each tag with a comma. > - > - Change-Id: > -- This tag is stripped out but is used to generate the Message-Id > -- of the emails that will be sent. When you keep the Change-Id the > -- same you are asserting that this is a slightly different version > -- (but logically the same patch) as other patches that have been > -- sent out with the same Change-Id. > -+ This tag is used to generate the Message-Id of the emails that > -+ will be sent. When you keep the Change-Id the same you are > -+ asserting that this is a slightly different version (but logically > -+ the same patch) as other patches that have been sent out with the > -+ same Change-Id. The Change-Id tag line is removed from outgoing > -+ patches, unless the `keep_change_id` settings is set to `True`. > - > - Various other tags are silently removed, like these Chrome OS and > - Gerrit tags:: > -diff --git a/tools/patman/test_checkpatch.py b/tools/patman/test_checkpatch.py > -index a8bb364e42..59a53ef8ca 100644 > ---- a/tools/patman/test_checkpatch.py > -+++ b/tools/patman/test_checkpatch.py > -@@ -160,6 +160,22 @@ Signed-off-by: Simon Glass <sjg@chromium.org> > - > - rc = os.system('diff -u %s %s' % (inname, expname)) > - self.assertEqual(rc, 0) > -+ os.remove(inname) > -+ > -+ # Test whether the keep_change_id settings works. > -+ inhandle, inname = tempfile.mkstemp() > -+ infd = os.fdopen(inhandle, 'w', encoding='utf-8') > -+ infd.write(data) > -+ infd.close() > -+ > -+ patchstream.fix_patch(None, inname, series.Series(), com, > -+ keep_change_id=True) > -+ > -+ with open(inname, 'r') as f: > -+ content = f.read() > -+ self.assertIn( > -+ 'Change-Id: I80fe1d0c0b7dd10aa58ce5bb1d9290b6664d5413', > -+ content) > - > - os.remove(inname) > - os.remove(expname) > - > -base-commit: f9a47ac8d97da2b3aaf463f268a9a872a8d921df > --- > -2.41.0 > - > > base-commit: a7a0b5dc59fc5f877d5aaf468667d1b8c35c33bb > -- > 2.41.0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#68530: [PATCH v2] gnu: u-boot: Update to 2024.01. 2024-01-18 18:14 ` Vagrant Cascadian @ 2024-01-18 18:23 ` Vagrant Cascadian 0 siblings, 0 replies; 8+ messages in thread From: Vagrant Cascadian @ 2024-01-18 18:23 UTC (permalink / raw) To: Herman Rimm, 68530-done; +Cc: Efraim Flashner [-- Attachment #1: Type: text/plain, Size: 697 bytes --] On 2024-01-18, Vagrant Cascadian wrote: > * gnu/packages/bootloaders.scm (u-boot): Update to 2024.01. > [source]: Remove patman patch, add build-without-libcrypto patch. > * gnu/packages/patches/u-boot-allow-disabling-openssl.patch: Remove > upstreamed diffs. > * gnu/packages/patches/u-boot-build-without-libcrypto.patch: Add file. > * gnu/packages/patches/u-boot-patman-change-id.patch: Delete file. > * gnu/local.mk (dist_patch_DATA): Add patch, remove patch. > > I think I like that better! Opinions are likely to vary. > > That said, everything seems to build fine; I am inclined to push these > changes! :) Pushed as 3e3975275bbab84d58f7740e9680b265769aa580. Thanks! live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-01-18 18:24 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-01-17 12:47 [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Herman Rimm via Guix-patches via 2024-01-17 13:59 ` [bug#68530] [PATCH 2/2] gnu: Add u-boot-amlogic Herman Rimm via Guix-patches via 2024-01-17 19:13 ` Vagrant Cascadian 2024-01-17 19:59 ` [bug#68530] [PATCH 1/2] gnu: u-boot: Update to 2024.01.3 Vagrant Cascadian 2024-01-18 16:03 ` Herman Rimm via Guix-patches via 2024-01-18 16:11 ` [bug#68530] [PATCH v2] gnu: u-boot: Update to 2024.01 Herman Rimm via Guix-patches via 2024-01-18 18:14 ` Vagrant Cascadian 2024-01-18 18:23 ` bug#68530: " Vagrant Cascadian
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).