Build failure on guix

Hello, I am getting the following build failure when I try to build version 3.5.0 after cloning the repo under $HOME/common-lisp/nyxt and checking out 3.5.0

; compiling file "NYXT:SOURCE;BUFFER.LISP.NEWEST" (written 01 JAN 1970 12:00:01 AM):

; file: NYXT:SOURCE;BUFFER.LISP.NEWEST
; in: HOOKS:DEFINE-HOOK-TYPE KEYMAPS-BUFFER
;     (NHOOKS:DEFINE-HOOK-TYPE NYXT::KEYMAPS-BUFFER
;                              (FUNCTION
;                               ((NYXT/TYPES:LIST-OF NKEYMAPS/CORE:KEYMAP)
;                                NYXT::BUFFER)
;                               (VALUES &OPTIONAL
;                                       (NYXT/TYPES:LIST-OF NKEYMAPS/CORE:KEYMAP)
;                                       NYXT::BUFFER))
;                              "Hook to modify keymaps.
;   Get a list of `nkeymaps:keymap's and `buffer' and return a new list and buffer.")
; 
; caught ERROR:
;   (during macroexpansion of (HOOKS:DEFINE-HOOK-TYPE KEYMAPS-BUFFER ...))
;   Error while parsing arguments to DEFMACRO HOOKS:DEFINE-HOOK-TYPE:
;     too many elements in
;       (KEYMAPS-BUFFER
;        (FUNCTION ((LIST-OF NKEYMAPS/CORE:KEYMAP) BUFFER)
;         (VALUES &OPTIONAL (LIST-OF NKEYMAPS/CORE:KEYMAP) BUFFER))
;        "Hook to modify keymaps.
;   Get a list of `nkeymaps:keymap's and `buffer' and return a new list and buffer.")
;     to satisfy lambda list
;       (NAME TYPE):
;     exactly 2 expected, but got 3

; in: HOOKS:DEFINE-HOOK-TYPE URL->URL
;     (NHOOKS:DEFINE-HOOK-TYPE NYXT::URL->URL
;                              (FUNCTION (QURI.URI:URI) QURI.URI:URI)
;                              "Hook getting a `quri:uri' and returning same/another one. ")
; 
; caught ERROR:
;   (during macroexpansion of (HOOKS:DEFINE-HOOK-TYPE URL->URL ...))
;   Error while parsing arguments to DEFMACRO HOOKS:DEFINE-HOOK-TYPE:
;     too many elements in
;       (URL->URL (FUNCTION (QURI.URI:URI) QURI.URI:URI)
;        "Hook getting a `quri:uri' and returning same/another one. ")
;     to satisfy lambda list
;       (NAME TYPE):
;     exactly 2 expected, but got 3

; in: HOOKS:DEFINE-HOOK-TYPE BUFFER
;     (NHOOKS:DEFINE-HOOK-TYPE NYXT:BUFFER #'(NYXT:BUFFER)
;                              "Hook acting on `buffer's.")
; 
; caught ERROR:
;   (during macroexpansion of (HOOKS:DEFINE-HOOK-TYPE BUFFER ...))
;   Error while parsing arguments to DEFMACRO HOOKS:DEFINE-HOOK-TYPE:
;     too many elements in
;       (BUFFER #'(BUFFER) "Hook acting on `buffer's.")
;     to satisfy lambda list
;       (NAME TYPE):
;     exactly 2 expected, but got 3

I have built nyxt successfully several times before. So I guess I must be missing basic step. Any help would be appreciated.

@milindkamble sbcl-nhooks has been recently updated to version 1.2.1. If you try to build Nyxt after issuing guix pull it will work.

If you’re getting Nyxt from Guix, I’d suggest installing it via guix install nyxt. To update, guix pull and then guix update nyxt.

Out of curiosity, are you locally compiling Nyxt on Guix for a particular reason?

@aadcg : thanks for the suggestion. I did install nyxt from the substitute server (based on my pull, I got nyxt 3.3.0). I presume when I do a next guix pull I will be able to move to nyxt 3.5.0
The reason I was compiling Nyxt on Guix was sometime back I had raised an issue about KeepassXC support for keyfile option. It was added promptly by @aartaka and I had to compile the bleeding edge. But now that necessity is gone because that commit is included in the later releases.
So for now, I don’t need to compile locally. However if the need arises, I will be experiencing this failure as it still fails to build even after “guix install nyxt” which pulled in all the sbcl modules

The local build will succeed when the Guix version you're running will feature the latest version of nhooks (1.2.1) - hence the advice to run guix pull. guix install nyxt pulls the sbcl modules but it doesn't update them to the latest versions. Does that make sense?

Correct.

1 Like