Dtc package from the latest update broke qemu?

HI all,

I have just did a pacman -Syu to update my system, and my qemu-kvm seems to have been broken. Searching around it seems to be related to the dtc 1.8.0-1.1.

Below are the output when I try to start any VMs in the Virtual Machine Manager (Apologies, if this is the wrong way to post error messages)

Error starting domain: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/bin/qemu-system-x86_64: undefined symbol: fdt_setprop, version LIBFDT_1.2

Traceback (most recent call last):
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 67, in cb_wrapper
callback(asyncjob, *args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 101, in tmpcb
callback(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
File “/usr/share/virt-manager/virtManager/object/libvirtobject.py”, line 57, in newfn
ret = fn(self, *args, **kwargs)
File “/usr/share/virt-manager/virtManager/object/domain.py”, line 1446, in startup
self._backend.create()
~~~~~~~~~~~~~~~~~~~~^^
File “/usr/lib/python3.14/site-packages/libvirt.py”, line 1401, in create
raise libvirtError(‘virDomainCreate() failed’)
libvirt.libvirtError: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/bin/qemu-system-x86_64: undefined symbol: fdt_setprop, version LIBFDT_1.2

If anyone has any idea how I can fix it, please let me know and thanks in advance.

that is already a known issue. dtc got reverted back in the Arch repo because of it.

@Zesko
Thanks!

Right, so then what do users do about this if they have already deployed the bad package? How do they downgrade or roll back the change?

A manual downgrade to the previous package version (which was stored in my cache) worked for me:

sudo pacman -U /var/cache/pacman/pkg/dtc-1.7.2-5.1-x86_64_v3.pkg.tar.zst

What do people do if they don’t have this cached?

Assuming that means your package is ‘newer than..’ when you -Syu then you can add an extra u to allow downgrades during sync;

sudo pacman -Syuu

I was missing /var/cache/pacman/pkg/dtc-1.7.2-5.1-x86_64_v3.pkg.tar.zst This downgrade worked in my case $ sudo pacman -Syy extra/dtc ;