Skip to content

Add Arch Linux packaging - #20

Merged
marmarek merged 2 commits into
QubesOS:mainfrom
besendorf:feature/archlinux-packaging
Aug 24, 2026
Merged

Add Arch Linux packaging#20
marmarek merged 2 commits into
QubesOS:mainfrom
besendorf:feature/archlinux-packaging

Conversation

@besendorf

Copy link
Copy Markdown
Contributor

Summary

  • add Qubes Builder support for producing the Arch Linux guest package
  • package the notification proxy client, systemd user service, and preset as qubes-notification-agent
  • replace Arch's local notification-daemon implementation and enable reproducible frozen Cargo builds with a committed lockfile

Rationale

Arch Linux Qubes currently lacks the guest notification agent, so notifications remain inside each qube instead of being forwarded to the GUI domain. This package enables centralized notifications and avoids the resulting per-qube tray clutter.

Closes QubesOS/qubes-issues#11065

Testing

  • clean makepkg --nodeps --noconfirm --cleanbuild package build on Arch Linux
  • package check() suite: 7 tests passed
  • makepkg --printsrcinfo
  • shellcheck archlinux/PKGBUILD.install
  • namcap on the rendered PKGBUILD and built package
  • systemd-analyze verify on the packaged user service
  • git diff --check

AI assistance

This pull request was prepared with assistance from OpenAI Codex.

@marmarek

Copy link
Copy Markdown
Member

PipelineRetry

@marmarek

Copy link
Copy Markdown
Member

This fails to build, see CI logs. Most likely missing qubes-vm-utils in makedepends.

@qubesos-bot

qubesos-bot commented Aug 21, 2026

Copy link
Copy Markdown

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2026082409-devel-archlinux&flavor=templates

Test run included the following:

New failures, excluding unstable

Compared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2026050504-devel&flavor=update

  • system_tests_pvgrub_salt_storage

    • TC_41_HVMGrub_archlinux: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_archlinux: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_42_PVHGrub_archlinux: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_42_PVHGrub_archlinux: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_extra

    • TC_10_AppmenusIntegration: test_000_created (failure)
      AssertionError: Items in the first set but not the second:

    • TC_00_QVCTest_archlinux: test_010_screenshare (failure)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 0 == 0

    • TC_00_QVCTest_archlinux: test_020_webcam (failure)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 0 == 0

    • TC_00_PDFConverter_archlinux: test_011_video (failure)
      AssertionError: 127 != 0 : qvm-convert-file failed: b'bash: line 1:...

  • system_tests_network_updates

    • VmUpdates_archlinux: test_011_pkcon_via_proxy (failure)
      AssertionError: 4 not found in [0] : pkgcli install -y test-pkg: b''
  • system_tests_guivm_gui_interactive

    • update_guivm: Failed (test died)
      # Test died: command '(set -o pipefail; qubesctl --all --show-outpu...

Failed tests

10 failures
  • system_tests_pvgrub_salt_storage

    • TC_41_HVMGrub_archlinux: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_archlinux: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_42_PVHGrub_archlinux: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_42_PVHGrub_archlinux: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_extra

    • TC_10_AppmenusIntegration: test_000_created (failure)
      AssertionError: Items in the first set but not the second:

    • TC_00_QVCTest_archlinux: test_010_screenshare (failure)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 0 == 0

    • TC_00_QVCTest_archlinux: test_020_webcam (failure)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 0 == 0

    • TC_00_PDFConverter_archlinux: test_011_video (failure)
      AssertionError: 127 != 0 : qvm-convert-file failed: b'bash: line 1:...

  • system_tests_network_updates

    • VmUpdates_archlinux: test_011_pkcon_via_proxy (failure)
      AssertionError: 4 not found in [0] : pkgcli install -y test-pkg: b''
  • system_tests_guivm_gui_interactive

    • update_guivm: Failed (test died)
      # Test died: command '(set -o pipefail; qubesctl --all --show-outpu...

Fixed failures

Compared to: https://openqa.qubes-os.org/tests/176874#dependencies

