aboutsummaryrefslogtreecommitdiffstats
path: root/multimedia/vdr-plugin-iptv
diff options
context:
space:
mode:
authornox <nox@FreeBSD.org>2012-04-21 22:10:58 +0800
committernox <nox@FreeBSD.org>2012-04-21 22:10:58 +0800
commit924c145f00dbffd2cf75c51b012da537e66eeb59 (patch)
treecc31bad1ffbb82e5842e86e01df2130cdb240379 /multimedia/vdr-plugin-iptv
parentf83e7ff1a627091f341195ca2018fcc2a906fb22 (diff)
downloadfreebsd-ports-gnome-924c145f00dbffd2cf75c51b012da537e66eeb59.tar.gz
freebsd-ports-gnome-924c145f00dbffd2cf75c51b012da537e66eeb59.tar.zst
freebsd-ports-gnome-924c145f00dbffd2cf75c51b012da537e66eeb59.zip
- Update multimedia/vdr and multimedia/vdr-plugins to 1.7.27 .
- Update multimedia/vdr-plugin-epgsearch to 1.0.1s20120322 git snapshot. - Update multimedia/vdr-plugin-femon to 1.7.15 . - Update multimedia/vdr-plugin-iptv to 0.5.0 . - Update multimedia/vdr-plugin-osdteletext to 0.9.2 . - Update multimedia/vdr-plugin-streamdev to 0.5.1p20120311 git snapthot. - Update multimedia/vdr-plugin-xineliboutput to 1.0.90s20111129.1002 cvs snapshot. - Bump PORTREVISION for all other plugins and add vdr 1.7.27 compatibility/bugfix patches where necessary.
Diffstat (limited to 'multimedia/vdr-plugin-iptv')
-rw-r--r--multimedia/vdr-plugin-iptv/Makefile3
-rw-r--r--multimedia/vdr-plugin-iptv/distinfo4
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-protocolext.c22
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-socket.c30
-rw-r--r--multimedia/vdr-plugin-iptv/pkg-plist2
5 files changed, 54 insertions, 7 deletions
diff --git a/multimedia/vdr-plugin-iptv/Makefile b/multimedia/vdr-plugin-iptv/Makefile
index 63ebecf2a5ef..f6182b0bdf5b 100644
--- a/multimedia/vdr-plugin-iptv/Makefile
+++ b/multimedia/vdr-plugin-iptv/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= vdr-plugin-iptv
-PORTVERSION= 0.4.2
-PORTREVISION= 10
+PORTVERSION= 0.5.0
CATEGORIES= multimedia
MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/iptv/files/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-iptv/distinfo b/multimedia/vdr-plugin-iptv/distinfo
index efd1c9c89b51..1574dc4f93e2 100644
--- a/multimedia/vdr-plugin-iptv/distinfo
+++ b/multimedia/vdr-plugin-iptv/distinfo
@@ -1,2 +1,2 @@
-SHA256 (vdr/vdr-iptv-0.4.2.tgz) = 3f86533d12414a7fa725eeedc75b64383e0de52b741cf418d9b60af5a76a9739
-SIZE (vdr/vdr-iptv-0.4.2.tgz) = 47565
+SHA256 (vdr/vdr-iptv-0.5.0.tgz) = 83ad8d4117fb8d46ee290aaabccc62bd8e143ffbc9f6a5d6328449de8b5a13cf
+SIZE (vdr/vdr-iptv-0.5.0.tgz) = 49178
diff --git a/multimedia/vdr-plugin-iptv/files/patch-protocolext.c b/multimedia/vdr-plugin-iptv/files/patch-protocolext.c
index 65a30dae98ac..809862018e51 100644
--- a/multimedia/vdr-plugin-iptv/files/patch-protocolext.c
+++ b/multimedia/vdr-plugin-iptv/files/patch-protocolext.c
@@ -1,6 +1,24 @@
--- a/protocolext.c
+++ b/protocolext.c
-@@ -82,6 +82,7 @@ void cIptvProtocolExt::TerminateScript(v
+@@ -55,10 +55,17 @@ void cIptvProtocolExt::ExecuteScript(voi
+ // Execute the external script
+ cString cmd = cString::sprintf("%s %d %d", *scriptFile, scriptParameter, socketPort);
+ debug("cIptvProtocolExt::ExecuteScript(child): %s\n", *cmd);
++#ifdef linux
+ if (execl("/bin/bash", "sh", "-c", *cmd, (char *)NULL) == -1) {
+ error("Script execution failed: %s", *cmd);
+ _exit(-1);
+ }
++#else
++ if (execl("/bin/sh", "sh", "-c", *cmd, (char *)NULL) == -1) {
++ error("Script execution failed: %s", *cmd);
++ _exit(-1);
++ }
++#endif
+ _exit(0);
+ }
+ else {
+@@ -86,6 +93,7 @@ void cIptvProtocolExt::TerminateScript(v
error("Script '%s' won't terminate - killing it!", *scriptFile);
kill(pid, SIGKILL);
}
@@ -8,7 +26,7 @@
// Clear wait status to make sure child exit status is accessible
memset(&waitStatus, '\0', sizeof(waitStatus));
// Wait for child termination
-@@ -94,6 +95,17 @@ void cIptvProtocolExt::TerminateScript(v
+@@ -98,6 +106,17 @@ void cIptvProtocolExt::TerminateScript(v
debug("Child (%d) exited as expected\n", pid);
waitOver = true;
}
diff --git a/multimedia/vdr-plugin-iptv/files/patch-socket.c b/multimedia/vdr-plugin-iptv/files/patch-socket.c
new file mode 100644
index 000000000000..84da27005d80
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/patch-socket.c
@@ -0,0 +1,30 @@
+--- a/socket.c
++++ b/socket.c
+@@ -57,9 +57,11 @@ bool cIptvSocket::OpenSocket(const int P
+ // Allow multiple sockets to use the same PORT number
+ ERROR_IF_FUNC(setsockopt(socketDesc, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)) < 0, "setsockopt(SO_REUSEADDR)",
+ CloseSocket(), return false);
++#ifndef __FreeBSD__
+ // Allow packet information to be fetched
+ ERROR_IF_FUNC(setsockopt(socketDesc, SOL_IP, IP_PKTINFO, &yes, sizeof(yes)) < 0, "setsockopt(IP_PKTINFO)",
+ CloseSocket(), return false);
++#endif
+ // Bind socket
+ memset(&sockAddr, '\0', sizeof(sockAddr));
+ sockAddr.sin_family = AF_INET;
+@@ -180,6 +182,7 @@ int cIptvUdpSocket::Read(unsigned char*
+ }
+ else if (len > 0) {
+ // Process auxiliary received data and validate source address
++#ifndef __FreeBSD__
+ for (cmsg = CMSG_FIRSTHDR(&msgh); (sourceAddr != INADDR_ANY) && (cmsg != NULL); cmsg = CMSG_NXTHDR(&msgh, cmsg)) {
+ if ((cmsg->cmsg_level == SOL_IP) && (cmsg->cmsg_type == IP_PKTINFO)) {
+ struct in_pktinfo *i = (struct in_pktinfo *)CMSG_DATA(cmsg);
+@@ -189,6 +192,7 @@ int cIptvUdpSocket::Read(unsigned char*
+ }
+ }
+ }
++#endif
+ if (BufferAddr[0] == TS_SYNC_BYTE)
+ return len;
+ else if (len > 3) {
diff --git a/multimedia/vdr-plugin-iptv/pkg-plist b/multimedia/vdr-plugin-iptv/pkg-plist
index 2599097f2c73..ec45e971abce 100644
--- a/multimedia/vdr-plugin-iptv/pkg-plist
+++ b/multimedia/vdr-plugin-iptv/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-iptv.so.1.7.22
+lib/vdr/libvdr-iptv.so.%%APIVERSION%%
@unexec if cmp -s %D/etc/vdr/plugins/iptv/image.sh.sample %D/etc/vdr/plugins/iptv/image.sh; then rm -f %D/etc/vdr/plugins/iptv/image.sh; fi
etc/vdr/plugins/iptv/image.sh.sample
@exec if [ ! -f %D/etc/vdr/plugins/iptv/image.sh ] ; then cp -p %D/%F %B/image.sh; fi