Error updating whonix-ws-16

I just installed the Whonix 16 templates and I’m trying to update whonix-ws-16 (templateVM) using the Qubes update tool. I’m getting the following error:

EDIT: I’ve managed to update the template with ‘sudo apt upgrade’ but I’m still getting the error when trying to update using the qubes update utility.

Error on updating whonix-ws-16: Command ‘[‘sudo’, ‘qubesctl’, ‘–skip-dom0’, ‘–targets=whonix-ws-16’, ‘–show-output’, ‘state.sls’, ‘update.qubes-vm’]’ returned non-zero exit status 20
whonix-ws-16:
----------
_error:
Failed to return clean data
retcode:
1
stderr:
Traceback (most recent call last):
File “/var/tmp/.root_dd8a91_salt/salt-call”, line 27, in
salt_call()
File “/var/tmp/.root_dd8a91_salt/pyall/salt/scripts.py”, line 445, in salt_call
client.run()
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/call.py”, line 48, in run
caller = salt.cli.caller.Caller.factory(self.config)
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 64, in factory
return ZeroMQCaller(opts, **kwargs)
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 329, in init
super(ZeroMQCaller, self).init(opts)
File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 89, in init
self.minion = salt.minion.SMinion(opts)
File “/var/tmp/.root_dd8a91_salt/pyall/salt/minion.py”, line 912, in init
opts[“grains”] = salt.loader.grains(opts)
File “/var/tmp/.root_dd8a91_salt/pyall/salt/loader.py”, line 825, in grains
ret = funcskey
File “/var/tmp/.root_dd8a91_salt/pyall/salt/grains/core.py”, line 2384, in ip_fqdn
ret[“ipv6”] = salt.utils.network.ip_addrs6(include_loopback=True)
File “/var/tmp/.root_dd8a91_salt/pyall/salt/utils/network.py”, line 1353, in ip_addrs6
return _ip_addrs(interface, include_loopback, interface_data, “inet6”)
File “/var/tmp/.root_dd8a91_salt/pyall/salt/utils/network.py”, line 1333, in _ip_addrs
ret.add(addr)
File “/usr/lib/python3.9/ipaddress.py”, line 1920, in hash
return hash((self._ip, self._scope_id))
AttributeError: _scope_id
stdout:

Does anybody now what’s happening?

I’m facing the same problem.

From what I understand, this is a problem with Salt (?) which might be solved by migrating to a fedora-33 based UpdateVM.

However, installing the fedora-33 templates as in Fedora 33 TemplateVMs available | Qubes OS doesn’t seem to work for me:

$ sudo qubes-dom0-update qubes-template-fedora-33
Using sys-firewall as UpdateVM to download updates for DOM0; this may take some time...
Warning: Enforcing GPG signature check globally as per active RPM security policy (see 'gpgcheck' in dnf.conf(5) for how to quelch this message)
Last metadat expiration check: 1 day, 3:45:00 ago on Sun Oct 17 07:23:12 2021. All matches were filtered out by exclude filtering for argument: qubes-template-fedora-33
Error: Unable to find a match: qubes-template-fedora-33

Seems something is broken here, but I couldn’t find out what it is by now…

So, I managed to fix it. What I did:

That’s it. Now the update of whonix-ws-16 works as it should.

2 Likes

That worked! Thanks a lot.

On a side note, I couldn’t update the new fedora-33 template without changing the default-mgmt-dvm to fedora-33 as well.

What’s the purpose of the default-mgmt-dvm if I may ask?

When you use salt, a mgmt disposable is started which
actually runs salt in the target qube.
The default-mgmt-dvm is the template for that disposable.

salt is e.g. used in the Qubes Update tool.

What is salt?

on project website

What is Salt? Its automation, infrastructure management, its data-driven orchestration, remote execution, configuration management, and so much more.

1 Like

Salt is used in Qubes to provision the initial qubes after install, and
in the Qubes update tool.
You can use salt yourself to set up your qubes and templates as you
will - move to another Qubes machine, download the (simple) state
files, and run them, to recreate your set-up.
I have a very simple introduction to using salt in Qubes at GitHub - unman/notes

1 Like

I’ve got similar errors updating whonix-ws-16 on Qubes 4.1 and fedora-38 as default-mgmt-dvm today.

What can be done in such a case?

See here: