aboutsummaryrefslogtreecommitdiff
path: root/manifest.scm
blob: ccd62684614b93e2375ba5118ef35584220d8a0d (about) (plain)
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
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; 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/>.

;; GNU Guix development manifest.  To create development environment, run
;;
;;     guix shell
;;
;; or something like
;;
;;     guix shell --pure -m manifest.scm hello ...

(use-modules (guix packages))

(concatenate-manifests
 (list (package->development-manifest
        (let ((guix (specification->package "guix")))
          (package/inherit guix
            ;; Replace with non-minimal Graphviz for PDF support.
            (native-inputs (modify-inputs (package-native-inputs guix)
                             (replace "graphviz"
                               (specification->package "graphviz")))))))

       ;; Extra packages used by unit tests.
       (specifications->manifest (list "gnupg"))

       ;; Packages needed for 'make dist' and 'make distcheck'.
       (specifications->manifest
        (list "imagemagick"
              "perl"))

       ;; Useful extras for patches submission.
       (specifications->manifest
        (list "b4"
              "git"
              "git:send-email"
              "mumi"
              "nss-certs"
              "openssl"              ;required if using 'smtpEncryption = tls'
              "patman"))
       ;; For installer
       (specifications->manifest
        (list "guile-newt"
              "guile-parted"
              "guile-webutils"))))
(add-after 'install 'check ;; Run most of the included demos as our own ‘test suite’. (lambda* (#:key outputs tests? #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (when tests? (setenv "ADAED" (string-append out "/lib")) (setenv "PATH" (string-append out "/bin:" (getenv "PATH"))) (with-directory-excursion "demos" ; won't run outside of it (for-each delete-file '("runc" ; ‘invalid data. Please make it a positive no.’ "rund" ; deadlocks by design "rune" ; ‘dining2.ada: No such file or directory’ "rung")) ; ‘mathlib cannot be used as a library’ (!) (for-each (lambda (script) (format #t "\n=== Invoking ~a ===\n" script) (invoke script)) (find-files "." "^run"))))))) (add-after 'install 'clean-up-output (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (with-directory-excursion out ;; These needn't be executable. (for-each (cut chmod <> #o644) (append (find-files "lib" "\\....$") (find-files "share" "."))) #t))))))) (native-inputs (list sed)) (home-page (string-append "https://web.archive.org/web/20140902150609/" "http://www2.informatik.uni-stuttgart.de/iste/ps/" "ada-software/html/dos_ada.html")) (synopsis "Ada 83 interpreter") (description "Ada/Ed is a translator-interpreter for Ada 83. It's intended primarily as a teaching tool and lacks the capacity, performance, and robustness of other contemporary or modern-day Ada compilers. Ada/Ed was the first Ada compiler to pass the @acronym{ACVC, Ada Compiler Validation Suite} version 1.7 but fails many newer tests and is not a validated Ada system. Being an interpreter, it does not implement most representation clauses, and thus does not support systems programming close to the machine level.") (license license:gpl2+)))