26 fixed
  • system_tests_pvgrub_salt_storage

    • TC_41_HVMGrub_debian-13-xfce: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_debian-13-xfce: test_001_standalone_vm_dracut (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_debian-13-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_debian-13-xfce: test_011_template_based_vm_dracut (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_fedora-43-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_extra

    • TC_01_InputProxyExclude_debian-13-xfce: test_000_qemu_tablet (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_01_InputProxyExclude_fedora-43-xfce: test_000_qemu_tablet (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_00_QVCTest_fedora-43-xfce: test_010_screenshare (failure + cleanup)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1179648 != 0

    • TC_00_QVCTest_whonix-gateway-18: test_010_screenshare (failure + cleanup)
      AssertionError: 2.3156185715769593 not less than 2.0

    • TC_00_PDFConverter_fedora-43-xfce: test_004_cancel_stops_conversion (failure)
      AssertionError: DispVM not cleaned up 10s after cancel: {<DispVM at...

  • system_tests_network_ipv6

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • VmIPv6Networking_fedora-43-xfce: test_001_simple_networking_paused_from_none_to_existent (error)
      raise TimeoutError from exc_val... TimeoutError

  • system_tests_audio

  • system_tests_usbproxy

    • system_tests: Fail (unknown)
      Tests qubes.tests.extra failed (exit code 1), details reported sepa...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • system_tests: wait_serial (wait serial expected)
      # wait_serial expected: qr/h3uXO-\d+-/...

    • TC_20_USBProxy_core3_fedora-43-xfce: test_090_attach_stubdom (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_whonix

    • whonixcheck: Failed (test died)
      # Test died: command 'qvm-shutdown --wait anon-whonix ' failed at /...

Unstable tests

Details
  • system_tests_network

    system_tests/Failed (1/5 times with errors)
    • job 191559 # Test died: command 'curl --form upload=@nose2-junit.xml --form up...
  • system_tests_backup

    system_tests/Failed (1/5 times with errors)
    • job 192144 # Test died: command 'curl --form upload=@tests-qubes.tests.integ.b...
  • system_tests_pvgrub_salt_storage

    system_tests/Fail (1/5 times with errors)
    • job 191206 Tests qubes.tests.integ.grub failed (exit code 1), details reported...
    system_tests/Failed (1/5 times with errors)
    • job 191206 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_41_HVMGrub_debian-13-xfce/test_010_template_based_vm (1/5 times with errors)
    • job 191206 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_fedora-44-xfce/test_010_template_based_vm (1/5 times with errors)
    • job 191206 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_extra

    system_tests/Fail (1/5 times with errors)
    • job 191555 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    system_tests/Failed (1/5 times with errors)
    • job 192562 # Test died: command 'testfunc qubes.tests.extra' timed out at qube...
    system_tests/Failed (1/5 times with errors)
    • job 191555 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_PDFConverter_debian-13-xfce/test_004_cancel_stops_conversion (1/5 times with errors)
    • job 191555 AssertionError: DispVM not cleaned up 10s after cancel: {<DispVM at...
    TC_00_PDFConverter_fedora-44-xfce/test_004_cancel_stops_conversion (1/5 times with errors)
    • job 191555 AssertionError: DispVM not cleaned up 10s after cancel: {<DispVM at...
    system_tests/wait_serial (1/5 times with errors)
    • job 192562 # Command: testfunc qubes.tests.extra...
  • system_tests_network_ipv6

    system_tests/Fail (1/5 times with errors)
    • job 191204 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    system_tests/Failed (1/5 times with errors)
    • job 191560 # Test died: command 'curl --form upload=@tests-qubes.tests.integ.n...
    system_tests/Failed (1/5 times with errors)
    • job 191204 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    VmIPv6Networking_fedora-44-xfce/test_501_simple_networking_paused_from_none_to_existent (1/5 times with errors)
    • job 191204 raise TimeoutError from exc_val... TimeoutError
  • system_tests_gui_interactive

    clipboard_and_web/ (1/5 times with errors)
    clipboard_and_web/Failed (1/5 times with errors)
    • job 191556 # Test died: no candidate needle with tag(s) 'personal-firefox' mat...
  • system_tests_network_updates

    system_tests/Fail (2/5 times with errors)
    • job 192061 Tests qubes.tests.integ.dom0_update failed (exit code 1), details r...
    • job 192160 Tests qubes.tests.integ.dom0_update failed (exit code 1), details r...
    system_tests/Fail (1/5 times with errors)
    • job 192568 Tests qubes.tests.integ.dom0_update failed (exit code 1), details r...
    system_tests/Fail (1/5 times with errors)
    • job 191227 Tests qubes.tests.integ.vm_update failed (exit code 1), details rep...
    system_tests/Failed (3/5 times with errors)
    • job 191227 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 192061 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 192160 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    system_tests/Failed (1/5 times with errors)
    • job 192568 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_000_update_salt (1/5 times with errors)
    • job 192568 ?[0;31mDuration: 204145.11 ms?[0;0m... ?[0;31m Changes: ?[0;0m
    TC_00_Dom0Upgrade_whonix-gateway-18/test_005_update_flag_clear (1/5 times with errors)
    • job 192160 Error: Failed to download metadata for repo 'test': Cannot download...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_006_update_flag_clear (1/5 times with errors)
    • job 192160 Error: Failed to download metadata for repo 'test': Cannot download...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_010_instal (1/5 times with errors)
    • job 192061 Error: Failed to download metadata for repo 'test': Cannot download...
    VmUpdates_fedora-44-xfce/test_011_pkcon_via_proxy (1/5 times with errors)
    • job 191227 AssertionError: 7 not found in [0, 100] : pkcon install -y test-pkg...
    VmUpdates_debian-13-xfce/test_110_update_via_proxy_qubes_vm_update (1/5 times with errors)
    • job 191227 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_audio

    system_tests/Fail (2/5 times with errors)
    • job 191177 Tests qubes.tests.integ.audio failed (exit code 1), details reporte...
    • job 191533 Tests qubes.tests.integ.audio failed (exit code 1), details reporte...
    system_tests/Failed (1/5 times with errors)
    • job 191177 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    system_tests/Failed (1/5 times with errors)
    • job 191533 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_AudioVM_Pulse_whonix-workstation-18/test_225_audio_rec_unmuted_hvm (1/5 times with errors)
    • job 191533 AssertionError: too short audio, expected 10s, got 6.94730158730158...
    TC_20_AudioVM_PipeWire_debian-13-xfce/test_260_audio_mic_enabled_switch_audiovm (2/5 times with errors)
    • job 191177 AssertionError: pacat for test-inst-vm1 (xid 50) running(False) in ...
    • job 191533 AssertionError: pacat for test-inst-vm1 (xid 50) running(False) in ...
    TC_20_AudioVM_PipeWire_fedora-44-xfce/test_260_audio_mic_enabled_switch_audiovm (1/5 times with errors)
    • job 191177 AssertionError: pacat for test-inst-vm1 (xid 59) running(False) in ...
  • system_tests_whonix

    whonixcheck/Failed (1/5 times with errors)
    • job 191530 # Test died: command 'curl --form upload=@whonixcheck-anon-whonix ....

Performance Tests

Performance degradation:

No issues

Remaining performance tests:

No remaining performance tests

@marmarek
marmarek merged commit 0d2233f into QubesOS:main Aug 24, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Package qubes-notification-agent for archlinux

3 participants