From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id +LEWAyy7KGWeLwAAG6o9tA:P1 (envelope-from ) for ; Fri, 13 Oct 2023 05:36:12 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id +LEWAyy7KGWeLwAAG6o9tA (envelope-from ) for ; Fri, 13 Oct 2023 05:36:12 +0200 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 B5A3D48416 for ; Fri, 13 Oct 2023 05:36:11 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b="h14/+1pB"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1697168171; a=rsa-sha256; cv=none; b=as6ERv62M2OThh3FGctkcqLetM1Hyb5QDQPP5wODkwcG7Xhw0a3kTfGPYGKv+DUuKSMTWg dZSVSgDJS6VbmC5q0kLc7kaLRl5d3Ov24j6yjzy6vtDBjBNN8BK72dTUCN9eQ95ZUIH+T+ 31fSrhOdkpq7BNhtKvX5A6iEW7/TTdr1QQlRoU5j2e8A7O8yDtA7U9k+ITp7oo2HdSFAf9 TIe2C8r5/+flMX516UeUAsKWCtZDZgjfHitvFo2fDWahJv6QBm83y8QXYWLpARHCeDr9cU d7xSxehpJz7W7ZLsSau18WHOtHz5KC9UaRQX9hJBJ6snzFBgREx6x2jF+KffgQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b="h14/+1pB"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1697168171; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: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=qzsF8ycVQrvKI6mCU8zxNXdfq74+12hDgbwBdds0z+g=; b=NtB5gP2W06TkQyveOqyK6EzgxYpovDmMk5CLNBVtug7gWh4YMu84ecA6R/Z3zK71Dyle8H NecS/Mk05HTNIJvFemn1uDuioAopdBW9QII4M+tIsZG5NhpaxdG66RBftuuzSC/IWKUq32 xHkh90Hqlu1m/+VNHXXXFYGSmoMbzVKZ6o7fLnsUjm946QtQzed+W/OkWKFnICSLZPL5YQ w5x0U6XR9KyPpOyC9TDRvHFrBJKgrfl6fIvQHYV17yfFFQXRgObUPuBOFa0sN2k/naj7OV ieHcvxZiFTL5qWYf4Gt8WmAWDebmd2PO1ZfcRunFg4vuoYG9NqYAm+e0WeZpdQ== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qr8xi-0001vK-SE; Thu, 12 Oct 2023 23:35:42 -0400 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 1qr8xh-0001uN-0l for bug-guix@gnu.org; Thu, 12 Oct 2023 23:35:41 -0400 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 1qr8xg-00018g-OD for bug-guix@gnu.org; Thu, 12 Oct 2023 23:35:40 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qr8y2-0007vJ-95; Thu, 12 Oct 2023 23:36:02 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#66027: [PATCH v3 2/3] gnu: patman: Apply patch for new Change-Id setting. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: efraim@flashner.co.il, vagrant@debian.org, bug-guix@gnu.org, Giovanni Biscuolo Resent-Date: Fri, 13 Oct 2023 03:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66027 X-GNU-PR-Package: guix X-GNU-PR-Keywords: help moreinfo notabug To: 66027@debbugs.gnu.org Cc: Giovanni Biscuolo , Maxim Cournoyer , Simon Tournier , Efraim Flashner , Vagrant Cascadian X-Debbugs-Original-Xcc: Efraim Flashner , Vagrant Cascadian Received: via spool by 66027-submit@debbugs.gnu.org id=B66027.169716814030410 (code B ref 66027); Fri, 13 Oct 2023 03:36:02 +0000 Received: (at 66027) by debbugs.gnu.org; 13 Oct 2023 03:35:40 +0000 Received: from localhost ([127.0.0.1]:44527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qr8xf-0007uP-8a for submit@debbugs.gnu.org; Thu, 12 Oct 2023 23:35:40 -0400 Received: from mail-yb1-xb2a.google.com ([2607:f8b0:4864:20::b2a]:48426) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qr8xb-0007tr-86 for 66027@debbugs.gnu.org; Thu, 12 Oct 2023 23:35:37 -0400 Received: by mail-yb1-xb2a.google.com with SMTP id 3f1490d57ef6-d81dd7d76e0so1741064276.1 for <66027@debbugs.gnu.org>; Thu, 12 Oct 2023 20:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697168106; x=1697772906; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qzsF8ycVQrvKI6mCU8zxNXdfq74+12hDgbwBdds0z+g=; b=h14/+1pBQDspx7LIzP3/MksdRgcHnGQfjCJuWpp70yxIbPKpGIJXg5I6uUz70DS4W4 rp6mq6927YYH0r0it4ifN51OvZvt1Fjak9/4iDt217LyC9nevxmKnJPzg4E+p0sIqnto pQMDImGYFUB6xc7uEh99VXjHv8EME/mIKlvyHl4E+/VddqvTaf7cSynveReeC35sx3zL Wfd+9gpqxqo86jT/IR5NdhXPQQiY7/U2Y1Zpzw0B2POukwthCWjABlCNr8nGz/FnKubS 7GnlgdCsE8QMWBxrsk+myL8d4UB72uWKUn/4bpXGfadlg0Dwy5zthZIhX+RKcnL7KJT4 b8Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697168106; x=1697772906; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qzsF8ycVQrvKI6mCU8zxNXdfq74+12hDgbwBdds0z+g=; b=dHr/KU0RaPlQpgfq20OGcTvfQCU37V0P7iJG2QnGAP+CpqE/ncRG/Ra6UuRBcH35ES dRZfotoZNJi3Tvgy/iEjadr8wKiH5s5almaAOghn5K3p95kVmodfe7w8ZWeP6nsOTgnx VWR47tbLWE+KRF0lVnImZa+BwAmHPLsxts/vYeGHm2iKQ+dpr9DhGrT8zhSku5DHSdxQ RPZ8JEUsXYjaG8xiPOJAqEuKS5u/tFwZeUxEFf+yafRDrDj6KyIFDqjvKPQJXfoTB5cl ojcvMYNQIaONZNMUaBelLlOfri29+Ik/9twb2e+KCN33Z9t+Vbg6vKbrzKTrvkEVLewx utBg== X-Gm-Message-State: AOJu0Yx1HAERbnVYhXiiyrruxZUpmqR+OMin2aJ/yxQmVuPQ5PvoEtlj A9tI9oXIEEClUC8IRMsCYXhNa3XFNF4o3w== X-Google-Smtp-Source: AGHT+IGin4o84KrM9urwoTeqkSbQgb89RDCTxdXzWF7J0Sndg+FFPy0oBi2L5Hb1WIKRcqFxzW7JPw== X-Received: by 2002:a25:e80f:0:b0:d9a:ca1e:92ed with SMTP id k15-20020a25e80f000000b00d9aca1e92edmr3362388ybd.1.1697168106334; Thu, 12 Oct 2023 20:35:06 -0700 (PDT) Received: from localhost.localdomain (dsl-10-128-66.b2b2c.ca. [72.10.128.66]) by smtp.gmail.com with ESMTPSA id v5-20020a0ccd85000000b00655e428604esm329512qvm.137.2023.10.12.20.35.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Oct 2023 20:35:05 -0700 (PDT) From: Maxim Cournoyer Date: Thu, 12 Oct 2023 23:33:44 -0400 Message-ID: <3b95af8a90afdec5839a9de61dbcbccc5e842cb6.1697168025.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <177d9176ef9d06a4ee51c271db982c15d7729a0e.1697168025.git.maxim.cournoyer@gmail.com> References: <177d9176ef9d06a4ee51c271db982c15d7729a0e.1697168025.git.maxim.cournoyer@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: bug-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Scanner: mx1.migadu.com X-Migadu-Spam-Score: 7.80 X-Spam-Score: 7.80 X-Migadu-Queue-Id: B5A3D48416 X-TUID: Vq2F2uBxlb+/ * gnu/packages/bootloaders.scm (u-boot) [source]: Apply patch. * gnu/packages/patches/u-boot-patman-change-id.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * .patman (keep_change_id): Use it. Change-Id: I33c03013f6a260b5f5d80212b7b6ebe8a3f97efa --- Changes in v3: - New commit .patman | 1 + gnu/local.mk | 1 + gnu/packages/bootloaders.scm | 3 +- .../patches/u-boot-patman-change-id.patch | 232 ++++++++++++++++++ 4 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/u-boot-patman-change-id.patch diff --git a/.patman b/.patman index 13fa4d0fab..efc42144a2 100644 --- a/.patman +++ b/.patman @@ -8,3 +8,4 @@ add_signoff: False # TODO: enable check_patch check_patch: False ignore_bad_tags: True +keep_change_id: True diff --git a/gnu/local.mk b/gnu/local.mk index 13c2b94944..39d833cee0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2052,6 +2052,7 @@ dist_patch_DATA = \ %D%/packages/patches/u-boot-fix-build-python-3.10.patch \ %D%/packages/patches/u-boot-fix-u-boot-lib-build.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/u-boot-sifive-prevent-reloc-initrd-fdt.patch \ %D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 1124eca837..fb20ba0efa 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -654,7 +654,8 @@ (define u-boot %u-boot-sifive-prevent-relocating-initrd-fdt %u-boot-rk3399-enable-emmc-phy-patch (search-patch "u-boot-fix-build-python-3.10.patch") - (search-patch "u-boot-fix-u-boot-lib-build.patch"))) + (search-patch "u-boot-fix-u-boot-lib-build.patch") + (search-patch "u-boot-patman-change-id.patch"))) (method url-fetch) (uri (string-append "https://ftp.denx.de/pub/u-boot/" diff --git a/gnu/packages/patches/u-boot-patman-change-id.patch b/gnu/packages/patches/u-boot-patman-change-id.patch new file mode 100644 index 0000000000..354aee2755 --- /dev/null +++ b/gnu/packages/patches/u-boot-patman-change-id.patch @@ -0,0 +1,232 @@ +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 +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 + + 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 + -- 2.41.0