GNU bug report logs - #64409
libusb shared object file paths

Previous Next

Package: guix;

Reported by: Reed Meyerson <reed.meyerson <at> gmail.com>

Date: Sun, 2 Jul 2023 07:33:05 UTC

Severity: normal

To reply to this bug, email your comments to 64409 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#64409; Package guix. (Sun, 02 Jul 2023 07:33:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Reed Meyerson <reed.meyerson <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 02 Jul 2023 07:33:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Reed Meyerson <reed.meyerson <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: libusb shared object file paths
Date: Sat, 1 Jul 2023 19:08:37 -0400
[Message part 1 (text/plain, inline)]
Hello,

I have been trying to get the teensy-loader-cli package working on my
machine and I am running into shared object file related errors.

explanation of bug:

running "teensy_loader_cli" (from the "teensy-loader-cli" package) gives
the following error:

teensy_loader_cli: error while loading libusb-1.0.so.0 from
libusb-0.1.so.4: libusb-1.0.so.0: cannot open shared object file: No such
file or directory

How to reproduce the bug:

$ guix shell --container teensy_loader_cli
[env]$ teensy_loader_cli

In the guix shell container, it does seem that there is no file for
libusb-1.0.so.0. In particular $GUIX_ENVIRONMENT/lib doesn't exist. I can
include the file in the environment by adding the libusb package:

$ guix shell --container teensy_loader_cli libusb coreutils
[env]$ ls $GUIX_ENVIRONMENT/lib
libusb-1.0.a   libusb-1.0.so libusb-1.0.so.0.3.0
libusb-1.0.la  libusb-1.0.so.0 pkgconfig

However,
[env]$ teensy_loader_cli
still gives the same error as before.

I can get it to run by manually setting the $LD_LIBRARY_PATH variable:

[env]$ LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib teensy_loader_cli

Best,
Reed
[Message part 2 (text/html, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#64409; Package guix. (Fri, 18 Aug 2023 15:51:02 GMT) Full text and rfc822 format available.

Message #8 received at 64409 <at> debbugs.gnu.org (full text, mbox):

From: Garek Dyszel <garekdyszel <at> disroot.org>
To: 64409 <at> debbugs.gnu.org
Cc: Reed Meyerson <reed.meyerson <at> gmail.com>
Subject: libusb shared object file paths
Date: Fri, 18 Aug 2023 11:49:53 -0400
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi Reed,

At 19:08 2023-07-01 UTC-0400, Reed Meyerson <address <at> hidden> wrote:
>I can get it to run by manually setting the $LD_LIBRARY_PATH variable:
> 
>[env]$ LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib teensy_loader_cli

It seems I found a solution to your problem based on your clue here.
It's kind of a hack since I'm sure the maintainers are trying to get rid
of this, but... the solution is to use libusb-0.1 as a replacement for
the libusb-compat input.

Here's a package variant that does exactly that.

teensy-loader-cli-unbroken.scm:
- --8<---------------cut here---------------start------------->8---
(define-module (teensy-loader-cli-unbroken)
  #:use-module (guix packages)
  #:use-module (guix build utils)
  #:use-module (gnu packages libusb)
  #:use-module (gnu packages flashing-tools))

(define-public teensy-loader-cli-unbroken
  (package
    (inherit teensy-loader-cli)
    (name "teensy-loader-cli-unbroken")
    (inputs (list libusb-0.1))))

teensy-loader-cli-unbroken

- --8<---------------cut here---------------end--------------->8---

It works on my system and gives the usual output.

- --8<---------------cut here---------------start------------->8---
$ $(guix build -f ./teensy-loader-cli-unbroken.scm)/bin/teensy_loader_cli
Filename must be specified

Usage: teensy_loader_cli --mcu=<MCU> [-h] [-w] [-n] [-b] [-v] <file.hex>
        -h : Print this help message
        -w : Wait for device to appear
        -r : Use hard reboot if device not online
        -s : Use soft reboot if device not online (Teensy 3.x & 4.x)
        -n : No reboot after programming
        -b : Boot only, do not program
        -v : Verbose output

Use `teensy_loader_cli --list-mcus` to list supported MCUs.

For more information, please visit:
http://www.pjrc.com/teensy/loader_cli.html
- --8<---------------cut here---------------end--------------->8---

Note that I didn't try to flash anything with it yet. I'm working on
getting the udev rule to install with teensy-loader-cli, but I most
likely won't have that done anytime soon (or at all, if I lose
interest!).

I've been fighting with this sporadically over the last year, and this
was what I needed to get it working. Thanks for the hint!

Garek
-----BEGIN PGP SIGNATURE-----

iQHMBAEBCAA2FiEEdeLnvfwHNTIxccGsHY28ysRsRfIFAmTfkygYHGdhcmVrZHlz
emVsQGRpc3Jvb3Qub3JnAAoJEB2NvMrEbEXyp7kL/0gJ1aVbjcpWWz2y6/G7eCAQ
zxn1itOz5mWJcoKiXdfsWiu7FiCxdaWOpH1tpBwZ9po2cdz8pvjARI+TCBTfIqAp
h0uhELABjy+pzUs2q5V3pBx8IXYroE3Jz7NKcOwiUdFxS9KE7fCQMBJXoXY19ZKi
O1P3eRQph4iv1K624aLjnl3i1iV8KXS6IYphoGzvy9oV57ns5Va4/DojzNIaCihq
msmp2kxkjcGJKGlpskQ9bs7Pe4R2EXHJT1kCvAcmSzJZvYYQcony1e9g580mgmVA
cZ3oQOWWmQy6OMjVseKuMOv3biFTisPZitXv0fmvwA44vBLH96BG/qg6naGNDnRX
cZGIWAGsui7Y90dUXj1iw6pzMQH1nlkimmpch+nCjci1whsm9Is2yqIITambnr1W
czHxqcmF/49mFxKAmr9+dpFiiy40mcHu64kqRT6PewaIuo5xfHkNI3OWEKZtAqRY
rxSnKS1/pxz5SGR7gprCS48Jt+zIZsXpZeDdEBxQvQ==
=xKJo
-----END PGP SIGNATURE-----




This bug report was last modified 260 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.