update to the last version 2.1.1 needed by xbmc 12.1 i update my patch for device detection successfully tested on my htpc with a pulse eight device. warning: libcec and xbmc must be commited together because: xbmc 12.0 need libcec < 2.1.0 and xbmc12.1 need libcec >= 2.1.0 see PR: ports/177207 also i think we need to add a pkg-message file to warn user that he need proper write permissions on the device. like emulations/virtualbox-ose port for the USB Support, user need to add in /etc/devfs.rules something like: [system=10] add path 'ttyU*' mode 0660 group operator Fix: Patch attached with submission follows:
Maintainer of multimedia/libcec, Please note that PR ports/177391 has just been submitted. If it contains a patch for an upgrade, an enhancement or a bug fix you agree on, reply to this email stating that you approve the patch and a committer will take care of it. The full text of the PR can be found at: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/177391 -- Edwin Groothuis via the GNATS Auto Assign Tool edwin@FreeBSD.org
State Changed From-To: open->feedback Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
OK, patch approved
State Changed From-To: feedback->open Maintainer approved.
Responsible Changed From-To: freebsd-ports-bugs->antoine Take it.
Author: antoine Date: Sun Jun 9 07:07:17 2013 New Revision: 320314 URL: http://svnweb.freebsd.org/changeset/ports/320314 Log: - 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) Added: head/multimedia/libcec/pkg-message (contents, props changed) Modified: head/multimedia/libcec/Makefile head/multimedia/libcec/distinfo head/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp Modified: head/multimedia/libcec/Makefile ============================================================================== --- head/multimedia/libcec/Makefile Sun Jun 9 06:34:35 2013 (r320313) +++ head/multimedia/libcec/Makefile Sun Jun 9 07:07:17 2013 (r320314) @@ -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> Modified: head/multimedia/libcec/distinfo ============================================================================== --- head/multimedia/libcec/distinfo Sun Jun 9 06:34:35 2013 (r320313) +++ head/multimedia/libcec/distinfo Sun Jun 9 07:07:17 2013 (r320314) @@ -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 Modified: head/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp ============================================================================== --- head/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp Sun Jun 9 06:34:35 2013 (r320313) +++ head/multimedia/libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp Sun Jun 9 07:07:17 2013 (r320314) @@ -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 Added: head/multimedia/libcec/pkg-message ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/libcec/pkg-message Sun Jun 9 07:07:17 2013 (r320314) @@ -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 _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Patch committed, thanks!