The best way to permanently switch vendors for Mesa?

Like some other Tumbleweed users, I have Packman with priority 90 and the official openSUSE repos with priorities 97 and 98. I’m interested in improving the reliability of my system by changing the Mesa vendor to openSUSE’s repo, as I’ve seen recommended on this forum.

The other day, I changed the vendor on the Mesa packages like this:

sudo zypper in --from Tumbleweed_OSS --oldpackage Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0

and then tried to lock this change with:

sudo zypper al -r Tumbleweed_OSS Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0

But when I tried to do sudo zypper dup it then tried to change the vendor back to Packman.

The following 7 packages are going to change vendor:
  Mesa                     
    openSUSE -> http://packman.links2linux.de
  Mesa-dri                 
    openSUSE -> http://packman.links2linux.de
  Mesa-gallium             
    openSUSE -> http://packman.links2linux.de
  Mesa-libEGL1             
    openSUSE -> http://packman.links2linux.de
  Mesa-libGL1              
    openSUSE -> http://packman.links2linux.de
  Mesa-libglapi0           
    openSUSE -> http://packman.links2linux.de
  Mesa-vulkan-device-select
    openSUSE -> http://packman.links2linux.de

And it wants to do that despite zypper assuring me that they are locked:

❯ zypper ll

# | Name                      | Type    | Repository     | Comment
--+---------------------------+---------+----------------+--------
1 | Mesa                      | package | Tumbleweed_OSS | 
2 | Mesa-dri                  | package | Tumbleweed_OSS | 
3 | Mesa-gallium              | package | Tumbleweed_OSS | 
4 | Mesa-libEGL1              | package | Tumbleweed_OSS | 
5 | Mesa-libGL1               | package | Tumbleweed_OSS | 
6 | Mesa-libglapi0            | package | Tumbleweed_OSS | 
7 | Mesa-vulkan-device-select | package | Tumbleweed_OSS | 

So my question is:
What is the recommended way to get from my original starting point with codecs and several Mesa coming from Packman with priority 90 to a setup where Mesa drivers all come from an official openSUSE repo and stay that way during zypper dup? I have some other packages from Packman that I don’t think are available from openSUSE’s repos, such as the broadcom wireless drivers and other codecs that I would continue using Packman for.

You need to perform the vendor switch back to openSUSE:

sudo zypper install --allow-vendor-change --from Tumbleweed_OSS --allow-downgrade Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0

So I allowed zypper dup to revert the packages back to packman and then tried your suggestion, but it did not work:

❯ sudo zypper install --allow-vendor-change --from Tumbleweed_OSS --allow-downgrade Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0
[sudo] password for root: 
Loading repository data...
Reading installed packages...
The selected package 'Mesa-libEGL1-24.3.0-395.1.x86_64' from repository 'Tumbleweed_OSS' has lower version than the installed one. Use 'zypper install --oldpackage Mesa-libEGL1-24.3.0-395.1.x86_64' to force installation of the package.
The selected package 'Mesa-libGL1-24.3.0-395.1.x86_64' from repository 'Tumbleweed_OSS' has lower version than the installed one. Use 'zypper install --oldpackage Mesa-libGL1-24.3.0-395.1.x86_64' to force installation of the package.
The selected package 'Mesa-24.3.0-395.1.x86_64' from repository 'Tumbleweed_OSS' has lower version than the installed one. Use 'zypper install --oldpackage Mesa-24.3.0-395.1.x86_64' to force installation of the package.
The selected package 'Mesa-dri-24.3.0-395.1.x86_64' from repository 'Tumbleweed_OSS' has lower version than the installed one. Use 'zypper install --oldpackage Mesa-dri-24.3.0-395.1.x86_64' to force installation of the package.
The selected package 'Mesa-gallium-24.3.0-395.1.x86_64' from repository 'Tumbleweed_OSS' has lower version than the installed one. Use 'zypper install --oldpackage Mesa-gallium-24.3.0-395.1.x86_64' to force installation of the package.
The selected package 'Mesa-libglapi0-24.3.0-395.1.x86_64' from repository 'Tumbleweed_OSS' has lower version than the installed one. Use 'zypper install --oldpackage Mesa-libglapi0-24.3.0-395.1.x86_64' to force installation of the package.
The selected package 'Mesa-vulkan-device-select-24.3.0-395.1.x86_64' from repository 'Tumbleweed_OSS' has lower version than the installed one. Use 'zypper install --oldpackage Mesa-vulkan-device-select-24.3.0-395.1.x86_64' to force installation of the package.
Resolving package dependencies...
Nothing to do.

