From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7189683592595767296 X-Received: by 2002:adf:e402:0:b0:2ba:8f0a:e53a with SMTP id g2-20020adfe402000000b002ba8f0ae53amr209819wrm.249.1673978658033; Tue, 17 Jan 2023 10:04:18 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:1d93:b0:3cf:9be3:73dd with SMTP id p19-20020a05600c1d9300b003cf9be373ddls9663168wms.3.-pod-canary-gmail; Tue, 17 Jan 2023 10:04:17 -0800 (PST) X-Google-Smtp-Source: AMrXdXvOaLW61JXKhtJhDbHZr2KqER9v7T4BREG+6wsrIy7NtaY4FKL4jvOJFhFBRu1yBjoNoCVI X-Received: by 2002:a05:600c:228d:b0:3d1:ee97:980 with SMTP id 13-20020a05600c228d00b003d1ee970980mr4052857wmf.7.1673978656930; Tue, 17 Jan 2023 10:04:16 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673978656; cv=pass; d=google.com; s=arc-20160816; b=QK8KnuY9hq3d3CYWFcdAQKC9soVtUhVQcNGoaRBGDf0UtaBpeazfgQS5BdU0Szr4Y0 RUFRJISG3BegFt1PtzrjFOL7ZXJO9QuB2PbAoESPf9sTsBQk2pZvPwamz6lZ8K3VvnUl jM2q0aHMVj7TJdE7QwcFEeOhiqX7hklHP6bWidyZbKb8ySDeU7oX5JrIB3GEqr0BrKG1 G2QN/w8EiDRSEjD9rRgqYSVU9R/ssRPnY7itsSRmq6uDNrcbilAsED2Ysgz97DDiXBWY I5Udp1pc8WXfPPE6my/OPtXY/TMIpAvoSxscOCRCHr/P2svnTbnPRI5dso1hkrEAcjDm 7Dcg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=Gt0rRbQiBQwparPIZmZoyQysUIK4vfuZl0hTAd9f2BY=; b=rjNSduC96qIKNhEmp2RlgJigii7dhkuSq1Mptsy+AzNQnWXYn5NQBss4e5c5vdYzHJ 6PzW8vcQIJsnaPVWeQgcYNxRkyAE4Uyr4jABtQ2/PVBx4+O3DznbylF2W77YRJP9E+0x JgIRS+6GfLOoITeo0PRwYUYZyaOewl1HS/4eEtPr5epA4DNp1TetxMHyNfY1NSHgEz2U xf0+UChQd0czjCaAsbOGK6HlYqu/GncXKBb8X0fpyNlCNsRMiW87Ho40ow1AjblwjagI lQwUJ901NLhB/womk2P4a7tm7BaohYk/cEtMeR+TRTFeu39c1k9XeRgJ8U+rnTXRNiU/ tjBw== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=XZDjEQj8; 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 40.107.7.48 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-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2048.outbound.protection.outlook.com. [40.107.7.48]) by gmr-mx.google.com with ESMTPS id j31-20020a05600c1c1f00b003da0515e72csi919360wms.2.2023.01.17.10.04.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Jan 2023 10:04:16 -0800 (PST) Received-SPF: pass (google.com: domain of adriaan.schmidt@siemens.com designates 40.107.7.48 as permitted sender) client-ip=40.107.7.48; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=XZDjEQj8; 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 40.107.7.48 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=Ermy8/JCB0nrGTVMN9q5qfEz2X8jy4hAm9ego5jWDBjRRApJTqY3hsBw7KCikOgVofgfeRud2/QpZy/LFLl/eDlZjDMORCxmF8SZ4lr80Pldti4zhYqor7zl81rFaSq8hMgSsH5YMehvv5kEDjIfldQ4AB+nYB9maUB3fvF+p6GPzuxLvGmPDaXll7cuoptkTH06/r1MLZWlmfUj2QXnyIh8fkr0XdVwzHRgWqssxYBawiP/NLMFQsSeUrQUJXperUwyrNAs7NsCHVBDsoa1S4ak4APzkqR4r9cyf3SJwckQNYfcuWeYPElKYzhW8PRhmdX3clTq4DRybJ5WK5jb+Q== 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=Gt0rRbQiBQwparPIZmZoyQysUIK4vfuZl0hTAd9f2BY=; b=WCbwpa8gaxzhgZc07oAb1OavAIuTW+Fv63j39UO8FA1upe48rB6abEQhem3hC3JQsv+FpB/AydDTiRlMKgmaoIr10eZdxurAumXLEONXm6asFsF0ng9v1T8jUr3z/zIRMoJ53JnZQqr8q56rX0V3Oj/i044qudBzyrPXjdS0UyfGOIi5O10URGa4RbsNTkMr44SLEenVFXkV6yaQykj0gCyaoYWkvyZOkYCmZZ3sk8pZxZ3OT3GtsDfCgDRsblQX64TJ8+MSbcbLVkXKSPqlzayYOXCI25aoRMUdc6YrdaJRTDGxFyREB9Gj/V8/d5RARftF1QSSGJ7Os5av0k0kzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 194.138.21.75) 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=Gt0rRbQiBQwparPIZmZoyQysUIK4vfuZl0hTAd9f2BY=; b=XZDjEQj8xcMNWyOz1RGtSLMH8mAv2EBXkamXlVJ0sDACBBP2DmuWvKklKZ5Ii/qQE8qPI3cV0FprCN4moWb7WjkfUFBpUDDv4nRSQKnkD98jgTd5H71wULv+iKMlhc2N+6pAY9wD4JRDXKhwALVg8YDFSjv2BnrK+L+0z86I03uONBWprgAFd+dezY6A+qDjIXrR7KDBJGhRXbbORcUqtWaYpYf5NdPP1Nxg6ve/1dzer7jeJJWoTx6jWluX/GkIACMDPnkeJnzoPhCvvueYOlT0D+yEK6pfkyuCCm/PhmvLBMGL8GNjgf+QeW9YbE9fEaPGX5gcd25fdpgdiZRy4A== Received: from FR0P281CA0122.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::12) by DU0PR10MB5217.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:345::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.13; Tue, 17 Jan 2023 18:04:14 +0000 Received: from VE1EUR01FT051.eop-EUR01.prod.protection.outlook.com (2603:10a6:d10:97:cafe::c5) by FR0P281CA0122.outlook.office365.com (2603:10a6:d10:97::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6023.12 via Frontend Transport; Tue, 17 Jan 2023 18:04:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 194.138.21.75) 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.75 as permitted sender) receiver=protection.outlook.com; client-ip=194.138.21.75; helo=hybrid.siemens.com; pr=C Received: from hybrid.siemens.com (194.138.21.75) by VE1EUR01FT051.mail.protection.outlook.com (10.152.3.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.13 via Frontend Transport; Tue, 17 Jan 2023 18:04:14 +0000 Received: from DEMCHDC8WBA.ad011.siemens.net (139.25.226.105) by DEMCHDC8VRA.ad011.siemens.net (194.138.21.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.20; Tue, 17 Jan 2023 19:04:13 +0100 Received: from random.ppmd.siemens.net (139.25.68.25) by DEMCHDC8WBA.ad011.siemens.net (139.25.226.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.20; Tue, 17 Jan 2023 19:04:13 +0100 From: Adriaan Schmidt To: CC: , Adriaan Schmidt Subject: [RFC PATCH] native.bbclass Date: Tue, 17 Jan 2023 19:03:58 +0100 Message-ID: <20230117180358.1499566-1-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 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: DEMCHDC8WAA.ad011.siemens.net (139.25.226.104) To DEMCHDC8WBA.ad011.siemens.net (139.25.226.105) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1EUR01FT051:EE_|DU0PR10MB5217:EE_ X-MS-Office365-Filtering-Correlation-Id: 687a7e40-254a-4855-4812-08daf8b53e68 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TU35Wp0+Lt7UE0bQvLDujc4N6OcL9Q+RPBtoWmgENia6IIePJ0W8xZQrdm3zanOMOnYIxj8h5rs/9MHJu9y7MMttXPcNneAApknR+Zz+5qyKUw/tWVIKrwl4LvS6JS98kXTYZkKyU0yx8UhHFiqkbiQqBLCuNSdKr0cML8HaU+oTPz2QuPN+QiSHjpNs8e1q12R2WgpPM+YfB8/tToMsY+hCS02CiBzd2b+cqu+TU8hguxEd/3sBsHuH/7arSKFgJgy8U8eYvWScUm/Z8v+6gsxtD+C6D3cdKe9bat6ixx7B5UWSd8deNFndBbdaiIvER5Nnc+hDpf7Yuwq8QtzYVuXc0eZEzrxD9wrafBtNAU5hxsWgnOcVCn5ydVBbUHeh018GI1c5xWOCX1ucA4rObRlv1jgDG9Z+3YHcTr18e/b/UHtkuB/ZuBwYV+u0i8nQQIozlRBcNvMhjlttcPFkf/jNWbHpqWSH84L7C+XQryxFMyDt6JQcm3IUiCyO8X6KOsHQ5KIOI2ADcB0gXqSdnaSOO7IsNirfYzRJgdBLpGlr6VjWZDQ/Jpiiy3ck+56Zk2KI+bjoxMys0TjKcZlJZWhq4caMbsN0ATBjLPvJ1VdW238kMdl34f8hzspSelppcBDZfh5CioNF19XOWbuGX60Rq4Aky6n04DNPda9ucWl9I7FLMSy608zf/JDoyc1VK5FFbY0gRTYMYCO93Ajyglm8m2E0glH+AHqN8hXZkSQ= X-Forefront-Antispam-Report: CIP:194.138.21.75;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:hybrid.siemens.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(346002)(396003)(376002)(39860400002)(136003)(451199015)(46966006)(40470700004)(36840700001)(36860700001)(82740400003)(82960400001)(40460700003)(36756003)(86362001)(81166007)(356005)(8936002)(41300700001)(44832011)(5660300002)(316002)(4326008)(8676002)(6916009)(70586007)(70206006)(82310400005)(2906002)(336012)(47076005)(40480700001)(956004)(1076003)(2616005)(83380400001)(478600001)(54906003)(26005)(186003)(16526019)(107886003)(6666004)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2023 18:04:14.5593 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 687a7e40-254a-4855-4812-08daf8b53e68 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.75];Helo=[hybrid.siemens.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR01FT051.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB5217 X-TUID: J4Ta8Sszy4rz Hi all, as mentioned by Jan, I have another approach of building native/host/compat arch packages, inspired by OE's native class. The way it works is: - A recipe can inherit native.bbclass (or, if we like we could even add it to all recipes via the dpkg class). - For recipes that inherit native.bbclass, bitbake generates a new bitbake target with suffix `-native`. Recipes can DEPEND on those `-native` packages. My use case that made me develop this is goreleaser, a build tool for which I have a bitbake recipe. If I want to crosscompile, I need it for the host architecture. By DEPENDing on `goreleaser-native`, I can then add `goreleaser:native` to the build dependencies in my control file (the `:native` makes dpkg-buildpackage choose the right architecture). - When building the recipe, the only change is that we set PACKAGE_ARCH=HOST_ARCH. In addition we have the override `class-native`, which is set when building the native variant of the recipe and lets us make conditional changes to what is built. Some caveats/notes: - Both "normal" target arch and `-native` builds generate ARCH=all packages and source packages. So there is potential duplication. In theory those packages should be identical, but we currently don't have any way of knowing. This is in part due to using shared isar-apt to transfer packages between jobs, where the last job to push a package always wins. My earlier RFC on removing (that use of) isar-apt and explicitly transferring dependent packages might help here. In that case we have full control of what packages are provided, and can detect such duplicates. - I'm changing the default overrides to include PACKAGE_ARCH instead of DISTRO_ARCH. Maybe this is how it always should have been? - This is currently only for "native", but I think we can simply duplicate the pattern to also support compat arch packages. - Using PN in recipes can become tricky. For example, I sometimes see the pattern of setting SRC_URI="git://github.com/${PN}/${PN}.git". This would break when building the native variant, as this will then have a different PN. Personally, I don't think this is a big problem. Using ${PN} in SRC_URI may not be a good idea anyways, and if we really need a variable, there is BPN, which does not have the -native suffix. - We currently don't have a use case for this in meta-isar. But maybe we can come up with a good example. I'd like to try if this approach works for the other use cases we have. Adriaan PS: If you'd like some more examples of the BBCLASSEXTEND feature, have a look at the SDK generation, which has been refactored in that way. --- meta/classes/native.bbclass | 13 +++++++++++++ meta/conf/bitbake.conf | 5 +++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 meta/classes/native.bbclass diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass new file mode 100644 index 00000000..896c8a06 --- /dev/null +++ b/meta/classes/native.bbclass @@ -0,0 +1,13 @@ +BBCLASSEXTEND = "native" +BPN = "${PN}" + +python native_virtclass_handler() { + pn = e.data.getVar('PN') + if pn.endswith('-native'): + e.data.setVar('BPN', pn[:-len('-native')]) + e.data.appendVar('OVERRIDES', ':class-native') +} +addhandler native_virtclass_handler +native_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" + +PACKAGE_ARCH_class-native = "${HOST_ARCH}" diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 98412e02..ef962fc7 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -67,8 +67,8 @@ KERNEL_FILE_mipsel ?= "vmlinux" KERNEL_FILE_riscv64 ?= "vmlinux" KERNEL_FILE_arm64 ?= "vmlinux" -OVERRIDES = "${DISTRO_ARCH}:${COMPAT_OVERRIDE}:${MACHINE}:${DISTRO}:${BASE_DISTRO_CODENAME}:forcevariable" -FILESOVERRIDES = "${DISTRO_ARCH}:${MACHINE}" +OVERRIDES = "${PACKAGE_ARCH}:${COMPAT_OVERRIDE}:${MACHINE}:${DISTRO}:${BASE_DISTRO_CODENAME}:forcevariable" +FILESOVERRIDES = "${PACKAGE_ARCH}:${MACHINE}" COMPAT_OVERRIDE = "${@'compat-arch' if d.getVar('ISAR_ENABLE_COMPAT_ARCH') == '1' else ''}" # Setting default QEMU_ARCH variables for different DISTRO_ARCH: @@ -81,6 +81,7 @@ QEMU_ARCH_riscv64 = "riscv64" # Codename of the repository created by the caching class DEBDISTRONAME ?= "isar" +NATIVELSBSTRING ?= "isarnative" # Strings used in sstate signature files TARGET_VENDOR = "" -- 2.30.2