diff --git a/macros/shared b/macros/shared index 2e0b156a..c4751d82 100644 --- a/macros/shared +++ b/macros/shared @@ -297,9 +297,29 @@ CROSS_CMAKE_TOOLCHAIN_EOF\ %_cross_sbom_dir %{_cross_datadir}/sboms %_cross_sbom_package_dir %{_cross_sbom_dir}/%{_uncross_name} -%cross_generate_sbom \ +%cross_sbom_files %{_cross_sbom_package_dir}/* + +%_sbom_template \ +%package sbom\ +Summary: SBOM (Software Bill of Materials) for %{name}\ +Group: Documentation\ +AutoReqProv: 0\ +%description sbom\ +This package provides SBOM files for %{name}.\ +%files sbom\ +%{cross_sbom_files}\ +%{nil} + +%_enable_sbom_packages 1 + +# Auto-inject SBOM subpackage - set flag then expand template +%install %{?_enable_sbom_packages:%{?buildsubdir:%{expand:%%global __sbom_package 1}%_sbom_template}}\ +%%install\ +%{nil} + +%cross_generate_sbom() \ mkdir -p %{_builddir}/sbom-temp \ - sbomtool generate --name %{name} --out-dir %{_builddir}/sbom-temp --build-dir %{_builddir} --spdx --cyclonedx + sbomtool generate --name %{?1:%{1}}%{!?1:%{name}} --out-dir %{_builddir}/sbom-temp --build-dir %{?2:%{2}}%{!?2:%{_builddir}} --spdx --cyclonedx %cross_install_sbom \ install -d %{buildroot}%{_cross_sbom_package_dir} \ @@ -354,7 +374,13 @@ CROSS_CMAKE_TOOLCHAIN_EOF\ %__arch_install_post \ /usr/lib/rpm/check-buildroot \ %{?cross_check_fips:%{__cross_check_fips_cmd}} \ - %cross_generate_attribution + %cross_generate_attribution \ + %{?__sbom_package:%cross_install_sbom} + +# Post-build hook for SBOM generation +%__spec_build_post \ + %{?__sbom_package:%cross_generate_sbom} \ + %{___build_post} # Link "sources" from the new per-package build directory to the old location. %__spec_prep_pre \