Add dynamic dependency infrastructure for RPM packages#759
Open
Add dynamic dependency infrastructure for RPM packages#759
Conversation
These files build the infrastructure necessary to enable RPM packages to enumerate their dependencies at build time, rather than resolving and hard-coding them when Bloom is run. While the RPM dependency generator has existed for some time, the %generate_buildrequires feature added in RPM 4.15 allows builds to generate not only the install-time dependencies, but also the dependencies needed to build the package at all. These packages should be installed to the /etc/rpm directory for the RPM build process to find them. On platforms which don't build RPM packages, they serve no purpose and should not be installed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
These files build the infrastructure necessary to enable RPM packages to enumerate their dependencies at build time, rather than resolving and hard-coding them when Bloom is run.
While the RPM dependency generator has existed for some time, the %generate_buildrequires feature added in RPM 4.15 allows builds to generate not only the install-time dependencies, but also the dependencies needed to build the package at all.
These packages should be installed to the /etc/rpm directory for the RPM build process to find them. On platforms which don't build RPM packages, they serve no purpose and should not be installed.
Long term, I'd like to move this functionality to
rosdepitself in as platform-independent dependency enumeration. If/when that happens, the script invocations from these RPM macros will change, but we won't need to re-generate RPM metadata with Bloom, so I don't consider the script's API, arguments, or location to be part of Bloom's public API.This is the first of two (I think?) PRs that will enable the dynamic RPM generator in Bloom. The next step will include a new Bloom generator which generates spec files that call these RPM macros.
https://rpm.org/docs/4.19.x/manual/dependency_generators.html