]> glassweightruler.freedombox.rocks Git - waydroid.git/commitdiff
Makefile: Install dbus service
authorAlessandro Astone <ales.astone@gmail.com>
Wed, 28 Dec 2022 22:19:58 +0000 (23:19 +0100)
committerAlessandro Astone <ales.astone@gmail.com>
Tue, 3 Jan 2023 15:03:12 +0000 (16:03 +0100)
Optionally activate the systemd service

Makefile
dbus/id.waydro.Container.conf [new file with mode: 0644]
dbus/id.waydro.Container.service [new file with mode: 0644]
debian/control
systemd/waydroid-container.service

index c70814d34f2e6f29bc538192a63b292093ddb5d3..f838328df09927fce28abbef084290ff0d10bbbd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 PREFIX := /usr
 
 USE_SYSTEMD ?= 1
 PREFIX := /usr
 
 USE_SYSTEMD ?= 1
+USE_DBUS_ACTIVATION ?= 1
 USE_NFTABLES ?= 0
 
 WAYDROID_DIR := $(PREFIX)/lib/waydroid
 USE_NFTABLES ?= 0
 
 WAYDROID_DIR := $(PREFIX)/lib/waydroid
@@ -8,6 +9,7 @@ BIN_DIR := $(PREFIX)/bin
 APPS_DIR := $(PREFIX)/share/applications
 METAINFO_DIR := $(PREFIX)/share/metainfo
 SYSD_DIR := $(PREFIX)/lib/systemd/system
 APPS_DIR := $(PREFIX)/share/applications
 METAINFO_DIR := $(PREFIX)/share/metainfo
 SYSD_DIR := $(PREFIX)/lib/systemd/system
+DBUS_DIR := $(PREFIX)/share/dbus-1
 APPARMOR_DIR := /etc/apparmor.d
 
 INSTALL_WAYDROID_DIR := $(DESTDIR)$(WAYDROID_DIR)
 APPARMOR_DIR := /etc/apparmor.d
 
 INSTALL_WAYDROID_DIR := $(DESTDIR)$(WAYDROID_DIR)
@@ -15,17 +17,23 @@ INSTALL_BIN_DIR := $(DESTDIR)$(BIN_DIR)
 INSTALL_APPS_DIR := $(DESTDIR)$(APPS_DIR)
 INSTALL_METAINFO_DIR := $(DESTDIR)$(METAINFO_DIR)
 INSTALL_SYSD_DIR := $(DESTDIR)$(SYSD_DIR)
 INSTALL_APPS_DIR := $(DESTDIR)$(APPS_DIR)
 INSTALL_METAINFO_DIR := $(DESTDIR)$(METAINFO_DIR)
 INSTALL_SYSD_DIR := $(DESTDIR)$(SYSD_DIR)
+INSTALL_DBUS_DIR := $(DESTDIR)$(DBUS_DIR)
 INSTALL_APPARMOR_DIR := $(DESTDIR)$(APPARMOR_DIR)
 
 build:
        @echo "Nothing to build, run 'make install' to copy the files!"
 
 install:
 INSTALL_APPARMOR_DIR := $(DESTDIR)$(APPARMOR_DIR)
 
 build:
        @echo "Nothing to build, run 'make install' to copy the files!"
 
 install:
