From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6506467811408216064 X-Received: by 10.223.171.168 with SMTP id s37mr177092wrc.30.1514986371042; Wed, 03 Jan 2018 05:32:51 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.5.147 with SMTP id 141ls316238wmf.4.gmail; Wed, 03 Jan 2018 05:32:50 -0800 (PST) X-Google-Smtp-Source: ACJfBovZO+sDrHqlYiVvCu7alHWMm78aq68MS3QZD0KTWiYmcw/fubZM3EJa1mnGhDfJ0xKoikK5 X-Received: by 10.223.195.143 with SMTP id p15mr176715wrf.20.1514986370676; Wed, 03 Jan 2018 05:32:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514986370; cv=none; d=google.com; s=arc-20160816; b=Kppv2i8VZf+oct88QIKJAckZflMyUQO2rxYZg/XzYTThB11a9yQdX05R/PdAGYVtCS GyvcyLgpE0pPKANzoaF+Upy4f8ZsilFXDry+pvwiy/vs5HfcJ4QhZzb7VdBS3tT2rQQg sxgWS8OLzs+EEYZtBggU3PakXjWIpt6k4GL1fVXsN4OlNKIh+XuhhuIubG4CWI2TKxUR jm3bF79rSkJnPCHL80wuxRi3SFXUVAoRfoqzkh/sw2n2xopxxYXVQWq1wLOeBHMDC1ne 1I2u+/ksNWylU3cKCGl27GKeMArVPFaFJM/IFs3Thdz931jY6ijKzD2NSol2h2B9SXkD kCjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:arc-authentication-results; bh=Xqj2+2+H9fnRxNDni3wbdPt1/3ZMCdcLpIG7yxH80r0=; b=ZZMUx0VOeECnvSItl9aOTy0oLR+o25Yykr5tavU/wRqyZ3RiVrC5QJ1aP13WkqA5pH RWX78Y2C6eVgNIWg/xFqQ8XZ9GktWrjudhiBf42HBQM4antuKoh0g8ngQQy7xzmijroF TVq6Hywl/mqIIF06uvu8NWfH/RjOKUIn3XbPXlf58HPa5ug+y8y7EC+yq/3TtQ/1aSEU C1RFr4y9Fiyk7P1WDNdfR+OWijcp+ExGwDSx+5dNlYkXlI/Yn7xKMcw+NZUOvMBDGz17 vIgJ8lBrRU0bDb4YzipJI7O28k/yz6pawpWiPV1jToC9ybcSLB0zO9zsY+YEIgRupRtw +ivA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id x5si152641wrb.0.2018.01.03.05.32.50 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 05:32:50 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail2.siemens.de (mail2.siemens.de [139.25.208.11]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id w03DWoK5002603 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 3 Jan 2018 14:32:50 +0100 Received: from mmd1pvb1c.ad001.siemens.net (md1pvb1c.ad001.siemens.net [139.25.68.40] (may be forged)) by mail2.siemens.de (8.15.2/8.15.2) with ESMTP id w03DWoDB015319; Wed, 3 Jan 2018 14:32:50 +0100 Date: Wed, 3 Jan 2018 14:32:49 +0100 From: Henning Schild To: Alexander Smirnov Cc: Subject: Re: [RFC][PATCH 2/6] base-apt: Add to pipeline Message-ID: <20180103143249.0a4281ef@mmd1pvb1c.ad001.siemens.net> In-Reply-To: <20180102145744.21814-3-asmirnov@ilbers.de> References: <20180102145744.21814-1-asmirnov@ilbers.de> <20180102145744.21814-3-asmirnov@ilbers.de> X-Mailer: Claws Mail 3.15.0-dirty (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: 9N++OdvP7dnD Am Tue, 2 Jan 2018 17:57:40 +0300 schrieb Alexander Smirnov : > Add 'base-apt' recipe to build pipeline. > > Signed-off-by: Alexander Smirnov > --- > meta-isar/conf/local.conf.sample | 5 +++++ > meta/classes/dpkg-base.bbclass | 14 ++++++++++++++ > meta/classes/image.bbclass | 13 ++++++++++++- > meta/recipes-devtools/base-apt/base-apt.bb | 5 ++++- > meta/recipes-devtools/buildchroot/buildchroot.bb | 12 ++++++++++++ > 5 files changed, 47 insertions(+), 2 deletions(-) > > diff --git a/meta-isar/conf/local.conf.sample > b/meta-isar/conf/local.conf.sample index 660958f..2da803b 100644 > --- a/meta-isar/conf/local.conf.sample > +++ b/meta-isar/conf/local.conf.sample > @@ -162,3 +162,8 @@ BB_NUMBER_THREADS = "4" > # > # Number of attempts to try to get reprepro lock for access to apt > cache REPREPRO_LOCK_ATTEMPTS = "16" > + > +# > +# List of images, wich dependencies will be pre-fetched and put in > base-apt. +# This will guarantee image building reproducibility. > +BASE_APT_IMAGES ?= "isar-image-base isar-image-debug" > diff --git a/meta/classes/dpkg-base.bbclass > b/meta/classes/dpkg-base.bbclass index ad58f0b..c61f9a6 100644 > --- a/meta/classes/dpkg-base.bbclass > +++ b/meta/classes/dpkg-base.bbclass > @@ -8,6 +8,20 @@ do_build[depends] = "buildchroot:do_build" > # recipe name as identifier > PP = "/home/builder/${PN}" > > +do_get_deps[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > + > +S = "${WORKDIR}/${SRC_DIR}" > + > +do_get_deps() { > + if [ -e ${S}/debian/control ]; then > + mkdir -p ${BASE_APT_DIR}/deps > + DEPS=$(perl -ne 'next if /^#/; $p=(s/^Build-Depends:\s*/ / > or (/^ / and $p)); s/,|\n|\([^)]+\)|\[[^]]+\]//mg; print if $p' < > ${S}/debian/control) > + echo $DEPS > ${BASE_APT_DIR}/deps/${PN} > + fi > +} This code comes from buildchroot/files/build.sh and should be in the codebase only once. Furthermore this version of do_get_deps should go into dpkg.bbclass and we need another implementation for dpdk-raw.bbclass that takes care of DEBIAN_DEPENDS Henning > +addtask get_deps after do_unpack before do_build > + > BUILDROOT = "${BUILDCHROOT_DIR}/${PP}" > do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index e2cb01b..457a525 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -66,6 +66,17 @@ do_cache_config() { > > addtask cache_config before do_populate > > +IMAGE_PREINSTALL ?= "" > +do_get_deps[stamp-extra-info] = "${DISTRO}-${MACHINE}" > + > +do_get_deps() { > + mkdir -p ${BASE_APT_DIR}/deps > + echo ${IMAGE_PREINSTALL} > ${BASE_APT_DIR}/deps/${PN} > +} > + > +addtask get_deps before do_build after do_unpack > +do_get_deps[deptask] = "do_get_deps" > + > do_populate[stamp-extra-info] = "${DISTRO}-${MACHINE}" > > # Populate Isar apt repository by newly built packages > @@ -79,7 +90,7 @@ do_populate() { > fi > } > > -addtask populate before do_build after do_unpack > +addtask populate before do_build after do_get_deps > do_populate[deptask] = "do_deploy_deb" > > do_rootfs[stamp-extra-info] = "${MACHINE}-${DISTRO}" > diff --git a/meta/recipes-devtools/base-apt/base-apt.bb > b/meta/recipes-devtools/base-apt/base-apt.bb index b292d89..108d501 > 100644 --- a/meta/recipes-devtools/base-apt/base-apt.bb > +++ b/meta/recipes-devtools/base-apt/base-apt.bb > @@ -13,7 +13,10 @@ SRC_URI = "file://distributions.in \ > file://multistrap.conf.in \ > " > > -BASE_PREINSTALL ?= "" > +DEPENDS = "${BASE_APT_IMAGES} buildchroot" > +do_get_base_apt[deptask] = "do_get_deps" > + > +BASE_PREINSTALL ?= "apt" > > WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" > > diff --git a/meta/recipes-devtools/buildchroot/buildchroot.bb > b/meta/recipes-devtools/buildchroot/buildchroot.bb index > 59ad0e0..098f5c7 100644 --- > a/meta/recipes-devtools/buildchroot/buildchroot.bb +++ > b/meta/recipes-devtools/buildchroot/buildchroot.bb @@ -29,8 +29,20 @@ > BUILDCHROOT_PREINSTALL ?= "gcc \ > WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" > > +do_get_deps[stamp-extra-info] = "${DISTRO}-${MACHINE}" > + > +do_get_deps() { > + mkdir -p ${BASE_APT_DIR}/deps > + echo ${BUILDCHROOT_PREINSTALL} > ${BASE_APT_DIR}/deps/${PN} > +} > + > +addtask get_deps before do_build after do_unpack > +do_get_deps[deptask] = "do_get_deps" > + > + > do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > do_build[dirs] = "${WORKDIR}/hooks_multistrap" > +do_build[depends] = "base-apt:do_get_base_apt" > > do_build() { > E="${@ bb.utils.export_proxies(d)}"