summaryrefslogtreecommitdiff
path: root/community-testing/cdemu-daemon
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-06-21 00:01:36 +0000
committerroot <root@rshg054.dnsready.net>2012-06-21 00:01:36 +0000
commit6d22541bcebb7236bedfb98a96d5a1292072e86c (patch)
tree1656959d3d65b061d69d74cef6b740dbc3476683 /community-testing/cdemu-daemon
parent530e6e88786befa5d1bcd569e480f1b9fec5b102 (diff)
Thu Jun 21 00:01:36 UTC 2012
Diffstat (limited to 'community-testing/cdemu-daemon')
-rw-r--r--community-testing/cdemu-daemon/PKGBUILD63
-rw-r--r--community-testing/cdemu-daemon/cdemu-daemon.install27
-rw-r--r--community-testing/cdemu-daemon/cdemu-daemon.service10
-rw-r--r--community-testing/cdemu-daemon/cdemud-dbus.conf24
-rw-r--r--community-testing/cdemu-daemon/cdemud.conf8
-rw-r--r--community-testing/cdemu-daemon/cdemud.rc34
-rw-r--r--community-testing/cdemu-daemon/system.patch45
7 files changed, 211 insertions, 0 deletions
diff --git a/community-testing/cdemu-daemon/PKGBUILD b/community-testing/cdemu-daemon/PKGBUILD
new file mode 100644
index 000000000..78af6152f
--- /dev/null
+++ b/community-testing/cdemu-daemon/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 72681 2012-06-19 12:54:14Z heftig $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=cdemu-daemon
+pkgver=1.5.0
+pkgrel=6
+pkgdesc="CD/DVD-ROM device emulator daemon"
+arch=('i686' 'x86_64')
+url="http://cdemu.sourceforge.net/"
+license=('GPL')
+depends=('dbus' 'vhba-module>=20110915-5' 'libao' "libmirage=$pkgver")
+optdepends=('alsa-lib: to enable the ALSA audio driver'
+ 'pulseaudio: to enable the PA audio driver')
+backup=('etc/conf.d/cdemud'
+ 'etc/dbus-1/system.d/cdemud-dbus.conf')
+install=$pkgname.install
+source=("http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.bz2"
+ 'cdemud.conf' 'cdemud.rc' 'system.patch' 'cdemu-daemon.service'
+ 'cdemud-dbus.conf')
+md5sums=('5ba780caa26d855942512b5b3c22405a'
+ '6f31ad7a64d320cf4d6820432184070b'
+ 'cbc0937ef4ac50db3ce5cdbbe2e17a3b'
+ '90a2516639c05737fa10a110a1cba467'
+ 'be9a8f50da3f42129c0a0e3dea8cd56c'
+ 'afbf24bcdec382f58d95ba5de29bff71')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # make things Arch-friendly
+ patch -Np1 -i "$srcdir/system.patch"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/$pkgname
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # Custom dbus policy, tightening security to console and 'cdemu' group
+ install -m644 "$srcdir/cdemud-dbus.conf" \
+ "$pkgdir/etc/dbus-1/system.d/cdemud-dbus.conf"
+
+ # the init stuff
+ install -Dm644 "$srcdir/cdemud.conf" "$pkgdir/etc/conf.d/cdemud"
+ install -Dm755 "$srcdir/cdemud.rc" "$pkgdir/etc/rc.d/cdemud"
+ install -d "$pkgdir/usr/lib/modules-load.d"
+ echo "vhba" > "$pkgdir/usr/lib/modules-load.d/cdemu.conf"
+
+ # for systemd
+ install -Dm644 "$srcdir/cdemu-daemon.service" \
+ "$pkgdir/usr/lib/systemd/system/cdemu-daemon.service"
+ echo "SystemdService=cdemu-daemon.service" >> \
+ "$pkgdir/usr/share/dbus-1/system-services/net.sf.cdemu.CDEMUD_Daemon.service"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/cdemu-daemon/cdemu-daemon.install b/community-testing/cdemu-daemon/cdemu-daemon.install
new file mode 100644
index 000000000..ba34d1ea0
--- /dev/null
+++ b/community-testing/cdemu-daemon/cdemu-daemon.install
@@ -0,0 +1,27 @@
+post_install () {
+ cat <<MSG
+ > The daemon is automatically started, but can be manually
+ started via /etc/rc.d/cdemud or cdemu-daemon.service.
+ > See /etc/conf.d/cdemud for further configuration.
+
+ > Only users at the console or in the 'cdemu' group can
+ communicate with the system daemon or use a session
+ daemon.
+
+ > If you want to output CD-Audio, write AUDIO_DRIVER=pulse or
+ AUDIO_DRIVER=alsa to ~/.cdemud and use "cdemu -b session"
+ to control a session daemon.
+MSG
+
+ return 0
+}
+
+post_upgrade () {
+ # Repeat install message due to policy changes
+ # Added on 2012-06-19, remove after a grace period
+ post_install
+
+ return 0
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/cdemu-daemon/cdemu-daemon.service b/community-testing/cdemu-daemon/cdemu-daemon.service
new file mode 100644
index 000000000..9879a3e6f
--- /dev/null
+++ b/community-testing/cdemu-daemon/cdemu-daemon.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=CDEmu Daemon
+
+[Service]
+Type=dbus
+BusName=net.sf.cdemu.CDEMUD_Daemon
+ExecStart=/usr/lib/cdemu-daemon/cdemu-daemon-system.sh
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community-testing/cdemu-daemon/cdemud-dbus.conf b/community-testing/cdemu-daemon/cdemud-dbus.conf
new file mode 100644
index 000000000..3043fe251
--- /dev/null
+++ b/community-testing/cdemu-daemon/cdemud-dbus.conf
@@ -0,0 +1,24 @@
+<!DOCTYPE busconfig PUBLIC
+ "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+
+<busconfig>
+ <!-- Only root can own the CDEMUD_Daemon service on bus -->
+ <policy user="root">
+ <allow own="net.sf.cdemu.CDEMUD_Daemon"/>
+ </policy>
+ <policy group="root">
+ <allow own="net.sf.cdemu.CDEMUD_Daemon"/>
+ </policy>
+
+ <!-- Allow users at the console to invoke methods on the interface -->
+ <policy at_console="true">
+ <allow send_destination="net.sf.cdemu.CDEMUD_Daemon"/>
+ </policy>
+
+ <!-- Allow users in the 'cdemu' group to invoke methods on the interface -->
+ <policy group="cdemu">
+ <allow send_destination="net.sf.cdemu.CDEMUD_Daemon"/>
+ </policy>
+</busconfig>
+
diff --git a/community-testing/cdemu-daemon/cdemud.conf b/community-testing/cdemu-daemon/cdemud.conf
new file mode 100644
index 000000000..1d8c55fe6
--- /dev/null
+++ b/community-testing/cdemu-daemon/cdemud.conf
@@ -0,0 +1,8 @@
+# how many optical drives to emulate
+NUM_DEVICES=2
+
+# audio backend (null, alsa or pulse)
+AUDIO_DRIVER=null
+
+# log file
+LOG_FILE=/var/log/cdemud.log
diff --git a/community-testing/cdemu-daemon/cdemud.rc b/community-testing/cdemu-daemon/cdemud.rc
new file mode 100644
index 000000000..09b9ec345
--- /dev/null
+++ b/community-testing/cdemu-daemon/cdemud.rc
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting cdemud"
+ /usr/lib/cdemu-daemon/cdemu-daemon-system.sh &
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon cdemud
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping cdemud"
+ kill `pidof cdemud` &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ rm_daemon cdemud
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community-testing/cdemu-daemon/system.patch b/community-testing/cdemu-daemon/system.patch
new file mode 100644
index 000000000..3c3d4b221
--- /dev/null
+++ b/community-testing/cdemu-daemon/system.patch
@@ -0,0 +1,45 @@
+diff -aur cdemu-daemon-1.5.0.orig/session/cdemu-daemon-session.sh cdemu-daemon-1.5.0/session/cdemu-daemon-session.sh
+--- cdemu-daemon-1.5.0.orig/session/cdemu-daemon-session.sh 2012-03-25 16:35:40.577837996 +0800
++++ cdemu-daemon-1.5.0/session/cdemu-daemon-session.sh 2012-03-25 16:39:12.180024983 +0800
+@@ -1,15 +1,15 @@
+ #!/bin/sh
+ # Starts the CDEmu daemon instance on D-Bus *session* bus. Optional
+ # configuration (number of devices, audio driver, log file) are read
+-# from ~/.cdemu-daemon
++# from ~/.cdemud
+
+ # Default settings
+ NUM_DEVICES=2
+-AUDIO_DRIVER=pulse
+-LOG_FILE=~/.cdemu-daemon.log
++AUDIO_DRIVER=null
++LOG_FILE=~/.cdemud.log
+
+ # Read the settings
+-CONFIG_FILE=~/.cdemu-daemon
++CONFIG_FILE=~/.cdemud
+
+ if [ -f ${CONFIG_FILE} ]; then
+ . ${CONFIG_FILE};
+diff -aur cdemu-daemon-1.5.0.orig/system/cdemu-daemon-system.sh cdemu-daemon-1.5.0/system/cdemu-daemon-system.sh
+--- cdemu-daemon-1.5.0.orig/system/cdemu-daemon-system.sh 2012-03-25 16:35:40.581171312 +0800
++++ cdemu-daemon-1.5.0/system/cdemu-daemon-system.sh 2012-03-25 16:36:48.810801678 +0800
+@@ -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/cdemud
+
+ # Default settings
+ NUM_DEVICES=2
+ AUDIO_DRIVER=null
+-LOG_FILE=/tmp/cdemu-daemon.log
++LOG_FILE=/var/log/cdemud.log
+
+ # Read the settings
+-CONFIG_FILE=/etc/sysconfig/cdemu-daemon
++CONFIG_FILE=/etc/conf.d/cdemud
+
+ if [ -f ${CONFIG_FILE} ]; then
+ . ${CONFIG_FILE};