Centos8 "dnf update" broken by qubes rpms

Hello,

“dnf update” on my centos8 template reports errors like:
“”"
Last metadata expiration check: 3:17:40 ago on Fri 16 Apr 2021 03:10:51 PM CEST.
Error:
Problem 1: cannot install the best update candidate for package qubes-core-agent-4.0.56-1.centos8.x86_64

  • nothing provides python38-daemon needed by qubes-core-agent-4.0.61-1.centos8.x86_64
  • nothing provides python38-dbus needed by qubes-core-agent-4.0.61-1.centos8.x86_64
  • nothing provides python38-gobject-base needed by qubes-core-agent-4.0.61-1.centos8.x86_64
  • nothing provides python38-pyxdg needed by qubes-core-agent-4.0.61-1.centos8.x86_64

    “”"

As can be seen in the spec file here:

Requires have this form:
Requires: python%{python3_pkgversion}-gobject-base
Requires: python%{python3_pkgversion}-dbus
Requires: python%{python3_pkgversion}-pyxdg
Requires: python%{python3_pkgversion}-daemon

For some reason, python3_pkgversion is set to 38, which means that Requires are:
python38-daemon
python38-dbus

However, there are no such packages in centos8 (or at least I could not find them!).
Default packages from centos8 are called python3-daemon, python3-dbus, … and use python3.6 system package.
For this reason, “dnf update” cannot install the new rpms from the repository (eg here):
https://ftp.acc.umu.se/mirror/qubes-os.org/repo/yum/r4.0/current/vm/centos8/rpm/

Can someone please help me ?

I think that either the python38-xxx rpms should be made available somewhere, or the build bot should use the system python and packages instead of python38.
In the meantime Centos8 “dnf update” is broken by qubes rpms.

Best,
Alpha

Hello again;

I eventually found this repository with the missing packages:
https://copr-be.cloud.fedoraproject.org/results/fepitre/epel-8-python38/

replacing “qubes” by “python38” in my
/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:fepitre:epel-8-qubes.repo
allowed the acces to the repository and dnf could find its missing packages.

There was a conflict for python3-docutils (many lines like below):
file /usr/bin/rst2xml from install of python38-docutils-0.16-3.el8.noarch conflicts with file from package python3-docutils-0.14-12.module_el8.3.0+562+e162826a.noarch
however since python3-docutils is not critical for my use of the VM , I just called
“rpm --erase python3-docutils --nodeps”
to “fix” this issue.

This is far from perfect, but at least “dnf update” works again on my centos8.

Best,
Alpha

You certainly have a too old CentOS 8 template before the switch to python38. Please install the latest one. Also, the COPR repository is to provision python38 dependencies for Qubes CentOS templates.