Hooray, I've managed to run Next Browser on GuixSD! The main issue is with cffi: it does not find the libraries installed by Guix.
Andy's CFFI package does not seem to cut it. I've asked on the CFFI
mailing list and received the following suggestion:
https://mailman.common-lisp.net/pipermail/cffi-devel/2018-May/003051.html
Now to the question of packaging CFFI for Guix: which road shall we
follow?
- Package CFFI as-is and tweak `cffi:*foreign-library-directories*` when
packaging packages that depend on it.
- Package a patched version of CFFI to lookup a specific library
folder... But I'm not sure which one.
The problem with the first solution is that I'm not sure we can apply it
with the way ASDF works with common lisp system like Next. Here follow
Next's Makefile:
--8<---------------cut here---------------start------------->8---
LISP?=sbcl
build-gtk:
$(LISP) \
--load next.asd \
--eval '(ql:quickload :next/gtk)' \
--eval '(asdf:make :next/gtk)' \
--eval '(quit)'
--8<---------------cut here---------------end--------------->8---
We could patch it to
--8<---------------cut here---------------start------------->8---
LISP?=sbcl
build-gtk:
$(LISP) \
--eval '(ql:quickload :cffi)' \
--eval '(push (format nil "~a/.guix-profile/lib/" (uiop:getenv
"HOME")) cffi:*foreign-library-directories*)' \
## Rest is as usual.
--load next.asd \
--eval '(ql:quickload :next/gtk)' \
--eval '(asdf:make :next/gtk)' \
--eval '(quit)'
--8<---------------cut here---------------end--------------->8---
Or maybe just set `LISP=sbcl --eval '(ql:quickload :cffi...)`.
Suggestions?
--
Pierre Neidhardt
signature.asc
Description: PGP signature
