From b892edd56bf9a4d06c5fe5539e5c4ba7a126eb2a Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Sat, 18 Jul 2026 22:53:55 +0200 Subject: teams: beam: Add beam-manifest. * etc/teams/beam/beam-manifest.scm: New file. Signed-off-by: Andreas Enge --- etc/teams/beam/beam-manifest.scm | 73 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 etc/teams/beam/beam-manifest.scm (limited to 'etc') diff --git a/etc/teams/beam/beam-manifest.scm b/etc/teams/beam/beam-manifest.scm new file mode 100644 index 00000000000..82f8674a220 --- /dev/null +++ b/etc/teams/beam/beam-manifest.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2026 Giacomo Leidi +;;; +;;; 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 . + +;;; This file returns a manifest of packages built using the mix-build-system. +;;; It is used to assist continuous integration of the beam-team branch. +;;; +;;; +;;; You can use it to build all covered packages with: +;;; +;;; ./pre-inst-env guix build -m etc/teams/beam/beam-manifest.scm +;;; +;;; or to update them with: +;;; +;;; ./pre-inst-env guix refresh -u -m etc/teams/beam/beam-manifest.scm + +(use-modules (guix packages) + (guix profiles) + (guix gexp) + (guix build-system) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + +(define* (has-mix-build-system? build-system #:key modules #:allow-other-keys) + (or (eq? (build-system-name build-system) 'mix) + (any + (match-lambda + (('guix 'build 'mix-build-system) #t) + ('((guix build mix-build-system) . _) #t) + (_ #f)) + (cond + ((gexp? modules) (gexp->approximate-sexp modules)) + ((pair? modules) modules) + (else '()))))) + +(define* (has-rebar-build-system? build-system #:key modules #:allow-other-keys) + (or (eq? (build-system-name build-system) 'rebar) + (any + (match-lambda + (('guix 'build 'rebar-build-system) #t) + ('((guix build rebar-build-system) . _) #t) + (_ #f)) + (cond + ((gexp? modules) (gexp->approximate-sexp modules)) + ((pair? modules) modules) + (else '()))))) + +(manifest + (map package->manifest-entry + (fold-packages + (lambda (package lst) + (if (apply (lambda args (or (apply has-mix-build-system? args) + (apply has-rebar-build-system? args))) + (package-build-system package) + (package-arguments package)) + (cons package lst) + lst)) + (list)))) -- cgit v1.2.3