From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6463342265335021568 X-Received: by 10.25.67.88 with SMTP id m24mr180247lfj.9.1504864139919; Fri, 08 Sep 2017 02:48:59 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.197.138 with SMTP id v132ls267151wmf.25.gmail; Fri, 08 Sep 2017 02:48:59 -0700 (PDT) X-Google-Smtp-Source: AOwi7QDFlNtJRFZuBOIbm0T9uCWXvS8LO1oPiqarOFfZS3f1Z5cRGQQOpfI2v4tpaAu6l4C4sp9T X-Received: by 10.28.29.8 with SMTP id d8mr145667wmd.27.1504864139503; Fri, 08 Sep 2017 02:48:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504864139; cv=none; d=google.com; s=arc-20160816; b=C3BoyYPHBJ84L1qzKCvU8jonDRICaDF9EQ1pNrKCuil9wZOwygVcksql5kraQW0TMG Hx0MFn8kJXLeQinPXgoHx+USyIutraC2LNxpo969dl2RZrFomMOVI4CDMrMOoMdMFEh3 e1YHfYEgD9X3AdYhxzJIDo/oM83gZNVwlXh8yoRikOYmaBmogtIz8hBrZGgq6CLASosD G3PgPMTGOTaGY5suElxPQwgvvpBYPkzuuDohJj9Hvc2m/01TFPj3ZViTe1rjEa/IejHr mbqtqewcx7LZuLYwok67JpuAG0sPmSvD+gedBkFD3jG2Mq/GEF04FMHeAPNIY9pdxg6u VSOw== 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=fjMFLpJ33AVn8CENGKPKnAx+pMFp5DOCuKPvZbuoXSI=; b=nQC7ylOwrI6E9qJa/RNa5b1NH1ekvNzdi30c1J9d2I6SpBXchxC+xDG9bjlaCsWNQG RtkGar+9AhkO3xVbNZy/hdaDNtjAI4Aj/fBIcRRbCUzBN2/o8w9kQK+ivhjcyQUi7sWz 5NDwJ5yezYFa7GLSSuCZvGy94GzU4gzQTU7ClwAKAzjkN8qIMZKiqOpUC8JyS4SDR0fc h/bydgNy4Nnul+kW3Odw2Iwyel1jpZH35RpdSg7b0HBArPsiWIQbZOf0j+IRDt1yivMT tHDIAGnkGaCvX3SEq1PHWdYJUkL+HdGZJMwPATxpis3u7QbJcSI1NRvI8VMeOPu3JnOS XSSA== 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 r8si157705wma.4.2017.09.08.02.48.59 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Sep 2017 02:48:59 -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 v889meqL008863 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 8 Sep 2017 11:48:47 +0200 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov Subject: [PATCH 1/2] isar: Change build folders tree Date: Fri, 8 Sep 2017 12:48:33 +0300 Message-Id: <20170908094834.26496-2-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170908094834.26496-1-asmirnov@ilbers.de> References: <20170908094834.26496-1-asmirnov@ilbers.de> X-TUID: nd6sSWDjZX0t Differentiate folders tree, that are generated during build on the highest possible level. So the overal tree now looks like the following: tmp/${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/classes/rpi-sdimg.bbclass | 2 +- meta-isar/recipes-core/images/isar-image-base.bb | 19 ++++++++----------- meta/classes/ext4-img.bbclass | 10 +++++----- meta/classes/image.bbclass | 12 +++++++----- meta/conf/isar-bitbake.conf | 3 ++- meta/recipes-devtools/buildchroot/buildchroot.bb | 9 ++++----- 6 files changed, 27 insertions(+), 28 deletions(-) diff --git a/meta-isar/classes/rpi-sdimg.bbclass b/meta-isar/classes/rpi-sdimg.bbclass index 2614c41..91b09cd 100644 --- a/meta-isar/classes/rpi-sdimg.bbclass +++ b/meta-isar/classes/rpi-sdimg.bbclass @@ -47,7 +47,7 @@ do_rpi_sdimg () { BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }') rm -f ${WORKDIR}/boot.img mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS - mcopy -i ${WORKDIR}/boot.img -s ${S}/boot/* ::/ + mcopy -i ${WORKDIR}/boot.img -s ${IMAGE_ROOTFS}/boot/* ::/ # Burn Partitions dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb index b679d97..178ac05 100644 --- a/meta-isar/recipes-core/images/isar-image-base.bb +++ b/meta-isar/recipes-core/images/isar-image-base.bb @@ -9,6 +9,7 @@ LICENSE = "gpl-2.0" LIC_FILES_CHKSUM = "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" PV = "1.0" +PF = "${PN}" inherit image @@ -17,11 +18,7 @@ DEPENDS += "${IMAGE_INSTALL}" IMAGE_PREINSTALL += "apt \ dbus" -WORKDIR = "${TMPDIR}/work/${PN}/${MACHINE}/${DISTRO}" -S = "${WORKDIR}/rootfs" -IMAGE_ROOTFS = "${S}" - -do_rootfs[stamp-extra-info] = "${MACHINE}-${DISTRO}" +do_rootfs[stamp-extra-info] = "${DISTRO}-${MACHINE}" do_rootfs() { install -d -m 755 ${WORKDIR}/hooks_multistrap @@ -38,20 +35,20 @@ do_rootfs() { 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 + sed -i 's|##CONFIG_SCRIPT##|./tmp/work/${DISTRO}-${DISTRO_ARCH}/${PF}/configscript.sh|' ${WORKDIR}/multistrap.conf + sed -i 's|##SETUP_SCRIPT##|./tmp/work/${DISTRO}-${DISTRO_ARCH}/${PF}/setup.sh|' ${WORKDIR}/multistrap.conf + sed -i 's|##DIR_HOOKS##|./tmp/work/${DISTRO}-${DISTRO_ARCH}/${PF}/hooks_multistrap|' ${WORKDIR}/multistrap.conf # Multistrap config use relative paths, so ensure that we are in the right folder cd ${TOPDIR} # Create root filesystem - sudo multistrap -a ${DISTRO_ARCH} -d "${S}" -f "${WORKDIR}/multistrap.conf" || true + sudo multistrap -a ${DISTRO_ARCH} -d "${IMAGE_ROOTFS}" -f "${WORKDIR}/multistrap.conf" || true # Configure root filesystem - sudo chroot ${S} /configscript.sh ${MACHINE_SERIAL} ${BAUDRATE_TTY} \ + sudo chroot ${IMAGE_ROOTFS} /configscript.sh ${MACHINE_SERIAL} ${BAUDRATE_TTY} \ ${ROOTFS_DEV} - sudo rm ${S}/configscript.sh + sudo rm ${IMAGE_ROOTFS}/configscript.sh } addtask rootfs before do_populate diff --git a/meta/classes/ext4-img.bbclass b/meta/classes/ext4-img.bbclass index 8588626..9af781f 100644 --- a/meta/classes/ext4-img.bbclass +++ b/meta/classes/ext4-img.bbclass @@ -6,7 +6,7 @@ ROOTFS_EXTRA ?= "64" EXT4_IMAGE_FILE = "${DEPLOY_DIR_IMAGE}/${PN}-${MACHINE}-${DISTRO}.ext4.img" -do_ext4_image[stamp-extra-info] = "${MACHINE}-${DISTRO}" +do_ext4_image[stamp-extra-info] = "${DISTRO}-${MACHINE}" # Generate ext4 filesystem image do_ext4_image() { @@ -14,23 +14,23 @@ do_ext4_image() { rm -f ${EXT4_IMAGE_FILE} - ROOTFS_SIZE=`sudo du -sm ${S} | awk '{print $1 + ${ROOTFS_EXTRA};}'` + ROOTFS_SIZE=`sudo du -sm ${IMAGE_ROOTFS} | awk '{print $1 + ${ROOTFS_EXTRA};}'` dd if=/dev/zero of=${EXT4_IMAGE_FILE} bs=1M count=${ROOTFS_SIZE} sudo mkfs.ext4 -F ${EXT4_IMAGE_FILE} mkdir -p ${WORKDIR}/mnt sudo mount -o loop ${EXT4_IMAGE_FILE} ${WORKDIR}/mnt - sudo cp -r ${S}/* ${WORKDIR}/mnt + sudo cp -r ${IMAGE_ROOTFS}/* ${WORKDIR}/mnt sudo umount ${WORKDIR}/mnt rm -r ${WORKDIR}/mnt if [ -n "${KERNEL_IMAGE}" ]; then - cp ${S}/boot/${KERNEL_IMAGE} ${DEPLOY_DIR_IMAGE} + cp ${IMAGE_ROOTFS}/boot/${KERNEL_IMAGE} ${DEPLOY_DIR_IMAGE} fi if [ -n "${INITRD_IMAGE}" ]; then - cp ${S}/boot/${INITRD_IMAGE} ${DEPLOY_DIR_IMAGE} + cp ${IMAGE_ROOTFS}/boot/${INITRD_IMAGE} ${DEPLOY_DIR_IMAGE} fi } diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index a7f0d74..fe06352 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -9,20 +9,22 @@ IMAGE_TYPE ?= "ext4-img" inherit ${IMAGE_TYPE} -do_populate[stamp-extra-info] = "${MACHINE}-${DISTRO}" +IMAGE_ROOTFS = "${WORKDIR}/rootfs" + +do_populate[stamp-extra-info] = "${DISTRO}-${MACHINE}" # Install Debian packages, that were built from sources do_populate() { if [ -n "${IMAGE_INSTALL}" ]; then - sudo mkdir -p ${S}/deb + sudo mkdir -p ${IMAGE_ROOTFS}/deb for p in ${IMAGE_INSTALL}; do - sudo cp ${DEPLOY_DIR_DEB}/${p}_*.deb ${S}/deb + sudo cp ${DEPLOY_DIR_DEB}/${p}_*.deb ${IMAGE_ROOTFS}/deb done - sudo chroot ${S} /usr/bin/dpkg -i -R /deb + sudo chroot ${IMAGE_ROOTFS} /usr/bin/dpkg -i -R /deb - sudo rm -rf ${S}/deb + sudo rm -rf ${IMAGE_ROOTFS}/deb fi } 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..155bd3f 100644 --- a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ b/meta/recipes-devtools/buildchroot/buildchroot.bb @@ -9,6 +9,7 @@ LICENSE = "gpl-2.0" LIC_FILES_CHKSUM = "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" PV = "1.0" +PF = "${PN}" BUILDCHROOT_PREINSTALL ?= "gcc \ make \ @@ -21,8 +22,6 @@ BUILDCHROOT_PREINSTALL ?= "gcc \ apt \ automake" -WORKDIR = "${TMPDIR}/work/${PF}/${DISTRO}" - do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" do_build() { @@ -40,9 +39,9 @@ do_build() { 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 + sed -i 's|##CONFIG_SCRIPT##|./tmp/work/${DISTRO}-${DISTRO_ARCH}/${PF}/configscript.sh|' ${WORKDIR}/multistrap.conf + sed -i 's|##SETUP_SCRIPT##|./tmp/work/${DISTRO}-${DISTRO_ARCH}/${PF}/setup.sh|' ${WORKDIR}/multistrap.conf + sed -i 's|##DIR_HOOKS##|./tmp/work/${DISTRO}-${DISTRO_ARCH}/${PF}/hooks_multistrap|' ${WORKDIR}/multistrap.conf # Multistrap config use relative paths, so ensure that we are in the right folder cd ${TOPDIR} -- 2.1.4