Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide group membership information in RPM packages #564

Merged
merged 1 commit into from
Feb 26, 2020
Merged

Provide group membership information in RPM packages #564

merged 1 commit into from
Feb 26, 2020

Conversation

cottsay
Copy link
Member

@cottsay cottsay commented Jan 14, 2020

This is not a complete implementation of group support in RPMS. The package.xml format does not currently contain enough information for us to specify the specifics of a group dependency. However, we do have enough information to express membership.

Nothing will automatically take advantage of this new group membership information right now, but it will open the door to a mechanism in the future without re-blooming all group members. If merged, you could view this as a "present but disabled" feature.

The motivations for making this change right now, despite being incomplete, are:

  • It could save us from requiring re-blooming later on
  • It could be used to simplify our existing ad-hoc patching in specific cases
  • It could be used to test a more complete solution at-scale
  • It does not change the existing behavior of the packages at all

We could also take advantage of this information in the manual patching we're currently doing to express dependencies on "one or more members" of a group.

This will change will manifest as follows:
Given a package foo that has <member_of_group>bar</member_of_group> package ros-rosdistro-foo will provide the virtual package "ros-distro-bar(member)".
If the target OS supports weak dependencies, the package will also declare a weak reverse-dependency on the virtual package "ros-distro-bar(all)". Since no packages provide "ros-distro-bar(all)" and no packages depend on "ros-distro-bar(member)" automatically, this functionality will be hidden unless specifically called-out or used.

@cottsay cottsay self-assigned this Jan 14, 2020
Copy link
Contributor

@wjwwood wjwwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the logic in #563, I think this lgtm to merge. However, this seems to have built on the pr, so it needs to be rebased first.

This is not a complete implementation of group support in RPMS. The
package.xml format does not contain enough information for us to specify
the specifics of a group dependency. However, we do have enough
information to express membership.

Nothing will automatically take advantage of this new dependency
information right now, but it will open the door to a mechanism in the
future without re-blooming all group members.

We could also take advantage of this information in the manual patching
we're currently doing to express dependencies on groups.
@wjwwood wjwwood merged commit c6a282b into ros-infrastructure:master Feb 26, 2020
@cottsay cottsay deleted the rpm_groups branch February 27, 2020 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants