Blinderkitten - Appimage missing libcurl-gnutls.so.4

Hi,

been trying to make a derivation for https://blinderkitten.lighting as the appimage requires libcurl-gnutls but I cant for the life of me make it work.

nix run github:nix-community/nix-index-database -- lib/libcurl-gnutls.so.4
curlWithGnuTls.out                                    0 s /nix/store/zdqb7zbn2c3rfv9r9kbagxf27802vamk-curl-8.18.0/lib/libcurl-gnutls.so.4
curlWithGnuTls.out                                    0 s /nix/store/zdqb7zbn2c3rfv9r9kbagxf27802vamk-curl-8.18.0/lib/libcurl-gnutls.so.4.4.0

So, I tried the simple

{
  pkgs,
  ...
}: {
  programs.appimage = {
    enable = true;
    binfmt = true;
    package = pkgs.appimage-run.override { extraPkgs = pkgs: with pkgs; [
      curlWithGnuTls.out
      ];
    };
  };
}

and then run it as per usual. I also tried with nix-ld:



  programs.nix-ld = {
    enable = true;
    libraries = with pkgs; [
      curlWithGnuTls.out
    ];
  };

And with appimagetools.wrapType2

# modules/desktop/creative-suite/blinderkitten.nix
{ pkgs, lib, ... }:
let
  version = "1.0.1b93";
  
  sources = {
    x86_64-linux = {
      url = "https://blinderkitten.lighting/installs/BlinderKitten-linux-x64-${version}.AppImage";
      hash = "sha256-mIUTnIoYQEC+xhfGAbU9K5f48W/gHbkMEQG3MqEEsgI=";
    };
  };

  source = sources.${pkgs.stdenv.hostPlatform.system};
 
  blinderkitten = pkgs.appimageTools.wrapType2 rec {
    pname = "blinderkitten";
    inherit version;
    
    src = pkgs.fetchurl {
      inherit (source) url hash;
    };
    
    extraPkgs = pkgs: with pkgs; [      
      curlWithGnuTls.out  
    ];
    
    meta = with pkgs.lib; {
      description = "A lighting software for controlling stage lighting";
      homepage = "https://blinderkitten.lighting/";
      license = licenses.gpl3;
      platforms = [ "x86_64-linux" ];
    };
  };
in
{
  environment.systemPackages = [ blinderkitten ];
}

I also tried some other buildFHS versions and a patchelf version but keep coming back to this missing libcurl-gnutls lib

Not really sure what to try next as all the guides I find to add libraries suggest to do something that doesnt seem to work for this one specifically.

Does the nix-ld approach give more info when running with LD_DEBUG=versions orLD_DEBUG=all?

nothing I can make sense of.. I’m not super well versed in nix-ld though, only came across it because of some old post somewhere relating to appimages.

LD_DEBUG=versions gave nothing much.

LD_DEBUG=all gave some more info towards the end of stderr:

