@@ -297,14 +297,52 @@ CROSS_CMAKE_TOOLCHAIN_EOF\
297297%_cross_sbom_dir %{_cross_datadir}/sboms
298298%_cross_sbom_package_dir %{_cross_sbom_dir}/%{_uncross_name}
299299
300+ %_sbom_template \
301+ %ifnarch noarch\
302+ %global __sbom_package 1\
303+ %{?buildsubdir:%%global __sbom_package 1}\
304+ %package sbom\
305+ Summary: SBOM (Software Bill of Materials) for %{name}\
306+ AutoReqProv: 0\
307+ Supplements: (%{_cross_os}image-metadata(sbom) and %{name})\
308+ %description sbom\
309+ This package provides SBOM files for %{name}.\
310+ %files sbom\
311+ %{_cross_sbom_package_dir}/*\
312+ %endif\
313+ %{nil}
314+
315+ %_enable_sbom_packages 1
316+
317+ %sbom_package \
318+ %ifnarch noarch\
319+ %global __sbom_package 1\
320+ %{?buildsubdir:%%global __sbom_package 1}\
321+ %_sbom_template\
322+ %endif\
323+ %{nil}
324+
325+ %__sbom_install_post \
326+ %cross_generate_sbom \
327+ %cross_install_sbom\
328+ %{nil}
329+
330+ %__spec_install_template\
331+ %{__spec_install_pre}\
332+ %[ 0%{?_enable_debug_packages} > 0 ? "%{?buildsubdir:%(echo "%{debug_package}" > %{specpartsdir}/rpm-debuginfo.specpart)}" : "" ]\
333+ %[ 0%{?_enable_sbom_packages} > 0 ? "%{?buildsubdir:%{expand:%%global __sbom_package 1}%(echo "%{_sbom_template}" > %{specpartsdir}/rpm-sbom.specpart)}" : "" ]\
334+ %{nil}
335+
300336%cross_generate_sbom \
301337 mkdir -p %{_builddir}/sbom-temp \
302- sbomtool generate --name %{name } --out-dir %{_builddir}/sbom-temp --build-dir %{_builddir} --spdx --cyclonedx
338+ sbomtool generate --name %{_uncross_name } --out-dir %{_builddir}/sbom-temp --build-dir %{_builddir} --spdx --cyclonedx
303339
304340%cross_install_sbom \
305341 install -d %{buildroot}%{_cross_sbom_package_dir} \
306- install -p -m 0644 %{_builddir}/sbom-temp/%{name}-spdx.json %{buildroot}%{_cross_sbom_package_dir}/ \
307- install -p -m 0644 %{_builddir}/sbom-temp/%{name}-cyclonedx.json %{buildroot}%{_cross_sbom_package_dir}/
342+ sed -i 's|%{buildroot}||g' %{_builddir}/sbom-temp/%{_uncross_name}-spdx.json \
343+ sed -i 's|%{buildroot}||g' %{_builddir}/sbom-temp/%{_uncross_name}-cyclonedx.json \
344+ install -p -m 0644 %{_builddir}/sbom-temp/%{_uncross_name}-spdx.json %{buildroot}%{_cross_sbom_package_dir}/ \
345+ install -p -m 0644 %{_builddir}/sbom-temp/%{_uncross_name}-cyclonedx.json %{buildroot}%{_cross_sbom_package_dir}/
308346
309347%__nm %{_bindir}/%{_cross_target}-nm
310348%__objcopy %{_bindir}/%{_cross_target}-objcopy
@@ -351,10 +389,23 @@ CROSS_CMAKE_TOOLCHAIN_EOF\
351389
352390# Generate license attribution and check for FIPS-enabled binaries.
353391# (The FIPS check is disabled by default, pending tree-wide packaging changes.)
392+ %__spec_install_post\
393+ %{?__debug_package:%{__debug_install_post}}\
394+ %{?__sbom_package:%{__sbom_install_post}}\
395+ %{__arch_install_post}\
396+ %{__os_install_post}\
397+ %{nil}
398+
354399%__arch_install_post \
355400 /usr/lib/rpm/check-buildroot \
356401 %{?cross_check_fips:%{__cross_check_fips_cmd}} \
357- %cross_generate_attribution
402+ %cross_generate_attribution \
403+ %{?__sbom_package:%cross_install_sbom}
404+
405+ # Post-build hook for SBOM generation
406+ %__spec_build_post \
407+ %{?__sbom_package:%cross_generate_sbom} \
408+ %{___build_post}
358409
359410# Link "sources" from the new per-package build directory to the old location.
360411%__spec_prep_pre \
0 commit comments