From patchwork Fri Aug 19 14:25:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1668176 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-weidmueller-onmicrosoft-com header.b=wuMfrG8Z; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4M8PK528Ndz1yg7 for ; Sat, 20 Aug 2022 00:29:29 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5F78584BF5; Fri, 19 Aug 2022 16:26:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.b="wuMfrG8Z"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BE73884B42; Fri, 19 Aug 2022 16:26:22 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150089.outbound.protection.outlook.com [40.107.15.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 27E5184B67 for ; Fri, 19 Aug 2022 16:26:07 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=stefan.herbrechtsmeier-oss@weidmueller.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ibdQoFmxpFyaaHHPv8DOt7piJfbcgz4SkH+IuylTCin0+5zDuhOTjlrGDm05c3erEYGu4aqmjVVvuyu0Q05UsIPyTAr/nSepGecZJciJ5bAz+Il7FOI6bA+a8OEZ71tdr1JX4qgAvQcZaYb/uMUh7F355oQiAbis5B4ffbWYQ1auAIA4mbV66KKtqEwentkg52QVXh+ERvMVQikLORK6RwJSlE0a75wt54rkA7U2DyD/tu6pUP9+Kv2bExA1yvwgE7mf6Z/hT4m36zamK077RBg8CcicJG8MW8XTK46vhJVCp5MGrRaPrm+rGgDnK1QoDtGvwSEgpzuAfI/xjTkZYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hzS8MDSas/L5jhzcRB8cbDm0hSja8TpG0RmexPyo1aA=; b=JfDzcpVHAOZMzKwJvt1wLa1MzRiC3tPM5Nqk8OQO+8egkU9snYaPcKkXQ5fYS93u2dDE0xskjzCWDbSkAFnSuq53ziEMyF9fP5yasgpCBS2KLFojCLzcH6Wq7Z1YSB/apI9+iq8ymflUl6ZtiqucE6UrF5Kp7azs/c/UeBRwxz6rN8OsOtdtCw+b9x0YgLyp6OQgXpcoqAMwUP3yYlgIBSPeMQnnIGi+EQpGUYUGJiN/vmUp6BecyMuOBtQCr80W4ldrUMRV1OaRbYiLcszoK7JWbKW7cwwA88ZQpzlEECb1WJ0/+h3gHTQP+21COEnN8Sb0BkIb3XfxN7rHqvNjnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=weidmueller.onmicrosoft.com; s=selector1-weidmueller-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hzS8MDSas/L5jhzcRB8cbDm0hSja8TpG0RmexPyo1aA=; b=wuMfrG8Z4lbo1AyEajddDLaJ0Sbzhbhidte7ah57T6J+eZ2vfAo51gVwFov3/XaFuK4vabeFezc1vzpXHb2nfynDqhnyDcDnHPnDms6WH+3c7GTlnEiGvIeQwFjKSFtiC5JVzSvYk+XHmEh72vcOajs5tIpB8HQ/8M3cz0EFNZo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) by PR3PR08MB5739.eurprd08.prod.outlook.com (2603:10a6:102:8e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.18; Fri, 19 Aug 2022 14:26:06 +0000 Received: from PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f95b:2e64:9ee6:4d44]) by PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f95b:2e64:9ee6:4d44%3]) with mapi id 15.20.5546.018; Fri, 19 Aug 2022 14:26:06 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Alper Nebi Yasak , Simon Glass Subject: [PATCH v6 20/21] binman: Add xz bintool Date: Fri, 19 Aug 2022 16:25:37 +0200 Message-Id: <20220819142538.24847-21-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220819142538.24847-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20220819142538.24847-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: AS4PR10CA0015.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::11) To PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3f9f329a-be8b-40ed-0e7f-08da81eec09a X-MS-TrafficTypeDiagnostic: PR3PR08MB5739:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: i+wemZt/7Wmfe1ps1S36qgeYbG2FTQttnPyTdFcFAD1mrDxWaG4cfsb/3YQnJnwJfBofg3h9WDCPRG8ZOIQjD4A7oc13gUGuLgWePFfbZH8NAz5t0YNogrpIhYad3f5IQgfc+jVlMVakKGttsGjrF5k9lQZpY9dlV8jyMw3sCeNKcxxmyk59AOid3C3CVhfDrrib+WsdTcJL341t1aP3x0c0s1GDib2yoVtm6DVQLLLt0QNeJrBRUlOEQOyxmgcVOrFgDidAuagyXxzJhFyXoL+RGfgEkcWDVmojR9v034h8mOAQOHyjbAVuITqSxzVdSaeKIJ3Q2CPPgZB/DRe+NELMa94h34K1ldXK5Bs/xx+wCnUCrZHM243ju5KJ2vZ89RrrN1yWSLDkKH+7ab1O5r0qmhdQJBe8x6ADS+Js78mMi4y4X4nkPgdjOoIIx49OTPL0JFQQNaBe3uF6fvDdbLLceRlxOZzN/xi06Wx9Achz+E83RrcA8OGDz4wA/WcgQUUC/YlE/5ZX8ZsnMiukzkun1W/+G5idP8Jh1jYhNMe56K99kIkZJbLZfh6VSiNnEeiDCro/h8Su5giwyZ6L1ck0b4AB6CKp6gTRsB1kK1WrOaUOioxhYgQ9Km4+pbWNIrlXJtXhIWYFSiOf4Xb4I1FHpGUvqR0UuzWFWB0brRH+IgOqWo/GDBH7RLwTaS9NPXWTgv0htH4YtgoRSvtSFst+9y/0C/QRvqOH7IZ0uW4hxPKftDYrvHjB6ZRFEvE5l+H47JYMHuNqYHjP35q8vw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB6969.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(376002)(136003)(346002)(39860400002)(4326008)(8676002)(66476007)(66946007)(66556008)(54906003)(316002)(6916009)(36756003)(5660300002)(8936002)(2906002)(478600001)(6486002)(41300700001)(6506007)(6666004)(6512007)(26005)(52116002)(2616005)(86362001)(1076003)(38350700002)(38100700002)(83380400001)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?JMwK0s9KbhipeZSrB7PMzmFc4kqv?= =?utf-8?q?iobonxG3tmoAPyn3lE4AB7dNTq2t4+r70BGVo9W0ieCitSR4VvxKF2lbZwcvS56dG?= =?utf-8?q?/5/I7UD/eEa1HgtoUYWEdY5XWQNOC0kvTLqnwK0dPDcgBpy+OD9YP2QCOXqM5YlS4?= =?utf-8?q?IJwee6EsLGRmUS4EH6HPMej2gt/nPNcb0h5DC6pWc8uE0n8A/NY/DWGPIzmGwhclY?= =?utf-8?q?W82pihkw8YalgmZAX3I8FjxQT1ljTad1+j1fuwkmG17JAa7uD+eccMrXJi0EDhRuW?= =?utf-8?q?1AfWWLkGgEX6d9klmKlp6zjRkWi2PAvz8gGF1HL2pCPyklvNwBNO2czlEzr0Rp8Tn?= =?utf-8?q?63DQXpfJl9xq9I4K98RAHLyBl3UqC8q19TfZEJvxk5rCT6og7LZWpGWSVfKstb/fh?= =?utf-8?q?sl7gpF08ZBPTvWap97jktlT0ZvMLhNy0aEd4ip/oidEqoj2ccSdh4pMxtlc4LH3aO?= =?utf-8?q?nqzb3+M3O9z1eEIk/eqWo3imXoTTrV6cVQMJegEx5X5r6HYgr3hafwjjh69oSJ+Oo?= =?utf-8?q?LbWFhc3oLdutLfILrgjsuBxiH8WPjtUh0GnNDGqiyGG+z40y9R8jSONfNFqJJ44z1?= =?utf-8?q?1rbGFKD/mLpdbth9PfDEWdXF0GeRrIwE8woF4YYovYTsPe/0+JSgCLh7TUTwZn4/h?= =?utf-8?q?Nj8Q8ANi74Q6epJ2ZpIVe/8+oaknHu7g4wuWJm8YIG/OfGRT7UrW+CfeD3SAirZda?= =?utf-8?q?7mLZaoIdbBgw1uncNkjeF9cDEEIva7FKkwUDvUTq0jJpQrLDbkMc7/nBTyuo6aE6b?= =?utf-8?q?5uK5TWBOufr5kgsCYjQ7fOsY5d0eRWcnZjbQbivYJXxwA2DWOUAISX78Q6Nb5fGsO?= =?utf-8?q?FXSHOY8v/hXfK1/mWe0frZjMY9IZVP+vi/HNhOOjf1DrAXhoT8vhqcHr4WGcdVef6?= =?utf-8?q?D8osMSXScMAEaWYHUYiL5Eo3uJTlicIa2hujypVc2MqjPtv1fTBKKQIbHVMUGWVBg?= =?utf-8?q?RHj/bhiNkuxt5+iGTfdSOD2B1zqV12EQ7QPmNcYgmXbCS97O5Oa8Vm0bWUcxk2dQn?= =?utf-8?q?VSk5Bx/Vjk6fWfediPIMYK1KUW24SJ4F6frtd303+/ZCezcy1U5cD/VstUg2cnL3P?= =?utf-8?q?rCAW/LojdN9M86IRU7L803smlTh1DPnstPjoKwvaLzXET+vL+8GZLJc4Z1DrWZdn6?= =?utf-8?q?muN3lwJtFfwqOycqGl7bYSRpEKzqnZ8nBKORwFXGKe+ceBxcmnfhv643BMfC8G+Bz?= =?utf-8?q?GYg7UQYCC/IXfs/GLLaGzMYYUD8mFdxm8jKs+toYk5MsfnEdOkrUZvgXC1QkKCz72?= =?utf-8?q?YjbJ7bVyCJlykc11+FI+yiHFc2tLHyUUOjySAbifNgl18aZr4K9jNhxFKJuSNp7BH?= =?utf-8?q?UzvwANRrQO7r5o1hhhz/pgzV049F+xZ0Z5jm8Pr8Q28R6a9Mo4bFoN9aq6vB9E0b3?= =?utf-8?q?7usLRprnrCj+bx1AvZeWDutW7xGSYQrxIiNyD9wpfbrwVb1qdkvSDCHiLNqld9zCw?= =?utf-8?q?X60ft/UgIzTuNNdIVsUdMkYwrlzUntUFHgV1ajd2AQ52vOWB2v4NmLb0QGXoSJ15I?= =?utf-8?q?LnppI98NJsHHgFXZpHB5SBEWiKjWTLYLlw=3D=3D?= X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f9f329a-be8b-40ed-0e7f-08da81eec09a X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2022 14:26:06.1273 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bkAHvJebR17+mhPXoYG7fMIfD+tFSaz6vBVrqWohn64ggQ04z+JA0mvFBwILlecj03QP55sQxeaDwZJoxrL/tQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5739 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean From: Stefan Herbrechtsmeier Add xz bintool to binman to support on-the-fly compression. Signed-off-by: Stefan Herbrechtsmeier Reviewed-by: Simon Glass Reviewed-by: Simon Glass --- (no changes since v5) Changes in v5: - Add algorithm name to entry.py - Add tool name to ftest.py Changes in v2: - Add commit to add xz bintool tools/binman/btool/xz.py | 31 +++++++++++++++++++++++++++++++ tools/binman/entry.py | 2 +- tools/binman/ftest.py | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 tools/binman/btool/xz.py diff --git a/tools/binman/btool/xz.py b/tools/binman/btool/xz.py new file mode 100644 index 0000000000..e2b413d18b --- /dev/null +++ b/tools/binman/btool/xz.py @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: GPL-2.0+ +# Copyright (C) 2022 Weidmüller Interface GmbH & Co. KG +# Stefan Herbrechtsmeier +# +"""Bintool implementation for xz + +xz allows compression and decompression of files. + +Documentation is available via:: + + man xz +""" + +from binman import bintool + +# pylint: disable=C0103 +class Bintoolxz(bintool.BintoolPacker): + """Compression/decompression using the xz algorithm + + This bintool supports running `xz` to compress and decompress data, as + used by binman. + + It is also possible to fetch the tool, which uses `apt` to install it. + + Documentation is available via:: + + man xz + """ + def __init__(self, name): + super().__init__(name, fetch_package='xz-utils', + version_regex=r'xz \(XZ Utils\) ([0-9.]+)') diff --git a/tools/binman/entry.py b/tools/binman/entry.py index 0a410971d8..0796fbe0c1 100644 --- a/tools/binman/entry.py +++ b/tools/binman/entry.py @@ -1157,7 +1157,7 @@ features to produce new behaviours. """ algo = self.compress if algo != 'none': - algos = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo'] + algos = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo', 'xz'] if algo not in algos: raise ValueError("Unknown algorithm '%s'" % algo) names = {'lzma': 'lzma_alone', 'lzo': 'lzop'} diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 2cac505d8b..b337e2168c 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -107,7 +107,7 @@ BASE_DTB_PROPS = ['offset', 'size', 'image-pos'] REPACK_DTB_PROPS = ['orig-offset', 'orig-size'] # Supported compression bintools -COMP_BINTOOLS = ['bzip2', 'gzip', 'lz4', 'lzma_alone', 'lzop'] +COMP_BINTOOLS = ['bzip2', 'gzip', 'lz4', 'lzma_alone', 'lzop', 'xz'] class TestFunctional(unittest.TestCase): """Functional tests for binman