No edit summary |
No edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 60: | Line 60: | ||
Requires.private is only used when using <code>pkg-config --static</code> to link statically. Most of the packages in fedora don't ship static libraries and Packaging Guidelines discourage packaging them. | Requires.private is only used when using <code>pkg-config --static</code> to link statically. Most of the packages in fedora don't ship static libraries and Packaging Guidelines discourage packaging them. | ||
The idea is to make them conditional by using rich dependencies which will change things like <code>pkgconfig(x11)</code> to <code>(pkgconfig(x11) if pkgconfig-static(gdk-3.0))</code>. | The idea is to make them conditional by using rich dependencies which will change things like <code>pkgconfig(x11)</code> to <code>(pkgconfig(x11) if pkgconfig-static(gdk-3.0))</code>. But apart from this we will also not generate them unless packager uses special macro (TBD) to enable it for their packages. | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
Line 101: | Line 99: | ||
<!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
* Release engineering: [https://pagure.io/releng/ | * Release engineering: [https://pagure.io/releng/issue/7678 #7678] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES --> | ||
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)? Is a mass rebuild required? include a link to the releng issue. | <!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)? Is a mass rebuild required? include a link to the releng issue. | ||
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication --> | The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication --> | ||
Line 156: | Line 154: | ||
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | <!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | ||
* Contingency mechanism: | * Contingency mechanism: Proposal owners will revert patches, rebuild affected packages and postpone change to next release. | ||
<!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | <!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | ||
* Contingency deadline: | * Contingency deadline: Beta freeze. | ||
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? --> | <!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? --> | ||
* Blocks release? | * Blocks release? No. | ||
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next --> | * Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next --> | ||
Latest revision as of 16:15, 13 August 2018
Stop pulling dependencies for static libraries
Summary
Since day 0, RPM dependency generator for pkg-config files was pulling in both Requires and Requires.private. We will change generator to pull Requires.private only if static library is actually packaged.
Owner
- Name: Igor Gnatenko
- Email: ignatenkobrain@fedoraproject.org
- Release notes owner:
Current status
- Targeted release: Fedora 30
- Last updated: 2018-08-13
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
Requires.private is only used when using pkg-config --static
to link statically. Most of the packages in fedora don't ship static libraries and Packaging Guidelines discourage packaging them.
The idea is to make them conditional by using rich dependencies which will change things like pkgconfig(x11)
to (pkgconfig(x11) if pkgconfig-static(gdk-3.0))
. But apart from this we will also not generate them unless packager uses special macro (TBD) to enable it for their packages.
Benefit to Fedora
This change makes dependency chain of -devel packages providing pkg-config smaller and additionally make metadata smaller.
Scope
- Proposal owners: Adjust dependency generator to do the right thing, update packaging guidelines.
- Other developers: Package maintainers which ship static library will need to update their packages with new packaging policy.
- Release engineering: #7678 (a check of an impact with Release Engineering is needed)
- List of deliverables: N/A (not a System Wide Change)
- Policies and guidelines: Guidelines need to be updated (not more that 1-2 paragraphs).
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
dnf autoremove
will remove useless packages from end-user systems. Users might be confused by that.
How To Test
TBD.
User Experience
See "Benefit to Fedora"
Dependencies
Need to patch pkgconfig dependency generator in rpm
and possibly add some macro in redhat-rpm-config
package.
Contingency Plan
- Contingency mechanism: Proposal owners will revert patches, rebuild affected packages and postpone change to next release.
- Contingency deadline: Beta freeze.
- Blocks release? No.
- Blocks product? product
Documentation
TBD.