From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7199546208794181632 X-Received: by 2002:a17:90b:4003:b0:232:d23a:8314 with SMTP id ie3-20020a17090b400300b00232d23a8314mr2747715pjb.96.1676274980693; Sun, 12 Feb 2023 23:56:20 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:902:c3c3:b0:19a:9972:d4e with SMTP id j3-20020a170902c3c300b0019a99720d4els2915407plj.6.-pod-prod-gmail; Sun, 12 Feb 2023 23:56:20 -0800 (PST) X-Google-Smtp-Source: AK7set+jtucv+SNzpABYRTXdrBpqxdKWLOzltlxMDrQQCqK2nLpNdJoNjeQ+A5i8RWD9CoDRwUWf X-Received: by 2002:a17:902:ea0d:b0:19a:aba6:f22f with SMTP id s13-20020a170902ea0d00b0019aaba6f22fmr227911plg.52.1676274979925; Sun, 12 Feb 2023 23:56:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676274979; cv=none; d=google.com; s=arc-20160816; b=FRNWRxp6/+5suBFCZzRn3MFVrquShEc4vmRAkllTVJD0EBs2mi+FXgfEmtepnI0agI q7zZN5jxrfg3jwfwV3lY4gcuKcQ49J0HzH30Fh6gZUq8MxAvvZRwR8RlkBeV1rpf6cPh mxFtMnKQ4VofwtTYD9k66aCXSmAvOV71nNRzr4D+Jaxl2grkomM3YcPceD15bHQbDBSF X0N7WcPUd8FFv+Fiotd2jl2ibD24Qm75dIi62kAaUfp0quF86kMX+Qp0vbVjQMVBpRZw rdzinnjg3rsCEQMFMR0H+MXTxOeydwKhgjC0k0GKqEIE+hghgsmuJxp++hs6jjuihm0M 0dSg== ARC-Message-Signature: i=1; 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; bh=gjnWZCMNQg8+VTDgc5eY1DbRxBw/0O/7OXdq944Ej6M=; b=vAjzjyLP6wxGgbXJQyIEkfVd69nKz2RxAX+dR/8aTYxLmFfR8cpOnkfC23HRtiOsyV 3ozN4UKDsNyLY75sXZ2Z/0GKuurKJuiDmbxaPGq43phwm+ZWHva7YMqRkAfPTyjTZFz1 PtS8AFcOzte7Znh4MRpAyXaAM9H5Rr65keJjd1aQNPJGIcOObis3FwVKVnkHxULTyiWT y08vSPm1VZZS8xNxQsFWSsjChKM/KCv229NzJTGIscJty3v/o20ql6IjE0CjrGpwXCJv 0WsLhOzvIQh7f/86FYGv1lQqKKHzXSVYCT7lVcMzcZpUTDKTwgI4G9fIzpuevaq5IwjJ 34GA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id o7-20020a170902d4c700b0019a906fbc02si287835plg.7.2023.02.12.23.56.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 12 Feb 2023 23:56:19 -0800 (PST) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from user-B660.. ([85.254.74.215]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 31D7uDHI003701 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Feb 2023 08:56:17 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v2 3/4] meta: unify cross selection Date: Mon, 13 Feb 2023 09:56:10 +0200 Message-Id: <20230213075611.5694-4-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230213075611.5694-1-amikan@ilbers.de> References: <20230213075611.5694-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: 1ZZLVcf/qzF+ Unify and move ISAR_CROSS_COMPILE related logic into one location. Signed-off-by: Anton Mikanovich --- meta/classes/buildchroot.bbclass | 17 +--------------- meta/classes/crossvars.bbclass | 33 ++++++++++++++++++++++++++++++++ meta/classes/dpkg-base.bbclass | 2 +- meta/classes/dpkg.bbclass | 2 +- meta/classes/sbuild.bbclass | 17 +--------------- meta/classes/sdk.bbclass | 17 +++------------- 6 files changed, 40 insertions(+), 48 deletions(-) create mode 100644 meta/classes/crossvars.bbclass diff --git a/meta/classes/buildchroot.bbclass b/meta/classes/buildchroot.bbclass index 3d68d29..e4a7a57 100644 --- a/meta/classes/buildchroot.bbclass +++ b/meta/classes/buildchroot.bbclass @@ -3,22 +3,7 @@ # # SPDX-License-Identifier: MIT -ISAR_CROSS_COMPILE ??= "0" - -# Choose the correct buildchroot: host or target -python __anonymous() { - mode = d.getVar('ISAR_CROSS_COMPILE', True) - distro_arch = d.getVar('DISTRO_ARCH') - if mode == "0" or d.getVar('HOST_ARCH') == distro_arch: - dep = "buildchroot-target:do_build" - rootfs = d.getVar('BUILDCHROOT_TARGET_DIR', False) - else: - dep = "buildchroot-host:do_build" - rootfs = d.getVar('BUILDCHROOT_HOST_DIR', False) - - d.setVar('BUILDCHROOT_DEP', dep) - d.setVar('BUILDCHROOT_DIR', rootfs) -} +inherit crossvars MOUNT_LOCKFILE = "${BUILDCHROOT_DIR}.lock" diff --git a/meta/classes/crossvars.bbclass b/meta/classes/crossvars.bbclass new file mode 100644 index 0000000..3686dbe --- /dev/null +++ b/meta/classes/crossvars.bbclass @@ -0,0 +1,33 @@ +# This software is a part of ISAR. +# Copyright (C) 2022 ilbers GmbH + +ISAR_CROSS_COMPILE ??= "0" + +python __anonymous() { + import pwd + d.setVar('SCHROOT_USER', pwd.getpwuid(os.geteuid()).pw_name) + + mode = d.getVar('ISAR_CROSS_COMPILE') + distro_arch = d.getVar('DISTRO_ARCH') + if mode == "0" or d.getVar('HOST_ARCH') == distro_arch: + d.setVar('BUILD_HOST_ARCH', distro_arch) + schroot_dir = d.getVar('SCHROOT_TARGET_DIR', False) + sbuild_dep = "sbuild-chroot-target:do_build" + buildchroot_dir = d.getVar('BUILDCHROOT_TARGET_DIR', False) + buildchroot_dep = "buildchroot-target:do_build" + sdk_toolchain = "build-essential" + else: + d.setVar('BUILD_HOST_ARCH', d.getVar('HOST_ARCH')) + schroot_dir = d.getVar('SCHROOT_HOST_DIR', False) + sbuild_dep = "sbuild-chroot-host:do_build" + buildchroot_dir = d.getVar('BUILDCHROOT_HOST_DIR', False) + buildchroot_dep = "buildchroot-host:do_build" + sdk_toolchain = "crossbuild-essential-" + distro_arch + d.setVar('SCHROOT_DIR', schroot_dir) + d.setVar('SCHROOT_DEP', sbuild_dep) + d.setVar('BUILDCHROOT_DIR', buildchroot_dir) + d.setVar('BUILDCHROOT_DEP', buildchroot_dep) + if d.getVar('ISAR_ENABLE_COMPAT_ARCH') == "1": + sdk_toolchain += " crossbuild-essential-" + d.getVar('COMPAT_DISTRO_ARCH') + d.setVar('TOOLCHAIN', sdk_toolchain) +} diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index ad28f7b..4c0fdc7 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -295,7 +295,7 @@ python do_devshell() { schroot = d.getVar('SBUILD_CHROOT') isar_apt = d.getVar('ISAR_APT_REPO') pkg_arch = d.getVar('PACKAGE_ARCH', True) - build_arch = d.getVar('SBUILD_HOST_ARCH', True) + build_arch = d.getVar('BUILD_HOST_ARCH', True) pp_pps = os.path.join(d.getVar('PP'), d.getVar('PPS')) debdistroname = d.getVar('DEBDISTRONAME') diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index d528503..52c200d 100644 --- a/meta/classes/dpkg.bbclass +++ b/meta/classes/dpkg.bbclass @@ -102,7 +102,7 @@ dpkg_runbuild() { DSC_FILE=$(find ${WORKDIR} -name "${DEB_SOURCE_NAME}*.dsc" -print) sbuild -A -n -c ${SBUILD_CHROOT} --extra-repository="${ISAR_APT_REPO}" \ - --host=${PACKAGE_ARCH} --build=${SBUILD_HOST_ARCH} ${profiles} \ + --host=${PACKAGE_ARCH} --build=${BUILD_HOST_ARCH} ${profiles} \ --no-run-lintian --no-run-piuparts --no-run-autopkgtest --resolve-alternatives \ --no-apt-update \ --chroot-setup-commands="echo \"Package: *\nPin: release n=${DEBDISTRONAME}\nPin-Priority: 1000\" > /etc/apt/preferences.d/isar-apt" \ diff --git a/meta/classes/sbuild.bbclass b/meta/classes/sbuild.bbclass index ea3fb34..995f7a5 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -5,22 +5,7 @@ SCHROOT_CONF ?= "/etc/schroot" SCHROOT_MOUNTS ?= "" -python __anonymous() { - import pwd - d.setVar('SCHROOT_USER', pwd.getpwuid(os.geteuid()).pw_name) - - mode = d.getVar('ISAR_CROSS_COMPILE', True) - distro_arch = d.getVar('DISTRO_ARCH') - if mode == "0" or d.getVar('HOST_ARCH') == distro_arch: - d.setVar('SBUILD_HOST_ARCH', distro_arch) - d.setVar('SCHROOT_DIR', d.getVar('SCHROOT_TARGET_DIR', False)) - dep = "sbuild-chroot-target:do_build" - else: - d.setVar('SBUILD_HOST_ARCH', d.getVar('HOST_ARCH')) - d.setVar('SCHROOT_DIR', d.getVar('SCHROOT_HOST_DIR', False)) - dep = "sbuild-chroot-host:do_build" - d.setVar('SCHROOT_DEP', dep) -} +inherit crossvars SBUILD_CHROOT ?= "${DEBDISTRONAME}-${SCHROOT_USER}-${ISAR_BUILD_UUID}-${@os.getpid()}" diff --git a/meta/classes/sdk.bbclass b/meta/classes/sdk.bbclass index 0a98ea0..d7add82 100644 --- a/meta/classes/sdk.bbclass +++ b/meta/classes/sdk.bbclass @@ -5,6 +5,8 @@ # # This class extends the image.bbclass to supply the creation of a sdk +inherit crossvars + # hook up the -sdk image variant BBCLASSEXTEND = "sdk" BPN = "${PN}" @@ -42,23 +44,10 @@ SDK_PREINSTALL += " \ devscripts \ equivs" -# Choose the correct toolchain: cross or native -python __anonymous() { - mode = d.getVar('ISAR_CROSS_COMPILE', True) - distro_arch = d.getVar('DISTRO_ARCH') - if mode == "0" or d.getVar('HOST_ARCH') == distro_arch: - toolchain = "build-essential" - else: - toolchain = "crossbuild-essential-" + distro_arch - if d.getVar('ISAR_ENABLE_COMPAT_ARCH', True) == "1": - toolchain += " crossbuild-essential-" + d.getVar('COMPAT_DISTRO_ARCH') - d.setVar('TOOLCHAIN', toolchain) -} - # rootfs/image overrides for the SDK ROOTFS_ARCH:class-sdk = "${HOST_ARCH}" ROOTFS_DISTRO:class-sdk = "${HOST_DISTRO}" -ROOTFS_PACKAGES:class-sdk = "sdk-files ${TOOLCHAIN} ${SDK_PREINSTALL} ${SDK_INSTALL}" +ROOTFS_PACKAGES:class-sdk = "sdk-files ${SDK_TOOLCHAIN} ${SDK_PREINSTALL} ${SDK_INSTALL}" ROOTFS_FEATURES:append:class-sdk = " clean-package-cache generate-manifest export-dpkg-status" ROOTFS_MANIFEST_DEPLOY_DIR:class-sdk = "${DEPLOY_DIR_SDKCHROOT}" ROOTFS_DPKGSTATUS_DEPLOY_DIR:class-sdk = "${DEPLOY_DIR_SDKCHROOT}" -- 2.34.1