On Tue, Aug 13, 2024 at 11:43 PM David C. Rankin <drankinatty@gmail.com> wrote:
Devs, All,
I created a signed local repo with patched Nvidia packages for the G04 driver. My intent was simply to:
# zypper -r mynvidiarepo dup
To move all Nvidia packages to the versions in my repo. When I did, zypper proposed updating the 7 driver packages, but then also proposed removing most of the kde3 desktop (53 packages).
I have seen similar reports about "zypper dup -r" behavior (actually, IIRC zypper suggested removing almost everything).
I'm at a loss to why zypper would propose the removal of unrelated packages when simply trying to update Nvidia drivers. My first thought was there must have been some problem with the .spec and dependencies -- but I can't imaging what that would be. Where would I start to look for why zypper proposed the removal of the kde3 packages on change of versions for the Nvidia drivers?
To work around this problem, I simply rsynced the repo to my laptop and then did a:
# zypper in *.rpm
Which worked fine and didn't suggest uninstalling anything. So what's the difference in dup or in for the package removals?
The primary goal of "zypper dup" is to bring your system as close as possible to the current content of the currently used repositories. When doing it zypper will aggressively remove any orphan package if it is required to solve dependency problems. Now, if you do "dup" with only one repository, *everything* on your system is orphaned. To find out what caused zypper to remove these packages the complete state would be needed (that is usually generated by "zypper --debug-solver", but I guess it is too late). Personally I consider using "zypper dup -r single-repository" as a "poor man's vendor switching" to be a very bad idea. "zypper dup" was simply not designed for it.
(I would have copied the zypper dup output -- but the dkms driver build scrolled everything out of the xterm buffer :(
Thoughts?
-- David C. Rankin, J.D.,P.E.