All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering
@ 2025-08-07  6:23 Fabien Lehoussel via buildroot
  2025-08-07  6:23 ` [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies Fabien Lehoussel via buildroot
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Fabien Lehoussel via buildroot @ 2025-08-07  6:23 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Perale, Fabien Lehoussel

Keep only "real" packages, i.e., those for which XX_SITE is set

v1: https://lists.buildroot.org/pipermail/buildroot/2025-June/781118.html
v2: https://lists.buildroot.org/pipermail/buildroot/2025-July/782803.html

Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>
---
 utils/generate-cyclonedx | 37 +++++++++++++++++++------------------
 1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx
index 34e5672a43..3ff318f11a 100755
--- a/utils/generate-cyclonedx
+++ b/utils/generate-cyclonedx
@@ -178,10 +178,8 @@ def cyclonedx_component(name, comp):
         **({
             "name": comp["name"],
         } if "name" in comp else {}),
-        **({
-            "version": comp["version"],
-            **(cyclonedx_licenses(comp["licenses"]) if "licenses" in comp else {}),
-        } if not comp["virtual"] else {}),
+        "version": comp["version"],
+        **(cyclonedx_licenses(comp["licenses"]) if "licenses" in comp else {}),
         **({
             "cpe": comp["cpe-id"],
         } if "cpe-id" in comp else {}),
@@ -238,12 +236,10 @@ def cyclonedx_vulnerabilities(show_info_dict):
     } for cve, components in cves.items()]
 
 
-def br2_parse_deps_recursively(ref, show_info_dict, virtual=False, deps=[]):
+def br2_parse_deps_recursively(ref, show_info_dict, deps=[]):
     """Parse dependencies from the show-info output. This function will
     recursively collect all dependencies, and return a list where each dependency
     is stated at most once.
-    The dependency on virtual package will collect the final dependency without
-    including the virtual one.
 
     Args:
         ref (str): The identifier of the package for which the dependencies have
@@ -259,10 +255,11 @@ def br2_parse_deps_recursively(ref, show_info_dict, virtual=False, deps=[]):
         list: A list of dependencies of the 'ref' package.
     """
     for dep in show_info_dict.get(ref, {}).get("dependencies", []):
-        if dep not in deps:
-            if virtual or show_info_dict.get(dep, {}).get("virtual") is False:
+        # Only add "real" package dependency
+        if show_info_dict.get(dep, {}).get("real", True):
+            if dep not in deps:
                 deps.append(dep)
-            br2_parse_deps_recursively(dep, show_info_dict, virtual, deps)
+                br2_parse_deps_recursively(dep, show_info_dict, deps)
 
     return deps
 
@@ -277,8 +274,6 @@ def main():
                         default=(None if sys.stdin.isatty() else sys.stdin))
     parser.add_argument("-o", "--out-file", nargs="?", type=argparse.FileType("w"),
                         default=sys.stdout)
-    parser.add_argument("--virtual", default=False, action='store_true',
-                        help="This option includes virtual packages to the CycloneDX output")
     parser.add_argument("--project-name", type=str, default="buildroot",
                         help="Specify the project name to use in the SBOM metadata (default:'buildroot')")
     parser.add_argument("--project-version", type=str, default=f"{BR2_VERSION_FULL}",
@@ -292,10 +287,16 @@ def main():
 
     show_info_dict = json.load(args.in_file)
 
-    # Remove rootfs and virtual packages if not explicitly included
-    # from the cli arguments
-    filtered_show_info_dict = {k: v for k, v in show_info_dict.items()
-                               if ("rootfs" not in v["type"]) and (args.virtual or v["virtual"] is False)}
+    # add flag for "real" packages E.G. packages not bundled inside Buildroot.
+    # non-real package examples:  skeletons, rootfs-xx, virtual-packages...
+    for k, v in show_info_dict.items():
+        if v.get("downloads") and len(v["downloads"]) > 0:
+            v["real"] = True
+        else:
+            v["real"] = False
+
+    # Filter only "real" packages for SBOM generation
+    filtered_show_info_dict = {k: v for k, v in show_info_dict.items() if v["real"]}
 
     cyclonedx_dict = {
         "bomFormat": "CycloneDX",
@@ -330,10 +331,10 @@ def main():
         ],
         "dependencies": [
             cyclonedx_dependency("buildroot", list(filtered_show_info_dict)),
-            *[cyclonedx_dependency(ref, br2_parse_deps_recursively(ref, show_info_dict, args.virtual))
+            *[cyclonedx_dependency(ref, br2_parse_deps_recursively(ref, show_info_dict))
               for ref in filtered_show_info_dict],
         ],
-        "vulnerabilities": cyclonedx_vulnerabilities(show_info_dict),
+        "vulnerabilities": cyclonedx_vulnerabilities(filtered_show_info_dict),
     }
 
     args.out_file.write(json.dumps(cyclonedx_dict, indent=2))
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies
  2025-08-07  6:23 [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Fabien Lehoussel via buildroot
@ 2025-08-07  6:23 ` Fabien Lehoussel via buildroot
  2025-08-07 14:00   ` Peter Korsgaard
  2025-08-14 20:32   ` Thomas Perale via buildroot
  2025-08-07  6:23 ` [Buildroot] [PATCH 3/5] utils/generate-cyclonedx: update dependencies generation Fabien Lehoussel via buildroot
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 8+ messages in thread
From: Fabien Lehoussel via buildroot @ 2025-08-07  6:23 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Perale, Fabien Lehoussel

Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>
---
 utils/generate-cyclonedx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx
index 3ff318f11a..7fa369d7c7 100755
--- a/utils/generate-cyclonedx
+++ b/utils/generate-cyclonedx
@@ -203,7 +203,7 @@ def cyclonedx_dependency(ref, depends):
     """
     return {
         "ref": ref,
-        "dependsOn": depends,
+        "dependsOn": sorted(depends),
     }
 
 
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 3/5] utils/generate-cyclonedx: update dependencies generation
  2025-08-07  6:23 [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Fabien Lehoussel via buildroot
  2025-08-07  6:23 ` [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies Fabien Lehoussel via buildroot
@ 2025-08-07  6:23 ` Fabien Lehoussel via buildroot
  2025-08-07  6:23 ` [Buildroot] [PATCH 4/5] utils/generate-cyclonedx: remove buildroot dependencies Fabien Lehoussel via buildroot
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Fabien Lehoussel via buildroot @ 2025-08-07  6:23 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Perale, Fabien Lehoussel

dependencies must contains only direct dependencies of the component

https://cyclonedx.org/docs/1.6/json/#dependencies_items_dependsOn

Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>
---
 utils/generate-cyclonedx | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx
index 7fa369d7c7..1f601aecd9 100755
--- a/utils/generate-cyclonedx
+++ b/utils/generate-cyclonedx
@@ -236,10 +236,9 @@ def cyclonedx_vulnerabilities(show_info_dict):
     } for cve, components in cves.items()]
 
 
