Re: kfreebsd-kernel-headers and USB API breakage
On Fri, Dec 04, 2009 at 12:39:02PM +0100, Petr Salinger wrote:
> >>* freeglut
> >> It is possible to disable USB scan of joystick by hack bellow.
> >>I would prefer to stay on headers based on 8.0.
> >As most of the problem are concentrated on the USB stack, what about
> >switching back to 7.2 headers only for /dev/bus/usb? There is a
> >compatibility layer in the kernel, and we can then switch back to the
> >new stack when more stuff has been ported.
> >An alternative option is to install the old /dev/bus/usb in
> >/dev/legacy/bus/usb, as it seems to be on 8.0 installations (haven't
> >upgrade my plain FreeBSD machine yet). Then a single line change fixes
> >our problems.
> >From my POV, only the "/dev/legacy/bus/usb" is fine.
> As we advertise __FreeBSD_kernel_version to be from 8.0
> series, we should put in /dev/bus/usb the 8.0 headers.
> >>>* hal
> >>> There is a new upstream release 0.5.14, the git log
> >>> http://cgit.freedesktop.org/hal/log contains lines like
> >>> 2009-08-18 add USB2 support
> >>> 2009-08-18 add USB2 support to the FreeBSD backend
> >>>I believe it should not be so hard to extend it for GNU/kFreeBSD.
> >>The plan is to upload 0.5.14 asap to unstable, but the maintainer is
> >>waiting for a fix of kfreebsd-kernel-headers or hal. Can someone
> >>work on that?
> >Looking quickly at it, it is based on libusb20, which is not packaged
> The preliminary version is SVN, the sources are already in freebsd-libs_8.0.orig.tar.gz.
> It claims that it is API compatible with both libusb-0.1 and libusb-1.0
> used on Linux. It would be nice if Maintainer of libusb and libusb-1.0
> [Hello Aurelien ;-)] could confirm that. It is unclear for me
> what name -dev package should have and whether it should provide
> libusb-dev and libusb-1.0-0-dev.
I have just looked at that, and it seems to implement most of the
libusb-1.0 API. Only libusb_get_max_iso_packet and
libusb_pollfds_handle_tim are missing, that should not be a big problem.
Note that the usb.h header clashes with libusb 0.1, and is not at the
same location than in libusb-1.0. It should be possible to handle by
providing the correct pkgconfig file though.
For libusb 0.1, it does not provides usb_debug, usb_error_* and
usb_free*. This means I am a bit reluctant to also provide libusb-dev,
also it means it won't work anymore on 7.2 based kernels.
In short, here is what I propose:
- make libusb-dev and libusb2-dev conflicts (they share libusb.a)
- make libusb2-dev provides libusb-1.0-0-dev
- add pkg-config support to libusb2-dev
- add a libusb2-udeb, to match libusb-1.0-0-udeb.
Aurelien Jarno GPG: 1024D/F1BCDB73