[PATCH 0/1] Fix deb-src caching issue

107 views
Skip to first unread message

srinuv...@siemens.com

unread,
Mar 10, 2025, 7:51:35 AMMar 10
to isar-...@googlegroups.com, jan.k...@siemens.com, cedric.h...@siemens.com, ub...@ilbers.de, benedikt....@siemens.com, Adithya....@toshiba-tsip.com, srinuvasan
From: srinuvasan <srinuv...@siemens.com>

Dear isar-user,

When we enabled the deb-src caching during base-apt creation, we noticed a few deb-src packages missing in the pool.

Missing deb-src packages categorized in the below stages:

1. bootstrap related deb-src packages

2. imager related deb-src packages

3. image rootfs related deb-src packages


This regression we found after mmdebstrap migration, this issue addressed in the
below patch series, for more details, please refer to [1].
but here we use the /var/log/dpkg.log file to ensure the parsing of deb (from /var/cache/apt/archive)
is installed or not.

By default, mmdebstrap deletes the /va/log/dpkg.log file and we enabled that option in [1], but
our images are becoming longer reproducible.
Meanwhile, Cedric proposed one change to remove excessive calls to dpkg-deb in debsrc_download,
refer [2].

Here he completely rid of the checking status in /var/log/dpkg.log file and introduced the ftp-aptarchive
to scan all the deb packages and download the src against them, i feel it is more robust and works for
all the stages.

With his patch i validated the deb-src caching, now we can able to download the src packages for bootstrap
and image related packages only missing part here is imager related packages, this one is addressed with a refactor
of my patch 2/3 in [1].

Validated for amd64 and armf, it seems deb-src caching working fine and able to see all the deb-src packages.

I hope the combination of Cedric changes [2] and mine is the better solution for this deb-src caching issue.

[1]: https://groups.google.com/g/isar-users/c/8QstIaudyts
[2]: https://groups.google.com/g/isar-users/c/OwrSBmCPe0Y

Note: [PATCH 1/1] image: move deb-src-caching functionality after image creation heavily depend on [2].

srinuvasan (1):
image: move deb-src-caching functionality after image creation

meta/classes/image.bbclass | 8 +++++++-
meta/classes/rootfs.bbclass | 3 ++-
2 files changed, 9 insertions(+), 2 deletions(-)

--
2.39.5

srinuv...@siemens.com

unread,
Mar 10, 2025, 7:51:37 AMMar 10
to isar-...@googlegroups.com, jan.k...@siemens.com, cedric.h...@siemens.com, ub...@ilbers.de, benedikt....@siemens.com, Adithya....@toshiba-tsip.com, srinuvasan
From: srinuvasan <srinuv...@siemens.com>

When we do deb-src caching, we are missing to cache imager related packages, because the deb-src-caching
functionality runs in the stage of ROOTFS_POSTPROCESS_COMAMND, but image creation task runs after the
rootfs creation, hence imager related packages are missing in rootfs's var/cache/apt/archives.

To solve this issue run the deb-src-caching after image creation, now we can able to download deb-src for
all the deb packages.

Signed-off-by: srinuvasan <srinuv...@siemens.com>
---
meta/classes/image.bbclass | 8 +++++++-
meta/classes/rootfs.bbclass | 3 ++-
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 56eca202..66b4d313 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -72,7 +72,13 @@ ROOTFS_MANIFEST_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}"
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)} "
+CACHE_DEB_SRC = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-deb-src', '1', '0', d)}"
+
+python () {
+ if bb.utils.to_boolean(d.getVar('CACHE_DEB_SRC')):
+ bb.build.addtask('do_cache_deb_src', 'do_deploy', 'do_image', d)
+}
+

inherit rootfs
inherit sdk
diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index 2348e269..c9e832dc 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -272,7 +272,8 @@ python do_rootfs_install() {
}
addtask rootfs_install before do_rootfs_postprocess after do_unpack

-cache_deb_src() {
+do_cache_deb_src[network] = "${TASK_USE_SUDO}"
+do_cache_deb_src() {
if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] ||
[ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then
sudo mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar
--
2.39.5

Arjunan, Srinu

unread,
Mar 18, 2025, 12:45:45 PMMar 18
to isar-...@googlegroups.com, Kiszka, Jan, cedric.h...@siemens.com, ub...@ilbers.de, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com
+d) }
+

