@@ -222,7 +222,8 @@ impl BundleContext<'_> {
222222 /// 6. Copy configured sidecar binaries into `/usr/bin` so RPM payloads match the
223223 /// other Linux formats.
224224 /// 7. Add custom files and maintainer scripts from `[bundle.rpm]`.
225- /// 8. Attach `Requires` from `[bundle.rpm] requires`.
225+ /// 8. Attach `Requires`, `Recommends`, `Provides`, `Conflicts`, and `Obsoletes`
226+ /// from `[bundle.rpm]`.
226227 /// 9. Serialize the final package to disk and remove the temporary staging area.
227228 ///
228229 /// The resulting artifact is written to `project_out_directory()/bundle/rpm`.
@@ -421,6 +422,26 @@ impl BundleContext<'_> {
421422 builder = builder. requires ( rpm:: Dependency :: any ( require) ) ;
422423 }
423424 }
425+ if let Some ( recommends) = & rpm_settings. recommends {
426+ for recommend in recommends {
427+ builder = builder. recommends ( rpm:: Dependency :: any ( recommend) ) ;
428+ }
429+ }
430+ if let Some ( provides) = & rpm_settings. provides {
431+ for provide in provides {
432+ builder = builder. provides ( rpm:: Dependency :: any ( provide) ) ;
433+ }
434+ }
435+ if let Some ( conflicts) = & rpm_settings. conflicts {
436+ for conflict in conflicts {
437+ builder = builder. conflicts ( rpm:: Dependency :: any ( conflict) ) ;
438+ }
439+ }
440+ if let Some ( obsoletes) = & rpm_settings. obsoletes {
441+ for obsolete in obsoletes {
442+ builder = builder. obsoletes ( rpm:: Dependency :: any ( obsolete) ) ;
443+ }
444+ }
424445
425446 let package = builder. build ( ) . context ( "Failed to build RPM package" ) ?;
426447
0 commit comments