How to manage these update conflicts?

Today I run “zypper dup” and got the following information about conflicts/problems (see below). I did not proceed, as I wish to figure out what is happening and how to solve it.

Apparently, the correct libQt6Core cannot be found:

Computing distribution upgrade...
10 Problems:
Problem:  the installed python38-PyQt6-6.1.1-3.4.x86_64 requires  'libQt6Core.so.6(Qt_6.1.3_PRIVATE_API)(64bit)', but this requirement  cannot be provided
Problem: the installed  qt6-quick3d-6.0.3-1.11.x86_64 requires  'libQt6Gui.so.6(Qt_6.1.3_PRIVATE_API)(64bit)', but this requirement  cannot be provided
Problem: the installed libQt6Gui6-6.1.3-1.3.x86_64 requires 'libQt6DBus6 = 6.1.3', but this requirement cannot be provided
Problem:  the installed libQt6Gui6-6.1.3-1.3.x86_64 requires  'libQt6OpenGL.so.6(Qt_6.1.3_PRIVATE_API)(64bit)', but this requirement  cannot be provided
Problem: the installed libQt6OpenGL6-6.1.3-1.3.x86_64 requires 'libQt6Widgets6 = 6.1.3', but this requirement cannot be provided
Problem:  the to be installed libQt6Concurrent6-6.2.0-1.1.x86_64 requires  'libQt6Core6 = 6.2.0', but this requirement cannot be provided
Problem:  the to be installed libQt6Network6-6.2.0-1.1.x86_64 requires  'libQt6Core6 = 6.2.0', but this requirement cannot be provided
Problem: the to be installed libQt6Sql6-6.2.0-1.1.x86_64 requires 'libQt6Core6 = 6.2.0', but this requirement cannot be provided
Problem:  the to be installed libQt6Test6-6.2.0-1.1.x86_64 requires 'libQt6Core6 =  6.2.0', but this requirement cannot be provided
Problem: the to be installed libQt6Xml6-6.2.0-1.1.x86_64 requires 'libQt6Core6 = 6.2.0', but this requirement cannot be provided

Problem:  the installed python38-PyQt6-6.1.1-3.4.x86_64 requires  'libQt6Core.so.6(Qt_6.1.3_PRIVATE_API)(64bit)', but this requirement  cannot be provided
  deleted providers: libQt6Core6-6.1.3-1.3.x86_64
 Solution 1: deinstallation of python38-PyQt6-6.1.1-3.4.x86_64
 Solution 2: keep obsolete libQt6Core6-6.1.3-1.3.x86_64
 Solution 3: break python38-PyQt6-6.1.1-3.4.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/s/r/c/d/?] (c):

I see that libQt6 is present, but there may be some confusion regarding its version number:

# zypper if libQt6Core6
Loading repository data...
Reading installed packages...


Information for package libQt6Core6:
------------------------------------
Repository     : openSUSE-20210131-0
Name           : libQt6Core6
Version        : 6.2.0-1.1
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 5.7 MiB
Installed      : Yes (automatically)
Status         : out-of-date (version 6.1.3-1.3 installed)
Source package : qt6-base-6.2.0-1.1.src
Summary        : Qt 6 Core library
Description    : 
    The Qt 6 Core library. It adds these features to C++:

    * a mechanism for object communication called signals and slots
    * queryable and designable object properties
    * hierarchical and queryable object trees that organize
    * object ownership in a natural way with guarded pointers (QPointer)
    * a dynamic cast that works across library boundaries

Is this a version conflict with the packages or just a confusion with version naming?

How con this be overcome?

Thanks in advance.

Just for info, these are my repositories in use:

Repository priorities in effect:                                                                                                                              (See 'zypper lr -P' for details)
      90 (raised priority)  :  1 repository
      99 (default priority) :  8 repositories

