Arch Template no confirmation for qubes updater

I built and installed Arch template. Then I added @unman 's repo to it. When I try tu update that template using qubes updater I always got:

           stderr:
                /bin/bash: line 1: /usr/lib/qubes/upgrades-status-notify: No such file or directory

Is there any way to fix that?

Also I noticed that on unmans repo some qubes packages are older then that I have from builder.

I’m curious, why don’t you use the qubes-os repository ?

I’m using it since several months…

Since I read some time ago that it has some problems with signing. If it works I will switch to that.

Ok, just switched to qubes arch repo. Still some packages are older then ones from the builder, and qubes updater is not notified after update.

I’ve got one arch-linux running out of tradition, but might switch from my arch-template to a fedora-template in the near future.

:: Starting full system upgrade...
warning: libpulse: ignoring package upgrade (15.0-4 => 16.1-1)
warning: pulseaudio: ignoring package upgrade (15.0-4 => 16.1-1)
warning: python: ignoring package upgrade (3.9.7-2 => 3.10.7-1)
warning: xorg-server: ignoring package upgrade (1.20.13-3 => 21.1.4-1)

Set those packages in /etc/pacman.conf to ignore because there are qubes-* packages which conflict with newer versions:

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
IgnorePkg   = python
IgnorePkg   = xorg-server
IgnorePkg   = pulseaudio libpulse

Looks like arch users have to wait until the qubes-* packages catch up.

Start your arch-template and edit /etc/pacman.conf as shown above. Shutdown the arch-template and try the Qubes Updater for your arch-template again. Packages should update/upgrade but you’ll get an error message nonetheless. A different one, though. :laughing:

The builder builds the last commit of each packages, the current repository contains the last stable released packages.

I think this is not implemented for Arch. Arch isn’t an officially supported template. But from my point of view, the update notification is useless for Arch, because each day I see an update with a minimum of 3-4 packages…
Note that the update command from the Qubes manager works (right-click on the template, Update).

Arch is a rolling distribution, it is one of the first distribution to include the new versions. So yes, you should wait the qubes-* packages, or best you do the changes and do a PR to the related Qubes-OS github repositories. Since june 22th, qubes-vm-pulseaudio is compatible with pulseaudio 16.x.

[user@tpl-archlinux-41 ~]$ pacman -Ss pulseaudio | grep installed
qubes-r4.1-current/qubes-vm-pulseaudio 4.1.26-10 [installed]
extra/pulseaudio 16.1-1 [installed]
extra/pulseaudio-alsa 1:1.2.7.1-1 [installed]
archlinux# pacman -Q qubes-vm-pulseaudio
qubes-vm-pulseaudio 4.0.38-10
archlinux# pacman -S qubes-vm-pulseaudio
error: target not found: qubes-vm-pulseaudio

Hmpf, looks like I don’t have the qubes-repo configured.

archlinux# grep -i qubes -A1 /etc/pacman.conf
### QUBES CONFIG MARKER ###
Include = /etc/pacman.d/*.conf
### QUBES CONFIG END MARKER ###
# REPOSITORIES
archlinux# ls /etc/pacman.d/*conf*
/etc/pacman.d/10-qubes-options.conf  /etc/pacman.d/99-qubes-repository-4.0.conf.disabled
archlinux# cat /etc/pacman.d/*conf*
[options]
NoUpgrade = etc/pam.d/su-l[qubes-r4.0]
#Server = https://YOUR_OWN_SERVER

Definitely.

Good idea.

archlinux# pacman -Syu                      
:: Synchronizing package databases...
 qubes-r4.1.db failed to download
error: failed retrieving file 'qubes-r4.1.db' from archlinux.qubes-os.org : The requested URL returned error: 404
error: failed to synchronize all databases (failed to retrieve some files)

Turns out the database is named qubes-r4.1-current.db, therefore

archlinux# cat 99-qubes-repository-4.0.conf 
[qubes-r4.1-current]
Server = https://archlinux.qubes-os.org/r4.1/current/vm/archlinux/pkgs

call the repo qubes-r4.1-current instead of qubes-r4.1.

(11/13) Updating the Qubes desktop file App Icons and features...
Request refused
Traceback (most recent call last):
  File "/usr/bin/qvm-features-request", line 30, in <module>
    import qubesdb
ModuleNotFoundError: No module named 'qubesdb'

There is a python3 library missing though.

That update broke the GUI :roll_eyes: … though I can open a console.

edit:

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   = python
#IgnorePkg   = xorg-server
#IgnorePkg   = pulseaudio libpulse

Now, it works again.

Thanks @Szewcu for the hint to the qubes-repo.

In my case the info that it existed just missed me.

Should I add IgnorePkg or something like that, in case Qubes Packages can be removed while updating other packages like in other rolling releases?

Why would you want to do that just after I successfully unignored the aforementioned packages?

The file upgrades-status-notify is missing and can’t be found in any of the repositories:

archlinux# pacman -Qo upgrades-status-notify
error: No package owns upgrades-status-notify
archlinux# pacman -Fy
archlinux# pacman -F upgrades-status-notify

Same applies to /usr/lib/qubes/upgrades-installed-check.

For the same reason that in Kali template Qubes Packages are on hold. I’m new to arch and don’t know if there will be upgrade with conflicted dependencies pacman can delete Qubes Packages.

In case of conflicts pacman should stop the update/upgrade-process. Putting packages at hold can work for a while, but ultimately this will lead to more packages not being able to be updated. Sorry for mixing another topic into your thread.

Anyway, upgrades-status-notify and upgrades-installed-check are bash-scripts. I inspected them in a fedora-36-VM and qvm-copy-ied them into my arch-template.

Now the Qubes Updater works for my archlinux-template without error.

But don’t do this kind of stuff at home. That’s a recipe for desaster. Or at least have a look at the scripts to get a sense of what they are doing.

@unman recommends holding packages and updating it manually, since it is better option then losing qubes functionalities during update.

Yes, in general archlinux breaks easier than other distros. I just broke mine. :laughing:

However, if a qube doesn’t crash at boot time you usually can get a console with

[user@dom0 ~]$ qvm-console-dispvm <vmname>

There you can login as user, sudo su and try to repair stuff.

PS: if @unman recommends updating manually (in general?) for arch-linux, then I’ll join his recommendation.

Hmmm, I see there is a separate code for handling arch… so way it is not included in the template??? Maybe we should report it as an issue?

My Qubes OS has been freshly installed as v4.1 at the beginning of this year. Afterwards I restored the arch template and appVM from a backup.

Have you migrated from v4.0 to v4.1, too? Newer templates might get delivered with upgrades-status-notify and upgrades-installed-check in place (/usr/lib/qubes/).

@ludovic: does your arch template contain these scripts?

No, I install my Qubes as 4.1 and build arch using qubes-builder last week - so as we agreed is the reason why I have newer packages than that on repo. But I also try using arch few months ago, and it also don’t have that scripts.

I saw that lack of confirmation of update for arch was mentioned in some issue from last year but this issue was closed and fix should be merged. Maybe it wasn’t merged.

I will very likely get excommunicated from the qubes-community for this hack.