And I also tried:

sudo zypper in --allow-vendor-change --from Tumbleweed_OSS --oldpackage Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0

which installed the tumbleweed packages, and then I locked all the downgraded packages with:

sudo zypper al -r Tumbleweed_OSS Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0 Mesa-KHR-devel Mesa-libEGL-devel Mesa-libGL-devel libvulkan_intel

But zypper dup still wanted to revert the packages back to packman.

I also tried:

sudo zypper in --allow-vendor-change --from Tumbleweed_OSS --allow-downgrade --oldpackage Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0

and had the same result.

What’s strange is that this all happens after I verify the locks are in place zypper ll.

Any idea why this isn’t working? Or how to keep those packages from switching back to packman?

So, show the full output of this command, not some random lines.

zypper lr -d
zypper ll
zypper dup

Here is the output your requested. This is starting from a point at which the packages have reverted to Packman:

~ 
❯ zypper lr -d
# | Alias                  | Name                                 | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                                    | Service
--+------------------------+--------------------------------------+---------+-----------+---------+----------+--------+----------------------------------------------------------------------------------------+--------
1 | Nvidia                 | Nvidia                               | Yes     | (r ) Yes  | Yes     |  115     | rpm-md | https://download.nvidia.com/opensuse/tumbleweed                                        | 
2 | Packman_Tumbleweed     | Packman_Tumbleweed                   | Yes     | (r ) Yes  | Yes     |   90     | rpm-md | https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/                   | 
3 | Tumbleweed_OSS         | Tumbleweed_OSS                       | Yes     | (r ) Yes  | Yes     |   98     | rpm-md | https://mirrorcache.opensuse.org/tumbleweed/repo/oss/?REGION=na                        | 
4 | Tumbleweed_OSS-updates | Tumbleweed_OSS-updates               | Yes     | (r ) Yes  | Yes     |   97     | rpm-md | https://mirrorcache.opensuse.org/update/tumbleweed/?REGION=na                          | 
5 | Tumbleweed_non-OSS     | Tumbleweed_non-OSS                   | Yes     | (r ) Yes  | Yes     |   98     | rpm-md | https://mirrorcache.opensuse.org/tumbleweed/repo/non-oss/?REGION=na                    | 
6 | home:kLeZ-hAcK         | home:kLeZ-hAcK                       | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://download.opensuse.org/repositories/home:/kLeZ-hAcK/openSUSE_Tumbleweed/        | 
7 | home_RN_supergfxctl    | home:RN:supergfxctl                  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://download.opensuse.org/repositories/home:/RN:/supergfxctl/openSUSE_Tumbleweed/  | 
8 | home_luke_nukem_asus   | home:luke_nukem:asus (openSUSE_Tum-> | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://download.opensuse.org/repositories/home:/luke_nukem:/asus/openSUSE_Tumbleweed/ | 
9 | librewolf              | librewolf                            | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://rpm.librewolf.net/                                                             | 

~ 
❯ zypper ll

#  | Name                      | Type    | Repository     | Comment
---+---------------------------+---------+----------------+--------
1  | Mesa                      | package | Tumbleweed_OSS | 
2  | Mesa-KHR-devel            | package | Tumbleweed_OSS | 
3  | Mesa-dri                  | package | Tumbleweed_OSS | 
4  | Mesa-gallium              | package | Tumbleweed_OSS | 
5  | Mesa-libEGL-devel         | package | Tumbleweed_OSS | 
6  | Mesa-libEGL1              | package | Tumbleweed_OSS | 
7  | Mesa-libGL-devel          | package | Tumbleweed_OSS | 
8  | Mesa-libGL1               | package | Tumbleweed_OSS | 
9  | Mesa-libglapi0            | package | Tumbleweed_OSS | 
10 | Mesa-vulkan-device-select | package | Tumbleweed_OSS | 
11 | libvulkan_intel           | package | Tumbleweed_OSS | 


~ 
❯ sudo zypper dup
[sudo] password for root: 
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...
Nothing to do.

Continuing on, I’ll show the output from downgrading and updating. First I’ll unlock the packages, then I’ll downgrade seven Mesa packages, then I’ll lock them, and then zypper dup.

~ 
❯ sudo zypper rl -r Tumbleweed_OSS Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0 Mesa-KHR-devel Mesa-libEGL-devel Mesa-libGL-devel libvulkan_intel
11 locks have been successfully removed.

~ 
❯ zypper ll

There are no package locks defined.

~ 
❯ sudo zypper in --allow-vendor-change --from Tumbleweed_OSS --allow-downgrade --oldpackage Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0
[sudo] password for root: 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 7 packages are going to be downgraded:
  Mesa Mesa-dri Mesa-gallium Mesa-libEGL1 Mesa-libGL1 Mesa-libglapi0 Mesa-vulkan-device-select

The following 7 packages are going to change vendor:
  Mesa                       http://packman.links2linux.de -> openSUSE
  Mesa-dri                   http://packman.links2linux.de -> openSUSE
  Mesa-gallium               http://packman.links2linux.de -> openSUSE
  Mesa-libEGL1               http://packman.links2linux.de -> openSUSE
  Mesa-libGL1                http://packman.links2linux.de -> openSUSE
  Mesa-libglapi0             http://packman.links2linux.de -> openSUSE
  Mesa-vulkan-device-select  http://packman.links2linux.de -> openSUSE

7 packages to downgrade, 7  to change vendor.

Package download size:    23.6 MiB

Package install size change:
              |     125.2 MiB  required by packages that will be installed
  -120.0 KiB  |  -  125.3 MiB  released by packages that will be removed

Backend:  classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
Retrieving: Mesa-libglapi0-24.3.1-396.1.x86_64 (Tumbleweed_OSS)                                                                                                                                     (1/7),  78.9 KiB    
Retrieving: Mesa-libglapi0-24.3.1-396.1.x86_64.rpm ...............................................................................................................................................................[done]
Retrieving: Mesa-vulkan-device-select-24.3.1-396.1.x86_64 (Tumbleweed_OSS)                                                                                                                          (2/7),  80.6 KiB    
Retrieving: Mesa-vulkan-device-select-24.3.1-396.1.x86_64.rpm ....................................................................................................................................................[done]
Retrieving: Mesa-24.3.1-396.1.x86_64 (Tumbleweed_OSS)                                                                                                                                               (3/7),  60.2 KiB    
Retrieving: Mesa-24.3.1-396.1.x86_64.rpm .............................................................................................................................................................[done (2.5 KiB/s)]
Retrieving: Mesa-dri-24.3.1-396.1.x86_64 (Tumbleweed_OSS)                                                                                                                                           (4/7),   9.7 MiB    
Retrieving: Mesa-dri-24.3.1-396.1.x86_64.rpm ........................................................................................................................................................[done (11.5 MiB/s)]
Retrieving: Mesa-libEGL1-24.3.1-396.1.x86_64 (Tumbleweed_OSS)                                                                                                                                       (5/7), 184.0 KiB    
Retrieving: Mesa-libEGL1-24.3.1-396.1.x86_64.rpm .................................................................................................................................................................[done]
Retrieving: Mesa-libGL1-24.3.1-396.1.x86_64 (Tumbleweed_OSS)                                                                                                                                        (6/7), 201.5 KiB    
Retrieving: Mesa-libGL1-24.3.1-396.1.x86_64.rpm ..................................................................................................................................................................[done]
Retrieving: Mesa-gallium-24.3.1-396.1.x86_64 (Tumbleweed_OSS)                                                                                                                                       (7/7),  13.3 MiB    
Retrieving: Mesa-gallium-24.3.1-396.1.x86_64.rpm ....................................................................................................................................................[done (10.3 MiB/s)]

Checking for file conflicts: .....................................................................................................................................................................................[done]
(1/7) Installing: Mesa-libglapi0-24.3.1-396.1.x86_64 .............................................................................................................................................................[done]
(2/7) Installing: Mesa-vulkan-device-select-24.3.1-396.1.x86_64 ..................................................................................................................................................[done]
(3/7) Installing: Mesa-24.3.1-396.1.x86_64 .......................................................................................................................................................................[done]
(4/7) Installing: Mesa-dri-24.3.1-396.1.x86_64 ...................................................................................................................................................................[done]
(5/7) Installing: Mesa-libEGL1-24.3.1-396.1.x86_64 ...............................................................................................................................................................[done]
(6/7) Installing: Mesa-libGL1-24.3.1-396.1.x86_64 ................................................................................................................................................................[done]
(7/7) Installing: Mesa-gallium-24.3.1-396.1.x86_64 ...............................................................................................................................................................[done]
Running post-transaction scripts .................................................................................................................................................................................[done]
There are running programs which still use files and libraries deleted or updated by recent upgrades. They should be restarted to benefit from the latest updates. Run 'zypper ps -s' to list these programs.
 
~ 
❯ sudo zypper al -r Tumbleweed_OSS Mesa Mesa-dri Mesa-libGL1 Mesa-libEGL1 Mesa-gallium Mesa-vulkan-device-select Mesa-libglapi0
Specified locks have been successfully added.

~ 
❯ zypper ll

# | Name                      | Type    | Repository     | Comment
--+---------------------------+---------+----------------+--------
1 | Mesa                      | package | Tumbleweed_OSS | 
2 | Mesa-dri                  | package | Tumbleweed_OSS | 
3 | Mesa-gallium              | package | Tumbleweed_OSS | 
4 | Mesa-libEGL1              | package | Tumbleweed_OSS | 
5 | Mesa-libGL1               | package | Tumbleweed_OSS | 
6 | Mesa-libglapi0            | package | Tumbleweed_OSS | 
7 | Mesa-vulkan-device-select | package | Tumbleweed_OSS | 

~ 
❯ 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 7 packages are going to be upgraded:
  Mesa Mesa-dri Mesa-gallium Mesa-libEGL1 Mesa-libGL1 Mesa-libglapi0 Mesa-vulkan-device-select

The following 7 packages are going to change vendor:
  Mesa                       openSUSE -> http://packman.links2linux.de
  Mesa-dri                   openSUSE -> http://packman.links2linux.de
  Mesa-gallium               openSUSE -> http://packman.links2linux.de
  Mesa-libEGL1               openSUSE -> http://packman.links2linux.de
  Mesa-libGL1                openSUSE -> http://packman.links2linux.de
  Mesa-libglapi0             openSUSE -> http://packman.links2linux.de
  Mesa-vulkan-device-select  openSUSE -> http://packman.links2linux.de

7 packages to upgrade, 7  to change vendor.

Package download size:
            |      23.7 MiB  overall package size
       0 B  |  -   23.7 MiB  already in cache

Package install size change:
              |     125.3 MiB  required by packages that will be installed
   120.0 KiB  |  -  125.2 MiB  released by packages that will be removed

Backend:  classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
In cache Mesa-vulkan-device-select-24.3.1-1699.399.pm.1.x86_64.rpm                                                                                                                                  (1/7),  81.2 KiB    
In cache Mesa-libglapi0-24.3.1-1699.399.pm.1.x86_64.rpm                                                                                                                                             (2/7),  79.5 KiB    
In cache Mesa-dri-24.3.1-1699.399.pm.1.x86_64.rpm                                                                                                                                                   (3/7),   9.7 MiB    
In cache Mesa-libEGL1-24.3.1-1699.399.pm.1.x86_64.rpm                                                                                                                                               (4/7), 184.6 KiB    
In cache Mesa-24.3.1-1699.399.pm.1.x86_64.rpm                                                                                                                                                       (5/7),  60.8 KiB    
In cache Mesa-libGL1-24.3.1-1699.399.pm.1.x86_64.rpm                                                                                                                                                (6/7), 202.1 KiB    
In cache Mesa-gallium-24.3.1-1699.399.pm.1.x86_64.rpm                                                                                                                                               (7/7),  13.3 MiB    

Checking for file conflicts: .....................................................................................................................................................................................[done]
(1/7) Installing: Mesa-vulkan-device-select-24.3.1-1699.399.pm.1.x86_64 ..........................................................................................................................................[done]
(2/7) Installing: Mesa-libglapi0-24.3.1-1699.399.pm.1.x86_64 .....................................................................................................................................................[done]
(3/7) Installing: Mesa-dri-24.3.1-1699.399.pm.1.x86_64 ...........................................................................................................................................................[done]
(4/7) Installing: Mesa-libEGL1-24.3.1-1699.399.pm.1.x86_64 .......................................................................................................................................................[done]
(5/7) Installing: Mesa-24.3.1-1699.399.pm.1.x86_64 ...............................................................................................................................................................[done]
(6/7) Installing: Mesa-libGL1-24.3.1-1699.399.pm.1.x86_64 ........................................................................................................................................................[done]
(7/7) Installing: Mesa-gallium-24.3.1-1699.399.pm.1.x86_64 .......................................................................................................................................................[done]
Running post-transaction scripts .................................................................................................................................................................................[done]
There are running programs which still use files and libraries deleted or updated by recent upgrades. They should be restarted to benefit from the latest updates. Run 'zypper ps -s' to list these programs.

Please let me know if you need to see anything else. Thank you!

I cannot reproduce it.

The following 41 package updates will NOT be installed:
  Mesa                     
    24.3.1-1699.399.pm.1                    x86_64  Packman_Tumbleweed
    http://packman.links2linux.de
...

And it does not need any locks - zypper does not switch vendor by default. Looks like you changed default settings, in which case you need to describe what you did.

I don’t believe I’ve changed anything, but I did install Tumbleweed via GeckoLinux. I looked in the zypper.conf, and I don’t see a change to solver.allowVendorChange.

I pasted my /etc/zypp/zypper.conf here.

Are there other ways in which zypper would persistently try to change vendors?`

# Valid values:  boolean
## Default value: true
##
# solver.dupAllowVendorChange = true

Default zypper installation in openSUSE comes with

## Default value: true
##
solver.dupAllowVendorChange = false

So you do not use Tumbleweed. You use another distribution based on Tumbleweed. You should have tagged your post as “other” instead of misleading everyone.

I can’t believe I missed that option. Setting that to false works. Thank you for the help!

I tagged it as Tumbleweed because I am running Tumbleweed:

❯ cat /etc/os-release
NAME="openSUSE Tumbleweed"
# VERSION="20241206"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20241206"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20241206:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20241206"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"

GeckoLinux isn’t its own distro. It’s just an alternative installer and configuration for Tumbleweed. Once its installer is done, it’s just Tumbleweed. It doesn’t have its own repos. I believe you can get the same system from using the YaST installer or agama and applying the same post-installation configuration.

But the GeckoLinux image is over two years old, so maybe the zypp config is different now or perhaps that’s one of their post-installation configurations. In any case, I agree that I should have mentioned GeckoLinux installation at the start, so I apologize for that.

Thank you again for your help.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.