From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7197016923412889600 X-Received: by 2002:a5d:49cd:0:b0:2c3:be6a:d7d4 with SMTP id t13-20020a5d49cd000000b002c3be6ad7d4mr1012783wrs.11.1677248675927; Fri, 24 Feb 2023 06:24:35 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6000:a18:b0:2c5:55ca:3a3b with SMTP id co24-20020a0560000a1800b002c555ca3a3bls754978wrb.1.-pod-prod-gmail; Fri, 24 Feb 2023 06:24:34 -0800 (PST) X-Google-Smtp-Source: AK7set/rHfgaoZKjgzq7MUbCw920/2Q0/CYW36qTbLqyDbJ+E1B9QiJ1zfGni7WKZpwPDd9gOMxM X-Received: by 2002:a5d:6089:0:b0:2c5:5327:1b09 with SMTP id w9-20020a5d6089000000b002c553271b09mr14582980wrt.37.1677248674641; Fri, 24 Feb 2023 06:24:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677248674; cv=none; d=google.com; s=arc-20160816; b=MFkNB5NKTxfJ3t5OS6WIg47O9wh1/W7yHJEHsq+Xt4zUB/48JNEEk4/BFg1a4BdCon rGzoosK94hocEpuMh3OGDGRYbqPB2PaA1EKqhqdPqwYQ9ClTAOWDlICoz9RlowPICnFu VadLuvT7GSx3lip1A40/FmwEnLY5XUW58c640Pa79897LGE2khfgP75GjyMiZ2XsTs2U KG3G5YmnhhKRagMZy/TwM+aos2YyAuWCK0S9KkVu/2cOOP5EEvrbzlxZ64HEZCVvtCdl yMCXsSXKKQYocO8Cjm3+koJ69/4wakR9yT4WHcideqNK4yl5Ewv1zM8olBgTm2gRVuDr tCHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=feedback-id:content-transfer-encoding:mime-version:message-id:date :subject:cc:to:from:dkim-signature; bh=10rmnVP4bBUWS8wuA87JE/OtB8iQ052yoEVx5PNJECg=; b=NOPdsqrzWWfEam47a1ifrG1H6DhT4aUx8MRFlSHFkJdct8nOB4GacP4uFbmxVLMFox ahW9fMHO9R2IFF5ya7hv8CBQM7BgALgJqPNVPXRq6SVDooHKXCFxCTUAU/DTVotyl5H3 Nlcy9iCWHLc+UFvJE8wtqHBOG+q2yOyFNoUYD1IMjDlmHVRqUaHJ06nK37fSK4kRXRAf LWUvMIBDhNQNcJ+pqtPSWL/FFCxiQC7y16SfJQ44l1nEYQCTvn2NvOlwGNT0F48dOpX9 ZjmCeFUthvkh18/h9xyIFR/AtqJqUGhafDPYUfphbt/7YOZsCns+pBFtnvganvGDvwnL dZ+Q== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=E3Rt5e5V; spf=pass (google.com: domain of fm-526363-2023022414243302b3d878aa720b9cdd-xy4zcg@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-526363-2023022414243302b3d878aa720b9cdd-XY4zCG@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net. [185.136.64.227]) by gmr-mx.google.com with ESMTPS id cc13-20020a5d5c0d000000b002c6eaaaac82si524674wrb.7.2023.02.24.06.24.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Feb 2023 06:24:34 -0800 (PST) Received-SPF: pass (google.com: domain of fm-526363-2023022414243302b3d878aa720b9cdd-xy4zcg@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) client-ip=185.136.64.227; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=E3Rt5e5V; spf=pass (google.com: domain of fm-526363-2023022414243302b3d878aa720b9cdd-xy4zcg@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-526363-2023022414243302b3d878aa720b9cdd-XY4zCG@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 2023022414243302b3d878aa720b9cdd for ; Fri, 24 Feb 2023 15:24:34 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=adriaan.schmidt@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc; bh=10rmnVP4bBUWS8wuA87JE/OtB8iQ052yoEVx5PNJECg=; b=E3Rt5e5ViX/S6R0KPR8ZyvG4sXfMXxP25c9ehWDv43kunoV7LlpSLLAl7WKQ2AnWja9GJx FlELAAAtXRoFxLR/baRhrlusaM4kXP7w5K0ummJauPxJg6mduaFd2fO7xZMeoNolpalBWZlr 2WYoZ5sVGJHq2d1DxolfJ53mDXejQ=; From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v3 0/4] multiarch support Date: Fri, 24 Feb 2023 15:24:28 +0100 Message-Id: <20230224142432.3767746-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-526363:519-21489:flowmailer X-TUID: oPrclJpP9MsQ This adds `-compat` and `-native` bitbake targets to all recipes inheriting dpkg-base. The new -compat build variant replaces the old compat mechanism. Note that `ISAR_ENABLE_COMPAT_ARCH="1"` is still required to ensure that the bootstrap and buildchroot is prepared correctly. Regarding testing of the new features: - we have (limited) testing of compat, by adding `hello-isar-compat` to amd64 and arm64 builds. - currently no testing of native. There are two main use cases for the feature: - SDK that needs `-native`. This could be turned into a test easily, by setting/appending SDK_INSTALL. Would require a new option in testsuite, similar to `image_install` introduced in 57a0ade9a. - A build tool that is provided by a recipe, when using it in cross compilation. E.g. if someone needed a patched cmake, they would write cmake.bb, and applications that need it would (in case cross compilation is enabled) DEPEND+="cmake-native". Or, another real-world example from a downstream layer: packaging applications with goreleaser, which is not found in the Debian apt repos. Instead, I'm fetching it via a dpkg-prebuilt recipe, written to support multiple architectures (architecture is part of the download URL). Now if I want to cross compile go applications, they DEPEND+="goreleaser-native", and DEBIAN_BUILD_DEPENDS_append=", goreleaser:native". These cases are more complex, but maybe we can find an example along those lines and add it to meta-isar. As testing of the native feature would (in the simple case) need an extension of the test classes (for SDK_INSTALL), or introduce something completely new into meta-isar, I'd like to do that after discussion, in a later series. Adriaan changes since v2: - fixed a bug that completely broke things for targets without a compat arch (e.g., i386). The compat variant of packages is now only available when it can actually be built. - the native variant is only generated if it differs from the target. If DISTRO_ARCH==HOST_ARCH, then `-native` is automatically provided by the target package. - also do the bitbake-target->debian-package transformation on SDK_INSTALL - fix compat packages in testsuite: when we add hello-isar-compat, we need to remove hello-isar. changes since v1: - fixed an issue that prevented arch overrides of ISAR_ENABLE_COMPAT_ARCH, which is used in testsuite - added `-native` expansion to contents of IMAGE_INSTALL - documentation in user_manual Adriaan Schmidt (4): bitbake.conf: use PACKAGE_ARCH in overrides add multiarch support remove obsolete compat-arch override doc: add compat/native targets to user manual doc/user_manual.md | 19 ++-- .../recipes-app/hello-isar/hello-isar.bb | 3 - meta-isar/recipes-app/libhello/libhello.bb | 3 - .../recipes-app/samefile/samefile_2.14.bb | 2 +- meta/classes/compat.bbclass | 40 +++++++++ meta/classes/debianize.bbclass | 2 +- meta/classes/dpkg-base.bbclass | 1 + meta/classes/image.bbclass | 4 +- meta/classes/multiarch.bbclass | 88 +++++++++++++++++++ meta/classes/native.bbclass | 10 +++ meta/classes/sdk.bbclass | 2 +- meta/conf/bitbake.conf | 6 +- .../isar-bootstrap/isar-bootstrap.inc | 2 + .../sbuild-chroot/sbuild-chroot.inc | 14 +-- testsuite/cibuilder.py | 4 + 15 files changed, 174 insertions(+), 26 deletions(-) create mode 100644 meta/classes/compat.bbclass create mode 100644 meta/classes/multiarch.bbclass create mode 100644 meta/classes/native.bbclass -- 2.30.2