summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2025-03-09 20:59:43 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2025-06-15 16:56:57 +0200
commitcba452dadf14da9176c6eed7f931b4e32c12ee4b (patch)
tree4d6e52957bd64bf74cbc5dc33d4929edb9eae4ce
parent07fb82154483ac4b620bbba3b26bb2b838e5d67a (diff)
teams: emacs: Add manifest.
* etc/teams/emacs/emacs-manifest.scm: New file.
-rw-r--r--etc/teams/emacs/emacs-manifest.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/etc/teams/emacs/emacs-manifest.scm b/etc/teams/emacs/emacs-manifest.scm
new file mode 100644
index 00000000000..6b7bf8bead2
--- /dev/null
+++ b/etc/teams/emacs/emacs-manifest.scm
@@ -0,0 +1,51 @@
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2025 Liliana Marie Prikler <liliana.prikler@gmail.com>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19;;; This file returns a manifest of packages built using the emacs-build-system.
20;;; It is used to assist continuous integration of the emacs-team branch.
21
22(use-modules (guix packages)
23 (guix profiles)
24 (guix gexp)
25 (guix build-system)
26 (ice-9 match)
27 (srfi srfi-1)
28 (srfi srfi-26))
29
30(define* (has-emacs-build-system? build-system #:key modules #:allow-other-keys)
31 (or (eq? (build-system-name build-system) 'emacs)
32 (any
33 (match-lambda
34 (('guix 'build 'emacs-build-system) #t)
35 ('((guix build emacs-build-system) . _) #t)
36 (_ #f))
37 (cond
38 ((gexp? modules) (gexp->approximate-sexp modules))
39 ((pair? modules) modules)
40 (else '())))))
41
42(manifest
43 (map package->manifest-entry
44 (fold-packages
45 (lambda (package lst)
46 (if (apply has-emacs-build-system?
47 (package-build-system package)
48 (package-arguments package))
49 (cons package lst)
50 lst))
51 (list))))