eyduh
March 19, 2026, 8:02pm
1
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.
573
March 20, 2026, 8:59am
2
Does the nix-ld approach give more info when running with LD_DEBUG=versions orLD_DEBUG=all?
opened 05:05PM - 12 Mar 26 UTC
Hello! With the x86_64 AppImage for version `1.0.1b93` (sha256 `9885139c8a184040… bec617c601b53d2b97f8f16fe01db90c1101b732a104b202`), launching BlinderKitten from the AppImage gives:
```
grissess@europa ~/Util $ ./BlinderKitten-linux-x64-1.0.1b93.AppImage
BlinderKitten: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
```
Building libcurl against GnuTLS is very possible, but it is an unusual configuration; it looks like Debian [supports a dev version 4 package](https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=names&keywords=libcurl), but oddly not a non `-dev`. I tried it on my system anyway and was disappointed to discover that it regenerated only `libcurl.so.4`, not a "flavored" variant.
Fixing it wasn't that hard:
```
grissess@europa ~/Util $ ./BlinderKitten-linux-x64-1.0.1b93.AppImage --appimage-extract
grissess@europa ~/Util $ mv squashfs-root/ BlinderKitten-linux-x64-1.0.1b93
grissess@europa ~/Util $ cd BlinderKitten-linux-x64-1.0.1b93/
grissess@europa ~/Util/BlinderKitten-linux-x64-1.0.1b93 $ ln -s $(ldconfig -p | grep libcurl.so.4 | awk '{print $NF}') libcurl-gnutls.so.4
```
(Forgive the `ldconfig` search, my system library path of `/use/x86_64-pc-linux-gnu/lib` is unlikely to be portable.) Then, after also installing Avahi as an unstated dependency, this just works:
```
grissess@europa ~/Util/BlinderKitten-linux-x64-1.0.1b93 $ LD_LIBRARY_PATH=$(realpath .) ./AppRun
```
Although it is a bit awkward to do. This makes me think it's not strictly necessary to link against the GnuTLS "flavor" of `libcurl`, and that any Curl 4 library ought to do. Might you consider updating that part of the build process to not depend on this obscure configuration? :)
eyduh
March 22, 2026, 9:48pm
3
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