all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
blob 0c491686392c0f8f2d1a97898f8f3fd30d6f11b1 3882 bytes (raw)
name: gnu/packages/k-lang.scm 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages k-lang)
  #:use-module (gnu packages readline)
  #:use-module (guix build-system gnu)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix utils))

(define-public ngn-k
  (let ((commit "cb36213657b6c5b2fe3bb1c88c4de7fe975f84ed")
        (revision "1"))
    (package
      (name "ngn-k")
      (version (git-version "0.0.0" revision commit))
      (source
        (origin
          (method git-fetch)
          (uri (git-reference
                 (url "https://codeberg.org/ngn/k.git")
                 (commit commit)))
          (file-name (git-file-name name version))
          (sha256
            (base32 "1140avqsqaa1pyh937rcd04snbkcgngmkg3dkmsbj6kw0jnrgf1z"))))
      (build-system gnu-build-system)
      (inputs (list rlwrap))
      (arguments
       `(#:make-flags (list (string-append "CC=" ,(cc-for-target)))
         #:test-target "t"
         #:phases
         (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (k (string-append out "/k")))
                (substitute* "repl.k"
                  (("^#!k") (string-append "#!" k "\n"))))))
          (replace 'build
            (lambda* (#:key make-flags #:allow-other-keys)
              (let ((build-target "k"))
                (apply invoke "make" `(,@make-flags ,build-target)))))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (k (string-append bin "/k"))
                     (rlwrap (string-append
                               (assoc-ref inputs "rlwrap")
                               "/bin/rlwrap")))

                 (define* (rlwrap-prog prog #:key rlwrap (sh (which "bash")))
                   (let* ((real-prog (string-append (dirname prog) "/."
                                                    (basename prog) "-real"))
                          (prog-tmp (string-append real-prog "-tmp")))
                     (link prog real-prog)
                     (call-with-output-file prog-tmp
                       (lambda (port)
                         (format port
                                 "#!~a~%exec -a \"$0\" \"~a\" \"~a\" \"$@\"~%"
                                 sh rlwrap (canonicalize-path real-prog))))
                     (chmod prog-tmp #o755)
                     (rename-file prog-tmp prog)))

                (mkdir-p bin)
                (copy-file "repl.k" (string-append bin "/krepl"))
                (copy-file "k" k)
                (rlwrap-prog k #:rlwrap rlwrap)))))))
      (home-page "https://codeberg.org/ngn/k")
      (synopsis "Implementation of the K6 vector programming language")
      (description "ngn/k is a simple fast vector programming language, an
implementation of the K6 dialect of K.")
      (license license:agpl3))))

debug log:

solving 0c49168639 ...
found 0c49168639 in https://yhetil.org/guix/20230914054006.18356-1-elaexuotee@wilsonb.com/

applying [1/1] https://yhetil.org/guix/20230914054006.18356-1-elaexuotee@wilsonb.com/
diff --git a/gnu/packages/k-lang.scm b/gnu/packages/k-lang.scm
new file mode 100644
index 0000000000..0c49168639

Checking patch gnu/packages/k-lang.scm...
Applied patch gnu/packages/k-lang.scm cleanly.

index at:
100644 0c491686392c0f8f2d1a97898f8f3fd30d6f11b1	gnu/packages/k-lang.scm

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.