diff options
Diffstat (limited to 'community/cdemu-daemon')
-rw-r--r-- | community/cdemu-daemon/PKGBUILD | 54 | ||||
-rw-r--r-- | community/cdemu-daemon/cdemu-daemon.install | 42 | ||||
-rw-r--r-- | community/cdemu-daemon/system-arch.patch | 121 |
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 |