core/cdemu-daemon/0001-Patch-system-daemon-for-Arch-friendliness.patch
2017-10-23 00:10:01 +02:00

152 lines
5.5 KiB
Diff

From 17d054bc9fb02bbb557f9de68e29e715a17f3ee6 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 12 Jun 2017 22:22:51 +0200
Subject: [PATCH] Patch system daemon for Arch-friendliness
---
cdemu-daemon/CMakeLists.txt | 15 ++++++++++++++-
cdemu-daemon/system/cdemu-daemon-dbus.conf | 9 +++++++--
cdemu-daemon/system/cdemu-daemon-system.sh | 6 +++---
cdemu-daemon/system/cdemu-daemon.conf | 8 ++++++++
cdemu-daemon/system/cdemu-daemon.service.in | 10 ++++++++++
cdemu-daemon/system/net.sf.cdemu.CDEmuDaemon.service.in | 4 ++--
6 files changed, 44 insertions(+), 8 deletions(-)
create mode 100644 cdemu-daemon/system/cdemu-daemon.conf
create mode 100644 cdemu-daemon/system/cdemu-daemon.service.in
diff --git a/cdemu-daemon/CMakeLists.txt b/cdemu-daemon/CMakeLists.txt
index 76feb818d09a57af..c6abd56b82484b6f 100644
--- a/cdemu-daemon/CMakeLists.txt
+++ b/cdemu-daemon/CMakeLists.txt
@@ -15,7 +15,7 @@ set (CDEMU_DAEMON_INTERFACE_VERSION_MINOR 0)
include (GNUInstallDirs)
# Options
-option (SYSTEM_BUS_SERVICE "Install CDEmu daemon as D-Bus system bus service" off)
+option (SYSTEM_BUS_SERVICE "Install CDEmu daemon as D-Bus system bus service" on)
option (SESSION_BUS_SERVICE "Install CDEmu daemon as D-Bus session bus service" on)
# If install prefix is /usr, override the sysconf dir to be /etc instead of /usr/etc
@@ -45,6 +45,10 @@ configure_file (
${PROJECT_SOURCE_DIR}/system/net.sf.cdemu.CDEmuDaemon.service.in
${PROJECT_BINARY_DIR}/system/net.sf.cdemu.CDEmuDaemon.service
)
+configure_file (
+ ${PROJECT_SOURCE_DIR}/system/cdemu-daemon.service.in
+ ${PROJECT_BINARY_DIR}/system/cdemu-daemon.service
+)
# Global definitions
add_definitions (-std=c99) # We're compiling using C99
@@ -121,13 +125,22 @@ if (SYSTEM_BUS_SERVICE)
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
)
install (
+ FILES ${PROJECT_BINARY_DIR}/system/cdemu-daemon.service
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/systemd/system/
+ )
+ install (
FILES ${PROJECT_BINARY_DIR}/system/net.sf.cdemu.CDEmuDaemon.service
DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/system-services/
)
install (
FILES system/cdemu-daemon-dbus.conf
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d
)
+ install (
+ FILES system/cdemu-daemon.conf
+ RENAME cdemu-daemon
+ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/conf.d
+ )
endif ()
# Translations; we use the version provided by our FindIntlTool.cmake
diff --git a/cdemu-daemon/system/cdemu-daemon-dbus.conf b/cdemu-daemon/system/cdemu-daemon-dbus.conf
index c450d78cf03bce6a..e86b62cf0437a9fd 100644
--- a/cdemu-daemon/system/cdemu-daemon-dbus.conf
+++ b/cdemu-daemon/system/cdemu-daemon-dbus.conf
@@ -11,8 +11,13 @@
<allow own="net.sf.cdemu.CDEmuDaemon"/>
</policy>
- <!-- Allow anyone to invoke methods on the interface -->
- <policy context="default">
+ <!-- Allow users at the console to invoke methods on the interface -->
+ <policy at_console="true">
+ <allow send_destination="net.sf.cdemu.CDEmuDaemon"/>
+ </policy>
+
+ <!-- Allow users in the 'cdemu' group to invoke methods on the interface -->
+ <policy group="cdemu">
<allow send_destination="net.sf.cdemu.CDEmuDaemon"/>
</policy>
</busconfig>
diff --git a/cdemu-daemon/system/cdemu-daemon-system.sh b/cdemu-daemon/system/cdemu-daemon-system.sh
index d9ab60aaff559400..735c24442a82e8bc 100755
--- a/cdemu-daemon/system/cdemu-daemon-system.sh
+++ b/cdemu-daemon/system/cdemu-daemon-system.sh
@@ -1,15 +1,15 @@
#!/bin/sh
# Starts the CDEmu daemon instance on D-Bus *system* bus. Optional
# configuration (number of devices, audio driver, log file) are read
-# from /etc/sysconfig/cdemu-daemon
+# from /etc/conf.d/cdemu-daemon
# Default settings
NUM_DEVICES=1
AUDIO_DRIVER=null
-LOG_FILE=/tmp/cdemu-daemon.log
+LOG_FILE=/var/log/cdemu-daemon.log
# Read the settings
-CONFIG_FILE=/etc/sysconfig/cdemu-daemon
+CONFIG_FILE=/etc/conf.d/cdemu-daemon
if [ -f ${CONFIG_FILE} ]; then
. ${CONFIG_FILE};
diff --git a/cdemu-daemon/system/cdemu-daemon.conf b/cdemu-daemon/system/cdemu-daemon.conf
new file mode 100644
index 0000000000000000..d0d6ecfebb77fbfb
--- /dev/null
+++ b/cdemu-daemon/system/cdemu-daemon.conf
@@ -0,0 +1,8 @@
+# how many optical drives to emulate
+#NUM_DEVICES=1
+
+# audio backend (null, default, alsa, or pulse)
+#AUDIO_DRIVER=null
+
+# log file
+#LOG_FILE=/var/log/cdemu-daemon.log
diff --git a/cdemu-daemon/system/cdemu-daemon.service.in b/cdemu-daemon/system/cdemu-daemon.service.in
new file mode 100644
index 0000000000000000..43b5a61dc476e384
--- /dev/null
+++ b/cdemu-daemon/system/cdemu-daemon.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=CDEmu Daemon
+
+[Service]
+Type=dbus
+BusName=net.sf.cdemu.CDEmuDaemon
+ExecStart=@CMAKE_INSTALL_FULL_LIBEXECDIR@/cdemu-daemon-system.sh
+
+[Install]
+WantedBy=multi-user.target
diff --git a/cdemu-daemon/system/net.sf.cdemu.CDEmuDaemon.service.in b/cdemu-daemon/system/net.sf.cdemu.CDEmuDaemon.service.in
index f9cf646b57c3563f..9004c310595273e4 100644
--- a/cdemu-daemon/system/net.sf.cdemu.CDEmuDaemon.service.in
+++ b/cdemu-daemon/system/net.sf.cdemu.CDEmuDaemon.service.in
@@ -1,5 +1,5 @@
[D-BUS Service]
-Name=net.sf.cdemu.CdemuDaemon
+Name=net.sf.cdemu.CDEmuDaemon
Exec=@CMAKE_INSTALL_FULL_LIBEXECDIR@/cdemu-daemon-system.sh
User=root
-
+SystemdService=cdemu-daemon.service
--
2.13.1