aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr-plugin-xvdr
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2011-12-18 17:23:38 +0000
committerJuergen Lock <nox@FreeBSD.org>2011-12-18 17:23:38 +0000
commit7c720b5681a1c432100d24b7c3bb276e847b4cd6 (patch)
tree2d047974944033b3fd664f18db1d828ecb4d7f88 /multimedia/vdr-plugin-xvdr
parent2bf3ba692f03830148ea03473b48420380a5cb8e (diff)
downloadports-7c720b5681a1c432100d24b7c3bb276e847b4cd6.tar.gz
ports-7c720b5681a1c432100d24b7c3bb276e847b4cd6.zip
VDR plugin to handle XBMC clients.
The vdr-plugin-xvdr is able to handle serveral XBMC clients connecting via the XVDR addon. WWW: https://github.com/pipelka/vdr-plugin-xvdr
Notes
Notes: svn path=/head/; revision=287599
Diffstat (limited to 'multimedia/vdr-plugin-xvdr')
-rw-r--r--multimedia/vdr-plugin-xvdr/Makefile39
-rw-r--r--multimedia/vdr-plugin-xvdr/distinfo2
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-Makefile9
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-src-live-livestreamer.c15
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.c13
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.h12
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-src-net-requestpacket.c16
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-src-net-responsepacket.c15
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-src-recordings-recplayer.c24
-rw-r--r--multimedia/vdr-plugin-xvdr/files/patch-src-xvdr-xvdrserver.c21
-rw-r--r--multimedia/vdr-plugin-xvdr/pkg-descr5
-rw-r--r--multimedia/vdr-plugin-xvdr/pkg-plist5
12 files changed, 176 insertions, 0 deletions
diff --git a/multimedia/vdr-plugin-xvdr/Makefile b/multimedia/vdr-plugin-xvdr/Makefile
new file mode 100644
index 000000000000..df8f06867daf
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/Makefile
@@ -0,0 +1,39 @@
+# New ports collection makefile for: vdr-plugin-xvdr
+# Date created: Sat Oct 8 17:45:22 CEST 2011
+# Whom: Juergen Lock <nox@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= vdr-plugin-xvdr
+PORTVERSION= 0.9.5
+CATEGORIES= multimedia
+MASTER_SITES= LOCAL/nox/
+DISTNAME= pipelka-${PORTNAME}-xvdr-${PORTVERSION}-0-g${GITHASH}
+
+MAINTAINER= nox@FreeBSD.org
+COMMENT= Video Disk Recorder - XVDR server plugin
+
+GITHASH= e4cab47
+PATCH_STRIP= -p1
+HAVE_CONFIGURE= yes
+PORTDOCS= COPYING README
+MAKE_JOBS_SAFE= yes
+WRKSRC= ${WRKDIR}/pipelka-${PORTNAME}-${GITHASH}
+
+.include "${.CURDIR}/../vdr/Makefile.plugins"
+
+post-patch: post-patch-plugin
+
+post-install:
+ @${MKDIR} ${PREFIX}/etc/vdr/plugins/${PLUGIN}
+ @${INSTALL_DATA} ${WRKSRC}/${PLUGIN}/allowed_hosts.conf ${PREFIX}/etc/vdr/plugins/${PLUGIN}/allowed_hosts.conf.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/allowed_hosts.conf ]; then \
+ ${INSTALL_DATA} -o ${VDR_USER} -g ${VDR_GROUP} ${WRKSRC}/${PLUGIN}/allowed_hosts.conf ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ (cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR})
+.endif
+
+.include <bsd.port.mk>
diff --git a/multimedia/vdr-plugin-xvdr/distinfo b/multimedia/vdr-plugin-xvdr/distinfo
new file mode 100644
index 000000000000..7709619875d0
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/distinfo
@@ -0,0 +1,2 @@
+SHA256 (vdr/pipelka-vdr-plugin-xvdr-xvdr-0.9.5-0-ge4cab47.tar.gz) = 791de7fea6b8fd355a38041b5d660b5f09a3fe7221c4cdfa86624f8ad2d8d6f3
+SIZE (vdr/pipelka-vdr-plugin-xvdr-xvdr-0.9.5-0-ge4cab47.tar.gz) = 62582
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-Makefile b/multimedia/vdr-plugin-xvdr/files/patch-Makefile
new file mode 100644
index 000000000000..ab221cdf52f5
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-Makefile
@@ -0,0 +1,9 @@
+--- a/Makefile
++++ b/Makefile
+@@ -114,5 +114,4 @@ clean:
+ @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
+
+ install:
+- @install -d ../../man
+- @install README ../../man/$(PLUGIN).man
++ ${INSTALL_PROGRAM} $(LIBDIR)/libvdr-$(PLUGIN).so.$(APIVERSION) $(PREFIX)/lib/vdr/libvdr-$(PLUGIN).so.$(APIVERSION)
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-src-live-livestreamer.c b/multimedia/vdr-plugin-xvdr/files/patch-src-live-livestreamer.c
new file mode 100644
index 000000000000..3df5c8b9f7d8
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-src-live-livestreamer.c
@@ -0,0 +1,15 @@
+--- a/src/live/livestreamer.c
++++ b/src/live/livestreamer.c
+@@ -29,7 +29,12 @@
+ #include <map>
+ #include <vdr/remux.h>
+ #include <vdr/channels.h>
++#ifdef __FreeBSD__
++#include <sys/endian.h>
++#define __cpu_to_be64 htobe64
++#else
+ #include <asm/byteorder.h>
++#endif
+
+ #include "config/config.h"
+ #include "net/cxsocket.h"
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.c b/multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.c
new file mode 100644
index 000000000000..801f0dfe6bbf
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.c
@@ -0,0 +1,13 @@
+--- a/src/net/cxsocket.c
+--- b/src/net/cxsocket.c
+@@ -48,6 +48,10 @@
+ #include "config/config.h"
+ #include "cxsocket.h"
+
++#ifndef MSG_MORE
++#define MSG_MORE 0
++#endif
++
+ cxSocket::~cxSocket()
+ {
+ close();
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.h b/multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.h
new file mode 100644
index 000000000000..4474e309e03d
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-src-net-cxsocket.h
@@ -0,0 +1,12 @@
+--- a/src/net/cxsocket.h
++++ b/src/net/cxsocket.h
+@@ -29,6 +29,9 @@
+ #ifndef __CXSOCKET_H
+ #define __CXSOCKET_H
+
++#ifdef __FreeBSD__
++#include <netinet/in.h>
++#endif
+ #include <inttypes.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-src-net-requestpacket.c b/multimedia/vdr-plugin-xvdr/files/patch-src-net-requestpacket.c
new file mode 100644
index 000000000000..0c3476f630db
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-src-net-requestpacket.c
@@ -0,0 +1,16 @@
+--- a/src/net/requestpacket.c
++++ b/src/net/requestpacket.c
+@@ -28,7 +28,13 @@
+ #include <stdint.h>
+ #include <string.h>
+
++#ifdef __FreeBSD__
++#include <sys/endian.h>
++#define __cpu_to_be64 htobe64
++#define __be64_to_cpu be64toh
++#else
+ #include <asm/byteorder.h>
++#endif
+
+ #include "xvdr/xvdrcommand.h"
+ #include "config/config.h"
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-src-net-responsepacket.c b/multimedia/vdr-plugin-xvdr/files/patch-src-net-responsepacket.c
new file mode 100644
index 000000000000..d5ccd711aaf2
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-src-net-responsepacket.c
@@ -0,0 +1,15 @@
+--- a/src/net/responsepacket.c
++++ b/src/net/responsepacket.c
+@@ -31,7 +31,12 @@
+ #include <arpa/inet.h>
+ #include <stdlib.h>
+ #include <string.h>
++#ifdef __FreeBSD__
++#include <sys/endian.h>
++#define __cpu_to_be64 htobe64
++#else
+ #include <asm/byteorder.h>
++#endif
+ #include <zlib.h>
+
+ #include "config/config.h"
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-src-recordings-recplayer.c b/multimedia/vdr-plugin-xvdr/files/patch-src-recordings-recplayer.c
new file mode 100644
index 000000000000..4e8fb5a6feb0
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-src-recordings-recplayer.c
@@ -0,0 +1,24 @@
+--- a/src/recordings/recplayer.c
++++ b/src/recordings/recplayer.c
+@@ -36,6 +36,10 @@
+
+ #include "config/config.h"
+
++#ifndef O_NOATIME
++#define O_NOATIME 0
++#endif
++
+ cRecPlayer::cRecPlayer(cRecording* rec)
+ {
+ m_file = -1;
+@@ -220,8 +220,10 @@ int cRecPlayer::getBlock(unsigned char*
+ return 0;
+ }
+
++#ifndef __FreeBSD__
+ // Tell linux not to bother keeping the data in the FS cache
+ posix_fadvise(m_file, filePosition, bytes_read, POSIX_FADV_DONTNEED);
++#endif
+
+ // divide and conquer
+ if(bytes_read < amount) {
diff --git a/multimedia/vdr-plugin-xvdr/files/patch-src-xvdr-xvdrserver.c b/multimedia/vdr-plugin-xvdr/files/patch-src-xvdr-xvdrserver.c
new file mode 100644
index 000000000000..17767e1f682d
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/files/patch-src-xvdr-xvdrserver.c
@@ -0,0 +1,21 @@
+--- a/src/xvdr/xvdrserver.c
++++ b/src/xvdr/xvdrserver.c
+@@ -156,6 +156,7 @@ void cXVDRServer::NewClientConnected(int
+ int val = 1;
+ setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &val, sizeof(val));
+
++#ifndef __FreeBSD__
+ val = 30;
+ setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &val, sizeof(val));
+
+@@ -167,6 +168,10 @@ void cXVDRServer::NewClientConnected(int
+
+ val = 1;
+ setsockopt(fd, SOL_TCP, TCP_NODELAY, &val, sizeof(val));
++#else
++ val = 1;
++ setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(val));
++#endif
+
+ INFOLOG("Client with ID %d connected: %s", m_IdCnt, cxSocket::ip2txt(sin.sin_addr.s_addr, sin.sin_port, buf));
+ cXVDRClient *connection = new cXVDRClient(fd, m_IdCnt, cxSocket::ip2txt(sin.sin_addr.s_addr, sin.sin_port, buf));
diff --git a/multimedia/vdr-plugin-xvdr/pkg-descr b/multimedia/vdr-plugin-xvdr/pkg-descr
new file mode 100644
index 000000000000..b9d47e2ce628
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/pkg-descr
@@ -0,0 +1,5 @@
+VDR plugin to handle XBMC clients.
+The vdr-plugin-xvdr is able to handle serveral XBMC clients connecting
+via the XVDR addon.
+
+WWW: https://github.com/pipelka/vdr-plugin-xvdr
diff --git a/multimedia/vdr-plugin-xvdr/pkg-plist b/multimedia/vdr-plugin-xvdr/pkg-plist
new file mode 100644
index 000000000000..0efb8d90d6a9
--- /dev/null
+++ b/multimedia/vdr-plugin-xvdr/pkg-plist
@@ -0,0 +1,5 @@
+lib/vdr/libvdr-xvdr.so.1.7.19
+@unexec if cmp -s %D/etc/vdr/plugins/xvdr/allowed_hosts.conf.sample %D/etc/vdr/plugins/xvdr/allowed_hosts.conf; then rm -f %D/etc/vdr/plugins/xvdr/allowed_hosts.conf; fi
+etc/vdr/plugins/xvdr/allowed_hosts.conf.sample
+@exec if [ ! -f %D/etc/vdr/plugins/xvdr/allowed_hosts.conf ] ; then cp -p %D/%F %B/allowed_hosts.conf; fi
+@dirrmtry etc/vdr/plugins/xvdr