DNF package management - not updating packages potentially due to conflicts

I have accumulated a lot of packages that do not seem to want to update, a lot more than I would think.

dnf check-update results in:

debugedit.x86_64                    5.0-18.fc40       updates
dwz.x86_64                          0.15-8.fc40       updates
firewall-config.noarch              2.1.4-2.fc40      updates
firewalld.noarch                    2.1.4-2.fc40      updates
firewalld-filesystem.noarch         2.1.4-2.fc40      updates
gnome-bluetooth.x86_64              1:46.2-1.fc40     updates
gnome-bluetooth-libs.x86_64         1:46.2-1.fc40     updates
gstreamer1-plugins-good.x86_64      1.24.8-1.fc40     updates
gstreamer1-plugins-good-gtk.x86_64  1.24.8-1.fc40     updates
gstreamer1-plugins-good-qt.x86_64   1.24.8-1.fc40     updates
gstreamer1-plugins-good-qt6.x86_64  1.24.8-1.fc40     updates
ibus-m17n.x86_64                    1.4.33-1.fc40     updates
kernel.x86_64                       6.11.4-201.fc40   updates
kernel-core.x86_64                  6.11.4-201.fc40   updates
kernel-devel.x86_64                 6.11.4-201.fc40   updates
kernel-devel-matched.x86_64         6.11.4-201.fc40   updates
kernel-modules.x86_64               6.11.4-201.fc40   updates
kernel-modules-core.x86_64          6.11.4-201.fc40   updates
kernel-modules-extra.x86_64         6.11.4-201.fc40   updates
libshaderc.x86_64                   2024.3-1.fc40     updates
libuv.x86_64                        1:1.49.2-1.fc40   updates
mediawriter.x86_64                  5.1.2-1.fc40      updates
perf.x86_64                         6.11.4-201.fc40   updates
python3-firewall.noarch             2.1.4-2.fc40      updates
qadwaitadecorations-qt6.x86_64      0.1.5-7.fc40      updates
qt6-qt5compat.x86_64                6.7.2-1.fc40      updates
qt6-qtbase.x86_64                   6.7.2-6.fc40      updates
qt6-qtbase-common.noarch            6.7.2-6.fc40      updates
qt6-qtbase-gui.x86_64               6.7.2-6.fc40      updates
qt6-qtdeclarative.x86_64            6.7.2-2.fc40      updates
qt6-qtmultimedia.x86_64             6.7.2-1.fc40      updates
qt6-qtnetworkauth.x86_64            6.7.2-1.fc40      updates
qt6-qtquick3d.x86_64                6.7.2-3.fc40      updates
qt6-qtquicktimeline.x86_64          6.7.2-1.fc40      updates
qt6-qtshadertools.x86_64            6.7.2-1.fc40      updates
qt6-qtsvg.x86_64                    6.7.2-1.fc40      updates
qt6-qtwayland.x86_64                6.7.2-4.fc40      updates
qt6-qtwebsockets.x86_64             6.7.2-1.fc40      updates
spirv-tools-libs.x86_64             2024.3-3.fc40     updates
vulkan-headers.noarch               1.3.296.0-1.fc40  updates
vulkan-loader.i686                  1.3.296.0-1.fc40  updates
vulkan-loader.x86_64                1.3.296.0-1.fc40  updates
vulkan-loader-devel.x86_64          1.3.296.0-1.fc40  updates
wireshark.x86_64                    1:4.2.8-1.fc40    updates
wireshark-cli.x86_64                1:4.2.8-1.fc40    updates

When I run sudo dnf update -y

Dependencies resolved.

 Problem: package package-foo-2.24.2~rc20241007192838-1.x86_64 from @System requires libQt6Core.so.6(Qt_6.6_PRIVATE_API)(64bit), but none of the providers can be installed
  - cannot install both qt6-qtbase-6.7.2-6.fc40.x86_64 from updates and qt6-qtbase-6.6.2-7.fc40.x86_64 from @System
  - cannot install both qt6-qtbase-6.7.2-6.fc40.x86_64 from updates and qt6-qtbase-6.6.2-7.fc40.x86_64 from fedora
  - cannot install the best update candidate for package qt6-qtbase-6.6.2-7.fc40.x86_64
  - problem with installed package package-foo-2.24.2~rc20241007192838-1.x86_64
===============================================================================================================================================================================================================================================
 Package                                                    Architecture                                           Version                                                       Repository                                               Size
===============================================================================================================================================================================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 qt6-qtbase                                                 x86_64                                                 6.7.2-6.fc40                                                  updates                                                 4.1 M

Transaction Summary
===============================================================================================================================================================================================================================================
Skip  1 Package

Nothing to do.
Complete!

This makes it seem like only the Qt related packages are affected; however, I’m a lot more concerned now because I can’t update the kernel among other packages? Any clue how I can go about fixing this?

If I use --allowerasing, it will uninstall my package-foo, which I need to keep on my system.

If I am not mistaken, your package package-foo seems to require version 6.6 of qt libraries, hence the error message.

1 Like

The package package-foo requires version 6.6 of qt6-qtbase so that package can’t be upgraded. and that prevents the other packages to be upgraded as well.

So you have to live with it or get a new version of package-foo compiled with the new version of qt6.

1 Like

I agree 100% with @vekruse
It seems there is a new version of qt6-qtbase that performs an update on that library file. In fact I see several updated versions of that package with a quick dnf command. dnf provides '*/libQt6Core.so.6*' returns this as the latest

qt6-qtbase-6.7.2-6.fc40.x86_64 : Qt6 - QtBase components
Repo        : updates-archive
Matched from:
Filename    : /usr/lib64/libQt6Core.so.6
Filename    : /usr/lib64/libQt6Core.so.6.7.2

It would appear you either need to update package-foo to use the newer qt6 library or perform your system update with the --skip broken command to bypass this dependency issue and not update the already installed qt6 packages.

1 Like

Thank you, the --skip-broken actually allowed me to update many packages that it would not previously, including my kernel. Now the dnf check-update looks like it “usually” does where I have a set of packages that dont seem to be able to update with this dependency problem.

I had to manually install package-foo with an .rpm. Is there a realistic path forward to convert this .rpm into a flatpak? Or would it be more realistic to install it in a docker (in my case podman) container? This is a work specific VPN app, and it runs a GUI as you’d expect with those Qt dependencies. I’ve had trouble before getting GUI’s to work via podman containers; but I do have many flatpaks that are GUI’s.

As has already been suggested, contact the developer of that package-foo app and suggest they update the dependencies. Since this is work related maybe your IT staff at work could assist.

If you did not develop that app nor package it, the easiest path would be communication with the developers. Developers who do not keep their packages current are doing a disservice to the users.

You could remember to always use --skip-broken with updates and that will work for some time, but not forever as things are continually updated.

1 Like

Added dnf, workstation