From patchwork Sat Mar 22 13:43:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Badrikesh Prusty X-Patchwork-Id: 4124 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Sat, 22 Mar 2025 14:44:39 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f59.google.com (mail-lf1-f59.google.com [209.85.167.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 52MDic7V013362 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sat, 22 Mar 2025 14:44:38 +0100 Received: by mail-lf1-f59.google.com with SMTP id 2adb3069b0e04-54991197341sf1224726e87.2 for ; Sat, 22 Mar 2025 06:44:38 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1742651072; cv=pass; d=google.com; s=arc-20240605; b=InRfeaRQp9XkjEW6ySmq5EHpKx6UpnAfuL09hbykrpcBRmEFLOW1AMC2DiURchNkdL yCZbvj7VvxmG/51oZbvwAryHvZRqfMexV21AshIQUtxRfWPNkNwJE3K/IH7Tr5jT37mG LqO+R7DNw8QrYz/a0AmcycMe/XvojLmKAyEwNRDRx5ScIHgppFkkWvlWgrV8/yUcJLkT YcY0QAv/sJmx+GmGd4z4e8U4WunNeA10gtSQgPDT0OG9j3GZvdmdFbdljGNbelMFaEcf ULfm9hPv4AJpEVfGJcK5rCfqeW1eJbuvLSbOzs34/mJkPSDpIL95dgDwbqtziGNAupyb 6mJw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Y1EdzQa7QAjhbx+uQO9aB6wMNg/hDOBDApftcghKbeE=; fh=j5XsGPdM2bYS4li09qs700xVLN9i9HNgmkUTaDDgJVk=; b=ZVulAKi0h1mfLN9K+/IctRNBw0zDuM9tlXCQ9ZiTBfzzdLltOmqxykA5ZYk18Z0Nm+ sZY8ye/iV8TNunBYu+bcWA8U305V59JKjbpOIO6jZPcZGFAeCOBtre5r8Uld4wrWBWLU 6MufKxXgFH49KAlEOBP1mL0UPuFRiL2SXyEuAVQJEsbdySRKYv/eG8b+OWEo61Uqo1iR gOno2GB6GieqhlCTasFIDEOwojhQoW8RTnsgY43o4waY1GajqCaHjeeDe6kdmcrWc0lQ HZaC1B298TdnGYvIS3yLCrszUd6CEhkQsfgQZs9BxMsyBwbAkQvjwjb8bjHsjHxJ5YGC QK6Q==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b="DwbI/Xrc"; spf=pass (google.com: domain of fm-1328765-20250322134427abfd1401dbe161ba80-i7agyw@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-1328765-20250322134427abfd1401dbe161ba80-I7aGyW@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1742651072; x=1743255872; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=Y1EdzQa7QAjhbx+uQO9aB6wMNg/hDOBDApftcghKbeE=; b=YnuF66xlry+fgr53lGeLSVtES2Rpa5lTAm1MX4lvcWjPgNk9xWoX7JNIIU+umKa6Z3 gfJ+QgPMrOwyXrPmbmhAtaTNQbzThaUAhkRogehJDIKXxi8NOY9N6gnew2sgKP7bdslh I+ZL8xj9Mh9Gg6LHOjyU/KJiizg6w4zkMDXpC2howrLDPC5cfNTtJY3W6vvbA4j6h8+x dQzLYaLKm7grlI2Brml512nTb4I4iDRXea7AM/++pGtISyJDIr9iCAjkZ8JiRAB2EmSS MTmYqyLhZYIcrvNsjMRq9yyHDQZXurzBtrfJBQ74Egwxo1C6ZFfTU7CwZoolrJNmJZBf snFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742651072; x=1743255872; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:message-id:date:subject:cc:to:from:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Y1EdzQa7QAjhbx+uQO9aB6wMNg/hDOBDApftcghKbeE=; b=WHt2DIWIccaQLIoiIImg4/n9LJHI+uZkwIwka12pL4VQwnO9pnPCg3ec72vVamOuZ6 iO/PfYSCIAaneyqk5peI4fAk3sz50LrnAVNYsiHoxhEz4xNhIdoYDKxmONX26PB7aQP9 6AimCjeoJoKvXusU8qC2AjQ7KIwnTmHeKbXulDlc5pfDPJyxa1sH7FwLtZnOuQF5FYsv oXK8dvPuzGMjN8wNHqy1fSgoOl3kndo0h+JO8bmElSGFs/ou/0hlDRf82UJFnoal081B p4jv9IQHWPNp1qKIpP6S3JWBrpTrDB2KTqRuE9tLQLd1p4R8tH4ZZ/xpgAa7cWwbqi7R ZSjg== X-Forwarded-Encrypted: i=2; AJvYcCUGWdI2K0GWaZP+mKyOyw9fm4zNdt27/22kJ9sj44syiO1DHmrzBMJvplIfXcuGYZWb73kC/dQ=@isar-build.org X-Gm-Message-State: AOJu0YxAmLskrSUcVE3TCcjp+T/71Mk9Z1E4WPINMFdOShB3x3PQXkFg 4xY7qbdlpflLu3Z74EMVzm7Hl6ZszgEcwRpJrCTHPDLyjYXp1Sfz X-Google-Smtp-Source: AGHT+IHovfkZrIuLSnDaeB5YhZzRmarOTAZQEy++cOaGPyVwUfiTN8b78y08L2dEVXSu2lrVbUbLtg== X-Received: by 2002:a05:6512:138f:b0:549:8cc9:67d1 with SMTP id 2adb3069b0e04-54ad6501d0cmr2125088e87.38.1742651071788; Sat, 22 Mar 2025 06:44:31 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h=ARLLPAL+bPTpMGCZMaKYPrGvfHJMw8T1/EO21+BWYr7y0UCB8g== Received: by 2002:a19:5e5e:0:b0:549:9a7f:c5c9 with SMTP id 2adb3069b0e04-54acfb046a3ls189817e87.0.-pod-prod-01-eu; Sat, 22 Mar 2025 06:44:28 -0700 (PDT) X-Received: by 2002:a05:6512:6cc:b0:545:2e5d:f3f3 with SMTP id 2adb3069b0e04-54ad650c8dcmr2073655e87.46.1742651068224; Sat, 22 Mar 2025 06:44:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742651068; cv=none; d=google.com; s=arc-20240605; b=Ld6KGiKPcotGaKqSCbPKfnucPxgUqAEDDhFVdHTZAG59iA6tzsZkLRtxW1AZCBJjDZ lplr2sSsAvDeMJQJPCwxcZLjslqYRnyi5s2HYzBKlAwCWuwbsTrS8d+CYKN2MvbYhde5 I4oUiG19BRKVwsjeYA3aplKEiqm19RBOoY27xp4mS82XASmB+pvvk+As9Oytxyz7yzqu R9MA6wX3KCYopRXQbgvHCMbgtS6PkZ0e2tDZtX21gTS6NS1vA+5vb0gvd/z85crIcm5f tpJZquUGuamgkW7/oqWWZ+fKfazRwM6bgMyn2pdJjGOFYYL0JLBA/u1OZjZaPE0Z1gyr nHCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:message-id:date :subject:cc:to:from:dkim-signature; bh=Nc0vWnp6aJ2DNyICRp/0rsVnkBsov0TS4AGB0lpsF1o=; fh=IVe7tedBjrVO7NMfxxhSNfR9HdaoPf8yp1e13zSf5B8=; b=KebAQdV2NXnA3G+3bkALuM6fNfgTb5MDATPUoMMXi+cimUhYfZoUQMoOuzpHhAQ0ex 3X3bKoZ9aGgY0lU6cSvAiV4A0cp5333+7fmYWHYmme5bc5xSBB4IcgdfWV/f54Rx+n7w ICTPxRef6qHNwlpuOB67ORkr3ya7cdOCNxnN41KwPvB4MyLkVgbmoxnvjOCoInvRaRc1 xFRRljN/01SaF7Q5nIgIWYTH8lsP+n4Khs5zQ7IvIo8WjRe365okXZpDcC6tYx7k/yLm in9R0VO0hrjLgoJFQ74WX2qHOTEv2tbDlNmvebG2ErEbgjjwcjHx2EKVAV8eR/Hwvcv8 TyfA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b="DwbI/Xrc"; spf=pass (google.com: domain of fm-1328765-20250322134427abfd1401dbe161ba80-i7agyw@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-1328765-20250322134427abfd1401dbe161ba80-I7aGyW@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net. [185.136.65.226]) by gmr-mx.google.com with ESMTPS id 38308e7fff4ca-30d7d86155esi744281fa.8.2025.03.22.06.44.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 22 Mar 2025 06:44:28 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-1328765-20250322134427abfd1401dbe161ba80-i7agyw@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) client-ip=185.136.65.226; Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 20250322134427abfd1401dbe161ba80 for ; Sat, 22 Mar 2025 14:44:27 +0100 X-Patchwork-Original-From: "'Badrikesh Prusty' via isar-users" From: Badrikesh Prusty To: isar-users@googlegroups.com Cc: badrikesh prusty Subject: [PATCH] meta: cache dbg/dbgsym packages during rootfs_postprocess Date: Sat, 22 Mar 2025 19:13:49 +0530 Message-Id: <20250322134349.1136193-1-badrikesh.prusty@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1328765:519-21489:flowmailer X-Original-Sender: badrikesh.prusty@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b="DwbI/Xrc"; spf=pass (google.com: domain of fm-1328765-20250322134427abfd1401dbe161ba80-i7agyw@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-1328765-20250322134427abfd1401dbe161ba80-I7aGyW@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Badrikesh Prusty Reply-To: Badrikesh Prusty Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: badrikesh prusty When software is compiled, it's often "stripped" of debugging symbols to reduce its size. Debug packages contain these debugging symbols. This allows developers to get detailed stack traces when a program crashes. This helps developers identify the exact location and cause of the crash. Debug symbol packages (-dbg/-dbgsym) for .deb binaries in DEBDIR are cached during rootfs_postprocess. Caching is disabled by default. To enable it, set BASE_REPO_FEATURES:append = " cache-dbg-pkgs". During image build, the rootfs_postprocess task downloads these packages to the rootfs, and all the dbg packages syncing with the DEBDIR with the help of rootfs_export_package_cache function. Signed-off-by: badrikesh prusty Signed-off-by: badrikesh prusty --- meta/classes/deb-dl-dir.bbclass | 19 +++++++++++++++++++ meta/classes/image.bbclass | 1 + meta/classes/rootfs.bbclass | 22 ++++++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/meta/classes/deb-dl-dir.bbclass b/meta/classes/deb-dl-dir.bbclass index 7ebd057e..311386ed 100644 --- a/meta/classes/deb-dl-dir.bbclass +++ b/meta/classes/deb-dl-dir.bbclass @@ -70,6 +70,25 @@ debsrc_download() { debsrc_undo_mounts "${rootfs}" } +dbg_pkgs_download() { + export rootfs="$1" + export rootfs_distro="$2" + + apt-ftparchive --md5=no --sha1=no --sha256=no --sha512=no \ + -a "${DISTRO_ARCH}" packages \ + "${rootfs}/var/cache/apt/archives" \ + | awk '/^Package:/ {print $2}' \ + | sort -u \ + | while read pkg; do + apt-cache -o Dir=${rootfs} showsrc ${pkg} \ + | awk '/^Package-List:/,/^$/' \ + | grep -E "${pkg}-(dbg|dbgsym)" \ + | grep "${DISTRO_ARCH}" \ + | awk '!/Binary:/ {print $1}' \ + | sort -u + done | xargs -r sudo -E chroot ${rootfs} sh -c '/usr/bin/apt-get -y --download-only install "$@"' -- +} + deb_dl_dir_import() { export pc="${DEBDIR}/${2}" export rootfs="${1}" diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 56eca202..24c1cb38 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -73,6 +73,7 @@ ROOTFS_DPKGSTATUS_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}" ROOTFS_PACKAGE_SUFFIX ?= "${PN}-${DISTRO}-${MACHINE}" ROOTFS_POSTPROCESS_COMMAND:prepend = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-deb-src', 'cache_deb_src', '', d)} " +ROOTFS_POSTPROCESS_COMMAND:prepend = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-dbg-pkgs', 'cache_dbg_pkgs', '', d)} " inherit rootfs inherit sdk diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 2348e269..bdf0196b 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -293,6 +293,28 @@ cache_deb_src() { fi } +ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'cache-dbg-pkgs', 'rootfs_export_package_cache', '', d)}" +cache_dbg_pkgs() { + if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] || + [ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then + sudo mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar + fi + rootfs_install_resolvconf + # Note: ISAR updates the apt state information(apt-get update) only once during bootstrap and + # relies on that through out the build. Copy that state information instead of apt-get update + # which generates a new state from upstream. + sudo tar -xf "${BOOTSTRAP_SRC}" ./var/lib/apt/lists --one-top-level="${ROOTFSDIR}" + + deb_dl_dir_import ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} + dbg_pkgs_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 + sudo mv "${ROOTFSDIR}"/etc/resolv.conf.isar "${ROOTFSDIR}"/etc/resolv.conf + fi +} + ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'clean-package-cache', 'rootfs_postprocess_clean_package_cache', '', d)}" rootfs_postprocess_clean_package_cache() { sudo -E chroot '${ROOTFSDIR}' \