#  | Alias               | Name                                                 | Enabled | GPG Check | Refresh
---+---------------------+------------------------------------------------------+---------+-----------+--------
 1 | ms-teams            | ms-teams                                             | Yes     | (r ) Yes  | No
 2 | network_im_signal   | Signal Messaging Devel Project (openSUSE_Tumbleweed) | Yes     | (r ) Yes  | No
 3 | openSUSE-20210131-0 | openSUSE-20210131-0                                  | Yes     | (r ) Yes  | Yes
 4 | packman             | packman                                              | Yes     | (r ) Yes  | Yes
 5 | repo-debug          | openSUSE-Tumbleweed-Debug                            | No      | ----      | ----
 6 | repo-non-oss        | Main Repository (NON-OSS)                            | Yes     | (r ) Yes  | Yes
 7 | repo-oss            | Main Repository (OSS)                                | Yes     | (r ) Yes  | Yes
 8 | repo-source         | openSUSE-Tumbleweed-Source                           | No      | ----      | ----
 9 | repo-update         | Main Update Repository                               | Yes     | (r ) Yes  | Yes
10 | skype-stable        | skype (stable)                                       | Yes     | (r ) Yes  | Yes
11 | teams               | teams                                                | Yes     | (r ) Yes  | Yes

Add the first becasue it may be important. If I run “zypper up” it says that a bunch of things are not going to be updated, including the above cited package libQt6 and related.

Why? I have no locks defined at all.

# zypper up
Loading repository data...
Reading installed packages...

The following 82 package updates will NOT be installed:
  libheif1 libpipewire-0_3-0 libQt6Concurrent6 libQt6Core6 libQt6DBus6 libQt6Designer6 libQt6DesignerComponents6 libQt6Gui6 libQt6Help6 libQt6LabsAnimation6 libQt6LabsFolderListModel6
  libQt6LabsQmlModels6 libQt6LabsSettings6 libQt6LabsSharedImage6 libQt6LabsWavefrontMesh6 libQt6Network6 libQt6NetworkAuth6 libQt6OpenGL6 libQt6OpenGLWidgets6 libQt6PrintSupport6 libQt6Qml6
  libQt6QmlLocalStorage6 libQt6QmlModels6 libQt6QmlWorkerScript6 libQt6Quick6 libQt6QuickLayouts6 libQt6QuickParticles6 libQt6QuickShapes6 libQt6QuickTest6 libQt6QuickWidgets6
  libQt6ShaderTools6 libQt6Sql6 libQt6Svg6 libQt6SvgWidgets6 libQt6Test6 libQt6UiTools6 libQt6Widgets6 libQt6Xml6 libvpx6 pipewire pipewire-lang pipewire-modules pipewire-spa-plugins-0_2
  pipewire-spa-tools pipewire-tools qt6-base-common-devel qt6-base-devel qt6-concurrent-devel qt6-core-devel qt6-core-private-devel qt6-dbus-devel qt6-declarative-imports
  qt6-declarative-tools qt6-designer-devel qt6-gui-devel qt6-help-devel qt6-imageformats qt6-networkauth-devel qt6-network-devel qt6-opengl-devel qt6-openglwidgets-devel
  qt6-platformtheme-gtk3 qt6-printsupport-cups qt6-printsupport-devel qt6-qml-devel qt6-qmlmodels-devel qt6-quick-devel qt6-quickwidgets-devel qt6-sql-devel qt6-sql-sqlite qt6-svg-devel
  qt6-test-devel qt6-tools qt6-tools-assistant qt6-tools-designer qt6-tools-devel qt6-tools-helpgenerators qt6-tools-linguist qt6-tools-qdbus qt6-tools-qdoc qt6-widgets-devel qt6-xml-devel

