From b590f55602b8b8cb74cbd9c4c36182d55e856d2c Mon Sep 17 00:00:00 2001 From: Scott K Logan Date: Thu, 27 Feb 2020 12:59:31 -0800 Subject: [PATCH] Add option to disable weak RPM dependencies (#574) Rather than hard-code the circumstances under which weak RPM dependencies are not supported, allow the RPM build configuration to disable them by passing `--without weak_deps` during the RPM build. --- bloom/generators/rosrpm.py | 8 +++----- .../generators/rpm/templates/ament_cmake/template.spec.em | 4 ++++ .../rpm/templates/ament_python/template.spec.em | 4 ++++ bloom/generators/rpm/templates/catkin/template.spec.em | 4 ++++ bloom/generators/rpm/templates/cmake/template.spec.em | 4 ++++ 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/bloom/generators/rosrpm.py b/bloom/generators/rosrpm.py index f45c0bb9..9500adeb 100644 --- a/bloom/generators/rosrpm.py +++ b/bloom/generators/rosrpm.py @@ -98,11 +98,9 @@ def fallback_resolver(key, peer_packages, rosdistro=self.rosdistro): subs['Provides'].extend( sanitize_package_name(rosify_package_name(g.name, self.rosdistro)) + '(member)' for g in package.member_of_groups) - if self.os_name != 'rhel' or not rpm_distro.isnumeric() or int(rpm_distro) >= 8: - # Weak dependencies are not supported in RHEL < 8 and will break the package. - subs['Supplements'].extend( - sanitize_package_name(rosify_package_name(g.name, self.rosdistro)) + - '(all)' for g in package.member_of_groups) + subs['Supplements'].extend( + sanitize_package_name(rosify_package_name(g.name, self.rosdistro)) + + '(all)' for g in package.member_of_groups) # ROS 2 specific bloom extensions. ros2_distros = [ diff --git a/bloom/generators/rpm/templates/ament_cmake/template.spec.em b/bloom/generators/rpm/templates/ament_cmake/template.spec.em index 985966a9..c16036c4 100644 --- a/bloom/generators/rpm/templates/ament_cmake/template.spec.em +++ b/bloom/generators/rpm/templates/ament_cmake/template.spec.em @@ -1,3 +1,5 @@ +%bcond_without weak_deps + %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %global __provides_exclude_from ^@(InstallationPrefix)/.*$ %global __requires_exclude_from ^@(InstallationPrefix)/.*$ @@ -17,7 +19,9 @@ Source0: %{name}-%{version}.tar.gz @[for p in Conflicts]Conflicts: @p@\n@[end for]@ @[for p in Replaces]Obsoletes: @p@\n@[end for]@ @[for p in Provides]Provides: @p@\n@[end for]@ +@[if Supplements]@\n%if 0%{?with_weak_deps} @[for p in Supplements]Supplements: @p@\n@[end for]@ +%endif@\n@[end if]@ %description @(Description) diff --git a/bloom/generators/rpm/templates/ament_python/template.spec.em b/bloom/generators/rpm/templates/ament_python/template.spec.em index f441f062..f81e5281 100644 --- a/bloom/generators/rpm/templates/ament_python/template.spec.em +++ b/bloom/generators/rpm/templates/ament_python/template.spec.em @@ -1,3 +1,5 @@ +%bcond_without weak_deps + %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %global __provides_exclude_from ^@(InstallationPrefix)/.*$ %global __requires_exclude_from ^@(InstallationPrefix)/.*$ @@ -17,7 +19,9 @@ Source0: %{name}-%{version}.tar.gz @[for p in Conflicts]Conflicts: @p@\n@[end for]@ @[for p in Replaces]Obsoletes: @p@\n@[end for]@ @[for p in Provides]Provides: @p@\n@[end for]@ +@[if Supplements]@\n%if 0%{?with_weak_deps} @[for p in Supplements]Supplements: @p@\n@[end for]@ +%endif@\n@[end if]@ %description @(Description) diff --git a/bloom/generators/rpm/templates/catkin/template.spec.em b/bloom/generators/rpm/templates/catkin/template.spec.em index 0d4a938c..259dcdd7 100644 --- a/bloom/generators/rpm/templates/catkin/template.spec.em +++ b/bloom/generators/rpm/templates/catkin/template.spec.em @@ -1,3 +1,5 @@ +%bcond_without weak_deps + %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %global __provides_exclude_from ^@(InstallationPrefix)/.*$ %global __requires_exclude_from ^@(InstallationPrefix)/.*$ @@ -17,7 +19,9 @@ Source0: %{name}-%{version}.tar.gz @[for p in Conflicts]Conflicts: @p@\n@[end for]@ @[for p in Replaces]Obsoletes: @p@\n@[end for]@ @[for p in Provides]Provides: @p@\n@[end for]@ +@[if Supplements]@\n%if 0%{?with_weak_deps} @[for p in Supplements]Supplements: @p@\n@[end for]@ +%endif@\n@[end if]@ %description @(Description) diff --git a/bloom/generators/rpm/templates/cmake/template.spec.em b/bloom/generators/rpm/templates/cmake/template.spec.em index 0d4a938c..259dcdd7 100644 --- a/bloom/generators/rpm/templates/cmake/template.spec.em +++ b/bloom/generators/rpm/templates/cmake/template.spec.em @@ -1,3 +1,5 @@ +%bcond_without weak_deps + %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %global __provides_exclude_from ^@(InstallationPrefix)/.*$ %global __requires_exclude_from ^@(InstallationPrefix)/.*$ @@ -17,7 +19,9 @@ Source0: %{name}-%{version}.tar.gz @[for p in Conflicts]Conflicts: @p@\n@[end for]@ @[for p in Replaces]Obsoletes: @p@\n@[end for]@ @[for p in Provides]Provides: @p@\n@[end for]@ +@[if Supplements]@\n%if 0%{?with_weak_deps} @[for p in Supplements]Supplements: @p@\n@[end for]@ +%endif@\n@[end if]@ %description @(Description)