I am a bit stumped, a bunch of packages seem broken in nixpkgs/nixos-unstable.
Quite often I get errors like those
[nix-shell:~]$ yambar
yambar: /nix/store/ld03l52xq2ssn4x0g5asypsxqls40497-glibc-2.37-8/lib/libc.so.6: version `GLIBC_2.38' not found (required by /nix/store/zrq9b75k3sv0l45n66rz72c4h03i1dbw-glib-2.76.4/lib/libglib-2.0.so.0)
All the nwg-shell packages too. nwg-launchers nwg-displays nwg-drawer nwg-panel nwg-dock nwg-look nwg-menu nwg-bar
Am I holding it wrong or are they indeed all build for the wrong glibc or fail track the correct dependencies?
I’m quite new to nix, I don’t understand the tooling enough to give good context.
However I can say that I do find glibc-2.38-23 in my nix-store.
So it’s really just a matter of the ldd looking in the wrong place. (Or rather that it wasn’t told to include the right glibc in the library paths I suppose)
NixOS. Flake based install, initially with nixpkgs 23.05 but I later switched to unstable because of missing packages.
I switched by changing the flake URL for nixpackages.
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-coolercontrol.url = "github:codifryed/nixpkgs/coolercontrol-0.17.0";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
[...]
Can’t imagine I did something wrong by the way I changed that. Because of how nixos is supposed to be side-effect free. But I thought I mention it.
But that issue had an important hint.
› nix-shell -p yambar
[nix-shell:~/git/nix-config/nix]$ echo $LD_LIBRARY_PATH
:/nix/store/zrq9b75k3sv0l45n66rz72c4h03i1dbw-glib-2.76.4/lib
[nix-shell:~/git/nix-config/nix]$ unset LD_LIBRARY_PATH
[nix-shell:~/git/nix-config/nix]$ yambar
err: main.c:325: could not find a configuration (see man 5 yambar)
So, what is setting my $LD_LIBRARY_PATH and why? Turns out my cargo cult nixconfig had some unexptected surprises
home = {
sessionVariables = {
# TODO: Not sure what the right way of doing this is...
# The list of packages is a subset of `GI_TYPELIB_PATH` in `nix-shell -p gobject-introspection gtk4`.
GI_TYPELIB_PATH = "$GI_TYPELIB_PATH:${pkgs.gobject-introspection.out}/lib/girepository-1.0:${pkgs.gtk4.out}/lib/girepository-1.0:${pkgs.graphene.out}/lib/girepository-1.0:${pkgs.gdk-pixbuf.out}/lib/girepository-1.0:${pkgs.harfbuzz.out}/lib/girepository-1.0:${pkgs.pango.out}/lib/girepository-1.0";
LD_LIBRARY_PATH = "$LD_LIBRARY_PATH:${pkgs.glib.out}/lib";
};
Thanks for your help. Complete PEBCAK as it turns out.
2 Likes