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 +;;; +;;; 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 . + +(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+))))