Browse Source

rpm,deb: split qrexec-agent into separate subpackage

While it doesn't make sense to install qubes-core-agent without qrexec,
it may make sense to do the otherway around - install just
qrexec-agent without all the qrexec services and configuration. For
example on some pre-installed system.

QubesOS/qubes-issues#2771
Marek Marczykowski-Górecki 7 years ago
parent
commit
000a93e001
4 changed files with 44 additions and 16 deletions
  1. 16 2
      debian/control
  2. 7 0
      debian/qubes-core-agent-qrexec.install
  3. 0 7
      debian/qubes-core-agent.install
  4. 21 7
      rpm_spec/core-agent.spec

+ 16 - 2
debian/control

@@ -30,7 +30,6 @@ Depends:
     init-system-helpers,
     initscripts,
     librsvg2-bin,
-    libvchan-xen,
     locales,
     ncurses-term,
     psmisc,
@@ -44,6 +43,7 @@ Depends:
     python-dbus,
     qubes-utils (>= 3.1.3),
     sudo,
+    qubes-core-agent-qrexec,
     systemd,
     x11-xserver-utils,
     xdg-user-dirs,
@@ -74,10 +74,23 @@ Description: Qubes core agent
  This package includes various daemons necessary for qubes domU support,
  such as qrexec.
 
+Package: qubes-core-agent-qrexec
+Architecture: any
+Depends:
+    libvchan-xen,
+    ${shlibs:Depends},
+    ${misc:Depends}
+Replaces: qubes-core-agent (<< 4.0.0-1)
+Breaks: qubes-core-agent (<< 4.0.0-1)
+Description: Qubes qrexec agent
+ Agent part of Qubes RPC system. A daemon responsible for starting processes as
+ requested by dom0 or other VMs, according to dom0-enforced policy.
+
 Package: qubes-core-agent-nautilus
 Architecture: any
 Depends:
     python-nautilus,
+    qubes-core-agent-qrexec,
 Replaces: qubes-core-agent (<< 4.0.0-1)
 Breaks: qubes-core-agent (<< 4.0.0-1)
 Description: Qubes integration for Nautilus
@@ -88,7 +101,8 @@ Architecture: any
 Depends:
     fakeroot,
     yum,
-    yum-utils
+    yum-utils,
+    qubes-core-agent-qrexec,
 Replaces: qubes-core-agent (<< 4.0.0-1)
 Breaks: qubes-core-agent (<< 4.0.0-1)
 Description: Scripts required to handle dom0 updates.

+ 7 - 0
debian/qubes-core-agent-qrexec.install

@@ -0,0 +1,7 @@
+lib/systemd/system/qubes-qrexec-agent.service
+usr/bin/qrexec-client-vm
+usr/bin/qrexec-fork-server
+usr/lib/qubes/qrexec-agent
+usr/lib/qubes/qrexec-client-vm
+usr/lib/qubes/qrexec_client_vm
+usr/lib/qubes/qubes-rpc-multiplexer

+ 0 - 7
debian/qubes-core-agent.install

@@ -62,7 +62,6 @@ lib/systemd/system/org.cups.cupsd.socket.d/30_qubes.conf
 lib/systemd/system/qubes-early-vm-config.service
 lib/systemd/system/qubes-misc-post.service
 lib/systemd/system/qubes-mount-dirs.service
-lib/systemd/system/qubes-qrexec-agent.service
 lib/systemd/system/qubes-sysinit.service
 lib/systemd/system/qubes-update-check.service
 lib/systemd/system/qubes-update-check.timer
@@ -73,8 +72,6 @@ lib/systemd/system/tinyproxy.service.d/30_not_needed_in_qubes_by_default.conf
 lib/systemd/system/tmp.mount.d/30_qubes.conf
 lib/systemd/system/tor.service.d/30_qubes.conf
 lib/systemd/system/tor@default.service.d/30_qubes.conf
-usr/bin/qrexec-client-vm
-usr/bin/qrexec-fork-server
 usr/bin/qubes-desktop-run
 usr/bin/qubes-open
 usr/bin/qubes-session-autostart
