From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6463342265335021568 X-Received: by 10.159.32.164 with SMTP id 33mr8040740uaa.68.1505203061558; Tue, 12 Sep 2017 00:57:41 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.36.200.85 with SMTP id w82ls722965itf.22.gmail; Tue, 12 Sep 2017 00:57:41 -0700 (PDT) X-Google-Smtp-Source: ADKCNb64KbMtuxqOjvMiStiQvlFJdDE+Hed7kGh44/AzWY8FEjK0w/cTUzdm7dDqWQktub0bcdsP X-Received: by 10.101.80.1 with SMTP id f1mr8686518pgo.46.1505203061194; Tue, 12 Sep 2017 00:57:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1505203061; cv=none; d=google.com; s=arc-20160816; b=MaFw1B1Iz4TMNyUrpdhfY2wPF1XQKvLJw2QdVdSNj4FLP89J+w0XP2DNyZa5Memc92 vo9Qd2wNSnE46I+7mYxlFuCRkiVSb/t/kDzN7EG0cf+RkD6vKxFZzZvm6c1QPYXJBfaR 633Ng+xH3M0CJ77FwNZLQA9hMKjq3MKVrWGPiwOOnlYRYNdTLw/z+o/mt6+mFkRVH8fg y8HOdMJ+aC0sUlFl2kZjEC7KN38RGQM22DIr9YEkiVyUH59ohGNH+YObKHrTZfuwgZzt PhNbokBevnlIuEoaZb/xQjW6/X0DXdoez400e30ymFEwKYZVaFzU2Zd7wN4/k4MUCMGJ ZUfw== 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 :arc-authentication-results; bh=Iu1JETX0OUlU6tdGlnbAcY2sCufMpUk+ceSbXEM4EBQ=; b=UdtolwGh21BqqA45xq5X45TdHfDp/8NQl5OEaGAcXGn6sCHcEwwvRWk/OxkSG2bAvD FLp+FCh9gZOe40yUf77hEZps3njLSvRFf8ZIqCk9lPMaU+paX+qxRCdkvqTR2CId4Vim tijQHLYxvHtPTlGuo2n/u6q7l7pKM6zMZDfPqr6XfQi/ZecQtkvC3DIsPCfI1hQwjY58 Sn4X9dKpDHxb5HEITkUh8cYmDWx8eMNLKipC0KI3dPvr/jvJzAs/ajMas7jNtvnElQTS 70sjVm7R5G9x2GGX0rZQIjBYkQptjIyc2Q8NsOwLzOyodrW3dt5wOEAjfYe4CStH/pdt eq7g== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Return-Path: Received: from aqmola.ilbers.de (aqmola.ilbers.de. [85.214.62.211]) by gmr-mx.google.com with ESMTPS id y125si665875itb.0.2017.09.12.00.57.40 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Sep 2017 00:57:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) client-ip=85.214.62.211; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Received: from localhost.localdomain ([188.227.110.165]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id v8C7vKFq003811 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 Sep 2017 09:57:29 +0200 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov Subject: [PATCH v3 2/5] isar: Change build folders tree Date: Tue, 12 Sep 2017 10:57:12 +0300 Message-Id: <20170912075712.5788-1-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170911192738.1323-3-asmirnov@ilbers.de> References: <20170911192738.1323-3-asmirnov@ilbers.de> X-TUID: alSQ2x2rJfKM Differentiate folders tree, that are generated during build on the highest possible level. So the overal tree now looks like the following: tmp/work/${DISTRO}-${DISTRO_ARCH}/${PF} This approach eliminates lots of subfolders to diffirentiate buildchroot and image for multiconfig builds. Now each configuration has private tree. Signed-off-by: Alexander Smirnov --- meta-isar/recipes-core/images/isar-image-base.bb | 26 +++++++++++++----------- meta/conf/isar-bitbake.conf | 3 ++- meta/recipes-devtools/buildchroot/buildchroot.bb | 26 +++++++++++++----------- 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb index 94cbc9e..5cb8b1c 100644 --- a/meta-isar/recipes-core/images/isar-image-base.bb +++ b/meta-isar/recipes-core/images/isar-image-base.bb @@ -17,7 +17,7 @@ DEPENDS += "${IMAGE_INSTALL}" IMAGE_PREINSTALL += "apt \ dbus" -WORKDIR = "${TMPDIR}/work/${PN}/${MACHINE}/${DISTRO}" +WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" do_rootfs[stamp-extra-info] = "${MACHINE}-${DISTRO}" @@ -30,18 +30,20 @@ do_rootfs() { install -m 755 ${THISDIR}/files/setup.sh ${WORKDIR} install -m 755 ${THISDIR}/files/download_dev-random ${WORKDIR}/hooks_multistrap/ - # Adjust multistrap config - sed -i 's|##IMAGE_PREINSTALL##|${IMAGE_PREINSTALL}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO##|${DISTRO}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO_APT_SOURCE##|${DISTRO_APT_SOURCE}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO_SUITE##|${DISTRO_SUITE}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO_COMPONENTS##|${DISTRO_COMPONENTS}|' ${WORKDIR}/multistrap.conf - sed -i 's|##CONFIG_SCRIPT##|./tmp/work/${PN}/${MACHINE}/${DISTRO}/configscript.sh|' ${WORKDIR}/multistrap.conf - sed -i 's|##SETUP_SCRIPT##|./tmp/work/${PN}/${MACHINE}/${DISTRO}/setup.sh|' ${WORKDIR}/multistrap.conf - sed -i 's|##DIR_HOOKS##|./tmp/work/${PN}/${MACHINE}/${DISTRO}/hooks_multistrap|' ${WORKDIR}/multistrap.conf - - # Multistrap config use relative paths, so ensure that we are in the right folder + # Multistrap accepts only relative path in configuration files, so get it: cd ${TOPDIR} + WORKDIR_REL=${@ os.path.relpath(d.getVar("WORKDIR", True))} + + # Adjust multistrap config + sed -i -e 's|##IMAGE_PREINSTALL##|${IMAGE_PREINSTALL}|g' \ + -e 's|##DISTRO##|${DISTRO}|g' \ + -e 's|##DISTRO_APT_SOURCE##|${DISTRO_APT_SOURCE}|g' \ + -e 's|##DISTRO_SUITE##|${DISTRO_SUITE}|g' \ + -e 's|##DISTRO_COMPONENTS##|${DISTRO_COMPONENTS}|g' \ + -e 's|##CONFIG_SCRIPT##|./'"$WORKDIR_REL"'/configscript.sh|g' \ + -e 's|##SETUP_SCRIPT##|./'"$WORKDIR_REL"'/setup.sh|g' \ + -e 's|##DIR_HOOKS##|./'"$WORKDIR_REL"'/hooks_multistrap|g' \ + ${WORKDIR}/multistrap.conf # Create root filesystem sudo multistrap -a ${DISTRO_ARCH} -d "${IMAGE_ROOTFS}" -f "${WORKDIR}/multistrap.conf" || true diff --git a/meta/conf/isar-bitbake.conf b/meta/conf/isar-bitbake.conf index f85f5cc..5a26743 100644 --- a/meta/conf/isar-bitbake.conf +++ b/meta/conf/isar-bitbake.conf @@ -18,9 +18,10 @@ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. +WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PF}" DEPLOY_DIR_DEB = "${TMPDIR}/deploy/deb/${MACHINE}" SSTATE_DIR ?= "${TMPDIR}/sstate-cache" -BUILDCHROOT_DIR = "${TOPDIR}/tmp/work/buildchroot/${DISTRO}-${DISTRO_ARCH}/rootfs" +BUILDCHROOT_DIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/buildchroot/rootfs" # Setup our default hash policy BB_SIGNATURE_HANDLER ?= "noop" diff --git a/meta/recipes-devtools/buildchroot/buildchroot.bb b/meta/recipes-devtools/buildchroot/buildchroot.bb index ccba683..30039f2 100644 --- a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ b/meta/recipes-devtools/buildchroot/buildchroot.bb @@ -21,7 +21,7 @@ BUILDCHROOT_PREINSTALL ?= "gcc \ apt \ automake" -WORKDIR = "${TMPDIR}/work/${PF}/${DISTRO}" +WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" @@ -34,18 +34,20 @@ do_build() { install -m 755 ${THISDIR}/files/setup.sh ${WORKDIR} install -m 755 ${THISDIR}/files/download_dev-random ${WORKDIR}/hooks_multistrap/ - # Adjust multistrap config - sed -i 's|##BUILDCHROOT_PREINSTALL##|${BUILDCHROOT_PREINSTALL}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO##|${DISTRO}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO_APT_SOURCE##|${DISTRO_APT_SOURCE}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO_SUITE##|${DISTRO_SUITE}|' ${WORKDIR}/multistrap.conf - sed -i 's|##DISTRO_COMPONENTS##|${DISTRO_COMPONENTS}|' ${WORKDIR}/multistrap.conf - sed -i 's|##CONFIG_SCRIPT##|./tmp/work/${PF}/${DISTRO}/configscript.sh|' ${WORKDIR}/multistrap.conf - sed -i 's|##SETUP_SCRIPT##|./tmp/work/${PF}/${DISTRO}/setup.sh|' ${WORKDIR}/multistrap.conf - sed -i 's|##DIR_HOOKS##|./tmp/work/${PF}/${DISTRO}/hooks_multistrap|' ${WORKDIR}/multistrap.conf - - # Multistrap config use relative paths, so ensure that we are in the right folder + # Multistrap accepts only relative path in configuration files, so get it: cd ${TOPDIR} + WORKDIR_REL=${@ os.path.relpath(d.getVar("WORKDIR", True))} + + # Adjust multistrap config + sed -i -e 's|##BUILDCHROOT_PREINSTALL##|${BUILDCHROOT_PREINSTALL}|g' \ + -e 's|##DISTRO##|${DISTRO}|g' \ + -e 's|##DISTRO_APT_SOURCE##|${DISTRO_APT_SOURCE}|g' \ + -e 's|##DISTRO_SUITE##|${DISTRO_SUITE}|g' \ + -e 's|##DISTRO_COMPONENTS##|${DISTRO_COMPONENTS}|g' \ + -e 's|##CONFIG_SCRIPT##|./'"$WORKDIR_REL"'/configscript.sh|g' \ + -e 's|##SETUP_SCRIPT##|./'"$WORKDIR_REL"'/setup.sh|g' \ + -e 's|##DIR_HOOKS##|./'"$WORKDIR_REL"'/hooks_multistrap|g' \ + ${WORKDIR}/multistrap.conf # Create root filesystem sudo multistrap -a ${DISTRO_ARCH} -d "${BUILDCHROOT_DIR}" -f "${WORKDIR}/multistrap.conf" || true -- 2.1.4