Subject: bug#34590: Effects of GUIX_PACKAGE_PATH and --load-path differ

From: Daniel Gerber <[email-masked]>
Date: Wed, 06 Mar 2019 15:43:41 +0100

Hi,  2019-03-06, Ludovic Courtès: 

> However, what do /gnu/guix-local-packages/ contain?  I suppose 
> it provides [email-masked]? 

Yes, it provides [email-masked] *plus* its dependency [email-masked]. 

  $ tree /gnu/guix-local-packages/ /gnu/guix-local-packages/ ├── 
  gnu │   └── packages │       ├── libevent.scm │       └── 
  node.scm └── node-llhttp.patch 
 
> Then my guess is that “[email-masked]” is ambiguous and that 
> ‘specification->package’ chooses one of the two in a 
> non-deterministic fashion. 
> 
> Can you show the output of: 
> 
>   guix package -A node guix package -A node -L 
>   /gnu/guix-local-packages 
>   GUIX_PACKAGE_PATH=/gnu/guix-local-packages guix package -A 
>   node 

  $ guix package -A '^(node|libuv)' libuv	1.24.0	out 
  gnu/packages/libevent.scm:125:2 libuv	1.19.2	out 
  gnu/packages/libevent.scm:159:2 node	9.11.1	out 
  gnu/packages/node.scm:46:2 node-lts	8.12.0	out 
  gnu/packages/node.scm:202:2 
 
  $ guix package -A '^(node|libuv)' -L /gnu/guix-local-packages 
  ;;; note: source file 
  /gnu/guix-local-packages/gnu/packages/libevent.scm ;;; 
  newer than compiled 
  /gnu/store/l6wkk4kzhvkg014slv3plx513cgxqx6h-guix-module-union/lib/guile/2.2/site-ccache/gnu/packages/libevent.go 
  ;;; note: source file 
  /gnu/guix-local-packages/gnu/packages/node.scm ;;;       newer 
  than compiled 
  /gnu/store/l6wkk4kzhvkg014slv3plx513cgxqx6h-guix-module-union/lib/guile/2.2/site-ccache/gnu/packages/node.go 
  libuv	1.19.2	out 
  /gnu/guix-local-packages/gnu/packages/libevent.scm:159:2 libuv 
  1.26.0	out 
  /gnu/guix-local-packages/gnu/packages/libevent.scm:125:2 node 
  11.10.0	out 
  /gnu/guix-local-packages/gnu/packages/node.scm:46:2 node-lts 
  8.12.0	out 
  /gnu/guix-local-packages/gnu/packages/node.scm:185:2 
 
  $ GUIX_PACKAGE_PATH=/gnu/guix-local-packages guix package -A 
  '^(node|libuv)' ;;; note: source file 
  /gnu/guix-local-packages/gnu/packages/libevent.scm ;;; 
  newer than compiled 
  /gnu/store/l6wkk4kzhvkg014slv3plx513cgxqx6h-guix-module-union/lib/guile/2.2/site-ccache/gnu/packages/libevent.go 
  ;;; note: source file 
  /gnu/guix-local-packages/gnu/packages/node.scm ;;;       newer 
  than compiled 
  /gnu/store/l6wkk4kzhvkg014slv3plx513cgxqx6h-guix-module-union/lib/guile/2.2/site-ccache/gnu/packages/node.go 
  libuv	1.26.0	out 
  /gnu/guix-local-packages/gnu/packages/libevent.scm:125:2 libuv 
  1.19.2	out 
  /gnu/guix-local-packages/gnu/packages/libevent.scm:159:2 node 
  11.10.0	out 
  /gnu/guix-local-packages/gnu/packages/node.scm:46:2 node-lts 
  8.12.0	out 
  /gnu/guix-local-packages/gnu/packages/node.scm:185:2 
 
I note the order of libuv packages varies, but versions are 
correct.   Also, should one worry about the "source newer than 
compiled" messages?  I presumed the cached .go files come from the 
official channel, hence older than the sources in 
/gnu/guix-local-packages.

--
Daniel Gerber
--