inherit rootfs
inherit sdk
diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 2348e269..c9e832dc 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -272,7 +272,8 @@ python do_rootfs_install() { } addtask rootfs_install before do_rootfs_postprocess after do_unpack

-cache_deb_src() {
+do_cache_deb_src[network] = "${TASK_USE_SUDO}"
+do_cache_deb_src() {
if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] ||
[ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then
sudo mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar
--
2.39.5

Hi All,

Can you please update the status of this patch?, or anything missing from my end?

Many thanks,
Srinu

Uladzimir Bely

unread,
Mar 20, 2025, 1:32:04 AMMar 20
to Arjunan, Srinu, isar-...@googlegroups.com, Kiszka, Jan, cedric.h...@siemens.com, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com
Hello.

Sorry for delays related to "installer" currently breaking full CI on
"next" branch.

Tested recently your patch, it also makes CI fail at:

CrossTest.test_cross_debsrc:

```
[stdlog] 2025-03-19 21:29:50,542 avocado.app ERROR| ERROR: Task
(mc:qemuarm64-bookworm:/workspace/build/isar_ub_devel_fast/214/meta-
test/recipes-core/images/isar-image-ci.bb:do_cache_deb_src) failed with
exit code '1'
[stdlog] 2025-03-19 21:30:44,921 avocado.test INFO | | DEBUG: Executing
shell function do_cache_deb_src
[stdlog] 2025-03-19 21:30:44,921 avocado.test INFO | | Reading package
lists...
[stdlog] 2025-03-19 21:30:44,921 avocado.test INFO | | E: You must put
some 'deb-src' URIs in your sources.list
```

NoCrossTest.test_nocross_debsrc:

```
[stdlog] 2025-03-20 01:09:35,759 avocado.app ERROR| ERROR: Logfile of
failure stored in:
/workspace/build/isar_ub_devel/126/build/tmp/work/debian-bookworm-
armhf/isar-image-ci-qemuarm/1.0-r0/temp/log.do_cache_deb_src.218291
[stdlog] 2025-03-20 01:09:35,832 avocado.app ERROR| ERROR: Task
(mc:qemuarm-bookworm:/workspace/build/isar_ub_devel/126/meta-
test/recipes-core/images/isar-image-ci.bb:do_cache_deb_src) failed with
exit code '1'
[stdlog] 2025-03-20 01:19:35,822 avocado.test INFO | | DEBUG: Executing
shell function do_cache_deb_src
[stdlog] 2025-03-20 01:19:35,823 avocado.test INFO | | Reading package
lists...
[stdlog] 2025-03-20 01:19:35,823 avocado.test INFO | | E: You must put
some 'deb-src' URIs in your sources.list
```

> Many thanks,
> Srinu
>

--
Best regards,
Uladzimir.

Arjunan, Srinu

unread,
Mar 20, 2025, 3:18:36 AMMar 20
to Uladzimir Bely, isar-...@googlegroups.com, Kiszka, Jan, cedric.h...@siemens.com, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com
Hi Uladzimir,

Thank you for the reply, I am not able to reproduce the build issue what you reported , I triggered the build for isar-image-ci target and it's getting passed.

This patch depend on Cedric patch [1]
[1]: https://groups.google.com/g/isar-users/c/OwrSBmCPe0Y

I validated my patch along with the [1], it seems working fine.

Or Can you please provide the steps to reproduce the issue?

cedric.h...@siemens.com

unread,
Mar 20, 2025, 4:27:12 AMMar 20
to ub...@ilbers.de, isar-...@googlegroups.com, Arjunan, Srinu, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com, Kiszka, Jan
On Thu, 2025-03-20 at 07:18 +0000, Arjunan, Srinu (FT FDS CES LX PBU 2)
wrote:
See
https://github.com/ilbers/isar/blob/master/CONTRIBUTING.md#development
and in particular section 3

You noted that you ran "build for isar-image-ci target" but that may
not fully reproduce what the CI is doing

In addition, you really need to stop using Outlook (or check how to get
it to properly quote the original message)

>
>
> > Many thanks,
> > Srinu
> >
>
> --
> Best regards,
> Uladzimir.

--
Cedric Hombourger
Siemens AG
http://www.siemens.com/

Uladzimir Bely

unread,
Mar 20, 2025, 1:56:25 PMMar 20
to Arjunan, Srinu, isar-...@googlegroups.com, Kiszka, Jan, cedric.h...@siemens.com, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com
I tried to find easy way to reproduce (e.g., one target case), but
didn't find it - build was OK. But it fails in CI - most probably, due
to specific sequence of tests, that share sstate cache and download
directory between each other.

Similar behavior is reproduced in CI also with other patches, like
"deb-dl-dir: remove excessive calls to dpkg-deb in debsrc_download".
Building some target alone is OK, but under CI it fails.

> > Many thanks,
> > Srinu
> >
>
> --
> Best regards,
> Uladzimir.

--
Best regards,
Uladzimir.

cedric.h...@siemens.com

unread,
Mar 20, 2025, 2:03:21 PMMar 20
to ub...@ilbers.de, isar-...@googlegroups.com, Arjunan, Srinu, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com, Kiszka, Jan
Ah damn it!

I had checked with ./scripts/ci_build.sh -T fast. I may have to try
with the full CI (without -T fast)

Is the error exactly the same when you tried with my patch (and only
that one)?

Would you be able to send a full CI log?

>
> > > Many thanks,
> > > Srinu
> > >
> >
> > --
> > Best regards,
> > Uladzimir.
>

--

Uladzimir Bely

unread,
Mar 21, 2025, 1:33:27 AMMar 21
to cedric.h...@siemens.com, isar-...@googlegroups.com, Arjunan, Srinu
No, you patch I've mentioned failed in "cache-deb-src" task, but in
NoCrossTest.test_nocross_rpi_debsrc, and with a different error:

[stdlog] 2025-03-07 12:48:01,379 avocado.test INFO | | DEBUG: Executing
shell function cache_deb_src
[stdlog] 2025-03-07 12:48:01,379 avocado.test INFO | |
[stdlog] 2025-03-07 12:48:01,379 avocado.test INFO | | W: Unable to
read directory
/workspace/build/isar_ub_devel/119/build/tmp/work/raspios-bookworm-
armhf/isar-image-base-rpi-arm-v7l/1.0-
r0/rootfs/var/cache/apt/archives/partial
[stdlog] 2025-03-07 12:48:01,379 avocado.test INFO | | Reading package
lists...
[stdlog] 2025-03-07 12:48:01,379 avocado.test INFO | | E: Can not find
version '2023.3+deb12u1' of package 'debian-archive-keyring'
[stdlog] 2025-03-07 12:48:01,379 avocado.test INFO | | E: Unable to
find a source package for debian-archive-keyring


>
> Would you be able to send a full CI log?
>

Attached archive with both logs:

isar_ub_devel_119: full CI logs with "deb-dl-dir: remove
excessive calls to dpkg-deb in debsrc_download" applied.

isar_ub_devel_fast_214: fast CI logs with "image: move deb-src-
caching functionality after image creation" applied.


Some additional info.

For the latest patch, I tried to debug it:

- added `BASE_REPO_FEATURES = "cache-deb-src"` to local.conf (that is
the line CrossTest.test_cross_debsrc test adds; the line was removed in
the followed tests).
- chrooted to "isar-image-ci-qemuarm64" rootfs, where error happend.
- executed "apt-get -y --download-only --only-source source gcc-
12=12.2.0-14 download-src" - the same that failed in CI.

Result:

```
# apt-get -y --download-only --only-source source gcc-12=12.2.0-14
download-src
Reading package lists... Done
E: You must put some 'deb-src' URIs in your sources.list
```

At the same time, sources.list looked fine:

```
# cat /etc/apt/sources.list.d/bootstrap.list
deb     http://deb.debian.org/debian bookworm main contrib non-free-
firmware non-free
deb-src http://deb.debian.org/debian bookworm main contrib non-free-
firmware non-free

deb     http://deb.debian.org/debian-security bookworm-security main
contrib non-free-firmware non-free
deb-src http://deb.debian.org/debian-security bookworm-security main
contrib non-free-firmware non-free

deb     http://deb.debian.org/debian bookworm-updates main contrib non-
free-firmware non-free
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-
free-firmware non-free
```

After executing "apt-get update" in this chroot, error gone.

It looks like despite proper sources list, internal apt cache was not
complete and didn't know anything about "deb-src" records. Why - I
still don't clearly understand.


> >
> > > > Many thanks,
> > > > Srinu
> > > >
> > >
> > > --
> > > Best regards,
> > > Uladzimir.
> >
>
> --
> Cedric Hombourger
> Siemens AG
> http://www.siemens.com/


--
Best regards,
Uladzimir.
ci_logs.tar.xz

Uladzimir Bely

unread,
Mar 21, 2025, 2:27:22 AMMar 21
to Arjunan, Srinu, isar-...@googlegroups.com, Kiszka, Jan, cedric.h...@siemens.com, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com
On Thu, 2025-03-20 at 07:18 +0000, 'Arjunan, Srinu' via isar-users
wrote:
I finally found root cause and easy steps to reproduce. The patch moves
debsrc caching to later stage and that results in incompatibility with
DISTRO_APT_PREMIRRORS option we are globally using in CI.

Steps to reproduce:

1. Run `./kas/kas-container menu`
2. Change the configuration:
- `Mirror selection => Use specific Debian mirror`:
http://ftp.de.debian.org
- `Cache all source packages`: Check the option
- `Packages selection => Isar packages`: Uncheck everything to speedup
build (not necessary step)
3. Run build

It fails with:

```
ERROR: isar-image-base-1.0-r0 do_cache_deb_src:
ExecutionError('/build/tmp/work/debian-bookworm-amd64/isar-image-base-
qemuamd64/1.0-r0/temp/run.do_cache_deb_src.10979', 100, None, None)
ERROR: Logfile of failure stored in: /build/tmp/work/debian-bookworm-
amd64/isar-image-base-qemuamd64/1.0-r0/temp/log.do_cache_deb_src.10979
Log data follows:
| DEBUG: Executing shell function do_cache_deb_src
| Reading package lists...
| E: You must put some 'deb-src' URIs in your sources.list
ERROR: Task (/build/../repo/meta-isar/recipes-core/images/isar-image-
base.bb:do_cache_deb_src) failed with exit code '1'
```

> --
> Best regards,
> Uladzimir.
>

--
Best regards,
Uladzimir.

cedric.h...@siemens.com

unread,
Mar 21, 2025, 2:32:19 AMMar 21
to ub...@ilbers.de, isar-...@googlegroups.com, Arjunan, Srinu, Niedermayr, BENEDIKT, Adithya....@toshiba-tsip.com, Kiszka, Jan
Ah thanks. Are you seeing any issues with my patch alone? (was going to
re-run a local CI build to *double* check)

Would appreciate if my changes may be CI-checked alone and merged;
provided there are no issues ofcourse :)

>
> Steps to reproduce:
>
> 1. Run `./kas/kas-container menu`
> 2. Change the configuration:
> - `Mirror selection => Use specific Debian mirror`:
> http://ftp.de.debian.org/
> - `Cache all source packages`: Check the option
> - `Packages selection => Isar packages`: Uncheck everything to
> speedup
> build (not necessary step)
> 3. Run build
>
> It fails with:
>
> ```
> ERROR: isar-image-base-1.0-r0 do_cache_deb_src:
> ExecutionError('/build/tmp/work/debian-bookworm-amd64/isar-image-
> base-
> qemuamd64/1.0-r0/temp/run.do_cache_deb_src.10979', 100, None, None)
> ERROR: Logfile of failure stored in: /build/tmp/work/debian-bookworm-
> amd64/isar-image-base-qemuamd64/1.0-
> r0/temp/log.do_cache_deb_src.10979
> Log data follows:
> > DEBUG: Executing shell function do_cache_deb_src
> > Reading package lists...
> > E: You must put some 'deb-src' URIs in your sources.list
> ERROR: Task (/build/../repo/meta-isar/recipes-core/images/isar-image-
> base.bb:do_cache_deb_src) failed with exit code '1'
> ```
>
> > --
> > Best regards,
> > Uladzimir.
> >
>

--

Uladzimir Bely

unread,
Mar 21, 2025, 3:06:58 AMMar 21
to cedric.h...@siemens.com, isar-...@googlegroups.com, Arjunan, Srinu
Sure. I've re-run CI with your patch alone on top of 'next'.

Probably, the issue I observed few days ago was caused by (temporary)
non-synchronized debian and raspios repos and it won't be reproduced
again.
--
Best regards,
Uladzimir.

Uladzimir Bely

unread,
Mar 21, 2025, 4:39:56 AMMar 21
to cedric.h...@siemens.com, isar-...@googlegroups.com, Arjunan, Srinu
On Fri, 2025-03-21 at 06:32 +0000, cedric.h...@siemens.com wrote:
Actually, found easy way to reproduce the issue with "deb-dl-dir:
remove excessive calls to dpkg-deb in debsrc_download" on top of
'next'.

Steps to reproduce with kas-container:

1. Place the deb we fail to download sources for to downloads
directory.
```
mkdir -p ./build/downloads/deb/raspios-bookworm
wget
https://deb.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2023.3+deb12u1_all.deb
-P build/downloads/deb/raspios-bookworm/
```

2. Configure build:

./kas/kas-container menu
- `Machine selection`: rpi-arm-v7l
- `Distro selection`: Raspberry Pi OS Debian 12 (bookworm)
- `Cache all source packages`: check the option

Run build

3. Result:

```
| E: Can not find version '2023.3+deb12u1' of package 'debian-archive-
keyring'
| E: Unable to find a source package for debian-archive-keyring
| DEBUG: Executing shell function rootfs_do_umounts
| DEBUG: Shell function rootfs_do_umounts finished
| DEBUG: Python function do_rootfs_postprocess finished
ERROR: Task (/build/../repo/meta-isar/recipes-core/images/isar-image-
base.bb:do_rootfs_postprocess) failed with exit code '1'
```

The issue is not reproducable on 'next' (since we are parsing dpkg.log
and it has no entry for debian-archive-keyring, since it is not a part
of current build.
--
Best regards,
Uladzimir.

cedric.h...@siemens.com

unread,
Mar 21, 2025, 9:50:15 AMMar 21
to ub...@ilbers.de, isar-...@googlegroups.com, Arjunan, Srinu
Fantastic!

I have revised my patch to combine the list of source packages we'd
like and the list of packages known to apt (apt-cache dumpavail).

I am now going to exercise this revised approach in our downstream
layer (where we are downloading thousands of source packages) but also
with the Isar CI tests.

This will probably take a little while... stay tuned!
and thanks again for all the help

Srinuvasan Arjunan

unread,
Mar 27, 2025, 12:55:53 PMMar 27
to cedric.h...@siemens.com, ub...@ilbers.de, isar-...@googlegroups.com, Arjunan, Srinu
 Hi Uladzimir,

 I triggered the CI build locally with this patch; it looks like CI builds are getting passed, Here are the logs:

Logs:

builder@0ed36b8446c5:/work/isar/testsuite$ avocado run citest.py -t dev --max-parallel-tasks=1
JOB ID     : 3ca66c44c8b33b1e2f265f46613f502fa89dbbde
JOB LOG    : /tmp/tmppvxevsmp/avocado/job-results/job-2025-03-27T15.58-3ca66c4/job.log
 (1/6) citest.py:DevTest.test_dev: STARTED
 (1/6) citest.py:DevTest.test_dev: PASS (1004.16 s)
 (2/6) citest.py:DevTest.test_dev_apps: STARTED
 (2/6) citest.py:DevTest.test_dev_apps: PASS (1153.27 s)
 (3/6) citest.py:DevTest.test_dev_rebuild: STARTED
 (3/6) citest.py:DevTest.test_dev_rebuild: PASS (450.10 s)
 (4/6) citest.py:DevTest.test_dev_run_amd64_bullseye: STARTED
 (4/6) citest.py:DevTest.test_dev_run_amd64_bullseye: PASS (56.52 s)
 (5/6) citest.py:DevTest.test_dev_run_arm64_bullseye: STARTED
 (5/6) citest.py:DevTest.test_dev_run_arm64_bullseye: PASS (45.19 s)
 (6/6) citest.py:DevTest.test_dev_run_arm_bullseye: STARTED
 (6/6) citest.py:DevTest.test_dev_run_arm_bullseye: PASS (49.96 s)
RESULTS    : PASS 6 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME   : 2765.02 s

Many thanks,
Srinu
> > >
> >
> > --
> > Cedric Hombourger
> > Siemens AG
> > http://www.siemens.com/
>

--
Cedric Hombourger
Siemens AG
http://www.siemens.com/

--
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+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/1c66d14280d6a27e1529659b2d651f172a32ed87.camel%40siemens.com.

srinuv...@siemens.com

unread,
Apr 3, 2025, 8:58:19 AMApr 3
to isar-...@googlegroups.com, cedric.h...@siemens.com, ub...@ilbers.de, srinuvasan
From: srinuvasan <srinuv...@siemens.com>

If the user selects a different debian mirror (http://ftp.de.debian.org)
by using DISTRO_APT_PREMIRRORS to pull the packages, the proper list
updated in the bootstrap rootfs and buildchroot rootfs, but in the imag rootfs
it contains the upstream list rather than the selected debian mirror.

Due to this issue in the deb-src caching stage, we are copying the packages
state (/var/lib/apt/lists) from the bootstrap rootfs to the image rootfs,
With the present implementation, we are copying (http://ftp.de.debian.org)
list to image rootfs's var/lib/apt/lists but image rootfs /etc/apt/sources.list.d
contains the upstream (http://deb.debian.org) list.

With this mismatch list, it throws the below error during the deb-src download stage

Logs:

Reading package lists... Done
E: You must put some 'deb-src' URIs in your sources.list

Make sure the selected debian list available till the image rootfs, except
user can define their own list in SRC_URI.

Signed-off-by: srinuvasan <srinuv...@siemens.com>
---
meta/classes/rootfs.bbclass | 1 -
1 file changed, 1 deletion(-)

diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index cd8fd118..406e9192 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -380,7 +380,6 @@ rootfs_cleanup_isar_apt() {
sudo -s <<'EOSUDO'
set -e
rm -f "${ROOTFSDIR}/etc/apt/sources.list.d/isar-apt.list"
- rm -f "${ROOTFSDIR}/etc/apt/sources.list.d/"*bootstrap.list
rm -f "${ROOTFSDIR}/etc/apt/preferences.d/isar-apt"
rm -f "${ROOTFSDIR}/etc/apt/apt.conf.d/50isar"
EOSUDO
--
2.39.5

srinuv...@siemens.com

unread,
Apr 3, 2025, 8:58:21 AMApr 3
to isar-...@googlegroups.com, cedric.h...@siemens.com, ub...@ilbers.de, srinuvasan
From: srinuvasan <srinuv...@siemens.com>

When we do deb-src caching, we are missing to cache imager related packages, because the deb-src-caching
functionality runs in the stage of ROOTFS_POSTPROCESS_COMAMND, but image creation task runs after the
rootfs creation, hence imager related packages are missing in rootfs's var/cache/apt/archives.

To solve this issue run the deb-src-caching after image creation, now we can able to download deb-src for
all the deb packages.

Signed-off-by: srinuvasan <srinuv...@siemens.com>
---
meta/classes/image.bbclass | 7 ++++++-
meta/classes/rootfs.bbclass | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index ff3cd737..0789e0b6 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -72,7 +72,12 @@ ROOTFS_MANIFEST_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}"
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)} "
+CACHE_DEB_SRC = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-deb-src', '1', '0', d)}"
+python () {
+ if bb.utils.to_boolean(d.getVar('CACHE_DEB_SRC')):
+ bb.build.addtask('do_cache_deb_src', 'do_deploy', 'do_image', d)
+}
+
ROOTFS_POSTPROCESS_COMMAND:prepend = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-dbg-pkgs', 'cache_dbg_pkgs', '', d)} "

inherit rootfs
diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index 406e9192..3055b0fc 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass

Baurzhan Ismagulov

unread,
May 7, 2025, 9:19:59 AMMay 7
to isar-...@googlegroups.com
On 2025-04-03 18:28, srinuvasan.a via isar-users wrote:
> From: srinuvasan <srinuv...@siemens.com>
>
> If the user selects a different debian mirror (http://ftp.de.debian.org)
> by using DISTRO_APT_PREMIRRORS to pull the packages, the proper list
> updated in the bootstrap rootfs and buildchroot rootfs, but in the imag rootfs
> it contains the upstream list rather than the selected debian mirror.
>
> Due to this issue in the deb-src caching stage, we are copying the packages
> state (/var/lib/apt/lists) from the bootstrap rootfs to the image rootfs,
> With the present implementation, we are copying (http://ftp.de.debian.org)
> list to image rootfs's var/lib/apt/lists but image rootfs /etc/apt/sources.list.d
> contains the upstream (http://deb.debian.org) list.
>
> With this mismatch list, it throws the below error during the deb-src download stage
>
> Logs:
>
> Reading package lists... Done
> E: You must put some 'deb-src' URIs in your sources.list
>
> Make sure the selected debian list available till the image rootfs, except
> user can define their own list in SRC_URI.
>
> Signed-off-by: srinuvasan <srinuv...@siemens.com>

Applied to next, thanks.

With kind regards,
Baurzhan
Reply all
Reply to author
Forward
0 new messages