From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6506467811408216064 X-Received: by 10.223.165.11 with SMTP id i11mr2118157wrb.32.1514905088166; Tue, 02 Jan 2018 06:58:08 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.223.130.172 with SMTP id 41ls9321056wrc.2.gmail; Tue, 02 Jan 2018 06:58:07 -0800 (PST) X-Google-Smtp-Source: ACJfBovOA+HGTv3cTfyJ1x0snSNUBmlcZ9EZlSmpcu21HKottBg7t3G/M3lDnXcVcgydli//Kxer X-Received: by 10.223.151.50 with SMTP id r47mr3875190wrb.6.1514905087826; Tue, 02 Jan 2018 06:58:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514905087; cv=none; d=google.com; s=arc-20160816; b=SpA3DxOVFBuGVhJ+cdhvzK3Lk/PQRXEYI7AFLAbnGnIklINYBwB0N3UJtLF3aQYwSq krJSgZ9OSGcV9WMkErHjH1st4NYzeCodTDLgbcD7w9jjUbmc19cr5F74DayY/ezmQnJa SG0zMKw2ZjMQgYZgmiIxI652YV+rxQ/v2jKPB2hsfegN/kVS6tAz92CrQoPt1Pv3RVhP vZt2bmdBaN/hJ1MwL/6e/6qeqTcdUAQ5sIQQKVNBQITImVoRjiB9blg++mM9ClTULGAc N4SqjxzGfg+XisNuGZfF9fpaNegsGb7aU5ZIDsAlWpoewY2pkEzGIoHl8v4cSkOhr4iE sbbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:arc-authentication-results; bh=yVkeZr3uXOfLJ9lOI9lg4SjcMGKy7vR7P13Tc4VkMsw=; b=Ewd++oxe78sc4Qkre6hew2rAOx8Pf+/0cZS5kvTi9Az31h/v8vEP1xql4CltK+HifW CBzQgoAKecwZvxAsCUgAuncBH2dIrAfbX4DpXU9GbRwSuVNrnHm5VSQiUD+eXlHnXjd3 6MyJMy2fS2CLK986Y2hRfPf06NW85G2jUmYzZhalA7CrS+SEmqJFbdHmf6TToWdk6e2t Rc4879zZDLmAhsCOu8cwnq3RQ3PFHZp+cKV5p1/LXwF1hHxRukahwyNiGot6ANJmBZ5R Y/7qAuJs9+RTpdSVkHpCa+8PaBnK4HBcMDqtXYybPlwQDR3398BhAboWmygNPTUjub5s lOmA== 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 m3si166098wrm.5.2018.01.02.06.58.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Jan 2018 06:58:07 -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 w02Evpwf016822 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 2 Jan 2018 15:57:58 +0100 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov Subject: [RFC][PATCH 0/6] Isar build reproducibility Date: Tue, 2 Jan 2018 17:57:38 +0300 Message-Id: <20180102145744.21814-1-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.5 X-TUID: POPtwtPuUK+7 Hello all, this series proposes the way how build reproducibility could be implemented in Isar. General idea is to get the list of all the necessary packages for build, fetch them and create local repo, that will be used for further builds/ Briefly speeking, it works like the following: 1. User sets the list of images that should be 'reproducible' in BASE_APT_IMAGES variable in local.conf file. 2. Based on the list of images above, Isar will derive all the run-time and build dependencies for these images. 3. Using multistrap, Isar will fetch the list of packages and create base-apt local repository. 4. Now buildchroot and image root filesystems are generated using base-apt. Some notes: 1. base-apt repository is mounted to buildchroot, so Isar packages are able to install necessary deps via apt-get. 2. bitbake events are used to clean up buildchroot. I haven't found another way how base-apt could be unmounted. So it's mounted once before any package starts building and unmounted by bitbake event: bb.event.BuildCompleted. This series works good with latest next. Any comments are welcome. Happy New Year 2018! :-) With best regards, Alex Alexander Smirnov (6): base-apt: Introduce fetching upstream apt base-apt: Add to pipeline buildchroot: Switch to base-apt buildchroot: Add mount/umount for 'base-apt' image: Switch to base-apt base-apt: Add possibility to reuse meta-isar/conf/local.conf.sample | 8 ++ .../recipes-core/images/files/multistrap.conf.in | 18 +--- meta-isar/recipes-core/images/isar-image-base.bb | 5 +- meta/classes/dpkg-base.bbclass | 16 +++- meta/classes/image.bbclass | 13 ++- meta/classes/isar-events.bbclass | 21 +++++ meta/conf/isar-bitbake.conf | 2 + meta/recipes-devtools/base-apt/base-apt.bb | 97 ++++++++++++++++++++++ .../base-apt/files/distributions.in | 3 + .../base-apt/files/multistrap.conf.in | 28 +++++++ meta/recipes-devtools/buildchroot/buildchroot.bb | 28 ++++++- .../buildchroot/files/configscript.sh | 1 - .../buildchroot/files/multistrap.conf.in | 18 +--- 13 files changed, 217 insertions(+), 41 deletions(-) create mode 100644 meta/classes/isar-events.bbclass create mode 100644 meta/recipes-devtools/base-apt/base-apt.bb create mode 100644 meta/recipes-devtools/base-apt/files/distributions.in create mode 100644 meta/recipes-devtools/base-apt/files/multistrap.conf.in -- 2.1.4