From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Jun 5 13:10:02 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 1C320E6 for ; Wed, 5 Jun 2013 13:10:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id F309518B8 for ; Wed, 5 Jun 2013 13:10:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r55DA1SP037388 for ; Wed, 5 Jun 2013 13:10:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r55DA138037387; Wed, 5 Jun 2013 13:10:01 GMT (envelope-from gnats) Resent-Date: Wed, 5 Jun 2013 13:10:01 GMT Resent-Message-Id: <201306051310.r55DA138037387@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Manuel Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9DA63DCF for ; Wed, 5 Jun 2013 13:03:33 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 901211868 for ; Wed, 5 Jun 2013 13:03:33 +0000 (UTC) Received: from oldred.freebsd.org ([127.0.1.6]) by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r55D3Xn6057868 for ; Wed, 5 Jun 2013 13:03:33 GMT (envelope-from nobody@oldred.freebsd.org) Received: (from nobody@localhost) by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r55D3XG8057863; Wed, 5 Jun 2013 13:03:33 GMT (envelope-from nobody) Message-Id: <201306051303.r55D3XG8057863@oldred.freebsd.org> Date: Wed, 5 Jun 2013 13:03:33 GMT From: Manuel To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/179331: [PATCH] multimedia/libcec Update to 2.1.3 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Jun 2013 13:10:02 -0000 >Number: 179331 >Category: ports >Synopsis: [PATCH] multimedia/libcec Update to 2.1.3 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Wed Jun 05 13:10:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Manuel >Release: >Organization: >Environment: >Description: Update for multimedia/libcec to version 2.1.3 Added the new patch for device detection by Mickael Maillot and added a message as he suggested (see PR: ports/177391) >How-To-Repeat: >Fix: Patch attached with submission follows: diff -Naur libcec.orig/Makefile libcec/Makefile --- libcec.orig/Makefile 2013-04-23 16:20:25.000000000 +0200 +++ libcec/Makefile 2013-06-05 12:29:17.000000000 +0200 @@ -2,7 +2,7 @@ # $FreeBSD: multimedia/libcec/Makefile 316355 2013-04-23 14:20:25Z bapt $ PORTNAME= libcec -PORTVERSION= 2.0.4 +PORTVERSION= 2.1.3 CATEGORIES= multimedia MAINTAINER= manuel.creach@icloud.com @@ -13,7 +13,7 @@ USE_GITHUB= yes GH_ACCOUNT= Pulse-Eight -GH_COMMIT= 178d498 +GH_COMMIT= 54be21e GH_TAGNAME= ${PORTNAME}-${PORTVERSION} USES= pkgconfig diff -Naur libcec.orig/distinfo libcec/distinfo --- libcec.orig/distinfo 2012-12-04 18:14:34.000000000 +0100 +++ libcec/distinfo 2013-06-05 12:27:25.000000000 +0200 @@ -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 -Naur libcec.orig/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp --- libcec.orig/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp 2012-12-04 18:14:34.000000000 +0100 +++ libcec/files/patch-src__lib__adapter__Pulse-Eight__USBCECAdapterDetection.cpp 2013-06-05 12:25:40.000000000 +0200 @@ -1,11 +1,93 @@ ---- ./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) +diff --git src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp +index 35ba386..dc1c79b 100644 +--- src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp ++++ src/lib/adapter/Pulse-Eight/USBCECAdapterDetection.cpp +@@ -63,6 +63,8 @@ extern "C" { + #elif defined(__FreeBSD__) + #include + #include ++#include ++#include + #endif + + #define CEC_VID 0x2548 +@@ -434,22 +436,68 @@ uint8_t CUSBCECAdapterDetection::FindAdapters(cec_adapter_descriptor *deviceList + } + #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 \ No newline at end of file diff -Naur libcec.orig/pkg-message libcec/pkg-message --- libcec.orig/pkg-message 1970-01-01 01:00:00.000000000 +0100 +++ libcec/pkg-message 2013-06-05 12:44:21.000000000 +0200 @@ -0,0 +1,8 @@ +WARNING: + +You need write permissions on the USB device to make it work properly. +Consider adding a rule in /etc/devfs.rules like this one : + +[system=10] +add path 'ttyU*' mode 0660 group operator + >Release-Note: >Audit-Trail: >Unformatted: