i enabled PackMan/Essentials repo, gave it a higher priority and updated my system from it with a lot of packages changing vendor. Then I disabled the repo but packages are not downgrading to those from standard repos even when explicitly allowed to downgrade:
david@atronach-opensuse:~> LANG=en_US sudo zypper up --allow-downgrade
Loading repository data...
Reading installed packages...
The following 2 package updates will NOT be installed:
mpv mpv-bash-completion
Nothing to do.
Note that vendor stickiness is disabled in zypp.conf:
solver.allowVendorChange = true
zypper will downgrade them only with the dist-upgrade command:
david@atronach-opensuse:~> LANG=en_US sudo zypper dup
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before
you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...
The following 36 packages are going to be downgraded:
ffmpeg-3 gstreamer-plugins-bad gstreamer-plugins-bad-lang gstreamer-plugins-libav gstreamer-plugins-ugly
gstreamer-plugins-ugly-lang libavcodec57 libavcodec58 libavdevice57 libavdevice58 libavfilter6 libavfilter7 libavformat57
libavformat58 libavresample3 libavresample4 libavutil55 libavutil56 libgstadaptivedemux-1_0-0 libgstbadaudio-1_0-0
libgstbasecamerabinsrc-1_0-0 libgstcodecparsers-1_0-0 libgstisoff-1_0-0 libgstmpegts-1_0-0 libgstphotography-1_0-0 libgstsctp-1_0-0
libgsturidownloader-1_0-0 libgstwayland-1_0-0 libgstwebrtc-1_0-0 libpostproc54 libpostproc55 librasqal3 libswresample2
libswresample3 libswscale4 libswscale5
The following 36 packages are going to change vendor:
ffmpeg-3 http://packman.links2linux.de -> openSUSE
gstreamer-plugins-bad http://packman.links2linux.de -> openSUSE
gstreamer-plugins-bad-lang http://packman.links2linux.de -> openSUSE
gstreamer-plugins-libav http://packman.links2linux.de -> openSUSE
gstreamer-plugins-ugly http://packman.links2linux.de -> openSUSE
gstreamer-plugins-ugly-lang http://packman.links2linux.de -> openSUSE
libavcodec57 http://packman.links2linux.de -> openSUSE
libavcodec58 http://packman.links2linux.de -> openSUSE
libavdevice57 http://packman.links2linux.de -> openSUSE
libavdevice58 http://packman.links2linux.de -> openSUSE
libavfilter6 http://packman.links2linux.de -> openSUSE
libavfilter7 http://packman.links2linux.de -> openSUSE
libavformat57 http://packman.links2linux.de -> openSUSE
libavformat58 http://packman.links2linux.de -> openSUSE
libavresample3 http://packman.links2linux.de -> openSUSE
libavresample4 http://packman.links2linux.de -> openSUSE
libavutil55 http://packman.links2linux.de -> openSUSE
libavutil56 http://packman.links2linux.de -> openSUSE
libgstadaptivedemux-1_0-0 http://packman.links2linux.de -> openSUSE
libgstbadaudio-1_0-0 http://packman.links2linux.de -> openSUSE
libgstbasecamerabinsrc-1_0-0 http://packman.links2linux.de -> openSUSE
libgstcodecparsers-1_0-0 http://packman.links2linux.de -> openSUSE
libgstisoff-1_0-0 http://packman.links2linux.de -> openSUSE
libgstmpegts-1_0-0 http://packman.links2linux.de -> openSUSE
libgstphotography-1_0-0 http://packman.links2linux.de -> openSUSE
libgstsctp-1_0-0 http://packman.links2linux.de -> openSUSE
libgsturidownloader-1_0-0 http://packman.links2linux.de -> openSUSE
libgstwayland-1_0-0 http://packman.links2linux.de -> openSUSE
libgstwebrtc-1_0-0 http://packman.links2linux.de -> openSUSE
libpostproc54 http://packman.links2linux.de -> openSUSE
libpostproc55 http://packman.links2linux.de -> openSUSE
librasqal3 openSUSE -> obs://build.opensuse.org/multimedia
libswresample2 http://packman.links2linux.de -> openSUSE
libswresample3 http://packman.links2linux.de -> openSUSE
libswscale4 http://packman.links2linux.de -> openSUSE
libswscale5 http://packman.links2linux.de -> openSUSE
36 packages to downgrade, 36 to change vendor.
Overall download size: 12.9 MiB. Already cached: 0 B. After the operation, 12.9 MiB will be freed.
**Continue? [y/n/v/...? shows all options] (y):**
How come zypper up --allow-downgrade doesn’t work in this case? What’s the point of the –allow-downgrade switch then? I’d like to avoid using dist-upgrade on Leap because it does more changes to the packages and should be used only for the actual distribution upgrade according to the man page.
I did not check what the version are in this case for you, but the version from packages from the Packman repo are not by definition higher (or lower) then those from standard OSS repo. They are numbered by their maintainers independent from each other.
Also “Switching Vendor”, as done e.g. to use Packman versions of packages instead of OSS versions, is done by doing a
zypper dup --from <id-of-the-repo>
and not because the priority is higher (that priority is only used when installing a new package that is available on both repos, independent of version) and also not because the version numbering of any package is “higher” then the one already there. A package is then switched simply because it is there.
When you disable the Packman repo, all the packages you have installed from it are now orphans (regardless of their version). but hat does not mean that they will be replaced doing a zypper up, because of the vendor stickyness. Again this has nothing to do with version numbering (and thus allowing downgrading will not change anything), but with vendor stickyness.
Only a zypper dup will change vendors and in this case install those packages that are orphans and are available on OSS will be switched to OSS (which means that any packages that were installed extra from Packman will still stay as orphans).
Like I said, I have disabled vendor stickiness in zypp.conf so even zypper up (not just dup) automatically switched vendor of packages to those in PackMan repo because it has a slightly higher priority.
Regarding package versions, you can see in my zypper dup output all those packages switching vendor back from PackMan to openSUSE are to be downgraded: *“The following 36 packages are going to be downgraded:”.*Which bring us to my question how come zypper up --allow-downgrade doesn’t do the downgrading too like zypper dup does?
I didn’t list the repositories with the detailed output intentionally because the lines would otherwise got broken in the message post thus making it poorly readable. But there you go:
I do not know why you disabled vendor-stickiness, but are you sure that is a wise thing to do on Leap?
You now seem to install packages that are both on OSS and on Packman based on version numbers and those, at least for the build numbers, are based on the whim of the maintainers. who are not required to coordinate these. Tricky IMHO.
In any case, you are now handling things different from the average Leap user, thus they will have not much experience which such a set-up.
I find the vendor stickiness concept annoying - changing the vendor all the time. I think I can control adequately what goes to install and what doesn’t based on different priorities of repos. Plus so far, my installation of openSUSE is just a testing bed for experiments. It’s not my daily driver nor does it run on a production machine.
But for those running the system for their day-to-day work (and not for experimenting), vendor stickiness is perfect. Because when you have switched to Packman and then an update on OSS gets a higher version number (and that is something you seem to think as impossible, but it isn’t) that package will be switched back on a normal update session. And gone is some of your multi-media support.
Most people prefer the Packman packages, so the instructions to use Packman generally is something like the following
zypper dup --from packman
To undo that so your packages generally are from the oss repository, you would generally run the following
zypper dup --from repo-oss
The other commands used don’t do what is needed exactly, resulting in some confusion.
Skimming the attempt “zypper dup --allow-downgrade” and zypper up --allow downgrade appear to list a number of packages that downgraded but don’t necessarily do what you want completely.