Conflict in openSUSE-2023-116-1: Recommended update for llvm15

Strategies differ. Many users try to answer questions asked by zypper update or zypper dist-upgrade. I switched to unattended background operation.

On rare occasions zypper --non-interactive dist-upgrade will fail. Minimal manual intervention will fix these issues such as openSUSE Tumbleweed upgrade 20221228-0 -> 20221229-0 failed

  1. I turn off default installation of all recommended package for zypper dist-upgrade. This avoids most potential conflicts:
erlangen:~ # zypper --non-interactive install-new-recommends --dry-run --recommends 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 335 NEW packages are going to be installed:
  Mesa-demo-egl Mesa-libva NetworkManager-bluetooth NetworkManager-dns-bind NetworkManager-dns-dnsmasq NetworkManager-tui NetworkManager-wwan PackageKit PackageKit-backend-zypp PackageKit-branding-openSUSE PackageKit-gstreamer-plugin
  PackageKit-gtk3-module PackageKit-lang accerciser accerciser-lang accerciser-plugin-IPython aha alsa alsa-oss alsa-plugins alsa-plugins-speexrate alsa-plugins-upmix alsa-ucm-conf alsa-utils appmenu-gtk-module-common
  appmenu-gtk2-module appmenu-gtk3-module at-spi2-core at-spi2-core-lang blender-demo bluez-cups cpupower-bash-completion cryptsetup-doc debuginfod-profile discover-backend-packagekit dvdauthor dvgrab ethtool-bash-completion filelight
  filelight-lang flatpak-remote-flathub fwupd-bash-completion gcr3-ssh-askpass gdal-bash-completion gdk-pixbuf-loader-libheif gimp-plugin-aa git-cvs gnome-themes-accessibility gnome-themes-accessibility-gtk2 google-noto-coloremoji-fonts
  gtk2-engine-hcengine gtk4-branding-openSUSE gtk4-metatheme-breeze gtk4-metatheme-greybird-geeko hwloc-devel icewm icewm-config-upstream icewm-default icewm-lang iproute2-bash-completion jupyter-ipyparallel
  jupyter-jupyter_core-filesystem jupyter-jupyterlab jupyter-jupyterlab-filesystem jupyter-jupyterlab-pygments jupyter-jupyterlab-rtc jupyter-jupyterlab-widgets jupyter-nbclassic jupyter-nbconvert jupyter-notebook
  jupyter-notebook-filesystem jupyter-notebook-shim jupyter-server-fileid jupyter-server-terminals jupyter-widgetsnbextension kcm_flatpak kcm_flatpak-lang kguiaddons lastlog2 libFLAC++10-x86-64-v3 libFLAC12-x86-64-v3
  libQt5WebView5-imports libappmenu-gtk2-parser0 libappmenu-gtk3-parser0 libatopology2 libavcodec57 libavformat57 libavutil55 libbabl-0_1-0-x86-64-v3 libboost_atomic1_82_0-x86-64-v3 libboost_date_time1_82_0-x86-64-v3
  libboost_filesystem1_82_0-x86-64-v3 libboost_iostreams1_82_0-x86-64-v3 libboost_locale1_82_0-x86-64-v3 libboost_program_options1_82_0-x86-64-v3 libboost_regex1_82_0-x86-64-v3 libboost_system1_82_0-x86-64-v3
  libboost_thread1_82_0-x86-64-v3 libboost_wave1_82_0-x86-64-v3 libbrotlicommon1-x86-64-v3 libbrotlidec1-x86-64-v3 libbrotlienc1-x86-64-v3 libbz2-1-x86-64-v3 libcdt5 libcgraph6 libdb-4_8-x86-64-v3 libevent-devel libfaac0
  libgcrypt20-x86-64-v3 libgvc6 libheif-rav1e libheif-svtenc libhogweed6-x86-64-v3 libiec61883-0 libiscsi9-x86-64-v3 libjaylink libjpeg8-x86-64-v3 libjsoncpp25-x86-64-v3 libjxl0_8-x86-64-v3 liblastlog2-1 liblz4-1-x86-64-v3
  liblzma5-x86-64-v3 liblzo2-2-x86-64-v3 libmbedcrypto14-x86-64-v3 libmbedtls19-x86-64-v3 libmbedx509-5-x86-64-v3 libminizip1-x86-64-v3 libmng2-x86-64-v3 libmp3lame0-x86-64-v3 libmpath0 libnettle8-x86-64-v3 libnewt0_52
  libopenjp2-7-x86-64-v3 libopenssl3-x86-64-v3 libpackagekit-glib2-18 libpathplan4 libpng16-16-x86-64-v3 libpostproc54 libproxy1-pacrunner-duktape libqt5-qtspeech-plugin-speechd libsqlite3-0-x86-64-v3 libswresample2 libtalloc2-x86-64-v3
  libtommath1-x86-64-v3 libturbojpeg0-x86-64-v3 libvorbis0-x86-64-v3 libvorbisenc2-x86-64-v3 libvorbisfile3-x86-64-v3 libwnck-3-0 libwnck-lang libwtmpdb0 libxmlb2-x86-64-v3 libyui-qt-graph16 libz1-x86-64-v3 libzopfli1
  libzopfli1-x86-64-v3 libzopflipng1 libzopflipng1-x86-64-v3 libzstd1-x86-64-v3 lightdm-bash-completion multipath-tools munge nodejs-common nodejs20 npm20 nvme-cli-bash-completion openssh-askpass-gnome pam_kwallet pam_kwallet-common
  pcre2-doc perl-DBD-SQLite perl-File-FcntlLock perl-RPM2 perlref phonon4qt5-backend-gstreamer phonon4qt5-backend-gstreamer-lang php8-ctype php8-dom php8-iconv php8-openssl php8-pdo php8-sqlite php8-tokenizer php8-xmlreader
  php8-xmlwriter pipewire-alsa plasma5-pk-updates plasma5-pk-updates-lang pmix-devel pmix-headers pmix-plugin-munge power-profiles-daemon proj-data-mx proj-data-pl proj-data-za python-rpm-generators python-rpm-macros
  python-tqdm-bash-completion python3-talloc-x86-64-v3 python310-Babel python310-Genshi python310-Jinja2 python310-MarkupSafe python310-PySocks python310-QtPy python310-Send2Trash python310-aiofiles python310-aiosqlite
  python310-argon2-cffi python310-argon2-cffi-bindings python310-arrow python310-asttokens python310-atspi python310-backcall python310-bleach python310-click python310-colorama python310-comm python310-dbm python310-debugpy
  python310-entrypoints python310-exceptiongroup python310-executing python310-fastjsonschema python310-fqdn python310-gevent python310-gmpy2 python310-greenlet python310-h2 python310-hpack python310-hyperframe python310-ipykernel
  python310-ipyparallel python310-ipython python310-ipython_genutils python310-ipywidgets python310-isoduration python310-jedi python310-json5 python310-jsonpointer python310-jsonschema python310-jsonschema-format-nongpl
  python310-jupyter python310-jupyter-client7 python310-jupyter-collaboration python310-jupyter-core python310-jupyter-events python310-jupyter-server python310-jupyter-server-fileid python310-jupyter-server-terminals
  python310-jupyter-ydoc python310-jupyter_console python310-jupyterlab python310-jupyterlab-pygments python310-jupyterlab-server python310-jupyterlab-widgets python310-markdown-it-py python310-matplotlib-inline python310-mdurl
  python310-mistune python310-mpmath python310-munkres python310-nbclassic python310-nbclient python310-nbconvert python310-nbformat python310-nest-asyncio python310-notebook python310-notebook-shim python310-pandocfilters
  python310-parso python310-pexpect python310-pickleshare python310-pip python310-platformdirs python310-pluggy python310-prometheus-client python310-prompt_toolkit python310-ptyprocess python310-pure-eval python310-pycares
  python310-pyftpdlib python310-pyrsistent python310-pysendfile python310-pytest python310-python-json-logger python310-python-xlib python310-pyzmq python310-qtconsole python310-reportlab python310-rfc3339-validator
  python310-rfc3986-validator python310-rich python310-simplejson python310-stack-data python310-sympy python310-terminado python310-tinycss2 python310-tomli python310-tornado6 python310-tqdm python310-traitlets python310-unicodedata2
  python310-uri-template python310-webcolors python310-websocket-client python310-widgetsnbextension python310-y-py python310-ypy-websocket python310-zope.event python310-zopfli qt6-imageformats qt6-platformtheme-gtk3
  qt6-printsupport-cups qt6-translations rclone-bash-completion slurm-munge socat sox sqlite3-devel superlu_6_0_0-gnu-hpc-doc systemd-coredump transcode typelib-1_0-Atspi-2_0 typelib-1_0-Rsvg-2_0 typelib-1_0-Wnck-3_0 udiskie-lang
  whois-bash-completion wtmpdb xclock xdg-menu xscreensaver xscreensaver-data xscreensaver-lang yast2-theme-breeze

