From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6519381492065370112 X-Received: by 10.223.157.2 with SMTP id k2mr198882wre.2.1517911794333; Tue, 06 Feb 2018 02:09:54 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.223.143.19 with SMTP id p19ls2998977wrb.14.gmail; Tue, 06 Feb 2018 02:09:53 -0800 (PST) X-Google-Smtp-Source: AH8x22582iRWRqy5YHq8n4EpGQmBIBefXTIv5pg+2OwZIK2euKI0L8KTqGhnQKcpxGI8Jj+KJasw X-Received: by 10.223.152.40 with SMTP id v37mr184153wrb.13.1517911793925; Tue, 06 Feb 2018 02:09:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517911793; cv=none; d=google.com; s=arc-20160816; b=CDVVuM9+mZc3wcYNj1eohe2Q/fk2ZkysXVwbtpD9Ze/0b2+Tf5nkrHEYWqIZPgESoP NlLFiIehPMxKQD7dB2ej/Fz5n9vo+dkNw59gok8ZnaiIg+lgGf1AZWo6rgZMjKwYzdRZ 7Gen82vqDZ3H/bf+vkSIz1Lz3kv1DjMexC/Elb4iTDLmEUmRWRbJCJBexfSwBKd5QhcI YTyUevMfyLAiXNYwVaTOsofNZP5oaDbry2HG9QtMm2PtkIgW3vOVu0rj0WUAKvPNgJDf dCOvDROy3D8fZXA4HvHrMNxzyZGsw6PyzwlZPuqZXCc4/mAsU8FOXecqbC6+vzWAtq88 M9RQ== 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 :dkim-signature:arc-authentication-results; bh=eNRu00qaW+YEPll/3iq5waJEbGG6xOiSzQkb8XQJi68=; b=mN58iKafmrqjRC6dJ+qrEbRBMAIooVVYCv1T10e+coxs5AgqUkXy9gWy+fdQBsxBOr o+1iLhs8eA7/2ew52lMk1tMDXCd2b9tSdh8UKyYT3eBtX8MjhInubTKSRvCMGMlOcvOR p6ZYW7GTLUKfqhJ772yMl9ig2dzLkRskJOPyAj66EeAa/ycFxkUfB7h3BpBYXQTazxwT pCq4olO4MnV44ZVRxCMjT9sjkdvxeTfy+ViAUzthfy+pCYK6nKrlvw2Y72xu1Ui8rly+ BZgubdS7Le8kQCCRLmDFRqeCsF4RdJlzpY7cR6H24J9k3vgAemK5EJzwuxv1WRwlc+lH 7pVw== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=MZ//ZO8S; spf=pass (google.com: domain of benbrenson89@googlemail.com designates 2a00:1450:400c:c09::236 as permitted sender) smtp.mailfrom=benbrenson89@googlemail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com. [2a00:1450:400c:c09::236]) by gmr-mx.google.com with ESMTPS id g70si784828wmc.3.2018.02.06.02.09.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Feb 2018 02:09:53 -0800 (PST) Received-SPF: pass (google.com: domain of benbrenson89@googlemail.com designates 2a00:1450:400c:c09::236 as permitted sender) client-ip=2a00:1450:400c:c09::236; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=MZ//ZO8S; spf=pass (google.com: domain of benbrenson89@googlemail.com designates 2a00:1450:400c:c09::236 as permitted sender) smtp.mailfrom=benbrenson89@googlemail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: by mail-wm0-x236.google.com with SMTP id v123so2654061wmd.5 for ; Tue, 06 Feb 2018 02:09:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eNRu00qaW+YEPll/3iq5waJEbGG6xOiSzQkb8XQJi68=; b=MZ//ZO8SHjcV4NCE8dKYkRbhs2Tdpsi75Z+1ukhT3MBW2kqSX2BuP58R9iEWSn94oo T/v+LfrdLtqmJwBj7adbm8GEZSdA6Zk5EsaBv2NA8wJpc7swTOo/w2e1orxQOdMg3I6T 3FmxbTkQ3gzq0E8pNeo526EB/wjwPdUJTJxiYI/vpRP/vj+0G/fhO6NqHTWNzdDsu1b9 MjUaY08Mz0OtlrWLft0FsOgIwAxkAsnLfVmq37CkTkkj+TL06LdxRIRtC3oGiBq4ASa7 GReedr8/dXYWmTmxE1l7oJUqnpG5TkXrwCbsxDMKW8lyEN9cywyvv1MUV2qwAtEsFha0 Gnxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=eNRu00qaW+YEPll/3iq5waJEbGG6xOiSzQkb8XQJi68=; b=VMDSG25RFfbOJD42NGYwu1sc9uQvanKT82dj7hcvR0YWYEjPcAfkFqxOiTZYtsCwhq RFG7bmAUVT/LhsOyZz+f29sfJB7A5loZAH7MdsP3E6IpMbtUXV7fuJYAM68V012jrj4Y 6170ZSAN2pmJigMMiSmuJbVfqRmxlfnjp+pTrkWjgevRaMpqulwnI2EFqsytycOIw/SF cDpkc8UImMEfFYnoZufGao++n0odudTLndPqP2oGXhxw2MNMGWnr87OggACDBI/aJbyx TakHfo0+eZxUUS9gdEiCWJb3h/NsxDHtwnfem2ZfHCSXlizDri4W1lBP99mPrhpBFIhg YEGw== X-Gm-Message-State: APf1xPBbc38Og0ZFv1jc85+qGnt2/7rFceWzQEHSQu8ADzJVzvneJLp1 BPZ8MsrXkRzVT/GWFwmgeOSY7Q== X-Received: by 10.28.216.149 with SMTP id p143mr1451013wmg.140.1517911793397; Tue, 06 Feb 2018 02:09:53 -0800 (PST) Return-Path: Received: from localhost.localdomain (ip-109-41-195-133.web.vodafone.de. [109.41.195.133]) by smtp.gmail.com with ESMTPSA id r5sm13466342wmg.30.2018.02.06.02.09.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 06 Feb 2018 02:09:52 -0800 (PST) From: Benedikt Niedermayr X-Google-Original-From: Benedikt Niedermayr To: isar-users@googlegroups.com Cc: Benedikt Niedermayr Subject: [PATCH 3/6] Added apt-cache functionality for buildchroot. Date: Tue, 6 Feb 2018 11:09:36 +0100 Message-Id: <1517911779-30507-4-git-send-email-Benedikt.Niedermayr@mixed-mode.de> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1517911779-30507-1-git-send-email-Benedikt.Niedermayr@mixed-mode.de> References: <1517911779-30507-1-git-send-email-Benedikt.Niedermayr@mixed-mode.de> X-TUID: gWwS8Lon9Euk ESSENTIAL_INSTALL was added since multistrap won't pick up all required packages when calculating the initial package list. It seems that multiconfig silently drops some packages if they where not present at the repository. The completion hook was added in order to support fetching from local repository within chroot environment. Signed-off-by: Benedikt Niedermayr --- meta/recipes-devtools/buildchroot/buildchroot.bb | 35 ++++++++++++++++++---- .../buildchroot/files/multistrap.conf.in | 17 ++++++----- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/meta/recipes-devtools/buildchroot/buildchroot.bb b/meta/recipes-devtools/buildchroot/buildchroot.bb index 79e6773..dd306f6 100644 --- a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ b/meta/recipes-devtools/buildchroot/buildchroot.bb @@ -16,7 +16,17 @@ SRC_URI = "file://multistrap.conf.in \ file://build.sh" PV = "1.0" -BUILDCHROOT_PREINSTALL ?= "gcc \ +inherit apt-cache + +do_build[depends] = "isar-apt:do_cache_config" + +ESSENTIAL_INSTALL ?= "base-files base-passwd bash bsdutils coreutils bash debianutils \ + diffutils apt findutils grep gzip hostname init-system-helpers \ + libc-bin perl-base sed tar util-linux mawk diffutils \ + " + +BUILDCHROOT_PREINSTALL ?= "${ESSENTIAL_INSTALL} \ + gcc \ make \ build-essential \ debhelper \ @@ -32,11 +42,11 @@ 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}${CHROOT_CACHE_DIR}" do_prepare[depends] = "isar-apt:do_cache_config" do_prepare() { - sudo mount --bind ${DEPLOY_DIR_APT}/${DISTRO} ${BUILDCHROOT_DIR}/isar-apt + sudo mount --bind ${TOPDIR}/apt-cache ${BUILDCHROOT_DIR}${CHROOT_CACHE_DIR} } addtask prepare before do_build after do_unpack @@ -55,17 +65,31 @@ do_build() { cd ${TOPDIR} WORKDIR_REL=${@ os.path.relpath(d.getVar("WORKDIR", True))} + # Replace directory of apt caches for using within chroots and + # set the trusted=yes option for local unsigned cache repository. + cat<<-__EOF__ > $WORKDIR_REL/hooks_multistrap/completion_sources + for section in ${DISTRO_MULTICONF_APTSOURCES} isar; do + sed -i -e 's|${TOPDIR}/apt-cache|${CHROOT_CACHE_DIR}|g' \ + -e 's|\[|\[ trusted=yes |g' \ + ${BUILDCHROOT_DIR}/etc/apt/sources.list.d/multistrap-\$section.list + done + + __EOF__ + chmod 0755 $WORKDIR_REL/hooks_multistrap/completion_sources + # Adjust multistrap config sed -e 's|##BUILDCHROOT_PREINSTALL##|${BUILDCHROOT_PREINSTALL}|g' \ -e 's|##DISTRO_MULTICONF_BOOTSTRAP##|${DISTRO_MULTICONF_BOOTSTRAP}|g' \ -e 's|##DISTRO_MULTICONF_APTSOURCES##|${DISTRO_MULTICONF_APTSOURCES}|g' \ - -e 's|##DISTRO_APT_SOURCE##|${DISTRO_APT_SOURCE}|g' \ - -e 's|##DISTRO_APT_SOURCE_SEC##|${DISTRO_APT_SOURCE_SEC}|g' \ + -e 's|##DISTRO_APT_SOURCE##|copy:///${TOPDIR}/apt-cache/${DISTRO}/public/${ISAR_MIRROR_PREFIX}|g' \ + -e 's|##DISTRO_APT_SOURCE_SEC##|copy:///${TOPDIR}/apt-cache/${DISTRO}/public/${ISAR_MIRROR_PREFIX}-security|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' \ + -e 's|##DEPLOY_DIR_APT##|copy:///${TOPDIR}/apt-cache/${DISTRO}/public/${ISAR_REPO_PREFIX}|g' \ + -e 's|##ISAR_DISTRO_SUITE##|${DEBDISTRONAME}|g' \ "${WORKDIR}/multistrap.conf.in" > "${WORKDIR}/multistrap.conf" [ ! -d ${BUILDCHROOT_DIR}/proc ] && install -d -m 555 ${BUILDCHROOT_DIR}/proc @@ -87,3 +111,4 @@ do_build() { sudo chroot ${BUILDCHROOT_DIR} /configscript.sh _do_build_cleanup } +do_build[dirs] += "${TOPDIR}/apt-cache/${DISTRO} ${BUILDCHROOT_DIR}/apt-cache" \ No newline at end of file diff --git a/meta/recipes-devtools/buildchroot/files/multistrap.conf.in b/meta/recipes-devtools/buildchroot/files/multistrap.conf.in index 480a4b8..ffb7023 100644 --- a/meta/recipes-devtools/buildchroot/files/multistrap.conf.in +++ b/meta/recipes-devtools/buildchroot/files/multistrap.conf.in @@ -5,8 +5,8 @@ noauth=true unpack=true ignorenativearch=true -bootstrap=##DISTRO_MULTICONF_BOOTSTRAP## -aptsources=isar-apt ##DISTRO_MULTICONF_APTSOURCES## +bootstrap=##DISTRO_MULTICONF_BOOTSTRAP## Isar +aptsources=##DISTRO_MULTICONF_APTSOURCES## Isar configscript=##CONFIG_SCRIPT## setupscript=##SETUP_SCRIPT## hookdir=##DIR_HOOKS## @@ -19,19 +19,20 @@ packages=##BUILDCHROOT_PREINSTALL## omitdebsrc=true [updates] -source=##DISTRO_APT_SOURCE## -suite=##DISTRO_SUITE##-updates +source=##DISTRO_APT_SOURCE##-updates +suite=##DISTRO_SUITE## components=##DISTRO_COMPONENTS## omitdebsrc=true [security] source=##DISTRO_APT_SOURCE_SEC## -suite=##DISTRO_SUITE##/updates +suite=##DISTRO_SUITE## components=##DISTRO_COMPONENTS## omitdebsrc=true -[isar-apt] -source=file:///isar-apt -suite=isar +[Isar] +packages=##BUILDCHROOT_PREINSTALL## +source=##DEPLOY_DIR_APT## +suite=##ISAR_DISTRO_SUITE## components=main omitdebsrc=true -- 2.7.4