diff options
author | Mark H Weaver <mhw@netris.org> | 2015-04-17 09:54:11 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-04-17 09:54:11 -0400 |
commit | 933204e5b1473a54367aef1f90de22424e9074ab (patch) | |
tree | d0ccfee2b903c5fac827bc4a52ec7de17bdc1e7b /build-aux/make-binary-tarball.scm | |
parent | 9128e323c0a23243c3f70b1716c68ad0b241f30d (diff) | |
parent | 5e25ebe2fa70297d094fe891b81c4970e45a906a (diff) | |
download | guix-933204e5b1473a54367aef1f90de22424e9074ab.tar.gz |
Merge branch 'master' into core-updates
Conflicts: gnu-system.am gnu/packages/gstreamer.scm
Diffstat (limited to 'build-aux/make-binary-tarball.scm')
-rw-r--r-- | build-aux/make-binary-tarball.scm | 50 |
1 files changed, 50 insertions, 0 deletions
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 <ludo@gnu.org> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + + +;;; +;;; 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)))) |