335 new packages to install.
Overall download size: 123.3 MiB. Already cached: 125.7 KiB. After the operation, additional 477.3 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y

Checking for file conflicts: (1 skipped) .............................................................................................................................................................................................[done]
Warning: 334 packages had to be excluded from file conflicts check because they are not yet downloaded.

    Note: Checking for file conflicts requires not installed packages to be downloaded in advance in
    order to access their file lists. See option '--download-in-advance / --dry-run --download-only'
    in the zypper manual page for details.

erlangen:~ # 
  1. When encountering conflicts I check for unnneded packages:
 erlangen:~ # zypper packages --unneeded 
Loading repository data...
Reading installed packages...
S | Repository             | Name                 | Version   | Arch
--+------------------------+----------------------+-----------+-------
i | Haupt-Repository (OSS) | update-desktop-files | 84.87-6.2 | noarch
erlangen:~ # zypper remove --clean-deps update-desktop-files
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
  update-desktop-files

1 package to remove.
After the operation, 16.6 KiB will be freed.
Continue? [y/n/v/...? shows all options] (y): 
(1/1) Removing update-desktop-files-84.87-6.2.noarch .................................................................................................................................................................................[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.
 
erlangen:~ # 
  1. In case of remaining issues I consider removing the conflicting packages.

Conclusion

Answering questions posed by zypper may make sense, but in most cases better options are available.

In the nutshell, the problem is that official (not community) Update repository of openSUSE Backports currently contains packages:
libclang13-15.0.7-bp154.2.1.x86_64.rpm and qt5-creator-7.0.2-bp154.2.3.1.x86_64.rpm which are conflicting. Moreover, the libclang13 update to 15.0.7 is recommended by YaST auto-updater.

You do not notice the problem in zypper, as by default it just will not install those most recent packages. Instead, it finds older not conflicting versions elsewhere (e.g. main repo). In your post #2 it is clearly seen, zypper proposes installation of libclang13-13.0.1, even though 15.0.7 version is available. Yes, we can live with this, but I’d like to have all recommended patches by SUSE team.

The bug is fixed now. Thank you all.