aboutsummaryrefslogtreecommitdiff
path: root/multimedia/libcec
diff options
context:
space:
mode:
authorAntoine Brodin <antoine@FreeBSD.org>2013-06-09 07:07:17 +0000
committerAntoine Brodin <antoine@FreeBSD.org>2013-06-09 07:07:17 +0000
commitab72a971263d5362699dde68f981643baee1f922 (patch)
tree31e355101015e17faab79d9c236d052d3bd6fdc4 /multimedia/libcec
parent3c03d43fee1b765e097513d8687f464d41ba858a (diff)
downloadports-ab72a971263d5362699dde68f981643baee1f922.tar.gz
ports-ab72a971263d5362699dde68f981643baee1f922.zip
- Update libcec to 2.1.3
- Distfile is available on GH not GHC - Use pathfix instead of manual REINPLACE - gmake and _FILE_OFFSET_BITS are not needed - USE_AUTORECONF does not exist - Add a pkg-message about permissions needed - Update adapter detection patch PR: ports/177391 PR: ports/179331 Submitted by: Mickael Maillot, Manuel Creach (maintainer)
Notes
Notes: svn path=/head/; revision=320314
Diffstat (limited to 'multimedia/libcec')
-rw-r--r--multimedia/libcec/Makefile19
-rw-r--r--multimedia/libcec/distinfo4
-rw-r--r--multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp98
-rw-r--r--multimedia/libcec/pkg-message19
4 files changed, 117 insertions, 23 deletions
diff --git a/multimedia/libcec/Makefile b/multimedia/libcec/Makefile
index 2d491cb04358..60cf3e8fc556 100644
--- a/multimedia/libcec/Makefile
+++ b/multimedia/libcec/Makefile
@@ -2,8 +2,9 @@
# $FreeBSD$
PORTNAME= libcec
-PORTVERSION= 2.0.4
+PORTVERSION= 2.1.3
CATEGORIES= multimedia
+MASTER_SITES= GH
MAINTAINER= manuel.creach@icloud.com
COMMENT= Library to control Pulse-Eight's HDMI-CEC adapter
@@ -13,24 +14,18 @@ LICENSE_FILE= ${WRKSRC}/COPYING
USE_GITHUB= yes
GH_ACCOUNT= Pulse-Eight
-GH_COMMIT= 178d498
+GH_COMMIT= 54be21e
GH_TAGNAME= ${PORTNAME}-${PORTVERSION}
-USES= pkgconfig
-USE_GMAKE= yes
-USE_AUTORECONF= yes
+USES= pathfix pkgconfig
+PATHFIX_MAKEFILEIN=Makefile.am
USE_AUTOTOOLS= aclocal autoheader automake autoconf libtoolize
ACLOCAL_ARGS= -I.
AUTOMAKE_ARGS= --add-missing
USE_LDCONFIG= yes
MAKE_JOBS_SAFE= yes
-CFLAGS+= -D_FILE_OFFSET_BITS=64
-
-post-patch:
- ${REINPLACE_CMD} 's|-Werror||' \
- ${WRKSRC}/configure.ac
- ${REINPLACE_CMD} 's|$$(libdir)/\(pkgconfig\)|$$(prefix)/libdata/\1|' \
- ${WRKSRC}/src/lib/Makefile.am
+post-install:
+ @${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>
diff --git a/multimedia/libcec/distinfo b/multimedia/libcec/distinfo
index 277444b9f589..384585bfb395 100644
--- a/multimedia/libcec/distinfo
+++ b/multimedia/libcec/distinfo
@@ -1,2 +1,2 @@
-SHA256 (libcec-2.0.4.tar.gz) = 652f8bddf8629eb4d14c93bc97efbeb7406482f69626302c8489df8e1fd8431f
-SIZE (libcec-2.0.4.tar.gz) = 1075334
+SHA256 (libcec-2.1.3.tar.gz) = 2aa88451b528184b02077ee8c6cd10e2f89121a6a05b1b35b4b792b03108a9d1
+SIZE (libcec-2.1.3.tar.gz) = 1087121
diff --git a/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp b/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp
index 7e8f6893908f..dd8829f8f7a3 100644
--- a/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp
+++ b/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp
@@ -1,11 +1,91 @@
---- ./src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp.orig 2012-10-17 11:35:39.000000000 +0200
-+++ ./src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp 2012-10-17 11:35:52.000000000 +0200
-@@ -427,8 +427,6 @@
- for (i = 0; i < 8; ++i)
+--- ./src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp.orig 2013-05-13 13:09:14.000000000 +0000
++++ ./src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp 2013-06-08 12:30:51.000000000 +0000
+@@ -61,6 +61,8 @@
+ #include <libudev.h>
+ }
+ #elif defined(__FreeBSD__)
++#include <sys/param.h>
++#include <sys/sysctl.h>
+ #include <stdio.h>
+ #include <unistd.h>
+ #endif
+@@ -434,22 +436,68 @@
+ }
+ #elif defined(__FreeBSD__)
+ char devicePath[PATH_MAX + 1];
++ char infos[512];
++ char sysctlname[32];
++ char ttyname[8];
++ char *pos;
++ size_t infos_size = sizeof(infos);
+ int i;
+
+- for (i = 0; i < 8; ++i)
++ for (i = 0; ; ++i)
{
- (void)snprintf(devicePath, sizeof(devicePath), "/dev/ttyU%d", i);
+- (void)snprintf(devicePath, sizeof(devicePath), "/dev/ttyU%d", i);
- if (strDevicePath && strcmp(devicePath, strDevicePath) != 0)
-- continue;
- if (!access(devicePath, 0))
- {
- snprintf(deviceList[iFound].path, sizeof(deviceList[iFound].path), "%s", devicePath);
++ memset(infos, 0, sizeof(infos));
++ (void)snprintf(sysctlname, sizeof(sysctlname),
++ "dev.umodem.%d.%%pnpinfo", i);
++ if (sysctlbyname(sysctlname, infos, &infos_size,
++ NULL, 0) != 0)
++ break;
++ if (strstr(infos, "vendor=0x2548") == NULL)
+ continue;
+- if (!access(devicePath, 0))
+- {
+- snprintf(deviceList[iFound].strComPath, sizeof(deviceList[iFound].strComPath), "%s", devicePath);
+- snprintf(deviceList[iFound].strComName, sizeof(deviceList[iFound].strComName), "%s", devicePath);
+- deviceList[iFound].iVendorId = CEC_VID;
+- deviceList[iFound].iProductId = CEC_VID;
+- deviceList[iFound].adapterType = ADAPTERTYPE_P8_EXTERNAL; // will be overridden when not doing a "quick scan" by the actual type
+- iFound++;
++ if (strstr(infos, "product=0x1001") == NULL
++ && strstr(infos, "product=0x1002") == NULL)
++ continue;
++ pos = strstr(infos, "ttyname=");
++ if (pos == NULL)
++ continue;
++ sscanf(pos, "ttyname=%s ", ttyname);
++
++ (void)snprintf(devicePath, sizeof(devicePath),
++ "/dev/tty%s", ttyname);
++
++ if (strDevicePath) {
++ char currStrDevicePath[512];
++ int port = 0;
++ int devaddr = 0;
++ memset(currStrDevicePath, 0, sizeof(currStrDevicePath));
++ memset(infos, 0, sizeof(infos));
++ (void)snprintf(sysctlname, sizeof(sysctlname),
++ "dev.umodem.%d.%%location", i);
++ if (sysctlbyname(sysctlname, infos, &infos_size,
++ NULL, 0) != 0)
++ break;
++
++ pos = strstr(infos, "port=");
++ if (pos == NULL)
++ continue;
++ sscanf(pos, "port=%d ", &port);
++
++ pos = strstr(infos, "devaddr=");
++ if (pos == NULL)
++ continue;
++ sscanf(pos, "devaddr=%d ", &devaddr);
++
++ (void)snprintf(currStrDevicePath, sizeof(currStrDevicePath),
++ "/dev/ugen%d.%d", port, devaddr);
++
++ if (strcmp(currStrDevicePath, strDevicePath) != 0)
++ continue;
+ }
++ snprintf(deviceList[iFound].strComPath, sizeof(deviceList[iFound].strComPath), "%s", devicePath);
++ snprintf(deviceList[iFound].strComName, sizeof(deviceList[iFound].strComName), "%s", devicePath);
++ deviceList[iFound].iVendorId = CEC_VID;
++ deviceList[iFound].iProductId = CEC_VID;
++ deviceList[iFound].adapterType = ADAPTERTYPE_P8_EXTERNAL; // will be overridden when not doing a "quick scan" by the actual type
++ iFound++;
+ }
+ #else
+ //silence "unused" warnings
diff --git a/multimedia/libcec/pkg-message b/multimedia/libcec/pkg-message
new file mode 100644
index 000000000000..9195606d4a68
--- /dev/null
+++ b/multimedia/libcec/pkg-message
@@ -0,0 +1,19 @@
+WARNING:
+
+You need write permissions on the USB device to make it work properly.
+Consider adding your user to the operator group:
+
+% pw groupmod operator -m jerry
+
+and adding a rule in /etc/devfs.rules like this one:
+
+[system=10]
+add path 'ttyU*' mode 0660 group operator
+
+To load this new rule add the following to /etc/rc.conf:
+
+devfs_system_ruleset="system"
+
+Then restart devfs to load the new rule:
+
+% /etc/rc.d/devfs restart