@@ -105,11 +102,7 @@ usr/lib/qubes/prepare-suspend
 usr/lib/qubes/qfile-agent
 usr/lib/qubes/qfile-unpacker
 usr/lib/qubes/qopen-in-vm
-usr/lib/qubes/qrexec-agent
-usr/lib/qubes/qrexec-client-vm
-usr/lib/qubes/qrexec_client_vm
 usr/lib/qubes/qrun-in-vm
-usr/lib/qubes/qubes-rpc-multiplexer
 usr/lib/qubes/qubes-trigger-sync-appmenus.sh
 usr/lib/qubes/qvm-copy-to-vm.gnome
 usr/lib/qubes/qvm-copy-to-vm.kde

+ 21 - 7
rpm_spec/core-agent.spec

@@ -138,6 +138,7 @@ Requires:   python2-qubesdb
 Requires:   ImageMagick
 Requires:   librsvg2-tools
 Requires:   zenity
+Requires:   qubes-core-agent-qrexec
 Requires:   qubes-libvchan
 Requires:   qubes-db-vm
 %if 0%{fedora} >= 23
@@ -180,6 +181,16 @@ DNF plugin for Qubes specific post-installation actions:
  * notify dom0 that updates were installed
  * refresh applications shortcut list
 
+%package qrexec
+Summary:    Qubes qrexec agent
+Requires:   qubes-core-agent
+Requires:   nautilus-python
+Conflicts:  qubes-core-vm < 4.0.0
+
+%description qrexec
+Agent part of Qubes RPC system. A daemon responsible for starting processes as
+requested by dom0 or other VMs, according to dom0-enforced policy.
+
 %package nautilus
 Summary:    Qubes integration for Nautilus
 Requires:   qubes-core-agent
@@ -530,16 +541,10 @@ rm -f %{name}-%{version}
 /usr/bin/xenstore-watch-qubes
 /usr/bin/qubes-desktop-run
 /usr/bin/qubes-open
-/usr/bin/qrexec-fork-server
-/usr/bin/qrexec-client-vm
 /usr/bin/qubes-session-autostart
 %dir /usr/lib/qubes
 /usr/lib/qubes/sync-ntp-clock
 /usr/lib/qubes/prepare-suspend
-/usr/lib/qubes/qrexec-agent
-/usr/lib/qubes/qrexec-client-vm
-/usr/lib/qubes/qrexec_client_vm
-/usr/lib/qubes/qubes-rpc-multiplexer
 /usr/lib/qubes/qfile-agent
 %attr(4755,root,root) /usr/lib/qubes/qfile-unpacker
 /usr/lib/qubes/qopen-in-vm
@@ -597,6 +602,15 @@ rm -f %{name}-%{version}
 %files -n python3-dnf-plugins-qubes-hooks
 %{python3_sitelib}/dnf-plugins/*
 
+%files qrexec
+/usr/bin/qrexec-fork-server
+/usr/bin/qrexec-client-vm
+/usr/lib/qubes/qrexec-agent
+/usr/lib/qubes/qrexec-client-vm
+/usr/lib/qubes/qrexec_client_vm
+/usr/lib/qubes/qubes-rpc-multiplexer
+/lib/systemd/system/qubes-qrexec-agent.service
+
 %files nautilus
 /usr/lib/qubes/qvm-copy-to-vm.gnome
 /usr/lib/qubes/qvm-move-to-vm.gnome
@@ -650,6 +664,7 @@ License:        GPL v2 only
 Group:          Qubes
 Requires:       upstart
 Requires:       qubes-core-agent
+Requires:       qubes-core-agent-qrexec
 Requires:       qubes-core-agent-networking
 Provides:       qubes-core-agent-init-scripts
 Conflicts:      qubes-core-agent-systemd
@@ -739,7 +754,6 @@ The Qubes core startup configuration for SystemD init.
 /lib/systemd/system/qubes-early-vm-config.service
 /lib/systemd/system/qubes-update-check.service
 /lib/systemd/system/qubes-update-check.timer
-/lib/systemd/system/qubes-qrexec-agent.service
 /lib/systemd/system/qubes-updates-proxy-forwarder@.service
 /lib/systemd/system/qubes-updates-proxy-forwarder.socket
 /lib/systemd/system-preset/%qubes_preset_file