I don't get why --allow-vendor-change didn't fully upgrade my system

Hi there !
I am confused about the behaviour of “–allow-vendor-change”.
I thought it is used to resolve conflicts during update between packages from official repo and from packman, when the same package is available on both.
But it affect the overall behaviour on dist-upgrade, what was unexpected and I appreciate some clarification on this.
Follow me, please…
I was in 20210114 release and today morning I decided to move to 20210121 release using tumbleweed cli, followed by a dist-upgrade with --allow-vendor-change flag


kimera:~ # tumbleweed switch 20210121  
switching from 20210114 to 20210121? [y/n] (y): y
kimera:~ # zypper dist-upgrade --from packman --allow-vendor-change
...


21 packages to upgrade.
Overall download size: 7.1 MiB. Already cached: 0 B. After the operation, additional 6.8 KiB will be used.
Continue? [y/n/v/...? shows all options] (y): y


For my surprise was there is only 21 packages to upgrade since 20210114. This can’t be right…
I repeat “zypper dist-upgrade --from packman --allow-vendor-change” and the message was “Nothing to do.”
Then, I decided to run dist-upgrade without the “–allow-vendor-change” flag and this time I got the expected number of packages to be update.


kimera:~ # zypper dist-upgrade
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 product is going to be upgraded:
  openSUSE Tumbleweed  20210114-0 -> 20210121-0


371 packages to upgrade, 155 new, 122 to remove.
Overall download size: 874.6 MiB. Already cached: 0 B. After the operation, additional 80.2 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y

Then, this time, I notice that I got the message about the opensuse version change that I didn’t get before: “openSUSE Tumbleweed 20210114-0 -> 20210121-0”

Why there was so few packages to be updated when using “–allow-vendor-change” ?
Why opensuse was not update from “20210114-0” to “20210121-0” when using “–allow-vendor-change” ?
I guess the last question explain the first. With “–allow-vendor-change” opensuse was not updated to a new release (20210121) and staying on “20210114-0” there was just a few packages on that release to be updated anyway.

So, looks like the main question is: Why “zypper dist-upgrade --allow-vendor-change” doesn’t update the system to “20210121-0” ?
This looks a bug for me…anyone ?

When you do

zypper dist-upgrade --from packman --allow-vendor-change

you restrict the action to the packages that can be found on the packman repository (assuming that the word “packman” here points to an URL of the (or a mirror of the) Packman repository, you did not show your list of repos).
And I can imgine that 21 packages to update from the Packman repository is quite normal.
And of course, doing that a second time will result in “nothing to do” because you just did it.

The standard way of updating your Tumbleweed installation (probably triggered by the fact that here on the forums in the New and Announcements sub-section a new snapshot is announced) is

zypper dup

Adding --allow-vendor-change is not needed anymore since a long time, because that is the default on Tumbleweed installations (though NOT on LEAP). But it does not hurt either.

Edit: read the below posts for better information.

It is not. Default is to keep vendor.

Sorry, I think I am very confused with the OP’s description. He seems to find things strange that IMHO are quite normal

To go to a new Tumbleweed snapshot one needs:

zypper dup --no-allow-vendor-change

But since already some time --no-allow-vendor-change is the default in Tumbleweed installation, it can be left out.

Another subject.
To switch packages you may have from the standard OSS/non-OSS repos to the packages with the same name (and improved functionality) that reside on the Packman repo:

zyper dup --from <packman>

