Bug 177391 - multimedia/libcec update to 2.1.1
Summary: multimedia/libcec update to 2.1.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Antoine Brodin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-26 09:40 UTC by mickael.maillot
Modified: 2013-06-09 08:11 UTC (History)
0 users

See Also:


Attachments
file.diff (5.26 KB, patch)
2013-03-26 09:40 UTC, mickael.maillot
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description mickael.maillot 2013-03-26 09:40:00 UTC
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:
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-03-26 09:40:08 UTC
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
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2013-03-26 09:40:09 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 Manuel Creach 2013-04-02 07:44:44 UTC
OK, patch approved
Comment 4 Mark Linimon freebsd_committer freebsd_triage 2013-04-02 23:06:46 UTC
State Changed
From-To: feedback->open

Maintainer approved.
Comment 5 Antoine Brodin freebsd_committer freebsd_triage 2013-06-08 10:14:20 UTC
Responsible Changed
From-To: freebsd-ports-bugs->antoine

Take it.
Comment 6 dfilter service freebsd_committer freebsd_triage 2013-06-09 08:07:31 UTC
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"
Comment 7 Antoine Brodin freebsd_committer freebsd_triage 2013-06-09 08:10:56 UTC
State Changed
From-To: open->closed

Patch committed, thanks!