From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6520131612833742848 X-Received: by 10.28.87.194 with SMTP id l185mr68835wmb.9.1518086454824; Thu, 08 Feb 2018 02:40:54 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.116.12 with SMTP id p12ls926314wmc.2.gmail; Thu, 08 Feb 2018 02:40:54 -0800 (PST) X-Google-Smtp-Source: AH8x225PThEI8Zz00/+1P0KfR4hfy48ZFS3V0aP+J8U8la1FW1HQDzZY4Jnd7/gBOLciFfVSntcL X-Received: by 10.28.239.20 with SMTP id n20mr61756wmh.23.1518086454390; Thu, 08 Feb 2018 02:40:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518086454; cv=none; d=google.com; s=arc-20160816; b=yvXf7suCkM/JoF1RwlCrzAqvr79Gf3PsEEVIJm00pFaouK8ubhNZMYqVHeg2WKLiR6 BTSFQFUS2CMc8lRNep69G5VJ6dYmLcyIPL2CbJTxBkLdo196j6WIrp6spiaYoapAhTzl Uqj70YBJFaV6Ru0LL2bRj3AaIq3B1qrAfkc3vlPdSW2pCirY7UG6SilaWMjTPRrRqrpg srtV57c4/vxfRnHTh6t8ZoROHhOji6V9qmZ8SSmIRFssUi6LJoQ08s6vA38GNtFChdsO PZgClViPYKw9q3U2KaBsJ/h305jHUYNXs45jq/tjpNlol4zRR1lILSM2Ue4aDQ4unN2Z jI7A== 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=gyD7k9Rc1s9DYDrZ8sE6EykZh315w0CON9NEFRmqW9s=; b=TiKkS0u9uQ/nGTB8BUfl8ZRGavWqAFfRuDSex/+ZsYwvMRwCIwjF4uYNaF7hZ5HBe7 /rYabbPTFXNxgqIcj9ID+H2oXIfAAABz+3yM0t3KrxjEbTpfk3T+dlYmDuLBD5hPI9IH hVY7xc1t4R3mFaibdLrtBQOmtxDxy63PubjR2egK/4K2CETnxa36lIuh+YZRYbL8xxOJ a+Dua8QllTWgNoeQ3MvPwcFD3pM1oueZ8+MYA0o8A9nsbkZ0TaXSCfbFpOMqdGLUlCFG 8HdWNlJuLTyF9leqgMUXi2FxX8yeCl9Rmun8k4m9YTHTzKO+qQD/Taz0bds371oxgE4F 9M8A== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=dhh0knoT; spf=pass (google.com: domain of benbrenson89@googlemail.com designates 2a00:1450:400c:c0c::231 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-wr0-x231.google.com (mail-wr0-x231.google.com. [2a00:1450:400c:c0c::231]) by gmr-mx.google.com with ESMTPS id v8si203205wrg.2.2018.02.08.02.40.54 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Feb 2018 02:40:54 -0800 (PST) Received-SPF: pass (google.com: domain of benbrenson89@googlemail.com designates 2a00:1450:400c:c0c::231 as permitted sender) client-ip=2a00:1450:400c:c0c::231; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=dhh0knoT; spf=pass (google.com: domain of benbrenson89@googlemail.com designates 2a00:1450:400c:c0c::231 as permitted sender) smtp.mailfrom=benbrenson89@googlemail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: by mail-wr0-x231.google.com with SMTP id a43so4147116wrc.4 for ; Thu, 08 Feb 2018 02:40:54 -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=gyD7k9Rc1s9DYDrZ8sE6EykZh315w0CON9NEFRmqW9s=; b=dhh0knoT0O/Qjy74whA6/SEsSDyUzsSVSA8DqvhotYpMoo+WEh+XyqnNICPZnDiUt5 jew+UacMGy/K+IZTF1HrvW48C705yaTHBKfJL0H7IIP3OsPXdasLoqMuDNEVJYW2XpA0 1L4c8WV9jhAGeTEIIgzuab+wOJzqg+keF+Q0o1mAJVm1GPmeQ1IHy5ulOWAW6BG4IrAL tBI9K9BT7E4xR4n+GfzClmKfG+zt/R0hmJEtCYZuhfgEp6doqk7NYro6ICGDS1h/+JeX g9MYTGPh+DBqD9+YMa2tGteHcC0/Ta2arFVuvDqWVSVsS6x7wmPfAcGrHNXHZpT+fpEM 3d3g== 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=gyD7k9Rc1s9DYDrZ8sE6EykZh315w0CON9NEFRmqW9s=; b=BOqb0VIjYeKEsPG1H5TtQl/0VHr+1OBGJ16FYM/MJOhd0mfmVz8/UCh4uE/nCprI8G H7QHVWZ6NxFF+dcAYNxGoBxFYNmg+7i1Xk2cuWB56xpKsN9i3OTEa/5ezoZMX5eeXf+s esjd8/QCzDIQkKk3CmgkaJtqr+R0Lck+zqvThOES+1QN6sn/XYOw2yAiNmNnV86pc8WT qZBDRhSM1e9BoxvsKSCxm5BIfKm32Gc8f6VrvpgJtOU8bBFj8bSa6ApIevssNLiO3PXW myDZgJMHmciIeEwppgIWnoITvDf3gNJr8chXPk+7p5qXyTxfQ8rekMTYKzgyIhKsiEww q3yA== X-Gm-Message-State: APf1xPCir862dRwzDqH+G8aCrZi72ScBkhDzJvEAFuo1/KHgL6SZOQ+i epX/qsCt2Dw30gPWqgESc0vWjw== X-Received: by 10.223.158.143 with SMTP id a15mr279854wrf.53.1518086453846; Thu, 08 Feb 2018 02:40:53 -0800 (PST) Return-Path: Received: from localhost.localdomain (ip-109-41-193-215.web.vodafone.de. [109.41.193.215]) by smtp.gmail.com with ESMTPSA id k74sm764689wrc.2.2018.02.08.02.40.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 08 Feb 2018 02:40:53 -0800 (PST) From: Benedikt Niedermayr X-Google-Original-From: Benedikt Niedermayr To: isar-users@googlegroups.com Cc: Benedikt Niedermayr Subject: [PATCH v2 3/7] Added apt-cache functionality for buildchroot. Date: Thu, 8 Feb 2018 11:40:08 +0100 Message-Id: <1518086412-12567-4-git-send-email-Benedikt.Niedermayr@mixed-mode.de> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518086412-12567-1-git-send-email-Benedikt.Niedermayr@mixed-mode.de> References: <1518086412-12567-1-git-send-email-Benedikt.Niedermayr@mixed-mode.de> X-TUID: b6d2h9zn/n0u 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 | 36 +++++++++++++++++++--- .../buildchroot/files/configscript.sh | 1 + .../buildchroot/files/multistrap.conf.in | 17 +++++----- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/meta/recipes-devtools/buildchroot/buildchroot.bb b/meta/recipes-devtools/buildchroot/buildchroot.bb index 304c67e..91d8d4e 100644 --- a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ b/meta/recipes-devtools/buildchroot/buildchroot.bb @@ -16,7 +16,15 @@ 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 ?= "mawk \ + " + +BUILDCHROOT_PREINSTALL ?= "${ESSENTIAL_INSTALL} \ + gcc \ make \ build-essential \ debhelper \ @@ -47,17 +55,34 @@ do_build() { cd ${TOPDIR} WORKDIR_REL=${@ os.path.relpath(d.getVar("WORKDIR", True))} + # 1. Replace directory of apt caches for using within chroots and + # 2. set the trusted=yes option for local unsigned cache repository. + # 3. Reduce components to main since mirror only offers that, + # see Multi-Component Publishing section of aptly doc for avoiding this fix. + cat<<-__EOF__ > $WORKDIR_REL/hooks_multistrap/completion_sources + for section in ${DISTRO_MULTICONF_APTSOURCES} isar; do + sed -i -e 's|${CACHE_DIR}|${CHROOT_CACHE_DIR}|g' \ + -e 's|\[|\[ trusted=yes |g' \ + -e 's|${DISTRO_COMPONENTS}|main|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:///${CACHE_DIR}/${DISTRO}/public/${ISAR_MIRROR_PREFIX}|g' \ + -e 's|##DISTRO_APT_SOURCE_SEC##|copy:///${CACHE_DIR}/${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:///${CACHE_DIR}/${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 @@ -95,11 +120,12 @@ python __anonymous() { do_setup_mounts[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" do_setup_mounts() { - sudo mount --bind ${DEPLOY_DIR_APT}/${DISTRO} ${BUILDCHROOT_DIR}/isar-apt + sudo mount --bind ${TOPDIR}/apt-cache ${BUILDCHROOT_DIR}${CHROOT_CACHE_DIR} } addtask setup_mounts after do_build do_cleanup_mounts() { - sudo umount ${BUILDCHROOT_DIR}/isar-apt 2>/dev/null || true + sudo umount ${BUILDCHROOT_DIR}${CHROOT_CACHE_DIR} 2>/dev/null || true } +do_build[dirs] += "${CACHE_DIR}/${DISTRO} ${BUILDCHROOT_DIR}/apt-cache" \ No newline at end of file diff --git a/meta/recipes-devtools/buildchroot/files/configscript.sh b/meta/recipes-devtools/buildchroot/files/configscript.sh index 458c94b..9813c9a 100644 --- a/meta/recipes-devtools/buildchroot/files/configscript.sh +++ b/meta/recipes-devtools/buildchroot/files/configscript.sh @@ -44,4 +44,5 @@ mount -t devtmpfs -o mode=0755,nosuid devtmpfs /dev #configuring packages dpkg --configure -a +apt-get update umount /dev 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