From b6075935338f59719efe39667a495011817292b3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 14 Apr 2015 23:26:41 +0200 Subject: hydra: Add jobs for the self-contained tarball. * build-aux/hydra/gnu-system.scm (tarball-jobs): New procedure. (hydra-jobs): Use it. --- build-aux/hydra/gnu-system.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'build-aux') diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index cfef7dc425..f07b8589a9 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -54,6 +54,7 @@ (gnu packages multiprecision) (gnu packages make-bootstrap) (gnu packages commencement) + (gnu packages package-management) (gnu system) (gnu system vm) (gnu system install) @@ -161,6 +162,30 @@ system.") (* 800 MiB)))))) '())) +(define (tarball-jobs store system) + "Return Hydra jobs to build the self-contained Guix binary tarball." + (define (->alist drv) + `((derivation . ,(derivation-file-name drv)) + (description . "Stand-alone binary Guix tarball") + (long-description . "This is a tarball containing binaries of Guix and +all its dependencies, and ready to be installed on non-GuixSD distributions.") + (license . ,gpl3+) + (home-page . ,%guix-home-page-url) + (maintainers . ("bug-guix@gnu.org")))) + + (define (->job name drv) + (let ((name (symbol-append name (string->symbol ".") + (string->symbol system)))) + `(,name . ,(cut ->alist drv)))) + + ;; XXX: Add a job for the stable Guix? + (list (->job 'binary-tarball + (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (self-contained-tarball)) + #:system system)))) + (define job-name ;; Return the name of a package's job. (compose string->symbol package-full-name)) @@ -234,6 +259,7 @@ valid." (cons job result) result))) (append (qemu-jobs store system) + (tarball-jobs store system) (cross-jobs system)))) ((core) ;; Build core packages only. -- cgit v1.2.3 From 8bc35f85b75d9cf6b8d0d95f8dd25600f3d272c4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 14 Apr 2015 23:29:26 +0200 Subject: build: Add missing 'make-binary-tarball.scm' script. This script is used by the target added in 9d3fb6c. * build-aux/make-binary-tarball.scm: New file. * Makefile.am (EXTRA_DIST): Add it. --- Makefile.am | 1 + build-aux/make-binary-tarball.scm | 50 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 build-aux/make-binary-tarball.scm (limited to 'build-aux') diff --git a/Makefile.am b/Makefile.am index 7bd689f6e1..6cbc6af997 100644 --- a/Makefile.am +++ b/Makefile.am @@ -257,6 +257,7 @@ EXTRA_DIST = \ build-aux/check-final-inputs-self-contained.scm \ build-aux/download.scm \ build-aux/list-packages.scm \ + build-aux/make-binary-tarball.scm \ srfi/srfi-37.scm.in \ srfi/srfi-64.scm \ srfi/srfi-64.upstream.scm \ diff --git a/build-aux/make-binary-tarball.scm b/build-aux/make-binary-tarball.scm new file mode 100644 index 0000000000..0b5dbaf1de --- /dev/null +++ b/build-aux/make-binary-tarball.scm @@ -0,0 +1,50 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ludovic Courtès +;;; +;;; 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 . + + +;;; +;;; Build a self-contained tarball containing binaries for Guix and its +;;; dependencies. +;;; + +(use-modules (guix) + (guix ui) + (gnu system install) + (ice-9 match)) + +(define show-what-to-build* + (store-lift show-what-to-build)) + +(define copy-file* + (lift2 copy-file %store-monad)) + +(define rename-file* + (lift2 rename-file %store-monad)) + +(match (command-line) + ((_ system file) + (with-store store + (run-with-store store + (mlet %store-monad ((tarball (self-contained-tarball))) + (mbegin %store-monad + (show-what-to-build* (list tarball)) + (built-derivations (list tarball)) + (copy-file* (derivation->output-path tarball) + (string-append file ".part")) + (rename-file* (string-append file ".part") file))) + #:system system)))) -- cgit v1.2.3