From d7c6afc9a97407238af814777f9148dedd507192 Mon Sep 17 00:00:00 2001 From: Stefan Herbrechtsmeier Date: Tue, 7 Jan 2025 10:17:56 +0100 Subject: [PATCH] bitbake: fetch2: do not prefix embedded checksums The fetcher support entries with an embedded checksum like 'sha256sum' in the SRC_URI. It adds the parameter 'name' as prefix to the checksums if the parameter is set. This behavior is unexpected and leads to hacks in fetchers. Fallback to the checksum without the useless prefix and set the parameter 'name' in the gomod fetcher unconditional. (Bitbake rev: 7a86c5a20ea2586f1ae240613644e065e7b21683) Signed-off-by: Stefan Herbrechtsmeier Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/__init__.py | 9 ++++++--- bitbake/lib/bb/fetch2/gomod.py | 5 +---- bitbake/lib/bb/tests/fetch.py | 4 ---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index f79e278b1c..3d31a8d4aa 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py @@ -1316,20 +1316,23 @@ class FetchData(object): self.setup = False def configure_checksum(checksum_id): + checksum_plain_name = "%ssum" % checksum_id if "name" in self.parm: checksum_name = "%s.%ssum" % (self.parm["name"], checksum_id) else: - checksum_name = "%ssum" % checksum_id - - setattr(self, "%s_name" % checksum_id, checksum_name) + checksum_name = checksum_plain_name if checksum_name in self.parm: checksum_expected = self.parm[checksum_name] + elif checksum_plain_name in self.parm: + checksum_expected = self.parm[checksum_plain_name] + checksum_name = checksum_plain_name elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3", "az", "crate", "gs", "gomod"]: checksum_expected = None else: checksum_expected = d.getVarFlag("SRC_URI", checksum_name) + setattr(self, "%s_name" % checksum_id, checksum_name) setattr(self, "%s_expected" % checksum_id, checksum_expected) self.names = self.parm.get("name",'default').split(',') diff --git a/bitbake/lib/bb/fetch2/gomod.py b/bitbake/lib/bb/fetch2/gomod.py index 21fbe80f56..6c999e8ba0 100644 --- a/bitbake/lib/bb/fetch2/gomod.py +++ b/bitbake/lib/bb/fetch2/gomod.py @@ -119,10 +119,7 @@ class GoMod(Wget): ('https', proxy, '/' + path, None, None, None)) ud.parm['downloadfilename'] = path - # Set name parameter if sha256sum is set in recipe - name = f"{module}@{ud.parm['version']}" - if d.getVarFlag('SRC_URI', name + '.sha256sum'): - ud.parm['name'] = name + ud.parm['name'] = f"{module}@{ud.parm['version']}" # Set subdir for unpack ud.parm['subdir'] = os.path.join(moddir, 'cache/download', diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index c5ec84dc55..6b8e3e060f 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py @@ -3391,7 +3391,6 @@ class GoModTest(FetcherTest): fetcher = bb.fetch2.Fetch(urls, self.d) ud = fetcher.ud[urls[0]] self.assertEqual(ud.url, 'https://proxy.golang.org/github.com/%21azure/azure-sdk-for-go/sdk/storage/azblob/%40v/v1.0.0.zip') - self.assertNotIn('name', ud.parm) fetcher.download() fetcher.unpack(self.unpackdir) @@ -3409,7 +3408,6 @@ class GoModTest(FetcherTest): fetcher = bb.fetch2.Fetch(urls, self.d) ud = fetcher.ud[urls[0]] self.assertEqual(ud.url, 'https://proxy.golang.org/github.com/%21azure/azure-sdk-for-go/sdk/storage/azblob/%40v/v1.0.0.mod') - self.assertNotIn('name', ud.parm) fetcher.download() fetcher.unpack(self.unpackdir) @@ -3442,7 +3440,6 @@ class GoModTest(FetcherTest): fetcher = bb.fetch2.Fetch(urls, self.d) ud = fetcher.ud[urls[0]] self.assertEqual(ud.url, 'https://proxy.golang.org/gopkg.in/ini.v1/%40v/v1.67.0.zip') - self.assertNotIn('name', ud.parm) fetcher.download() fetcher.unpack(self.unpackdir) @@ -3460,7 +3457,6 @@ class GoModTest(FetcherTest): fetcher = bb.fetch2.Fetch(urls, self.d) ud = fetcher.ud[urls[0]] self.assertEqual(ud.url, 'https://proxy.golang.org/go.opencensus.io/%40v/v0.24.0.zip') - self.assertNotIn('name', ud.parm) fetcher.download() fetcher.unpack(self.unpackdir)