aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorTimmy Douglas <mail@timmydouglas.com>2021-12-21 23:33:46 -0800
committerLudovic Courtès <ludo@gnu.org>2022-01-01 19:06:53 +0100
commitbff99f6b63f085e73785489827995cff66b5809b (patch)
tree920765b4200ec3001999bdacae54d977f8973791 /gnu
parentd997fcd3e7be72c8af3107b0a8cbf32bf75f428e (diff)
downloadguix-bff99f6b63f085e73785489827995cff66b5809b.tar.gz
guix-bff99f6b63f085e73785489827995cff66b5809b.zip
gnu: Add crun.
* gnu/packages/containers.scm (crun): New variable. * gnu/local.mk: add containers.scm Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/containers.scm103
2 files changed, 104 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index e14bd47b95..852f9f3246 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -157,6 +157,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/configuration-management.scm \
%D%/packages/conky.scm \
%D%/packages/connman.scm \
+ %D%/packages/containers.scm \
%D%/packages/convmv.scm \
%D%/packages/cook.scm \
%D%/packages/coq.scm \
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
new file mode 100644
index 0000000000..4228a27a91
--- /dev/null
+++ b/gnu/packages/containers.scm
@@ -0,0 +1,103 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Timmy Douglas <mail@timmydouglas.com>
+;;;
+;;; 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/>.
+
+(define-module (gnu packages containers)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
+ #:use-module (guix build-system meson)
+ #:use-module (guix utils)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages selinux)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages virtualization)
+ #:use-module (gnu packages web))
+
+(define-public crun
+ (let ((commit "8e5757a4e68590326dafe8a8b1b4a584b10a1370"))
+ (package
+ (name "crun")
+ (version "1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/containers/crun")
+ (commit commit)
+ (recursive? #t)))
+ (sha256
+ (base32 "01yiss2d57kwlxb7zlqzjwlg9fyaf19yjngd1mw9n4hxls3dfj3k"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--disable-systemd")
+ #:tests? #f ; XXX: needs /sys/fs/cgroup mounted
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'do-not-depend-on-git
+ (lambda _
+ (substitute* "autogen.sh"
+ (("^git submodule update.*")
+ ""))
+ (with-output-to-file "git-version.h"
+ (lambda ()
+ (display (string-append
+ "/* autogenerated. */\n#ifndef GIT_VERSION\n# define GIT_VERSION \""
+ ,commit
+ "\"\n#endif\n"))))))
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* (find-files "tests" "\\.(c|py)")
+ (("/bin/true") (which "true"))
+ (("/bin/false") (which "false"))
+ ; relies on sd_notify which requires systemd?
+ (("\"sd-notify\" : test_sd_notify,") "")
+ (("\"sd-notify-file\" : test_sd_notify_file,") "")))))))
+ (inputs
+ (list libcap
+ libseccomp
+ libyajl))
+ (native-inputs
+ (list automake
+ autoconf
+ git
+ libtool
+ pkg-config
+ python-3))
+ (home-page "https://github.com/containers/crun")
+ (synopsis "Open Container Initiative (OCI) Container runtime")
+ (description
+ "crun is a fast and low-memory footprint Open Container Initiative (OCI)
+Container Runtime fully written in C.")
+ (license license:gpl2+))))