Skip to content

Conversation

@ben-grande
Copy link
Contributor

Or if GUID of the client can be found on the server. This script is replicated on qubes-core-qrexec.

For: QubesOS/qubes-notification-proxy#13
For: QubesOS/qubes-gui-agent-linux#251
For: QubesOS/qubes-core-admin#757
For: QubesOS/qubes-issues#1512
For: QubesOS/qubes-issues#9940
Fixes: QubesOS/qubes-issues#10443

@codecov
Copy link

codecov bot commented Dec 2, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.18%. Comparing base (1f542b7) to head (924ab70).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #625   +/-   ##
=======================================
  Coverage   71.18%   71.18%           
=======================================
  Files           3        3           
  Lines         479      479           
=======================================
  Hits          341      341           
  Misses        138      138           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ben-grande
Copy link
Contributor Author

Non-dom0 GUIVM doesn't have /var/run/qubes/qrexec.$qube... I think it will require using xenstore to get the qube xid or qvm-prefs, but the latter might be slower. qvm-start-daemon uses vm.xid or vm.stubdom_xid.

@ben-grande
Copy link
Contributor Author

Non-dom0 GUIVM doesn't have /var/run/qubes/qrexec.$qube... I think it will require using xenstore to get the qube xid or qvm-prefs, but the latter might be slower. qvm-start-daemon uses vm.xid or vm.stubdom_xid.

  • I didn't find stubdom_xid being used, not sure it is relevant.
  • I didn't find a way to get xid from a domain without using qvm-prefs $qube xid, xenstore-ls doesn't seem to be accessible for clients of a GUIVM and using qubesadmin makes it go through policy evaluation. Technically, I could create guid-running.$qube in qvm-start-daemon if you find this appropriate.

@ben-grande ben-grande force-pushed the preload-delay-gui-daemon branch from 269ead4 to 924ab70 Compare December 2, 2025 17:44
@marmarek
Copy link
Member

marmarek commented Dec 2, 2025

It's okay to use qvm-prefs here - GUI domain has access to it anyway.
And also, you don't need dom0 case here - core-agent-linux is never running in dom0.

@ben-grande
Copy link
Contributor Author

And also, you don't need dom0 case here - core-agent-linux is never running in dom0.

It is just to have a single script to copy around both places. If you really don't want it, I can remove the dom0 part from here.

@marmarek
Copy link
Member

marmarek commented Dec 2, 2025

In this repository I'd prefer to keep just VM part (AKA no dead code). It would make sense if the same script would be in a package installed in both dom0 and VM - we don't have such gui-agent/gui-daemon related package, but maybe linux-utils? Note that moving file between packages requires careful package dependencies, for the package manager to not complain about conflicting files. Debian has specific guidelines for that, maybe Fedora has something like this too?

@ben-grande
Copy link
Contributor Author

ben-grande commented Dec 2, 2025 via email

@qubesos-bot
Copy link

qubesos-bot commented Dec 3, 2025

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025121419-4.3&flavor=pull-requests

Test run included the following:

