From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7202866696458076160 X-Received: by 2002:a17:90b:280a:b0:237:161e:335d with SMTP id qb10-20020a17090b280a00b00237161e335dmr1298600pjb.120.1677048093079; Tue, 21 Feb 2023 22:41:33 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:903:32d1:b0:196:f81:2760 with SMTP id i17-20020a17090332d100b001960f812760ls7929821plr.2.-pod-prod-gmail; Tue, 21 Feb 2023 22:41:32 -0800 (PST) X-Google-Smtp-Source: AK7set81+kL9iADeBPy7Z13HCM6aCGw0OocDSCQttvTx+ijOwnYxCYM3kbjZhTzNZQyy7lUoEE9C X-Received: by 2002:a17:90b:4c4a:b0:234:797a:7c5f with SMTP id np10-20020a17090b4c4a00b00234797a7c5fmr7114676pjb.33.1677048092248; Tue, 21 Feb 2023 22:41:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677048092; cv=none; d=google.com; s=arc-20160816; b=ksD1KiUHN4RuSdJTK7km9uFgJtKhE+52qBgnGRllzf1h6LJveDptN47MdmUg0yR8Ng P323uFCSskc53KyjAFltMT9WpeaCY8dZhpA+HP0YW6FT85DfRJKOzO9Ov+mx31UYa3F8 gIMlUVhQTntOiUaYh3GJv6rLJ1S9to5OQGjgPWgA6pdjOk9ESrqxzBUmVkqvOnSeQPlt ICxS0nLAZHKS1SPMkZ9/JsYVbjKzvVJOfiUbt0FIRwc87a1Bse5klPlYZDTM8YuuLJvm 375zjQ9d9bepxdtHgVUBbMRMnxCfOi7sRCaKYv2hf6bGVJffgl8Mry6qyqLCM+MIaLrf g4XQ== 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=sWxowQkI56kFEjwmKteR/maZ4u3isFdetqa6BEf6e/4=; b=KNtLFMmiU4Rtcb763wX0DlsHpBexxVJYm2H3nj+5GtLbMXo0H6XISz6oBFXXcTvLzn l1hc4Tmwr4oob3pLJSUeToyVS1gmrhkox+CniJ3GpSqufbOzS32F4Mc44j1NAie4SOXi L+/SesGZXfSsQKF3KICajCFpTCQaCO/OIuH9mxd0E+aVQby2vUy45frN0/kmV7DbwVZe /CynIBazkrx//Zk7pu9LwsaOk/u+aRc6i5o/zeFWGyj7ho34emSubpvmqU/1awU6ITRX 0dLBub0suZTV8Jx/nKoBfqvZqY6Hal0bmkUWYRoTuJKr/0z04NR0JJjcQYGqBtJ9vl90 yO/Q== 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 jx5-20020a17090b46c500b00233c40c325asi408247pjb.1.2023.02.21.22.41.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Feb 2023 22:41:32 -0800 (PST) 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+deb9u1) with ESMTPSA id 31M6fPcF011872 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 22 Feb 2023 07:41:30 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v4 11/13] meta: Add cache-deb-src functionality to base-apt Date: Wed, 22 Feb 2023 07:41:23 +0100 Message-Id: <20230222064125.22754-12-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20230222064125.22754-1-ubely@ilbers.de> References: <20230222064125.22754-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: FQRLusJrojD1 Signed-off-by: Uladzimir Bely --- meta/classes/deb-dl-dir.bbclass | 22 ++++++++++++++++++++++ meta/classes/rootfs.bbclass | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/meta/classes/deb-dl-dir.bbclass b/meta/classes/deb-dl-dir.bbclass index ca2a1ee2..90ae1dec 100644 --- a/meta/classes/deb-dl-dir.bbclass +++ b/meta/classes/deb-dl-dir.bbclass @@ -43,6 +43,28 @@ debsrc_undo_mounts() { EOSUDO } +debsrc_fill_base_apt() { + export rootfs="$1" + + find "${REPO_BASE_DIR}" -maxdepth 6 -type f -iname '*\.deb' | while read package; do + is_not_part_of_current_build "${package}" && continue + # Get source package name if available, fallback to package name + local src="$( dpkg-deb --field "${package}" Source | awk '{printf $1}' )" + [ -z "$src" ] && src="$( dpkg-deb --field "${package}" Package )" + # Get source package version if available, fallback to package version + local version="$( dpkg-deb --field "${package}" Source | awk '{gsub(/[()]/,""); printf $2}')" + [ -z "$version" ] && version="$( dpkg-deb --field "${package}" Version )" + # TODO: get back to the code below when debian bug #1004372 is fixed + # local src="$( dpkg-deb --show --showformat '${source:Package}' "${package}" )" + # local version="$( dpkg-deb --show --showformat '${source:Version}' "${package}" )" + local dscname="$(echo ${src}_${version} | sed -e 's/_[0-9]\+:/_/')" + local dscfile=$(find "${DEBSRCDIR}"/"${rootfs_distro}" -name "${dscname}.dsc") + [ -n "$dscfile" ] && continue + + debrepo_add_packages --srcmode "${DEBREPO_TARGET_DIR}" "${src}=${version}" + done +} + debsrc_download() { export rootfs="$1" export rootfs_distro="$2" diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index a3aec04c..ba41006d 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -225,8 +225,12 @@ cache_deb_src() { sudo cp -Trpn --reflink=auto "${BOOTSTRAP_SRC}/var/lib/apt/lists/" "${ROOTFSDIR}/var/lib/apt/lists/" deb_dl_dir_import ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} + + debsrc_fill_base_apt ${ROOTFSDIR} + update_apt_source_list "${ROOTFSDIR}" "base-apt" debsrc_download ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} + sudo rm -f "${ROOTFSDIR}"/etc/resolv.conf if [ -e "${ROOTFSDIR}"/etc/resolv.conf.isar ] || [ -h "${ROOTFSDIR}"/etc/resolv.conf.isar ]; then -- 2.20.1