Subject: Re: bug#64576: [PATCH] gnu: libusb-compat: Compile with full path of libusb-1.0.so
From: Maxim Cournoyer <[email-masked]>
To: nathan <[email-masked]>
Cc: [email-masked]
Date: Wed, 06 Sep 2023 00:01:01 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

nathan <[email-masked]> writes:

> fix bug#64409
> In libusb-compat-0.1.8/libusb/libusb-dload.h, dlopen is used to load libusb.
> We need to specify an absolute path.
> With this fix, teensy_loader_cli doesn't immediately fail with a missing library error.
> ./pre-inst-env guix shell teensy-loader-cli -- teensy_loader_cli
> If you merge the patch from bug#64563 first, you can't test this patch with teensy_loader_cli.
>
>>From c0a8ecea0ce6f3954061a3d061a3243fa65c6cfb Mon Sep 17 00:00:00 2001
> From: nathan <[email-masked]>
> Date: Mon, 10 Jul 2023 23:22:48 -0400
> Subject: [PATCH] gnu: libusb-compat: Compile with full path of libusb-1.0.so
>
> * gnu/packages/libusb.scm (libusb) [configure-flags]: Provide full path of
>   libusb-1.0.so so dlopen works.
> ---
>  gnu/packages/libusb.scm | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
> index d0837c8a91..39586147ba 100644
> --- a/gnu/packages/libusb.scm
> +++ b/gnu/packages/libusb.scm
> @@ -101,7 +101,10 @@ (define-public libusb-compat
>      (build-system gnu-build-system)
>      (arguments
>       (list #:configure-flags
> -           #~(list "--disable-static")))
> +           #~(list "--disable-static"
> +                   (string-append "LIBUSB_1_0_SONAME="
> +                                  #$(this-package-input "libusb")
> +                                  "/lib/libusb-1.0.so"))))
>      (native-inputs
>       (list autoconf automake libtool pkg-config))
>      (inputs

Interesting!  I fixed this independently with ddd8bb104, using a RUNPATH
approach.  Yours is a better solution, now applied :-).

-- 
Thanks,
Maxim