aboutsummaryrefslogtreecommitdiff
path: root/multimedia/cx88
diff options
context:
space:
mode:
authorBartek Rutkowski <robak@FreeBSD.org>2015-03-02 17:30:53 +0000
committerBartek Rutkowski <robak@FreeBSD.org>2015-03-02 17:30:53 +0000
commit66171215206efb688e3a08e5a9fcd2689eaf5f13 (patch)
tree6f40f5a4023f015fbb34422c901ec1691d5ccd90 /multimedia/cx88
parent84bdb0393372e1d1e2c391160e2ddaa5d7399a73 (diff)
downloadports-66171215206efb688e3a08e5a9fcd2689eaf5f13.tar.gz
ports-66171215206efb688e3a08e5a9fcd2689eaf5f13.zip
multimedia/cx88: fix rc startup script
PR: 197574 Submitted by: Jason Harmening <jason.harmening@gmail.com>
Notes
Notes: svn path=/head/; revision=380277
Diffstat (limited to 'multimedia/cx88')
-rw-r--r--multimedia/cx88/Makefile4
-rw-r--r--multimedia/cx88/files/cx88d.in72
-rw-r--r--multimedia/cx88/pkg-plist1
3 files changed, 75 insertions, 2 deletions
diff --git a/multimedia/cx88/Makefile b/multimedia/cx88/Makefile
index 2403a170fa96..8bf12212364b 100644
--- a/multimedia/cx88/Makefile
+++ b/multimedia/cx88/Makefile
@@ -3,6 +3,7 @@
PORTNAME= cx88
PORTVERSION= 1.4.11
+PORTREVISION= 1
CATEGORIES= multimedia
MASTER_SITES= ftp://corona.homeunix.net/ports/cx88/
@@ -17,7 +18,8 @@ BUILD_DEPENDS= ${LOCALBASE}/lib/libezxml.a:${PORTSDIR}/textproc/ezxml \
MAKE_ARGS+= LIBTUNER_LIB=${LOCALBASE}/lib/libtuner LIBTUNER_HEADER=${LOCALBASE}/include/libtuner KMODDIR=${KMODDIR} PREFIX=${STAGEDIR}${PREFIX}
MAKE_JOBS_UNSAFE= yes
-USES= kmod pkgconfig uidfix
+USES= kmod pkgconfig uidfix
+USE_RC_SUBR= cx88d
OPTIONS_DEFINE= DEBUG LINUX_COMPAT HAL
diff --git a/multimedia/cx88/files/cx88d.in b/multimedia/cx88/files/cx88d.in
new file mode 100644
index 000000000000..f040276b85ae
--- /dev/null
+++ b/multimedia/cx88/files/cx88d.in
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# PROVIDE: cx88d
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable cx88d
+#
+# cx88d_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable cx88d.
+# cx88d_args (str): Extra arguments to be passed to all cx88 instances (default "-p 0 -q -h -u dvb://")
+# cx88d_devs (str): Whitespace-delimited list of devices on which
+# to enable DVB capture (e.g. cx88d_devs="cx88mpeg0 cx88mpeg2").
+# Defaults to all cx88mpeg devices under /dev.
+# cx88d_{dev}_args (str) Extra arguments to be passed to cx88 instance for specific device
+# (e.g. cx88d_cx88mpeg1_args="-u udp://127.0.0.1:8802") (default empty)
+#
+
+. /etc/rc.subr
+
+name="cx88d"
+rcvar=cx88d_enable
+
+load_rc_config $name
+
+: ${cx88d_enable:="NO"}
+: ${cx88d_args="-p 0 -q -h -u dvb://"}
+
+procname="%%PREFIX%%/bin/cx88"
+command="/usr/sbin/daemon"
+
+cx88d_showports() {
+ printf "PORT\tCMMMAND\n"
+ sockstat -l -P tcp | grep cx88 | while read line; do
+ command=""
+ port=""
+ for field in $line; do
+ if [ `expr "$field" : "[0-9]*"` -gt 0 -a "$command" = "" ]; then
+ command=`ps -o command= -p $field`
+ elif [ `expr "$field" : "\*:[0-9]*"` -gt 2 -a "$port" = "" ]; then
+ port=`echo $field | cut -c 3-`
+ fi
+ done
+ printf "$port\t$command\n"
+ done
+}
+
+extra_commands="showports"
+showports_cmd="${name}_showports"
+
+case $1 in
+ *showports)
+ run_rc_command "$1"
+ ;;
+ *rcvar)
+ run_rc_command "$1"
+ ;;
+ *)
+ if [ -z "${cx88d_devs}" ]; then
+ cx88d_devs=`ls /dev/cx88mpeg* | cut -c 6-`
+ fi
+ for devnode in ${cx88d_devs}; do
+ pidfile="/var/run/cx88d.${devnode}.pid"
+ eval cx88d_instance_flags=\$cx88d_${devnode}_args
+ command_args="-fp ${pidfile} ${procname} -d /dev/${devnode} ${cx88d_args} ${cx88d_instance_flags}"
+ run_rc_command "$1"
+ done
+ ;;
+esac
+
diff --git a/multimedia/cx88/pkg-plist b/multimedia/cx88/pkg-plist
index 56e5d1066edf..322df4a6d8ab 100644
--- a/multimedia/cx88/pkg-plist
+++ b/multimedia/cx88/pkg-plist
@@ -8,7 +8,6 @@ bin/cx88
%%EXAMPLESDIR%%/cx88_mpeg_client.cpp
%%EXAMPLESDIR%%/hd3k_analog_kbuf.cpp
%%EXAMPLESDIR%%/tuner_config
-etc/rc.d/cx88d
include/iicdev/iicdev_ioctl.h
include/cx88/cx88_common_ioctl.h
include/cx88/cx88_mpeg_ioctl.h