From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7032253102499561472 X-Received: by 2002:ac2:4c50:: with SMTP id o16mr32525103lfk.517.1637324020871; Fri, 19 Nov 2021 04:13:40 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:bc09:: with SMTP id b9ls501842ljf.2.gmail; Fri, 19 Nov 2021 04:13:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJwV47EgBu/DsZb2nAfSTm6FFw3ddD6V2709zZa0QLvV3mMD72z1qf2m2ansDPghKZj6pD/w X-Received: by 2002:a2e:904b:: with SMTP id n11mr5658873ljg.120.1637324019692; Fri, 19 Nov 2021 04:13:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637324019; cv=none; d=google.com; s=arc-20160816; b=nPBDQfGg0V7AJkfK/Uu/fS0z7qwJGKXBHMb4Y9JLxDAwJ9t8jpPtOeDW6ZbYPiXI1S ZC29GHbL8AEkcF2UXh2wvksjiL8kA33LKCaJpj2kYs7flyWmjCE73XtZvP4AvkQYIVa6 k59TvecVPBn9zi8mafwi3LLxru6OH9PzFb7nKm+o1DN2zqcLpDVcpaHJ/N47OHi8doYT Too/rJL/sig8OeUxT2E5thDvoBAHXiGq1ZjI9uIs30WxgEg0nrstkygXgdU1v/PS33U2 WiLMy2bw61AysvPzpaV9gbdEEPbkmePTcI+8yGI+VAEar9Zkzebcxwg8B9U0cXnElhVA AyJg== 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:to:from; bh=8Qcn4WI/vp+FtQoRalihtARs8k+NDz7V0yp/3wGlFHg=; b=ImSmuJ0nK7kxWxAsRl4+ykQ5FXqd+EEEYzzNvFg1jAkwrKGnM00yJtY8JpHYaI3c/3 UnXTarqHfYpEKsmGJ/HT77cKWlEIZ6RQNMwyOOuBQcxw3qcA3AEWoejIdtTfwAV3iM+j Ts3/kSNGyBuluPb36SNlowr1YUtPsCSDiMYAEstNqdz26GF67fzY2A1J/zVZKBm0ClHQ UF8W1xCdZIWIZ+VcvXr1gN0M99tOQzSbS0x+Xs53nWDpsU3fTdH+li2N4Gv2PSuFWDUW ILHHNgEtOy7iP8LdJo5y7DPcUXtlBQd80OCi3qs1uLC1U0Nnn7qvFMhg1DhLzt0OBSrG g45g== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id v25si186232lfr.1.2021.11.19.04.13.39 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 19 Nov 2021 04:13:39 -0800 (PST) Received-SPF: pass (google.com: domain of ubely@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 ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from baighyz.m.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 1AJCDX7O021829 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 19 Nov 2021 13:13:38 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v2 14/24] sbuild: Add recipes for host and target rootfs to run sbuild Date: Fri, 19 Nov 2021 13:13:23 +0100 Message-Id: <20211119121333.13805-15-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20211119121333.13805-1-ubely@ilbers.de> References: <20211119121333.13805-1-ubely@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: NNoYtyXLWhA5 Similar to buildchroot, we need a separate rootfs to be used for schroot. It's based on bootstrapped rootfs, but includes several common build-related packages. Signed-off-by: Uladzimir Bely --- meta/classes/dpkg-base.bbclass | 3 ++ meta/classes/dpkg.bbclass | 1 - meta/classes/sbuild.bbclass | 7 ++-- meta/conf/bitbake.conf | 2 ++ .../isar-bootstrap/isar-bootstrap.inc | 2 +- .../sbuild-chroot/sbuild-chroot-host.bb | 13 +++++++ .../sbuild-chroot/sbuild-chroot-target.bb | 10 ++++++ .../sbuild-chroot/sbuild-chroot.inc | 36 +++++++++++++++++++ 8 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb create mode 100644 meta/recipes-devtools/sbuild-chroot/sbuild-chroot-target.bb create mode 100644 meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 8bbc4165..acf967ac 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -4,6 +4,7 @@ # # SPDX-License-Identifier: MIT +inherit sbuild inherit buildchroot inherit debianize inherit terminal @@ -214,6 +215,8 @@ python do_dpkg_build() { addtask dpkg_build before do_build +do_dpkg_build[depends] = "${SCHROOT_DEP}" + KEEP_INSTALLED_ON_CLEAN ?= "0" CLEANFUNCS += "deb_clean" diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index 6da61185..d49648be 100644 --- a/meta/classes/dpkg.bbclass +++ b/meta/classes/dpkg.bbclass @@ -2,7 +2,6 @@ # Copyright (C) 2015-2018 ilbers GmbH inherit dpkg-base -inherit sbuild PACKAGE_ARCH ?= "${DISTRO_ARCH}" diff --git a/meta/classes/sbuild.bbclass b/meta/classes/sbuild.bbclass index a03883f0..80f9ef25 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -15,8 +15,13 @@ python __anonymous() { 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')) + 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')) + dep = "sbuild-chroot-host:do_build" + d.setVar('SCHROOT_DEP', dep) } SBUILD_CHROOT ?= "${DEBDISTRONAME}-${SCHROOT_USER}-${@os.getpid()}" @@ -25,8 +30,6 @@ SBUILD_CHROOT_RW ?= "${SBUILD_CHROOT}-rw" SBUILD_CONF_DIR ?= "${SCHROOT_CONF}/${SBUILD_CHROOT}" SCHROOT_CONF_FILE ?= "${SCHROOT_CONF}/chroot.d/${SBUILD_CHROOT}" -SCHROOT_DIR ?= "${DEPLOY_DIR_BOOTSTRAP}/${DISTRO}-${SBUILD_HOST_ARCH}" - schroot_create_configs() { sudo -s <<'EOSUDO' set -e diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index dce467b2..83508ccc 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -57,6 +57,8 @@ DL_DIR ?= "${TOPDIR}/downloads" SSTATE_DIR ?= "${TMPDIR}/sstate-cache" BUILDCHROOT_HOST_DIR = "${DEPLOY_DIR_BUILDCHROOT}-host/${HOST_DISTRO}-${HOST_ARCH}_${DISTRO}-${DISTRO_ARCH}" BUILDCHROOT_TARGET_DIR = "${DEPLOY_DIR_BUILDCHROOT}-target/${DISTRO}-${DISTRO_ARCH}" +SCHROOT_HOST_DIR = "${DEPLOY_DIR}/schroot-host/${HOST_DISTRO}-${HOST_ARCH}_${DISTRO}-${DISTRO_ARCH}" +SCHROOT_TARGET_DIR = "${DEPLOY_DIR}/schroot-target/${DISTRO}-${DISTRO_ARCH}" SDKCHROOT_DIR = "${DEPLOY_DIR_SDKCHROOT}/${DISTRO}-${DISTRO_ARCH}" CACHE = "${TMPDIR}/cache" KERNEL_FILE ?= "vmlinuz" diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc index 1b227028..e9f92916 100644 --- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc +++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc @@ -25,7 +25,7 @@ APTSRCS_INIT = "${WORKDIR}/apt-sources-init" DISTRO_BOOTSTRAP_KEYFILES = "" THIRD_PARTY_APT_KEYFILES = "" DEPLOY_ISAR_BOOTSTRAP ?= "" -DISTRO_BOOTSTRAP_BASE_PACKAGES = "locales,fakeroot,build-essential,debhelper" +DISTRO_BOOTSTRAP_BASE_PACKAGES = "locales" DISTRO_BOOTSTRAP_BASE_PACKAGES_append_gnupg = ",gnupg" DISTRO_BOOTSTRAP_BASE_PACKAGES_append_https-support = "${@https_support(d)}" DISTRO_VARS_PREFIX ?= "${@'HOST_' if d.getVar('BOOTSTRAP_FOR_HOST') == '1' else ''}" diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb new file mode 100644 index 00000000..aa82846b --- /dev/null +++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb @@ -0,0 +1,13 @@ +# Root filesystem for packages building +# +# This software is a part of ISAR. +# Copyright (C) 2015-2021 ilbers GmbH + +DESCRIPTION = "Isar sbuild/schroot filesystem for host" + +SBUILD_VARIANT = "host" + +require sbuild-chroot.inc + +ROOTFS_ARCH = "${HOST_ARCH}" +ROOTFS_DISTRO = "${HOST_DISTRO}" diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-target.bb b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-target.bb new file mode 100644 index 00000000..d75d783b --- /dev/null +++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot-target.bb @@ -0,0 +1,10 @@ +# Root filesystem for packages building +# +# This software is a part of ISAR. +# Copyright (C) 2015-2021 ilbers GmbH + +DESCRIPTION = "Isar sbuild/schroot filesystem for target" + +SBUILD_VARIANT = "target" + +require sbuild-chroot.inc diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc new file mode 100644 index 00000000..177a8a6d --- /dev/null +++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc @@ -0,0 +1,36 @@ +# Common part for build chroot filesystem. +# +# This software is a part of ISAR. +# Copyright (C) 2015-2021 ilbers GmbH + +LICENSE = "gpl-2.0" +LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" + +PV = "1.0" + +inherit rootfs + +SBUILD_CHROOT_PREINSTALL_COMMON = " \ + fakeroot \ + build-essential \ + debhelper \ +" + +SBUILD_CHROOT_PREINSTALL ?= " \ + ${SBUILD_CHROOT_PREINSTALL_COMMON} \ +" + +SBUILD_CHROOT_DIR = "${WORKDIR}/rootfs" +ROOTFSDIR = "${SBUILD_CHROOT_DIR}" +ROOTFS_PACKAGES = "${SBUILD_CHROOT_PREINSTALL}" + +# We don't need /etc/apt/sources.list.d/isar-apt.list' while it's handled by sbuild +ROOTFS_CONFIGURE_COMMAND_remove = "rootfs_configure_isar_apt" + +DEPLOY_SCHROOT = "${@d.getVar('SCHROOT_' + d.getVar('SBUILD_VARIANT').upper() + '_DIR')}" + +do_sbuildchroot_deploy[dirs] = "${DEPLOY_DIR}/schroot-${SBUILD_VARIANT}" +do_sbuildchroot_deploy() { + ln -Tfsr "${ROOTFSDIR}" "${DEPLOY_SCHROOT}" +} +addtask sbuildchroot_deploy before do_build after do_rootfs -- 2.20.1