From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6519112020741062656 X-Received: by 10.28.153.194 with SMTP id b185mr5400764wme.9.1517849051825; Mon, 05 Feb 2018 08:44:11 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.84.19 with SMTP id i19ls1649429wmb.10.gmail; Mon, 05 Feb 2018 08:44:11 -0800 (PST) X-Google-Smtp-Source: AH8x226kw69zhxFds0F06tw6Fbv9a6yhNGtOu14mmxP+/VTMHOiAcn0VdanzY1PgsBeF9p1xcXL/ X-Received: by 10.28.239.20 with SMTP id n20mr3889850wmh.23.1517849051338; Mon, 05 Feb 2018 08:44:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517849051; cv=none; d=google.com; s=arc-20160816; b=07rgW95Neu35faEOUuNVrt1SjHoYmgp3dYLSP2m66AnfngdOIsStBY5QSFJO8m7zZ3 k0dR8tUdy+8Z0GWURsX0XsVqYd6JIwcqd9KEcqoTvB1udIWvD9g8D928oOUcrnA2Nsxb vVEhWrUt7JTSIWpgKsaYezLyzKeqJO28fy2Hd6sQkjePldIqdotW0eC5K7KVX4UVmoOv ZOx++8rmG6jw/giiVFlywKNu/PNW8P8C2s9Ghfurkxjr1D9GJ2qJ1433CLJ4um78WpLm YcFvVjsrpUpKmT7oH5uXjXbqqqzWXu1nL6WVEbOkNPb40dYE6EzDJ279QNrg1J+zG/3S 1tlg== 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=gLuY2zPMBsH2Jg/IPVZcj+JOlIS5ShA68e/mn2eSEig=; b=cAODtZzE8llN1DyaKX3ce7dzSXS5Xq9A9H+hqdkMZOsbYIILWuBzE+xyo2F4VTvKu9 uf8ZvG33XoGZq7G4u2sSbH0gVmV6iHMm8ohRGuUVF5x0f/ZOiFy9DzfC9ANq0jgUJOzo fNvL+I3O6T+0+Q8uvNMbWE905G81vMm1ogA/RfOLoYb3IgkieuhsZk6IwkT3NhRALqb9 /DHRvh2Ab4Yz8E9R7YQq7mhHtDhpOGZVWlLNEZrAjq7TWuKVsh4sMItUXVT8mY7mvmx3 e8EKdJqDngzzn6//dZVJHCTDEjrm5s4NFqjdDK3l+Ge0AaIx1YcKrr+CiNEsiGWC4j9a wtWQ== 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 200si908362wml.2.2018.02.05.08.44.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Feb 2018 08:44:11 -0800 (PST) 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 w15Ghrp2025490 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 5 Feb 2018 17:44:00 +0100 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov Subject: [PATCH 2/2] buildchroot: Permanently mount '/dev', '/sys' and '/proc' Date: Mon, 5 Feb 2018 19:43:47 +0300 Message-Id: <20180205164347.28375-3-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180205164347.28375-1-asmirnov@ilbers.de> References: <20180205164347.28375-1-asmirnov@ilbers.de> X-TUID: hVO95grFYg0G Mount these folders permanently before creating buildchroot. Mounts are performed in dedicated task do_prepare, so it will also work if you run build with already existing buildchroot. BuildCompleted event is used for clean up, so we should not take care about this manually. Signed-off-by: Alexander Smirnov --- meta/classes/isar-events.bbclass | 3 +++ meta/recipes-devtools/buildchroot/buildchroot.bb | 21 +++++++-------------- .../buildchroot/files/configscript.sh | 4 ---- .../buildchroot/files/download_dev-random | 13 ------------- 4 files changed, 10 insertions(+), 31 deletions(-) delete mode 100644 meta/recipes-devtools/buildchroot/files/download_dev-random diff --git a/meta/classes/isar-events.bbclass b/meta/classes/isar-events.bbclass index 55fc106..9f581a6 100644 --- a/meta/classes/isar-events.bbclass +++ b/meta/classes/isar-events.bbclass @@ -15,6 +15,9 @@ python isar_handler () { # Clean up buildchroot subprocess.call('/usr/bin/sudo /bin/umount ' + bchroot + '/isar-apt || /bin/true', stdout=devnull, stderr=devnull, shell=True) + subprocess.call('/usr/bin/sudo /bin/umount ' + bchroot + '/dev || /bin/true', stdout=devnull, stderr=devnull, shell=True) + subprocess.call('/usr/bin/sudo /bin/umount ' + bchroot + '/proc || /bin/true', stdout=devnull, stderr=devnull, shell=True) + subprocess.call('/usr/bin/sudo /bin/umount ' + bchroot + '/sys || /bin/true', stdout=devnull, stderr=devnull, shell=True) devnull.close() } diff --git a/meta/recipes-devtools/buildchroot/buildchroot.bb b/meta/recipes-devtools/buildchroot/buildchroot.bb index 0044a71..b8aaf28 100644 --- a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ b/meta/recipes-devtools/buildchroot/buildchroot.bb @@ -12,7 +12,6 @@ FILESPATH =. "${LAYERDIR_core}/recipes-devtools/buildchroot/files:" SRC_URI = "file://multistrap.conf.in \ file://configscript.sh \ file://setup.sh \ - file://download_dev-random \ file://build.sh" PV = "1.0" @@ -32,16 +31,21 @@ BUILDCHROOT_PREINSTALL ?= "gcc \ WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" do_prepare[nostamp] = "1" -do_prepare[dirs] = "${BUILDCHROOT_DIR}/isar-apt" +do_prepare[dirs] = "${BUILDCHROOT_DIR}/isar-apt \ + ${BUILDCHROOT_DIR}/dev \ + ${BUILDCHROOT_DIR}/proc \ + ${BUILDCHROOT_DIR}/sys" do_prepare() { sudo mount --bind ${DEPLOY_DIR_APT}/${DISTRO} ${BUILDCHROOT_DIR}/isar-apt + sudo mount --bind /dev ${BUILDCHROOT_DIR}/dev + sudo mount -t proc none ${BUILDCHROOT_DIR}/proc + sudo mount -t sysfs none ${BUILDCHROOT_DIR}/sys } addtask prepare before do_build after do_unpack do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" -do_build[dirs] = "${WORKDIR}/hooks_multistrap" do_build[depends] = "isar-apt:do_cache_config" do_build() { @@ -49,7 +53,6 @@ do_build() { chmod +x "${WORKDIR}/setup.sh" chmod +x "${WORKDIR}/configscript.sh" - install -m 755 "${WORKDIR}/download_dev-random" "${WORKDIR}/hooks_multistrap/" # Multistrap accepts only relative path in configuration files, so get it: cd ${TOPDIR} @@ -68,15 +71,6 @@ do_build() { -e 's|##DIR_HOOKS##|./'"$WORKDIR_REL"'/hooks_multistrap|g' \ "${WORKDIR}/multistrap.conf.in" > "${WORKDIR}/multistrap.conf" - [ ! -d ${BUILDCHROOT_DIR}/proc ] && install -d -m 555 ${BUILDCHROOT_DIR}/proc - sudo mount -t proc none ${BUILDCHROOT_DIR}/proc - _do_build_cleanup() { - ret=$? - sudo umount ${BUILDCHROOT_DIR}/proc 2>/dev/null || true - (exit $ret) || bb_exit_handler - } - trap '_do_build_cleanup' EXIT - # Create root filesystem sudo -E multistrap -a ${DISTRO_ARCH} -d "${BUILDCHROOT_DIR}" -f "${WORKDIR}/multistrap.conf" @@ -85,5 +79,4 @@ do_build() { # Configure root filesystem sudo chroot ${BUILDCHROOT_DIR} /configscript.sh - _do_build_cleanup } diff --git a/meta/recipes-devtools/buildchroot/files/configscript.sh b/meta/recipes-devtools/buildchroot/files/configscript.sh index 458c94b..a5942b5 100644 --- a/meta/recipes-devtools/buildchroot/files/configscript.sh +++ b/meta/recipes-devtools/buildchroot/files/configscript.sh @@ -39,9 +39,5 @@ export LC_ALL=C LANGUAGE=C LANG=C #run pre installation script /var/lib/dpkg/info/dash.preinst install -# apt-get http method, gpg require /dev/null -mount -t devtmpfs -o mode=0755,nosuid devtmpfs /dev - #configuring packages dpkg --configure -a -umount /dev diff --git a/meta/recipes-devtools/buildchroot/files/download_dev-random b/meta/recipes-devtools/buildchroot/files/download_dev-random deleted file mode 100644 index 5b5b96b..0000000 --- a/meta/recipes-devtools/buildchroot/files/download_dev-random +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -set -e - -readonly ROOTFS="$1" - -mknod "${ROOTFS}/dev/random" c 1 8 -chmod 640 "${ROOTFS}/dev/random" -chown 0:0 "${ROOTFS}/dev/random" - -mknod "${ROOTFS}/dev/urandom" c 1 9 -chmod 640 "${ROOTFS}/dev/urandom" -chown 0:0 "${ROOTFS}/dev/urandom" -- 2.1.4