From Fedora Project Wiki
(Created page with "<!-- Self Contained or System Wide Change Proposal? Use this guide to determine to which category your proposed change belongs to. Self Contained Changes are: * changes to is...")
 
mNo edit summary
Line 58: Line 58:
== Detailed Description ==
== Detailed Description ==
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
Requires.private is only used when using <pre>pkg-config --static</pre> 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 <pre>pkgconfig(x11)</pre> to <pre>(pkgconfig(x11) if pkgconfig-static(gdk-3.0))</pre>.
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>.


Alternatively/Additionally we could do a switch which will make generator to not generate such requirements.
Alternatively/Additionally we could do a switch which will make generator to not generate such requirements.
Line 116: Line 116:
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->


<pre>dnf autoremove</pre> will remove useless packages from end-user systems. Users might be confused by that.
<code>dnf autoremove</code> will remove useless packages from end-user systems. Users might be confused by that.


== How To Test ==
== How To Test ==

Revision as of 20:33, 12 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-12
  • 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)).

Alternatively/Additionally we could do a switch which will make generator to not generate such requirements.

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.
  • 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

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

Documentation

TBD.

Release Notes