Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
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

Summary: [Feature Request] Package vendor stickiness as available in Zypper
Product: Red Hat Enterprise Linux 8 Reporter: Mike Rochefort <mroche>
Component: dnfAssignee: Nicola Sella <nsella>
Status: CLOSED ERRATA QA Contact: Eva Mrakova <emrakova>
Severity: low Docs Contact:
Priority: low    
Version: 8.1CC: james.antill, kwalker, mhjacks, ngompa13, nsella
Target Milestone: rcKeywords: FutureFeature, Triaged
Target Release: 8.0Flags: pm-rhel: mirror+
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: dnf-4.4.2-2.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-18 15:00:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1665453, 1890505    

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.

https://access.redhat.com/errata/RHBA-2021:1657