Date: Fri, 3 Jan 2014 20:42:36 +0000 (UTC) From: Tijl Coosemans <tijl@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r338581 - in head/comms: . hidapi hidapi/files Message-ID: <201401032042.s03Kga9D037181@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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 +@dirrm include/hidapi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401032042.s03Kga9D037181>