Unman's cacher: breaks fedora-40-xfce updates on fresh R4.2.3 install

On a 100% fresh QubesOS R4.2.3 installation, I added @unman 's 3isec repo and then installed the “3isec-qubes-task-manager” rpm, followed by running “qubes-task install cacher”.

The result is:

  1. the cacher works for Debian templates, but failed to install on the fedora-40-xfce template;
  2. moreover, it made the fedora-40-xfce template to stop updating;
  3. trying to run qubesctl (as per the cacher instructions) to remove the changes from the fedora-40-xfce template also fails (logs below)

It all seems to revolve around this error:

ModuleNotFoundError: No module named ‘backports’

… which reminds me of a warning that I’ve seen some time ago about ‘backports’ becoming obsolete.
Anyways… this is the bug report.

/var/log/qubes/mgmt-fedora-40-xfce.log

2024-11-28 19:16:27,782 calling ‘state.apply cacher.change_templates’…
2024-11-28 19:17:40,332 output: fedora-40-xfce:
2024-11-28 19:17:40,332 output: ----------
2024-11-28 19:17:40,332 output: _error:
2024-11-28 19:17:40,333 output: Failed to return clean data
2024-11-28 19:17:40,333 output: retcode:
2024-11-28 19:17:40,333 output: 1
2024-11-28 19:17:40,333 output: stderr:
2024-11-28 19:17:40,333 output: /var/tmp/.root_dd8a91_salt/pyall/salt/ext/tornado/util.py:246: SyntaxWarning: invalid escape sequence ‘\d’
2024-11-28 19:17:40,333 output: “”"Unescape a string escaped by re.escape.
2024-11-28 19:17:40,333 output: Traceback (most recent call last):
2024-11-28 19:17:40,333 output: File “/var/tmp/.root_dd8a91_salt/salt-call”, line 27, in
2024-11-28 19:17:40,333 output: salt_call()
2024-11-28 19:17:40,333 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/scripts.py”, line 438, in salt_call
2024-11-28 19:17:40,333 output: import salt.cli.call
2024-11-28 19:17:40,333 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/call.py”, line 3, in
2024-11-28 19:17:40,333 output: import salt.cli.caller
2024-11-28 19:17:40,333 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 12, in
2024-11-28 19:17:40,333 output: import salt.channel.client
2024-11-28 19:17:40,333 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/channel/client.py”, line 12, in
2024-11-28 19:17:40,333 output: import salt.crypt
2024-11-28 19:17:40,333 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/crypt.py”, line 29, in
2024-11-28 19:17:40,333 output: import salt.utils.event
2024-11-28 19:17:40,334 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/utils/event.py”, line 67, in
2024-11-28 19:17:40,334 output: import salt.ext.tornado.iostream
2024-11-28 19:17:40,334 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/ext/tornado/iostream.py”, line 41, in
2024-11-28 19:17:40,334 output: from salt.ext.tornado.netutil import ssl_wrap_socket, ssl_match_hostname, SSLCertificateError, client
ssl_defaults, _server_ssl_defaults
2024-11-28 19:17:40,334 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/ext/tornado/netutil.py”, line 57, in
2024-11-28 19:17:40,334 output: import backports.ssl_match_hostname
2024-11-28 19:17:40,334 output: ModuleNotFoundError: No module named ‘backports’
2024-11-28 19:17:40,334 output: [ERROR ] An un-handled exception was caught by Salt’s global exception handler:
2024-11-28 19:17:40,334 output: ModuleNotFoundError: No module named ‘backports’
2024-11-28 19:17:40,334 output: Traceback (most recent call last):
2024-11-28 19:17:40,336 output: File “/var/tmp/.root_dd8a91_salt/salt-call”, line 27, in
2024-11-28 19:17:40,336 output: salt_call()
2024-11-28 19:17:40,336 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/scripts.py”, line 438, in salt_call
2024-11-28 19:17:40,336 output: import salt.cli.call
2024-11-28 19:17:40,336 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/call.py”, line 3, in
2024-11-28 19:17:40,336 output: import salt.cli.caller
2024-11-28 19:17:40,336 output: File “/var/tmp/.root_dd8a91_salt/pyall/salt/cli/caller.py”, line 12, in
:

Can fix the fedora-40 template update by adding an exception in Qubes Global Config → Updates (pointing it back to sys-firewall, for example).

hmm are there alternative cache setups?