The following 191 packages are going to be upgraded:
  blog btrfsprogs btrfsprogs-udev-rules chromium cpp cpp10 cpp11 dblatex desktop-file-utils dracut dracut-mkinitrd-deprecated gamin-server gcc gcc10 gcc10-c++ gcc10-fortran gcc10-locale
  gcc11 gcc11-c++ gcc11-fortran gcc11-locale gcc-c++ gcc-fortran gegl-0_4 gegl-0_4-lang iio-sensor-proxy kernel-firmware-all kernel-firmware-amdgpu kernel-firmware-ath10k
  kernel-firmware-ath11k kernel-firmware-atheros kernel-firmware-bluetooth kernel-firmware-bnx2 kernel-firmware-brcm kernel-firmware-chelsio kernel-firmware-dpaa2 kernel-firmware-i915
  kernel-firmware-intel kernel-firmware-iwlwifi kernel-firmware-liquidio kernel-firmware-marvell kernel-firmware-media kernel-firmware-mediatek kernel-firmware-mellanox
  kernel-firmware-mwifiex kernel-firmware-network kernel-firmware-nfp kernel-firmware-nvidia kernel-firmware-platform kernel-firmware-prestera kernel-firmware-qcom kernel-firmware-qlogic
  kernel-firmware-radeon kernel-firmware-realtek kernel-firmware-serial kernel-firmware-sound kernel-firmware-ti kernel-firmware-ueagle kernel-firmware-usb-network knewstuff libamd2 libasan6
  libatomic1 libblogger2 libbtrfs0 libcamd2 libccolamd2 libcholmod3 libclc libcolamd2 liberation-fonts libfam0-gamin libgbm1 libgbm-devel libgcc_s1 libgegl-0_4-0 libgfortran5 libgomp1
  libinput10 libinput-udev libitm1 libixml11 libKF5NewStuff5 libKF5NewStuff5-lang libKF5NewStuffCore5 liblsan0 libmfx1 libnss_usrfiles2 libobjc4 libOSMesa8 libOSMesa-devel libpipewire-0_3-0
  libportaudio2 libpython2_7-1_0 libquadmath0 librav1e0 libreoffice libreoffice-base libreoffice-calc libreoffice-draw libreoffice-filters-optional libreoffice-gnome libreoffice-gtk3
  libreoffice-icon-themes libreoffice-impress libreoffice-l10n-en libreoffice-l10n-es libreoffice-l10n-sv libreoffice-mailmerge libreoffice-math libreoffice-pyuno libreoffice-writer
  libsoup-3_0-0 libsoup-lang libsrtp2-1 libstdc++6 libstdc++6-devel-gcc10 libstdc++6-devel-gcc11 libstdc++6-pp-gcc10 libstdc++-devel libstorage-ng1 libstorage-ng-lang libstorage-ng-ruby
  libsuitesparseconfig5 libsystemd0 libtdb1 libtevent0 libtsan0 libubsan1 libudev1 libumfpack5 libupnp17 libva2 libva-drm2 libva-glx2 libva-wayland2 libva-x11-2 libvdpau_nouveau libzimg2
  Mesa Mesa-demo-x Mesa-devel Mesa-dri Mesa-dri-devel Mesa-dri-nouveau Mesa-gallium Mesa-KHR-devel Mesa-libEGL1 Mesa-libEGL-devel Mesa-libGL1 Mesa-libglapi0 Mesa-libglapi-devel
  Mesa-libGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel Mesa-libOpenCL Mesa-libva MozillaThunderbird MozillaThunderbird-translations-common nodejs15 npm15 openSUSE-release
  openSUSE-release-appliance-custom pipewire pipewire-lang pipewire-modules pipewire-spa-plugins-0_2 pipewire-spa-tools pipewire-tools publicsuffix python python3-tdb python3-tevent
  python-base python-xml qt6-docs-common qt6-macros qt6-translations signal-desktop syslinux systemd systemd-doc systemd-lang systemd-sysvinit sysvinit-tools ucode-amd udev xrdb
  yast2-alternatives yast2-installation yast2-storage-ng

The following product is going to be upgraded:
  openSUSE Tumbleweed  20211001-0 -> 20211005-0
    Product 'openSUSE Tumbleweed' requires to be updated by calling 'zypper dup'!

