guix-commits
[Top][All Lists]
Advanced

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

02/02: gnu: Search for patches under $GUIX_PACKAGE_PATH.


From: Ludovic Courtès
Subject: 02/02: gnu: Search for patches under $GUIX_PACKAGE_PATH.
Date: Sat, 03 Jan 2015 22:59:15 +0000

civodul pushed a commit to branch master
in repository guix.

commit ee06af5b4b314211f05c866f7226b8cb056a335b
Author: Ludovic Courtès <address@hidden>
Date:   Sat Jan 3 23:49:42 2015 +0100

    gnu: Search for patches under $GUIX_PACKAGE_PATH.
    
    Fixes <http://bugs.gnu.org/19364>.
    Reported by Tomáš Čech <address@hidden>
    and Mark H Weaver <address@hidden>.
    
    * gnu/packages.scm (%patch-path): Move after definition of
      %package-module-path'.  Append "/gnu/packages/patches" only to
      %DISTRO-ROOT-DIRECTORY.
    * tests/guix-package.sh: Add 'emacs-foo-bar-patched' test.
---
 gnu/packages.scm      |   17 +++++++++++------
 tests/guix-package.sh |   23 +++++++++++++++++++++--
 2 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/gnu/packages.scm b/gnu/packages.scm
index 6109d1f..7f0b58b 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <address@hidden>
+;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <address@hidden>
 ;;; Copyright © 2013 Mark H Weaver <address@hidden>
 ;;; Copyright © 2014 Eric Bavier <address@hidden>
 ;;;
@@ -64,11 +64,6 @@
 ;; and an extra environment variable.  One advantage of this setup is
 ;; that everything just works in an auto-compilation setting.
 
-(define %patch-path
-  (make-parameter
-   (map (cut string-append <> "/gnu/packages/patches")
-        %load-path)))
-
 (define %bootstrap-binaries-path
   (make-parameter
    (map (cut string-append <> "/gnu/packages/bootstrap")
@@ -104,6 +99,16 @@
     (make-parameter
      (append environment `((,%distro-root-directory . "gnu/packages"))))))
 
+(define %patch-path
+  ;; Define it after '%package-module-path' so that '%load-path' contains user
+  ;; directories, allowing patches in $GUIX_PACKAGE_PATH to be found.
+  (make-parameter
+   (map (lambda (directory)
+          (if (string=? directory %distro-root-directory)
+              (string-append directory "/gnu/packages/patches")
+              directory))
+        %load-path)))
+
 (define* (scheme-files directory)
   "Return the list of Scheme files found under DIRECTORY, recursively.  The
 returned list is sorted in alphabetical order."
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index f4e091a..3959269 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014 Ludovic Courtès <address@hidden>
+# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <address@hidden>
 # Copyright © 2013 Nikita Karetnikov <address@hidden>
 #
 # This file is part of GNU Guix.
@@ -289,10 +289,29 @@ GUIX_PACKAGE_PATH="$module_dir"
 export GUIX_PACKAGE_PATH
 guix package -A emacs-foo-bar | grep 42
 guix package -i emacs-foo-bar-42 -n
+
+# Make sure patches that live under $GUIX_PACKAGE_PATH are found.
+cat > "$module_dir/emacs.patch"<<EOF
+This is a fake patch.
+EOF
+cat > "$module_dir/foo.scm"<<EOF
+(define-module (foo)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages emacs))
+
+(define-public x
+  (package (inherit emacs)
+    (source (origin (inherit (package-source emacs))
+              (patches (list (search-patch "emacs.patch")))))
+    (name "emacs-foo-bar-patched")
+    (version "42")))
+EOF
+guix package -i emacs-foo-bar-patched -n
+
 unset GUIX_PACKAGE_PATH
 
 # Using 'GUIX_BUILD_OPTIONS'.
-
 available="`guix package -A | sort`"
 GUIX_BUILD_OPTIONS="--dry-run"
 export GUIX_BUILD_OPTIONS



reply via email to

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