From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7078983779658760192 X-Received: by 2002:ac2:4e13:0:b0:44a:2d3e:e9ce with SMTP id e19-20020ac24e13000000b0044a2d3ee9cemr7088578lfr.602.1648204351224; Fri, 25 Mar 2022 03:32:31 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3f16:b0:449:f5bf:6f6a with SMTP id y22-20020a0565123f1600b00449f5bf6f6als213170lfa.2.gmail; Fri, 25 Mar 2022 03:32:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxkfgs6qOOwk/XwwMueyk89SwquAf0LgTqI7Hijaznw9dh6wxPUZgt/ZwhCyDJbMFFyUA+J X-Received: by 2002:a05:6512:e8f:b0:44a:6c22:c643 with SMTP id bi15-20020a0565120e8f00b0044a6c22c643mr3826769lfb.631.1648204349839; Fri, 25 Mar 2022 03:32:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648204349; cv=none; d=google.com; s=arc-20160816; b=CWtMG86lLerRu9qlgySb1G0fLBBkrjyeMuUws18BiDP/rLlWQn9vaXJ1OpbRp7mCwv BFe4h6G4y11nd1h0pb1+hsxQH3mj2XK0DKeXISvxQaCP45YdNAMMYzcaAa0tFpgyJlmD lmX9Cg64gPupQiFr8g0vV3snGhjajt7ZGBHn95OWcvtjbRJ2qL4lCWo/AxYAX0oUX8Kw 13iktjLt3Dj3Ch4J5QWmBvU9obInDOtCqjDHHKTKhlPnTrjeu/qUboyCaQHOnbKIw+7z UUr+sWw7SLABJ7u6XYJHIP3UXPzoh1vlK4mtdqayZ2vpqPAdmtxTg5Tja6/8i64Fu4QL Q14g== 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:date:subject:to:from; bh=NMUYm3NPBREOKmp4VNcnj7WhQjAfDbjS0B2NayeVGaE=; b=JKRXNQM2GF/T9c44vyVbZsrErKH31ppmGdikp5YzXB6+4I/XOENdwQhJX0V2pxTk+I KDlRHQ+8vWf4ryoOswRF3X/cge0zGYY9ok3+av8B0UECbgEtVHXeoeB7HQxcVJHv7y2/ UJFBDeDjaDWDiWrxPb0ERLo+6NS1Qg4y9cUzKq+EL1YTz2Fy0Zm1lNJ+/ggbfeiu2P68 lX5pXOuIZ3de1ZWnBhyjbOUyPMhPQM6EAw4vS3TSP5nskT+czd+gf9HyQKGMdwWo8h2V a930C/iLxZlLgaYEQsB/rqqmRd7WTZqI6ccZsEjIHfxi670Tn61xmvowZbypLUhuY46+ 6bYg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id q5-20020a2e8745000000b0024801a668d9si242259ljj.6.2022.03.25.03.32.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 Mar 2022 03:32:29 -0700 (PDT) Received-SPF: pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from baighyz.m.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 22PAWQZY030611 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 25 Mar 2022 11:32:28 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v3 2/5] meta: Use cached base-apt repo to debootstrap Date: Fri, 25 Mar 2022 11:32:23 +0100 Message-Id: <20220325103226.27033-3-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220325103226.27033-1-ubely@ilbers.de> References: <20220325103226.27033-1-ubely@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: +oM+m5Erimlb This patch makes local base-apt repo to be created before debootstrap task. So, debootstrap is then done from it. The required packages are downloaded via python-apt and reprepro creates debian-like repository from .deb files. For debian targets host keyring is used while ubuntu/raspbian targets use keys specified by DISTRO_BOOTSTRAP_KEYS variable. The goal is have workable base-apt repo before first build completed. Signed-off-by: Uladzimir Bely --- meta-isar/conf/distro/ubuntu-focal.conf | 4 ++ meta-isar/conf/distro/ubuntu.public.key | 53 +++++++++++++++++++ .../isar-bootstrap/isar-bootstrap.inc | 35 +++++++++++- 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 meta-isar/conf/distro/ubuntu.public.key diff --git a/meta-isar/conf/distro/ubuntu-focal.conf b/meta-isar/conf/distro/ubuntu-focal.conf index 4dfa2014..67a59f6c 100644 --- a/meta-isar/conf/distro/ubuntu-focal.conf +++ b/meta-isar/conf/distro/ubuntu-focal.conf @@ -11,6 +11,10 @@ DISTRO_APT_SOURCES ?= "conf/distro/${DISTRO}.list" DISTRO_APT_SOURCES_arm64 ?= "conf/distro/${DISTRO}-ports.list" HOST_DISTRO_APT_SOURCES_append_arm64 = " ${DISTRO_APT_SOURCES}" +BOOTSTRAP_KEY = "file://${LAYERDIR_isar}/conf/distro/ubuntu.public.key;sha256sum=36a38199a4bf4eae1e7f574891f7dfcb79b91b87a33a499383265e1224b5e989" +DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}" +HOST_DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}" + BASE_DISTRO_CODENAME = "focal" # that is what debootstrap_1.0.118ubuntu1 does anyways diff --git a/meta-isar/conf/distro/ubuntu.public.key b/meta-isar/conf/distro/ubuntu.public.key new file mode 100644 index 00000000..994f9f19 --- /dev/null +++ b/meta-isar/conf/distro/ubuntu.public.key @@ -0,0 +1,53 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFufwdoBEADv/Gxytx/LcSXYuM0MwKojbBye81s0G1nEx+lz6VAUpIUZnbkq +dXBHC+dwrGS/CeeLuAjPRLU8AoxE/jjvZVp8xFGEWHYdklqXGZ/gJfP5d3fIUBtZ +HZEJl8B8m9pMHf/AQQdsC+YzizSG5t5Mhnotw044LXtdEEkx2t6Jz0OGrh+5Ioxq +X7pZiq6Cv19BohaUioKMdp7ES6RYfN7ol6HSLFlrMXtVfh/ijpN9j3ZhVGVeRC8k +KHQsJ5PkIbmvxBiUh7SJmfZUx0IQhNMaDHXfdZAGNtnhzzNReb1FqNLSVkrS/Pns +AQzMhG1BDm2VOSF64jebKXffFqM5LXRQTeqTLsjUbbrqR6s/GCO8UF7jfUj6I7ta +LygmsHO/JD4jpKRC0gbpUBfaiJyLvuepx3kWoqL3sN0LhlMI80+fA7GTvoOx4tpq +VlzlE6TajYu+jfW3QpOFS5ewEMdL26hzxsZg/geZvTbArcP+OsJKRmhv4kNo6Ayd +yHQ/3ZV/f3X9mT3/SPLbJaumkgp3Yzd6t5PeBu+ZQk/mN5WNNuaihNEV7llb1Zhv +Y0Fxu9BVd/BNl0rzuxp3rIinB2TX2SCg7wE5xXkwXuQ/2eTDE0v0HlGntkuZjGow +DZkxHZQSxZVOzdZCRVaX/WEFLpKa2AQpw5RJrQ4oZ/OfifXyJzP27o03wQARAQAB +tEJVYnVudHUgQXJjaGl2ZSBBdXRvbWF0aWMgU2lnbmluZyBLZXkgKDIwMTgpIDxm +dHBtYXN0ZXJAdWJ1bnR1LmNvbT6JAjgEEwEKACIFAlufwdoCGwMGCwkIBwMCBhUI +AgkKCwQWAgMBAh4BAheAAAoJEIcZINGZG8k8LHMQAKS2cnxz/5WaoCOWArf5g6UH +beOCgc5DBm0hCuFDZWWv427aGei3CPuLw0DGLCXZdyc5dqE8mvjMlOmmAKKlj1uG +g3TYCbQWjWPeMnBPZbkFgkZoXJ7/6CB7bWRht1sHzpt1LTZ+SYDwOwJ68QRp7DRa +Zl9Y6QiUbeuhq2DUcTofVbBxbhrckN4ZteLvm+/nG9m/ciopc66LwRdkxqfJ32Cy +q+1TS5VaIJDG7DWziG+Kbu6qCDM4QNlg3LH7p14CrRxAbc4lvohRgsV4eQqsIcdF +kuVY5HPPj2K8TqpY6STe8Gh0aprG1RV8ZKay3KSMpnyV1fAKn4fM9byiLzQAovC0 +LZ9MMMsrAS/45AvC3IEKSShjLFn1X1dRCiO6/7jmZEoZtAp53hkf8SMBsi78hVNr +BumZwfIdBA1v22+LY4xQK8q4XCoRcA9G+pvzU9YVW7cRnDZZGl0uwOw7z9PkQBF5 +KFKjWDz4fCk+K6+YtGpovGKekGBb8I7EA6UpvPgqA/QdI0t1IBP0N06RQcs1fUaA +QEtz6DGy5zkRhR4pGSZn+dFET7PdAjEK84y7BdY4t+U1jcSIvBj0F2B7LwRL7xGp +SpIKi/ekAXLs117bvFHaCvmUYN7JVp1GMmVFxhIdx6CFm3fxG8QjNb5tere/YqK+ +uOgcXny1UlwtCUzlrSaPmQINBE+tgXgBEADfiL1KNFHT4H4Dw0OR9LemR8ebsFl+ +b9E44IpGhgWYDufj0gaM/UJ1Ti3bHfRT39VVZ6cv1P4mQy0bnAKFbYz/wo+GhzjB +Wtn6dThYv7n+KL8bptSCXgg1a6en8dCCIA/pwtS2Ut/g4Eu6Z467dvYNlMgCqvg+ +prKIrXf5ibio48j3AFvd1dDJl2cHfyuON35/83vXKXz0FPohQ7N7kPfI+qrlGBYG +WFzC/QEGje360Q2Yo+rfMoyDEXmPsoZVqf7EE8gjfnXiRqmz/Bg5YQb5bgnGbLGi +HWtjS+ACIdLUq/h+jlSp57jw8oQktMh2xVMX4utDM0UENeZnPllVJSlR0b+ZmZz7 +paeSar8Yxn4wsNlL7GZbpW5A/WmcmWfuMYoPhBo5Fq1V2/siKNU3UKuf1KH+X0p1 +oZ4oOcZ2bS0Zh3YEG8IQce9Bferq4QMKsekcG9IKS6WBIU7BwaElI2ILD0gSwu8K +zvNSEeIJhYSsBIEzrWxIBXoN2AC9PCqqXkWlI5Xr/86RWllB3CsoPwEfO8CLJW2L +lXTen/Fkq4wT+apdhHeiWiSsq/J5OEff0rKHBQ3fK7fyVuVNrJFb2CopaBLyCxTu +pvxs162jjUNopt0c7OqNBoPoUoVFAxUSpeEwAw6xrM5vROyLMSeh/YnTuRy8WviR +apZCYo6naTCY5wARAQABtEJVYnVudHUgQXJjaGl2ZSBBdXRvbWF0aWMgU2lnbmlu +ZyBLZXkgKDIwMTIpIDxmdHBtYXN0ZXJAdWJ1bnR1LmNvbT6JAjgEEwECACIFAk+t +gXgCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEDtP5qzAsh8yXX4QAJHU +dK6eYMyJcrFP3yKXtUYQMpaHRM/floqZtOFhlmcLVMgBNOr0eLvBU0JcZyZpHMvZ +ciTDBMWX8ItCYVjRejf0K0lPvHHRGaE7t6JHVUCeznNbDMnOPYVwlVJdZLOa6PmE +5WXVXpk8uTA8vm6RO2rS23vE7U0pQlV+1GVXMWH4ZLjaQs/Tm7wdvRxeqTbtfOEe +HGLjmsoh0erHfzMV4wA/9Zq86WzuJS1HxXR6OYDC3/aQX7CxYT1MQxEw/PObnHtk +l3PRMWdTW7fSQtulEXzpr2/JCev6Mfc8Uy0aD3jng9byVk9GpdNFEjGgaUqjqyZo +svwAZ4/dmRjmMEibXeNUGC8HeWC3WOVV8L/DiA+miJlwPvwPiA1ZuKBI5A8VF0rN +HW7QVsG8kQ+PDHgRdsmhpzSRgykN1PgK6UxScKX8LqNKCtKpuEPApka7FQ1u4BoZ +KjjpBhY1R4TpfFkMIe7qW8XfqoaP99pED3xXch2zFRNHitNJr+yQJH4z/o+2UvnT +A2niUTHlFSCBoU1MvSq1N2J3qU6oR2cOYJ4ZxqWyCoeQR1x8aPnLlcn4le6HU7To +cYbHaImcIt7qnG4Ni0OWP4giEhjOpgxtrWgl36mdufvriwya+EHXzn36EvQ9O+bm +3fyarsnhPe01rlsRxqBiK1JOw/g4GnpX8iLGEX1V +=kRV1 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc index d6f90f63..24925dbb 100644 --- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc +++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc @@ -269,6 +269,37 @@ do_bootstrap[vardeps] += " \ do_bootstrap[dirs] = "${DEPLOY_DIR_BOOTSTRAP}" do_bootstrap[depends] = "base-apt:do_cache isar-apt:do_cache_config" +do_localrepo[lockfiles] = "${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}/isar.lock" +do_localrepo[depends] = "base-apt:do_cache isar-apt:do_cache_config" +do_localrepo() { + debrepo_args="" + if [ "${BASE_DISTRO}" != "debian" ]; then + if [ "${BASE_DISTRO}" != "raspbian" ] && [ "${BASE_DISTRO}" != "raspios" ] || [ "${BOOTSTRAP_FOR_HOST}" = "0" ]; then + debrepo_args="$debrepo_args --keydir=${WORKDIR}" + fi + fi + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + debrepo_args="$debrepo_args --no-check-gpg" + fi + if [ "${BOOTSTRAP_FOR_HOST}" = "0" ]; then + arch_param="--arch=${DISTRO_ARCH}" + else + arch_param="--arch=${HOST_ARCH}" + fi + ${SCRIPTSDIR}/debrepo --init \ + --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \ + --repodir="${REPO_BASE_DIR}" \ + --repodbdir="${REPO_BASE_DB_DIR}" \ + --mirror="${@get_distro_source(d)}" \ + ${arch_param} \ + --distro="${BASE_DISTRO}" \ + --codename="${BASE_DISTRO_CODENAME}" \ + --components="main,contrib,non-free" \ + ${debrepo_args} \ + gnupg locales + #deb_dl_dir_export "${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" "${BOOTSTRAP_DISTRO}" +} + do_bootstrap() { if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then if [ -z "${COMPAT_DISTRO_ARCH}" ]; then @@ -291,6 +322,7 @@ do_bootstrap() { sudo rm -rf --one-file-system "${ROOTFSDIR}" deb_dl_dir_import "${ROOTFSDIR}" "${BOOTSTRAP_DISTRO}" + debootstrap_args="$debootstrap_args --no-check-gpg" sudo -E -s <<'EOSUDO' set -e if [ "${BOOTSTRAP_FOR_HOST}" = "0" ]; then @@ -301,7 +333,7 @@ do_bootstrap() { ${@get_distro_components_argument(d)} \ "${@get_distro_suite(d)}" \ "${ROOTFSDIR}" \ - "${@get_distro_source(d)}" \ + "file://${REPO_BASE_DIR}/${BASE_DISTRO}" \ ${DISTRO_DEBOOTSTRAP_SCRIPT} # Install apt config @@ -393,6 +425,7 @@ EOSUDO } addtask bootstrap before do_build after do_generate_keyrings +addtask localrepo before do_bootstrap after do_generate_keyrings SSTATETASKS += "do_bootstrap" SSTATECREATEFUNCS += "bootstrap_sstate_prepare" -- 2.20.1