(where <packman> is to be replaced by the #, alias or name of the Packman repo)
No --allow-vendor-change needed, because that is implicit when you use the --from (else it would be useless).

I hope this is better.

At this point, you should provide your list of repos.

zypper lr -d

There is probably something that is inhibiting update.

For example, if you still have the install DVD enabled as a repo, that can inhibit updating of packages from the version that is in the DVD repo.

Just as a note: I normally use --allow-vendor-change (with a line in “/etc/zypp/zypp.conf”), but I am not seeing what you see.

I’ll add that I do not recommend others allow vendor change. It works for me, because I have carefully set the priorities of the repos to what I need, and I am very careful about which repos I enable.

Hello,

With

zypper dup

you will do a distro-upgrade only form “standard” repo (OSS/no-OSS).
With

zypper dup --from packman --allow-vendor-change

you will do a distro-upgrade ONLY form “packman” repo. The packages form “standard” repo will not be upgraded.
Like @hcvv said,

zypper dup --from packman

is enough. With

zypper dup --from repo

you do not need “allow-vendor-change” (from what I know, with one exception, when you upgrade form kernel repository).

That us not true, You will do it from all enabled repos (in the normal case that includes e.g. Packman and that is what you want: OSS, non-OSS and Packman and maybe others). “Standard repos” is an expression for human consumption, zypper does understand any difference between “standard” and “non-standard” repos.

That explains also why a

zypper dup

is enough. It will update from all repos without switching vendors. Thus packages you have from Packman will again be from Packman. No need to do a new switch to Packman afterwards.

[QUOTE=nrickert;3000475]At this point, you should provide your list of repos.

zypper lr -d

Here is the repos I am using


**kimera:~ #** zypper lr -d
#  | Alias              | Name                                                   | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                           |
 Service
---+--------------------+--------------------------------------------------------+---------+-----------+---------+----------+--------+-------------------------------------------------------------------------------+
--------
 1 | Education          | Applications for education users (openSUSE_Tumbleweed) | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://download.opensuse.org/repositories/Education/openSUSE_Tumbleweed/     |
  
 2 | Google-Chrome      | Google-Chrome                                          | Yes     | (r ) Yes  | No      |   99     | rpm-md | http://dl.google.com/linux/chrome/rpm/stable/x86_64                           |
  
 3 | Tumbleweed-Non-OSS | Tumbleweed-Non-OSS                                     | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/history/20210121/tumbleweed/repo/non-oss/        |
  
 4 | Tumbleweed-OSS     | Tumbleweed-OSS                                         | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/history/20210121/tumbleweed/repo/oss/            |
  
 5 | Tumbleweed-update  | Tumbleweed-update                                      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://download.opensuse.org/update/tumbleweed/                              |
  
 6 | packman            | Packman                                                | Yes     | (r ) Yes  | Yes     |   90     | rpm-md | https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/          |
  
 7 | gh-cli             | packages for the GitHub CLI                            | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://cli.github.com/packages/rpm                                           |
  
 8 | nvidia-tumbleweed  | nvidia-tumbleweed                                      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://download.nvidia.com/opensuse/tumbleweed                               |
  
 9 | snappy             | snappy                                                 | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed |
  
10 | vscode             | vscode                                                 | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://packages.microsoft.com/yumrepos/vscode                                |
  
**kimera:~ #**


Oh…This is new for me, I mean “To go to a new Tumbleweed snapshot one needs zypper dup --no-allow-vendor-change”.
So, this explain why I didn’t get a new snapshot. I was using “–allow-vendor-change” and, according to you, I need to use “–no-allow-vendor-change” or don’t use it at all, as I did later !
Ok, good to know. Explained. Thanks !

I’m looking at your repo list.

It mostly looks okay, so I’m not sure why you are seeing this difference.

When it next happens, do:


zypper dup --allow-vendor-change -D
zypper dup -D

and compare the changes between the two. Then check which repos those packages come from. If the packages that show differently are from “packman” then it probably means that there is a change in the main repo but the packman version has not yet been updated. Or maybe it is a package in that Education repo.

If I were checking, I would probably use Yast and the “Versions” tab to see what version comes from which repo.

You did --allow-vendor-change COMBINED with --from packman.
That is for doing the Vendor Switch. Basically only needed once when you want to use the packages from Packman to get your multi-media going.

For a Tumbleweed update, just use

zypper dup

@hcvv, you are right but only 75%.
If you have packman repo enabled you need to switch vendor to packman to update from it.
So, with OSS, no OSS and packman repo enabled, with

zypper dup

you will update from OSS and no OSS. Not from packman.
You need to switch vendor with

zypper dup --from packman

to update from packman repo.
By default zypper will update only from openSUSE repo. For zypper, repos like packman and obs are from different vendor. After you change vendor to packman you will be able to upgrade from it.

From a new install:

 **zypper lr -d**

 # | Alias                                | Name                       | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                      | Service
 --+--------------------------------------+----------------------------+---------+-----------+---------+----------+--------+----------------------------------------------------------+--------
 1 | download.opensuse.org-non-oss        | Main Repository (NON-OSS)  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/non-oss/    |  
 2 | download.opensuse.org-oss            | Main Repository (OSS)      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/oss/        |  
 3 | download.opensuse.org-tumbleweed     | Main Update Repository     | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/tumbleweed/          |  
 4 | openSUSE-20210128-0                  | openSUSE-20210128-0        | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/oss/        |  
 5 | packman.inode.at-openSUSE_Tumbleweed | Packman Repository         | **Yes**     | (r ) Yes  | Yes     |   99     | rpm-md | http://packman.inode.at/suse/openSUSE_Tumbleweed/        |  
 6 | repo-debug                           | openSUSE-Tumbleweed-Debug  | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/tumbleweed/repo/oss/  |  
 7 | repo-source                          | openSUSE-Tumbleweed-Source | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/source/tumbleweed/repo/oss/ |  
 
**zypper -vvv dup**

 Verbosity: 3
 Initializing Target
 Checking whether to refresh metadata for Main Repository (NON-OSS)
 Checking whether to refresh metadata for Main Repository (OSS)
 Checking whether to refresh metadata for Main Update Repository
 Checking whether to refresh metadata for openSUSE-20210128-0
 Checking whether to refresh metadata for Packman Repository
 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...
 Force resolution: No
 Computing upgrade...
 
 
 The following item is locked and will not be changed by any action:
  Available:
   pattern:games
 
 
 The following 26 package updates will NOT be installed:
   gstreamer-plugins-bad         1.18.3-4.1                      x86_64  Packman Repository  http://packman.links2linux.de
   gstreamer-plugins-libav       1.18.3-58.1                     x86_64  Packman Repository  http://packman.links2linux.de
   ..............................................................................................................................................
   libswscale5_7                 4.3.1-9.7                       x86_64  Packman Repository  http://packman.links2linux.de
 Nothing to do.
 
**zypper -vvv dup --from 5 **
Verbosity: 3 
Initializing Target 
Checking whether to refresh metadata for Main Repository (NON-OSS) 
Checking whether to refresh metadata for Main Repository (OSS) 
Checking whether to refresh metadata for Main Update Repository 
Checking whether to refresh metadata for openSUSE-20210128-0 
Checking whether to refresh metadata for Packman Repository 
Loading repository data... 
Reading installed packages... 
Computing distribution upgrade... 
Force resolution: No 
26 Problems: 
Problem: problem with installed package gstreamer-plugins-bad-1.18.3-1.1.x86_64 
Problem: problem with installed package gstreamer-plugins-libav-1.18.3-1.1.x86_64 
Problem: problem with installed package gstreamer-plugins-ugly-1.18.3-1.1.x86_64 
.................................................................................................................................
Problem: problem with installed package libquicktime0-1.2.4+git20180804.fff99cd-2.4.x86_64 
Problem: problem with installed package libswresample3_7-4.3.1-6.2.x86_64 
Problem: problem with installed package libswscale5_7-4.3.1-6.2.x86_64 
 
Problem: problem with installed package gstreamer-plugins-bad-1.18.3-1.1.x86_64 
 Solution 1: install gstreamer-plugins-bad-1.18.3-4.1.x86_64 (with vendor change) 
  openSUSE  -->  http://packman.links2linux.de 
 Solution 2: keep obsolete gstreamer-plugins-bad-1.18.3-1.1.x86_64 


  ............................................................................................................
Applying solution 1 
Resolving dependencies... 
Computing distribution upgrade... 
Force resolution: No 
 
The following item is locked and will not be changed by any action: 
 Available: 
  pattern:games 
 
The following 6 NEW packages are going to be installed: 
  libde265-0       1.0.8-1.2                       x86_64  Packman Repository  http://packman.links2linux.de 
  librtmp1         2.4.20151223.fa8646d-1.55       x86_64  Packman Repository  http://packman.links2linux.de 
  libvo-amrwbenc0  0.1.3-1.40                      x86_64  Packman Repository  http://packman.links2linux.de 
  libx264-161      0.161+git20200912.d198931a-2.2  x86_64  Packman Repository  http://packman.links2linux.de 
  libx265-192      3.4-1.12                        x86_64  Packman Repository  http://packman.links2linux.de 
  libxvidcore4     1.3.7-1.12                      x86_64  Packman Repository  http://packman.links2linux.de 
 
The following 26 packages are going to be upgraded: 
  gstreamer-plugins-bad         1.18.3-1.1 -> 1.18.3-4.1                                         x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  gstreamer-plugins-libav       1.18.3-1.1 -> 1.18.3-58.1                                        x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  gstreamer-plugins-ugly        1.18.3-1.1 -> 1.18.3-4.1                                         x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libavcodec58_91               4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libavfilter7_85               4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  ...........................................................................................................................................................................................................................................
  libpostproc55_7               4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libquicktime0                 1.2.4+git20180804.fff99cd-2.4 -> 1.2.4+git20180804.fff99cd-4.23  x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libswresample3_7              4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libswscale5_7                 4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
 
The following 26 packages are going to change vendor: 
  gstreamer-plugins-bad         1.18.3-1.1 -> 1.18.3-4.1                                         x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  gstreamer-plugins-libav       1.18.3-1.1 -> 1.18.3-58.1                                        x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  gstreamer-plugins-ugly        1.18.3-1.1 -> 1.18.3-4.1                                         x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libavcodec58_91               4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libavfilter7_85               4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  .........................................................................................................................................................................................................................................
  libquicktime0                 1.2.4+git20180804.fff99cd-2.4 -> 1.2.4+git20180804.fff99cd-4.23  x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libswresample3_7              4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
  libswscale5_7                 4.3.1-6.2 -> 4.3.1-9.7                                           x86_64  Packman Repository  openSUSE -> http://packman.links2linux.de 
 
26 packages to upgrade, 6 new, 26  to change vendor. 
Overall download size: 14.8 MiB. Already cached: 0 B. After the operation, additional 25.2 MiB will be used. 
Continue? [y/n/v/...? shows all options] (y): y 
committing 
Retrieving package libgstwayland-1_0-0-1.18.3-4.1.x86_64                                                                                                                        (1/32), 121.9 KiB ( 14.2 KiB unpacked) 
Retrieving: http://packman.inode.at/suse/openSUSE_Tumbleweed/Essentials/x86_64/libgstwayland-1_0-0-1.18.3-4.1.x86_64.rpm .......................................................................................[done] 
Retrieving package libgstmpegts-1_0-0-1.18.3-4.1.x86_64                                                                                                                         (2/32), 179.5 KiB (198.5 KiB unpacked) 
Retrieving: http://packman.inode.at/suse/openSUSE_Tumbleweed/Essentials/x86_64/libgstmpegts-1_0-0-1.18.3-4.1.x86_64.rpm ........................................................................................[done] 
.................................................................................................................................

BTW, after years of use oS, I cannot say that I know about zypper as much as I would like.

Ok, thanks for the tip. I will run zypper in dry mode to compare both runs and go back here if there is any difference that I can’t explain.