https://fedoraproject.org/wiki/Changes/Automatic_strict_inter-package_dependencies = Automatic strict inter-package dependencies = == Summary == Implement feature in RPM which will enforce strict dependencies between subpackages automatically (right now packagers have to do it themselves). == Owner == * Name: [[User:ignatenkobrain|Igor Gnatenko]] * Email: ignatenkobrain@xxxxxxxxxxxxxxxxx == Detailed Description == Let's take graphene as an example. Spec file contains: <pre> %package devel Requires: %{name}%{?_isa} = %{version}-%{release} %package tests Requires: %{name}%{?_isa} = %{version}-%{release} </pre> What we see when we build RPMs is: * <code>graphene-devel</code> requires <code>graphene(x86-64) = 1.8.2-3.fc30</code> AND <code>libgraphene-1.0.so.0()(64bit)</code> AND <code>pkgconfig(graphene-1.0)</code> * <code>graphene-tests</code> requires <code>graphene(x86-64) = 1.8.2-3.fc30</code> AND <code>libgraphene-1.0.so.0()(64bit)</code> What can we do? * <code>Requires: libgraphene-1.0.so.0()(64bit)</code> is actually provided by <code>graphene</code> (coming from same package), so it can be dropped in favor of <code>Requires: graphene(x86-64) = 1.8.2-3.fc30</code> * <code>Requires: pkgconfig(graphene-1.0)</code> is provided by <code>graphene-devel</code> (coming from the same subpackage), so it can be dropped entirely == Benefit to Fedora == Package dependencies (between subpackages) will be more strict, more automated ([https://docs.fedoraproject.org/en-US/packaging-guidelines/#_requiring_base_package this section from guidelines] can be dropped entirely). Metadata size will decrease as well. == Scope == * Proposal owners: Implement required feature in RPM, backport it to Fedora. * Other developers: Drop unneeded dependencies to keep spec file simpler. * Release engineering: [https://pagure.io/releng/issue/8128 #8128] * Policies and guidelines: Drop yet another Packaging Guidelines section because it will be automated. * Trademark approval: N/A (not needed for this Change) == Upgrade/compatibility impact == Everything will keep working. == How To Test == TBD. == User Experience == User's won't see packaging errors (wrt. inter-package dependencies) anymore. == Dependencies == RPM changes are needed. Will be handled by Proposal Owners. == Contingency Plan == * Contingency mechanism: (What to do? Who will do it?) Proposal Owners will try to fix problems ASAP or move Change to the next release (and revert changes). * Contingency deadline: Beta Freeze. * Blocks release? No. * Blocks product? No. == Documentation == TBD. -- Ben Cotton Fedora Program Manager TZ=America/Indiana/Indianapolis _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx