From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6463342265335021568 X-Received: by 10.25.84.7 with SMTP id i7mr936147lfb.12.1505158082815; Mon, 11 Sep 2017 12:28:02 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.113.23 with SMTP id m23ls1352683wmc.5.gmail; Mon, 11 Sep 2017 12:28:02 -0700 (PDT) X-Google-Smtp-Source: AOwi7QAFnJcJhz+6Cd1dwUv5SnA1sFKz8jSH3fAWrEzDLaPv7ycgJNXp0WReTJ3LSfNII/RytYbj X-Received: by 10.28.31.5 with SMTP id f5mr451926wmf.4.1505158082300; Mon, 11 Sep 2017 12:28:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1505158082; cv=none; d=google.com; s=arc-20160816; b=MgHzJSGK/GlAuA3EKSAFeKhM61AHLI7H91B/pF0rh/m3HO2uCAqbHzmneoQiKgXUiI z2a1VY1m0WMEOQtuQvZ9++V/haTB3ivBWXqKkyBb8aWeeWmYLX0yzf1TnKsNhm/VW4W1 BaFZAzj6RVBgYGEJi353jxWA7v0Mg9Nymt066bFtsIEGMCiwlGEZkrRW+pdNELsZC8g3 GsA7vqxZbGpNfvw/b9V//fRw5c5Q3gZA+1J4Z+QkjhnMEieeNXmZUXWElwPdSfSZ+oJh LLS/u4ChUA3tVF4vVjhQFyX8SafO2YR4B8dpDP999uIzj94bYhUT/kEQ4zinyD77dMXE k58w== 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=9GDaHK0fKTFH151wBTLQaZXwQ3LO/Ull01nLX1FcjgM=; b=GYgyWtjybhkvgBh2H9dUwB42LYuwEiULhUsZR05fFeAThD7qXGOX2GeDwqA0rLjAEz 2Ak4iOXv8vStEl3jZQxnEk/iCXziROsHMiA1NfpHO7/osFEL1AU1VZS+lD0sJGpmL8HS XchtxfQDwJVLjmZy8qUDztB6nz4QVGtJOcSw9IlNWWFKIPYWeQZPXS5qonaeOBFM6YOc /peaHW8bAqOfKoxVBQk6FwSM02h5sbmWDnIKa1aXZl7bMqItP9nrouK2WY3/iqEiNvdt 8+zRUwHFPcjnxFJEv6aZEgsF7DYsxUTgu0oTEv8z4ejiyMYRZ9IbkxziqU65LdeZavSD c6WQ== 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 t142si620075wmt.2.2017.09.11.12.28.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 11 Sep 2017 12:28:02 -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 v8BJRjMO000908 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 11 Sep 2017 21:27:51 +0200 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov Subject: [PATCH v3 2/5] isar: Change build folders tree Date: Mon, 11 Sep 2017 22:27:35 +0300 Message-Id: <20170911192738.1323-3-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170911192738.1323-1-asmirnov@ilbers.de> References: <20170911192738.1323-1-asmirnov@ilbers.de> X-TUID: RUT6hhHY+gwu 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..9e1b1da 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=$(python -c "import os.path; print os.path.relpath('${WORKDIR}')") + + # 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..722007d 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=$(python -c "import os.path; print os.path.relpath('${WORKDIR}')") + + # 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 "${BUILDCHROOT_DIR}" -f "${WORKDIR}/multistrap.conf" || true -- 2.1.4