summaryrefslogtreecommitdiff
path: root/community/cdemu-daemon
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-01-05 00:38:32 -0800
committerroot <root@rshg054.dnsready.net>2013-01-05 00:38:32 -0800
commit2586a8c75ef351dbd1b31605644e101e92d2c280 (patch)
tree75b5ec37752d80f987f98ad0f10789ce6139d8cd /community/cdemu-daemon
parent782a0d2109c292b60e7de038df66525a81b21429 (diff)
Sat Jan 5 00:38:32 PST 2013
Diffstat (limited to 'community/cdemu-daemon')
-rw-r--r--community/cdemu-daemon/PKGBUILD80
-rw-r--r--community/cdemu-daemon/cdemu-daemon-dbus.conf24
-rw-r--r--community/cdemu-daemon/cdemu-daemon.conf8
-rw-r--r--community/cdemu-daemon/cdemu-daemon.install37
-rw-r--r--community/cdemu-daemon/cdemu-daemon.service2
-rw-r--r--community/cdemu-daemon/system.patch29
6 files changed, 106 insertions, 74 deletions
diff --git a/community/cdemu-daemon/PKGBUILD b/community/cdemu-daemon/PKGBUILD
index 4dec04ed8..33839da24 100644
--- a/community/cdemu-daemon/PKGBUILD
+++ b/community/cdemu-daemon/PKGBUILD
@@ -1,63 +1,73 @@
-# $Id: PKGBUILD 73196 2012-07-03 19:16:11Z dreisner $
-# Maintainer: Ray Rashif <schiv@archlinux.org>
+# $Id: PKGBUILD 81966 2013-01-05 03:16:00Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: 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
+pkgver=2.0.0
+pkgrel=1
pkgdesc="CD/DVD-ROM device emulator daemon"
-arch=('i686' 'x86_64')
+arch=(i686 x86_64)
url="http://cdemu.sourceforge.net/"
-license=('GPL')
-depends=('dbus' 'vhba-module>=20110915-5' 'libao' "libmirage=$pkgver")
+license=(GPL)
+depends=(dbus "vhba-module>=20110915-5" libao "libmirage>=2.0.0")
+makedepends=(cmake)
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')
+backup=('etc/conf.d/cdemu-daemon'
+ 'etc/dbus-1/system.d/cdemu-daemon-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'
+ 'cdemu-daemon.conf' 'system.patch' 'cdemu-daemon.service'
+ 'cdemu-daemon-dbus.conf')
+md5sums=('8f6ad3a9f758938e1572046bccc30417'
'6f31ad7a64d320cf4d6820432184070b'
- 'cbc0937ef4ac50db3ce5cdbbe2e17a3b'
- '90a2516639c05737fa10a110a1cba467'
- 'be9a8f50da3f42129c0a0e3dea8cd56c'
- 'afbf24bcdec382f58d95ba5de29bff71')
+ '60c41731d4dce7b67e1a30dc42d2f274'
+ '99f35b4640529d30ea40224386dd6f4f'
+ '55619a492de4ef06b0759b5e4358bcbb')
build() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd $pkgname-$pkgver
- # make things Arch-friendly
- patch -Np1 -i "$srcdir/system.patch"
-
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib/$pkgname
+ mkdir build; cd build
+ cmake .. \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LIBEXECDIR=lib/$pkgname \
+ -DSYSTEM_BUS_SERVICE=on # This is disabled by default. Should we even ship it?
make
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
-
+ cd $pkgname-$pkgver/build
make DESTDIR="$pkgdir" install
+ install -d "$pkgdir/usr/lib/modules-load.d"
+ echo vhba > "$pkgdir/usr/lib/modules-load.d/cdemu.conf"
+
+ #
+ # All the following stuff concerns the system bus service
+ #
+
+ cd ../..
+
+ # make things Arch-friendly
+ patch "$pkgdir/usr/lib/cdemu-daemon/cdemu-daemon-system.sh" system.patch
+
# 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"
+ install -m644 cdemu-daemon-dbus.conf \
+ "$pkgdir/etc/dbus-1/system.d/cdemu-daemon-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"
+ # the system daemon configuration
+ install -Dm644 cdemu-daemon.conf "$pkgdir/etc/conf.d/cdemu-daemon"
# for systemd
- install -Dm644 "$srcdir/cdemu-daemon.service" \
+ install -Dm644 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"
+ echo SystemdService=cdemu-daemon.service >> \
+ "$pkgdir/usr/share/dbus-1/system-services/net.sf.cdemu.CDEmuDaemon.service"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/cdemu-daemon/cdemu-daemon-dbus.conf b/community/cdemu-daemon/cdemu-daemon-dbus.conf
new file mode 100644
index 000000000..ed14c6e39
--- /dev/null
+++ b/community/cdemu-daemon/cdemu-daemon-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 CDEmuDaemon service on bus -->
+ <policy user="root">
+ <allow own="net.sf.cdemu.CDEmuDaemon"/>
+ </policy>
+ <policy group="root">
+ <allow own="net.sf.cdemu.CDEmuDaemon"/>
+ </policy>
+
+ <!-- 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/community/cdemu-daemon/cdemu-daemon.conf b/community/cdemu-daemon/cdemu-daemon.conf
new file mode 100644
index 000000000..1d8c55fe6
--- /dev/null
+++ b/community/cdemu-daemon/cdemu-daemon.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/cdemu-daemon/cdemu-daemon.install b/community/cdemu-daemon/cdemu-daemon.install
index ba34d1ea0..7a2384b47 100644
--- a/community/cdemu-daemon/cdemu-daemon.install
+++ b/community/cdemu-daemon/cdemu-daemon.install
@@ -1,25 +1,38 @@
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 with at a physical terminal or in the 'cdemu'
+ group can communicate with the system daemon or make use
+ of a session daemon.
- > 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 you need to use a session
+ daemon, e.g. via "cdemu -b session". If you use ALSA and
+ not PulseAudio, echo AUDIO_DRIVER=alsa > ~/.cdemu-daemon
+
+ > The daemons are usually started on-demand, but a system
+ daemon can be manually started via cdemu-daemon.service.
+ See /etc/conf.d/cdemu-daemon for further configuration.
- > 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
+ post_upgrade $1 $1
+
return 0
}
post_upgrade () {
- # Repeat install message due to policy changes
- # Added on 2012-06-19, remove after a grace period
- post_install
+ if (( $(vercmp $2 2.0.0) < 0)); then
+ cat <<MSG
+ > Configuration files and log files have been renamed in
+ order to bring Arch closer to upstream. In particular,
+ this affects:
+ /etc/conf.d/cdemud --> /etc/conf.d/cdemu-daemon
+ /var/log/cdemud.log --> /var/log/cdemu-daemon.log
+ ~/.cdemud --> ~/.cdemu-daemon
+ ~/.cdemud.log --> ~/.cdemu-daemon.log
+ Please move your configuration.
+
+MSG
+ fi
return 0
}
diff --git a/community/cdemu-daemon/cdemu-daemon.service b/community/cdemu-daemon/cdemu-daemon.service
index 9879a3e6f..ab4834f60 100644
--- a/community/cdemu-daemon/cdemu-daemon.service
+++ b/community/cdemu-daemon/cdemu-daemon.service
@@ -3,7 +3,7 @@ Description=CDEmu Daemon
[Service]
Type=dbus
-BusName=net.sf.cdemu.CDEMUD_Daemon
+BusName=net.sf.cdemu.CDEmuDaemon
ExecStart=/usr/lib/cdemu-daemon/cdemu-daemon-system.sh
[Install]
diff --git a/community/cdemu-daemon/system.patch b/community/cdemu-daemon/system.patch
index 3c3d4b221..42812f6cf 100644
--- a/community/cdemu-daemon/system.patch
+++ b/community/cdemu-daemon/system.patch
@@ -1,26 +1,3 @@
-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
@@ -29,17 +6,17 @@ diff -aur cdemu-daemon-1.5.0.orig/system/cdemu-daemon-system.sh cdemu-daemon-1.5
# 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
++# from /etc/conf.d/cdemu-daemon
# Default settings
NUM_DEVICES=2
AUDIO_DRIVER=null
-LOG_FILE=/tmp/cdemu-daemon.log
-+LOG_FILE=/var/log/cdemud.log
++LOG_FILE=/var/log/cdemu-daemon.log
# Read the settings
-CONFIG_FILE=/etc/sysconfig/cdemu-daemon
-+CONFIG_FILE=/etc/conf.d/cdemud
++CONFIG_FILE=/etc/conf.d/cdemu-daemon
if [ -f ${CONFIG_FILE} ]; then
. ${CONFIG_FILE};