-       install -d $(INSTALL_WAYDROID_DIR) $(INSTALL_BIN_DIR) $(INSTALL_APPS_DIR) $(INSTALL_METAINFO_DIR)
+       install -d $(INSTALL_WAYDROID_DIR) $(INSTALL_BIN_DIR) $(INSTALL_APPS_DIR) $(INSTALL_METAINFO_DIR) $(INSTALL_DBUS_DIR)/system.d
        cp -a data tools waydroid.py $(INSTALL_WAYDROID_DIR)
        ln -sf $(WAYDROID_DIR)/waydroid.py $(INSTALL_BIN_DIR)/waydroid
        mv $(INSTALL_WAYDROID_DIR)/data/*.desktop $(INSTALL_APPS_DIR)
        mv $(INSTALL_WAYDROID_DIR)/data/*.metainfo.xml $(INSTALL_METAINFO_DIR)
        cp -a data tools waydroid.py $(INSTALL_WAYDROID_DIR)
        ln -sf $(WAYDROID_DIR)/waydroid.py $(INSTALL_BIN_DIR)/waydroid
        mv $(INSTALL_WAYDROID_DIR)/data/*.desktop $(INSTALL_APPS_DIR)
        mv $(INSTALL_WAYDROID_DIR)/data/*.metainfo.xml $(INSTALL_METAINFO_DIR)
+       cp dbus/id.waydro.Container.conf $(INSTALL_DBUS_DIR)/system.d/
+       if [ $(USE_DBUS_ACTIVATION) = 1 ]; then \
+               install -d $(INSTALL_DBUS_DIR)/system-services; \
+               cp dbus/id.waydro.Container.service $(INSTALL_DBUS_DIR)/system-services/; \
+       fi
        if [ $(USE_SYSTEMD) = 1 ]; then \
                install -d $(INSTALL_SYSD_DIR); \
                cp systemd/waydroid-container.service $(INSTALL_SYSD_DIR); \
        if [ $(USE_SYSTEMD) = 1 ]; then \
                install -d $(INSTALL_SYSD_DIR); \
                cp systemd/waydroid-container.service $(INSTALL_SYSD_DIR); \
diff --git a/dbus/id.waydro.Container.conf b/dbus/id.waydro.Container.conf
new file mode 100644 (file)
index 0000000..e94b9e8
--- /dev/null
@@ -0,0 +1,12 @@
+<!DOCTYPE busconfig PUBLIC
+ "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+    <policy user="root">
+        <allow own="id.waydro.Container"/>
+    </policy>
+    <policy context="default">
+        <allow send_destination="id.waydro.Container"/>
+        <allow receive_sender="id.waydro.Container"/>
+    </policy>
+</busconfig>
diff --git a/dbus/id.waydro.Container.service b/dbus/id.waydro.Container.service
new file mode 100644 (file)
index 0000000..26b43d9
--- /dev/null
@@ -0,0 +1,5 @@
+[D-BUS Service]
+Name=id.waydro.Container
+Exec=/usr/bin/waydroid -w container start
+User=root
+SystemdService=waydroid-container.service
index b0714347d561156476289cbff1073aeea1034ebe..89a4cd47bab479ceba2a518e3dc6044827c0a49d 100644 (file)
@@ -17,7 +17,9 @@ Depends: ${misc:Depends},
          lxc,
          python3-gbinder,
          python3-gi,
          lxc,
          python3-gbinder,
          python3-gi,
-         gir1.2-gtk-3.0
+         gir1.2-gtk-3.0,
+         python3-dbus,
+         dbus
 Description: Androidâ„¢ application support
  waydroid allows running a separate Androidâ„¢ environment
  confined to a LXC container.
 Description: Androidâ„¢ application support
  waydroid allows running a separate Androidâ„¢ environment
  confined to a LXC container.
index a4fd02063d5649bd70ede25338f3a9537b3b1024..c8ffbd81800f09c1c52ce5b62266ba624881bc60 100644 (file)
@@ -2,9 +2,8 @@
 Description=Waydroid Container
 
 [Service]
 Description=Waydroid Container
 
 [Service]
+BusName=id.waydro.Container
 ExecStart=/usr/bin/waydroid -w container start
 ExecStart=/usr/bin/waydroid -w container start
-ExecStop=/usr/bin/waydroid container stop
-ExecStopPost=/usr/bin/waydroid session stop
 
 [Install]
 WantedBy=multi-user.target
 
 [Install]
 WantedBy=multi-user.target