From patchwork Fri Aug 19 14:00:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1668138 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=2a01:238:438b:c500:173d:9f52:ddab:ee01; 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=zc1vY+Dk; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (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 4M8Nmh1Fxbz1ygd for ; Sat, 20 Aug 2022 00:04:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C781D84BC7; Fri, 19 Aug 2022 16:02:09 +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="zc1vY+Dk"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4840984B6C; Fri, 19 Aug 2022 16:01: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-eopbgr150080.outbound.protection.outlook.com [40.107.15.80]) (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 A28E384B72 for ; Fri, 19 Aug 2022 16:01:05 +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=EBSp/aFkDaknCwRMtROFgGvrtvefRwrnoVW/2db/aimGPjE0ADokDXeq94/bQXKLzGazi4BRD7L07KTxN5HkrhtzEe4xeQbwwFzZeQKkPjQFmoFGuyMXl5iawmEMLQ1Ibvg1Aip52UFmX987KGJ7SlXEv06KEgJF5zVIu3I52nGgXwjBRckn/liX9ZSj7ubINSTmmvq1nk2Dz0+DX3e2ZE20Ny53xjKm0R/8q6psr9/oj9ibocj6LgYJN/IurN5XPcq1rIT/F4iAqE3rog1yXD7hD6V9IXmSiS0yZepbAwJgDP3ickaxooZ8+skMTfafP7hbhdRk02cWtw5wmo5JUA== 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=BjHSWx/AM0InonaSwRcdXQBPC4/UHDhcYy21rsVNqRA=; b=JDjWiIwpo8+MPjpeN+fy6YjScl/2o3O5Ej1aMmqf6c+tx9ny1yCm3CGHqUkFL+/E82gkrVL/uQzf8sS0+YSW6ePUA0QVL4mpRDt3UMLIFzQbBtu2noCOGw1xo621KFVOMruPZkW9ZGcCSm/QYGTIukcwbTRfHFZ/evUFAk7ZSOEPJHhyp/Exc2rovIXwl3WOjKfg5ymKL1NmBa7PakHxpt8J/XjRsbgkl9ErHGWJyWe+04jS/djgDRp4wDjyvqK0yjWs2asISCyHHDrA3efPzMm11pV2VdsmLBMeXQEP81OsVQqhR22NR46aKhqzCX8/GUgBgKJdjpMBP+BsauSEuA== 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=BjHSWx/AM0InonaSwRcdXQBPC4/UHDhcYy21rsVNqRA=; b=zc1vY+Dkn9bpFrUBpM6YI0kmhFEC6utq5EOBumo4YZXU91Jn7v5P2NRn20gce+oljnbhuzy1dKigw5Q99y5VjaFZjQDiT6m9+1EDGZ0+B6xCwJbS54Iyzk64kTkFN1AeOUUL7s2fjN6Y4NQzNgu0bZANdhMwl9dFYts+m/BhEjw= 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 DB9PR08MB6427.eurprd08.prod.outlook.com (2603:10a6:10:25a::14) 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:01:04 +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:01:03 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Alper Nebi Yasak , Simon Glass Subject: [PATCH v5 20/21] binman: Add xz bintool Date: Fri, 19 Aug 2022 16:00:34 +0200 Message-Id: <20220819140035.32760-21-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220819140035.32760-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20220819140035.32760-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: AS4P251CA0011.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d2::7) 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: 82969923-988a-4017-b6e8-08da81eb4117 X-MS-TrafficTypeDiagnostic: DB9PR08MB6427:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GLZ7KeOkEqQFcbHbjMfvbNxQENnXJCfw6fhu3ZSAEt1mgrKZ9k+ZmgjW24bO+dQJA51+pHoan5/np/Sodo7/e/WabpEXvTQeN8nW8E9jnlKFZpn513XwUZHokTn3kAhvx1YBTp/jTUVlfSqZKALXw3QHbIjFVHuLysWYu3IfNkDt7D35T3hEYjUPDCJkcMeVfPB/vcavP6+F9zF1+a7nXtAXIX5tbpxtauw90utcDoURshNmg9M7bNK8qBv+ydzhwu1RpRRw5pGQafYGzl7qhWlw/kwK3knrA6FWw2fQ/YBuqSQA8eSDsO5Bks9c4u+TqY3XM1zO77AfIMDONrGAvDBaF7u0jq3hxHHh+HDOrjd9NC8tNAxbXCE3YEUgXodlLuO70JZ9GDG/fLnCXmkgQmjfirGX5sWyMGEbtaNYTRCEqg4K2pgLbYI6bSpRiYsBaYAE6XKlH27m90xb/kpl9xDi5Wr6mzWzpIHTpbYtZRfJhgl6dTyZD/POFd2M6/E2ze7uoTbVzon6n61CzEey2QqyWgwaVU8x8HYU01rpb66Q1x0Q5rjVCSpHafTbS43kBPjesbK7zJ/x94JJLLRet83EHhWw6AE+15PccKE+pslSs5L6/coPwTDUHo1aN93H6r3GkoD06mVyeqJlKAiHmuUA5ryZ6uCSSWpw6rTqvfE+s93qIjKBioh1GfehqZKpUD/0c6/SZNL5ui992viBaQgz1koVFB7fYdWSFz8AWDAXVljjfFREqAUGJ3oD0JlSA0wDtvM+aQkftHW+BDDBbg== 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)(376002)(366004)(396003)(136003)(346002)(39860400002)(83380400001)(478600001)(38100700002)(38350700002)(54906003)(6916009)(41300700001)(6486002)(316002)(8936002)(5660300002)(1076003)(2616005)(186003)(52116002)(2906002)(6506007)(6666004)(6512007)(26005)(8676002)(4326008)(66476007)(66556008)(86362001)(66946007)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?TLpuiWp9OHdr+nhoKA9TgTyNVX7x?= =?utf-8?q?iZCSvMFs9r7bgm/BdZsaTOXD6R3vkGD2BtZyxk0JUV/qVa0gwm9jLj7CRsf8bcPVh?= =?utf-8?q?2ttic7XUDZQL8riD5D+1BprtO0HWtBY6Ms+xDrF534u4u3xgeltVIjyKYbTl6txUn?= =?utf-8?q?D0fISn6LOOyC3ARdHqf2clvBmPglxtHT1Nvh1wx+5vR76i+gDldZSTW0WH6Y6dJFa?= =?utf-8?q?Z468hZkKXnhUjtzYfxf/jhK8jH6ULbrf3bnK45TzSiaYYqpPHXSfJyd52Hmo0UxH6?= =?utf-8?q?n8PpsywR7c/VgIFzXix728Hh12pijAnbMUJDf9Sqzpz3qB/yYiSr6Ny4Ih3t6XlGj?= =?utf-8?q?RZYNI5wFbP4qn7lCG8WMbPc0uyLNeYvSFFzwhiYsGSv8uemHlePtKDwk+xUjEx+Xf?= =?utf-8?q?KAwgXydO4qmRLEvCG0Lr6O7vXVO3hFISxcr48pBR65BwOv2oLnMR31SKNhyvmpoXe?= =?utf-8?q?tMD9lB/o1vP09vTjtsC/KY4Wt+gCO7agtQFoRZzfIMiRvSqLEuqkN5YqoSc+/xeqt?= =?utf-8?q?FtRnLtoe950wqOUrD8zimV+89IV/E9+IfvVmMK2L/vOScyJqFcYW1gC3FUc7NMf4e?= =?utf-8?q?16BvqpVsb/IHHkguQFVAGm9bkrnHSF1UnYvYH44lDdi5jdJWiQAPi6nrW5HiUiMku?= =?utf-8?q?4yR1j2ghmI9LVH5qvjw4zWO55LxvMmZRqr7YT2PLU+YKhLiVAhcF90UqXY4Jfsl09?= =?utf-8?q?cdORQTV+1hKKjcs/a08ADX1mVK9Nw9SL6fxmHVvctB2AsQEYlkmElIMz7kPZwLEXH?= =?utf-8?q?EQVDIYdGKwSpyCEg4iO4aDcRzrfgYiJmwrM81SUv/lNbwcA+Eaoj6I+DQb0MvX4PB?= =?utf-8?q?8Lo6r2B174PLDN+Q1P49Xpq2oI9IQx1VjvXHLtOEwr0OsMr0Bv3OX+Js6k0ueRlGg?= =?utf-8?q?d57Je94HzXHJpnDicILqKrhzbcr3m7YymuXym7Ti4Ug7prs+YHx2Y+eR84Pg8EX0U?= =?utf-8?q?g2EpXpQGSYRaE8+DBGK89/l24E4N6Y61dpWjdtO1Pam5D4YKJteG4Kyew37lQjFrf?= =?utf-8?q?bRe39kzO54sMVfgrIV4W3mGBTOkz5GlGhlU9rVcN3wQP8qvb+CZmjPi7TP3Sa/JNe?= =?utf-8?q?Pe+3K2by8Vpq/K255TYOxiTpNnS9ZdZ4auDAbd0iI6BT/cJnjOBSHjJd2uPYUVyoF?= =?utf-8?q?vKh9K3ByOSlbNzr8u7lsD22s2zZnVZdoEnFfIECiM/kYRnnz7YrUnzGgg1cKIxrGJ?= =?utf-8?q?zhvRCPenyrN4etxyOU6nBG5ofUf8HcuoTVf962pVyodKneY/cZ51vb+VX94vhylSH?= =?utf-8?q?M3qgD3k2zBZsQ5g49nEAImrvL2hQrgzcDa97pEUuZaR/giLWvwCVhFRtX7BFDWBow?= =?utf-8?q?KcpVB3I9OQSxM1IApEjV1IsQLnsTwe75FGo2RbQu5uBFw28kMsttWOMkSdpgeoOFV?= =?utf-8?q?TwbTRBvqvPrh1dothQFT5YTOLy/x7ZoLxd3IeogSDazZaQ8gm6jwJ4HKA2kR3/ehv?= =?utf-8?q?mx04fBZJ5Ri0gUhchlVV2L4YuNofrLMaUlmFTirrBWeGqk6/KDeLOnxyT2k4GmGbe?= =?utf-8?q?OF36tenAHPZtTmhZmR3CDtxHVcAfwW0DbA=3D=3D?= X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82969923-988a-4017-b6e8-08da81eb4117 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:01:03.6810 (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: sjIHbwPVAZ6ds0yaJtMe5IwHFopEg7HPoRmN64OafBGFbhifSq/OSoJ7Hwzd9g+vxuUq/yA6JfE346yhGlMPcg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6427 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 --- 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 ae3e94a167..0d4990cf5d 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