- Remove part of a patch that wasn't entirely correct and let the port
use the WCHAR_T iconv extension instead. - Add USES=libtool and let libtoolize copy the necessary files instead of symlinking them such that they can be patched. - Add a configure check for libusb_handle_events_completed.
This commit is contained in:
parent
68097f4186
commit
70772d8b36
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=341781
4 changed files with 13 additions and 51 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
PORTNAME= hidapi
|
||||
DISTVERSION= 0.8.0-rc1
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= comms
|
||||
|
||||
MAINTAINER= tijl@FreeBSD.org
|
||||
|
@ -16,9 +17,10 @@ GH_TAGNAME= ${PORTNAME}-${DISTVERSION}
|
|||
GH_COMMIT= 40cf516
|
||||
|
||||
USE_AUTOTOOLS= aclocal autoconf autoheader automake libtoolize
|
||||
AUTOMAKE_ARGS= --add-missing
|
||||
AUTOMAKE_ARGS= --add-missing --copy
|
||||
LIBTOOLIZE_ARGS=--copy
|
||||
|
||||
USES= iconv
|
||||
USES= iconv:wchar_t libtool
|
||||
USE_LDCONFIG= yes
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
--- configure.ac.orig
|
||||
+++ configure.ac
|
||||
@@ -93,7 +93,8 @@
|
||||
LDFLAGS="$LDFLAGS -L/usr/local/lib"
|
||||
@@ -94,6 +94,8 @@
|
||||
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_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])
|
||||
+ AC_CHECK_DECLS([libusb_handle_events_completed], [], [], [[#include <libusb.h>]])
|
||||
echo libs_priv: $LIBS_LIBUSB_PRIVATE
|
||||
;;
|
||||
*-mingw*)
|
||||
|
|
|
@ -18,55 +18,15 @@
|
|||
/* 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 @@
|
||||
@@ -757,7 +757,11 @@
|
||||
libusb_cancel_transfer(dev->transfer);
|
||||
|
||||
while (!dev->cancelled)
|
||||
- libusb_handle_events_completed(usb_context, &dev->cancelled);
|
||||
+#if HAVE_DECL_LIBUSB_HANDLE_EVENTS_COMPLETED
|
||||
libusb_handle_events_completed(usb_context, &dev->cancelled);
|
||||
+#else
|
||||
+ libusb_handle_events(usb_context);
|
||||
+#endif
|
||||
|
||||
/* 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
|
||||
|
|
|
@ -3,5 +3,6 @@ lib/libhidapi.a
|
|||
lib/libhidapi.la
|
||||
lib/libhidapi.so
|
||||
lib/libhidapi.so.0
|
||||
lib/libhidapi.so.0.0.0
|
||||
libdata/pkgconfig/hidapi.pc
|
||||
@dirrm include/hidapi
|
||||
|
|
Loading…
Reference in a new issue