public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: "Schmidt, Adriaan" <adriaan.schmidt@siemens.com>
To: "MOESSBAUER, FELIX JONATHAN" <felix.moessbauer@siemens.com>,
	"amikan@ilbers.de" <amikan@ilbers.de>,
	"isar-users@googlegroups.com" <isar-users@googlegroups.com>
Subject: RE: [PATCH v5 18/21] isar-sstate: adopt sstate maintenance script
Date: Sat, 3 Dec 2022 05:29:55 +0000	[thread overview]
Message-ID: <AS4PR10MB5318DE1F366FDE0468305E3FED169@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <38dd7b6a84e20dc13aca6d45556ab90130cb9dd1.camel@siemens.com>

Moessbauer, Felix (T CED INW-CN), Samstag, 3. Dezember 2022 05:58:
> On Fri, 2022-12-02 at 17:36 +0300, Anton Mikanovich wrote:
> > Fix sstate maintenance helper script to work with updated Bitbake
> > siginfo data format.
> >
> > Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> > Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
> > ---
> >  scripts/isar-sstate | 70 ++++++++++++++++++++++---------------------
> > --
> >  1 file changed, 35 insertions(+), 35 deletions(-)
> >
> > diff --git a/scripts/isar-sstate b/scripts/isar-sstate
> > index 8908b09f..53d0541f 100755
> > --- a/scripts/isar-sstate
> > +++ b/scripts/isar-sstate
> > @@ -126,7 +126,7 @@ import shutil
> >  import sys
> >  from tempfile import NamedTemporaryFile
> >  import time
> > -import pickle
> > +import json
> >
> >  sys.path.insert(0,
> > os.path.join(os.path.dirname(os.path.realpath(__file__)), '..',
> > 'bitbake', 'lib'))
> >  from bb.siggen import compare_sigfiles
> > @@ -819,41 +819,41 @@ def sstate_lint(target, verbose, sources_dir,
> > build_dir, exit_code, pedantic, **
> >              continue
> >
> >          sig_file = target.download(sig.path)
> > -        with open(sig_file, 'rb') as f:
> > -            try:
> > -                sigdata_raw = pickle.Unpickler(f)
> > -                sigdata = sigdata_raw.load()
> > -            except:
> > -                # invalid file or format... never mind
> > -                continue
> > +        try:
> > +            with bb.compress.zstd.open(sig_file, "rt",
> > encoding="utf-8", num_threads=1) as f:
> > +                sigdata = json.load(f,
> > object_hook=bb.siggen.SetDecoder)
> > +            bb.siggen.handle_renames(sigdata)
> > +        except:
> > +            # invalid file or format... never mind
> > +            continue
> 
> Hi, I guess we need a similar logic for the analyze subcommand? There,
> I see a lot of these messages (even before the first "checking local
> item" output):
> 
> zstd: /*stdin*\: unsupported format

In the analyze subcommand we don't open the files ourselves, but use bitbake's
compare_sigfiles(), which runs zstd as a new process. We do catch the exceptions,
but not before zstd gets to print that message to stderr (I guess even with this
logic we would still see those).
I don't think it's worth fixing this. It only happens if you try to run the
new script on pre-bitbake2.0 sstate artifacts.

Adriaan

> Felix
> 
> >
> > -            pn_issues = []
> > -            for name, val in sigdata['varvals'].items():
> > -                if not name[0].isupper():
> > -                    continue
> > -                if sigdata['basewhitelist'] and name in
> > sigdata['basewhitelist'] or \
> > -                   sigdata['taskwhitelist'] and name in
> > sigdata['taskwhitelist'] or \
> > -                   name in ADDITIONAL_IGNORED_VARNAMES:
> > -                    continue
> > -                if not val:
> > -                    continue
> > -                # remove leading whitespaces possibly added by
> > appending
> > -                val = val.lstrip()
> > -                if not val[0] == '/':
> > -                    continue
> > -                if val.startswith(build_dir):
> > -                    pn_issues.append(f'\033[0;31m-> path in build-
> > dir:   {name} = "{val}"\033[0m')
> > -                    hits_builddir += 1
> > -                elif val.startswith(sources_dir):
> > -                    pn_issues.append(f'\033[0;31m-> path in sources-
> > dir: {name} = "{val}"\033[0m')
> > -                    hits_srcdir += 1
> > -                else:
> > -                    hits_other += 1
> > -                    if verbose:
> > -                        pn_issues.append(f'\033[0;34m-> other
> > absolute path: {name} = "{val}"\033[0m')
> > -            if len(pn_issues) > 0:
> > -                print(f"\033[1;33m==== issues found in
> > {sig.arch}:{sig.pn}:{sig.task} ({sig.hash[:8]}) ====\033[0m")
> > -                print('\n'.join(pn_issues))
> > +        pn_issues = []
> > +        for name, val in sigdata['varvals'].items():
> > +            if not name[0].isupper():
> > +                continue
> > +            if sigdata['basehash_ignore_vars'] and name in
> > sigdata['basehash_ignore_vars'] or \
> > +               sigdata['taskhash_ignore_tasks'] and name in
> > sigdata['taskhash_ignore_tasks'] or \
> > +               name in ADDITIONAL_IGNORED_VARNAMES:
> > +                continue
> > +            if not val:
> > +                continue
> > +            # remove leading whitespaces possibly added by appending
> > +            val = val.lstrip()
> > +            if not val[0] == '/':
> > +                continue
> > +            if val.startswith(build_dir):
> > +                pn_issues.append(f'\033[0;31m-> path in build-dir:
> > {name} = "{val}"\033[0m')
> > +                hits_builddir += 1
> > +            elif val.startswith(sources_dir):
> > +                pn_issues.append(f'\033[0;31m-> path in sources-dir:
> > {name} = "{val}"\033[0m')
> > +                hits_srcdir += 1
> > +            else:
> > +                hits_other += 1
> > +                if verbose:
> > +                    pn_issues.append(f'\033[0;34m-> other absolute
> > path: {name} = "{val}"\033[0m')
> > +        if len(pn_issues) > 0:
> > +            print(f"\033[1;33m==== issues found in
> > {sig.arch}:{sig.pn}:{sig.task} ({sig.hash[:8]}) ====\033[0m")
> > +            print('\n'.join(pn_issues))
> >          target.release(sig_file)
> >
> >      sum_hits = hits_srcdir + hits_builddir
> > --
> > 2.17.1
> >
> 


  reply	other threads:[~2022-12-03  5:29 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-02 14:36 [PATCH v5 00/21] Migrate to Bitbake 2.0 Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 01/21] meta: change deprecated parse calls Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 02/21] scripts/contrib: Add override conversion script Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 03/21] scripts/contrib: configure " Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 04/21] meta-isar: set default branch names Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 05/21] meta: remove non recommended syntax Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 06/21] bitbake: Update to Bitbake 2.0.5 Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 07/21] doc: require zstd tool Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 08/21] meta: update bitbake variables Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 09/21] bitbake.conf: align hash vars with openembedded Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 10/21] meta: mark network and sudo tasks Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 11/21] meta: update overrides syntax Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 12/21] sstate: update bbclass Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 13/21] bitbake.conf: declare default XZ and ZSTD options Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 14/21] Revert "devshell: Use different termination test to avoid warnings" Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 15/21] meta: align with OE-core libraries update Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 16/21] Revert "Revert "devshell: Use different termination test to avoid warnings"" Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 17/21] CI: Adopt tests to syntax change Anton Mikanovich
2022-12-02 14:36 ` [PATCH v5 18/21] isar-sstate: adopt sstate maintenance script Anton Mikanovich
2022-12-03  4:57   ` Moessbauer, Felix
2022-12-03  5:29     ` Schmidt, Adriaan [this message]
2022-12-06  8:57     ` Anton Mikanovich
2022-12-06  9:36       ` Moessbauer, Felix
2022-12-02 14:36 ` [PATCH v5 19/21] RECIPE-API-CHANGELOG: Add tips after bitbake version update Anton Mikanovich
2022-12-02 14:37 ` [PATCH v5 20/21] Revert "bitbake: Make 3.6.0 the minimum python version" Anton Mikanovich
2022-12-02 14:37 ` [PATCH v5 21/21] Revert "utils/ply: Change md5 usages to work on FIPS enabled hosts" Anton Mikanovich
2022-12-02 14:45 ` [PATCH v5 00/21] Migrate to Bitbake 2.0 Anton Mikanovich
2022-12-05 11:34 ` Florian Bezdeka
2022-12-05 11:57   ` Anton Mikanovich
2022-12-05 11:52 ` Moessbauer, Felix
2022-12-05 12:31   ` 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=AS4PR10MB5318DE1F366FDE0468305E3FED169@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM \
    --to=adriaan.schmidt@siemens.com \
    --cc=amikan@ilbers.de \
    --cc=felix.moessbauer@siemens.com \
    --cc=isar-users@googlegroups.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