From patchwork Mon Aug 8 10:51:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1664527 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.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=ZaecCLiD; dkim-atps=neutral Authentication-Results: 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=) 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 RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4M1Y2p6RcJz9s2R for ; Mon, 8 Aug 2022 20:53:22 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2ECF58487B; Mon, 8 Aug 2022 12:52:14 +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="ZaecCLiD"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B2BBE84164; Mon, 8 Aug 2022 12:51:59 +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-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80052.outbound.protection.outlook.com [40.107.8.52]) (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 912F384194 for ; Mon, 8 Aug 2022 12:51:53 +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=G6OuoqPGPbtW8cZWQNMsE6oCMLqzyduEZ3SjjtfP9/tYGHCxkrFiqoVq2AcL9vLPFF7TH1SufqkSgfBqQVU5hZ6hob3GV8p6ywssQr3SGoWSS2YcmXftPSM3OTMCdyirbAJKhNtz46D6b5umFCTtvBlr2vg2AU+iLtPwneXxU18m2JvH/nilAwk0TyAikdLgHMspbOfKx6Ib7E83XkHIdpJKRNAbRuU3y5oDXChee6qttt3/ahX7QGuSdlM5svHHAFan0jwRIZ6m4Jmq/TAhRLN5T2qQbrEiNeCtdMGC99PcFXp/yTa1wFdf7wFfsfG4bi/pne9OwmIBzHDVh5kn0A== 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=DwTWLAfcdIrvigIdzlSZd+IOnkWqC9h7uUG6ZCYt1o8=; b=Hzzh7/USt5Z6+uJ4oQXWYSJOGiPSOGiYhwfEAZa4ThkZAZx57IdbI4DeLBH8ywAlTl2+gdI8iPpVsO/gTWK1/SddejLLogyU95r3D/LKF2LCrP9MC5zv43/MjQnz48USFb5rBP3pY5c0urWWEVBPYpkYDHdyPDOWln82VRp59+sL2ame9H0kz6BN9GhuT1kSGB46YXxFuQ6Xk8MLBppEfew9pexqUDBEYjpLTtXGiQN2F3dtmmFTNOOGU43n4Wg6OVdPHTIpR6blzsTFg9VAHLO13BEM0q0CNDZ6uRjDWkXhf9recTngF46j8husJbWEFzctlm1i0+bvGe8iTG8KoA== 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=DwTWLAfcdIrvigIdzlSZd+IOnkWqC9h7uUG6ZCYt1o8=; b=ZaecCLiDfdoRzTJ3us8jI5fh0n5pxtn7fTZl8q1RY/lskXY+PW3cT5whnAukEIn0T6ycnmLFASsHogmJ2eo8IPlguCwATTadwkOHaBH6BWouKSIFe1GNlnEkauhp1UBnMkOhFRwbjopH8FmG7ftVlcBHWWhLcQAaIz8UuKEqs58= 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 DB6PR0802MB2487.eurprd08.prod.outlook.com (2603:10a6:4:9e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.15; Mon, 8 Aug 2022 10:51:52 +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.5504.020; Mon, 8 Aug 2022 10:51:52 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Alper Nebi Yasak , Simon Glass Subject: [PATCH v2 08/10] binman: Add lzop bintool Date: Mon, 8 Aug 2022 12:51:23 +0200 Message-Id: <20220808105125.21356-8-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220808105125.21356-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20220808105125.21356-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: FR0P281CA0058.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::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: 9ce1a5e9-0933-4aa4-fab1-08da792c00c7 X-MS-TrafficTypeDiagnostic: DB6PR0802MB2487:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2VpHp0NOzGc81L7TGS73KNTKWRUt7Sc3rhzpAs5qcJWyt4cV6rpXASAHddbO30vLna45utEJTwWsmM88TAjN9HnIZN0W8bMav/jw+DvQynhSytOzz+Im7xbNZRx9lwcY9Eq5yIVDXNloA+CFFXun5Y5e16d81bDEPsywkcjdjmDA3KAUNvLwNLShbQA42MMuictL6kyZNF1MgfWD3AyMY/gLEKkm39zqhQ/xh+5Laqs2oZDpiUpiFUkfvGAds8s49NLbfShXJvhLedym/V/WXuzxG5Mm5rtu5PVixcOzjhqDpqLCQREXjjRMLKziktp7CiOYEqQG6/WRyDhPc6PQC8UAaIOmJBsYPz781wdn7NlsBRJFIp5/rFX23CmRaRJCjR3jYiqhK1KWgX8A8rh6MQ90YDVNZuMfp4EZlWyWuh/zNUQPr451oC5ejxYyqXi97vkV0WUz5ow6qXGJ+CbJmzqtHfR0k4DRyxw1n0XaTY/D7iytkGFUCRNgLiZUW1QmUHKwGSugAf2gY9pCJWVkjH2RI8n/MgUcw/znWizsPJO1XrXoy1ebSK+9C9W/kJJlOa65izf/wQpb/1UgX8jeytcXNjSFu4vYrodArJV5b9PQ+LtEgI1dWfoDw6z6pIGDHs+Re3vlItdzYXu/yDQxNFpLwMuI6cqBeBTze4/D+xvX/k7j5JPlAB4U9elbg4X1m1Brvk3NqqEERNch/JVzso0ElA45PW8pszSyIyAgZBrwpIyMgZt/2FWj4FA8L4q9QfVnWAKLPZhdV7bUR5r7/UIt7LBcojk3FeCTWoDOE70= 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)(346002)(136003)(366004)(39860400002)(396003)(6666004)(2906002)(6512007)(26005)(41300700001)(52116002)(6506007)(83380400001)(38100700002)(38350700002)(2616005)(186003)(1076003)(478600001)(36756003)(4326008)(8676002)(66476007)(66556008)(8936002)(86362001)(6486002)(66946007)(6916009)(316002)(54906003)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?jsDZeuTURZ5G8tdPK4QZK4FOZiCX?= =?utf-8?q?swyFdKH1Wcn2YvXfYgyFfePeyjKSGoVvjSMwNAdo9SerO4t4cDSD/GrvbBHgtVwef?= =?utf-8?q?HE94WQJenJ2ScB7sOWCzB2zhWxJyoPOKyBZOt7c7p5dKs3WAcjyhrHa/Qdc5J4gh6?= =?utf-8?q?Aysydl8XeqzyBlCxOaOrhRqivvHf9Gja8uVHvbAo3em4ANXF39/Cdlsj7i/3nVECY?= =?utf-8?q?bNlYWXNLqBUBpw9wrNL8r1rSg3hrifHjIpVv9n5NG5O8VeaNaB6z3YOitbVTRtjlY?= =?utf-8?q?LZL06lpz05XJ7Y36H0isy0YIy/V1gzcmnSV3OEAsRIrtNv6HCTwLhVHkowPbKj/fo?= =?utf-8?q?b96JwzPr2eqvU3i5FzgPc4Y/zBYZap1UODC05ycIQeAq36lwl+A4We8l1oo2xHZo6?= =?utf-8?q?euZdnjzyHsa0hJGjHCYwpJ6MU8cjzcD4Wh6lNGDqHb7UqyM+z5k6su+i5Wsln0TJq?= =?utf-8?q?/HrYXoGTphbrn/uBRyweYA8MxntNmAeAGBIBPtZmiZq0frwxufz3xhAKj6+gFju74?= =?utf-8?q?2ItNdaRlpzUL3Y4HJ5Aie7wed7b/ms1PNMCJAX/FpNxOnG4gfgsoW08tVYz7rU2FE?= =?utf-8?q?F3dBN1ZwyeUy6X+pvBxzjpeE0sJth+ScIlIbUW4Bfzx464ZANoNuWi30Tsi/BVszR?= =?utf-8?q?6BnJNuPr1wwYnXze55m9MjHNu4V1+lVZCTz7lGkhbGMLqlDSd/DxLksvxlEI7/rzR?= =?utf-8?q?eejQFfCYiiriJO/960T7U+ZBlngCX71dOu1Y/qpaIVmOgY14opyB7IRdWnzERuDdN?= =?utf-8?q?nnkefMezIE8Ohq7J7s7zOTNQIgZq+F6NPON3tT4ohxAgIQk70qOoTZwCOYiZWJPVZ?= =?utf-8?q?0kWeL4e0GWj6OW1dF4XzteroDXeONYLAmQ+tdEjl1RKJBkcYhNqy0mO21h06gBJuA?= =?utf-8?q?deJEwPMep2JkcFzvfkQyGtOIa26nlipFnLIfFbVGbGDe1N2urO6OX7C7a+CrefzSz?= =?utf-8?q?BqF/KW4d9Rd8f7E382Gh02uQ1/vL8+IPpC8P3b11E+E9WAx+OJRRBqMittNEsD6j5?= =?utf-8?q?nRjVOlxq4HPOhX+S1VNTBtDSne05RFySaTx5MqYlj3hgkrckHQOfEqXvsdDS3kF6g?= =?utf-8?q?zHxlRD1GadkkmjSRQDrprJmuWgy8xpNKr8HImHYjq/lW26G3q/ZBR0StbfJdZXutq?= =?utf-8?q?Uu8PQwp9g28h552w2ZJ1C7482DCIUmBrZBfKlcYTqlj/IM0AxKJpfW9gUdQ7LtPOl?= =?utf-8?q?znIyRDOE7vqE3hjlUgH6tTXRpJtih4Vzu+1yso+ZQtySQ2kdpoOGsTik8bC5MfzEn?= =?utf-8?q?I0NPWZHxnq7raOd4knctwWzRDenXo27TE7Tnm8V1edNKc5V+RhnfSitIVW+reCHap?= =?utf-8?q?eANb3YRCUCB9mR2jfAYJylDfv0dMii9NdaUQJSdGwHbZKW1jH0bo3gawrXNIPuE5V?= =?utf-8?q?GE+55V5GrEg+d1Zs3Fv2NF3VQB+AtMGjlpdj/S33kz5W+eN4ptwx8fsQQSPbxLzLw?= =?utf-8?q?I6q73h4gVFOZxs+DIXDoA6TAfbOvBih49QFjCXPIIf7Exq3kySFTScZhYO05xIOjY?= =?utf-8?q?ZQUWtZZ7pA/x8OKX+thecPTc+VXDILTnrQ=3D=3D?= X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ce1a5e9-0933-4aa4-fab1-08da792c00c7 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2022 10:51:52.5756 (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: u8mf0Sq8inoDFFWpaNql4Ude/eZ5xNC/ifWEApYbOFsucxDxT3J7jPe6iUG2nh5eFn2ie+D/ggGYIMUoKvpLUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2487 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 Reviewed-by: Simon Glass --- Changes in v2: - Added tools/binman/btool/lzop.py | 30 ++++++++++++++++++++++++++++++ tools/binman/comp_util.py | 18 ++++++++++-------- 2 files changed, 40 insertions(+), 8 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 4fbd80e2ff..e7cba23aa8 100644 --- a/tools/binman/comp_util.py +++ b/tools/binman/comp_util.py @@ -11,12 +11,12 @@ from binman import bintool from patman import tools # Supported compressions -COMPRESSIONS = ['bzip2', 'gzip', 'lz4', 'lzma'] +COMPRESSIONS = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo'] bintools = {} def _get_tool_name(algo): - names = {'lzma': 'lzma_alone'} + names = {'lzma': 'lzma_alone', 'lzo': 'lzop'} return names.get(algo, algo) def _get_tool(algo): @@ -34,13 +34,14 @@ def compress(indata, algo): Note that for lzma this uses an old version of the algorithm, not that provided by xz. - This requires 'bzip2', 'gzip', 'lz4' and 'lzma_alone' tools. It also - requires an output directory to be previously set up, by calling + This requires 'bzip2', 'gzip', 'lz4', 'lzma_alone' and 'lzop' tools. It + also requires an output directory to be previously set up, by calling PrepareOutputDir(). Args: indata (bytes): Input data to compress - algo (str): Algorithm to use ('none', 'bzip2', 'gzip', 'lz4' or 'lzma') + algo (str): Algorithm to use ('none', 'bzip2', 'gzip', 'lz4', 'lzma' or + 'lzo') Returns: bytes: Compressed data @@ -61,13 +62,14 @@ def decompress(indata, algo): Note that for lzma this uses an old version of the algorithm, not that provided by xz. - This requires 'bzip2', 'gzip', 'lz4' and 'lzma_alone' tools. It also - requires an output directory to be previously set up, by calling + This requires 'bzip2', 'gzip', 'lz4', 'lzma_alone' and 'lzop' tools. It + also requires an output directory to be previously set up, by calling PrepareOutputDir(). Args: indata (bytes): Input data to decompress - algo (str): Algorithm to use ('none', 'bzip2', 'gzip', 'lz4' or 'lzma') + algo (str): Algorithm to use ('none', 'bzip2', 'gzip', 'lz4', 'lzma' or + 'lzo') Returns: (bytes) Compressed data