Andreas Enge <[email protected]> skribis: > $ guix build qt > substitute-binary: ;;; note: source file /usr/local/guix-git/bin/guix > substitute-binary: ;;; newer than compiled > /root/.cache/guile/ccache/2.0-LE-8-2.0/usr/local/guix-git/bin/guix.go
It’s /root, because the ‘substitute-binary’ is spawned by the daemon, which runs as ‘root’. [...] > In guix/packages.scm: > 297: 1 [#<procedure 3b01e80 at guix/packages.scm:295:9 (number patch)> 0 #f] > In unknown file: > ?: 0 [basename #f #<undefined>] > > ERROR: In procedure basename: > ERROR: In procedure basename: Wrong type argument in position 1 (expecting > string): #f That’s because one of the ‘search-patch’ invocations returned #f–i.e., the patch wasn’t found in the search path. Could you either run ‘./pre-inst-env strace -o log guix build qt-4.5.8’ or add ‘pk’ in ‘search-patch’ in gnu/packages.scm to see which patch is not found and where it’s searched for? For instance like this:
diff --git a/gnu/packages.scm b/gnu/packages.scm index e9f2540..4b6c184 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -62,7 +62,8 @@ (define (search-patch file-name) "Search the patch FILE-NAME." - (search-path (%patch-path) file-name)) + (pk 'SEARCH-PATCH (%patch-path) file-name + (search-path (%patch-path) file-name))) (define (search-bootstrap-binary file-name system) "Search the bootstrap binary FILE-NAME for SYSTEM."
HTH, Ludo’.
