X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blobdiff_plain;f=shell.nix;h=f9d896259e7b7edee0424f0a3a917aaf54234bee;hp=fa19e72dcc63db877971ad7408a7dd09d3976093;hb=f90846f78e23f66d84266518b314a6a2dcc66f16;hpb=618d842e05d7f65ef8ca8e56a0d0cfbffd6c08de diff --git a/shell.nix b/shell.nix index fa19e72dcc..f9d896259e 100644 --- a/shell.nix +++ b/shell.nix @@ -9,7 +9,8 @@ let gdk_pixbuf gnome2.gtkglext pcre - mesa_glu + libGL + libGLU freealut openssl udis86 # available since NixOS 19.09 @@ -18,11 +19,11 @@ let libvorbis zlib ]; - runtimeLibPath = lib.makeLibraryPath runtimeLibs; + runtimeLibPath = "/run/opengl-driver/lib:" + lib.makeLibraryPath runtimeLibs; in (mkClangShell { name = "factor-shell-env"; - LD_LIBRARY_PATH = "/run/opengl-driver/lib:${runtimeLibPath}" ; + LD_LIBRARY_PATH = runtimeLibPath ; buildInputs = runtimeLibs ++ [ # for building factor git @@ -30,11 +31,22 @@ in makeWrapper ]; shellHook = '' + # Set Gdk pixbuf loaders file to the one from the build dependencies here + unset GDK_PIXBUF_MODULE_FILE + # Defined in gdk-pixbuf setup hook + findGdkPixbufLoaders "${pkgs.librsvg}" + wrapFactor () { [ -n "$1" ] || { printf "Usage: wrapFactor " ; return; } local root="$(realpath $1)" local binary="''${root}/factor" + local wrapped="''${root}/.factor-wrapped" + # Remove the wrapped binary if a new VM has been compiled + ${lib.getBin file}/bin/file "$binary" |grep ELF >/dev/null && rm -f "$wrapped" + # Restore the factor binary if it was already wrapped + [ -e "$wrapped" ] && { mv "$wrapped" "$binary" ; } wrapProgram "$binary" --prefix LD_LIBRARY_PATH : ${runtimeLibPath} \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ --argv0 factor ln -sf "''${root}/factor.image" "''${root}/.factor-wrapped.image" }