New failures, excluding unstable

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

  • system_tests_dispvm

    • TC_20_DispVM_debian-13-xfce: test_017_preload_autostart (error + timed out)
      qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
  • system_tests_qwt_win10_seamless@hw13

  • system_tests_gui_interactive_preloaded

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

    • collect_logs: Failed (test died + timed out)
      # Test died: command 'curl --form [email protected] --form upn...

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

  • system_tests_dispvm_perf@hw7

    • TC_00_DispVMPerf_fedora-42-xfce: test_400_dom0_dispvm_api (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf.py --dvm=test-ins...

    • TC_00_DispVMPerf_fedora-42-xfce: test_900_reader (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf_reader.py --templ...

  • system_tests_basic_vm_qrexec_gui_ext4

    • TC_20_NonAudio_whonix-gateway-18-pool: test_400_long_window_title (error + cleanup)
      raise TimeoutError from exc_val... TimeoutError
  • system_tests_basic_vm_qrexec_gui_xfs

Failed tests

12 failures
  • system_tests_dispvm

    • TC_20_DispVM_debian-13-xfce: test_017_preload_autostart (error + timed out)
      qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
  • system_tests_qwt_win10_seamless@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Edge-address-...
  • system_tests_qwt_win11@hw13

    • windows_install: Failed (test died)
      # Test died: Install failed with code 1 at qubesos/tests/windows_in...
  • system_tests_gui_interactive_preloaded

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

    • collect_logs: Failed (test died + timed out)
      # Test died: command 'curl --form [email protected] --form upn...

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

  • system_tests_dispvm_perf@hw7

    • TC_00_DispVMPerf_fedora-42-xfce: test_400_dom0_dispvm_api (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf.py --dvm=test-ins...

    • TC_00_DispVMPerf_fedora-42-xfce: test_900_reader (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf_reader.py --templ...

    • TC_00_DispVMPerf_whonix-workstation-18: test_900_reader (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf_reader.py --templ...

  • system_tests_basic_vm_qrexec_gui_ext4

    • TC_20_NonAudio_whonix-gateway-18-pool: test_400_long_window_title (error + cleanup)
      raise TimeoutError from exc_val... TimeoutError
  • system_tests_basic_vm_qrexec_gui_xfs

Fixed failures

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

18 fixed
  • system_tests_extra

    • 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...

    • TC_00_QVCTest_debian-13-xfce: test_010_screenshare (failure + cleanup)
      AssertionError: 2.4614345149565264 not less than 2.0

    • TC_00_QVCTest_whonix-gateway-18: test_010_screenshare (failure)
      AssertionError: 1 != 0 : Timeout waiting for /dev/video0 in test-in...

    • TC_00_QVCTest_whonix-workstation-18: test_010_screenshare (failure)
      AssertionError: 1 != 0 : Timeout waiting for /dev/video0 in test-in...

  • system_tests_guivm_gui_interactive

    • gui_keyboard_layout: unnamed test (unknown)
    • gui_keyboard_layout: Failed (test died)
      # Test died: no candidate needle with tag(s) 'work-xterm, work-xter...
  • system_tests_dispvm

    • TC_20_DispVM_whonix-workstation-18: test_030_edit_file (failure)
      AssertionError: Timeout waiting for editor window

    • TC_20_DispVM_whonix-workstation-18: test_100_open_in_dispvm (failure)
      AssertionError: './open-file test.txt' failed with ./open-file test...

  • system_tests_guivm_vnc_gui_interactive

    • gui_filecopy: unnamed test (unknown)
    • gui_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'disp-text-editor' mat...
  • system_tests_qwt_win10@hw13

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

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_qwt_win10_seamless@hw13

  • system_tests_qwt_win11@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/iDVvW-\d+-/...
  • system_tests_dispvm_perf@hw7

Unstable tests

Details

Performance Tests

Performance degradation:

11 performance degradations
  • debian-13-xfce_exec: 7.99 🔻 ( previous job: 6.42, degradation: 124.42%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 307771.00 🔻 ( previous job: 491827.00, degradation: 62.58%)
  • fedora-42-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 119277.00 🔻 ( previous job: 137220.00, degradation: 86.92%)
  • fedora-42-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 307500.00 🔻 ( previous job: 355690.00, degradation: 86.45%)
  • fedora-42-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 1992.00 🔻 ( previous job: 3964.00, degradation: 50.25%)
  • fedora-42-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 33249.00 🔻 ( previous job: 49472.00, degradation: 67.21%)
  • fedora-42-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 17538.00 🔻 ( previous job: 75326.00, degradation: 23.28%)
  • fedora-42-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 119920.00 🔻 ( previous job: 140939.00, degradation: 85.09%)
  • fedora-42-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 271511.00 🔻 ( previous job: 349176.00, degradation: 77.76%)
  • fedora-42-xfce_dom0-vm-api (mean:0.037): 0.45 🔻 ( previous job: 0.39, degradation: 114.29%)
  • fedora-42-xfce_dom0-vm-gui-api (mean:0.056): 0.67 🔻 ( previous job: 0.54, degradation: 123.70%)

Remaining performance tests:

84 tests
  • debian-13-xfce_exec-root: 27.12 🟢 ( previous job: 27.48, improvement: 98.68%)
  • debian-13-xfce_socket: 8.15 🟢 ( previous job: 8.68, improvement: 93.91%)
  • debian-13-xfce_socket-root: 8.24 🟢 ( previous job: 8.40, improvement: 98.05%)
  • debian-13-xfce_exec-data-simplex: 68.10 🔻 ( previous job: 67.70, degradation: 100.60%)
  • debian-13-xfce_exec-data-duplex: 69.13 🟢 ( previous job: 69.20, improvement: 99.90%)
  • debian-13-xfce_exec-data-duplex-root: 79.25 🟢 ( previous job: 86.64, improvement: 91.46%)
  • debian-13-xfce_socket-data-duplex: 133.83 🟢 ( previous job: 136.31, improvement: 98.18%)
  • fedora-42-xfce_exec: 9.17 🟢 ( previous job: 9.23, improvement: 99.33%)
  • fedora-42-xfce_exec-root: 59.89 🟢 ( previous job: 59.89, improvement: 100.00%)
  • fedora-42-xfce_socket: 8.07 🟢 ( previous job: 8.23, improvement: 98.02%)
  • fedora-42-xfce_socket-root: 8.48 🔻 ( previous job: 8.31, degradation: 102.00%)
  • fedora-42-xfce_exec-data-simplex: 69.42 🔻 ( previous job: 66.18, degradation: 104.90%)
  • fedora-42-xfce_exec-data-duplex: 65.14 🟢 ( previous job: 71.51, improvement: 91.10%)
  • fedora-42-xfce_exec-data-duplex-root: 99.91 🔻 ( previous job: 96.52, degradation: 103.51%)
  • fedora-42-xfce_socket-data-duplex: 138.43 🔻 ( previous job: 137.78, degradation: 100.47%)
  • whonix-gateway-18_exec: 8.51 🟢 ( previous job: 8.52, improvement: 99.93%)
  • whonix-gateway-18_exec-root: 131.84 🔻 ( previous job: 129.05, degradation: 102.16%)
  • whonix-gateway-18_socket: 8.05 🟢 ( previous job: 8.26, improvement: 97.46%)
  • whonix-gateway-18_socket-root: 8.26 🔻 ( previous job: 7.76, degradation: 106.54%)
  • whonix-gateway-18_exec-data-simplex: 69.13 🟢 ( previous job: 73.13, improvement: 94.54%)
  • whonix-gateway-18_exec-data-duplex: 70.60 🟢 ( previous job: 71.98, improvement: 98.08%)
  • whonix-gateway-18_exec-data-duplex-root: 147.92 🔻 ( previous job: 146.68, degradation: 100.85%)
  • whonix-gateway-18_socket-data-duplex: 141.12 🟢 ( previous job: 142.71, improvement: 98.89%)
  • whonix-workstation-18_exec: 8.93 🔻 ( previous job: 8.85, degradation: 100.86%)
  • whonix-workstation-18_exec-root: 140.56 🟢 ( previous job: 149.84, improvement: 93.80%)
  • whonix-workstation-18_socket: 9.17 🔻 ( previous job: 9.12, degradation: 100.53%)
  • whonix-workstation-18_socket-root: 8.09 🟢 ( previous job: 8.75, improvement: 92.49%)
  • whonix-workstation-18_exec-data-simplex: 66.99 🟢 ( previous job: 67.02, improvement: 99.96%)
  • whonix-workstation-18_exec-data-duplex: 71.06 🔻 ( previous job: 69.25, degradation: 102.61%)
  • whonix-workstation-18_exec-data-duplex-root: 140.98 🟢 ( previous job: 146.32, improvement: 96.35%)
  • whonix-workstation-18_socket-data-duplex: 132.74 🟢 ( previous job: 139.15, improvement: 95.39%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 439470.00 🟢 ( previous job: 365230.00, improvement: 120.33%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 220335.00 🔻 ( previous job: 231269.00, degradation: 95.27%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 103750.00 🔻 ( previous job: 110619.00, degradation: 93.79%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 123452.00 🔻 ( previous job: 130397.00, degradation: 94.67%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 43982.00 🟢 ( previous job: 39923.00, improvement: 110.17%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 7643.00 🟢 ( previous job: 3264.00, improvement: 234.16%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 12138.00 🟢 ( previous job: 12000.00, improvement: 101.15%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 3874.00 🟢 ( previous job: 2099.00, improvement: 184.56%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 326354.00 🟢 ( previous job: 103611.00, improvement: 314.98%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 433295.00 🟢 ( previous job: 432938.00, improvement: 100.08%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 186794.00 🟢 ( previous job: 143368.00, improvement: 130.29%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 105175.00 🟢 ( previous job: 103977.00, improvement: 101.15%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 9359.00 🔻 ( previous job: 10236.00, degradation: 91.43%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 7828.00 🔻 ( previous job: 8300.00, degradation: 94.31%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 5154.00 🟢 ( previous job: 3936.00, improvement: 130.95%)
  • fedora-42-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 393609.00 🟢 ( previous job: 346866.00, improvement: 113.48%)
  • fedora-42-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 53519.00 🟢 ( previous job: 26931.00, improvement: 198.73%)
  • fedora-42-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 77268.00 🔻 ( previous job: 85360.00, degradation: 90.52%)
  • fedora-42-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 9402.00 🟢 ( previous job: 8945.00, improvement: 105.11%)
  • fedora-42-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 757.00 🟢 ( previous job: 457.00, improvement: 165.65%)
  • fedora-42-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 370783.00 🔻 ( previous job: 371835.00, degradation: 99.72%)
  • fedora-42-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 129102.00 🟢 ( previous job: 108858.00, improvement: 118.60%)
  • fedora-42-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 371308.00 🟢 ( previous job: 351871.00, improvement: 105.52%)
  • fedora-42-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 2033.00 🟢 ( previous job: 1909.00, improvement: 106.50%)
  • fedora-42-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 7790.00 🔻 ( previous job: 8365.00, degradation: 93.13%)
  • fedora-42-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 1050.00 🟢 ( previous job: 517.00, improvement: 203.09%)
  • fedora-42-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 364215.00 🟢 ( previous job: 361328.00, improvement: 100.80%)
  • fedora-42-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 52199.00 🟢 ( previous job: 46842.00, improvement: 111.44%)
  • fedora-42-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 85067.00 🟢 ( previous job: 79581.00, improvement: 106.89%)
  • fedora-42-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 2409.00 🟢 ( previous job: 2110.00, improvement: 114.17%)
  • fedora-42-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8603.00 🟢 ( previous job: 7708.00, improvement: 111.61%)
  • fedora-42-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 1150.00 🟢 ( previous job: 861.00, improvement: 133.57%)
  • debian-13-xfce_dom0-dispvm-api (mean:6.966): 83.59 🟢 ( previous job: 84.68, improvement: 98.72%)
  • debian-13-xfce_dom0-dispvm-gui-api (mean:7.833): 94.00 🟢 ( previous job: 98.62, improvement: 95.31%)
  • debian-13-xfce_dom0-dispvm-preload-2-api (mean:4.105): 49.26
  • debian-13-xfce_dom0-dispvm-preload-4-api (mean:3.781): 45.37
  • debian-13-xfce_dom0-dispvm-preload-2-gui-api (mean:4.169): 50.02
  • debian-13-xfce_dom0-dispvm-preload-4-gui-api (mean:3.893): 46.72
  • debian-13-xfce_dom0-vm-api (mean:0.033): 0.40 🟢 ( previous job: 0.59, improvement: 67.01%)
  • debian-13-xfce_dom0-vm-gui-api (mean:0.043): 0.51 🟢 ( previous job: 0.58, improvement: 88.60%)
  • fedora-42-xfce_dom0-dispvm-gui-api (mean:8.345): 100.14 🟢 ( previous job: 107.00, improvement: 93.59%)
  • fedora-42-xfce_dom0-dispvm-preload-2-api (mean:4.55): 54.59
  • fedora-42-xfce_dom0-dispvm-preload-4-api (mean:4.062): 48.74
  • fedora-42-xfce_dom0-dispvm-preload-2-gui-api (mean:4.693): 56.32
  • fedora-42-xfce_dom0-dispvm-preload-4-gui-api (mean:4.113): 49.36
  • whonix-workstation-18_dom0-dispvm-api (mean:9.005): 108.06 🟢 ( previous job: 117.52, improvement: 91.95%)
  • whonix-workstation-18_dom0-dispvm-gui-api (mean:9.589): 115.07 🟢 ( previous job: 130.38, improvement: 88.26%)
  • whonix-workstation-18_dom0-dispvm-preload-2-api (mean:5.419): 65.03
  • whonix-workstation-18_dom0-dispvm-preload-4-api (mean:4.765): 57.18
  • whonix-workstation-18_dom0-dispvm-preload-2-gui-api (mean:5.567): 66.80
  • whonix-workstation-18_dom0-dispvm-preload-4-gui-api (mean:4.657): 55.88
  • whonix-workstation-18_dom0-vm-api (mean:0.038): 0.46 🟢 ( previous job: 0.60, improvement: 76.49%)
  • whonix-workstation-18_dom0-vm-gui-api (mean:0.041): 0.49 🔻 ( previous job: 0.45, degradation: 108.46%)

@ben-grande
Copy link
Contributor Author

In this repository I'd prefer to keep just VM part (AKA no dead code). It would make sense if the same script would be in a package installed in both dom0 and VM - we don't have such gui-agent/gui-daemon related package, but maybe linux-utils? Note that moving file between packages requires careful package dependencies, for the package manager to not complain about conflicting files. Debian has specific guidelines for that, maybe Fedora has something like this too?

linux-utils doesn't seem to have RPCs. What about maintaining on qubes-core-qrexec repo but moving from packge qubes-core-qrexec to qubes-core-qrexec?

@ben-grande ben-grande force-pushed the preload-delay-gui-daemon branch from 924ab70 to 1f3b3be Compare December 3, 2025 07:16
@ben-grande
Copy link
Contributor Author

Would be very nice if CI could combine this PR with:

To test if the packaging is right. In the meantime, I will do manually. I don't have this process streamlined yet.

@ben-grande ben-grande force-pushed the preload-delay-gui-daemon branch from 1f3b3be to ef3eb5e Compare December 3, 2025 07:42
@ben-grande
Copy link
Contributor Author

Would be very nice if CI could combine this PR with:

* [Query GUIVM session or GUID from client in GUIVM qubes-core-qrexec#217](https://github.com/QubesOS/qubes-core-qrexec/pull/217)

To test if the packaging is right. In the meantime, I will do manually. I don't have this process streamlined yet.

I am still fixing some conflicts by:

  • downloading the artifact
  • using package manager to install local files

And I see this is still tagged with openqa-pending, so I hope to get it fixed before it is openqaed.

@ben-grande ben-grande force-pushed the preload-delay-gui-daemon branch from cb194c9 to ea3c088 Compare December 3, 2025 15:39
@ben-grande
Copy link
Contributor Author

Packaging is broken...

user@disp3871:~/QubesIncoming/disp5212/artifacts/repository/vm-trixie$ sudo apt install ./core-agent-linux_4.3.38/qubes-core-agent_4.3.38-1+deb13u1+devel1_amd64.deb ./core-qrexec_4.3.12/qubes-core-qrexec_4.3.12-1+deb13u1+devel1_amd64.deb ./core-qrexec_4.3.12/libqrexec-utils4_4.3.12-1+deb13u1+devel1_amd64.deb
Note, selecting 'qubes-core-agent' instead of './core-agent-linux_4.3.38/qubes-core-agent_4.3.38-1+deb13u1+devel1_amd64.deb'
Note, selecting 'qubes-core-qrexec' instead of './core-qrexec_4.3.12/qubes-core-qrexec_4.3.12-1+deb13u1+devel1_amd64.deb'
Note, selecting 'libqrexec-utils4' instead of './core-qrexec_4.3.12/libqrexec-utils4_4.3.12-1+deb13u1+devel1_amd64.deb'
The following packages were automatically installed and are no longer required:
  conntrack         libunbound8                 python3-jmespath           python3-unbound
  curl              network-manager-gnome       python3-legacy-cgi         python3-webob
  debugedit         python-apt-common           python3-libcomps           python3-yarl
  deltarpm          python-babel-localedata     python3-libdnf             python3-zc.lockfile
  dnf               python3-aiodns              python3-looseversion       python3-zmq
  dnf-data          python3-aiohappyeyeballs    python3-markupsafe         qubes-core-agent-dom0-updates
  fakeroot          python3-aiohttp             python3-msgpack            qubes-core-agent-passwordless-root
  fwupd-qubes-vm    python3-aiosignal           python3-multidict          qubes-gpg-split
  jcat              python3-apt                 python3-numpy              qubes-img-converter
  libcares2         python3-async-timeout       python3-numpy-dev          qubes-input-proxy-sender
  libcomps0         python3-attr                python3-olefile            qubes-mgmt-salt-vm-connector
  libdnf2-common    python3-babel               python3-pil                qubes-notification-agent
  libdnf2t64        python3-certifi             python3-portend            qubes-pdf-converter
  libfakeroot       python3-chardet             python3-propcache          qubes-repo-templates
  libfsverity0      python3-charset-normalizer  python3-pycares            qubes-usb-proxy
  libjcat1          python3-cheroot             python3-pycryptodome       rpm
  liblua5.3-0       python3-cherrypy3           python3-pytz               rpm-common
  libmodulemd2      python3-croniter            python3-qubesimgconverter  rpm2cpio
  libraqm0          python3-dateutil            python3-repoze.lru         salt-common
  librepo0          python3-dnf                 python3-requests           salt-ssh
  librpm-sequoia-1  python3-frozenlist          python3-routes             socat
  librpm10          python3-gnupg               python3-rpm                sqlite3
  librpmbuild10     python3-gpg                 python3-simplejson         tinyproxy
  librpmio10        python3-hawkey              python3-tempora            tinyproxy-bin
  librpmsign10      python3-jaraco.collections  python3-tornado            usbutils
  libsolv1          python3-jaraco.text         python3-tqdm
  libsolvext1       python3-jinja2              python3-tz
Use 'sudo apt autoremove' to remove them.

Upgrading:
  libqrexec-utils4  qubes-core-agent  qubes-core-qrexec

REMOVING:
  qubes-core-agent-network-manager  qubes-core-agent-networking  qubes-vm-recommended
[user@disp5212 vm-fc42]$ rpm -vv -i core-agent-linux_4.3.38/qubes-core-agent-4.3.38-1.1.fc42.x86_64.rpm core-qrexec_4.3.12/qubes-core-qrexec-4.3.12-1.1.fc42.x86_64.rpm core-qrexec_4.3.12/qubes-core-qrexec-vm-4.3.12-1.1.fc42.x86_64.rpm core-qrexec_4.3.12/qubes-core-qrexec-libs-4.3.12-1.1.fc42.x86_64.rpm 2>&1 | grep -e qubes-core-qrexec -e qubes-core-agent -e '======'
D: ============== core-agent-linux_4.3.38/qubes-core-agent-4.3.38-1.1.fc42.x86_64.rpm
D: core-agent-linux_4.3.38/qubes-core-agent-4.3.38-1.1.fc42.x86_64.rpm: Header SHA256 digest: OK
D: core-agent-linux_4.3.38/qubes-core-agent-4.3.38-1.1.fc42.x86_64.rpm: Header SHA1 digest: OK
D: ============== core-qrexec_4.3.12/qubes-core-qrexec-4.3.12-1.1.fc42.x86_64.rpm
D: core-qrexec_4.3.12/qubes-core-qrexec-4.3.12-1.1.fc42.x86_64.rpm: Header SHA256 digest: OK
D: core-qrexec_4.3.12/qubes-core-qrexec-4.3.12-1.1.fc42.x86_64.rpm: Header SHA1 digest: OK
D: ============== core-qrexec_4.3.12/qubes-core-qrexec-vm-4.3.12-1.1.fc42.x86_64.rpm
D: core-qrexec_4.3.12/qubes-core-qrexec-vm-4.3.12-1.1.fc42.x86_64.rpm: Header SHA256 digest: OK
D: core-qrexec_4.3.12/qubes-core-qrexec-vm-4.3.12-1.1.fc42.x86_64.rpm: Header SHA1 digest: OK
D: ============== core-qrexec_4.3.12/qubes-core-qrexec-libs-4.3.12-1.1.fc42.x86_64.rpm
D: core-qrexec_4.3.12/qubes-core-qrexec-libs-4.3.12-1.1.fc42.x86_64.rpm: Header SHA256 digest: OK
D: core-qrexec_4.3.12/qubes-core-qrexec-libs-4.3.12-1.1.fc42.x86_64.rpm: Header SHA1 digest: OK
D: ========== +++ qubes-core-agent-4.3.38-1.1.fc42 x86_64/linux 0x2
D:  Requires: qubes-core-agent-selinux                      YES (db provides)
D:  Requires: (qubes-core-agent-selinux if selinux-policy)  YES (rich)
D:  Requires: config(qubes-core-agent) = 4.3.38-1.1.fc42    YES (added provide)
D:  Requires: qubes-core-qrexec >= 4.3.12                   YES (added provide)
D:  Requires: qubes-core-qrexec-vm >= 4.3.12                YES (added provide)
D: Obsoletes: qubes-core-qrexec < 4.3.12                    YES (db provides)
D: ========== +++ qubes-core-qrexec-4.3.12-1.1.fc42 x86_64/linux 0x0
D:  Requires: qubes-core-agent >= 4.3.38                    YES (added provide)
D: Conflicts: qubes-core-agent-qrexec < 4.1.0               NO
D: Obsoletes: qubes-core-agent < 4.3.38                     YES (db provides)
D: ========== +++ qubes-core-qrexec-vm-4.3.12-1.1.fc42 x86_64/linux 0x2
D:  Requires: qubes-core-qrexec-vm-selinux                  YES (db provides)
D:  Requires: (qubes-core-qrexec-vm-selinux if selinux-policy) YES (rich)
D:  Requires: config(qubes-core-qrexec-vm) = 4.3.12-1.1.fc42 YES (added provide)
D:  Requires: qubes-core-qrexec = 4.3.12-1.1.fc42           YES (added provide)
D:  Requires: qubes-core-qrexec-libs >= 4.3.12-1.1.fc42     YES (added provide)
D: Obsoletes: qubes-core-agent-qrexec < 4.1.0-1             NO
D: ========== +++ qubes-core-qrexec-libs-4.3.12-1.1.fc42 x86_64/linux 0x2
        qubes-core-qrexec < 4.3.12 is obsoleted by qubes-core-agent-4.3.38-1.1.fc42.x86_64
        qubes-core-agent < 4.3.38 is obsoleted by qubes-core-qrexec-4.3.12-1.1.fc42.x86_64

debian/control Outdated
Replaces:
qubes-core-qrexec (<< 4.3.12)
Breaks:
qubes-core-qrexec (<< 4.3.12)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be the other way around - qrexec package declaring those on core-agent

Requires: zenity
Requires: dconf
Requires: qubes-core-qrexec-vm >= 4.2.19
Obsoletes: qubes-core-qrexec < 4.3.12
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think obsoletes is relevant here. But qrexec may need similar Conflict: dependency (to force update ordering)

@ben-grande
Copy link
Contributor Author

In the current state, rpm -i leads to:

# qrexec.spec: added these lines
Conflicts:  qubes-core-agent < 4.3.38
Requires: qubes-core-agent >= 4.3.38
# agent.spec: bumped the required version
Requires:  qubes-core-qrexec-vm >= 4.3.12
# Result
qubes-core-agent < 4.3.38 conflicts with qubes-core-qrexec-4.3.12-1.1.fc42.x86_64

Debian led to the same result, trying to remove qubes-core-agent-network-manager, qubes-core-agent-networking and qubes-vm-recommended.

@ben-grande
Copy link
Contributor Author

ben-grande commented Dec 4, 2025

Debian led to the same result, trying to remove qubes-core-agent-network-manager, qubes-core-agent-networking and qubes-vm-recommended.

Unless I also add the the packages qubes-core-agent-network-manager and qubes-core-agent-networking to the command-line, because networking requires on the same version of qubes-core-agent. Hum, maybe RPM is failing because I am not using a repo and it can't properly solve things with rpm -i xx.rpm? I will try a local repo.

@ben-grande
Copy link
Contributor Author

I will try a local repo.

This worked.... Still have to test on Archlinux and dom0.

@ben-grande ben-grande force-pushed the preload-delay-gui-daemon branch from de78ad5 to 420e90f Compare December 4, 2025 10:57
@ben-grande
Copy link
Contributor Author

ben-grande commented Dec 4, 2025

Tested on:

  • host-fc41
  • vm-fc42
  • vm-trixie
  • vm-archlinux

@ben-grande
Copy link
Contributor Author

https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025120415-4.3&groupid=11

Seems to have worked, at least, nothing seems broke. There is no Archlinux test.

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.

qubes.WaitForSession processes keep accumulating with preloaded DispVMs

3 participants