public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Henning Schild <henning.schild@siemens.com>
To: Uladzimir Bely <ubely@ilbers.de>
Cc: "Kiszka, Jan (T CED)" <jan.kiszka@siemens.com>,
	isar-users@googlegroups.com
Subject: Re: [PATCH] deb-dl-dir: Use dpkg-deb --field in debsrc_download
Date: Fri, 11 Feb 2022 14:10:26 +0100	[thread overview]
Message-ID: <20220211141026.5a89853f@md1za8fc.ad001.siemens.net> (raw)
In-Reply-To: <1861231.7Z3S40VBb9@home>

Am Thu, 10 Feb 2022 19:55:04 +0300
schrieb Uladzimir Bely <ubely@ilbers.de>:

> 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

I read and understood that code yesterday. So i know. I was talking
about comments in the code, making it readable and saying these things.
Maybe parts in the commit message in case you want to go really deep.
But not here.

> > 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...

Maybe we take it, but keeping the old code and marking the new with
"TODO revert". In that case we maybe ... hopefully do not need good
comments for the future ... because the code will for sure not be there
for long. Or anyone reading it in 4 months will see the TODO and
propose the revert.

Thanks for taking care of that upstream!

Henning

> > 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  
> 
> 


  reply	other threads:[~2022-02-11 13:10 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
2022-02-11 13:10     ` Henning Schild [this message]
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=20220211141026.5a89853f@md1za8fc.ad001.siemens.net \
    --to=henning.schild@siemens.com \
    --cc=isar-users@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    --cc=ubely@ilbers.de \
    /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