Hide Forgot
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
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
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
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?
(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.
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