summaryrefslogtreecommitdiff
path: root/community/cdemu-daemon
diff options
context:
space:
mode:
Diffstat (limited to 'community/cdemu-daemon')
-rw-r--r--community/cdemu-daemon/PKGBUILD54
-rw-r--r--community/cdemu-daemon/cdemu-daemon.install42
-rw-r--r--community/cdemu-daemon/system-arch.patch121
3 files changed, 217 insertions, 0 deletions
diff --git a/community/cdemu-daemon/PKGBUILD b/community/cdemu-daemon/PKGBUILD
new file mode 100644
index 000000000..13a14a71f
--- /dev/null
+++ b/community/cdemu-daemon/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 92546 2013-06-08 00:40:57Z 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=2.1.0
+pkgrel=1
+pkgdesc="CD/DVD-ROM device emulator daemon"
+arch=(i686 x86_64)
+url="http://cdemu.sourceforge.net/"
+license=(GPL)
+depends=(dbus "vhba-module>=20130607" libao "libmirage>=2.1.0")
+makedepends=(cmake)
+optdepends=('alsa-lib: to enable the ALSA audio driver'
+ 'pulseaudio: to enable the PA audio driver')
+backup=(etc/conf.d/cdemu-daemon
+ etc/dbus-1/system.d/cdemu-daemon-dbus.conf)
+install=cdemu-daemon.install
+source=("http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.bz2"
+ system-arch.patch)
+sha256sums=('8224a5d8d16cbd9a2294e9c7ab544d61059d9870023e48705699af7366846580'
+ '29507da7367983bdc5f541e9f9252f189412041076842b8d08a5c4dac29f23cd')
+
+prepare() {
+ mkdir build
+ cd $pkgname-$pkgver
+
+ # Patch system daemon for Arch-friendlyness
+ # It's disabled by default. Should we even ship it?
+ patch -Np1 -i ../system-arch.patch
+}
+
+build() {
+ cd build
+ cmake ../$pkgname-$pkgver \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LIBEXECDIR=lib/$pkgname
+ make
+}
+
+package() {
+ cd build
+ make DESTDIR="$pkgdir" install
+
+ install -d "$pkgdir/usr/lib/modules-load.d"
+ echo vhba > "$pkgdir/usr/lib/modules-load.d/cdemu.conf"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/cdemu-daemon/cdemu-daemon.install b/community/cdemu-daemon/cdemu-daemon.install
new file mode 100644
index 000000000..169ba6ec8
--- /dev/null
+++ b/community/cdemu-daemon/cdemu-daemon.install
@@ -0,0 +1,42 @@
+post_install () {
+ cat <<MSG
+ > 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.
+
+ > 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.
+
+MSG
+
+ post_upgrade $1 $1
+
+ modprobe vhba
+
+ return 0
+}
+
+post_upgrade () {
+ 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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/cdemu-daemon/system-arch.patch b/community/cdemu-daemon/system-arch.patch
new file mode 100644
index 000000000..54a08bd16
--- /dev/null
+++ b/community/cdemu-daemon/system-arch.patch
@@ -0,0 +1,121 @@
+diff -u -rN cdemu-daemon-2.1.0/CMakeLists.txt cdemu-daemon-2.1.0-arch/CMakeLists.txt
+--- cdemu-daemon-2.1.0/CMakeLists.txt 2013-06-07 21:33:53.000000000 +0200
++++ cdemu-daemon-2.1.0-arch/CMakeLists.txt 2013-06-08 02:20:15.948655947 +0200
+@@ -18,7 +18,7 @@
+ include (FileList)
+
+ # 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
+@@ -46,6 +46,10 @@
+ ${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=gnu99) #NOTE: Compilation bugs out on using signals and -std=c99
+@@ -104,6 +108,10 @@
+ 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/
+ )
+@@ -111,5 +119,10 @@
+ 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 ()
+
+diff -u -rN cdemu-daemon-2.1.0/system/cdemu-daemon.conf cdemu-daemon-2.1.0-arch/system/cdemu-daemon.conf
+--- cdemu-daemon-2.1.0/system/cdemu-daemon.conf 1970-01-01 01:00:00.000000000 +0100
++++ cdemu-daemon-2.1.0-arch/system/cdemu-daemon.conf 2013-06-08 02:12:19.032035389 +0200
+@@ -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 -u -rN cdemu-daemon-2.1.0/system/cdemu-daemon-dbus.conf cdemu-daemon-2.1.0-arch/system/cdemu-daemon-dbus.conf
+--- cdemu-daemon-2.1.0/system/cdemu-daemon-dbus.conf 2013-06-07 21:33:53.000000000 +0200
++++ cdemu-daemon-2.1.0-arch/system/cdemu-daemon-dbus.conf 2013-06-08 02:11:52.922220389 +0200
+@@ -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 -u -rN cdemu-daemon-2.1.0/system/cdemu-daemon.service.in cdemu-daemon-2.1.0-arch/system/cdemu-daemon.service.in
+--- cdemu-daemon-2.1.0/system/cdemu-daemon.service.in 1970-01-01 01:00:00.000000000 +0100
++++ cdemu-daemon-2.1.0-arch/system/cdemu-daemon.service.in 2013-06-08 02:13:08.331686074 +0200
+@@ -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 -u -rN cdemu-daemon-2.1.0/system/cdemu-daemon-system.sh cdemu-daemon-2.1.0-arch/system/cdemu-daemon-system.sh
+--- cdemu-daemon-2.1.0/system/cdemu-daemon-system.sh 2013-06-07 21:33:53.000000000 +0200
++++ cdemu-daemon-2.1.0-arch/system/cdemu-daemon-system.sh 2013-06-08 02:11:53.152218760 +0200
+@@ -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 -u -rN cdemu-daemon-2.1.0/system/net.sf.cdemu.CDEmuDaemon.service.in cdemu-daemon-2.1.0-arch/system/net.sf.cdemu.CDEmuDaemon.service.in
+--- cdemu-daemon-2.1.0/system/net.sf.cdemu.CDEmuDaemon.service.in 2013-06-07 21:33:53.000000000 +0200
++++ cdemu-daemon-2.1.0-arch/system/net.sf.cdemu.CDEmuDaemon.service.in 2013-06-08 02:14:26.824463231 +0200
+@@ -2,4 +2,4 @@
+ Name=net.sf.cdemu.CdemuDaemon
+ Exec=@CMAKE_INSTALL_FULL_LIBEXECDIR@/cdemu-daemon-system.sh
+ User=root
+-
++SystemdService=cdemu-daemon.service