From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
Cc: bitbake-devel@lists.openembedded.org,
tanguy.raufflet@savoirfairelinux.com,
richard.purdie@linuxfoundation.org,
stefan.herbrechtsmeier@weidmueller.com
Subject: Re: [bitbake-devel] [PATCH v3 5/6] recipetool: create: split guess_license function
Date: Sun, 11 Aug 2024 22:16:05 +0200 [thread overview]
Message-ID: <2024081120160526af398b@mail.local> (raw)
In-Reply-To: <20240808144824.543208-6-enguerrand.de-ribaucourt@savoirfairelinux.com>
Hello,
When you resend, can you group the bitbake patches together please? That
will make the series easier to apply.
On 08/08/2024 16:48:23+0200, Enguerrand de Ribaucourt wrote:
> +def match_licenses(licfiles, srctree, d):
> + import bb
> + md5sums = get_license_md5sums(d)
> +
> + crunched_md5sums = crunch_known_licenses(d)
> +
> + licenses = []
> for licfile in sorted(licfiles):
> - md5value = bb.utils.md5_file(licfile)
> + resolved_licfile = d.expand(licfile)
I believe you need to rebase because this causes:
https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/7055/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/127/builds/3708/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/7063/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/7041/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/6998/steps/14/logs/stdio
2024-08-09 09:19:32,800 - oe-selftest - INFO - recipetool.RecipetoolTests.test_recipetool_handle_license_vars (subunit.RemotedTestCase)
2024-08-09 09:19:32,800 - oe-selftest - INFO - ... ERROR
2024-08-09 09:19:32,801 - oe-selftest - INFO - 6: 43/50 253/601 (5.86s) (0 failed) (recipetool.RecipetoolTests.test_recipetool_handle_license_vars)
2024-08-09 09:19:32,801 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/lib/oeqa/selftest/cases/recipetool.py", line 1091, in test_recipetool_handle_license_vars
licvalues = handle_license_vars(srctree, lines_before, handled, extravalues, d)
File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/scripts/lib/recipetool/create.py", line 963, in handle_license_vars
licvalues = find_licenses(srctree, d)
File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/scripts/lib/recipetool/create.py", line 1261, in find_licenses
licenses = match_licenses(licfiles, srctree, d)
File "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/scripts/lib/recipetool/create.py", line 1243, in match_licenses
resolved_licfile = d.expand(licfile)
AttributeError: type object 'DataConnectorCopy' has no attribute 'expand'
> + md5value = bb.utils.md5_file(resolved_licfile)
> license = md5sums.get(md5value, None)
> if not license:
> - crunched_md5, lictext = crunch_license(licfile)
> + crunched_md5, lictext = crunch_license(resolved_licfile)
> license = crunched_md5sums.get(crunched_md5, None)
> if lictext and not license:
> license = 'Unknown'
> @@ -1249,13 +1254,19 @@ def guess_license(srctree, d):
> if license:
> licenses.append((license, os.path.relpath(licfile, srctree), md5value))
>
> + return licenses
> +
> +def find_licenses(srctree, d):
> + licfiles = find_license_files(srctree)
> + licenses = match_licenses(licfiles, srctree, d)
> +
> # FIXME should we grab at least one source file with a license header and add that too?
>
> return licenses
>
> def split_pkg_licenses(licvalues, packages, outlines, fallback_licenses=None, pn='${PN}'):
> """
> - Given a list of (license, path, md5sum) as returned by guess_license(),
> + Given a list of (license, path, md5sum) as returned by match_licenses(),
> a dict of package name to path mappings, write out a set of
> package-specific LICENSE values.
> """
> @@ -1418,4 +1429,3 @@ def register_commands(subparsers):
> parser_create.add_argument('--devtool', action="store_true", help=argparse.SUPPRESS)
> parser_create.add_argument('--mirrors', action="store_true", help='Enable PREMIRRORS and MIRRORS for source tree fetching (disabled by default).')
> parser_create.set_defaults(func=create_recipe)
> -
> diff --git a/scripts/lib/recipetool/create_go.py b/scripts/lib/recipetool/create_go.py
> index a85a2f2786..5cc53931f0 100644
> --- a/scripts/lib/recipetool/create_go.py
> +++ b/scripts/lib/recipetool/create_go.py
> @@ -14,7 +14,7 @@ from collections import namedtuple
> from enum import Enum
> from html.parser import HTMLParser
> from recipetool.create import RecipeHandler, handle_license_vars
> -from recipetool.create import guess_license, tidy_licenses, fixup_license
> +from recipetool.create import find_licenses, tidy_licenses, fixup_license
> from recipetool.create import determine_from_url
> from urllib.error import URLError, HTTPError
>
> @@ -624,7 +624,7 @@ class GoRecipeHandler(RecipeHandler):
>
> licenses = []
> lic_files_chksum = []
> - licvalues = guess_license(tmp_vendor_dir, d)
> + licvalues = find_licenses(tmp_vendor_dir, d)
> shutil.rmtree(tmp_vendor_dir)
>
> if licvalues:
> diff --git a/scripts/lib/recipetool/create_npm.py b/scripts/lib/recipetool/create_npm.py
> index dd0ac01c3e..78dc248f31 100644
> --- a/scripts/lib/recipetool/create_npm.py
> +++ b/scripts/lib/recipetool/create_npm.py
> @@ -17,7 +17,7 @@ from bb.fetch2.npm import npm_package
> from bb.fetch2.npmsw import foreach_dependencies
> from recipetool.create import RecipeHandler
> from recipetool.create import get_license_md5sums
> -from recipetool.create import guess_license
> +from recipetool.create import find_licenses
> from recipetool.create import split_pkg_licenses
> logger = logging.getLogger('recipetool')
>
> @@ -320,7 +320,7 @@ class NpmRecipeHandler(RecipeHandler):
> return (licenses, chksums, fallback_licenses)
>
> (licenses, extravalues["LIC_FILES_CHKSUM"], fallback_licenses) = _guess_odd_license(licfiles)
> - split_pkg_licenses([*licenses, *guess_license(srctree, d)], packages, lines_after, fallback_licenses)
> + split_pkg_licenses([*licenses, *find_licenses(srctree, d)], packages, lines_after, fallback_licenses)
>
> classes.append("npm")
> handled.append("buildsystem")
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#16458): https://lists.openembedded.org/g/bitbake-devel/message/16458
> Mute This Topic: https://lists.openembedded.org/mt/107790971/3617179
> Group Owner: bitbake-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/bitbake-devel/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2024-08-11 20:16 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-08 14:48 [Patch v3 0/6] npm: improve fetcher and recipetool compatibility Enguerrand de Ribaucourt
2024-08-08 14:48 ` [PATCH v3 1/6] bitbake: fetch2: npmsw: fix fetching git revisions not on master Enguerrand de Ribaucourt
2024-08-08 14:48 ` [PATCH v3 2/6] npm: accept unspecified versions in package.json Enguerrand de Ribaucourt
2024-08-08 14:48 ` [PATCH v3 3/6] npmsw: " Enguerrand de Ribaucourt
2024-08-08 14:48 ` [PATCH v3 4/6] recipetool: create_npm: resolve licenses defined " Enguerrand de Ribaucourt
2024-08-08 14:48 ` [PATCH v3 5/6] recipetool: create: split guess_license function Enguerrand de Ribaucourt
2024-08-11 20:16 ` Alexandre Belloni [this message]
2024-08-08 14:48 ` [PATCH v3 6/6] recipetool: create_npm: reuse license utils Enguerrand de Ribaucourt
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=2024081120160526af398b@mail.local \
--to=alexandre.belloni@bootlin.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=enguerrand.de-ribaucourt@savoirfairelinux.com \
--cc=richard.purdie@linuxfoundation.org \
--cc=stefan.herbrechtsmeier@weidmueller.com \
--cc=tanguy.raufflet@savoirfairelinux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.