From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6925703954041929728 X-Received: by 2002:adf:9e47:: with SMTP id v7mr6154720wre.185.1612547532089; Fri, 05 Feb 2021 09:52:12 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a5d:4d02:: with SMTP id z2ls1309197wrt.3.gmail; Fri, 05 Feb 2021 09:52:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJy+yRKgASNQbsa/j7gHjMEEI7gaY1sHnMbxDoZppWhmRsbn7iuVwklU43u5WTwmkuHAKaOY X-Received: by 2002:adf:8b41:: with SMTP id v1mr6211040wra.282.1612547531289; Fri, 05 Feb 2021 09:52:11 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1612547531; cv=pass; d=google.com; s=arc-20160816; b=oBQJvYDm+TKCVUWkxLNK7P83xacrF3ru0kayOSbD/z6dfyc5iXQW/l/wYnVgl8bU71 /CccuqjvOv/9k4GvwqMSoDssnD22ARLb0SrERT/eFSoYGLevMIirvicmJlBeMGBNzOtd 5AXaQBmU8xlpQ3GakdCG7vcYrEt+8YLiBTfsHNC6NQmu+GZ6tIuua7uJv3TJYL/P97WJ K41zA+XyL5uo1UVP74l0oGKlh9HeGOevHastDpR73RYBindUryPZecMSfeW5/GUQKyBs Yf0z/CHX5aAK1wgXcM6S+TL4JWKvxFkbi/9Rmm7xF8ZLzYrZ8Vpiw4XfkG1lEI5sl+t+ YuHA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-language:content-transfer-encoding:in-reply-to :user-agent:date:message-id:from:references:to:subject :dkim-signature; bh=gVsx98DNb8GPE54kpVpIQsPRWWnekm5/427Y1s7EeB4=; b=NGXlEIvmzitawS27UqytWRit0x2tNs4Iy5CG6bUXufcPHqcJfHW1lESGBc5ijk2fDM HWtQsOZQjpmofhgj6MUJRVUztWWhWuennPW2qexvpujL+J1FjUNlja7/7yzfxvthDdo5 dLNiY6kHJxHrzQ54xr34u1IK2Hpcn2n1Ay/Fx3smpdXkhNm0yKLzTPchpVTcFXk+BiAC dpfd4/C2hKo7Sbis1uGTiKYohtMmqQSxNZfWgniTEHCJVYM4kKlUeXySf1+3sEuzkQi/ g4MalTDbq4sEXoLjrXTW8FnEdwZZWKNvsNSGUo13KIQpwu55a+NLEdNWSrw9Sd+KVpOh +Tyw== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.onmicrosoft.com header.s=selector1-siemens-onmicrosoft-com header.b=DxyvdbWl; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 40.107.20.44 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2044.outbound.protection.outlook.com. [40.107.20.44]) by gmr-mx.google.com with ESMTPS id 201si457546wmb.2.2021.02.05.09.52.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 05 Feb 2021 09:52:11 -0800 (PST) Received-SPF: pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 40.107.20.44 as permitted sender) client-ip=40.107.20.44; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.onmicrosoft.com header.s=selector1-siemens-onmicrosoft-com header.b=DxyvdbWl; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 40.107.20.44 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@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=HXE0c+/qifLWL2LSdnqfMamwMrP/rWIbF15WcZChZ40pMGkDEpJ5MeA/pywQdztYJZbQIh4ej67XHJwQg9tgZ5JAa5lQjdKmh+oQLtWGxE8HaLykrLXrvTczh929L8SLwHa4gKmAzLeNidUBRPPAZBvOYFRsicaiJAlFpUAxtpBcwqeLuiMZdDaR/USBhM6juY4sCFVIkzrwD8WD4dzdL2ekJOJiekrgqSpuGfgD478UgQXR80d+Z4QrFeddb+OcYwIDc1O4xibdGPn6shnhv1OymLEjn5WkjxFQ74StZEwovfqhGXLUc8XfF2K0OoqG1p8TV7/w71Ju5/q01pu5Mw== 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-SenderADCheck; bh=gVsx98DNb8GPE54kpVpIQsPRWWnekm5/427Y1s7EeB4=; b=eVGkLXyotRbXDjSEzUQhZPS5DU3Uhof1URPbikL5yGDDqs1P3wqkiKlAI+U+3OXJaYHTo5JSZL0vOatQ7axqWaqWHDvuM9V9IwPX/8WtSqkK56ZQy1CYMaCfJRnvvwrtI7a1pCvo4InfEMkNs5KvgXRanB45SNEqS5lITqXahP6/OR5KPqYOt2TsoOoSbjYXyAUsBvdEtEUNW/ai/YjLCFBm1pHKHhHCc6SFWaPfYkXgg+fwkxeT0Nj0zPKVhZ/SobEXPk7bcKjlEvEqK3Je7HDX+zSkyIpt9h0fPBVxnrWt908VAf4RrcmyKMk4Bc1cOxu18ouZp3WvBoklQfFaQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.onmicrosoft.com; s=selector1-siemens-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gVsx98DNb8GPE54kpVpIQsPRWWnekm5/427Y1s7EeB4=; b=DxyvdbWlj0C3gGp+OzzFiVuLlB14PhpqLChq84hZLT4cGRMy2twIKm6BzyKIkWmTKmGTcIfn+siTwBZgcMHgxVKJ5Ely71eWnHRPvAuZD3ObPIyo7oA5/pK9JnzJlwSwK2pIEKY6nGeomIV0YadlwRVrJYbk+cxyxiCucu3Uxew= Authentication-Results: googlegroups.com; dkim=none (message not signed) header.d=none;googlegroups.com; dmarc=none action=none header.from=siemens.com; Received: from AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:12a::30) by AM9PR10MB4214.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:1f5::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.21; Fri, 5 Feb 2021 17:52:10 +0000 Received: from AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM ([fe80::c035:62d1:fd79:1bc8]) by AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM ([fe80::c035:62d1:fd79:1bc8%5]) with mapi id 15.20.3742.012; Fri, 5 Feb 2021 17:52:10 +0000 Subject: Re: [PATCH 1/2] sdk: support creation of container image To: Jan Kiszka , isar-users@googlegroups.com References: <20210205090827.17788-1-silvano.cirujano-cuesta@siemens.com> <20210205090827.17788-2-silvano.cirujano-cuesta@siemens.com> <1bf47211-0313-48a9-00d8-442e6f9942ae@siemens.com> <62b4993c-0a7d-f29d-9c65-978936fd8e7c@siemens.com> <724da05d-7eeb-73de-05a4-5effab51086f@siemens.com> From: Silvano Cirujano Cuesta Message-ID: Date: Fri, 5 Feb 2021 18:52:05 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 In-Reply-To: <724da05d-7eeb-73de-05a4-5effab51086f@siemens.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [2001:a61:3ba9:3102:e458:f9ae:a68a:ac3d] X-ClientProxiedBy: AM4PR05CA0018.eurprd05.prod.outlook.com (2603:10a6:205::31) To AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:12a::30) Return-Path: silvano.cirujano-cuesta@siemens.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2001:a61:3ba9:3102:e458:f9ae:a68a:ac3d] (2001:a61:3ba9:3102:e458:f9ae:a68a:ac3d) by AM4PR05CA0018.eurprd05.prod.outlook.com (2603:10a6:205::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.19 via Frontend Transport; Fri, 5 Feb 2021 17:52:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d218bcfe-cd4b-4685-64a3-08d8c9fec29c X-MS-TrafficTypeDiagnostic: AM9PR10MB4214: X-LD-Processed: 38ae3bcd-9579-4fd4-adda-b42e1495d55a,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2276; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ab35bVJw48ibqEguggZRXXBm9HB557eQOFoUDlRkNvbxT1LOqkuof5ywFB9JAWiqnF1fBik0aIRPLgijgYfUIf8BJLKX+Zz+ko8n3UVhLGRQHbolTyr7z8RIPlboaGTOJ6O2JHrtZ1ycXTbcxBG2luM/ykR9l/jp5uRdYI5i7ln1JcZ6FyyZwohcDDC7Sf1LmQY8P6/AbgjKxpj8GI1JImVfyghLzVfMjC5E+JeqGNzqyU161UPUZJOEGNogbgvnh4Z8n5CYdUg2l+eoosrTa9lRW8Y3vJd1iELajs3GaSfHBUla390OrIg7F55pC3lB74Iy8OSe84gRjghJh63H3WCcyrpRvs0RKSSb3OelHS3X27Lexw1+7Ssi440pTQcCa/PJPF6SQK/NTeCnpFJhBwSZRlgXqc3PlJg2ySIRrVYkGMn3jLqSArjbvI5AK4FjeLJzHjQx7dGXWyAULG4mHTei/J9wCZTCZis0GRakfDMHw3gtMke9+57EHCl+fcEv+GrzJWUqICnkZm5bG9Letz0+Mw3mtt6SJ6hZl5VaQRFQiwAGCsTQt/1JaIeCC5PCf93lrnTNmI/D3A2XI6mdexdXYbzmnWWyNSPCT2SxS8U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(4636009)(376002)(366004)(136003)(396003)(39860400002)(346002)(5660300002)(6486002)(86362001)(31696002)(66476007)(66556008)(66946007)(83380400001)(6666004)(8676002)(2906002)(16526019)(8936002)(316002)(36756003)(2616005)(53546011)(478600001)(186003)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?c0M5WnFob2VUbTZPQlRnNXFRVnlvZXRuV2M1cFYvNVV3Zk0vM0pTajJ6ajh3?= =?utf-8?B?TFZEbFZOUGlIblYrMlBQcW5pWXJDWWxtNGlTNzJLZDhyakhZYjVRYnYwVHFz?= =?utf-8?B?RXpuWndYU3FUclc3QmsrVXN1dTY2TG1JdnJiQlR3U1VYZkFLQmtCQ25NcExz?= =?utf-8?B?M1BmZ2pXR1dwaUdKQ2RRUWlwVUNaOGh1Tm11bE1YTng0bXlyOXdrTEtnQ2Qx?= =?utf-8?B?YTJlZjRlcUZZUmxFRmhHS2lFMGFlUGVEYSs0T2RpWUJMVDhOY0F1M2g4eUhN?= =?utf-8?B?SHhRYXJDVVMvTlFUaDBnd0FPeUZxTGVJem81ZmZJZFFkS1lSQVh1a1FBVXFM?= =?utf-8?B?MENIbW12d2xLOGU3VDJkWEFnVFRLeGNTYUNrZHdLN3lnUlhNaWVNUmNHOXFm?= =?utf-8?B?SnRzT3BnK0xpUGkwZ1Uxc09WOHhDbU53VXVaQk9ZbnovcG5rVWIwWG9NSGd6?= =?utf-8?B?anhPdzE5TG1sa3QwVS9EM2JYNXRVZUlPQ0lYOUM5YTJ0NFJQcUt1RzFrN2FG?= =?utf-8?B?WHE0dXFRdFlGWUlsSUM5MThvczNUVHR4NWVmWTJQY3N6UkVJMmthYkQxRmZj?= =?utf-8?B?UGVIcXR6VjdNeFIwNTA0REVsOUdORFlvRVlSS1ZBTGxyeW9aSEFBOHJ4ZWZL?= =?utf-8?B?WmVNWWVPU0liRkcxYjJGMkRxWndPOWJRQ1dFQ0JYckM5Ky9tYVByK0NsVDJL?= =?utf-8?B?ZWJVL3hxdklTNlg1MHQzd2NUWjdoSTBRYzFtaWdOSTR1VkF3ajZkMUs1T1ZX?= =?utf-8?B?bmp0V2pLc1hzbTlId3k0R2ZjWEdHekdDR1I3VHdHV0JsT0F0OHFYRWIrV1N3?= =?utf-8?B?Q0UvNjQrUmFtVTFVamlZZzY2eTZxUXpYOW02Ym9BNDNWSXBTMytEeWVvRDJM?= =?utf-8?B?TjdDaytvMTVZTFpiOW9Eb2l3R29Ec3Yzdk51NkhxS2U5b3pxOHRqSkV5ZlY5?= =?utf-8?B?RW4xWEl3RGFDeHNRejB3ajR6ZkVJVW12eW9MV2xYS1RGQ3NQTi95b2hLeW9H?= =?utf-8?B?cFhvUDJlVldvYmhsNHZDcVErd3lJQ1RBN1Q0MHBOVnVlTlV2OGp2N2RDeGtI?= =?utf-8?B?L0hISnVIK0ZveU1KcUZwa1piMDNLbUF1Y0ZVL01hb1dhV3VCTTFpK0VaVFlx?= =?utf-8?B?Z1RZYUF3RzErZnF2MUFDVFJJb1dSTzRtMkdNVTFaNUxpU1FQWW1iNGk1UlhL?= =?utf-8?B?RWJSdkhTL3B4Nm1CZGdnNDJqR1ltai9meHZzUVBBWWpzbTg0Q1c2Mm5kTHJw?= =?utf-8?B?QjJ4ZmNTUlo1Yy9teHZjZFc2Zk1PeW5zNW5wbnBzWXhINDFXd1V1ZEtxRDdJ?= =?utf-8?B?NXVqdWFzamJZVEVNTEtwRTM3Y1hXOStxUDFlVUNYTE1CblhwOVFGQ2pNdVJR?= =?utf-8?B?b0toNWs0TThucTVrYTl4NWRHNnJwMURxdk82QUxZQmJMd0tIdUR0cndxei9l?= =?utf-8?B?emRNTHJxT0JydFl2dHJ4RHhtZFpOWmFES0NqRVZlTmZuQjVBV2xvM1M3VjdG?= =?utf-8?B?WVJmV0VtS0h3QXZORmNiQUxmYU5nK2NyL0dIcXFqSXFxT3VjQThHcTZSTlI1?= =?utf-8?B?ZldZS1ZYaWRYWnNpdmtNTVBsSWZ2RUlEMm1ZUVp5Ymk3emZPblBYSmhxM3pj?= =?utf-8?B?ajRmS3pxbFlPd01nTlJoQUkrU3I3WkZ6QlV3MGFnOUlLRndNdE1saHQyUXBF?= =?utf-8?B?aDJuVVFmS2F3dkxsYmZ0SHlYZVg0QVIwNXJ2WUg4bGFScWpXOWJjYTJQNWhV?= =?utf-8?B?OXJNaTRtVHlXc3M1c0lxNTBMRFdWOXM3b2pBN05XYUlZR0JLR0xTTTZVSjI3?= =?utf-8?B?ZHRjby9uS2NzTndVcjhzTHVxbUJrRkpDdXJ4QmROdXRBMkxZbGlIT29Qc3Qy?= =?utf-8?Q?4nkdPobMlHDMG?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: d218bcfe-cd4b-4685-64a3-08d8c9fec29c X-MS-Exchange-CrossTenant-AuthSource: AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2021 17:52:10.3716 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JBjyxwJPSokr/sT354LWpjR5h7Ff/vlgDiC+e2qG6rrucu49BX0Ql+tTcRXM2pNgq5RFVxtonVoJI9NsOlD9olrFRo8d7/GKxpg94xsZ1WZModo8+A410G9fFvje3cjj X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR10MB4214 X-TUID: RmiQXSq0boua On 05/02/2021 12:29, Jan Kiszka wrote: > On 05.02.21 12:24, Silvano Cirujano Cuesta wrote: >> On 05/02/2021 12:07, Jan Kiszka wrote: >>> On 05.02.21 10:08, [ext] Silvano Cirujano Cuesta wrote: >>>> Extend task "populate_sdk" to support the creation of a container image >>>> containing the SDK. >>>> >>>> Signed-off-by: Silvano Cirujano Cuesta >>>> --- >>>> meta/classes/image-sdk-extension.bbclass | 104 +++++++++++++++++++++-- >>>> 1 file changed, 97 insertions(+), 7 deletions(-) >>>> >>>> diff --git a/meta/classes/image-sdk-extension.bbclass b/meta/classes/image-sdk-extension.bbclass >>>> index a8c708a..082b16d 100644 >>>> --- a/meta/classes/image-sdk-extension.bbclass >>>> +++ b/meta/classes/image-sdk-extension.bbclass >>>> @@ -6,10 +6,81 @@ >>>> # This class extends the image.bbclass to supply the creation of a sdk >>>> >>>> SDK_INCLUDE_ISAR_APT ?= "0" >>>> +SDK_FORMATS ?= "tar-xz" >>>> + >>>> +sdk_tar_xz() { >>>> + # Copy mount_chroot.sh for convenience >>>> + sudo cp ${SCRIPTSDIR}/mount_chroot.sh ${SDKCHROOT_DIR} >>>> + >>>> + # Create SDK archive >>>> + cd -P ${SDKCHROOT_DIR}/.. >>>> + sudo tar --transform="s|^rootfs|sdk-${DISTRO}-${DISTRO_ARCH}|" \ >>>> + -c rootfs | xz -T0 > ${DEPLOY_DIR_IMAGE}/sdk-${DISTRO}-${DISTRO_ARCH}.tar.xz >>>> + bbnote "SDK rootfs available in ${DEPLOY_DIR_IMAGE}/sdk-${DISTRO}-${DISTRO_ARCH}.tar.xz" >>>> +} >>>> + >>>> +sdk_container_images() { >>>> + local cmd="/bin/dash" >>>> + local empty_tag="empty" >>>> + local full_tag="latest" >>>> + local oci_img_dir="${WORKDIR}/oci-image" >>>> + local sdk_container_formats="$1" >>>> + >>>> + # prepare OCI container image skeleton >>>> + sudo umoci init --layout "${oci_img_dir}" >>>> + sudo umoci new --image "${oci_img_dir}:${empty_tag}" >>>> + sudo umoci config --image "${oci_img_dir}:${empty_tag}" \ >>>> + --config.cmd="${cmd}" >>>> + sudo umoci unpack --image "${oci_img_dir}:${empty_tag}" \ >>>> + "${oci_img_dir}_unpacked" >>>> + >>>> + # add SDK root filesystem as the flesh of the skeleton >>>> + sudo cp -a "${SDKCHROOT_DIR}"/* "${oci_img_dir}_unpacked/rootfs/" >>>> + >>>> + # pack container image >>>> + sudo umoci repack --image "${oci_img_dir}:${full_tag}" \ >>>> + "${oci_img_dir}_unpacked" >>>> + sudo umoci remove --image "${oci_img_dir}:${empty_tag}" >>>> + sudo rm -rf "${oci_img_dir}_unpacked" >>>> + >>>> + # no root needed anymore >>>> + sudo chown --recursive $(id -u):$(id -g) "${oci_img_dir}" >>>> + >>>> + # convert the OCI container image to the desired format >>>> + sdk_id="sdk-${DISTRO}-${DISTRO_ARCH}" >>>> + image_name="isar-${sdk_id}" >>>> + image_archive="${DEPLOY_DIR_IMAGE}/${sdk_id}-${sdk_format}.tar" >>>> + for sdk_format in ${sdk_container_formats} ; do >>>> + case "${sdk_format}" in >>>> + "docker-archive" | "oci-archive") >>>> + if [ "${sdk_format}" = "oci-archive" ] ; then >>>> + target="${sdk_format}:${image_archive}:latest" >>>> + else >>>> + target="${sdk_format}:${image_archive}:${image_name}:latest" >>>> + fi >>>> + skopeo --insecure-policy copy \ >>>> + "oci:${oci_img_dir}:${full_tag}" "${target}" >>>> + xz -T0 "${image_archive}" >>>> + bbnote "Containerized SDK available in ${image_archive}.xz" >>>> + ;; >>>> + "oci") >>>> + tar --create --xz --directory "${oci_img_dir}" \ >>>> + --file "${image_archive}.xz" . >>>> + bbnote "Containerized SDK available in ${image_archive}.xz" >>>> + ;; >>>> + "docker-daemon" | "containers-storage") >>>> + skopeo --insecure-policy copy \ >>>> + "oci:${oci_img_dir}:${full_tag}" \ >>>> + "${sdk_format}:${image_name}:latest" >>>> + bbnote "Containerized SDK available in ${sdk_format} as '${image_name}:latest'" >>>> + ;; >>>> + esac >>>> + done >>>> +} >>>> >>>> do_populate_sdk[stamp-extra-info] = "${DISTRO}-${MACHINE}" >>>> do_populate_sdk[depends] = "sdkchroot:do_build" >>>> -do_populate_sdk[vardeps] += "SDK_INCLUDE_ISAR_APT" >>>> +do_populate_sdk[vardeps] += "SDK_INCLUDE_ISAR_APT SDK_FORMATS" >>>> do_populate_sdk() { >>>> if [ "${SDK_INCLUDE_ISAR_APT}" = "1" ]; then >>>> # Copy isar-apt with deployed Isar packages >>>> @@ -48,12 +119,31 @@ do_populate_sdk() { >>>> done >>>> done >>>> >>>> - # Copy mount_chroot.sh for convenience >>>> - sudo cp ${SCRIPTSDIR}/mount_chroot.sh ${SDKCHROOT_DIR} >>>> + # separate SDK formats: TAR and container formats >>>> + container_formats="" >>>> + for sdk_format in ${SDK_FORMATS} ; do >>>> + case ${sdk_format} in >>>> + "tar-xz") >>>> + sdk_tar_xz >>>> + ;; >>>> + "docker-archive" | "oci" | "oci-archive") >>>> + container_formats="${container_formats} ${sdk_format}" >>>> + ;; >>>> + "docker-daemon" | "containers-storage") >>>> + if [ -f /.dockerenv ] || [ -f /run/.containerenv ] ; then >>>> + die "Adding the SDK container image to a container runtime (${sdk_format}) not supported if running from a container (e.g. 'kas-container')" >>>> + fi >>>> + ;; >>>> + *) >>>> + die "unsupported SDK format specified: ${sdk_format}" >>>> + ;; >>>> + esac >>>> + done >>>> >>>> - # Create SDK archive >>>> - cd -P ${SDKCHROOT_DIR}/.. >>>> - sudo tar --transform="s|^rootfs|sdk-${DISTRO}-${DISTRO_ARCH}|" \ >>>> - -c rootfs | xz -T0 > ${DEPLOY_DIR_IMAGE}/sdk-${DISTRO}-${DISTRO_ARCH}.tar.xz >>>> + # generate the SDK in all the desired container formats >>>> + if [ -n "${container_formats}" ] ; then >>>> + bbnote "Generating SDK container in${container_formats} format" >>>> + sdk_container_images "${container_formats}" >>>> + fi >>>> } >>>> addtask populate_sdk after do_rootfs >>>> >>> How much of this would be reusable of generating a container from a >>> target rootfs? We should avoid shuffling code around if we can already >>> line things up nicely while introducing it. >> With that reuse in mind I can refactor the code to have a class that can be reused for both SDK and target rootfs. It's not a big deal. >> >> Is it somehow related to the huge "some image classes" thread that is active right now? >> > Not directly related, but container images would fall into that same > category. What do you have in mind? How should I structure the functions, classes, tasks,...? In a separate bbclass providing only generic functions that can containerize whatever rootfs (e.g. target) they're given (currently only for the SDK calling them from "populate_sdk")? Similar to "debianize.bbclass". Something I can do easily. In a separate bbclass following the pattern of the other "-img.bclass" (e.g. "container-img.bbclass")? I mean providing not only functions even new tasks. Would be harder to accomplish. Are the "-img.bbclass" classes only for target images? I wonder why "targz-img.bbclass" doesn't take care of "packaging" also the SDK. Not because of code reuse (too short code, to many differences on the TAR call), but for logical consistency.   Silvano > > Jan > -- Siemens AG, T RDA IOT SES-DE Corporate Competence Center Embedded Linux