From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7178866829012500480 X-Received: by 2002:a05:6e02:1184:b0:308:29d5:e429 with SMTP id y4-20020a056e02118400b0030829d5e429mr891415ili.281.1671460189106; Mon, 19 Dec 2022 06:29:49 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6602:314a:b0:6da:9bee:b03e with SMTP id m10-20020a056602314a00b006da9beeb03els1441833ioy.2.-pod-prod-gmail; Mon, 19 Dec 2022 06:29:48 -0800 (PST) X-Google-Smtp-Source: AMrXdXvBDoJmJOk/c4dXd6dYbuKDqaRL81aYffkeEFRnDtKwODojru5LVMjZ61/7bNoreA9BzeXk X-Received: by 2002:a6b:ea17:0:b0:6eb:3bcc:a9ca with SMTP id m23-20020a6bea17000000b006eb3bcca9camr2796221ioc.8.1671460188629; Mon, 19 Dec 2022 06:29:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671460188; cv=none; d=google.com; s=arc-20160816; b=g8ndnJk2lsBC8JwIQTzV+giOKfm+yMz5shM45YXCbxYEN88GwbddOgA+5oTUX4YU8j KwTlmf9QiplmBhH/NMpUNpJmWkgSbZgUsPOEi51YccpO46VMoaJnZc8zVUuJAyQCtdVO UPL61n9frq2irB36WfbF/+njYEWfAjqp7XlxYFeK41rN9EEjwjI24HsBtsqj10X/B9kz HwR1WxdXyJOTst0hVh4jH8ZGA4R6zUPBoFG4abZBNB9ichclljmehIaXvKJcdBZdxZch oEs4MvyIr0fPEkJvOTC/fewdktu+GePkk2dcJXS8JOwRr5c9KkqM0QZSEjBFNrWuaF+D 33kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=xfqCaKyNS1lXKMjnLvkJUNfe9l3D6Rb/7uSw8rfG1aM=; b=rPCr8BGTrL66wvVPUHtPTjCLJDGRjd8gt7aElt3eOFDUsyHUoK8PGNwN54e4eNJW28 dS+STiyXq53Q+wGxoQaHaAQtzUQHHfZvLn3qIU3i7FLV1HRMddfsSqtaHU6WZbE1Qpyf Vgdeecv//WqiaLvEyYaxMV9OUiUnSBV+8boRseAuwO9MOv5GN+RjGFcx7HKRLhROIRx7 cnihHMCXk2d9Bjb76di9u3qVNylWDCaOXmbMucFX9as5on2jjgZTXBnUB6A3Fm08unIS /XHvkNsO5gAJ4yGPqZIx0j9Bcxvp+OupiC8bXAvovcwV6zbiqvUEo1NIg8C3jEE1sgIH /odg== 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 g4-20020a6b6b04000000b006e2d7e57bbfsi873734ioc.1.2022.12.19.06.29.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 19 Dec 2022 06:29:48 -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 alena-nb.promwad.com ([194.49.52.147]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 2BJETfTb029168 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 19 Dec 2022 15:29:45 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH 4/5] meta: unify cross selection Date: Mon, 19 Dec 2022 17:29:32 +0300 Message-Id: <20221219142933.12437-5-amikan@ilbers.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221219142933.12437-1-amikan@ilbers.de> References: <20221219142933.12437-1-amikan@ilbers.de> 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: wTKnD+mIZIVU Unify and move ISAR_CROSS_COMPILE related logic into one location. Signed-off-by: Anton Mikanovich --- meta/classes/buildchroot.bbclass | 18 +---------------- meta/classes/crossvars.bbclass | 34 ++++++++++++++++++++++++++++++++ meta/classes/dpkg-base.bbclass | 2 +- meta/classes/dpkg.bbclass | 2 +- meta/classes/sbuild.bbclass | 18 +---------------- meta/classes/sdk.bbclass | 17 +++------------- 6 files changed, 41 insertions(+), 50 deletions(-) create mode 100644 meta/classes/crossvars.bbclass diff --git a/meta/classes/buildchroot.bbclass b/meta/classes/buildchroot.bbclass index 72eb80bc..06acc2da 100644 --- a/meta/classes/buildchroot.bbclass +++ b/meta/classes/buildchroot.bbclass @@ -3,23 +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 or \ - (d.getVar('HOST_DISTRO') == "debian-stretch" and distro_arch == "i386"): - 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 00000000..9fc0f81a --- /dev/null +++ b/meta/classes/crossvars.bbclass @@ -0,0 +1,34 @@ +# 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', True) + distro_arch = d.getVar('DISTRO_ARCH') + if mode == "0" or d.getVar('HOST_ARCH') == distro_arch or \ + (d.getVar('HOST_DISTRO') == "debian-stretch" and distro_arch == "i386"): + 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', True) == "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 f2b883a6..c4aefded 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -291,7 +291,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')) install_deps = ":" if d.getVar('BB_CURRENTTASK') == "devshell_nodeps" else f"mk-build-deps -i \ diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index 7822b14d..c084fdf0 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 b49eae79..d61f0fda 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -5,23 +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 or \ - (d.getVar('HOST_DISTRO') == "debian-stretch" and distro_arch == "i386"): - 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 79e01a19..598e7243 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.17.1