aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author宋文武 <iyzsong@member.fsf.org>2018-04-22 19:30:08 +0800
committer宋文武 <iyzsong@member.fsf.org>2018-04-23 11:22:58 +0800
commitde7f03ce0a45cc82da856a11595e9132f78a0605 (patch)
tree0b64ad3ea6be97f793a8c0f47be2359cedb247cb
parent0ed7498a460af9b0175d3f6919858d0d40d5ccc1 (diff)
downloadgnu-guix-de7f03ce0a45cc82da856a11595e9132f78a0605.tar
gnu-guix-de7f03ce0a45cc82da856a11595e9132f78a0605.tar.gz
gnu: Add runc.
* gnu/packages/virtualization.scm (runc): New variable.
-rw-r--r--gnu/packages/virtualization.scm61
1 files changed, 60 insertions, 1 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 55ace5a56d..59b4c63293 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -41,6 +42,7 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libusb)
@@ -63,9 +65,11 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix download)
- #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+))
+ #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+
+ asl2.0))
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
@@ -772,3 +776,58 @@ monitor/GPU.")
;; This package requires SSE instructions.
(supported-systems '("i686-linux" "x86_64-linux"))
(license gpl2+)))
+
+(define-public runc
+ (package
+ (name "runc")
+ (version "1.0.0-rc5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/opencontainers/runc/releases/"
+ "download/v" version "/runc.tar.xz"))
+ (sha256
+ (base32
+ "081avdzwnqpk368wbaihlzsypaxpj42d7699h7jgp0fks14x4103"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/opencontainers/runc"
+ #:install-source? #f
+ #:tests? #f ; FIXME: 20/139 tests fail.
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'unpack
+ (lambda* (#:key source import-path #:allow-other-keys)
+ ;; Unpack the tarball into 'runc' instead of 'runc-1.0.0-rc5'.
+ (let ((dest (string-append "src/" import-path)))
+ (mkdir-p dest)
+ (invoke "tar" "-C" (string-append "src/" import-path)
+ "--strip-components=1"
+ "-xvf" source))))
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (chdir (string-append "src/" import-path))
+ ;; XXX: requires 'go-md2man'.
+ ;; (invoke "make" "man")
+ (invoke "make")))
+ ;; (replace 'check
+ ;; (lambda _
+ ;; (invoke "make" "localunittest")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (invoke "make" "install" "install-bash"
+ (string-append "PREFIX=" out))))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libseccomp" ,libseccomp)))
+ (synopsis "Open container initiative runtime")
+ (home-page "https://www.opencontainers.org/")
+ (description
+ "@command{runc} is a command line client for running applications
+packaged according to the
+@uref{https://github.com/opencontainers/runtime-spec/blob/master/spec.md, Open
+Container Initiative (OCI) format} and is a compliant implementation of the
+Open Container Initiative specification.")
+ (license asl2.0)))