guix-channel

A channel for the Guix package manager

git clone https://git.8pit.net/guix-channel.git

 1(define-module (nmeum packages)
 2  #:use-module (guix packages)
 3  #:use-module (guix diagnostics)
 4  #:use-module (guix gexp)
 5  #:use-module (ice-9 match)
 6  #:export (nmeum-patches
 7            nmeum-file))
 8
 9(define %distro-root-directory
10  ;; Like %distro-root-directory from (gnu packages), with adjusted paths.
11  (letrec-syntax ((dirname* (syntax-rules ()
12                              ((_ file)
13                               (dirname file))
14                              ((_ file head tail ...)
15                               (dirname (dirname* file tail ...)))))
16                  (try      (syntax-rules ()
17                              ((_ (file things ...) rest ...)
18                               (match (search-path %load-path file)
19                                 (#f
20                                  (try rest ...))
21                                 (absolute
22                                  (dirname* absolute things ...))))
23                              ((_)
24                               #f))))
25    (try ("nmeum/packages/misc" nmeum/ packages/)
26         ("nmeum/packages.scm" nmeum/))))
27
28(define %default-package-module-path
29  ;; Default search path for package modules.
30  `((,%distro-root-directory . "nmeum/packages")))
31
32(define-public (nmeum-file name)
33  (local-file
34    (in-vicinity
35      %distro-root-directory
36      (string-append "nmeum/packages/files/" name))))
37
38;; From nonguix.
39(define (search-patch file-name)
40  (define %patch-path
41    (make-parameter
42      (list
43        (in-vicinity
44          %distro-root-directory
45          "nmeum/packages/patches"))))
46
47  (search-path (%patch-path) file-name))
48
49;; From nonguix.
50(define-syntax-rule (nmeum-patches file-name ...)
51  (list (search-patch file-name) ...))