$ tail -n 50 stderr-all                                                                                                                                                     ~ 22:50:17 
     19122:      search cache=/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/etc/ld.so.cache
     19122:       trying file=/lib/libGL.so.1
     19122:
     19122:     file=libGL.so.1 [0];  generating link map
     19122:       dynamic: 0x00007fe63c5bacc0  base: 0x00007fe63c530000   size: 0x000000000008c878
     19122:         entry: 0x00007fe63c530000  phdr: 0x00007fe63c530040  phnum:                 10
     19122:
     19122:
     19122:     file=libcurl-gnutls.so.4 [0];  needed by BlinderKitten [0]
     19122:     find library=libcurl-gnutls.so.4 [0]; searching
     19122:      search path=/home/eyduh/.cache/appimage-run/9885139c8a184040bec617c601b53d2b97f8f16fe01db90c1101b732a104b202/usr/lib:glibc-hwcaps/x86-64-v3:glibc-hwcaps/x86-64-v2:       (LD_LIBRARY_PATH)
     19122:       trying file=/home/eyduh/.cache/appimage-run/9885139c8a184040bec617c601b53d2b97f8f16fe01db90c1101b732a104b202/usr/lib/libcurl-gnutls.so.4
     19122:       trying file=glibc-hwcaps/x86-64-v3/libcurl-gnutls.so.4
     19122:       trying file=glibc-hwcaps/x86-64-v2/libcurl-gnutls.so.4
     19122:       trying file=libcurl-gnutls.so.4
     19122:      search path=lib/glibc-hwcaps/x86-64-v3:lib/glibc-hwcaps/x86-64-v2:lib          (RUNPATH from file BlinderKitten)
     19122:       trying file=lib/glibc-hwcaps/x86-64-v3/libcurl-gnutls.so.4
     19122:       trying file=lib/glibc-hwcaps/x86-64-v2/libcurl-gnutls.so.4
     19122:       trying file=lib/libcurl-gnutls.so.4
     19122:      search cache=/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/etc/ld.so.cache
     19122:      search path=/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/glibc-hwcaps/x86-64-v3:/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/glibc-hwcaps/x86-64-v2:/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib:/nix/store/kbijm6lc9va8xann3cfyam0vczzmwkxj-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v3:/nix/store/kbijm6lc9va8xann3cfyam0vczzmwkxj-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v2:/nix/store/kbijm6lc9va8xann3cfyam0vczzmwkxj-xgcc-15.2.0-libgcc/lib             (system search path)
     19122:       trying file=/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/glibc-hwcaps/x86-64-v3/libcurl-gnutls.so.4
     19122:       trying file=/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/glibc-hwcaps/x86-64-v2/libcurl-gnutls.so.4
     19122:       trying file=/nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/libcurl-gnutls.so.4
     19122:       trying file=/nix/store/kbijm6lc9va8xann3cfyam0vczzmwkxj-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v3/libcurl-gnutls.so.4
     19122:       trying file=/nix/store/kbijm6lc9va8xann3cfyam0vczzmwkxj-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v2/libcurl-gnutls.so.4
     19122:       trying file=/nix/store/kbijm6lc9va8xann3cfyam0vczzmwkxj-xgcc-15.2.0-libgcc/lib/libcurl-gnutls.so.4
     19122:
BlinderKitten: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
     19113:
     19113:     calling fini:  [0]
     19113:
     19113:
     19113:     calling fini: /nix/store/h4qwa74a377wj4xgglkg6wjiwf72ab9z-libselinux-3.8.1/lib/libselinux.so.1 [0]
     19113:
     19113:
     19113:     calling fini: /nix/store/f8nvf7p00dw86sd3h2z7fp7xqhmrvf4p-libcap-2.77-lib/lib/libcap.so.2 [0]
     19113:
     19113:
     19113:     calling fini: /nix/store/0kgwmi3n8ml2a041a5y9y9ycga3md4dq-pcre2-10.46/lib/libpcre2-8.so.0 [0]
     19113:
     19113:
     19113:     calling fini: /nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/libdl.so.2 [0]
     19113:
     19113:
     19113:     calling fini: /nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/libc.so.6 [0]
     19113:
     19113:
     19113:     calling fini: /nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/ld-linux-x86-64.so.2 [0]
     19113:


nix-ld doesnt seem to look in the right places for this lib? I’m not super familiar with nix-ld to know where and why it looks for what it looks for but a quick search through the nix store shows libcurl-gnutls very much present on the system:

$ eza -R1 /nix/store | grep libcurl
libcurl.la
libcurl.so -> libcurl.so.4.8.0
libcurl.so.4 -> libcurl.so.4.8.0
libcurl.so.4.8.0
libcurl.la
libcurl.so -> libcurl.so.4.8.0
libcurl.so.4 -> libcurl.so.4.8.0
libcurl.so.4.8.0
libcurl-impersonate.a
libcurl-impersonate.la
libcurl-impersonate.so -> libcurl-impersonate.so.4.8.0
libcurl-impersonate.so.4 -> libcurl-impersonate.so.4.8.0
libcurl-impersonate.so.4.8.0
libcurl.la
libcurl.so -> libcurl.so.4.8.0
libcurl.so.4 -> libcurl.so.4.8.0
libcurl.so.4.8.0
libcurl-gnutls.so -> /nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl-gnutls.so
libcurl-gnutls.so.4 -> /nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl-gnutls.so.4
libcurl-gnutls.so.4.4.0 -> /nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl-gnutls.so.4.4.0
libcurl.la -> /nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl.la
libcurl.so -> /nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl.so
libcurl.so.4 -> /nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl.so.4
libcurl.so.4.8.0 -> /nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl.so.4.8.0
...

