gnu: linux-libre 5.4: Update to 5.4.123.
[jackhill/guix/guix.git] / etc / release-manifest.scm
... / ...
CommitLineData
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20;;; This file returns a manifest containing release-critical bit, for all the
21;;; supported architectures and cross-compilation targets.
22
23(use-modules (gnu packages)
24 (guix packages)
25 (guix profiles)
26 ((gnu ci) #:select (%cross-targets))
27 ((gnu services xorg) #:select (%default-xorg-modules))
28 (guix utils)
29 (srfi srfi-1)
30 (srfi srfi-26))
31
32(define* (package->manifest-entry* package system
33 #:key target)
34 "Return a manifest entry for PACKAGE on SYSTEM, optionally cross-compiled to
35TARGET."
36 (manifest-entry
37 (inherit (package->manifest-entry package))
38 (name (string-append (package-name package) "." system
39 (if target
40 (string-append "." target)
41 "'")))
42 (item (with-parameters ((%current-system system)
43 (%current-target-system target))
44 package))))
45
46(define %base-packages
47 ;; Packages that must be substitutable on all the platforms Guix supports.
48 (map specification->package
49 '("bootstrap-tarballs" "gcc-toolchain" "nss-certs"
50 "openssh" "emacs" "vim" "python" "guile" "guix")))
51
52(define %base-packages/armhf
53 ;; XXX: Relax requirements for armhf-linux for lack of enough build power.
54 (map (lambda (package)
55 (if (string=? (package-name package) "emacs")
56 (specification->package "emacs-no-x")
57 package))
58 %base-packages))
59
60(define %base-packages/hurd
61 ;; XXX: For now we are less demanding of "i586-gnu".
62 (map specification->package
63 '("coreutils" "grep" "findutils" "gawk" "make"
64 "gcc-toolchain" "tar" "xz")))
65
66(define %system-packages
67 ;; Key packages proposed by the Guix System installer.
68 (append (map specification->package
69 '("xorg-server" "xfce" "gnome" "mate" "enlightenment"
70 "openbox" "awesome" "i3-wm" "ratpoison"
71 "emacs" "emacs-exwm" "emacs-desktop-environment"
72 "xlockmore" "slock" "libreoffice"
73 "connman" "network-manager" "network-manager-applet"
74 "openssh" "ntp" "tor"
75 "linux-libre" "grub-hybrid"
76 ;; FIXME: Add IceCat when Rust is available on i686.
77 ;;"icecat"
78 ))
79 %default-xorg-modules))
80
81(define %packages-to-cross-build
82 ;; Packages that must be cross-buildable from x86_64-linux.
83 ;; FIXME: Add (@ (gnu packages gcc) gcc) when <https://bugs.gnu.org/40463>
84 ;; is fixed.
85 (append (list (@ (gnu packages guile) guile-3.0/fixed))
86 (map specification->package
87 '("coreutils" "grep" "sed" "findutils" "diffutils" "patch"
88 "gawk" "gettext" "gzip" "xz"
89 "hello" "zlib"))))
90
91(define %packages-to-cross-build-for-mingw
92 ;; Many things don't build for MinGW. Restrict to what's known to work.
93 (map specification->package '("hello")))
94
95(define %cross-bootstrap-targets
96 ;; Cross-compilation triplets for which 'bootstrap-tarballs' must be
97 ;; buildable.
98 '("i586-pc-gnu"
99 "arm-linux-gnueabihf"
100 "aarch64-linux-gnu"))
101
102\f
103;;;
104;;; Manifests.
105;;;
106
107(define %base-manifest
108 (manifest
109 (append-map (lambda (system)
110 (map (cut package->manifest-entry* <> system)
111 (cond ((string=? system "i586-gnu")
112 %base-packages/hurd)
113 ((string=? system "armhf-linux")
114 ;; FIXME: Drop special case when ci.guix.gnu.org
115 ;; has more ARMv7 build power.
116 %base-packages/armhf)
117 ((string=? system "powerpc64le-linux")
118 ;; FIXME: Drop 'bootstrap-tarballs' until
119 ;; <https://bugs.gnu.org/48055> is fixed.
120 (drop %base-packages 1))
121 (else
122 %base-packages))))
123 %cuirass-supported-systems)))
124
125(define %system-manifest
126 (manifest
127 (append-map (lambda (system)
128 (map (cut package->manifest-entry* <> system)
129 %system-packages))
130 '("x86_64-linux" "i686-linux")))) ;Guix System
131
132(define %cross-manifest
133 (manifest
134 (append-map (lambda (target)
135 (map (cut package->manifest-entry* <> "x86_64-linux"
136 #:target target)
137 (if (target-mingw? target)
138 %packages-to-cross-build-for-mingw
139 %packages-to-cross-build)))
140 ;; XXX: Important bits like libsigsegv and libffi don't support
141 ;; RISCV at the moment, so don't require RISCV support.
142 (delete "riscv64-linux-gnu" %cross-targets))))
143
144(define %cross-bootstrap-manifest
145 (manifest
146 (map (lambda (target)
147 (package->manifest-entry*
148 (specification->package "bootstrap-tarballs")
149 "x86_64-linux" #:target target))
150 %cross-bootstrap-targets)))
151
152;; Return the union of all three manifests.
153(concatenate-manifests (list %base-manifest
154 %system-manifest
155 %cross-manifest
156 %cross-bootstrap-manifest))