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

make install_dependencies work with file dependencies #11054

Open
wants to merge 1 commit into
base: 3.0-dev
Choose a base branch
from

Conversation

tobiasb-ms
Copy link
Contributor

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

In a containerized-rpmbuild environment, the function install_dependencies will install all BuildRequires dependencies from a spec file. However, it wasn't able to handle file dependencies like BuildRequires: %{_bindir}/cmp, which requires looking up the package that provides the file.

This change uses tdnf repoquery to get the appropriate package.

I also added usage of jq in that function, so I added it to the list of packages we always install (it's useful anyway), and did a minor refactor of how we do that.

Change Log
  • Updated install_dependencies to support file dependencies.
  • Minor refactor of how we pass packages to add to a container to the docker file.
  • Added jq as a package to always install in the container.
Does this affect the toolchain?

NO

Test Methodology
  • Tested locally; there are no pipelines that exercise this.

@tobiasb-ms tobiasb-ms requested review from a team as code owners November 13, 2024 19:17
@tobiasb-ms tobiasb-ms changed the base branch from 3.0 to 3.0-dev November 13, 2024 19:18
@tobiasb-ms tobiasb-ms changed the title Tobiasb ms/containerized build install dependencies make install_dependencies work with file dependencies Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants