RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1788371 - [Feature Request] Package vendor stickiness as available in Zypper
Summary: [Feature Request] Package vendor stickiness as available in Zypper
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: dnf
Version: 8.1
Hardware: All
OS: Linux
Target Milestone: rc
: 8.0
Assignee: Nicola Sella
QA Contact: Eva Mrakova
Depends On:
Blocks: dnf-community 1890505
TreeView+ depends on / blocked
Reported: 2020-01-07 03:10 UTC by Mike Rochefort
Modified: 2021-05-18 15:00 UTC (History)
5 users (show)

Fixed In Version: dnf-4.4.2-2.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2021-05-18 15:00:34 UTC
Type: Bug
Target Upstream Version:

Attachments (Terms of Use)

Description Mike Rochefort 2020-01-07 03:10:52 UTC
I will lead with I'm not sure if this feature request belongs in RHEL or in Fedora, but applies to both (though I'm currently using RHEL and feel it's a _tad_ more applicable from my experience). I also couldn't find a pre-existing request, but I will be honest in that my searching skills aren't the best at times.

Often times 3rd party repositories need to be activated in order to install software that is not found in the supported Red Hat and Fedora repositories (examples being EPEL, RPM Fusion, ELRepo, Negativo17, and Nux). However, sometimes these repositories can have duplicate packages as the projects hold different views on how a particular software should be packaged. A good example of this is the NVIDIA closed source driver. In these situations, installing the driver from one repository may end up having its package overwritten and updated by the packages from another when the other repository is hosting newer packages of the same name, regardless of whether or not this is what the user actually prefers/wants. Using the NVIDIA example, having ones' packages upgraded from a long-lived driver branch to a short-lived driver branch or updated at all.

Zypper (as I found out today) has a functionality called vendor stickiness[0] where a user can specify, in a couple of ways, to lock a set of packages to a particular repository at install time. This will prevent the solver from choosing to upgrade those packages if newer ones exist in a different repository than the one they were installed from.

Currently the only solution (I'm aware of) is to edit the repo file by adding a list of excludes. A similar functionality could help out in situations where packages are duplicated across repositories, whether they be 3rd party community or vendor provided packages.

[0] https://en.opensuse.org/SDB:Vendor_change_update

Comment 1 Neal Gompa 2020-01-07 13:13:49 UTC
This is a libsolv feature, centered around the "allowvendorchange" solver flag.

Details about vendor policies: https://github.com/openSUSE/libsolv/blob/master/doc/libsolv-pool.txt#vendor-policies

Comment 2 Neal Gompa 2020-01-07 13:34:41 UTC
Also, the functions around vendor policies are documented in the same file, though quite a bit further up: https://github.com/openSUSE/libsolv/blob/master/doc/libsolv-pool.txt#functions-1

Comment 3 Nicola Sella 2020-03-13 09:45:09 UTC
I made some PRs

   dnf : https://github.com/rpm-software-management/dnf/pull/1602
libdnf : https://github.com/rpm-software-management/libdnf/pull/907
 tests : https://github.com/rpm-software-management/ci-dnf-stack/pull/803

Shall we apply the change also for micronf and packagekit?

Comment 4 Neal Gompa 2020-03-14 07:29:17 UTC
(In reply to nsella from comment #3)
> Shall we apply the change also for micronf and packagekit?

Yes. We want the behavior to be consistent across all consumers of libdnf.

Comment 20 errata-xmlrpc 2021-05-18 15:00:34 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (dnf bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.