summary refs log tree commit diff
path: root/gnu/packages/virtualization.scm
diff options
context:
space:
mode:
author宋文武 <iyzsong@member.fsf.org>2017-07-13 19:30:02 +0800
committer宋文武 <iyzsong@member.fsf.org>2017-07-15 19:17:37 +0800
commit5d4a8f9b9e5a6fb18a3119671b11634111a4d891 (patch)
tree8b7901aa11931d6c56e77d9faeddbf8e01a2d4d8 /gnu/packages/virtualization.scm
parent59132b800093e486e4d81aed6b837e9ac76aa86c (diff)
downloadguix-5d4a8f9b9e5a6fb18a3119671b11634111a4d891.tar.gz
gnu: Add lxc.
* gnu/packages/virtualization.scm (lxc): New package.
Diffstat (limited to 'gnu/packages/virtualization.scm')
-rw-r--r--gnu/packages/virtualization.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 79209c3006..fd5cea5eb2 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages selinux)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages spice)
   #:use-module (gnu packages texinfo)
@@ -266,6 +267,52 @@ all common programming languages.  Vala bindings are also provided.")
     ;; files in the "tools" directory are released under GPLv2+.
     (license (list lgpl2.1+ gpl2+))))
 
+(define-public lxc
+  (package
+    (name "lxc")
+    (version "2.0.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://linuxcontainers.org/downloads/lxc/lxc-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "15449r56rqg3487kzsnfvz0w4p5ajrq0krcsdh6c9r6g0ark93hd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gnutls" ,gnutls)
+       ("libcap" ,libcap)
+       ("libseccomp" ,libseccomp)
+       ("libselinux" ,libselinux)))
+    (arguments
+     '(#:configure-flags
+       '("--sysconfdir=/etc"
+         "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out         (assoc-ref outputs "out"))
+                    (bashcompdir (string-append out "/etc/bash_completion.d")))
+               (zero? (system*
+                       "make" "install"
+                       (string-append "bashcompdir=" bashcompdir)
+                       ;; Don't install files into /var and /etc.
+                       "LXCPATH=/tmp/var/lib/lxc"
+                       "localstatedir=/tmp/var"
+                       "sysconfdir=/tmp/etc"
+                       "sysconfigdir=/tmp/etc/default"))))))))
+    (synopsis "Linux container tools")
+    (home-page "https://linuxcontainers.org/")
+    (description
+     "LXC is a userspace interface for the Linux kernel containment features.
+Through a powerful API and simple tools, it lets Linux users easily create and
+manage system or application containers.")
+    (license lgpl2.1+)))
+
 (define-public libvirt
   (package
     (name "libvirt")