public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
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




  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