From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7062963440528130048 X-Received: by 2002:a05:600c:1506:: with SMTP id b6mr834768wmg.30.1644474327413; Wed, 09 Feb 2022 22:25:27 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:adf:8bda:: with SMTP id w26ls1035608wra.1.gmail; Wed, 09 Feb 2022 22:25:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJzl3j37h3lGo+d9QEBfFAx0X14SC2cOpjUsU4dQOzlfUpQkqtrOxpPYIrXlQqg4ShVB5+jE X-Received: by 2002:a05:6000:120a:: with SMTP id e10mr4664510wrx.616.1644474326675; Wed, 09 Feb 2022 22:25:26 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1644474326; cv=pass; d=google.com; s=arc-20160816; b=sd2SvdeN0ENeZdtqNKCVg9UR4CklqnO6eEvGsO8MbTtvrfRu6L0lbvwO8uqnQiY64S iHlSTZUxYc3MVGZuoc/7AJ873AojA8ftgkGMDdNfJZoQzioFycsRvDBOgS6eM1BwC58G O72vFA6KWeAjQ/FrD3cyUsvJI570/UaSYgiRUnqp0rOLj3vvu3dieXDxIS9+6AMAN7Ob R/XB/IVpE7K5EuhyfYVuD6zUqT84dJg4FvyyJmR5wIqtDj2FUIwvglFf9sPmcRjQAOkb CU9r2WJcs8zYANE1xfnbbSwrkrF2L2+o68JjrV+t4eiOSC87deQemyI5+XHIT8vIvdxK VUeQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=m9QV+qJVoxuvmxNzjEgb09Gorniirq46lxM0jqZnWnc=; b=Cf10gwqtuZKT3Fjl2tZdI7A8IJPsekYjQBK7zgYLCEP8qDzBR7kogbyKzegaroq3km oJkHhb209PH+Kx7Wc5QPAcfrxuVt5TKE8jP0Yvx1Xec7OsfHcSJKfQyFQc+L27FIwRj0 RFH/ikBDh/N38uX67g37scSfLxZhKxjjhOo4Y56Kb0e3WhSMUAFUGunMJJhTF2WNpKlU 7Ns4GjhWJjBvdq4WtcIFFyR0FRqOqFLrQ8aF4ckbj1Hby/ncHRrEOaLe27Fi+1w6wagx TMJhMdJM+ZEfXHSZ0Mjb+3fa0NmYE/1oTeF+TPNIT7onOrb+S/p1cpu7D2fmgw9yT+6w rinA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=xfLKEUOX; arc=pass (i=1 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 2a01:111:f400:fe0c::629 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0629.outbound.protection.outlook.com. [2a01:111:f400:fe0c::629]) by gmr-mx.google.com with ESMTPS id e5si1023806wrj.8.2022.02.09.22.25.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 22:25:26 -0800 (PST) Received-SPF: pass (google.com: domain of adriaan.schmidt@siemens.com designates 2a01:111:f400:fe0c::629 as permitted sender) client-ip=2a01:111:f400:fe0c::629; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=xfLKEUOX; arc=pass (i=1 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 2a01:111:f400:fe0c::629 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jF3MryVDuPfIan3tks4/FSiANeVwvfEkz3rubZ1HlP2FIyVM3VEj8uJm5bSpaUjrpXj2pz4B8TDoVjeg2NS6j0pfHZD0cDDqYSd08TmTDyAiA9YDuwB7v642w4OcoIQZU6g64+H2vya3OF3o7AYSWTSPly0Zs/PiZIDSEQ2DWxNe3elsSw9MV+DuGPb8GbJImKj19YKKa/jK4LXu6N6nulvOLbmFWyi6IenJeS2qnWY643zmvqT+W1nZxqgh8VqUlL8ID1okCX09fBvHbq+A+zN4Vjqunl/3ZmJP0y5yE4QWKleX1LBaVfvfL4X0gql0rtPgyjwgaw8OX66V+030iA== 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=m9QV+qJVoxuvmxNzjEgb09Gorniirq46lxM0jqZnWnc=; b=UIp8avoSUGPxAWEHooVEFJCsHpcertuAdq8y3Nn0oRi5LvkxPzGlHqf2ntlFk/RwCx6DVWXEMwowG/Rrf+z4mc1CLXAO2hW2thcWskRkH+MrAMKGG4XVvvLvl9qnXJxPupJQU7QlfFM6D0H0lDumjzR9g8TA9HjlazxjLyvwjdqdixk+NOtXxy/DtRMiPUjoqxHvs/EBXQfra186hKtntXNoIczz5RI3S5Pp1TdWOpXpDX47sssAwWYEf5vw+0CZo9rCaefDXy1t2Hfxtq9GbciNZrMK3tKj+qVm3mc5Ewe2K+U8jfW8criLkk/Aa3hXuuIR9lSlw5O0am9yhLAj7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 194.138.21.70) smtp.rcpttodomain=googlegroups.com smtp.mailfrom=siemens.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=siemens.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m9QV+qJVoxuvmxNzjEgb09Gorniirq46lxM0jqZnWnc=; b=xfLKEUOXMC3bbdLWBGIDkY1UY4xYGRql8ukwtJjC45DEHhJkVfZoSLfGJTO95/8S+3Pd5SySoXi9s4Xp/yDiRn4l/J7iMm4rz58D0nXWJtWNh0tnloaNHdJLDeSziSnRu60MVijoifohzSwKSH5jNhwgRdKya6nMgXuv5FvYdfy0ZZ/DI2prqO0V887XpspJKhKiJP7EIbllIZWXYDhmzZ+yyLx2qfNFpf0bo50v+DZoXedeWY2XZVXV0IwGjdc6qF1h+4x0DKov0s3OKxOLEMwql/8O7QpzF52J5v1XlNsSf11HswGPwe9OttSx0eH30zeyqU20u3Syy1dmkdeY9Q== Received: from AS9PR06CA0237.eurprd06.prod.outlook.com (2603:10a6:20b:45e::24) by DB9PR10MB4521.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:1ff::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11; Thu, 10 Feb 2022 06:25:25 +0000 Received: from VE1EUR01FT031.eop-EUR01.prod.protection.outlook.com (2603:10a6:20b:45e:cafe::12) by AS9PR06CA0237.outlook.office365.com (2603:10a6:20b:45e::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.17 via Frontend Transport; Thu, 10 Feb 2022 06:25:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 194.138.21.70) smtp.mailfrom=siemens.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=siemens.com; Received-SPF: Pass (protection.outlook.com: domain of siemens.com designates 194.138.21.70 as permitted sender) receiver=protection.outlook.com; client-ip=194.138.21.70; helo=hybrid.siemens.com; Received: from hybrid.siemens.com (194.138.21.70) by VE1EUR01FT031.mail.protection.outlook.com (10.152.2.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4975.11 via Frontend Transport; Thu, 10 Feb 2022 06:25:24 +0000 Received: from DEMCHDC89YA.ad011.siemens.net (139.25.226.104) by DEMCHDC9SJA.ad011.siemens.net (194.138.21.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.18; Thu, 10 Feb 2022 07:25:21 +0100 Received: from random.ppmd.siemens.net (139.25.68.25) by DEMCHDC89YA.ad011.siemens.net (139.25.226.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.18; Thu, 10 Feb 2022 07:25:21 +0100 From: Adriaan Schmidt To: CC: Adriaan Schmidt Subject: [PATCH 4/6] imagetypes: restructure files Date: Thu, 10 Feb 2022 07:24:44 +0100 Message-ID: <20220210062446.4145565-5-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220210062446.4145565-1-adriaan.schmidt@siemens.com> References: <20220210062446.4145565-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain Return-Path: adriaan.schmidt@siemens.com X-Originating-IP: [139.25.68.25] X-ClientProxiedBy: DEMCHDC89XA.ad011.siemens.net (139.25.226.103) To DEMCHDC89YA.ad011.siemens.net (139.25.226.104) X-TM-AS-Product-Ver: SMEX-14.0.0.3080-8.6.1018-26680.007 X-TM-AS-Result: No-10--8.254000-8.000000 X-TMASE-MatchedRID: glDbLq0IecnZY+nnK3IwnMGnCHwCMuTJElH6l1EPRNgItCy6ZX/lLxqD rPipLA7BoxCLfriDzziVIbfpsq9FzF0qMWNOsGgAG6Aor8mgxBIDI91I0N0Y7w97mDMXdNW3ELb qrOgWzyev/7fHaEp6ExqGc7het5hmUtTgmoNQjI1r7b8CsPPtQe+90yVxudOIEVuC0eNRYvKW31 x27U9QYi99T+uJIleR5wnn9PXAc/dMqWhw3u66AuHPYUUXef6kyu0fpXITlDQTwfDtZ0TwrOC1p 3r9o3NF33Nl3elSfsqygaZY7yrHztUIA41Lx0zh+WHc8RqHeHWlTHNxJDwdpIS/TV9k6ppAVFeU PAjsd8be6dEbvIyrxWrElEhczdbZA/oe4NwFf2o4Ss/NZ+ZWLN5eGhhOjg7VK1L6TVkdgztuJXM xOF5JsA75RQuQJ3oKngIgpj8eDcAZ1CdBJOsoY8RB0bsfrpPIXzYxeQR1DvtM0sjV3GMdZURcte stn5UJT4uK6Ic0GhM6hgaT3Aw8LeAJMXBukwIq X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--8.254000-8.000000 X-TMASE-Version: SMEX-14.0.0.3080-8.6.1018-26680.007 X-TM-SNTS-SMTP: D744321A644B381A73B50D1552C0EA6C36090E835196D5DCD49A6B44B7E2B9792000:8 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f8640be0-63bb-4fba-f231-08d9ec5e1f8f X-MS-TrafficTypeDiagnostic: DB9PR10MB4521:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1360; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AneA220jZ+bKjpGu9x4zDJZW8BuMj4Lw6aXZqFACirnF/EI/CC77tG5vQ3IDHFvnUlX8+H9wdIJHU02nIPgORzMJelCVRFje/Ff3O5pwVJguvr9bVfSb1ZY8ikgMxZfwILXLZOAG/0ho2HtEQfJ37ABCSBe6gk0z5EubQQXGUkl8/VJYQArakc7ylrZqReEutZExn+h2nvFn1uD5XmPfLr2GO50Riw5zoxebL4ml1MPPBQWeR4qsx2nzv7xv8sKaLomE1fLF4ET2DXoMHAEagZgZjm7ldnlGaihZy7qS+j7KBWDGXzuI5kdjrlz69j0Rq/Xzk4I9W3KDQgPPlxm2wk/GqAQJco1oN6e0bUUPZWY030bw5YPTpGqGVoqJ58Ot+k7TWAtJiyV3CNeeqp74Elu2C9j53/eAY0pgkEhX548iQLrcbAs2re9DyX2shRiXa5FIUVcGwVDr78BjIBylaLMnp9DI0IbAvoySc0IOUv/cUtyaQInuC6L4vVNBmj48xC7K4ANX/subX2y89p/V62plawVSC6Ee5MbDsiWUSe6i3ZVJcGxZMu6IJHB1rl1/IrdeyBuAJqrIyyaLmBIGX61ry/ZZaU1c+FGGOJqE2VSB48CWdPFRnJVFfCfX3Bjo/TjCJHCior3P29Fdl7JAxPcQOIvPhVQ0dOSpMrutuFyKwnqBjYOboQM+cFd9nleM09N0scKELrKn8nGm7ojNsC+dPlqWaQ0bfzMJH9qAwcQyVI2qc9xnob8mnmhq8sHfgfvYTKOtT2GtuYc+G/r7K4Oifp9W406r3z719UT83+4= X-Forefront-Antispam-Report: CIP:194.138.21.70;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:hybrid.siemens.com;PTR:hybrid.siemens.com;CAT:NONE;SFS:(13230001)(4636009)(40470700004)(46966006)(36840700001)(86362001)(82960400001)(36756003)(40460700003)(36860700001)(7636003)(2906002)(356005)(7596003)(966005)(83380400001)(47076005)(1076003)(336012)(16526019)(6666004)(508600001)(316002)(107886003)(26005)(2616005)(956004)(186003)(8936002)(8676002)(4326008)(30864003)(44832011)(6916009)(70586007)(5660300002)(70206006)(82310400004)(403724002);DIR:OUT;SFP:1101; X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2022 06:25:24.9619 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f8640be0-63bb-4fba-f231-08d9ec5e1f8f X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;Ip=[194.138.21.70];Helo=[hybrid.siemens.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR01FT031.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB4521 X-TUID: lydg3CTzCk2/ Instead of per-type classes *-img.bbclass, we move to - imagetypes.bbclass for the "simple" types and the conversions - dedicated files for the more complex types: - imagetypes_wic.bbclass - imagetypes_vm.bbclass - imagetypes_contaier.bbclass Signed-off-by: Adriaan Schmidt --- meta/classes/cpiogz-img.bbclass | 14 --- meta/classes/ext4-img.bbclass | 15 ---- meta/classes/fit-img.bbclass | 22 ----- meta/classes/image.bbclass | 50 +++++------ meta/classes/imagetypes.bbclass | 89 +++++++++++++++++++ ...g.bbclass => imagetypes_container.bbclass} | 0 .../{vm-img.bbclass => imagetypes_vm.bbclass} | 0 ...wic-img.bbclass => imagetypes_wic.bbclass} | 0 meta/classes/targz-img.bbclass | 8 -- meta/classes/ubi-img.bbclass | 20 ----- meta/classes/ubifs-img.bbclass | 19 ---- 11 files changed, 110 insertions(+), 127 deletions(-) delete mode 100644 meta/classes/cpiogz-img.bbclass delete mode 100644 meta/classes/ext4-img.bbclass delete mode 100644 meta/classes/fit-img.bbclass create mode 100644 meta/classes/imagetypes.bbclass rename meta/classes/{container-img.bbclass => imagetypes_container.bbclass} (100%) rename meta/classes/{vm-img.bbclass => imagetypes_vm.bbclass} (100%) rename meta/classes/{wic-img.bbclass => imagetypes_wic.bbclass} (100%) delete mode 100644 meta/classes/targz-img.bbclass delete mode 100644 meta/classes/ubi-img.bbclass delete mode 100644 meta/classes/ubifs-img.bbclass diff --git a/meta/classes/cpiogz-img.bbclass b/meta/classes/cpiogz-img.bbclass deleted file mode 100644 index f4c33bd9..00000000 --- a/meta/classes/cpiogz-img.bbclass +++ /dev/null @@ -1,14 +0,0 @@ -# This software is a part of ISAR. -# Copyright (C) 2020 Siemens AG -# -# SPDX-License-Identifier: MIT - -IMAGER_INSTALL_cpio += "cpio" -CPIO_IMAGE_FORMAT ?= "newc" - -IMAGE_CMD_cpio() { - ${SUDO_CHROOT} \ - sh -c "cd ${PP_ROOTFS}; /usr/bin/find . | \ - /usr/bin/cpio -H ${CPIO_IMAGE_FORMAT} -o > \ - ${IMAGE_FILE_CHROOT}" -} diff --git a/meta/classes/ext4-img.bbclass b/meta/classes/ext4-img.bbclass deleted file mode 100644 index 73d1bb57..00000000 --- a/meta/classes/ext4-img.bbclass +++ /dev/null @@ -1,15 +0,0 @@ -# This software is a part of ISAR. -# Copyright (C) 2015-2017 ilbers GmbH - -IMAGER_INSTALL_ext4 += "e2fsprogs" - -MKE2FS_ARGS ?= "-t ext4" - -# Generate ext4 filesystem image -IMAGE_CMD_ext4() { - truncate -s ${ROOTFS_SIZE}K '${IMAGE_FILE_HOST}' - - ${SUDO_CHROOT} /sbin/mke2fs ${MKE2FS_ARGS} \ - -F -d '${PP_ROOTFS}' '${IMAGE_FILE_CHROOT}' -} -#IMAGE_CMD_ext4[vardepsexclude] = "ROOTFS_SIZE ROOTFS_EXTRA" diff --git a/meta/classes/fit-img.bbclass b/meta/classes/fit-img.bbclass deleted file mode 100644 index ef65af88..00000000 --- a/meta/classes/fit-img.bbclass +++ /dev/null @@ -1,22 +0,0 @@ -# This software is a part of ISAR. -# Copyright (C) Siemens AG, 2019 -# -# SPDX-License-Identifier: MIT - -MKIMAGE_ARGS ??= "" - -FIT_IMAGE_SOURCE ??= "fitimage.its" - -IMAGER_INSTALL_fit += "u-boot-tools device-tree-compiler" - -# Generate fit image -IMAGE_CMD_fit() { - if [ ! -e "${WORKDIR}/${FIT_IMAGE_SOURCE}" ]; then - die "FIT_IMAGE_SOURCE does not contain fitimage source file" - fi - - # Create fit image using buildchroot tools - ${SUDO_CHROOT} /usr/bin/mkimage ${MKIMAGE_ARGS} \ - -f '${PP_WORK}/${FIT_IMAGE_SOURCE}' '${IMAGE_FILE_CHROOT}' -} -IMAGE_CMD_fit[depends] = "${PN}:do_transform_template" diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 60192312..0596063a 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -11,7 +11,6 @@ SSTATE_MANIFESTS = "${TMPDIR}/sstate-control/${MACHINE}-${DISTRO}-${DISTRO_ARCH} IMAGE_INSTALL ?= "" IMAGE_FSTYPES ?= "${@ d.getVar("IMAGE_TYPE", True) if d.getVar("IMAGE_TYPE", True) else "ext4"}" -IMAGE_CONVERSIONS = "gz xz" IMAGE_ROOTFS ?= "${WORKDIR}/rootfs" KERNEL_IMAGE_PKG ??= "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getVar("KERNEL_NAME", True) else ""}" @@ -85,6 +84,26 @@ inherit image-postproc-extension inherit image-locales-extension inherit image-account-extension +# Extra space for rootfs in MB +ROOTFS_EXTRA ?= "64" + +def get_rootfs_size(d): + import subprocess + rootfs_extra = int(d.getVar("ROOTFS_EXTRA", True)) + + output = subprocess.check_output( + ["sudo", "du", "-xs", "--block-size=1k", d.getVar("IMAGE_ROOTFS", True)] + ) + base_size = int(output.split()[0]) + + return base_size + rootfs_extra * 1024 + +python set_image_size () { + rootfs_size = get_rootfs_size(d) + d.setVar('ROOTFS_SIZE', str(rootfs_size)) + d.setVarFlag('ROOTFS_SIZE', 'export', '1') +} + def get_base_type(t, d): bt = t for c in d.getVar('IMAGE_CONVERSIONS').split(): @@ -110,18 +129,10 @@ python() { # image types IMAGE_CLASSES ??= "" -IMGCLASSES = "container-img cpiogz-img ext4-img fit-img targz-img ubi-img ubifs-img vm-img wic-img" +IMGCLASSES = "imagetypes imagetypes_wic imagetypes_vm imagetypes_container" IMGCLASSES += "${IMAGE_CLASSES}" inherit ${IMGCLASSES} -# image conversions -CONVERSION_CMD_gz = "${SUDO_CHROOT} sh -c 'gzip -f -9 -n -c --rsyncable ${IMAGE_FILE_CHROOT} > ${IMAGE_FILE_CHROOT}.gz'" -CONVERSION_DEPS_gz = "gzip" - -XZ_OPTIONS ?= "-T0 -M200MB" -CONVERSION_CMD_xz = "${SUDO_CHROOT} sh -c 'xz -c ${XZ_OPTIONS} ${IMAGE_FILE_CHROOT} > ${IMAGE_FILE_CHROOT}.xz'" -CONVERSION_DEPS_xz = "xz-utils" - # hook up IMAGE_CMD_* python() { image_types = (d.getVar('IMAGE_FSTYPES') or '').split() @@ -262,19 +273,6 @@ python() { d.appendVar('IMAGER_BUILD_DEPS', ' ' + ' '.join(sorted(imager_build_deps))) } -# Extra space for rootfs in MB -ROOTFS_EXTRA ?= "64" - -def get_rootfs_size(d): - import subprocess - rootfs_extra = int(d.getVar("ROOTFS_EXTRA", True)) - - output = subprocess.check_output( - ["sudo", "du", "-xs", "--block-size=1k", d.getVar("IMAGE_ROOTFS", True)] - ) - base_size = int(output.split()[0]) - - return base_size + rootfs_extra * 1024 # here we call a command that should describe your whole build system, # this could be "git describe" or something similar. @@ -293,12 +291,6 @@ get_build_id() { fi } -python set_image_size () { - rootfs_size = get_rootfs_size(d) - d.setVar('ROOTFS_SIZE', str(rootfs_size)) - d.setVarFlag('ROOTFS_SIZE', 'export', '1') -} - ROOTFS_CONFIGURE_COMMAND += "image_configure_fstab" image_configure_fstab[weight] = "2" image_configure_fstab() { diff --git a/meta/classes/imagetypes.bbclass b/meta/classes/imagetypes.bbclass new file mode 100644 index 00000000..05d8cbbe --- /dev/null +++ b/meta/classes/imagetypes.bbclass @@ -0,0 +1,89 @@ +# This software is a part of ISAR. +# Copyright (C) 2021 Siemens AG +# +# SPDX-License-Identifier: MIT + +#image type: tar +IMAGER_INSTALL_tar = "tar" +TAR_OPTIIONS ?= "" + +IMAGE_CMD_tar() { + ${SUDO_CHROOT} tar ${TAR_OPTIONS} -cvzf \ + ${IMAGE_FILE_CHROOT} --one-file-system -C ${PP_ROOTFS} . +} + +# image type: ext4 +IMAGER_INSTALL_ext4 += "e2fsprogs" +MKE2FS_ARGS ?= "-t ext4" + +IMAGE_CMD_ext4() { + truncate -s ${ROOTFS_SIZE}K '${IMAGE_FILE_HOST}' + + ${SUDO_CHROOT} /sbin/mke2fs ${MKE2FS_ARGS} \ + -F -d '${PP_ROOTFS}' '${IMAGE_FILE_CHROOT}' +} + +# image type: cpio +IMAGER_INSTALL_cpio += "cpio" +CPIO_IMAGE_FORMAT ?= "newc" + +IMAGE_CMD_cpio() { + ${SUDO_CHROOT} \ + sh -c "cd ${PP_ROOTFS}; /usr/bin/find . | \ + /usr/bin/cpio -H ${CPIO_IMAGE_FORMAT} -o > \ + ${IMAGE_FILE_CHROOT}" +} + +# image type: fit +MKIMAGE_ARGS ??= "" +FIT_IMAGE_SOURCE ??= "fitimage.its" +IMAGER_INSTALL_fit += "u-boot-tools device-tree-compiler" + +IMAGE_CMD_fit() { + if [ ! -e "${WORKDIR}/${FIT_IMAGE_SOURCE}" ]; then + die "FIT_IMAGE_SOURCE does not contain fitimage source file" + fi + + ${SUDO_CHROOT} /usr/bin/mkimage ${MKIMAGE_ARGS} \ + -f '${PP_WORK}/${FIT_IMAGE_SOURCE}' '${IMAGE_FILE_CHROOT}' +} +IMAGE_CMD_fit[depends] = "${PN}:do_transform_template" + +# image type: ubifs +IMAGER_INSTALL_ubifs += "mtd-utils" +IMAGE_CMD_REQUIRED_ARGS_ubifs = "MKUBIFS_ARGS" + +# glibc bug 23960 https://sourceware.org/bugzilla/show_bug.cgi?id=23960 +# should not use QEMU on armhf target with mkfs.ubifs < v2.1.3 +# TODO(adriaan): is this still relevant!? +#ISAR_CROSS_COMPILE_armhf = "1" + +IMAGE_CMD_ubifs() { + ${SUDO_CHROOT} /usr/sbin/mkfs.ubifs ${MKUBIFS_ARGS} \ + -r '${PP_ROOTFS}' '${IMAGE_FILE_CHROOT}' +} + +# image type: ubi +IMAGER_INSTALL_ubi += "mtd-utils" +IMAGE_CMD_REQUIRED_ARGS_ubi = "UBINIZE_ARGS" +UBINIZE_CFG ??= "ubinize.cfg" + +IMAGE_CMD_ubi() { + if [ ! -e "${WORKDIR}/${UBINIZE_CFG}" ]; then + die "UBINIZE_CFG does not contain ubinize config file." + fi + + ${SUDO_CHROOT} /usr/sbin/ubinize ${UBINIZE_ARGS} \ + -o '${IMAGE_FILE_CHROOT}' '${PP_WORK}/${UBINIZE_CFG}' +} +IMAGE_CMD_ubi[depends] = "${PN}:do_transform_template" + +# image conversions +IMAGE_CONVERSIONS = "gz xz" + +CONVERSION_CMD_gz = "${SUDO_CHROOT} sh -c 'gzip -f -9 -n -c --rsyncable ${IMAGE_FILE_CHROOT} > ${IMAGE_FILE_CHROOT}.gz'" +CONVERSION_DEPS_gz = "gzip" + +XZ_OPTIONS ?= "-T0 -M200MB" +CONVERSION_CMD_xz = "${SUDO_CHROOT} sh -c 'xz -c ${XZ_OPTIONS} ${IMAGE_FILE_CHROOT} > ${IMAGE_FILE_CHROOT}.xz'" +CONVERSION_DEPS_xz = "xz-utils" diff --git a/meta/classes/container-img.bbclass b/meta/classes/imagetypes_container.bbclass similarity index 100% rename from meta/classes/container-img.bbclass rename to meta/classes/imagetypes_container.bbclass diff --git a/meta/classes/vm-img.bbclass b/meta/classes/imagetypes_vm.bbclass similarity index 100% rename from meta/classes/vm-img.bbclass rename to meta/classes/imagetypes_vm.bbclass diff --git a/meta/classes/wic-img.bbclass b/meta/classes/imagetypes_wic.bbclass similarity index 100% rename from meta/classes/wic-img.bbclass rename to meta/classes/imagetypes_wic.bbclass diff --git a/meta/classes/targz-img.bbclass b/meta/classes/targz-img.bbclass deleted file mode 100644 index 74d34e29..00000000 --- a/meta/classes/targz-img.bbclass +++ /dev/null @@ -1,8 +0,0 @@ -# This software is a part of ISAR. -# Copyright (c) Siemens AG, 2018 -# -# SPDX-License-Identifier: MIT - -IMAGE_CMD_tar() { - sudo tar -cvzf ${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.tar.gz --one-file-system -C ${IMAGE_ROOTFS} . -} diff --git a/meta/classes/ubi-img.bbclass b/meta/classes/ubi-img.bbclass deleted file mode 100644 index 92acb6f8..00000000 --- a/meta/classes/ubi-img.bbclass +++ /dev/null @@ -1,20 +0,0 @@ -# This software is a part of ISAR. -# Copyright (C) Siemens AG, 2019 -# -# SPDX-License-Identifier: MIT - -UBINIZE_CFG ??= "ubinize.cfg" - -IMAGER_INSTALL_ubi += "mtd-utils" - -# Generate ubi filesystem image -IMAGE_CMD_ubi() { - if [ ! -e "${WORKDIR}/${UBINIZE_CFG}" ]; then - die "UBINIZE_CFG does not contain ubinize config file." - fi - - ${SUDO_CHROOT} /usr/sbin/ubinize ${UBINIZE_ARGS} \ - -o '${IMAGE_FILE_CHROOT}' '${PP_WORK}/${UBINIZE_CFG}' -} -IMAGE_CMD_ubi[depends] = "${PN}:do_transform_template" -IMAGE_CMD_REQUIRED_ARGS_ubi = "UBINIZE_ARGS" diff --git a/meta/classes/ubifs-img.bbclass b/meta/classes/ubifs-img.bbclass deleted file mode 100644 index ea17c913..00000000 --- a/meta/classes/ubifs-img.bbclass +++ /dev/null @@ -1,19 +0,0 @@ -# This software is a part of ISAR. -# Copyright (C) Siemens AG, 2019 -# -# SPDX-License-Identifier: MIT - -IMAGER_INSTALL_ubifs += "mtd-utils" - -# glibc bug 23960 https://sourceware.org/bugzilla/show_bug.cgi?id=23960 -# should not use QEMU on armhf target with mkfs.ubifs < v2.1.3 -# TODO(adriaan): is this still relevant!? -#ISAR_CROSS_COMPILE_armhf = "1" - -# Generate ubifs filesystem image -IMAGE_CMD_ubifs() { - # Create ubifs image using buildchroot tools - ${SUDO_CHROOT} /usr/sbin/mkfs.ubifs ${MKUBIFS_ARGS} \ - -r '${PP_ROOTFS}' '${IMAGE_FILE_CHROOT}' -} -IMAGE_CMD_REQUIRED_ARGS_ubifs = "MKUBIFS_ARGS" -- 2.30.2