Thursday, May 5, 2011

"new" version of libusb, part 2

I an previous blog article I talked about the situation of libusb:
  • a stable libusb has not been released since May 2010 (exactly one year ago)
  • bugs are still open even if they have patches attached in the bug report

Impacts on libccid

The bug [PATCH] Fix a race condition in io.c libusb_handle_events_timeout() (also known as ticket #56) has a great impact on users of my CCID driver by blocking the USB transfer for 60 seconds in some cases.

It looks like that bug #56 happens more often on recent Linux kernels, like the Linux kernel provided with Ubuntu 11.04. So it is now more-or-less urgent to fix the problem in libusb.

The bug has been reported since 8 months. A fix is available since April 2010 but is not yet applied in upstream libusb git repository. So I fixed it in my libusb repository on github to not forget it and because I needed a fixed version for myself.

libusb git snapshot x2

I already provide a git snapshot of the upstream (official) repository in the file libusb-1.0.8-git.tar.bz2 from

I now also provide a git snapshot of my own github version with ticket #56 fixed in the file libusb-1.0.8-github.tar.bz2.


So before reporting a bug in libccid first try a newer version of libusb. If the bug is at the communication level it may already be solved in the upstream libusb snapshot version or my patched version.