-def br2_parse_deps_recursively(ref, show_info_dict, deps=[]):
+def br2_parse_deps(ref, show_info_dict, deps=[]):
     """Parse dependencies from the show-info output. This function will
-    recursively collect all dependencies, and return a list where each dependency
-    is stated at most once.
+    collect all dependencies of the package and return a list.
 
     Args:
         ref (str): The identifier of the package for which the dependencies have
@@ -254,13 +253,11 @@ def br2_parse_deps_recursively(ref, show_info_dict, deps=[]):
     Returns:
         list: A list of dependencies of the 'ref' package.
     """
+    deps = deps or []
     for dep in show_info_dict.get(ref, {}).get("dependencies", []):
         # Only add "real" package dependency
         if show_info_dict.get(dep, {}).get("real", True):
-            if dep not in deps:
-                deps.append(dep)
-                br2_parse_deps_recursively(dep, show_info_dict, deps)
-
+            deps.append(dep)
     return deps
 
 
@@ -331,7 +328,7 @@ def main():
         ],
         "dependencies": [
             cyclonedx_dependency("buildroot", list(filtered_show_info_dict)),
-            *[cyclonedx_dependency(ref, br2_parse_deps_recursively(ref, show_info_dict))
+            *[cyclonedx_dependency(ref, br2_parse_deps(ref, show_info_dict))
               for ref in filtered_show_info_dict],
         ],
         "vulnerabilities": cyclonedx_vulnerabilities(filtered_show_info_dict),
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 4/5] utils/generate-cyclonedx: remove buildroot dependencies
  2025-08-07  6:23 [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Fabien Lehoussel via buildroot
  2025-08-07  6:23 ` [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies Fabien Lehoussel via buildroot
  2025-08-07  6:23 ` [Buildroot] [PATCH 3/5] utils/generate-cyclonedx: update dependencies generation Fabien Lehoussel via buildroot
@ 2025-08-07  6:23 ` Fabien Lehoussel via buildroot
  2025-08-07  6:23 ` [Buildroot] [PATCH v3 5/5] utils/generate-cyclonedx: add option to filter host packages in components and dependencies Fabien Lehoussel via buildroot
  2025-08-07 13:56 ` [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Peter Korsgaard
  4 siblings, 0 replies; 8+ messages in thread
From: Fabien Lehoussel via buildroot @ 2025-08-07  6:23 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Perale, Fabien Lehoussel

Buildroot (the generated image) is not a component in this context

Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>
---
 utils/generate-cyclonedx | 1 -
 1 file changed, 1 deletion(-)

diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx
index 1f601aecd9..1cfe0550c8 100755
--- a/utils/generate-cyclonedx
+++ b/utils/generate-cyclonedx
@@ -327,7 +327,6 @@ def main():
             cyclonedx_component(name, comp) for name, comp in filtered_show_info_dict.items()
         ],
         "dependencies": [
-            cyclonedx_dependency("buildroot", list(filtered_show_info_dict)),
             *[cyclonedx_dependency(ref, br2_parse_deps(ref, show_info_dict))
               for ref in filtered_show_info_dict],
         ],
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v3 5/5] utils/generate-cyclonedx: add option to filter host packages in components and dependencies
  2025-08-07  6:23 [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Fabien Lehoussel via buildroot
                   ` (2 preceding siblings ...)
  2025-08-07  6:23 ` [Buildroot] [PATCH 4/5] utils/generate-cyclonedx: remove buildroot dependencies Fabien Lehoussel via buildroot
@ 2025-08-07  6:23 ` Fabien Lehoussel via buildroot
  2025-08-07 13:56 ` [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Peter Korsgaard
  4 siblings, 0 replies; 8+ messages in thread
From: Fabien Lehoussel via buildroot @ 2025-08-07  6:23 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Perale, Fabien Lehoussel

Allows viewing and tracking only packages installed on the target.

Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>
---
 utils/generate-cyclonedx | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx
index 1cfe0550c8..25f042431d 100755
--- a/utils/generate-cyclonedx
+++ b/utils/generate-cyclonedx
@@ -236,7 +236,7 @@ def cyclonedx_vulnerabilities(show_info_dict):
     } for cve, components in cves.items()]
 
 
-def br2_parse_deps(ref, show_info_dict, deps=[]):
+def br2_parse_deps(ref, show_info_dict, no_host=False, deps=[]):
     """Parse dependencies from the show-info output. This function will
     collect all dependencies of the package and return a list.
 
@@ -245,7 +245,8 @@ def br2_parse_deps(ref, show_info_dict, deps=[]):
             to be looked up.
         show_info_dict (dict): The JSON output of the show-info
             command, parsed into a Python dictionary.
-
+        no_host (bool): Whether to exclude host packages in the dependencies list.
+            Defaults to False.
     Kwargs:
         deps (list): A list, to which dependencies will be appended. If set to None,
             a new empty list will be created. Defaults to None.
@@ -257,7 +258,11 @@ def br2_parse_deps(ref, show_info_dict, deps=[]):
     for dep in show_info_dict.get(ref, {}).get("dependencies", []):
         # Only add "real" package dependency
         if show_info_dict.get(dep, {}).get("real", True):
-            deps.append(dep)
+            # filter out host packages if requested
+            if no_host and show_info_dict.get(dep, {}).get("type") == "host":
+                continue
+            else:
+                deps.append(dep)
     return deps
 
 
@@ -271,6 +276,8 @@ def main():
                         default=(None if sys.stdin.isatty() else sys.stdin))
     parser.add_argument("-o", "--out-file", nargs="?", type=argparse.FileType("w"),
                         default=sys.stdout)
+    parser.add_argument("--no-host-packages", default=False, action='store_true',
+                        help="This option excludes host packages from the CycloneDX output (components and dependencies)")
     parser.add_argument("--project-name", type=str, default="buildroot",
                         help="Specify the project name to use in the SBOM metadata (default:'buildroot')")
     parser.add_argument("--project-version", type=str, default=f"{BR2_VERSION_FULL}",
@@ -293,7 +300,10 @@ def main():
             v["real"] = False
 
     # Filter only "real" packages for SBOM generation
-    filtered_show_info_dict = {k: v for k, v in show_info_dict.items() if v["real"]}
+    # and optionally host packages if requested
+    filtered_show_info_dict = {k: v for k, v in show_info_dict.items() 
+                                if v["real"] and
+                                (not args.no_host_packages or "host" not in v["type"])}
 
     cyclonedx_dict = {
         "bomFormat": "CycloneDX",
@@ -327,7 +337,7 @@ def main():
             cyclonedx_component(name, comp) for name, comp in filtered_show_info_dict.items()
         ],
         "dependencies": [
-            *[cyclonedx_dependency(ref, br2_parse_deps(ref, show_info_dict))
+            *[cyclonedx_dependency(ref, br2_parse_deps(ref, show_info_dict,args.no_host_packages))
               for ref in filtered_show_info_dict],
         ],
         "vulnerabilities": cyclonedx_vulnerabilities(filtered_show_info_dict),
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering
  2025-08-07  6:23 [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Fabien Lehoussel via buildroot
                   ` (3 preceding siblings ...)
  2025-08-07  6:23 ` [Buildroot] [PATCH v3 5/5] utils/generate-cyclonedx: add option to filter host packages in components and dependencies Fabien Lehoussel via buildroot
@ 2025-08-07 13:56 ` Peter Korsgaard
  4 siblings, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2025-08-07 13:56 UTC (permalink / raw)
  To: Fabien Lehoussel via buildroot; +Cc: Fabien Lehoussel, Thomas Perale

>>>>> "Fabien" == Fabien Lehoussel via buildroot <buildroot@buildroot.org> writes:

 > Keep only "real" packages, i.e., those for which XX_SITE is set
 > v1: https://lists.buildroot.org/pipermail/buildroot/2025-June/781118.html
 > v2: https://lists.buildroot.org/pipermail/buildroot/2025-July/782803.html

 > Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>
 > ---
 >  utils/generate-cyclonedx | 37 +++++++++++++++++++------------------
 >  1 file changed, 19 insertions(+), 18 deletions(-)

 > @@ -259,10 +255,11 @@ def br2_parse_deps_recursively(ref, show_info_dict, virtual=False, deps=[]):
 >          list: A list of dependencies of the 'ref' package.
 >      """
 >      for dep in show_info_dict.get(ref, {}).get("dependencies", []):
 > -        if dep not in deps:
 > -            if virtual or show_info_dict.get(dep, {}).get("virtual") is False:
 > +        # Only add "real" package dependency
 > +        if show_info_dict.get(dep, {}).get("real", True):

In what case would a dependency not be listed in show_info_dict and why
would we in that case consider it a "real" dependency?

If it is something filtered away then we should presumably not list it
in the dependencies?


 > +    # add flag for "real" packages E.G. packages not bundled inside Buildroot.
 > +    # non-real package examples:  skeletons, rootfs-xx, virtual-packages...
 > +    for k, v in show_info_dict.items():
 > +        if v.get("downloads") and len(v["downloads"]) > 0:
 > +            v["real"] = True
 > +        else:
 > +            v["real"] = False


NIT: You could simplify this as:

for v in show_info_dict.values():
   v["real"] = len(v.get("downloads", [])) > 0

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies
  2025-08-07  6:23 ` [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies Fabien Lehoussel via buildroot
@ 2025-08-07 14:00   ` Peter Korsgaard
  2025-08-14 20:32   ` Thomas Perale via buildroot
  1 sibling, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2025-08-07 14:00 UTC (permalink / raw)
  To: Fabien Lehoussel via buildroot; +Cc: Fabien Lehoussel, Thomas Perale

>>>>> "Fabien" == Fabien Lehoussel via buildroot <buildroot@buildroot.org> writes:

 > Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>
 > ---
 >  utils/generate-cyclonedx | 2 +-
 >  1 file changed, 1 insertion(+), 1 deletion(-)

 > diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx
 > index 3ff318f11a..7fa369d7c7 100755
 > --- a/utils/generate-cyclonedx
 > +++ b/utils/generate-cyclonedx
 > @@ -203,7 +203,7 @@ def cyclonedx_dependency(ref, depends):
 >      """
 >      return {
 >          "ref": ref,
 > -        "dependsOn": depends,
 > +        "dependsOn": sorted(depends),

Committed after extending the commit description with a description of
why we do this:

The SBOM is easier to read if the dependencies are sorted
alphabetically.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies
  2025-08-07  6:23 ` [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies Fabien Lehoussel via buildroot
  2025-08-07 14:00   ` Peter Korsgaard
@ 2025-08-14 20:32   ` Thomas Perale via buildroot
  1 sibling, 0 replies; 8+ messages in thread
From: Thomas Perale via buildroot @ 2025-08-14 20:32 UTC (permalink / raw)
  To: Fabien Lehoussel; +Cc: Thomas Perale, buildroot

In reply of:
> Signed-off-by: Fabien Lehoussel <fabien.lehoussel@smile.fr>

Applied to 2025.02.x & 2025.05.x. Thanks

> ---
>  utils/generate-cyclonedx | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/utils/generate-cyclonedx b/utils/generate-cyclonedx
> index 3ff318f11a..7fa369d7c7 100755
> --- a/utils/generate-cyclonedx
> +++ b/utils/generate-cyclonedx
> @@ -203,7 +203,7 @@ def cyclonedx_dependency(ref, depends):
>      """
>      return {
>          "ref": ref,
> -        "dependsOn": depends,
> +        "dependsOn": sorted(depends),
>      }
>  
>  
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-08-14 20:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-07  6:23 [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Fabien Lehoussel via buildroot
2025-08-07  6:23 ` [Buildroot] [PATCH 2/5] utils/generate-cyclonedx: sort dependencies Fabien Lehoussel via buildroot
2025-08-07 14:00   ` Peter Korsgaard
2025-08-14 20:32   ` Thomas Perale via buildroot
2025-08-07  6:23 ` [Buildroot] [PATCH 3/5] utils/generate-cyclonedx: update dependencies generation Fabien Lehoussel via buildroot
2025-08-07  6:23 ` [Buildroot] [PATCH 4/5] utils/generate-cyclonedx: remove buildroot dependencies Fabien Lehoussel via buildroot
2025-08-07  6:23 ` [Buildroot] [PATCH v3 5/5] utils/generate-cyclonedx: add option to filter host packages in components and dependencies Fabien Lehoussel via buildroot
2025-08-07 13:56 ` [Buildroot] [PATCH v3 1/5] utils/generate-cyclonedx: update package filtering Peter Korsgaard

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.