So I tried using the nix expressions above, and it doesn’t seem like GR is actually working with it.
julia> Pkg.add("GR")
Cloning default registries into `~/.julia`
Cloning registry from "https://github.com/JuliaRegistries/General.git"
Added registry `General` to `~/.julia/registries/General`
Resolving package versions...
Installed GR ─ v0.47.0
Updating `~/.julia/environments/v1.1/Project.toml`
[28b8d3ca] + GR v0.47.0
Updating `~/.julia/environments/v1.1/Manifest.toml`
[28b8d3ca] + GR v0.47.0
[2a0f44e3] + Base64
[8bb1440f] + DelimitedFiles
[8ba89e20] + Distributed
[b77e0a4c] + InteractiveUtils
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[a63ad114] + Mmap
[de0858da] + Printf
[9a3f8284] + Random
[ea8e919c] + SHA
[9e88b42a] + Serialization
[6462fe0b] + Sockets
[8dfed614] + Test
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
Building GR → `~/.julia/packages/GR/tPkHV/deps/build.log`
julia> using GR
[ Info: Precompiling GR [28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71]
julia> histogram(randn(10000))
sh: /home/sean/.julia/packages/GR/tPkHV/src/../deps/gr/bin/gksqt: No such file or directory
connect: Connection refused
GKS: can't connect to GKS socket application
Did you start 'gksqt'?
GKS: Open failed in routine OPEN_WS
GKS: GKS not in proper state. GKS must be either in the state WSOP or WSAC in routine ACTIVATE_WS
GKS: GKS not in proper state. GKS must be either in the state WSAC or SGOP in routine POLYLINE
... # It continues like this for a bit...
julia> exit()
~/projects/julia_test
❯ ldd ~/.julia/packages/GR/tPkHV/deps/gr/bin/gksqt
linux-vdso.so.1 (0x00007ffdf2fb6000)
libQtGui.so.4 => not found
libQtNetwork.so.4 => not found
libQtCore.so.4 => not found
libpthread.so.0 => /nix/store/wx1vk75bpdr65g6xwxbj4rw0pk04v5j3-glibc-2.27/lib/libpthread.so.0 (0x00007fc4d3fc9000)
libstdc++.so.6 => not found
libm.so.6 => /nix/store/wx1vk75bpdr65g6xwxbj4rw0pk04v5j3-glibc-2.27/lib/libm.so.6 (0x00007fc4d3e33000)
libgcc_s.so.1 => /nix/store/wx1vk75bpdr65g6xwxbj4rw0pk04v5j3-glibc-2.27/lib/libgcc_s.so.1 (0x00007fc4d3c1b000)
libc.so.6 => /nix/store/wx1vk75bpdr65g6xwxbj4rw0pk04v5j3-glibc-2.27/lib/libc.so.6 (0x00007fc4d3a65000)
/lib64/ld-linux-x86-64.so.2 => /nix/store/wx1vk75bpdr65g6xwxbj4rw0pk04v5j3-glibc-2.27/lib64/ld-linux-x86-64.so.2 (0x00007fc4d3fec000)
~/projects/julia_test
❯ cat shell.nix
{ pkgs ? import <nixpkgs> {} }:
with pkgs;
let
# ./julia.nix contains the posted nix expression in this thread, "julia-env".
my-julia = callPackage ./julia.nix {};
in
stdenv.mkDerivation {
name = "${my-julia.version}-env";
buildInputs = [
my-julia
];
}
Near as I can tell, GR is building an additional binary that doesn’t have the requisite libraries linked in? Still kind of figuring out Nix as I go though, so it’s possible I’m just missing something.