[Pkg-running-devel] Bug#810415: Bug#810415: Bug#810415: garmin-plugin: please switch to libusb 1.0

Aurelien Jarno aurel32 at debian.org
Sat Feb 13 14:44:04 UTC 2016

On 2016-02-13 19:33, Olaf Meeuwissen wrote:
> Hi Christian,
> Christian PERRIER writes:
> > Quoting Aurelien Jarno (aurel32 at debian.org):
> >> Package: garmin-plugin
> >> Version: 0.3.23-1
> >> Severity: wishlist
> >> 
> >> Dear Maintainer,
> >> 
> >> garmin-plugin has a build-depends on libusb-dev. A few years ago upstream
> >> has released a new major version libusb 1.0 with a different API which
> >> aims to fix design deficiencies with USB 2.0 and 3.0 in mind.
> >> 
> >> The old libusb 0.1 package is not supported upstream anymore and should
> >> be considered deprecated.
> >> 
> >> If garmin-plugin supports the new libusb 1.0 library, please consider
> >> switching the build-depends from libusb-dev to libusb-1.0-0-dev. If not
> >> please inform upstream that porting the software to the new API is
> >> recommended.
> >
> >
> > Here also, a simple attempt to rebuild bychanging the build dependency
> > also failed, which was more or less expected....
> I cloned Debian's git packaging repository for garmin-plugin and had a
> look at what it might take to get things fixed.  Thing is, I cannot find
> any code dependency on libusb.  That is, there is no code that calls any
> USB API.  Unless code is pulled in during the build, the only thing that
> "requires" libusb is the check at configure time.

That is indeed correct. This is even confirmed by the following output
of dpkg-shlibdeps during the build:

dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/garmin-plugin/usr/lib/mozilla/plugins/npGarminPlugin.so was not linked against libusb-0.1.so.4 (it uses none of the library's symbols)

> The README documents a rather cumbersome build procedure that involves
> compiling garmintools as well.  I can imagine that that needs libusb.
> Maybe that inspired the documented "need" for a libusb dependency?
> As the debian/rules file simply builds below src/ without any of the
> hoopla from the README, I thought you can just drop the libusb check
> from the configure script and be done with it.

That's the correct way to do it.

> Tried that and quickly found out that the garmin.h header file from
> garmin-forerunner-tools includes usb.h.  The only other package that
> depends on garmin-forerunner-tools is libgarmin-dev.  Checked that
> package's source and, unsurprisingly, their is zero mention of usb.
> Moreover, it does not need garmin.h.

If garmin-forerunner-tools includes <usb.h>, it should depends on
libusb-dev, and garmin-pluging should therefore not need to include it.
Of course that means the overall build still needs the old libusb 0.1,
but that's one step forward in the right direction.

> That means that splitting the USB stuff out of garmin.h would make it
> possible to drop the libusb dependency on garmin-plugin.
> However, that's more work than I'm willing to put in (now).
> Hope this helps anyway,

Thanks for looking at that, it definitely helps to see better what can
be done.


Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien at aurel32.net                 http://www.aurel32.net

More information about the Pkg-running-devel mailing list