From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id 2KVGDu1qqWU3iwAAqHPOHw:P1 (envelope-from ) for ; Thu, 18 Jan 2024 19:16:13 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id 2KVGDu1qqWU3iwAAqHPOHw (envelope-from ) for ; Thu, 18 Jan 2024 19:16:13 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=debian.org header.s=1.vagrant.user header.b=KfhNI2P3; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1705601773; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=CQ6Zq+L2fdc1Y9G1LMioS04F/l9+qKxyl3ngT/dYxaY=; b=losl93/fiTn526RrD4QjQVLvzmtXc6kGMm+tlClK0KO0DdwO3u8F2+yxeCoyY7WZdOIJ4P T9V/IjL3n6zeg/rAr6tTlclfqT9qV/GLM4K+6VAR7XqBWLsgIRGlIafxinoK2IE6tBLWRe j3dylZkF8ubuqnsTIoOTtTeodC48mfI3QY+5itJuX1/AaOrELt+zXm2f4gY09oWNiEPdFW i6DCRMCFCgunjoyrEoQL72zXXAFoP+ZeuUWtBxnCQg0Y33ZN2n7A3TNVrlQH0PtQglIUzv kwgCqWaNjN4kVuTb6OFtKoMAsicI12TYtpOsapnZR6TxyRYWoQ9/7Uoe6w6laA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=debian.org header.s=1.vagrant.user header.b=KfhNI2P3; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1705601773; a=rsa-sha256; cv=none; b=t0n+FGAgeSf/qY9IesnaQwqRMnHTAqIil6Nt9iFXQC9chUa3j9ygFWQXuPQ6wxNxwRX446 lpJKp4uhNpI7mknd+o9seQ+ziw+2x763/M7ttQrdtujjTPLv6ZraYAHuECu1KDMZwIWxQc 4wABstezczjBOCKRf6k8g6XPdZou6vpB3x4r+YdBc0tqF/Z8QcWk+adOuVwRx/5cgxa/wz Tors3MnfhZW/rROwYGe4JrZzkAecfOYDOACpCjJTbdlFyXUF0MIs4PNp4CpOLKgohvX83B l5Sx5FEZFzDA84wovVeWKK+ub2fu13XEEqj+Sv3f1V62XwNk1JznMLinK7XEqA== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 1D55E1CE7C for ; Thu, 18 Jan 2024 19:16:12 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rQWvq-0002y2-9l; Thu, 18 Jan 2024 13:16:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rQWvo-0002xt-PN for guix-patches@gnu.org; Thu, 18 Jan 2024 13:16:01 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rQWvo-0007AI-FX for guix-patches@gnu.org; Thu, 18 Jan 2024 13:16:00 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rQWvq-0002aG-5v for guix-patches@gnu.org; Thu, 18 Jan 2024 13:16:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#68530] [PATCH v2] gnu: u-boot: Update to 2024.01. Resent-From: Vagrant Cascadian Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 18 Jan 2024 18:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68530 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Herman Rimm , 68530@debbugs.gnu.org Cc: Efraim Flashner Received: via spool by 68530-submit@debbugs.gnu.org id=B68530.17056017134957 (code B ref 68530); Thu, 18 Jan 2024 18:16:02 +0000 Received: (at 68530) by debbugs.gnu.org; 18 Jan 2024 18:15:13 +0000 Received: from localhost ([127.0.0.1]:56621 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQWv1-0001EE-S8 for submit@debbugs.gnu.org; Thu, 18 Jan 2024 13:15:13 -0500 Received: from cascadia.aikidev.net ([173.255.214.101]:44696) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQWuy-0000tE-CG for 68530@debbugs.gnu.org; Thu, 18 Jan 2024 13:15:10 -0500 Received: from localhost (unknown [IPv6:2600:3c01:e000:21:7:77:0:50]) (Authenticated sender: vagrant@cascadia.debian.net) by cascadia.aikidev.net (Postfix) with ESMTPSA id 933721AB95; Thu, 18 Jan 2024 10:14:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=debian.org; s=1.vagrant.user; t=1705601697; bh=VA8DE3VV+Vcq2/gbkPH3KWtB7roHNfnNS2zDMCLhhpY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=KfhNI2P3/0nSsRmTkMpGGYmsXs9wj/dmT9MWFAUhvkY9Ch666oNq074o3cjHumFAA HgyAnfzO0TQiK3XpNCtQcbtdP7gybvAAQa4rym3K0gAGBn6hrlMz2ljfAu+oMHx/3z nsM1txAyCs1mD0i0x0iUlabIQb/Bb/cnqlCYHDDX92DSV2VwxKEOyXxxYsAYJZcCbN /4SvQivFGaT4aSKs60UYyaPyOcwDEltzcP1g2YmoDPbImoILiVMFGoo+Jx8VaM9dd8 9jRPazq2Qg9w+bg+LagTXWv0Q+xn990RD8E+4a6CzCUuEwGNbTzCiHnj2Pdl3grQQ1 DqpKfZYE0FoSg== From: Vagrant Cascadian In-Reply-To: <776ce797ccb78a313b1d7bd5b952b37c09149db5.1705594261.git.herman@rimm.ee> References: <2c214416d9beaaa59343048e8df0ebb50fb9913e.1705493796.git.herman@rimm.ee> <776ce797ccb78a313b1d7bd5b952b37c09149db5.1705594261.git.herman@rimm.ee> Date: Thu, 18 Jan 2024 10:14:51 -0800 Message-ID: <878r4mbjac.fsf@wireframe> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -3.79 X-Spam-Score: -3.79 X-Migadu-Queue-Id: 1D55E1CE7C X-Migadu-Scanner: mx12.migadu.com X-TUID: aCe+EO1L6XZb --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable 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.p= atch > 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 =3D \ > %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")) >=20=20 > +(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 b4f3cc2c42d97967a3a3c8796c340f6b07ecc= cac. > Addendum 2022-12-08, Ricardo Wurmus: This patch has been updated to intr= oduce > CONFIG_FIT_PRELOAD to remove fit_pre_load_data, which depends on openssl. >=20=20 > -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. >=20=20 > diff --git a/tools/kwbimage.c b/tools/kwbimage.c > index 4dce495ff0..976174ae77 100644 > @@ -145,64 +146,3 @@ index 4dce495ff0..976174ae77 100644 >=20=20=20 > /* Calculate and set the header checksum */ > main_hdr->checksum =3D image_checksum8(main_hdr, headersz); > ---- a/tools/image-host.c > -+++ b/tools/image-host.c > -@@ -14,8 +14,10 @@ > - #include > - #include > -=20 > -+#ifdef CONFIG_FIT_PRELOAD > - #include > - #include > -+#endif > -=20 > - /** > - * 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; > - } > -=20 > -+#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 *ke= ydest, void *fit) > - out: > - return ret; > - } > -+#endif > -=20 > - 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 =3D fit_set_timestamp(ptr, 0, time); > - } > -=20 > -+#ifdef CONFIG_FIT_PRELOAD > - if (!ret) > - ret =3D fit_pre_load_data(params->keydir, dest_blob, ptr); > -- > -+#endif > - if (!ret) { > - ret =3D 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, > -=20 > - int fit_set_timestamp(void *fit, int noffset, time_t timestamp); > -=20 > -+#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 > -=20 > - 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 > +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 > +Tested-by: Alexander Dahl > +Cc: Simon Glass > +Reviewed-by: Tom Rini > +Reviewed-by: Simon Glass > +--- > + 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 > +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 > +=20 > + 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 =3D fit_set_timestamp(ptr, 0, time); > + } > +=20 > +- if (!ret) > ++ if (CONFIG_IS_ENABLED(FIT_SIGNATURE) && !ret) > + ret =3D fit_pre_load_data(params->keydir, dest_blob, ptr); > +=20 > + 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 > + #include > +=20 > ++#if CONFIG_IS_ENABLED(FIT_SIGNATURE) > + #include > + #include > ++#endif > +=20 > + /** > + * 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; > + } > +=20 > ++#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 *ke= ydest, void *fit) > + out: > + return ret; > + } > ++#endif > +=20 > + 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 =3D> align size in hex for FIT structure and header\n" > + " -b =3D> append the device tree binary to the FIT\n" > + " -t =3D> 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 = ] [-p addr] [-r] [-N engine]\n" > + " -k =3D> set directory containing private keys\n" > +@@ -130,8 +130,9 @@ static void usage(const char *msg) > + " -o =3D> algorithm to use for signing\n"); > + #else > + fprintf(stderr, > +- "Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefine= d)\n"); > ++ "Signing / verified boot not supported (CONFIG_TOOLS_FIT_SIGNATURE un= defined)\n"); > + #endif > ++ > + fprintf(stderr, " %s -V =3D=3D> print version information and ex= it\n", > + params.cmdname); > + fprintf(stderr, "Use '-T list' to see a list of available image types\= n"); > +--=20 > +2.41.0 > + > diff --git a/gnu/packages/patches/u-boot-patman-change-id.patch b/gnu/pac= kages/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/202310= 13030633.7191-1-maxim.cournoyer@gmail.com/ > - > -From f83a5e07b0934e38cbee923e0c5b7fc0a890926c Mon Sep 17 00:00:00 2001 > -From: Maxim Cournoyer > -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=3D'store_fa= lse', dest=3D'add_signoff', > - default=3DTrue, help=3D"Don't add Signed-off-by to pa= tches") > - send.add_argument('--smtp-server', type=3Dstr, > - help=3D"Specify the SMTP server to 'git send-email'") > -+send.add_argument('--keep-change-id', action=3D'store_true', > -+ help=3D'Preserve Change-Id tags in patches to send.') > -=20 > - send.add_argument('patchfiles', nargs=3D'*') > -=20 > -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 > -=20 > -+ > - def setup(): > - """Do required setup before doing anything""" > - gitutil.setup() > -=20 > --def prepare_patches(col, branch, count, start, end, ignore_binary, sign= off): > -+ > -+def prepare_patches(col, branch, count, start, end, ignore_binary, sign= off, > -+ keep_change_id=3DFalse): > - """Figure out what patches to generate, then generate them > -=20 > - 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, ig= nore_binary, signoff): > - end (int): End patch to use (0=3Dlast one in series, 1=3Done be= fore that, > - etc.) > - ignore_binary (bool): Don't generate patches for binary files > -+ keep_change_id (bool): Preserve the Change-Id tag. > -=20 > - 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) > -=20 > - # 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 > -=20 > -+ > - def check_patches(series, patch_files, run_checkpatch, verbose, use_tre= e): > - """Run some checks on a set of patches > -=20 > -@@ -166,7 +171,8 @@ def send(args): > - col =3D terminal.Color() > - series, cover_fname, patch_files =3D 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=3Dargs.keep_change_id) > - ok =3D check_patches(series, patch_files, args.check_patch, > - args.verbose, args.check_patch_use_tree) > -=20 > -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 =3D 1 # In patch subject (firs= t line of log for a commit) > - STATE_PATCH_HEADER =3D 2 # In patch header (after the subject) > - STATE_DIFFS =3D 3 # In the diff part (past --- line) > -=20 > -+ > - class PatchStream: > - """Class for detecting/injecting tags in a patch or series of patch= es > -=20 > -@@ -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=3DFalse): > -+ def __init__(self, series, is_log=3DFalse, keep_change_id=3DFalse): > - self.skip_blank =3D False # True to skip a single blan= k line > - self.found_test =3D False # Found a TEST=3D line > - self.lines_after_test =3D 0 # Number of lines found afte= r TEST=3D > -@@ -86,6 +87,7 @@ class PatchStream: > - self.section =3D [] # The current section...END = section > - self.series =3D series # Info about the patch series > - self.is_log =3D is_log # True if indent like git log > -+ self.keep_change_id =3D keep_change_id # True to keep Change-I= d tags > - self.in_change =3D None # Name of the change list we= are in > - self.change_version =3D 0 # Non-zero if we are in a ch= ange list > - self.change_lines =3D [] # Lines of the current change > -@@ -452,6 +454,8 @@ class PatchStream: > -=20 > - # Detect Change-Id tags > - elif change_id_match: > -+ if self.keep_change_id: > -+ out =3D [line] > - value =3D 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 > -=20 > --def fix_patch(backup_dir, fname, series, cmt): > -+def fix_patch(backup_dir, fname, series, cmt, keep_change_id=3DFalse): > - """Fix up a patch file, by adding/removing as required. > -=20 > - 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. > -=20 > - 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 =3D tempfile.mkstemp() > - outfd =3D os.fdopen(handle, 'w', encoding=3D'utf-8') > - infd =3D open(fname, 'r', encoding=3D'utf-8') > -- pst =3D PatchStream(series) > -+ pst =3D PatchStream(series, keep_change_id=3Dkeep_change_id) > - pst.commit =3D 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 > -=20 > --def fix_patches(series, fnames): > -+def fix_patches(series, fnames, keep_change_id=3DFalse): > - """Fix up a list of patches identified by filenames > -=20 > - 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 =3D None #tempfile.mkdtemp('clean-patch') > -@@ -811,7 +817,8 @@ def fix_patches(series, fnames): > - cmt =3D series.commits[count] > - cmt.patch =3D fname > - cmt.count =3D count > -- result =3D fix_patch(backup_dir, fname, series, cmt) > -+ result =3D fix_patch(backup_dir, fname, series, cmt, > -+ keep_change_id=3Dkeep_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. > -=20 > - 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`. > -=20 > - 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_checkpa= tch.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 > -=20 > - rc =3D 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 =3D tempfile.mkstemp() > -+ infd =3D os.fdopen(inhandle, 'w', encoding=3D'utf-8') > -+ infd.write(data) > -+ infd.close() > -+ > -+ patchstream.fix_patch(None, inname, series.Series(), com, > -+ keep_change_id=3DTrue) > -+ > -+ with open(inname, 'r') as f: > -+ content =3D f.read() > -+ self.assertIn( > -+ 'Change-Id: I80fe1d0c0b7dd10aa58ce5bb1d9290b6664d5413', > -+ content) > -=20 > - os.remove(inname) > - os.remove(expname) > - > -base-commit: f9a47ac8d97da2b3aaf463f268a9a872a8d921df > ---=20 > -2.41.0 > - > > base-commit: a7a0b5dc59fc5f877d5aaf468667d1b8c35c33bb > --=20 > 2.41.0 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZalqmwAKCRDcUY/If5cW qsWDAPsE9BdjWMpgoXieJoth9LVuqEATVm900UuHhGs8nWOHrgEAuYt2Zivdu8av dk2GSWJ08Sok6KnVqRtyjWlJb1maGg4= =ou8T -----END PGP SIGNATURE----- --=-=-=--