Christopher Lemmer Webber writes: > Bonface M. K. writes: > [...] > I have the notes that Dimos wrote up not long ago in case anyone is > interested. Dimos, do you mind if I post them to the list? > > - Chris Hi! I've been trying to hack around the racket build system(see attached) for some time now; mostly using raco... The biggest problem I've faced so far is that AFAICT, when you use raco to install packages, racket updates some files from where it's called(in guix's case store this is the store where racket is in)--- and I don't think you are allowed to do this. I've tried doing "raco install ", and also just doing "raco install" from inside the directory. The command for building: --8<---------------cut here---------------start------------->8--- env GUIX_PACKAGE_PATH="/home/bonface/projects/guix-bioinformatics:/home/bonface/projects/guix-past/modules" ./pre-inst-env guix build racket-hello-racket -K --8<---------------cut here---------------end--------------->8--- with the error: --8<---------------cut here---------------start------------->8--- starting phase `install' make-directory: cannot make directory path: /homeless-shelter/ system error: Permission denied; errno=13 context...: /gnu/store/4f148vh30qmrdl6apq1ff6yqb7kl8xlm-racket-minimal-7.8/share/racket/collects/racket/file.rkt:114:0: make-directory* [repeats 1 more time] /gnu/store/4f148vh30qmrdl6apq1ff6yqb7kl8xlm-racket-minimal-7.8/share/racket/collects/pkg/private/lock.rkt:26:0: with-pkg-lock* /gnu/store/4f148vh30qmrdl6apq1ff6yqb7kl8xlm-racket-minimal-7.8/share/racket/collects/pkg/main.rkt:216:16 (submod "/gnu/store/4f148vh30qmrdl6apq1ff6yqb7kl8xlm-racket-minimal-7.8/share/racket/collects/pkg/main.rkt" main): [running body] temp35_0 for-loop run-module-instance! for-loop [repeats 1 more time] run-module-instance! "/gnu/store/4f148vh30qmrdl6apq1ff6yqb7kl8xlm-racket-minimal-7.8/share/racket/collects/raco/raco.rkt": [running body] temp35_0 for-loop run-module-instance! "/gnu/store/4f148vh30qmrdl6apq1ff6yqb7kl8xlm-racket-minimal-7.8/share/racket/collects/raco/main.rkt": [running body] ... Inferred package name from given `--clone' path package: source given path: /tmp/guix-build-racket-hello-racket-0.0.1.drv-0/source command "raco" "pkg" "install" "--no-cache" "--no-setup" "--ignore-checksums" "--clone" "/tmp/guix-build-racket-hello-racket-0.0.1.drv-0/source" failed with status 1 builder for `/gnu/store/filph2d8m7k1rq6rpglwx1y082ris6g0-racket-hello-racket-0.0.1.drv' failed with exit code 1 build of /gnu/store/filph2d8m7k1rq6rpglwx1y082ris6g0-racket-hello-racket-0.0.1.drv failed View build log at '/var/log/guix/drvs/fi/lph2d8m7k1rq6rpglwx1y082ris6g0-racket-hello-racket-0.0.1.drv.bz2'. guix build: error: build of `/gnu/store/filph2d8m7k1rq6rpglwx1y082ris6g0-racket-hello-racket-0.0.1.drv' failed --8<---------------cut here---------------end--------------->8--- And when troubleshooting: --8<---------------cut here---------------start------------->8--- cd /tmp/guix-build-racket-hello-racket-0.0.1.drv-0 /home/bonface/guix/pre-inst-env guix environment \ --no-grafts -C racket-hello-racket --ad-hoc strace gdb source ./environment-variables $GUIX_ENVIRONMENT/bin/raco pkg install --no-cache \ --no-setup --ignore-checksums --8<---------------cut here---------------end--------------->8--- Which works just fine since I'm updating files inside $GUIX_ENVIRONMENT. Right now I'm looking for ideas to experiment with to try to overcome this, and the low hanging fruit is to successfully build a hello-racket package with zero deps and no tests. To simply put it, AFAIU updating a package would require racket to update it's references(either links, and other references that I won't go into), hence creating some form of "global state"; thereby if you use raco, every package updated would lead to some update with racket's search paths or dirs somewhere. Any ideas to overcome this wall? (or anything I've got wrong somewhere?)