summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <ricardo.wurmus@mdc-berlin.de>2018-05-25 16:17:51 +0200
committerRicardo Wurmus <rekado@elephly.net>2018-05-28 17:36:09 +0200
commit3ec07ced8a24ae041706bb5b690d8c643b0ba390 (patch)
treeb6c43d62e09ca8e135ba3aa831e4f2a2bc9155a3
parente580597d2569fe5cb2d0589b54c33a731d657d4a (diff)
downloadguix-3ec07ced8a24ae041706bb5b690d8c643b0ba390.tar.gz
gnu: Add singularity.
* gnu/packages/linux.scm (singularity): New variable.
-rw-r--r--gnu/packages/linux.scm49
1 files changed, 48 insertions, 1 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index dae0d806d8..800b8f8881 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2016, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
@@ -80,6 +80,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages netpbm)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages perl)
@@ -2566,6 +2567,52 @@ similar in functionality to chroot, although pflask provides better isolation
 thanks to the use of namespaces.")
     (license license:bsd-2)))
 
+(define-public singularity
+  (package
+    (name "singularity")
+    (version "2.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/singularityware/singularity/"
+                                  "releases/download/" version
+                                  "/singularity-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0f28dgf2qcy8ljjfix7p9q36q12j7rxyicfzzi4n0fl8zr8ab88g"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-suid"
+             "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         ;; Do not create directories in /var.
+         (add-after 'unpack 'disable-install-hook
+           (lambda _
+             (substitute* "Makefile.in"
+               (("\\$\\(MAKE\\) .*install-data-hook") ""))
+             #t))
+         (add-after 'unpack 'patch-reference-to-squashfs-tools
+           (lambda _
+             (substitute* "libexec/cli/build.exec"
+               (("if ! singularity_which mksquashfs") "if 0")
+               (("if ! mksquashfs")
+                (string-append "if ! " (which "mksquashfs"))))
+             #t)))))
+    (inputs
+     `(("libarchive" ,libarchive)
+       ("python" ,python-wrapper)
+       ("nettle" ,nettle)
+       ("zlib" ,zlib)
+       ("squashfs-tools" ,squashfs-tools)))
+    (home-page "https://singularity.lbl.gov/")
+    (synopsis "Container platform")
+    (description "Singularity is a container platform supporting a number of
+container image formats.  It can build SquashFS container images or import
+existing Docker images.  Singularity requires kernel support for container
+isolation or root privileges.")
+    (license license:bsd-3)))
+
 (define-public hdparm
   (package
     (name "hdparm")