From patchwork Tue Aug 16 06:41:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1666695 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=0wXfcYx0; 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 4M6M8S62xpz1yft for ; Tue, 16 Aug 2022 16:44:56 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7A58A848D2; Tue, 16 Aug 2022 08:43:12 +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="0wXfcYx0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 28D778484F; Tue, 16 Aug 2022 08:42:39 +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 EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60046.outbound.protection.outlook.com [40.107.6.46]) (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 D10C98419D for ; Tue, 16 Aug 2022 08:42:29 +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=fdE563SvaxsuUQu4pPCuJOCEq1wMSY6E5G+vkPujHTyrP0H4SOftkiJINXwQqRFqyiX8GKCV5KS8svblykAVcn3Sp7kAY7BDvJ7ZfBjVjEdYBGVD8XS/1ErvJ4mOmWE/m8eDKFxqYGcvnC/gpJ+trojSjsrc0he212U79YEmncSehg8MB/MY9hQEF4J4Z3K0IMMW2NUGuXXpjJtK3Rh4MzcmV6d1fZH8axYdai5Oc1rTYWDy4pYeNOmNiDwC+2TIIbAADmZWSTRU6pX5zT1/kOEW6nMHGEWxfy5zPCnUXfXXYRl65nGZh/tDrujRwZqowkRVleeEO7oqInztV51+wQ== 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=5Ggd4FCuPhfzg/fi5XvJNMokzEPqyTZgAJSLP4JHGcU=; b=YNIGxPB9AdBEcM8fVOgZIPIpYx8yh4oopnugO0D2gDNjM14VQPhvacOOYQ2IOJRqBBEgBfyyM+PFZamBKssM6tkVo5mo05Q0bB3d+e/IEw9ORdox3Ln2Ofuh+qc1p+Iyi20luTyacr1/9zXPiDdl3vGBT50jEB9+WvNJnyfncs3+JuiBQHMAMwg6dcLFbOEem0hWbaWM3OZdmwAqPwKsd0WTfVXJVvtUywxJkrsjWW0CzkgY5/biYAU+Fbb7nioLdB9fneIsXNRVQOud6lNiY2SqeoL58P8863BXKJ4IDmGmRavNGGImomuxD3PHB5LQvUrCaS/fTIIUaKgMvh3OGg== 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=5Ggd4FCuPhfzg/fi5XvJNMokzEPqyTZgAJSLP4JHGcU=; b=0wXfcYx0JxD3EBe9Fw8reSycRChLZviTQtwmvQLHO0eNSQRLDX+cQ6PUfhRxt5gMxqiJ2b6THcTPE9E0JRab0WOMdOk6M1Y9HFQCA2cj7NNQ6SnJMazJ+gAeOgS70948z9oD8tIh6qOx9F3XJvFOZPy6lrfGJO6ICWQBUlq5ums= 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 DU0PR08MB8662.eurprd08.prod.outlook.com (2603:10a6:10:402::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Tue, 16 Aug 2022 06:42:28 +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.5525.011; Tue, 16 Aug 2022 06:42:28 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Alper Nebi Yasak , Simon Glass Subject: [PATCH v3 10/13] binman: Add lzop bintool Date: Tue, 16 Aug 2022 08:41:48 +0200 Message-Id: <20220816064151.9848-10-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220816064151.9848-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20220816064151.9848-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: AS9PR06CA0744.eurprd06.prod.outlook.com (2603:10a6:20b:487::19) 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: 04ddec94-850a-4d20-b2b4-08da7f527cb1 X-MS-TrafficTypeDiagnostic: DU0PR08MB8662:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WnX5x1CdVtjTufmlgTQ4NvXQmyX/UvsyUcbQy6fZfKMQn1rtZPZoMSjod2+SCWn9YeKy/5joGYa/Nu6SeHCvwYUMYRANs+z5z8fyPHmdczN2YT/lKp/q4duo2hR3EidS5f8QyB1BOlV9w2D71j9LjJogdhfuW0oIMcCE5mhCWAuC5W4jejQhw8OGAtsPKqgZqlnRaAzTNcWZk4FiGKF4jZHeGnpaJtN8cQqJVZhycDmU2ScLO0ru5T1GQfzON1nNU1C/CAr3X0SePIDJ5xr5AxX3twhG9pc0wNtzCW3EhsWH4JKo0SJJpBRjY0ZDzCj5P1ROJYy5vqfjnU4ww7Kl8nML/+5RG1b3SYkCiRCBMeXpVC0KpJORQvwA5uDRQbVL6TbVRkfAnNUff+V5n2XtbcwLzadure5QHPsiz3du2hT/PnKMJZPvdTTkLcRmfhvUagRE+lx1zTbb5QM0lDgNudwdn266d9wR4mdZNc7gR8ywx1gCgECGpWxgUarqDPlbRb27jYPIoAAsNQA8+ymzhWGfpkib7wSMgduEWmIGm1El+Rxhx/KTuuKrollJVwvbsO5/cFct0usDgbAO6ZY9fhnVxuCDlHNPL3J6J4lAv4LlOMjomeCfzfJ7D35RYsRlocgLbE7CIBKT38WMtRpnxUaHZtaD/L0ZINJWTuLqG+TnfbIdu3qrXNOEZWJr+ZPuwmpJUOyzxM3Lg/Jrqq2XE/KwEbs+fnQXT6QcbXIt94mgepA1COmXeFwH/NEQgV5vKbvnpmwAzPLsV8ZfQPpVg0UHs4x4+ioKpviAj7oa9Xg9ORT76TVUuicMiA8TcIXf 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)(346002)(376002)(39860400002)(136003)(396003)(366004)(316002)(6666004)(41300700001)(52116002)(6506007)(6916009)(54906003)(86362001)(478600001)(6486002)(38100700002)(38350700002)(83380400001)(2616005)(186003)(1076003)(26005)(6512007)(66476007)(66556008)(4326008)(8676002)(66946007)(36756003)(2906002)(8936002)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?RejVCCqjyhF9V07vrhw/55nI3DU+?= =?utf-8?q?Unah5koKLv7BJ2jtxEf6By4kWDvj41eODzBcHq0PKT1W+UGjLV4cbws4OehiPL0NO?= =?utf-8?q?n7sQZfLw4I8pSXKzA23or+MS2bEuHS00oSeD2gSWac9tA7c7pcVW8/u387Da+jkSx?= =?utf-8?q?wq63X6HP9eXSs7Jve5BNyOOEiz6TRk31H3U+mgeveZMETxRDF3394IYOhDcnqeZbJ?= =?utf-8?q?z+gvFgyiNA+IYU07wB7w1/cpVA+X8hZBbdLHPYt1k/NYuf801ytcZ2ScoEoduc763?= =?utf-8?q?pQxpYTO7zhGCPI54S6j4hPpTgcwpNbMcYNZhVxPhC36GeuAQi18HWIDhp43HLI4e8?= =?utf-8?q?uckJW3XB9A2KCwtIsOhREd1nu4gVu+0ZF0cl8fIb4bCtQ/3wLZrUsYuzJf59CZb3y?= =?utf-8?q?+cSV309ryTepT+sBLzw9y4O0fcdKiE8QQZYCrAPPQPIwyipDDpNx48OWWZvD/D2i5?= =?utf-8?q?8mtkVh6rBlTd6eTVdmF/FwVam0IEd9dDWhyB5twC9W91+n7e3QpFvOeEowhtDOPac?= =?utf-8?q?YepRYAkjRnHnPyUfmnQi+PzellsytV3/gv67jjKaQZ3opSARdJEZqpln38nUNMmWT?= =?utf-8?q?nv5dusuGQV6uHSPnYVSXgspm1TMgpvu29SWjobspRku0I2JAIJ9g+RQSBcZ7M961f?= =?utf-8?q?Wrs8FccW35SnHg4LecoVpEOqbOjXw2qhedZBKLY+fyGW/KEJNmPrbUDkyuui50jsL?= =?utf-8?q?ZvZvpIxpN3SrsnysNLggcNzMTKTOY6Zgbq6AYh8Rr0+lT6RJnQHJCt4Z01wFceDpn?= =?utf-8?q?BqmLjowYzW/xM8C8QktNSgHOVJaW8hu3kBRMHt4QDgAhl3XNYqKg4QmVD+oQWQOyY?= =?utf-8?q?UQjy4YsfokmgW2sNj8U7asRf+SlQwy9W8i/fTbpISlptIlKrikakAgAPwjDTnfkJp?= =?utf-8?q?26Qi5baaY12QpK65VR4HZ8EXERxQyAPTLthZeRmbA+eJsRwrDKe8sIDCOQYhh6d2Q?= =?utf-8?q?4PC2HoA3ft+47QktyUwrHqUZ0Y/L+6Yqzp0k5mMnwNYUzGPJTjtj7PP73XMCx7DGQ?= =?utf-8?q?7UYif8qqRjnpO8Qmbzj+85RLh0hbwRtcDBspzoR2GtxFtl7sLvf4TgIm6xyu6UUi9?= =?utf-8?q?Ug9b0wN+qLYgbbwyFWBqjgRj0PPSL7DM0JsbOzOPKa/XtzdjoGeSJ3MQw1m0BooL3?= =?utf-8?q?+d9xLCCAvUY8fQjt4rzCtTxvn0ddkaHi7IaMT7EFCXVztttUx/HO1Kydl3581MlHq?= =?utf-8?q?Lh1G6UPgxpn2VOKZ5y4F+OZJGZBNeTJGFm5CFGxe99iDCYOXv7e60FCAySidzJ8d2?= =?utf-8?q?G263WMqPXpgrtpwjsi7qk5pwbwdQenzr9N7AHhuaPzqnk+s9iWJHbwOuBp9ie3c78?= =?utf-8?q?4RD5dsvvhef2TGRbVOIbjVBY/A660LIDg5TOKO9uL1cjAzcFj7rdqcHUwo82QGOIG?= =?utf-8?q?H2dPdi5t+uWsk06cGKqIJTgYxu8g8mi7WAH2OsAK1LSxmPwHdbJ04yImiHBlK+0gi?= =?utf-8?q?G+4y4Nih8IjfgEpx9Kqa+6CkZ2A3eX5ovuJ3kO+LXt0BA/ph6GbVnUnUKhg8LSm1J?= =?utf-8?q?QqM34xFJb25S+Zruu6++V38/+6ZjjePqgg=3D=3D?= X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04ddec94-850a-4d20-b2b4-08da7f527cb1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2022 06:42:28.3818 (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: fV8ZrD2YIm9Q9Do6fbxExi+Hah+PfQEj01lUWcMfG0hKi1Ux8BpHMyjU2uMsOFZoiHzrk6bpLd+J23K4Ba19Zg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8662 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 lzop bintool to binman to support on-the-fly compression. Signed-off-by: Stefan Herbrechtsmeier --- Changes in v3: - Rebase Changes in v2: - Added tools/binman/btool/lzop.py | 30 ++++++++++++++++++++++++++++++ tools/binman/comp_util.py | 6 ++++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 tools/binman/btool/lzop.py diff --git a/tools/binman/btool/lzop.py b/tools/binman/btool/lzop.py new file mode 100644 index 0000000000..f6903b4db7 --- /dev/null +++ b/tools/binman/btool/lzop.py @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: GPL-2.0+ +# Copyright (C) 2022 Weidmüller Interface GmbH & Co. KG +# Stefan Herbrechtsmeier +# +"""Bintool implementation for lzop + +lzop allows compression and decompression of files. + +Documentation is available via:: + + man lzop +""" + +from binman import bintool + +# pylint: disable=C0103 +class Bintoollzop(bintool.BintoolPacker): + """Compression/decompression using the lzop algorithm + + This bintool supports running `lzop` 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 lzop + """ + def __init__(self, name): + super().__init__(name, 'lzo', compress_args=[]) diff --git a/tools/binman/comp_util.py b/tools/binman/comp_util.py index 19627e490c..d8fdd5c7a2 100644 --- a/tools/binman/comp_util.py +++ b/tools/binman/comp_util.py @@ -11,6 +11,7 @@ This supports the following compression algorithm: gzip lz4 lzma + lzo Note that for lzma this uses an old version of the algorithm, not that provided by xz. @@ -20,6 +21,7 @@ This requires the following tools: gzip lz4 lzma_alone + lzop It also requires an output directory to be previously set up, by calling PrepareOutputDir(). @@ -31,7 +33,7 @@ from binman import bintool from patman import tools # Supported compression algorithms -ALGORITHMS = ['bzip2', 'gzip', 'lz4', 'lzma'] +ALGORITHMS = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo'] bintools = {} @@ -44,7 +46,7 @@ def _get_tool_name(algo): Returns: str: Tool name """ - names = {'lzma': 'lzma_alone'} + names = {'lzma': 'lzma_alone', 'lzo': 'lzop'} return names.get(algo, algo) def _get_tool(algo):