guix-commits
[Top][All Lists]
Advanced

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

02/03: discovery: 'all-modules' returns modules in path order.


From: guix-commits
Subject: 02/03: discovery: 'all-modules' returns modules in path order.
Date: Sun, 26 May 2019 17:21:52 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 002d17dcaacba0f86265b34f2509419d9e21224d
Author: Robert Vollmert <address@hidden>
Date:   Sat May 25 08:40:38 2019 +0200

    discovery: 'all-modules' returns modules in path order.
    
    A particular effect of this is that if there are ambiguous
    packages in a directory specified with `-L module_dir` and the
    distribution, the version from `module_dir` will be loaded,
    which is usually what would be expected. (E.g. for `guix build`
    or `guix package -i`.)
    
    * guix/discovery.scm (all-modules): Return modules in path order.
    * tests/guix-package.sh: Test local definitions take precedence.
    
    Signed-off-by: Ludovic Courtès <address@hidden>
---
 guix/discovery.scm    |  4 ++--
 tests/guix-package.sh | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/guix/discovery.scm b/guix/discovery.scm
index ef5ae73..5bb4949 100644
--- a/guix/discovery.scm
+++ b/guix/discovery.scm
@@ -145,8 +145,8 @@ Call (PROC MODULE RESULT) for each module that is found."
   "Return the list of package modules found in PATH, a list of directories to
 search.  Entries in PATH can be directory names (strings) or (DIRECTORY
 . SUB-DIRECTORY) pairs, in which case modules are searched for beneath
-SUB-DIRECTORY."
-  (fold-modules cons '() path #:warn warn))
+SUB-DIRECTORY. Modules are listed in the order they appear on the path."
+  (reverse (fold-modules cons '() path #:warn warn)))
 
 (define (fold-module-public-variables* proc init modules)
   "Call (PROC MODULE SYMBOL VARIABLE) for each variable exported by one of 
MODULES,
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 767c3f8..79d6ec6 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -280,6 +280,20 @@ export GUIX_PACKAGE_PATH
 guix package -A emacs-foo-bar | grep 42
 guix package -i address@hidden -n
 
+# Make sure GUIX_PACKAGE_PATH/'-L' takes precedence in case of duplicate 
packages.
+cat > "$module_dir/bar.scm"<<EOF
+(define-module (bar)
+  #:use-module (guix packages))
+
+(define-public hello
+  (package (inherit (@@ (gnu packages base) hello))
+    (synopsis "an overridden version of GNU hello")))
+EOF
+
+guix package -i hello -n 2>&1 | grep choosing.*bar.scm
+( unset GUIX_PACKAGE_PATH; \
+  guix package -i hello -n -L "$module_dir" 2>&1 | grep choosing.*bar.scm )
+
 # Make sure patches that live under $GUIX_PACKAGE_PATH are found.
 cat > "$module_dir/emacs.patch"<<EOF
 This is a fake patch.



reply via email to

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