BuildRequires Generators
Summary
Add possibility to generate build-time dependencies within RPM spec file and teach RPM and mock how to handle this.
Owner
- Name: Igor Gnatenko, Florian Festi
- Email: ignatenkobrain@fedoraproject.org, ffesti@redhat.com
- Release notes owner:
Current status
- Targeted release: Fedora 31
- Last updated: 2019-02-17
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
For many languages (Rust, Golang, Node.Js, Ruby, Pyton), BuildRequires can be automatically generated. All it takes, run some special tool which will output dependencies in RPM format.
How will it work under the hood?
- rpm would perform %prep (which is supposed to abort if some dependencies missing and print them)
- mock would install those dependencies and resume build
Benefit to Fedora
Packagers won't have to pre-generate BuildRequires in the spec file which means it will be always updated (and correct).
Scope
- Proposal owners: Implement support for a feature in RPM and mock (if implemented properly, Koji should just work).
- Other developers: Maintainers of language stacks are advised to use this feature.
- Release engineering: #8129
- List of deliverables: N/A
- Policies and guidelines: Packaging Guidelines need to be updated with instructions how to use this feature.
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
Packagers and users who use repoquery might be affected (TBD, fill how exactly they are).
How To Test
TBD.
User Experience
Users won't notice differences.
Dependencies
Required feature needs to be implemented in RPM and mock.
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) Proposal Owners might still ship feature disabled for Fedora buildsystem but have it available for end-users, and move full completion to the next release.
- Contingency deadline: Beta Freeze
- Blocks release? No.
- Blocks product? No.
Documentation
TBD.
Release Notes
TBD.