aboutsummaryrefslogtreecommitdiff
path: root/etc/hurd-manifest.scm
blob: cb6b82d5f8d54307ccc4ee1de2b06b4fa22d6e2d (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
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
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2023 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/>.

;;; Commentary:
;;;
;;; This file defines a manifest with a selection of packages for Cuirass to
;;; build for GNU/Hurd.
;;;
;;; Code:

(use-modules (gnu)
             (gnu system hurd)
             (guix packages)
             (guix utils)
             (ice-9 match)
             (srfi srfi-1))

(use-package-modules
 autotools base bootloaders commencement compression file gawk gdb gettext gtk
 guile guile-xyz hurd less m4 package-management python ssh
 texinfo tls version-control)

(define (input->package input)
  "Return the INPUT as package, or #f."
  (match input
    ((label (and (? package?) package))
     package)
    ((label (and (? package?) package . output))
     (cons package output))
    (_ #f)))

(define guix-dependencies
  (filter-map input->package
              (fold alist-delete (package-direct-inputs guix)
                    '("glibc-utf8-locales" "graphviz" "po4a"))))

(define (package-without-tests p)
  (package/inherit p
    (arguments
     (substitute-keyword-arguments (package-arguments p)
       ((#:tests? _ #f) #f)))))

(packages->manifest
 (cons*
  ;; where it all starts
  hello

  ;; development utililities
  diffutils file findutils gawk grep gzip less m4 openssh-sans-x tar xz

  ;; development packages
  autoconf automake libtool texinfo
  gcc-toolchain gdb-minimal git-minimal gnu-make
  gettext-minimal python-minimal
  guile-3.0 guile-2.2 guile-2.0
  guile-readline guile-colorized
  guile-gnutls guile-fibers guile-json-4

  ;; ourselves!
  (package-without-tests guix)

  ;; system
  grub-minimal grub

  ;; system reconfigure
  gdk-pixbuf

  (append
   guix-dependencies
   %base-packages/hurd)))
it. (profile-derivation): Add #:format-version parameter and honor it. (<profile>)[format-version]: New field. (profile-compiler): Honor it. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Support both versions 3 and 4. Remove unused 'properties' variable. * tests/profiles.scm ("profile-derivation format version 3"): New test. Ludovic Courtès 2022-07-01profiles: Do not repeat entries in 'manifest' file....Fixes <https://issues.guix.gnu.org/55499>. Reported by Ricardo Wurmus <rekado@elephly.net>. With this change, the manifest file created for: guix install r r-seurat r-cistopic r-monocle3 r-cicero-monocle3 r-assertthat goes from 5.7M to 176K. Likewise, on this profile, wall-clock time of: GUIX_PROFILING=gc guix package -I goes from 0.7s to 0.1s, with heap usage going from 55M to 9M. * guix/profiles.scm (manifest->gexp)[optional]: New procedure. [entry->gexp]: Turn into a monadic procedure. Return a 'repeated' sexp if ENTRY was already visited before. Adjust caller accordingly. Bump manifest version. (sexp->manifest)[sexp->manifest-entry]: Turn into a monadic procedure. Add case for 'repeated' nodes. Add each entry to the current state vhash. Add clause for version 4 manifests. [sexp->manifest-entry/v3]: New procedure, with former 'sexp->manifest-entry' code. * tests/profiles.scm ("deduplication of repeated entries"): New test. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths)[let-fields]: New macro. Use it. Expect version 4. Add clause for 'repeated' nodes. Ludovic Courtès 2022-07-01tests: Augment profile collision test....* tests/profiles.scm ("collision of propagated inputs"): Check the parents of ENTRY1 and ENTRY2. Ludovic Courtès 2022-05-31gnu: Remove python2-matplotlib....* gnu/packages/python-xyz.scm (python2-matplotlib): Delete variable. * tests/profiles.scm ("package->manifest-entry, search paths"): Use python 3 matplotlib in test. Maxim Cournoyer