public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: "'Felix Moessbauer' via isar-users" <isar-users@googlegroups.com>
To: akarpovich@ilbers.de
Cc: isar-users@googlegroups.com,
	Felix Moessbauer <felix.moessbauer@siemens.com>
Subject: [PATCH 1/1] fix(rootfs): correctly handle handle special package names in isar-apt
Date: Mon, 10 Aug 2026 14:11:03 +0200	[thread overview]
Message-ID: <20260810121103.1507197-1-felix.moessbauer@siemens.com> (raw)

When running apt-get install --print-uris, the first component denotes
the download location, the second one the location under which the file
should be stored on disk. The current approach which assumes both are
identical breaks on these cases, resulting in errors like:

 cp: cannot stat
 '///base-apt/debian/pool/main/f/file/libmagic-mgc_1%3a5.39-3+deb11u1_amd64.deb':
 No such file or directory

We fix this, by properly URL decoding the first part, while copying in
with the name of the second part.

Fixes: b294d592 ("fix(rootfs): copy isar-apt packages instead of ...")
Reported-by: Aliaksei Karpovich <akarpovich@ilbers.de>
Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
@Aliaksei: Please give this a try, it should fix the issue you reported.
Do you have a test case in citest.py that reproduces this issue?

Best regards,
Felix

 meta/classes-recipe/rootfs.bbclass | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass
index bdb9ea7a..7a638b91 100644
--- a/meta/classes-recipe/rootfs.bbclass
+++ b/meta/classes-recipe/rootfs.bbclass
@@ -369,8 +369,9 @@ rootfs_install_pkgs_isar_download() {
                --chdir "/var/cache/apt/archives" \
                ${ROOTFSDIR} \
                -- /usr/bin/sh -c 'apt-get ${ROOTFS_APT_ARGS} --print-uris ${ROOTFS_PACKAGES} | \
-                                  sed -n "s|^.file:\(/[^'\'']*/\)[^'\'']*\.deb. \([^ ]*\.deb\) .*|\1\2|p" | \
-                                  while read -r path; do cp -n "$path" ./ ; done'
+                                  sed -n "s|^.file:\(/[^'\'']*\.deb\). \([^ ]*\.deb\).*|\1 \2|p" | \
+                                  sed ":a; s|^\([^ ]*\)%|\1\\\\x|; ta" | \
+                                  while read -r path name; do cp -n "$(/usr/bin/printf "%b" "$path")" "$name" ; done'
 }
 
 ROOTFS_INSTALL_COMMAND += "${@ 'rootfs_install_clean_files' if (d.getVar('ROOTFS_CLEAN_FILES') or '').strip() else ''}"
-- 
2.55.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/20260810121103.1507197-1-felix.moessbauer%40siemens.com.

             reply	other threads:[~2026-08-10 12:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-10 12:11 'Felix Moessbauer' via isar-users [this message]
2026-08-10 14:19 ` Aliaksei Karpovich
2026-08-10 14:33   ` 'MOESSBAUER, Felix' via isar-users
2026-08-12 14:08 ` Zhihang Wei
2026-08-12 14:13   ` 'MOESSBAUER, Felix' via isar-users
2026-08-12 14:25 ` Zhihang Wei

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=20260810121103.1507197-1-felix.moessbauer@siemens.com \
    --to=isar-users@googlegroups.com \
    --cc=akarpovich@ilbers.de \
    --cc=felix.moessbauer@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