From: Uladzimir Bely <ubely@ilbers.de>
To: isar-users@googlegroups.com
Subject: [PATCH v3 4/5] base-apt: Predownload packages to base-apt before install.
Date: Fri, 25 Mar 2022 11:32:25 +0100 [thread overview]
Message-ID: <20220325103226.27033-5-ubely@ilbers.de> (raw)
In-Reply-To: <20220325103226.27033-1-ubely@ilbers.de>
This patch uses debrepo script to predownload packages to base-apt
repository before they are installed in buildchroot/rootfs.
Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
meta/classes/dpkg-base.bbclass | 8 ++++++++
meta/classes/dpkg-gbp.bbclass | 7 +++++++
meta/classes/dpkg.bbclass | 7 +++++++
meta/classes/image-locales-extension.bbclass | 7 +++++++
meta/classes/image-tools-extension.bbclass | 7 +++++++
meta/classes/rootfs.bbclass | 20 ++++++++++++++++++++
6 files changed, 56 insertions(+)
diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
index 86933c57..6106ca01 100644
--- a/meta/classes/dpkg-base.bbclass
+++ b/meta/classes/dpkg-base.bbclass
@@ -102,8 +102,16 @@ python() {
}
do_apt_fetch() {
+ ${SCRIPTSDIR}/debrepo \
+ --srcmode \
+ --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \
+ ${SRC_APT}
dpkg_do_mounts
E="${@ isar_export_proxies(d)}"
+ sudo -E chroot ${BUILDCHROOT_DIR} /usr/bin/apt-get update \
+ -o Dir::Etc::SourceList="sources.list.d/base-apt.list" \
+ -o Dir::Etc::SourceParts="-" \
+ -o APT::Get::List-Cleanup="0"
sudo -E chroot ${BUILDCHROOT_DIR} /usr/bin/apt-get update \
-o Dir::Etc::SourceList="sources.list.d/isar-apt.list" \
-o Dir::Etc::SourceParts="-" \
diff --git a/meta/classes/dpkg-gbp.bbclass b/meta/classes/dpkg-gbp.bbclass
index d956e8c3..4d583a79 100644
--- a/meta/classes/dpkg-gbp.bbclass
+++ b/meta/classes/dpkg-gbp.bbclass
@@ -13,7 +13,14 @@ GBP_DEPENDS ?= "git-buildpackage pristine-tar"
GBP_EXTRA_OPTIONS ?= "--git-pristine-tar"
do_install_builddeps_append() {
+ ${SCRIPTSDIR}/debrepo \
+ --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \
+ ${GBP_DEPENDS}
dpkg_do_mounts
+ sudo -E chroot '${BUILDCHROOT_DIR}' /usr/bin/apt-get update \
+ -o Dir::Etc::SourceList="sources.list.d/base-apt.list" \
+ -o Dir::Etc::SourceParts="-" \
+ -o APT::Get::List-Cleanup="0"
distro="${DISTRO}"
if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then
distro="${HOST_DISTRO}"
diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass
index 320102ba..d167a01d 100644
--- a/meta/classes/dpkg.bbclass
+++ b/meta/classes/dpkg.bbclass
@@ -7,7 +7,14 @@ PACKAGE_ARCH ?= "${DISTRO_ARCH}"
# Install build dependencies for package
do_install_builddeps() {
+ ${SCRIPTSDIR}/debrepo \
+ --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \
+ --controlfile="${WORKDIR}/${PPS}/debian/control"
dpkg_do_mounts
+ sudo -E chroot '${BUILDCHROOT_DIR}' /usr/bin/apt-get update \
+ -o Dir::Etc::SourceList="sources.list.d/base-apt.list" \
+ -o Dir::Etc::SourceParts="-" \
+ -o APT::Get::List-Cleanup="0"
E="${@ isar_export_proxies(d)}"
export DEB_BUILD_OPTIONS="${@ isar_deb_build_options(d)}"
export DEB_BUILD_PROFILES="${@ isar_deb_build_profiles(d)}"
diff --git a/meta/classes/image-locales-extension.bbclass b/meta/classes/image-locales-extension.bbclass
index 25af5407..a05f0917 100644
--- a/meta/classes/image-locales-extension.bbclass
+++ b/meta/classes/image-locales-extension.bbclass
@@ -28,6 +28,13 @@ def get_nopurge(d):
ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT += "image_install_localepurge_download"
image_install_localepurge_download[weight] = "40"
image_install_localepurge_download() {
+ ${SCRIPTSDIR}/debrepo \
+ --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \
+ localepurge
+ sudo -E chroot '${ROOTFSDIR}' /usr/bin/apt-get update \
+ -o Dir::Etc::SourceList="sources.list.d/base-apt.list" \
+ -o Dir::Etc::SourceParts="-" \
+ -o APT::Get::List-Cleanup="0"
sudo -E chroot '${ROOTFSDIR}' \
/usr/bin/apt-get ${ROOTFS_APT_ARGS} --download-only localepurge
}
diff --git a/meta/classes/image-tools-extension.bbclass b/meta/classes/image-tools-extension.bbclass
index b9968139..359991e3 100644
--- a/meta/classes/image-tools-extension.bbclass
+++ b/meta/classes/image-tools-extension.bbclass
@@ -22,10 +22,17 @@ do_install_imager_deps() {
exit
fi
+ ${SCRIPTSDIR}/debrepo \
+ --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \
+ ${IMAGER_INSTALL}
buildchroot_do_mounts
E="${@ isar_export_proxies(d)}"
deb_dl_dir_import ${BUILDCHROOT_DIR} ${DISTRO}
+ sudo -E chroot ${BUILDCHROOT_DIR} /usr/bin/apt-get update \
+ -o Dir::Etc::SourceList="sources.list.d/base-apt.list" \
+ -o Dir::Etc::SourceParts="-" \
+ -o APT::Get::List-Cleanup="0"
sudo -E chroot ${BUILDCHROOT_DIR} sh -c ' \
apt-get update \
-o Dir::Etc::SourceList="sources.list.d/isar-apt.list" \
diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index 54d1f714..4019b216 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -94,6 +94,23 @@ EOF
EOSUDO
}
+ROOTFS_INSTALL_COMMAND += "rootfs_base_apt_populate"
+rootfs_base_apt_populate[weight] = "600"
+rootfs_base_apt_populate() {
+ ${SCRIPTSDIR}/debrepo \
+ --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \
+ ${ROOTFS_PACKAGES}
+}
+
+ROOTFS_INSTALL_COMMAND += "rootfs_base_apt_pkgs_update"
+rootfs_base_apt_pkgs_update[weight] = "5"
+rootfs_base_apt_pkgs_update() {
+ sudo -E chroot '${ROOTFSDIR}' /usr/bin/apt-get update \
+ -o Dir::Etc::SourceList="sources.list.d/base-apt.list" \
+ -o Dir::Etc::SourceParts="-" \
+ -o APT::Get::List-Cleanup="0"
+}
+
ROOTFS_CONFIGURE_COMMAND += "rootfs_configure_apt"
rootfs_configure_apt[weight] = "2"
rootfs_configure_apt() {
@@ -139,6 +156,9 @@ ROOTFS_INSTALL_COMMAND += "rootfs_install_pkgs_download"
rootfs_install_pkgs_download[weight] = "600"
rootfs_install_pkgs_download[isar-apt-lock] = "release-after"
rootfs_install_pkgs_download() {
+ ${SCRIPTSDIR}/debrepo \
+ --workdir="${TMPDIR}/debrepo/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" \
+ ${ROOTFS_PACKAGES}
sudo -E chroot '${ROOTFSDIR}' \
/usr/bin/apt-get ${ROOTFS_APT_ARGS} --download-only ${ROOTFS_PACKAGES}
}
--
2.20.1
next prev parent reply other threads:[~2022-03-25 10:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-25 10:32 [PATCH v3 0/5] Improving base-apt usage PoC Uladzimir Bely
2022-03-25 10:32 ` [PATCH v3 1/5] Add debrepo python script handling base-apt Uladzimir Bely
2022-03-25 10:32 ` [PATCH v3 2/5] meta: Use cached base-apt repo to debootstrap Uladzimir Bely
2022-03-25 10:32 ` [PATCH v3 3/5] meta: always use base-apt repo in local mode Uladzimir Bely
2022-03-25 10:32 ` Uladzimir Bely [this message]
2022-03-30 13:41 ` [PATCH v3 4/5] base-apt: Predownload packages to base-apt before install Moessbauer, Felix
2022-03-25 10:32 ` [PATCH v3 5/5] draft: make isar-apt repo visible for base-apt Uladzimir Bely
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=20220325103226.27033-5-ubely@ilbers.de \
--to=ubely@ilbers.de \
--cc=isar-users@googlegroups.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