From: Uladzimir Bely <ubely@ilbers.de>
To: "Kiszka, Jan (T CED)" <jan.kiszka@siemens.com>,
Henning Schild <henning.schild@siemens.com>
Cc: isar-users@googlegroups.com
Subject: Re: [PATCH] deb-dl-dir: Use dpkg-deb --field in debsrc_download
Date: Thu, 10 Feb 2022 19:55:04 +0300 [thread overview]
Message-ID: <1861231.7Z3S40VBb9@home> (raw)
In-Reply-To: <20220210132515.52db2852@md1za8fc.ad001.siemens.net>
In the email from Thursday, 10 February 2022 15:25:15 +03 user Henning Schild
wrote:
> Am Thu, 27 Jan 2022 11:45:44 +0100
>
> schrieb Uladzimir Bely <ubely@ilbers.de>:
> > In Debian >= bullseye 'dpkg-deb --show --showformat' is currently
> > broken in case of requesting virtual fields like 'source:<FieldName>'.
> > This makes function 'debsrc_download' broken, so build fails when
> > ISAR_USE_CACHED_BASE_REPO is enabled in local.conf
> >
> > The regression came with the fix for bug #972580 in Debian.
> > The issue is reported to Debian bugtracker as bug #1004372.
> >
> > Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
> > ---
> >
> > meta/classes/deb-dl-dir.bbclass | 10 ++++++++--
> > 1 file changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/meta/classes/deb-dl-dir.bbclass
> > b/meta/classes/deb-dl-dir.bbclass index ffbff077..ded9b3be 100644
> > --- a/meta/classes/deb-dl-dir.bbclass
> > +++ b/meta/classes/deb-dl-dir.bbclass
> > @@ -51,8 +51,14 @@ debsrc_download() {
> >
> > printenv | grep -q BB_VERBOSE_LOGS && set -x
> > find "${rootfs}/var/cache/apt/archives/" -maxdepth 1 -type f
> >
> > -iname '*\.deb' | while read package; do is_not_part_of_current_build
> > "${package}" && continue
> > - local src="$( dpkg-deb --show --showformat
> > '${source:Package}' "${package}" )"
> > - local version="$( dpkg-deb --show --showformat
> > '${source:Version}' "${package}" )"
> > + local src="$( dpkg-deb --field "${package}" Source | awk
> > '{printf $1}' )"
> > + if [ -z "$src" ]; then
> > + src="$( dpkg-deb --field "${package}" Package )"
> > + fi
> > + local version="$( dpkg-deb --field "${package}" Source |
> > awk '{gsub(/[()]/,""); printf $2}')"
> > + if [ -z "$version" ]; then
> > + version="$( dpkg-deb --field "${package}" Version )"
> > + fi
>
> I personally find that hard to read and would appreciate some comments
> on it.
>
Initially, we assume that the "source package" name and version are the same
as "package". It's usually true.
But sometimes "source package" name may differ. In this case, "Source" field
should be specified and we use the value from it. Also, "source package"
version may be also specified using parentheses (if it differ from "package"
version), in this case we also take it.
Some example, when names and version of source package are different:
| dpkg-deb --field librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb | grep
"Source:\|Version\|Package"
| Package: librtmp1
| Source: rtmpdump (2.4+20151223.gitfa8646d.1-2)
| Version: 2.4+20151223.gitfa8646d.1-2+b2
> In addition i would keep the original code and only take the
> alternative approach when src == "". Adding a comment and a TODO revert
> pointing to the bug.
>
I agree that this should be a temorary workaround. Unfortunately, there is no
activity at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004372 for two
weeks...
> Looking at that bug it seems to be a matter of not much time, so the
> workaround in isar might not be needed if one had some patience or used
> kas-docker 2.6.
>
> In fact i would prefer to keep that patch out alltogether and wait for
> upstream fixes.
> Maybe skip the tests doing ISAR_USE_CACHED_BASE_REPO when on bullseye,
> or use kas.
Oh, I seem to copypasted wrong variable to the commit message.
Actually, it is not ISAR_USE_CACHED_BASE_REPO, but BASE_REPO_FEATURES ?=
"cache-deb-src". I will fix commit message in the v2 patchset.
>
> I will send a patch to pin down kas in isar CI.
> Jan please note that kas 3.0 will have to wait for #1004372
>
> regards,
> Henning
>
> > local dscfile=$(find "${DEBSRCDIR}"/"${rootfs_distro}" -name
> >
> > "${src}_${version}.dsc") [ -n "$dscfile" ] && continue
--
Uladzimir Bely
next prev parent reply other threads:[~2022-02-10 16:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-27 10:45 Uladzimir Bely
2022-01-31 8:49 ` Uladzimir Bely
2022-02-10 12:25 ` Henning Schild
2022-02-10 16:55 ` Uladzimir Bely [this message]
2022-02-11 13:10 ` Henning Schild
2022-02-10 12:33 ` [PATCH] CI: pin down the kas container version we use in CI henning.schild
2022-02-23 7:25 ` Anton Mikanovich
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=1861231.7Z3S40VBb9@home \
--to=ubely@ilbers.de \
--cc=henning.schild@siemens.com \
--cc=isar-users@googlegroups.com \
--cc=jan.kiszka@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