From patchwork Wed Nov 11 17:35:24 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Tondo X-Patchwork-Id: 103768 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2357.1794418535261896104 for ; Wed, 11 Nov 2026 09:35:35 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=qYHYJnax; spf=pass (domain: gmail.com, ip: 209.85.128.41, mailfrom: stondo@gmail.com) Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4a210470b49so28441005e9.2 for ; Wed, 11 Nov 2026 09:35:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794418533; x=1795023333; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=yIhxHq7S1dQRfWiN1mClQ1d8pzQ280CBhe+8ChLMd5o=; b=qYHYJnaxYloTuqykSBABGt/j5dbtGcdkEFNVemQvt7fp552u9e0rcduGPqVv2RIxnM FKndpD27wZUVU3rmZPB8Cx0l15b3NSngUZJWUP0AwS6GMYAuVfyZlcF2vUMqW6CokOEn MDDsl2gFodRy2adD6aXjGeKNbX3s0yzQTCgYcBAv7EVMFqencTQ62YANOZyJW2iVINer 8EhyNVI7NVYMeoGD4t/xKFA3DJA6UDoPuPmosJh1ehGEKZZJxcvMTOkzd3XVfgCv+oBA pMU4f+0BKrvW5yJvlLINX5/GaPFMOk54v0JHagUysyunoe7QmJd6sYTxaE7YhIXcM/Mf 8QyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794418533; x=1795023333; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=yIhxHq7S1dQRfWiN1mClQ1d8pzQ280CBhe+8ChLMd5o=; b=1dM3SOwcie4zGkCsXtWMGZdwT6FFH29/fswvm99fn3CgQAQHHiOGuvG2i8pap46pAz dSBUMimtbL5OjMKqsy+7bAJIPSBkFkVy/fOfza9zngCgu4UY3jyiLB3Q27LaxBbiV23u 59EluQXDEmIPZNvY9I16kiObjfMfl6we0YQ0kJv8QmLIrLdvMKkeoX+Nr8JhT1wrxa89 kvBYruETSvUU1ssWP+UbYTUe1ClVRyOJ5tu3Mlk5FlC2VCYEEmmDUhnqduAw68pNoN8J Vkowffhe390xxjWAZmH1aWh+mWKolvsShz8sDXdlaG5MvhvwEB4voc32KQfZsQO6CyYg 31Hw== X-Gm-Message-State: APuU4Z+KDjKgrgKCr1dSEjsEC0+/daVnAiDueQwblN0QYZP1bFhEo3c7 4faM+3fOVOTgQBOGn+3BsYk/gFiMYn7grXknOyFQkS4q5TJIzNlN4/fOjZ+GVT05 X-Gm-Gg: AYBFou20j9xaFRRF23HI+K0OUwQOyDA3JWg84fNId0qvmq7mt+qukhkxm/eJ3BlkjFQ eEDrsuHC0z/phR69yjA8BhOT73D9Ege9Kp989C9ikXITWRp1jRUMO02RbKTPP8kykKEj8jaeaaO wb/ucoMMWRumMgB9a/arOzQpYXurrjUY750hViVvjBQ1D1ZfLAzpGmemtghUaEvOl3/VBVkHr28 04o252J5mObBgLPXOyHtC1GbBr3eVKIayj0OYxXg0mANCQ1rLkFGMAbfGK42wJEG9Gnd2EdgfzR 1Njjlyfpapkm9jhW7wjR0fPaYr05RwoUkT99KQCpijAvsn2yoORCtAP3CL5/ZY4ZjubtNcB/FLX lnKp6Sy76GAjsKm3xVI0hxWvGZkooN+QWClJWaCXfpbc+4tWpcYPIQ6yA8UDSp+vur+VXLR3XXO mUF2mAFcPSwjT016HCIRquVZe3DFDz3E1+C0fwLWoHLCigpxOm05WbIzJ1LHp1EWEsyWvSWts+Z uCCIXA/2BKiKmAwlexg+xr9eMP5dpn9s5c6w4iL0XFpwYyDmA1G7kgKx+5+uBnwF1CmiGmBZpfT LS5FqflXf3Ad40rLZMcZfzVG6zku/rQCqksmdfsNjODC7WOfUxC6I3E5YJRPeH4OxHHd X-Received: by 2002:a05:600c:3e86:b0:4a1:cd83:b23e with SMTP id 5b1f17b1804b1-4ba091a607dmr58531505e9.0.1794418533349; Wed, 11 Nov 2026 09:35:33 -0800 (PST) Return-Path: Received: from fedora ([165.225.94.251]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-498363df7a5sm12214329f8f.37.2026.11.11.09.35.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Nov 2026 09:35:32 -0800 (PST) From: Stefano Tondo To: openembedded-core@lists.openembedded.org Cc: yoann.congal@smile.fr, jpewhacker@gmail.com, peter.marko@siemens.com, adrian.freihofer@siemens.com, patrick.wicki@siemens.com, stefano.tondo.ext@siemens.com, Mathieu Dubois-Briand , Richard Purdie Subject: [blacksail][PATCH 1/3] spdx30: Make source download enrichment part of the task signature Date: Wed, 11 Nov 2026 18:35:24 +0100 Message-ID: <20261111173526.3653122-2-stondo@gmail.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261111173526.3653122-1-stondo@gmail.com> References: <20261111173526.3653122-1-stondo@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Wed, 11 Nov 2026 17:35:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/250042 From: Stefano Tondo bitbake does not track module functions whose names start with an underscore when it computes task signatures. _enrich_source_package() and _generate_git_purl() were therefore not part of the do_create_spdx signature, and neither was SPDX_GIT_PURL_MAPPINGS, which _generate_git_purl() reads. Changing the mappings or this code did not rerun do_create_spdx, and the previous SPDX was restored from sstate. Rename both functions so that bitbake tracks them. This changes the do_create_spdx signature of every recipe once. Signed-off-by: Stefano Tondo Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie (cherry picked from commit e57ec14f8d9bbe2e789163739df5c991e2eebe5e) Signed-off-by: Stefano Tondo --- meta/lib/oe/spdx30_tasks.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/lib/oe/spdx30_tasks.py b/meta/lib/oe/spdx30_tasks.py index b6456a214a..19661152ff 100644 --- a/meta/lib/oe/spdx30_tasks.py +++ b/meta/lib/oe/spdx30_tasks.py @@ -337,7 +337,7 @@ def collect_dep_sources(dep_objsets, dest): index_sources_by_hash(e.to, dest) -def _generate_git_purl(d, download_location, srcrev): +def generate_git_purl(d, download_location, srcrev): """Generate a Package URL for a Git source from its download location. Parses the Git URL to identify the hosting service and generates the @@ -395,7 +395,7 @@ def _generate_git_purl(d, download_location, srcrev): return None -def _enrich_source_package(d, dl, fd, file_name, primary_purpose): +def enrich_source_package(d, dl, fd, file_name, primary_purpose): """Enrich a Git source download package with version, PURL, and external refs. For Git sources, extracts the full SHA-1 from SRCREV as the version, @@ -414,7 +414,7 @@ def _enrich_source_package(d, dl, fd, file_name, primary_purpose): # Generate PURL for Git hosting services download_location = getattr(dl, "software_downloadLocation", None) if version and download_location: - purl = _generate_git_purl(d, download_location, version) + purl = generate_git_purl(d, download_location, version) if version: dl.software_packageVersion = version @@ -502,7 +502,7 @@ def add_download_files(d, objset): ) ) - _enrich_source_package(d, dl, fd, file_name, primary_purpose) + enrich_source_package(d, dl, fd, file_name, primary_purpose) if fd.method.supports_checksum(fd): for checksum_id in bb.fetch.CHECKSUM_LIST: From patchwork Wed Nov 11 17:35:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Tondo X-Patchwork-Id: 103766 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2359.1794418537534450943 for ; Wed, 11 Nov 2026 09:35:37 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=T0EahSlm; spf=pass (domain: gmail.com, ip: 209.85.221.45, mailfrom: stondo@gmail.com) Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-491f34b4e0fso1527773f8f.2 for ; Wed, 11 Nov 2026 09:35:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794418536; x=1795023336; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=I1Q4pjR2qqa0qfnyUZhl/SmuC5IWufw5Ot40YMG4hZs=; b=T0EahSlmfVOYsfD8g890qj2DrFA7VHGBXb9mnJWzBQwKcEXWZgN+a0dtUU/Y6lXHHV KqVm5KFfh5ya8E1EQdhmH6zum8ngPG50HOLIgSGdowZXd2rMoAz/1FjNUELGQrLME+WY lETdC0INYLdplfxtYtQ5Fge6eg6+rSJicwcPdKCiUDoUclJi5S5FsL/5f/kpTkKDD9xQ R3J0dKcKkMPEXGqLLMFgweQOdSVumAuvqIxJu6RbMD6g9JORH/8I8dutORlaSDgy5kT2 csTnnvDGQ1GfqoHsBnddkVsSQMIgQAzULPnPrixxqMDrfEWtS96O3VS1OZQlqVgBw69s QV7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794418536; x=1795023336; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=I1Q4pjR2qqa0qfnyUZhl/SmuC5IWufw5Ot40YMG4hZs=; b=kiyJr2um1AVPfJtzeZYv4Qp4vp3p7dvHNfVyLcbURzIY7ODzLcIuRK8RiPmzl3k4u7 qlO5CA3qDyw+Xs6hJBNNovpb3c9dRfiUaJKIFwrBfp9fxLm32YYdTIwvoDy4G0RugZIr GlmJ+5Gmym13vuFWg4jVhWEQ1Bj3gXt9cqpqPV4P2pOhOWu5KlVfjOhWKHmzWLnBTJTK VqyA6whpOPfL6xkCCRaG/ys8f8xMOuRyuu4z9GlrSo1mzYc++DCx/Gs+UPRUawtzPknB 0pyd/y3OzJokd3MkpAszO02nyUzg8MV9+6RZYxhfs0fMWmvcRR+uJWBlMsBYVw702tgO haTw== X-Gm-Message-State: APuU4Z9GTGIbWxUX+qpSO2JqgnmzIMFg+DTxJXu7wt1U5qrRDar2P+qA vpRP22HQ6wWNWR6AVwW/NlE7MAKT5NfUtGnRasx3el6dInnAWiM5n1h4Lvosly3R X-Gm-Gg: AYBFou1mk6LTVySyp7eoDHgP1UzSHFaLkEyxrFJ1byFz939+Z2ZWvigXZRRAyRDAzzv WnKFoKRqDRtvH0Kc9wR8scYHvBpd2f6KA4xbVch2RIIOf2yUf0HWU6X7Kiii0jrkmgEx4+vYbug Ejo5LnrbiIuG3tekjtwzhj2OIkR3DWdFtYhbMPqTR+7GtM75HVK4LszguPpNoRDSsETxJyeP3eM JcSVkQIRPNmbnZ1s6NHVtyDjzh+N2BCas+cL587hYt8op+2ANcCQQioVSICchymo2Cw7hN6j38p xK6Hc5meBKG++RwdzJogi+5LsfXiRHjzUCRaqIOkxcN36rknL+7Ujpg8IUlXR9qJ/Q2tXw8z02s 54Z58kf9rSVaj+1aNDzsmPn9keVaJc+7I+QTz7VAjU0EA79r+VvS52E9m7Wp+rRac6FehQ+8GqI up9rwoYZY//sasDrep9Bb93F2QmaOX4bXJPinHdgdgFJqxZmjgOesdFSSy/frIF6C+yDIRgFZXr Lxvpk8AkboOfjO54wp775eVgB3s65AsKbfO9hHHmHDKZlhK4K/6l2NRfBqSCrmAyqvboBrEoYV1 6Zm4KpG6d4wmZ7xtU+tcKKz3bZKWXeqLMsk0XLSSUls8Ni0= X-Received: by 2002:a05:6000:25c6:b0:491:6c24:65f5 with SMTP id ffacd0b85a97d-499c5e3c13dmr5220916f8f.17.1794418535556; Wed, 11 Nov 2026 09:35:35 -0800 (PST) Return-Path: Received: from fedora ([165.225.94.251]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-498363df7a5sm12214329f8f.37.2026.11.11.09.35.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Nov 2026 09:35:34 -0800 (PST) From: Stefano Tondo To: openembedded-core@lists.openembedded.org Cc: yoann.congal@smile.fr, jpewhacker@gmail.com, peter.marko@siemens.com, adrian.freihofer@siemens.com, patrick.wicki@siemens.com, stefano.tondo.ext@siemens.com, Mathieu Dubois-Briand , Richard Purdie Subject: [blacksail][PATCH 2/3] spdx30: Enrich gitsm source downloads like git ones Date: Wed, 11 Nov 2026 18:35:25 +0100 Message-ID: <20261111173526.3653122-3-stondo@gmail.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261111173526.3653122-1-stondo@gmail.com> References: <20261111173526.3653122-1-stondo@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Wed, 11 Nov 2026 17:35:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/250043 From: Stefano Tondo The source download enrichment only handled fd.type "git", so gitsm downloads got the VCS external reference but neither the SRCREV as version nor the PURL. The gitsm fetcher is a git fetcher with submodule support and carries the same revision, so treat it the same. Signed-off-by: Stefano Tondo Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie (cherry picked from commit 1e5146d8f9111416c3fc9247b152d1d70b55c7fe) Signed-off-by: Stefano Tondo --- meta/lib/oe/spdx30_tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/lib/oe/spdx30_tasks.py b/meta/lib/oe/spdx30_tasks.py index 19661152ff..d15dae8fdb 100644 --- a/meta/lib/oe/spdx30_tasks.py +++ b/meta/lib/oe/spdx30_tasks.py @@ -405,7 +405,7 @@ def enrich_source_package(d, dl, fd, file_name, primary_purpose): version = None purl = None - if fd.type == "git": + if fd.type in ("git", "gitsm"): # Use full SHA-1 from fd.revision srcrev = getattr(fd, "revision", None) if srcrev and srcrev not in {"${AUTOREV}", "AUTOINC", "INVALID"}: From patchwork Wed Nov 11 17:35:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Tondo X-Patchwork-Id: 103767 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.2376.1794418539514953302 for ; Wed, 11 Nov 2026 09:35:39 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=eNWeE8XJ; spf=pass (domain: gmail.com, ip: 209.85.221.42, mailfrom: stondo@gmail.com) Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-48b001cd92bso1844891f8f.2 for ; Wed, 11 Nov 2026 09:35:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794418538; x=1795023338; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=cnt5ZzV7vikxmQUthDHOJrKIXPLKU60aKKQHbI2yaQw=; b=eNWeE8XJz4rruGKnHX9V7xNtAe/T8caFvV1rXftsgb9lBgSrqUpKj9mWhCQQWwOJPy BbDO1In4IIpsh7iAJEdIcivqJaRGSn1GRPVojTd4US3mSFbgOMR68rTFakRl0JwOJjxf kRx2vQcD71u7WPMNBnInxbBJV8BYBNxkVcFaJivzuXIyuWeM458Iyr7qEMfEqshREzPr d8e/RZLFx7nGeaHJiyIS8LN/z2QAta/2Vx2drJnWT3CrR+En10ibj5DvONg6ZGsexB8/ Mqxb+5nwX49dOVe17InjLYnatyR7Ox8WyBc5iHMNMtsjc2vUOaqEPLJN7DyCadgDw6xa MVzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794418538; x=1795023338; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=cnt5ZzV7vikxmQUthDHOJrKIXPLKU60aKKQHbI2yaQw=; b=LNiU6w+eAMa9he3CiTikDaqMVgxvTDtbRYrAEZcHeSc6Cc0FKLw1vHtDDkVepoPhPi QwTR6vJ/kg0ZuCdQhuIvdx3pL0bRuP00DFaLs0sihmHjzhGm9oFxmSUGSpn/wXU+EcFR HrK8G1c7BeiuBPPLO3fezTRPQBNVJ/N4y5WIfRKi/43HTyJtjpvVB+mYGDvzPpjwWfyM bZ++170EV2YF1emqNd/d+tuTY0cO4OQX/b27vg3GIi5EXzWLqlgXcMYUkDHhxqXZc4VS xiKSp2oNHpMoszZLuiyQD4sByAsjNjda1lVG2B+nkl3U16pCGGxysFTIYGkF2WQKGi7u DsqQ== X-Gm-Message-State: APuU4Z+zuy9GYprlUJWxG5u17ueJSmj7FR3iL99Wk+QDgMabtpNGz0xv 9jVoo4xKRASz35BIwizaQTWNqldcFwPG83G7Ap54x7k6KNNb5yUiZCoH2qpKMIJF X-Gm-Gg: AYBFou2UtKwKzIxNvvwuz0WAKP0rF0uROa1dOPevGU14VTDOS2LiDgnQReXpiLAhzbt BCS6ECVwrvBdb3woBDpzbwxgrab4QvVZc4kw5gmyXj3ZqfY+Dr5mQpjnf9x/ZQDNNh0hUwZhrSn f0ddxnLRIXFQ+wNh8TbEyxBSLt/VuUJHt14Zd9BbK+yX+ZSDebRPz2+mngHtwO4/ZycGsYOLvky g0/VZPJ3eUEUIpiSfr3w+8g10VduFHIRJGf/Gm9LzS8PR9+JMMWfanRRdEr9jmGfU4SEI8J3e3K P+AD8MSJ7fEss1jFWTeF241W4mYLoEmzPx9qrCjEx8aWGoqNhrSK7llFtU2dJBA2g6QbKBYwcZc 7kwd2KaMeIZD1qWM0lf4uMG5thCHkZwHh5FHPksJsQI6rswmWl69I7IpI+Sku7PRUxN/3jdwr9q cU1j7eN44gIr5DGbPbqXOCNSFYUWVxEoIn+Le/Kliug0oNfWoS59LsSJ+IpvXQRVgHSOe/kdkfL hRAnDbEED5tyLgKW1Lsk2uWNQhSn0NS1GJmjT3AvM+CWXchEHSe9EzkwDTgX00QOdX5EsDLspGx j2KES06/Dd/7D4IiXsnmpNfhw78/y5NyEWAHLz7xORxDglE= X-Received: by 2002:a5d:6f11:0:b0:492:46e:d4ce with SMTP id ffacd0b85a97d-499c89825ddmr5191813f8f.13.1794418537608; Wed, 11 Nov 2026 09:35:37 -0800 (PST) Return-Path: Received: from fedora ([165.225.94.251]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-498363df7a5sm12214329f8f.37.2026.11.11.09.35.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Nov 2026 09:35:36 -0800 (PST) From: Stefano Tondo To: openembedded-core@lists.openembedded.org Cc: yoann.congal@smile.fr, jpewhacker@gmail.com, peter.marko@siemens.com, adrian.freihofer@siemens.com, patrick.wicki@siemens.com, stefano.tondo.ext@siemens.com, Mathieu Dubois-Briand , Richard Purdie Subject: [blacksail][PATCH 3/3] oeqa/selftest: Add tests for source download enrichment Date: Wed, 11 Nov 2026 18:35:26 +0100 Message-ID: <20261111173526.3653122-4-stondo@gmail.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261111173526.3653122-1-stondo@gmail.com> References: <20261111173526.3653122-1-stondo@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Wed, 11 Nov 2026 17:35:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/250044 From: Stefano Tondo test_gitsm_source_version builds git-submodule-test, which uses gitsm, and checks that its source download carries the SRCREV as version. test_git_purl_mappings_rerun_create_spdx builds fastfloat twice, first with the default mapping and then with github.com mapped to another PURL type, and checks that the second SPDX carries the new PURL. Before the enrichment became part of the task signature, the second build restored the first SPDX from sstate. Signed-off-by: Stefano Tondo Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie (cherry picked from commit 3ca309cbd38e7115705a9871c389b4641ec88c63) Signed-off-by: Stefano Tondo --- meta/lib/oeqa/selftest/cases/spdx.py | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/meta/lib/oeqa/selftest/cases/spdx.py b/meta/lib/oeqa/selftest/cases/spdx.py index 8285189382..e65ab46f30 100644 --- a/meta/lib/oeqa/selftest/cases/spdx.py +++ b/meta/lib/oeqa/selftest/cases/spdx.py @@ -443,3 +443,50 @@ class SPDX30Check(SPDX3CheckBase, OESelftestTestCase): r'\d', f"Version '{version}' for package '{name}' should contain digits" ) + def test_gitsm_source_version(self): + """Test that gitsm source downloads are enriched like git ones. + + git-submodule-test is fetched with gitsm://, so its source download + must carry the SRCREV as version. + """ + objset = self.check_recipe_spdx( + "git-submodule-test", + "{DEPLOY_DIR_SPDX}/{SSTATE_PKGARCH}/builds/build-git-submodule-test.spdx.json", + ) + + srcrev = get_bb_var("SRCREV", "git-submodule-test") + for pkg in objset.foreach_type(oe.spdx30.software_Package): + location = pkg.software_downloadLocation or "" + if location.startswith("git+https://git.yoctoproject.org/git-submodule-test"): + self.assertEqual(pkg.software_packageVersion, srcrev) + break + else: + self.fail("git-submodule-test gitsm source download not found") + + def test_git_purl_mappings_rerun_create_spdx(self): + """Test that SPDX_GIT_PURL_MAPPINGS is part of the do_create_spdx signature. + + fastfloat is fetched from github.com. Build it with the default + mapping, then map github.com to another PURL type: do_create_spdx + must run again instead of restoring the first result from sstate. + """ + spdx_path = "{DEPLOY_DIR_SPDX}/{SSTATE_PKGARCH}/builds/build-fastfloat.spdx.json" + location_prefix = "git+https://github.com/fastfloat/fast_float" + srcrev = get_bb_var("SRCREV", "fastfloat") + + def source_purl(objset): + for pkg in objset.foreach_type(oe.spdx30.software_Package): + if (pkg.software_downloadLocation or "").startswith(location_prefix): + return pkg.software_packageUrl + self.fail("fastfloat git source download not found") + + objset = self.check_recipe_spdx("fastfloat", spdx_path) + self.assertEqual(source_purl(objset), f"pkg:github/fastfloat/fast_float@{srcrev}") + + objset = self.check_recipe_spdx( + "fastfloat", + spdx_path, + extraconf='SPDX_GIT_PURL_MAPPINGS = "github.com:pkg:selftest"\n', + ) + self.assertEqual(source_purl(objset), f"pkg:selftest/fastfloat/fast_float@{srcrev}") +