unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Match-error for patches
@ 2015-01-18 13:25 Andreas Enge
  2015-01-18 14:21 ` Ludovic Courtès
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Enge @ 2015-01-18 13:25 UTC (permalink / raw)
  To: guix-devel

Hello,

something very curious is right now (git 561fb6c) happening.

$ make install
$ ./pre-inst-env guix build --no-substitutes -n soprano
The following derivation would be built:
   /gnu/store/f0j3r6h2q4j449y64wz6759acdjgpz7j-soprano-2.9.4.drv
$ guix build --no-substitutes -n soprano
Backtrace:
In ice-9/boot-9.scm:
 149: 19 [catch system-error ...]
 157: 18 [#<procedure 2e4fc80 ()>]
In guix/scripts/build.scm:
 426: 17 [#<procedure 2ee13a0 at guix/scripts/build.scm:422:2 ()>]
 318: 16 [options->derivations #<build-daemon 256.14 2e51f00> (# # # # ...)]
In srfi/srfi-1.scm:
 664: 15 [filter-map #<procedure 41641c0 at guix/scripts/build.scm:318:18 (expr)> #]
In guix/packages.scm:
 600: 14 [cache # # #<procedure thunk ()>]
 849: 13 [thunk]
 781: 12 [bag->derivation # # #]
In srfi/srfi-1.scm:
 576: 11 [map #<procedure 3b421e0 at guix/packages.scm:783:30 (t-10633)> (# # # ...)]
In guix/packages.scm:
 642: 10 [expand-input # # # ...]
 600: 9 [cache # # #<procedure thunk ()>]
 849: 8 [thunk]
 781: 7 [bag->derivation # # #]
In srfi/srfi-1.scm:
 576: 6 [map #<procedure 4c5a780 at guix/packages.scm:783:30 (t-10633)> (# # # ...)]
In guix/packages.scm:
 657: 5 [expand-input # # # ...]
In guix/store.scm:
 920: 4 [run-with-store # ...]
 871: 3 [#<procedure 4ce9b10 at guix/store.scm:870:6 (store)> #]
In guix/packages.scm:
 389: 2 [patch-and-repack # # # ...]
In srfi/srfi-1.scm:
 601: 1 [map #<procedure 4ce9ae0 at guix/packages.scm:389:9 (number patch)> # #]
In guix/packages.scm:
 391: 0 [#<procedure 4ce9ae0 at guix/packages.scm:389:9 (number patch)> 1 #f]

guix/packages.scm:391:17: In procedure #<procedure 4ce9ae0 at guix/packages.scm:389:9 (number patch)>:
guix/packages.scm:391:17: Throw to key `match-error' with args `("match" "no matching pattern")'.

What could this mean? It is probably related to the fact that soprano
requires a patch. But howw is it possible to have different behaviour between
the installed version or with the ./pre-inst-env command?

Moreover, a local build of soprano fails with
CMake Error at cmake/modules/FindQt4.cmake:1239 (MESSAGE):
  Qt qmake not found!
Call Stack (most recent call first):
  CMakeLists.txt:46 (find_package)
whereas the package has been built on hydra in the meantime.

Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Match-error for patches
  2015-01-18 13:25 Match-error for patches Andreas Enge
@ 2015-01-18 14:21 ` Ludovic Courtès
  2015-01-18 16:10   ` Andreas Enge
  0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2015-01-18 14:21 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

Andreas Enge <andreas@enge.fr> skribis:

> something very curious is right now (git 561fb6c) happening.
>
> $ make install
> $ ./pre-inst-env guix build --no-substitutes -n soprano
> The following derivation would be built:
>    /gnu/store/f0j3r6h2q4j449y64wz6759acdjgpz7j-soprano-2.9.4.drv
> $ guix build --no-substitutes -n soprano
> Backtrace:
> In ice-9/boot-9.scm:

Could it be that the installed Guix was miscompiled?  Does
~/.config/guix/latest exist?

[...]

> Moreover, a local build of soprano fails with
> CMake Error at cmake/modules/FindQt4.cmake:1239 (MESSAGE):
>   Qt qmake not found!
> Call Stack (most recent call first):
>   CMakeLists.txt:46 (find_package)
> whereas the package has been built on hydra in the meantime.

Indeed, there’s a substitute for /gnu/store/kjxy0nlkgc6b4g8yx9ss6s4sxyhb25ci-soprano-2.9.4
(x86_64-linux.)

Are you building the same one?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Match-error for patches
  2015-01-18 14:21 ` Ludovic Courtès
@ 2015-01-18 16:10   ` Andreas Enge
  2015-01-18 16:32     ` Ludovic Courtès
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Enge @ 2015-01-18 16:10 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

On Sun, Jan 18, 2015 at 03:21:33PM +0100, Ludovic Courtès wrote:
> Could it be that the installed Guix was miscompiled?  Does
> ~/.config/guix/latest exist?

There is no ~/.config/guix. When is it created?

I also tried to remove the installed guix (except for the database, of
course), "make distclean" and new compilation. The problem remained.

> Indeed, there’s a substitute for /gnu/store/kjxy0nlkgc6b4g8yx9ss6s4sxyhb25ci-soprano-2.9.4
> (x86_64-linux.)
> Are you building the same one?

Yes. But I tried yesterday before the substitute existed.

Now I am getting the same problem with my local kdelibs package.

Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Match-error for patches
  2015-01-18 16:10   ` Andreas Enge
