M Makefile.am => Makefile.am +13 -8
@@ 35,14 35,16 @@ MODULES = \
GOBJECTS = $(MODULES:%.scm=%.go)
-nobase_dist_guilemodule_DATA = \
- $(MODULES) \
- distro/guile-1.8-cpp-4.5.patch \
- distro/m4-readlink-EINVAL.patch \
- distro/m4-s_isdir.patch \
- distro/make-impure-dirs.patch \
- distro/findutils-absolute-paths.patch \
- distro/readline-link-ncurses.patch
+nobase_dist_guilemodule_DATA = $(MODULES)
+
+patchdir = $(pkgdatadir)/patches
+dist_patch_DATA = \
+ distro/patches/guile-1.8-cpp-4.5.patch \
+ distro/patches/m4-readlink-EINVAL.patch \
+ distro/patches/m4-s_isdir.patch \
+ distro/patches/make-impure-dirs.patch \
+ distro/patches/findutils-absolute-paths.patch \
+ distro/patches/readline-link-ncurses.patch
nobase_nodist_guilemodule_DATA = $(GOBJECTS)
@@ 57,6 59,7 @@ TESTS_ENVIRONMENT = \
NIX_HASH="$(NIX_HASH)"; \
NIX_INSTANTIATE="$(NIX_INSTANTIATE)"; \
NIXPKGS="$(NIXPKGS)"; \
+ DISTRO_PATCH_DIRECTORY="$(top_srcdir)/distro/patches" \
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH"; \
export NIX_HASH NIX_INSTANTIATE NIXPKGS GUILE_LOAD_COMPILED_PATH;
@@ 78,6 81,8 @@ CLEANFILES = $(GOBJECTS) *.log
NIX_INSTANTIATE="$(NIX_INSTANTIATE)" \
NIXPKGS="$(NIXPKGS)" \
LIBGCRYPT="$(LIBGCRYPT)" \
+ DISTRO_PATCH_DIRECTORY="$(top_srcdir)/distro/patches" \
+ DISTRO_INSTALLED_PATCH_DIRECTORY="$(patchdir)" \
GUILE_AUTO_COMPILE=0 \
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
$(GUILD) compile -L "$(top_srcdir)" \
M distro.scm => distro.scm +14 -1
@@ 18,10 18,14 @@
(define-module (distro)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (ice-9 ftw)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
- #:export (find-packages-by-name))
+ #:use-module (srfi srfi-39)
+ #:export (search-patch
+ %patch-directory
+ find-packages-by-name))
;;; Commentary:
;;;
@@ 32,6 36,15 @@
(define _ (cut gettext <> "guix"))
+(define %patch-directory
+ (make-parameter
+ (or (getenv "DISTRO_PATCH_DIRECTORY")
+ (compile-time-value (getenv "DISTRO_INSTALLED_PATCH_DIRECTORY")))))
+
+(define (search-patch file-name)
+ "Search the patch FILE-NAME."
+ (search-path (list (%patch-directory)) file-name))
+
(define %distro-module-directory
;; Absolute path of the (distro ...) module root.
(string-append (dirname (search-path %load-path "distro.scm"))
M distro/base.scm => distro/base.scm +7 -10
@@ 17,6 17,7 @@
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (distro base)
+ #:use-module (distro)
#:use-module (guix packages)
#:use-module (guix http)
#:use-module (guix build-system gnu)
@@ 191,7 192,7 @@ files (as archives).")
(build-system gnu-build-system)
(native-inputs
`(("patch/absolute-paths"
- ,(search-path %load-path "distro/findutils-absolute-paths.patch"))))
+ ,(search-patch "findutils-absolute-paths.patch"))))
(arguments
(case-lambda
((system)
@@ 245,10 246,9 @@ The tools supplied with this package are:
`(#:patches (list (assoc-ref %build-inputs "patch/s_isdir")
(assoc-ref %build-inputs
"patch/readlink-EINVAL"))))))
- (inputs `(("patch/s_isdir"
- ,(search-path %load-path "distro/m4-s_isdir.patch"))
+ (inputs `(("patch/s_isdir" ,(search-patch "m4-s_isdir.patch"))
("patch/readlink-EINVAL"
- ,(search-path %load-path "distro/m4-readlink-EINVAL.patch"))))
+ ,(search-patch "m4-readlink-EINVAL.patch"))))
(description "GNU M4, a macro processor")
(long-description
"GNU M4 is an implementation of the traditional Unix macro processor. It
@@ 280,8 280,7 @@ macro processor in its own right.")
"0ri98385hsd7li6rh4l5afcq92v8l2lgiaz85wgcfh4w2wzsghg2"))))
(build-system gnu-build-system)
(native-inputs
- `(("patch/impure-dirs"
- ,(search-path %load-path "distro/make-impure-dirs.patch"))))
+ `(("patch/impure-dirs" ,(search-patch "make-impure-dirs.patch"))))
(arguments `(#:patches (list (assoc-ref %build-inputs
"patch/impure-dirs"))))
(description "GNU Make, a program controlling the generation of non-source
@@ 481,8 480,7 @@ UNIX. It has even been ported to OS/2 Warp!")
(build-system gnu-build-system)
(propagated-inputs `(("ncurses" ,ncurses)))
(inputs `(("patch/link-ncurses"
- ,(search-path %load-path
- "distro/readline-link-ncurses.patch"))))
+ ,(search-patch "readline-link-ncurses.patch"))))
(arguments `(#:patches (list (assoc-ref %build-inputs
"patch/link-ncurses"))
#:patch-flags '("-p0")))
@@ 664,8 662,7 @@ records, each record containing an arbitrary number of named fields.")
match
(assoc-ref outputs "out")))))
%standard-phases)))
- (inputs `(("patch/snarf"
- ,(search-path %load-path "distro/guile-1.8-cpp-4.5.patch"))
+ (inputs `(("patch/snarf" ,(search-patch "guile-1.8-cpp-4.5.patch"))
("gawk" ,gawk)
("readline" ,readline)))
R distro/findutils-absolute-paths.patch => distro/patches/findutils-absolute-paths.patch +0 -0
R distro/guile-1.8-cpp-4.5.patch => distro/patches/guile-1.8-cpp-4.5.patch +0 -0
R distro/m4-readlink-EINVAL.patch => distro/patches/m4-readlink-EINVAL.patch +0 -0
R distro/m4-s_isdir.patch => distro/patches/m4-s_isdir.patch +0 -0
R distro/make-impure-dirs.patch => distro/patches/make-impure-dirs.patch +0 -0
R distro/readline-link-ncurses.patch => distro/patches/readline-link-ncurses.patch +0 -0