guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Graceful handling of missing patches


From: Ludovic Courtès
Subject: Re: Graceful handling of missing patches
Date: Tue, 20 Jan 2015 15:01:32 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

Andreas Enge <address@hidden> skribis:

> On Tue, Jan 20, 2015 at 10:22:39AM +0100, Ludovic Courtès wrote:
>> With commits 6b1f972 and dbab515, patch-not-found errors are now
>> gracefully handled at run time:
>> 
>>   $ ./pre-inst-env guix build findutils
>>   guix build: error: WHAT?.patch: patch not found
>> 
>> This introduces an ABI change, so make sure to run:
>> 
>>   make clean-go && make
>
> Compilation now fails for me with
> /bin/mkdir -p `dirname "guix/scripts/refresh.go"` ;                     \
> LC_ALL=C                                                        \
> ./pre-inst-env                                  \
> /usr/bin/guild compile -L "." -L "."    \
>   -Wformat -Wunbound-variable -Warity-mismatch                  \
>   --target="x86_64-unknown-linux-gnu"                                         
>   \
>   -o "guix/scripts/refresh.go" "guix/scripts/refresh.scm"
> ;;; note: source file ./guix/config.scm
> ;;;       newer than compiled 
> /usr/local/guix-git/share/guile/site/2.0/guix/config.go
> ;;; note: source file ./gnu/packages.scm
> ;;;       newer than compiled 
> /usr/local/guix-git/share/guile/site/2.0/gnu/packages.go
> ;;; note: source file ./gnu/packages/guile.scm
> ;;;       newer than compiled 
> /usr/local/guix-git/share/guile/site/2.0/gnu/packages/guile.go
> ;;; note: source file ./gnu/packages/gnome.scm
> ;;;       newer than compiled 
> /usr/local/guix-git/share/guile/site/2.0/gnu/packages/gnome.go
> Backtrace:
> In ice-9/boot-9.scm:
> 2111: 19 [save-module-excursion #<procedure 1adb390 at 
> language/scheme/compile-tree-il.scm:29:3 ()>]
> In language/scheme/compile-tree-il.scm:
>   31: 18 [#<procedure 1adb390 at language/scheme/compile-tree-il.scm:29:3 ()>]
> In ice-9/psyntax.scm:
> 1101: 17 [expand-top-sequence ((define-module # # # ...)) () ((top)) ...]
>  986: 16 [scan ((define-module (guix scripts refresh) #:use-module ...)) () 
> ...]
>  270: 15 [scan ((#(syntax-object let # ...) (#) (# #) ...)) () ...]
> In ice-9/eval.scm:
>  392: 14 [eval # ()]
> In ice-9/boot-9.scm:
> 2667: 13 [define-module* (guix scripts refresh) #:filename ...]
> 2642: 12 [resolve-imports (((guix ui)) ((guix hash)) ((guix store)) ...)]
> 2580: 11 [resolve-interface (gnu packages commencement) #:select ...]
> 2505: 10 [#<procedure 1733340 at ice-9/boot-9.scm:2493:4 (name #:optional 
> autoload version #:key ensure)> # ...]
> 2772: 9 [try-module-autoload (gnu packages commencement) #f]
> 2111: 8 [save-module-excursion #<procedure 24d24b0 at 
> ice-9/boot-9.scm:2773:17 ()>]
> 2783: 7 [#<procedure 24d24b0 at ice-9/boot-9.scm:2773:17 ()>]
> In unknown file:
>    ?: 6 [primitive-load-path "gnu/packages/commencement" #f]
> In gnu/packages/commencement.scm:
>  613: 5 [#<procedure 24e1360 ()>]
> In guix/utils.scm:
>  428: 4 [#<procedure 1a03870 at guix/utils.scm:424:4 args> #]
> In gnu/packages/bootstrap.scm:
>  147: 3 [#<procedure 2511b20 at gnu/packages/bootstrap.scm:134:3 (p)> #]
>   77: 2 [bootstrap-origin #]
> In unknown file:
>    ?: 1 [scm-error wrong-type-arg "map" ...]
> In ice-9/boot-9.scm:
>  106: 0 [#<procedure 1958b00 at ice-9/boot-9.scm:97:6 (thrown-k . args)> 
> wrong-type-arg ...]
>
> ice-9/boot-9.scm:106:20: In procedure #<procedure 1958b00 at 
> ice-9/boot-9.scm:97:6 (thrown-k . args)>:
> ice-9/boot-9.scm:106:20: In procedure map: Not a list: #<promise 
> ("./gnu/packages/patches/guile-arm-fixes.patch")>
> Makefile:4030: die Regel für Ziel „guix/scripts/refresh.go“ scheiterte

Clearly this is a symptom of an old, ABI-incompatible .go being used.

After some discussion and investigation we found out that, during
compilation, ‘guild compile’ could end up loading the already-installed
.go files if their mtime is newer that than of the corresponding .scm
files in the source tree, which is often the case if the user ran ‘make
install’ recently.

Commit 28561d8 fixes that by resetting GUILE_LOAD_COMPILED_PATH
altogether during compilation.

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]