From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59023) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dxHV8-0000aL-0H for guix-patches@gnu.org; Wed, 27 Sep 2017 14:56:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dxHV4-0005Fh-2D for guix-patches@gnu.org; Wed, 27 Sep 2017 14:56:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:54900) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dxHV3-0005Fd-Uv for guix-patches@gnu.org; Wed, 27 Sep 2017 14:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dxHV3-0007ap-OL for guix-patches@gnu.org; Wed, 27 Sep 2017 14:56:01 -0400 Subject: [bug#28487] [PATCH] cuirass: Add gnu-system build spec. Resent-Message-ID: From: Jan Nieuwenhuizen References: <20170917201157.9802-1-janneke@gnu.org> <20170917201157.9802-5-janneke@gnu.org> <87zi9h27q3.fsf@gnu.org> <87mv5hqr73.fsf@gnu.org> <87a81hgq5g.fsf@gnu.org> Date: Wed, 27 Sep 2017 20:55:23 +0200 In-Reply-To: <87a81hgq5g.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 26 Sep 2017 22:29:15 +0200") Message-ID: <87a81gq8dg.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 28487@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: Hey Ludo', >> I opted for build-aux/cuiras/gnu-cuirass.scm. > > Sounds good! Ok, grand. >> +(define (symbol-alist-entry->keyword-alist-entry entry) >> + (cons (symbol->keyword (car entry)) (cdr entry))) > > I *think* that=E2=80=99s correct, though we=E2=80=99ll need to double che= ck. I tested today and there were minor problems. Cuirass actually doesn't take an alist; instead takes a list that includes (#:job-name . "name"). Also, Cuirass performs an sexp-read and thus #< ...> needs to get sexp'ified. Anyway, what I proposed was close and attached is a tested, working version (that may need some work, see below). >> --- a/build-aux/hydra/gnu-system.scm >> +++ b/build-aux/hydra/gnu-system.scm >> @@ -270,6 +270,8 @@ valid." >> (define subset >> (match (assoc-ref arguments 'subset) >> ("core" 'core) ; only build core pac= kages >> + ("hello" 'hello) ; only build hello >> + (((? string?) (? string?) ...) 'list) ; only build selected= list of packages >> (_ 'all))) ; build everything > > This part could be added separately. Yes...it could. Do you mean a separate patch, or ... > (It=E2=80=99s not usuable via Hydra since its UIs does not support passing > list-of-strings arguments.) ...I don't quite understand what you propose here. I appreciate that I'm adding functionality for Cuirass to the hydra file where in itself that does not make much sense... Otoh, I don't see how to move this functionality to cuirass/gnu-system.scm only without duplicating much of `hydra-jobs'; so that's probably not what you mean... / somewhat confused here. ;-) I'd be happy to update or split this patch if once I understand what you want or feel free to do it for me if that's easier for you. Thanks! janneke --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-cuirass-Add-gnu-system-build-spec.patch Content-Transfer-Encoding: quoted-printable >From bb82d85df2380cd0c25de0f659a7010f2d88ee4f Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 16 Sep 2017 12:57:37 +0200 Subject: [PATCH] cuirass: Add gnu-system build spec. * build-aux/hydra/gnu-system.scm (hydra-jobs): Add subsets "hello" and list of packages: ("name[@version" ...). * guix/licenses.scm: Export . * build-aux/cuirass/gnu-system.scm: New file. * doc/guix.texi (Continuous Integration): Update example spec. --- build-aux/cuirass/gnu-system.scm | 45 ++++++++++++++++++++++++++++++++++++= ++++ build-aux/hydra/gnu-system.scm | 19 +++++++++++++++++ doc/guix.texi | 4 ++-- guix/licenses.scm | 3 ++- 4 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 build-aux/cuirass/gnu-system.scm diff --git a/build-aux/cuirass/gnu-system.scm b/build-aux/cuirass/gnu-syste= m.scm new file mode 100644 index 000000000..0028d9d8e --- /dev/null +++ b/build-aux/cuirass/gnu-system.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2017 Jan Nieuwenhuizen +;;; +;;; 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 defines build jobs for the Cuirass continuation integration +;;; tool. +;;; + +(include-from-path "build-aux/hydra/gnu-system.scm") + +(use-modules ((guix licenses) #:select ())) + +(define (cuirass-jobs store arguments) + "Return Cuirass jobs." + (map hydra-job->cuirass-job (hydra-jobs store arguments))) + +(define (hydra-job->cuirass-job hydra-job) + (let ((name (car hydra-job)) + (job ((cdr hydra-job)))) + (lambda _ (acons #:job-name (symbol->string name) + (map symbol-alist-entry->keyword-alist-entry job))))) + +(define (symbol-alist-entry->keyword-alist-entry entry) + (cons (symbol->keyword (car entry)) (entry->sexp-entry (cdr entry)))) + +(define (entry->sexp-entry o) + (match o + (($ name uri comment) + `((name . ,name) (uri . ,uri) (comment . ,comment))) + (_ o))) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 73bd566f7..146d929f9 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Court=C3= =A8s +;;; Copyright =C2=A9 2017 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -270,6 +271,8 @@ valid." (define subset (match (assoc-ref arguments 'subset) ("core" 'core) ; only build core packag= es + ("hello" 'hello) ; only build hello + (((? string?) (? string?) ...) 'list) ; only build selected li= st of packages (_ 'all))) ; build everything =20 (define (cross-jobs system) @@ -340,6 +343,22 @@ valid." package system)) %core-packages) (cross-jobs system))) + ((hello) + ;; Build hello package only. + (if (string=3D? system (%current-system)) + (let ((hello (specification->package "hello"))) + (list (package-job store (job-name hello) hello= system))) + '())) + ((list) + ;; Build selected list of packages only. + (if (string=3D? system (%current-system)) + (let* ((names (assoc-ref arguments 'subset)) + (packages (map specification->package name= s))) + (map (lambda (package) + (package-job store (job-name package) + package system)) + packages)) + '())) (else (error "unknown subset" subset)))) %hydra-supported-systems))) diff --git a/doc/guix.texi b/doc/guix.texi index fff3fbd5f..c1391ee4b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15375,8 +15375,8 @@ packages, as prescribed in the @file{gnu-system.scm= } example spec: cuirass "/tests/gnu-system.scm")) =20 - (#:proc . hydra-jobs) - (#:arguments (subset . "hello")) + (#:proc . cuirass-jobs) + (#:arguments (subset . ("hello" "grep"))) (#:branch . "master")))) (service cuirass-service-type (cuirass-configuration diff --git a/guix/licenses.scm b/guix/licenses.scm index 6de611da2..144dd06f0 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -31,7 +31,8 @@ =20 (define-module (guix licenses) #:use-module (srfi srfi-9) - #:export (license? license-name license-uri license-comment + #:export ( + license? license-name license-uri license-comment agpl1 agpl3 agpl3+ asl1.1 asl2.0 boost1.0 --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com --=-=-=--