The following package is going to be REMOVED:
  systemd-logger

191 packages to upgrade, 1 to remove.
Overall download size: 967.0 MiB. Already cached: 0 B. After the operation, additional 71.4 MiB will be used.

    Consider to cancel:
    Product 'openSUSE Tumbleweed' requires to be updated by calling 'zypper dup'!

Best to show us repo output using…

zypper lr -d

You are correct, @deano_ferrari, here comes the output:

# zypper lr -d
#  | Alias               | Name                                                 | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                                 | Service
---+---------------------+------------------------------------------------------+---------+-----------+---------+----------+--------+-------------------------------------------------------------------------------------+--------
 1 | ms-teams            | ms-teams                                             | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://packages.microsoft.com/yumrepos/ms-teams/                                   | 
 2 | network_im_signal   | Signal Messaging Devel Project (openSUSE_Tumbleweed) | Yes     | (r ) Yes  | No      |   99     | rpm-md | https://download.opensuse.org/repositories/network:/im:/signal/openSUSE_Tumbleweed/ | 
 3 | openSUSE-20210131-0 | openSUSE-20210131-0                                  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/oss/                                   | 
 4 | packman             | packman                                              | Yes     | (r ) Yes  | Yes     |   90     | rpm-md | https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/                | 
 5 | repo-debug          | openSUSE-Tumbleweed-Debug                            | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/debug/tumbleweed/repo/oss/                             | 
 6 | repo-non-oss        | Main Repository (NON-OSS)                            | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/non-oss/                               | 
 7 | repo-oss            | Main Repository (OSS)                                | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/oss/                                   | 
 8 | repo-source         | openSUSE-Tumbleweed-Source                           | No      | ----      | ----    |   99     | NONE   | http://download.opensuse.org/source/tumbleweed/repo/oss/                            | 
 9 | repo-update         | Main Update Repository                               | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/tumbleweed/                                     | 
10 | skype-stable        | skype (stable)                                       | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://repo.skype.com/rpm/stable/                                                  | 
11 | teams               | teams                                                | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | https://packages.microsoft.com/yumrepos/ms-teams                                    | 


NOTE: I saw that repo #3 and #7 are the same, but taking one of them out does not change the problem.

Just for the record: I overcame these problems by first disabling the packman repo and then allowing zypper take care of things as it deemed best:

zypper dup --allow-vendor-change --force-resolution

So far, applications relying on Qt are running OK.

Packages in a repository are updated as soon as they are published and build OK. Not all packages are equal though, some prevent publishing a new snapshot, but not the one at hand.

Usually this means that some package is not currently building: https://build.opensuse.org/package/show/openSUSE%3AFactory/python-PyQt6

Best thing to do:

  • Cancel zypper dup and wait a few days, it goes away (I don’t think reporting an issue is warranted in this case)
  • If you absolutely need to proceed to upgrade some other package, then “keep obsolete” is possibly a reasonable choice

It’s curious how many folks feel compelled to take action in this screen. I’ll file an issue to improve wording a bit.

Asking zypper to perform “as it deemed best” is insane. It lacks context. Learn how to rollback snapshots just in case. Also “zypper up” is not a recommended approach. “zypper dup” always. Packman was not the issue and you probably lost multimedia functionality in Firefox.

Inevitably zypper reports update conflicts in my OpenSUSE Tumbleweed installation. In the past (when I was an absolute noob), I tried one of the options offered by zypper (e.g. deinstallation of package(s), ignoring dependencies, etc.) That often triggered other conflicts and ultimately an unstable or broken system, in my experience. What I’ve found better is a bit of patience and time until relevant packages in all my repositories are updated and/or dependencies fixed. It may take few days or even about a week before things seem to iron out by themselves. Wait a few days, clean the local zypper cache before refreshing and then attempt a dup:

$ sudo zypper cc -a
$ sudo zypper ref
$ sudo zypper dup