so a more thorough look reveals it should even be present where it should be present:

$ find /nix/store -iname 'libcurl-gnutls.*'                                                                                                                                 
/nix/store/vfsghxsap24k8gcg4z4dbp42av6hdbr0-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/vfsghxsap24k8gcg4z4dbp42av6hdbr0-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/vfsghxsap24k8gcg4z4dbp42av6hdbr0-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/5wfmxx2qhi3l98ydjy3fpzw2cbny1v8h-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/5wfmxx2qhi3l98ydjy3fpzw2cbny1v8h-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/5wfmxx2qhi3l98ydjy3fpzw2cbny1v8h-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/w8kgi2qs9pndk2j30lmmgzrgvyiryi98-curl-8.17.0/lib/libcurl-gnutls.so
/nix/store/w8kgi2qs9pndk2j30lmmgzrgvyiryi98-curl-8.17.0/lib/libcurl-gnutls.so.4
/nix/store/w8kgi2qs9pndk2j30lmmgzrgvyiryi98-curl-8.17.0/lib/libcurl-gnutls.so.4.4.0
/nix/store/zi7dah5sc47l689qjpmh9f2mxfxfnhak-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/zi7dah5sc47l689qjpmh9f2mxfxfnhak-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/zi7dah5sc47l689qjpmh9f2mxfxfnhak-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/p6pdav2zgfxczdv2dv5q62d71j7lgl7i-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/p6pdav2zgfxczdv2dv5q62d71j7lgl7i-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/p6pdav2zgfxczdv2dv5q62d71j7lgl7i-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/m2vz64xgsi7qkdfdpgq4c79iraidgq6x-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/m2vz64xgsi7qkdfdpgq4c79iraidgq6x-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/m2vz64xgsi7qkdfdpgq4c79iraidgq6x-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/1n00w210dfg64b3qkxs3vj1wvy5wlq80-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/1n00w210dfg64b3qkxs3vj1wvy5wlq80-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/1n00w210dfg64b3qkxs3vj1wvy5wlq80-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/l8fd5716vvxwdrb2b7m28a3qw8xxzcch-ld-library-path/share/nix-ld/lib/libcurl-gnutls.so
/nix/store/l8fd5716vvxwdrb2b7m28a3qw8xxzcch-ld-library-path/share/nix-ld/lib/libcurl-gnutls.so.4
/nix/store/l8fd5716vvxwdrb2b7m28a3qw8xxzcch-ld-library-path/share/nix-ld/lib/libcurl-gnutls.so.4.4.0
/nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl-gnutls.so
/nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl-gnutls.so.4
/nix/store/i5h2wp20bzzk0cazhbyqswks2s3i9kah-curl-8.17.0/lib/libcurl-gnutls.so.4.4.0
/nix/store/wi15xkq8wnp6ilpmy37pqyk40vsdl5aq-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/wi15xkq8wnp6ilpmy37pqyk40vsdl5aq-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/wi15xkq8wnp6ilpmy37pqyk40vsdl5aq-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/qhxyms904rdk10m6myidxd4bd7acd15l-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/qhxyms904rdk10m6myidxd4bd7acd15l-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/qhxyms904rdk10m6myidxd4bd7acd15l-appimage-run-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0
/nix/store/ickm1h91i3467b0hsbhs95g8b7y8y1q0-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so
/nix/store/ickm1h91i3467b0hsbhs95g8b7y8y1q0-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4
/nix/store/ickm1h91i3467b0hsbhs95g8b7y8y1q0-blinderkitten-1.0.1b93-fhsenv-rootfs/usr/lib64/libcurl-gnutls.so.4.4.0


very odd… it exists both in a fhs from the deriv, as well as the appimage-run place.

I have it working on steamOS after installing libcurl-gnutls so not sure what is up

edit: updated find output after nix-collect-garbage -d