@ 2015-01-18 16:32     ` Ludovic Courtès
  2015-01-18 16:42       ` Andreas Enge
  0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2015-01-18 16:32 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

Andreas Enge <andreas@enge.fr> skribis:

> On Sun, Jan 18, 2015 at 03:21:33PM +0100, Ludovic Courtès wrote:
>> Could it be that the installed Guix was miscompiled?  Does
>> ~/.config/guix/latest exist?
>
> There is no ~/.config/guix. When is it created?

The first time ‘guix pull’ is run.

> I also tried to remove the installed guix (except for the database, of
> course), "make distclean" and new compilation. The problem remained.

Hmm, weird (“make clean-go && make” is usually enough.)

>> Indeed, there’s a substitute for /gnu/store/kjxy0nlkgc6b4g8yx9ss6s4sxyhb25ci-soprano-2.9.4
>> (x86_64-linux.)
>> Are you building the same one?
>
> Yes. But I tried yesterday before the substitute existed.
>
> Now I am getting the same problem with my local kdelibs package.

The backtrace indicates a match-error here:

                 (match patch
                   ((? string?)
                    (add-to-store store (basename patch) #t
                                  "sha256" patch))
                   ((? origin?)
                    (package-source-derivation store patch system)))

Presumably that means that PATCH is #f, which can happen if
‘search-patch’ returned #f, due to the patch not being found in the
search path (patch not installed, or file name typo?).

Could you check that?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Match-error for patches
  2015-01-18 16:32     ` Ludovic Courtès
@ 2015-01-18 16:42       ` Andreas Enge
  2015-01-20  9:22         ` Graceful handling of missing patches Ludovic Courtès
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Enge @ 2015-01-18 16:42 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

On Sun, Jan 18, 2015 at 05:32:36PM +0100, Ludovic Courtès wrote:
> Andreas Enge <andreas@enge.fr> skribis:
> > There is no ~/.config/guix. When is it created?
> The first time ‘guix pull’ is run.

Okay. I have never run "guix pull", only "git pull".

> Presumably that means that PATCH is #f, which can happen if
> ‘search-patch’ returned #f, due to the patch not being found in the
> search path (patch not installed, or file name typo?).

The patch is there under the same name as for soprano in rdf.scm:
$ ll gnu/packages/patches/soprano-find-clucene.patch
-rw-r--r-- 1 privat privat 956 Okt 29 17:54 gnu/packages/patches/soprano-find-clucene.patch

Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Graceful handling of missing patches
  2015-01-18 16:42       ` Andreas Enge
@ 2015-01-20  9:22         ` Ludovic Courtès
  2015-01-20  9:37           ` Andreas Enge
  2015-01-20 22:29           ` Andreas Enge
  0 siblings, 2 replies; 9+ messages in thread
From: Ludovic Courtès @ 2015-01-20  9:22 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

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

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Graceful handling of missing patches
  2015-01-20  9:22         ` Graceful handling of missing patches Ludovic Courtès
@ 2015-01-20  9:37           ` Andreas Enge
  2015-01-20 14:01             ` Ludovic Courtès
  2015-01-20 22:29           ` Andreas Enge
  1 sibling, 1 reply; 9+ messages in thread
From: Andreas Enge @ 2015-01-20  9:37 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

I am still using the guile-2.0.5 from debian.

Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Graceful handling of missing patches
  2015-01-20  9:37           ` Andreas Enge
@ 2015-01-20 14:01             ` Ludovic Courtès
  0 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2015-01-20 14:01 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

Andreas Enge <andreas@enge.fr> 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’.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Graceful handling of missing patches
  2015-01-20  9:22         ` Graceful handling of missing patches Ludovic Courtès
  2015-01-20  9:37           ` Andreas Enge
@ 2015-01-20 22:29           ` Andreas Enge
  1 sibling, 0 replies; 9+ messages in thread
From: Andreas Enge @ 2015-01-20 22:29 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

On Tue, Jan 20, 2015 at 10:22:39AM +0100, Ludovic Courtès wrote:
>   $ ./pre-inst-env guix build findutils
>   guix build: error: WHAT?.patch: patch not found

This turned out to be crucial in debugging:

The problem with "guix build soprano" was not in the patch of soprano
(which was there), but of its input clucene; with the more informative
error message, we found the problem together with Ludovic: A few patches
were there in git, but not added to gnu-system.am. So they were not
installed by "make install".

This is corrected in commit 2dfed64.

Andreas

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-01-20 22:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-18 13:25 Match-error for patches Andreas Enge
2015-01-18 14:21 ` Ludovic Courtès
2015-01-18 16:10   ` Andreas Enge
2015-01-18 16:32     ` Ludovic Courtès
2015-01-18 16:42       ` Andreas Enge
2015-01-20  9:22         ` Graceful handling of missing patches Ludovic Courtès
2015-01-20  9:37           ` Andreas Enge
2015-01-20 14:01             ` Ludovic Courtès
2015-01-20 22:29           ` Andreas Enge

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).