It’s a bit frustrating to wait and have a system potentially vulnerable. I also think of new users to OpenSUSE or Linux who wouldn’t know what to do or could bork their system.

I don’t see those very often. When I do see a conflict, I usually go with the option to keep an obsolete package. And yes, sometimes this will cause additional conflicts.

Having been out of the office for some weeks, I found that I had some 1164 updates waiting (now 1165). I am working on a project involving openFOAM, here is what I found when attempting to update:

  
Update Error
problem with the installed libcerf1-1.17-23.15.x86_64
the to be installed openfoam-selector-1.0.6-1.39.noarch requires 'perl(:MODULE_COMPAT_5.34.1)', but this requirement cannot be provided
nothing provides 'libboost_system.so.1.76.0()(64bit)' needed by the to be installed


From what I find in this thread, I draw the conclusion that I am advised not to try to solve the problem myself, but wait till there is a solution. If somebody has a better solution for my particular problem, I am all ears.

Now:
Would there be a way (‘alarm knob’) to inform that there is a problem with the update and the failure message itself ( ‘… by the to be installed’)?

Your openFOAM problem is something different. As it is in the science repository and the Tumbleweed support is kind of “experimental”…

Tumbleweed support should be regarded as a purely random event.

You can lock your openFoam packages so that you can update the rest of your system at least.
(Or remove openFOAM temporary and cross your fingers that the devs are able to create proper packages for TW in the future…)

Hi
The switch to perl 5.36.0 cause numerous fallouts from leaf packages, most just needed rebuilding, some needed patches applied. Looks like openfoam-selector rebuilt ok, if you have the science repo active. I would force a refresh and the use zypper -vvv dup to see if it now upgrades properly.

For libboost76 that has been long gone in Tumbleweed… at 79 these days…

Hi !

I have been able to make upgrades some 1100 objects, but I am giving up on openFOAM under Tumbleweed for the moment; removed openFOAM. Your reply was indeed most helpful: Thanks!

RGDS,
Jan Christian

Hi
So what were the issues with openFOAM? I’m guessing that was the only blocker?

I gather you dislike new packaging and provisioning models. But you should be able to get this tool running easily with podman, a stable distro image (Leap/Debian/etc) and one of x11docker/distrobox/toolbox.

Hi, you may have a point:

What I really dislike, is not being able running openFOAM under openSUSE. Tumbleweed seems to be some kind of a moving target, so I am contemplating switching to 15.4. The project I am working on has no explicit deadline, so I think I have the following options: 1) switch to 15.4 (an easy task?) 2) switch to Windows 10, or 3) go for podman.

Comments and suggestions are appreciated (as always).

You must weight your original reasons to go for Tumbleweed against your wish to have a stable environment for your project development. We can not do that for you, specially as we do not know why you choose for Tumbleweed on the development system in the first place.

The development project utilizing openFOAM started in May this year (months after I switched from 15.2 to Tumbleweed); that Tumbleweed potentially constitutes an unstable operating system - as you seem to imply - was unknown to me.

Was I am asking for is what would one having experience with openFOAM suggest is the better alternative: 1) switch to 15.4 (an easy task?) 2) switch to Windows 10, or 3) go for podman.

Jan Christian Anker

I did not really imply that Tumbleweed is “unstable” (at least I hope not). But there is a difference in the policy between Leap and Tumbleweed. And while I understand that Tumbleweed is general experienced as stable (in the meaning of having not may bugs released with new versions), it is still a rolling release. That means that from the point of view of a user there can be changes to experience with every new Tumbleweed snapshot.

For me, stability also means that I do not get a changed user interface of a program with a new snapshot, being it small or large. I get already fed up when two buttons in a GUI exchange position. The Tumbleweed user might love that, because it is the newest. So it is Leap for me. Getting surprises about once a year is enough.

Thanks for your reply! I have had enough ‘interesting’ experiences with Tumbleweed, so if I attempt to run openFOAM with openSUSE, it will be 15.4.

Jan Christian Anker