From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6790334981638979584 X-Received: by 2002:a2e:9b07:: with SMTP id u7mr4726968lji.110.1585919171791; Fri, 03 Apr 2020 06:06:11 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:ac2:41d5:: with SMTP id d21ls989561lfi.11.gmail; Fri, 03 Apr 2020 06:06:11 -0700 (PDT) X-Google-Smtp-Source: APiQypK7c5+1Yj3Iw67OPzbcHVBFAfvyoOopwmnLxoXQdgjaYo2V34NYMCdikQLhy0sJ3PHxjUGW X-Received: by 2002:a05:6512:203c:: with SMTP id s28mr5136330lfs.49.1585919171037; Fri, 03 Apr 2020 06:06:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585919171; cv=none; d=google.com; s=arc-20160816; b=l4tRQl5A5I+O7/H46pUw0pWo6zHD0+fENx/l9h3xV658+NWT2FuHb95hEd4UVrzV7g es86j3aduASMNyqorrfWZcRSs8AaVqrzONzeZPzEkXcIxycYSsJR1WxYp0EWpYq7Q3pw VVdS8xeqWN166HxDbY18HP5yAQRLtcvkhsEpSJQPL5rL13C5MJ+q75oyj9Qh1xLZuVbG 1FsTUMfFBVsuW3TfNzitPL/i0CzeVMQOgkOHa9e12VO4bzdwMSBngbBfqvY9pSwmoU+B HXgr9CB+D1nl9QNBAWpgPh5deU40O11RVeUYa1hfA6cVGS0AOnNQLIheLtMYMh3Ya7dj 5+FQ== 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; bh=+9q8Q2bhSbqB9aDn6HY/otF2qTThlmfdvPxiwRtI090=; b=mUxifetSk1FApCWJSTuwPc53EzVTBNfzPyoG7kDCNeYs/YEUIUuaghQXv2JxXv0PBh OZHfrumI/BB+HBngksqxzjRnCkrhOUKQIpCnxCKqpoofrzT3PlHTmgbyvwEjrXz7Ofn9 vDRZMcwKqw8iXtg9LPUoRYvOs2DnZBN21sE5a4OYpBVRxs3u4dL+3nxxEWj11nosfLXT rJxTu9guytnWZ9a0IU/B9kR3o6t2kzsrkruRDg1T7CwKZAk9VKg9PThEQBqvsbsn42bX BiIX55PopKsVgEm2va1Cj4PhcDblBKHveOwFGVBV0XR7u8+4DkXYsW7bl6NdhM7xyahf 3+9A== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=qrbxKBA1; spf=pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::444 as permitted sender) smtp.mailfrom=vijaikumar.kanagarajan@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com. [2a00:1450:4864:20::444]) by gmr-mx.google.com with ESMTPS id s22si482182ljp.0.2020.04.03.06.06.11 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Apr 2020 06:06:11 -0700 (PDT) Received-SPF: pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::444 as permitted sender) client-ip=2a00:1450:4864:20::444; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=qrbxKBA1; spf=pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::444 as permitted sender) smtp.mailfrom=vijaikumar.kanagarajan@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: by mail-wr1-x444.google.com with SMTP id h15so8425060wrx.9 for ; Fri, 03 Apr 2020 06:06:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+9q8Q2bhSbqB9aDn6HY/otF2qTThlmfdvPxiwRtI090=; b=qrbxKBA14BlyfOIIh7Zqa/UQT3XfL4VyKeagN2JpBwPGHGVyiH/uhBuq7RTqR3oO6l wOKKEdInNnnsenF14KhgqvlWyrCZYrgami6lilAhkPssBLEmxAcNRmb/Di9CYYklBTw6 m1fA1P678jxAYwQq4SvxRMCIgXhYkyXU2MsPr4EsXqsu4EahkEeklL6nY71ryTKY35r6 NEXxCyUTXGRcJWAZ+Pdymb2MNT2Tct2VuaC+HwedtT1gGBzZlxJNQOUzXYU0h4zwibXC rWNEDKf8LV+Zgcw+fvREHunFIre2KfKU565yK+QoXe5pH2/aOhaM7VYV9frf3N4wS14t XqSg== 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=+9q8Q2bhSbqB9aDn6HY/otF2qTThlmfdvPxiwRtI090=; b=AMC5aSLuLkKO+5uhcTPm/lzclOsBu8sufitIuhWEpAfWlDYXA4p40EpV6q7jY7ssBd u2fhGUTjgJ/9brGAbzqsS/vrtlxFV9NFagwuqkkA1VhVEE+PX31Ds871IpSRQQZ5x/O0 zflYe397mTcVFAHXsCdo3dqV6vShHBUdHRGZGY8ZAjD8aY8b7mNOiiVKaUbggnj5lw68 dIsQWCdCL0iGw2HSE01vcuhqt+ED70+OXsnVgA5pGD4AUj+lrOnC4Z/nWErogaSgW6ON Sf8agKum5bO91Tq3v2CJQNfRGrDWrHsaizKKfVErMB+hT15hYl/EXPoCoCgujaMAkI5X a71Q== X-Gm-Message-State: AGi0PuZCqOoMTXsFq1VepGsD9N0dQZxuqajNvIHuOrLOCW7L4ypQoohD 97OH5oGq90uGVPVTHE54m27F4BDvMVA= X-Received: by 2002:a5d:5141:: with SMTP id u1mr8527118wrt.146.1585919169990; Fri, 03 Apr 2020 06:06:09 -0700 (PDT) Return-Path: Received: from oxygen.mgc.mentorg.com (nat-sch.mentorg.com. [139.181.36.34]) by smtp.gmail.com with ESMTPSA id f62sm11017737wmf.44.2020.04.03.06.06.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 06:06:09 -0700 (PDT) From: Vijai Kumar K X-Google-Original-From: Vijai Kumar K To: isar-users@googlegroups.com Cc: Vijai Kumar K Subject: [PATCH v4 2/2] meta: cache deb srcs as part of postprocessing Date: Fri, 3 Apr 2020 18:35:51 +0530 Message-Id: <20200403130551.2158-2-Vijaikumar_Kanagarajan@mentor.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200403130551.2158-1-Vijaikumar_Kanagarajan@mentor.com> References: <20200403130551.2158-1-Vijaikumar_Kanagarajan@mentor.com> X-TUID: DEqtWId3BINm Collect the deb sources of the corresponding deb binaries cached in DEBDIR as part of postprocess for those to be later included into the final base-apt by do_cache. Signed-off-by: Vijai Kumar K --- meta/classes/image.bbclass | 2 +- meta/classes/rootfs.bbclass | 46 +++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 9fa58f8..1c7a527 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -60,7 +60,7 @@ image_do_mounts() { } ROOTFSDIR = "${IMAGE_ROOTFS}" -ROOTFS_FEATURES += "copy-package-cache clean-package-cache generate-manifest" +ROOTFS_FEATURES += "copy-package-cache clean-package-cache generate-manifest cache-deb-src" ROOTFS_PACKAGES += "${IMAGE_PREINSTALL} ${IMAGE_INSTALL}" ROOTFS_MANIFEST_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}" diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 8bb003d..7bfdfc9 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -201,6 +201,52 @@ rootfs_generate_manifest () { ${ROOTFS_MANIFEST_DEPLOY_DIR}/"${PF}".manifest } +ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'cache-deb-src', 'cache_deb_src', '', d)}" +cache_deb_src() { + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + return 0 + fi + + mkdir -p "${DEBSRCDIR}"/"${DISTRO}" + + sudo -s <<'EOSUDO' + cp -L /etc/resolv.conf '${ROOTFSDIR}/etc' + mkdir -p '${ROOTFSDIR}/deb-src' + mountpoint -q '${ROOTFSDIR}/deb-src' || \ + mount --bind '${DEBSRCDIR}' '${ROOTFSDIR}/deb-src' +EOSUDO + + sudo -E chroot ${ROOTFSDIR} /usr/bin/apt-get update + + find "${DEBDIR}"/"${DISTRO}" -name '*\.deb' | while read package; do + local src="$( dpkg-deb --show --showformat '${Source}' "${package}" )" + # If the binary package version and source package version are different, then the + # source package version will be present inside "()" of the Source field. + local version="$( echo "$src" | cut -sd "(" -f2 | cut -sd ")" -f1 )" + if [ -z ${version} ]; then + version="$( dpkg-deb --show --showformat '${Version}' "${package}" )" + fi + # Now strip any version information that might be available. + src="$( echo "$src" | cut -d' ' -f1 )" + # If there is no source field, then the source package has the same name as the + # binary package. + if [ -z "${src}" ];then + src="$( dpkg-deb --show --showformat '${Package}' "${package}" )" + fi + + sudo -E chroot --userspec=$( id -u ):$( id -g ) ${ROOTFSDIR} \ + sh -c 'mkdir -p "/deb-src/${1}/${2}" && cd "/deb-src/${1}/${2}" && \ + apt-get -y --download-only --only-source source "$2"="$3"' \ + download-src "${DISTRO}" "${src}" "${version}" + done + + sudo -s <<'EOSUDO' + mountpoint -q '${ROOTFSDIR}/deb-src' && \ + umount -l ${ROOTFSDIR}/deb-src + rm -rf '${ROOTFSDIR}/etc/resolv.conf' +EOSUDO +} + do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}" python do_rootfs_postprocess() { # Take care that its correctly mounted: -- 2.17.1