aboutsummaryrefslogtreecommitdiffstats
path: root/mcgoron/guix/sagittarius.scm
blob: 880391ed09205b9c55b22c0a0768edb0e94b9ee0 (plain) (blame)
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
#| Copyright (C) 2025 Peter McGoron
 |
 | This program 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.
 |
 | This program 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 this program.  If not, see <https://www.gnu.org/licenses/>.
 |#


(define-module (mcgoron guix sagittarius)
  #:use-module (guix packages)
  #:use-module (guix licenses)
  #:use-module (gnu packages bdw-gc)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages tls)
  #:use-module (gnu packages libffi)
  #:use-module (guix download)
  #:use-module (guix build-system)
  #:use-module (guix build-system copy)
  #:use-module (guix build-system cmake))

(define-public sagittarius-lib-dir "share/guix-sagittarius")

(define-public sagittarius-scheme
  (package
    (name "sagittarius-scheme")
    (version "0.9.13")
    (source
      (origin
         (method url-fetch)
         (uri "https://github.com/ktakashi/sagittarius-scheme/releases/download/v0.9.13/sagittarius-0.9.13.tar.gz")
         (sha256 (base32 "0wspsv7mr1lchv0lfc50s750a358534pgri1c2fqlws31hci5y4c"))))
    (build-system cmake-build-system)
    (arguments '(#:phases (modify-phases %standard-phases
                            ;; Tests don't work yet. Issues with network.
                            (delete 'check))))
    (inputs (list libgc zlib libffi openssl))
    (home-page "https://ktakashi.github.io/")
    (synopsis "Script interpreter with many built-in libraries")
    (native-search-paths (list
                          (search-path-specification
                            (variable "SAGITTARIUS_LOADPATH")
                            (files (list sagittarius-lib-dir)))))
    (license bsd-2)
    (description "Sagittarius Scheme is a R6RS/R7RS Scheme implementation with a lot of practical libraries, especially cryptographic libraries.")))

(define-public sagittarius-build-system
  (let ((lower* (build-system-lower copy-build-system)))
    (build-system
     (name 'sagittarius-scheme)
     (description "Build system for copying Scheme libraries to Sagittarius Scheme module directory")
     (lower
      (lambda args
        (apply lower*
               (if (memq #:install-plan args)
                   args
                   (append
                    args
                    (list
                     #:install-plan
                     `'(("." ,(string-append sagittarius-lib-dir "/"))))))))))))