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