On Wed, Feb 09, 2022 at 09:32:51PM +0000, Jacob Sims wrote: > Hello, > > I've recently become interested in the Julia programming language, but I keep running into one major hurdle: Pkg.jl doesn't want to work with GuixSD. From this email: https://www.mail-archive.com/help-guix@gnu.org/msg12594.html I deduce that Pkg.jl can work on GuixSD, but there is some setup required. What is this setup? Currently Julia doesn't maintain a reference to p7zip, so currently to use Julia you'll also have to have p7zip in your environment/profile. Fixing this is obviously on our TODO list. > For the sake of thoroughness, here is what happens when I run `using Pkg ; Pkg.add("Plots")` (the main library I want to use that isn't in Guix yet): > ``` > ERROR: could not download https://pkg.julialang.org/registry/23338594-aafe-5451-b93e-139f81909106/c81b6b0a8abee6e83922eca4c0c0585d86d4f5a3 > Stacktrace: > [1] pkgerror(msg::String) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:55 > [2] (::Pkg.Types.var"#82#85"{Pkg.Types.Context, String, Pkg.Types.RegistrySpec})(tmp::String) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1035 > [3] mktempdir(fn::Pkg.Types.var"#82#85"{Pkg.Types.Context, String, Pkg.Types.RegistrySpec}, parent::String; prefix::String) > @ Base.Filesystem ./file.jl:729 > [4] mktempdir (repeats 2 times) > @ ./file.jl:727 [inlined] > [5] clone_or_cp_registries(ctx::Pkg.Types.Context, regs::Vector{Pkg.Types.RegistrySpec}, depot::String) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1027 > [6] clone_or_cp_registries > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1020 [inlined] > [7] clone_default_registries(ctx::Pkg.Types.Context; only_if_empty::Bool) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:920 > [8] clone_default_registries > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:908 [inlined] > [9] find_registered!(ctx::Pkg.Types.Context, names::Vector{String}, uuids::Vector{Base.UUID}) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1291 > [10] registry_resolve!(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:814 > [11] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Iterators.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}}) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:191 > [12] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:80 > [13] add(pkgs::Vector{Pkg.Types.PackageSpec}) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:78 > [14] #add#23 > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:76 [inlined] > [15] add > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:76 [inlined] > [16] #add#22 > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:75 [inlined] > [17] add(pkg::String) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:75 > [18] top-level scope > @ REPL[1]:1 > > caused by: IOError: could not spawn setenv(`7z x /tmp/jl_tRKABw-download.gz -so`,["PATH=:/gnu/store/3k56r512xd0n0pshla3q08x28sdpzj3g-profile/bin:/gnu/store/5v8a9d5xwwan7gqd3ac7jzrlmrn3ha96-glib-2.70.2-bin/bin:/home/jts/.local/bin:/run/setuid-programs:/home/jts/.config/guix/current/bin:/home/jts/.guix-profile/bin:/home/jts/.guix-profile/sbin:/run/current-system/profile/bin:/run/current-system/profile/sbin", "GST_PLUGIN_PATH=/home/jts/.guix-profile/lib/gstreamer-1.0", "LD_LIBRARY_PATH=/gnu/store/p40pa1y5y2v1r55aara1xsvhw4mrvi94-julia-1.6.3/bin/../lib/julia:/gnu/store/p40pa1y5y2v1r55aara1xsvhw4mrvi94-julia-1.6.3/bin/../lib", "DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-3xOq6hWGUQ,guid=448fca8116d1b50a674f591062041877", "MANPATH=/run/current-system/profile/share/man:/home/jts/.guix-profile/share/man:/run/current-system/profile/share/man", "PULSE_CONFIG=/gnu/store/xwm9v2r1mgh5r4c14jx4wfpkid7q1apq-daemon.conf", "XDG_SESSION_DESKTOP=gnome", "XDG_SESSION_TYPE=x11", "PULSE_CLIENTCONFIG=/gnu/store/bqq8l1s67zrkm7adq3jbmh871byay3f6-client.conf", "GUIX_PYTHONPATH=/home/jts/.guix-profile/lib/python3.9/site-packages", "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt", "USER=jts", "XDG_CONFIG_DIRS=/home/jts/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg", "CPLUS_INCLUDE_PATH=/home/jts/.guix-profile/include/c++:/home/jts/.guix-profile/include", "JULIA_DEPOT_PATH=:/gnu/store/3k56r512xd0n0pshla3q08x28sdpzj3g-profile/share/julia/:/gnu/store/3k56r512xd0n0pshla3q08x28sdpzj3g-profile/share/julia/", "C_INCLUDE_PATH=/home/jts/.guix-profile/include", "DBUS_FATAL_WARNINGS=0", "DICPATH=/home/jts/.guix-profile/share/hunspell:/run/current-system/profile/share/hunspell", "CPATH=/home/jts/.guix-profile/include", "USERNAME=jts", "GDMSESSION=gnome", "XDG_DATA_DIRS=/gnu/store/nz5ivvl1l2sg4ziddwx8bwidz0hbzg6j-shared-mime-info-1.15/share:/gnu/store/a1vnwxgl18qn30yfl20lm0hrx1n78jvy-glib-2.70.2/share:/gnu/store/a0wb14k4f3cqyrxw0qxp5ppcr1p25qs4-gsettings-desktop-schemas-41.0/share:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/share:/gnu/store/fw9m4jdglnyw0hlrbgqka4d5if68636l-gnome-terminal-3.40.3/share:/gnu/store/nz5ivvl1l2sg4ziddwx8bwidz0hbzg6j-shared-mime-info-1.15/share:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/share:/gnu/store/a1vnwxgl18qn30yfl20lm0hrx1n78jvy-glib-2.70.2/share:/gnu/store/bz85ysfqdzlid0i03mgyl98r5kcg8i6g-modem-manager-1.12.10/share:/gnu/store/5d8dn8kqf5q7c3pwsz41smqxzlsp7rf1-gcr-3.41.0/share:/gnu/store/a0wb14k4f3cqyrxw0qxp5ppcr1p25qs4-gsettings-desktop-schemas-41.0/share:/gnu/store/kdghhap5h3da1qcqnqm8r3pp1rafy6yw-libgweather-40.0/share:/gnu/store/lx6qqw3wdl8wa6kzd81i2war9al8rr2s-geocode-glib-3.26.2/share:/gnu/store/vr3r4nv028jvj0wa7jzbzxfv2qqagkgb-colord-1.4.5/share:/gnu/store/5040icjgx7v3ii59nph0q2qr4vxiniln-baobab-40.0/share:/gnu/store/6l3s5yqabwg9vwc3wfl97pxb637i50b3-gnome-settings-daemon-41.0/share:/gnu/store/nz5ivvl1l2sg4ziddwx8bwidz0hbzg6j-shared-mime-info-1.15/share:/gnu/store/a1vnwxgl18qn30yfl20lm0hrx1n78jvy-glib-2.70.2/share:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/share:/gnu/store/a0wb14k4f3cqyrxw0qxp5ppcr1p25qs4-gsettings-desktop-schemas-41.0/share:/gnu/store/nwy6x3c98b2f61n1ln6zl5ql1gdchgcc-gnome-session-40.1/share:/gnu/store/nz5ivvl1l2sg4ziddwx8bwidz0hbzg6j-shared-mime-info-1.15/share:/gnu/store/a1vnwxgl18qn30yfl20lm0hrx1n78jvy-glib-2.70.2/share:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/share:/gnu/store/a0wb14k4f3cqyrxw0qxp5ppcr1p25qs4-gsettings-desktop-schemas-41.0/share:/gnu/store/nwy6x3c98b2f61n1ln6zl5ql1gdchgcc-gnome-session-40.1/share:/run/current-system/profile/share:/home/jts/.guix-profile/share:/run/current-system/profile/share:/var/lib/flatpak/exports/share:/home/jts/.local/share/flatpak/exports/share", "SHELL=/gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash", "XAUTHORITY=/run/user/1000/gdm/Xauthority", "XDG_MENU_PREFIX=gnome-", "GST_PLUGIN_SYSTEM_PATH=/run/current-system/profile/lib/gstreamer-1.0", "NM_VPN_PLUGIN_DIR=/gnu/store/8fkgv70j6krjwcpyw5da5x4zpzspfxgj-network-manager-vpn-plugins/lib/NetworkManager/VPN", "GIO_EXTRA_MODULES=/gnu/store/ld3d89lk6gpmway4w5j4x86ycbcv2ard-dconf-0.40.0/lib/gio/modules:/gnu/store/py2xwq72yry23xwj1ssm9rikj5nprkcj-glib-networking-2.70.0/lib/gio/modules:/run/current-system/profile/lib/gio/modules:/gnu/store/ld3d89lk6gpmway4w5j4x86ycbcv2ard-dconf-0.40.0/lib/gio/modules", "SESSION_MANAGER=local/gx:@/tmp/.ICE-unix/1140,unix/gx:/tmp/.ICE-unix/1140", "SSL_CERT_DIR=/run/current-system/profile/etc/ssl/certs", "GDM_DBUS_DAEMON=/gnu/store/b89ycsnp1glpq1llq71f39mirybqnhgz-gdm-dbus-wrapper", "GUIX_LOCPATH=/run/current-system/locale", "HOME=/home/jts", "TERM=xterm-256color", "GDM_CUSTOM_CONF=/gnu/store/y6xs7iiblw5vhlxfzbiwhbkjsk4kajhc-gdm-custom.conf", "COLORTERM=truecolor", "GDM_X_SESSION=/gnu/store/j653i1azcgyahi71pip4rz4ai0529ip2-xinitrc", "GTK_DATA_PREFIX=/run/current-system/profile", "VTE_VERSION=6402", "GTK_PATH=/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/lib/gtk-3.0:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/lib/gtk-3.0:/gnu/store/7n0dy7sqrx6s26gj1xxgl6jf3gfk4isb-libcanberra-0.30/lib/gtk-3.0:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/lib/gtk-3.0:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/lib/gtk-3.0:/gnu/store/7n0dy7sqrx6s26gj1xxgl6jf3gfk4isb-libcanberra-0.30/lib/gtk-3.0:/gnu/store/4f0gv2ywv1r7nqdrhzfsqq8a6gygap1h-gtk+-3.24.30/lib/gtk-3.0", "LIBRARY_PATH=/home/jts/.guix-profile/lib", "TZDIR=/gnu/store/jj5aj3zxf65b7zgismwgy2wad7kbkcqz-tzdata-2021e/share/zoneinfo", "NODE_PATH=/home/jts/.guix-profile/lib/node_modules", "GIT_EXEC_PATH=/home/jts/.guix-profile/libexec/git-core", "GUILE_LOAD_PATH=/run/current-system/profile/share/guile/site/3.0", "EMACSLOADPATH=/home/jts/.guix-profile/share/emacs/site-lisp", "XDG_CURRENT_DESKTOP=GNOME", "LANG=fr_CA.utf8", "LOGNAME=jts", "SHLVL=1", "XDG_RUNTIME_DIR=/run/user/1000", "SSH_AUTH_SOCK=/run/user/1000/keyring/ssh", "DESKTOP_SESSION=gnome", "GDM_LANG=fr_CA.utf8", "GUIX_GTK3_PATH=/run/current-system/profile/lib/gtk-3.0", "GDK_PIXBUF_MODULE_FILE=/run/current-system/profile/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache", "INFOPATH=/home/jts/.config/guix/current/share/info:/home/jts/.guix-profile/share/info:/run/current-system/profile/share/info:/home/jts/.guix-profile/share/info:/run/current-system/profile/share/info", "GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/a6cfdd7a_c1b2_4ab9_abe4_28fa90a2e1a5", "GNOME_TERMINAL_SERVICE=:1.194", "PWD=/home/jts", "XDG_SESSION_CLASS=user", "DISPLAY=:1", "LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules", "OPENBLAS_NUM_THREADS=8", "JULIA_LOAD_PATH=:", "XCURSOR_PATH=/run/current-system/profile/share/icons:/home/jts/.icons:/home/jts/.guix-profile/share/icons:/run/current-system/profile/share/icons", "BASH_LOADABLES_PATH=/run/current-system/profile/lib/bash", "GDM_X_SERVER=/gnu/store/fksg55z68bdgass92i4x6b9fjl533k8a-X-wrapper", "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt", "WINDOWPATH=8", "OPENBLAS_MAIN_FREE=1", "GUILE_LOAD_COMPILED_PATH=/run/current-system/profile/lib/guile/3.0/site-ccache:/run/current-system/profile/share/guile/site/3.0"]): no such file or directory (ENOENT) > Stacktrace: > [1] _spawn_primitive(file::String, cmd::Cmd, stdio::Vector{Any}) > @ Base ./process.jl:99 > [2] #637 > @ ./process.jl:112 [inlined] > [3] setup_stdios(f::Base.var"#637#638"{Cmd}, stdios::Vector{Any}) > @ Base ./process.jl:196 > [4] _spawn > @ ./process.jl:111 [inlined] > [5] open(cmds::Cmd, stdio::Base.DevNull; write::Bool, read::Bool) > @ Base ./process.jl:370 > [6] open (repeats 2 times) > @ ./process.jl:361 [inlined] > [7] open(::Pkg.PlatformEngines.var"#24#26"{String}, ::Cmd; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) > @ Base ./process.jl:391 > [8] open > @ ./process.jl:391 [inlined] > [9] download_verify_unpack(url::String, hash::Nothing, dest::String; tarball_path::Nothing, ignore_existence::Bool, force::Bool, verbose::Bool, quiet_download::Bool, io::Base.TTY) > @ Pkg.PlatformEngines /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/PlatformEngines.jl:511 > [10] (::Pkg.Types.var"#82#85"{Pkg.Types.Context, String, Pkg.Types.RegistrySpec})(tmp::String) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1033 > [11] mktempdir(fn::Pkg.Types.var"#82#85"{Pkg.Types.Context, String, Pkg.Types.RegistrySpec}, parent::String; prefix::String) > @ Base.Filesystem ./file.jl:729 > [12] mktempdir (repeats 2 times) > @ ./file.jl:727 [inlined] > [13] clone_or_cp_registries(ctx::Pkg.Types.Context, regs::Vector{Pkg.Types.RegistrySpec}, depot::String) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1027 > [14] clone_or_cp_registries > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1020 [inlined] > [15] clone_default_registries(ctx::Pkg.Types.Context; only_if_empty::Bool) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:920 > [16] clone_default_registries > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:908 [inlined] > [17] find_registered!(ctx::Pkg.Types.Context, names::Vector{String}, uuids::Vector{Base.UUID}) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1291 > [18] registry_resolve!(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}) > @ Pkg.Types /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:814 > [19] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Iterators.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}}) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:191 > [20] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:80 > [21] add(pkgs::Vector{Pkg.Types.PackageSpec}) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:78 > [22] #add#23 > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:76 [inlined] > [23] add > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:76 [inlined] > [24] #add#22 > @ /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:75 [inlined] > [25] add(pkg::String) > @ Pkg.API /tmp/guix-build-julia-1.6.3.drv-0/julia-1.6.3/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:75 > [26] top-level scope > @ REPL[1]:1 > ``` > > Thanks! > -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted