From: "'Felix Moessbauer' via isar-users" <isar-users@googlegroups.com>
To: isar-users@googlegroups.com
Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com,
Felix Moessbauer <felix.moessbauer@siemens.com>
Subject: [PATCH v1 03/15] download debs without locking
Date: Thu, 26 Feb 2026 17:28:28 +0100 [thread overview]
Message-ID: <20260226162843.1642329-4-felix.moessbauer@siemens.com> (raw)
In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com>
As we are only downloading and we are the only one acting on the rootfs,
it is safe to not lock the apt cache. By that, we can avoid complex file
ownerships in the tree.
Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
meta/classes-recipe/deb-dl-dir.bbclass | 2 +-
meta/classes-recipe/dpkg-source.bbclass | 2 +-
meta/classes-recipe/image-locales-extension.bbclass | 2 +-
meta/classes-recipe/image-tools-extension.bbclass | 3 ++-
meta/classes-recipe/rootfs.bbclass | 10 +---------
meta/lib/aptsrc_fetcher.py | 2 +-
6 files changed, 7 insertions(+), 14 deletions(-)
diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass
index 76c2435f..6675d48d 100644
--- a/meta/classes-recipe/deb-dl-dir.bbclass
+++ b/meta/classes-recipe/deb-dl-dir.bbclass
@@ -80,6 +80,7 @@ debsrc_download() {
--chdir "/deb-src/${rootfs_distro}/${src}" \
-- \
apt-get -o APT::Architecture=${DISTRO_ARCH} \
+ -oDebug::NoLocking=1 \
-o Dir="${rootfs}" -y --download-only \
--only-source source "${src}=${version}" \
|| echo "${src} ${version}" >> ${missing}
@@ -121,7 +122,6 @@ deb_dl_dir_import() {
# let our unprivileged user place downloaded packages in /var/cache/apt/archives/
sudo -Es << ' EOSUDO'
mkdir -p "${rootfs}"/var/cache/apt/archives/partial/
- touch "${rootfs}"/var/cache/apt/archives/lock
chown -R ${uid}:${gid} "${rootfs}"/var/cache/apt/archives/
EOSUDO
diff --git a/meta/classes-recipe/dpkg-source.bbclass b/meta/classes-recipe/dpkg-source.bbclass
index 1227da36..d0809477 100644
--- a/meta/classes-recipe/dpkg-source.bbclass
+++ b/meta/classes-recipe/dpkg-source.bbclass
@@ -77,7 +77,7 @@ do_fetch_common_source() {
schroot -r -c ${session_id} -d / -- \
sh -c '
cd /work
- apt-get -y --download-only --only-source -o Acquire::Source-Symlinks="false" source ${DEBIAN_SOURCE}'
+ apt-get -y --download-only --only-source -o Debug::NoLocking=1 -o Acquire::Source-Symlinks="false" source ${DEBIAN_SOURCE}'
schroot -e -c ${session_id}
remove_mounts
diff --git a/meta/classes-recipe/image-locales-extension.bbclass b/meta/classes-recipe/image-locales-extension.bbclass
index b6b07dba..9bff36ff 100644
--- a/meta/classes-recipe/image-locales-extension.bbclass
+++ b/meta/classes-recipe/image-locales-extension.bbclass
@@ -30,7 +30,7 @@ image_install_localepurge_download[weight] = "40"
image_install_localepurge_download[network] = "${TASK_USE_NETWORK_AND_SUDO}"
image_install_localepurge_download() {
sudo -E chroot '${ROOTFSDIR}' \
- /usr/bin/apt-get ${ROOTFS_APT_ARGS} --download-only localepurge
+ /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only localepurge
}
ROOTFS_INSTALL_COMMAND += "image_install_localepurge_install"
diff --git a/meta/classes-recipe/image-tools-extension.bbclass b/meta/classes-recipe/image-tools-extension.bbclass
index b0f25a69..e88557f6 100644
--- a/meta/classes-recipe/image-tools-extension.bbclass
+++ b/meta/classes-recipe/image-tools-extension.bbclass
@@ -54,7 +54,8 @@ imager_run() {
apt-get update \
-o Dir::Etc::SourceList='sources.list.d/isar-apt.list' \
-o Dir::Etc::SourceParts='-' \
- -o APT::Get::List-Cleanup='0'
+ -o APT::Get::List-Cleanup='0' \
+ -o Debug::NoLocking=1
apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \
--allow-unauthenticated --allow-downgrades --download-only install \
${local_install}"
diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass
index b04bd154..a4e1df4f 100644
--- a/meta/classes-recipe/rootfs.bbclass
+++ b/meta/classes-recipe/rootfs.bbclass
@@ -340,18 +340,10 @@ rootfs_install_pkgs_download[progress] = "custom:rootfs_progress.PkgsDownloadPro
rootfs_install_pkgs_download[isar-apt-lock] = "release-after"
rootfs_install_pkgs_download[network] = "${TASK_USE_NETWORK}"
rootfs_install_pkgs_download() {
- mkdir -p "${WORKDIR}/dpkg"
-
- # Use our own dpkg lock files rather than those in the rootfs since we are not root
- # (this is safe as there are no concurrent apt/dpkg operations for that rootfs)
- touch "${WORKDIR}/dpkg/lock" "${WORKDIR}/dpkg/lock-frontend"
-
# download packages using apt in a non-privileged namespace
rootfs_cmd --bind "${ROOTFSDIR}/var/cache/apt/archives" /var/cache/apt/archives \
- --bind "${WORKDIR}/dpkg/lock" /var/lib/dpkg/lock \
- --bind "${WORKDIR}/dpkg/lock-frontend" /var/lib/dpkg/lock-frontend \
${ROOTFSDIR} \
- -- /usr/bin/apt-get ${ROOTFS_APT_ARGS} --download-only ${ROOTFS_PACKAGES}
+ -- /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only ${ROOTFS_PACKAGES}
}
ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT ??= ""
diff --git a/meta/lib/aptsrc_fetcher.py b/meta/lib/aptsrc_fetcher.py
index 041f5445..dfa784a9 100644
--- a/meta/lib/aptsrc_fetcher.py
+++ b/meta/lib/aptsrc_fetcher.py
@@ -41,7 +41,7 @@ class AptSrc(FetchMethod):
set -e
mkdir -p /downloads/{ud.localfile}
cd /downloads/{ud.localfile}
- apt-get -y --download-only --only-source source {ud.src_package}
+ apt-get -y -oDebug::NoLocking=1 --download-only --only-source source {ud.src_package}
'
''', d)
except (OSError, FetchError):
--
2.51.0
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260226162843.1642329-4-felix.moessbauer%40siemens.com.
next prev parent reply other threads:[~2026-02-26 16:29 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-26 16:28 [PATCH v1 00/16] add support to build isar unprivileged 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 01/15] refactor bootstrap: store rootfs tar with user permissions 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 02/15] deb-dl-dir: export without root privileges 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` 'Felix Moessbauer' via isar-users [this message]
2026-02-26 16:28 ` [PATCH v1 04/15] introduce wrappers for privileged execution 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 05/15] bootstrap: move cleanup trap to function 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 06/15] rootfs: rework sstate caching of rootfs artifact 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 07/15] rootfs_generate_initramfs: rework deployment to avoid chowning 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 08/15] use bitbake function to generate mounting scripts 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 09/15] apt-fetcher: prepare for chroot specific fetching 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 10/15] add support for fully rootless builds 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 11/15] add helper script to clean artifacts in build dir 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 12/15] apt-fetcher: implement support for unshare backend 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 13/15] dpkg-source: implement multiarch " 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 14/16] rootfs: remove temporary sstate deploy directory after task execution 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 14/15] use copy of sbom-chroot for sbom creation 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 15/15] add support for devshell on unshare backend 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 15/16] use copy of sbom-chroot for sbom creation 'Felix Moessbauer' via isar-users
2026-02-26 16:28 ` [PATCH v1 16/16] add support for devshell on unshare backend 'Felix Moessbauer' via isar-users
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260226162843.1642329-4-felix.moessbauer@siemens.com \
--to=isar-users@googlegroups.com \
--cc=felix.moessbauer@siemens.com \
--cc=jan.kiszka@siemens.com \
--cc=quirin.gylstorff@siemens.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox