svn commit: r338581 - in head/comms: . hidapi hidapi/files

Tijl Coosemans tijl at FreeBSD.org
Fri Jan 3 20:42:38 UTC 2014


Author: tijl
Date: Fri Jan  3 20:42:35 2014
New Revision: 338581
URL: http://svnweb.freebsd.org/changeset/ports/338581

Log:
  New port comms/hidapi.
  
  HIDAPI is a platform independent library that allows applications to
  work with USB HID-Class devices.  While it can be used to communicate
  with standard HID devices like keyboards, mice, and joysticks, it is
  most useful when used with custom (Vendor-Defined) HID devices.

Added:
  head/comms/hidapi/
  head/comms/hidapi/Makefile   (contents, props changed)
  head/comms/hidapi/distinfo   (contents, props changed)
  head/comms/hidapi/files/
  head/comms/hidapi/files/patch-configure.ac   (contents, props changed)
  head/comms/hidapi/files/patch-libusb-hid.c   (contents, props changed)
  head/comms/hidapi/pkg-descr   (contents, props changed)
  head/comms/hidapi/pkg-plist   (contents, props changed)
Modified:
  head/comms/Makefile

Modified: head/comms/Makefile
==============================================================================
--- head/comms/Makefile	Fri Jan  3 20:17:53 2014	(r338580)
+++ head/comms/Makefile	Fri Jan  3 20:42:35 2014	(r338581)
@@ -62,6 +62,7 @@
     SUBDIR += hamlib
     SUBDIR += hcidump
     SUBDIR += hf
+    SUBDIR += hidapi
     SUBDIR += hylafax
     SUBDIR += ibp
     SUBDIR += java-commapi

Added: head/comms/hidapi/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hidapi/Makefile	Fri Jan  3 20:42:35 2014	(r338581)
@@ -0,0 +1,24 @@
+# $FreeBSD$
+
+PORTNAME=	hidapi
+DISTVERSION=	0.8.0-rc1
+CATEGORIES=	comms
+
+MAINTAINER=	tijl at FreeBSD.org
+COMMENT=	Library to access USB HID-class devices
+
+LICENSE=	BSD3CLAUSE GPLv3
+LICENSE_COMB=	dual
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	signal11
+GH_TAGNAME=	${PORTNAME}-${DISTVERSION}
+GH_COMMIT=	40cf516
+
+USE_AUTOTOOLS=	aclocal autoconf autoheader automake libtoolize
+AUTOMAKE_ARGS=	--add-missing
+
+USES=		iconv
+USE_LDCONFIG=	yes
+
+.include <bsd.port.mk>

Added: head/comms/hidapi/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hidapi/distinfo	Fri Jan  3 20:42:35 2014	(r338581)
@@ -0,0 +1,2 @@
+SHA256 (hidapi-0.8.0-rc1.tar.gz) = 8cfea344b17d1dbd4d22fab70169307f5f0fbcf5f11f472322685d8d9f38d7ae
+SIZE (hidapi-0.8.0-rc1.tar.gz) = 101821

Added: head/comms/hidapi/files/patch-configure.ac
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hidapi/files/patch-configure.ac	Fri Jan  3 20:42:35 2014	(r338581)
@@ -0,0 +1,12 @@
+--- configure.ac.orig
++++ configure.ac
+@@ -93,7 +93,8 @@
+ 	LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ 	LIBS="${LIBS}"
+ 	AC_CHECK_LIB([usb], [libusb_init], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -lusb"], [hidapi_lib_error libusb])
+-	AC_CHECK_LIB([iconv], [iconv_open], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -liconv"], [hidapi_lib_error libiconv])
++	AC_CHECK_DECLS([libusb_get_string_descriptor], [], [], [[#include <libusb.h>]])
++	AC_SEARCH_LIBS([iconv_open], [iconv], [], [hidapi_lib_error libiconv])
+ 	echo libs_priv: $LIBS_LIBUSB_PRIVATE
+ 	;;
+ *-mingw*)

Added: head/comms/hidapi/files/patch-libusb-hid.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hidapi/files/patch-libusb-hid.c	Fri Jan  3 20:42:35 2014	(r338581)
@@ -0,0 +1,72 @@
+--- libusb/hid.c.orig
++++ libusb/hid.c
+@@ -25,6 +25,8 @@
+ 
+ #define _GNU_SOURCE /* needed for wcsdup() before glibc 2.10 */
+ 
++#include <config.h>
++
+ /* C */
+ #include <stdio.h>
+ #include <string.h>
+@@ -250,7 +252,7 @@
+ }
+ #endif /* INVASIVE_GET_USAGE */
+ 
+-#ifdef __FreeBSD__
++#if ! HAVE_DECL_LIBUSB_GET_STRING_DESCRIPTOR
+ /* The FreeBSD version of libusb doesn't have this funciton. In mainline
+    libusb, it's inlined in libusb.h. This function will bear a striking
+    resemblence to that one, because there's about one way to code it.
+@@ -324,6 +326,7 @@
+ static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx)
+ {
+ 	char buf[512];
++	char buf2[512];
+ 	int len;
+ 	wchar_t *str = NULL;
+ 	wchar_t wbuf[256];
+@@ -359,7 +362,7 @@
+ 	   it is only passed into iconv() which does not need it. */
+ 
+ 	/* Initialize iconv. */
+-	ic = iconv_open("WCHAR_T", "UTF-16LE");
++	ic = iconv_open("char", "UTF-16LE");
+ 	if (ic == (iconv_t)-1) {
+ 		LOG("iconv_open() failed\n");
+ 		return NULL;
+@@ -369,18 +372,21 @@
+ 	   Skip the first character (2-bytes). */
+ 	inptr = buf+2;
+ 	inbytes = len-2;
+-	outptr = (char*) wbuf;
+-	outbytes = sizeof(wbuf);
++	outptr = buf2;
++	outbytes = sizeof(buf2);
+ 	res = iconv(ic, &inptr, &inbytes, &outptr, &outbytes);
+ 	if (res == (size_t)-1) {
+ 		LOG("iconv() failed\n");
+ 		goto err;
+ 	}
++	res = mbstowcs(wbuf, buf2, sizeof(wbuf)/sizeof(wbuf[0]));
++	if (res == (size_t)-1) {
++		LOG("mbstowcs() failed\n");
++		goto err;
++	}
+ 
+ 	/* Write the terminating NULL. */
+ 	wbuf[sizeof(wbuf)/sizeof(wbuf[0])-1] = 0x00000000;
+-	if (outbytes >= sizeof(wbuf[0]))
+-		*((wchar_t*)outptr) = 0x00000000;
+ 
+ 	/* Allocate and copy the string. */
+ 	str = wcsdup(wbuf);
+@@ -757,7 +763,7 @@
+ 	libusb_cancel_transfer(dev->transfer);
+ 
+ 	while (!dev->cancelled)
+-		libusb_handle_events_completed(usb_context, &dev->cancelled);
++		libusb_handle_events(usb_context);
+ 
+ 	/* Now that the read thread is stopping, Wake any threads which are
+ 	   waiting on data (in hid_read_timeout()). Do this under a mutex to

Added: head/comms/hidapi/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hidapi/pkg-descr	Fri Jan  3 20:42:35 2014	(r338581)
@@ -0,0 +1,6 @@
+HIDAPI is a platform independent library that allows applications to
+work with USB HID-Class devices.  While it can be used to communicate
+with standard HID devices like keyboards, mice, and joysticks, it is
+most useful when used with custom (Vendor-Defined) HID devices.
+
+WWW: http://www.signal11.us/oss/hidapi/

Added: head/comms/hidapi/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/comms/hidapi/pkg-plist	Fri Jan  3 20:42:35 2014	(r338581)
@@ -0,0 +1,7 @@
+include/hidapi/hidapi.h
+lib/libhidapi.a
+lib/libhidapi.la
+lib/libhidapi.so
+lib/libhidapi.so.0
+libdata/pkgconfig/hidapi.pc
+ at dirrm include/hidapi


More information about the svn-ports-all mailing list