diff options
author | nox <nox@FreeBSD.org> | 2012-04-21 22:10:58 +0800 |
---|---|---|
committer | nox <nox@FreeBSD.org> | 2012-04-21 22:10:58 +0800 |
commit | 924c145f00dbffd2cf75c51b012da537e66eeb59 (patch) | |
tree | cc31bad1ffbb82e5842e86e01df2130cdb240379 /multimedia/vdr-plugin-iptv | |
parent | f83e7ff1a627091f341195ca2018fcc2a906fb22 (diff) | |
download | freebsd-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/Makefile | 3 | ||||
-rw-r--r-- | multimedia/vdr-plugin-iptv/distinfo | 4 | ||||
-rw-r--r-- | multimedia/vdr-plugin-iptv/files/patch-protocolext.c | 22 | ||||
-rw-r--r-- | multimedia/vdr-plugin-iptv/files/patch-socket.c | 30 | ||||
-rw-r--r-- | multimedia/vdr-plugin-iptv/pkg-plist | 2 |
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 |