Skip to content

Commit

Permalink
app-emulation/crun: add 1.3
Browse files Browse the repository at this point in the history
Upstream: gentoo/gentoo#23105
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Alexey Zapparov <alexey@zapparov.com>
  • Loading branch information
ixti committed Nov 29, 2021
1 parent eff2bc5 commit c3d8217
Show file tree
Hide file tree
Showing 6 changed files with 247 additions and 0 deletions.
3 changes: 3 additions & 0 deletions app-emulation/crun/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
DIST crun-0.19.1.tar.gz 1870594 BLAKE2B 1780a2936ff39ec80836c4c9ae072e2fc30703a31a79786337290c62dd433b5a35dcfa953be370703d1baab3de93fdb376c99ab76dff1470883c61726c313144 SHA512 f93f79d1d63d6749bcf92d48542d9555f3ad47657c959c7c06701861d7a5a4171969f00f6dff3878286970a48aba3314c25e35c005463e606533b0ff7843d994
DIST crun-1.2.tar.gz 1879836 BLAKE2B 45370e3206a13c963d694f338dc0a00de24253025d31ec893353905235b239b8e7f626ddd4ee0cc32da2b3f5676b42f59f3214a1eb9c3af4612483cd6fd14693 SHA512 5cadaf0eb0e9bcf53726e7f6ffb664c8327f0f4e7cdbf75ae8a0cd4759f7c8a8a2611df65ca1436a50d7af5d37505aac861d7db4d46a93c3832362228cb37cbc
DIST crun-1.3.tar.gz 1889283 BLAKE2B d7e7f676ca5db8322b9da2110c9a9e8eb11b13b5e9f1432ccc6ef12bf6ae7db3a28e3227fac86091589a215394ec577e91ccbffec532dabf44be746cb8a5d404 SHA512 9600bdacf5fd2defa542230b6e134920eb80e9d4c49598167b9d58887719765c174f1ac8559c0092dc1b5435274124e0b29c3d0830df86d1cfd690d67c746016
70 changes: 70 additions & 0 deletions app-emulation/crun/crun-0.19.1-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3_{7..9} )

inherit autotools python-any-r1

DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
HOMEPAGE="https://github.com/containers/crun"
SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz"

LICENSE="GPL-2+ LGPL-2.1+"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ppc64"
IUSE="+bpf +caps criu +seccomp systemd static-libs"

DEPEND="
sys-kernel/linux-headers
>=dev-libs/yajl-2.0.0
caps? ( sys-libs/libcap )
criu? ( >=sys-process/criu-3.15 )
seccomp? ( sys-libs/libseccomp )
systemd? ( sys-apps/systemd:= )
"
RDEPEND="${DEPEND}"
BDEPEND="
${PYTHON_DEPS}
"

# the crun test suite is comprehensive to the extent that tests will fail
# within a sandbox environment, due to the nature of the privileges
# required to create linux "containers".
RESTRICT="test"

DOCS=( README.md )

PATCHES=( "${FILESDIR}/libcrun-linkage.patch" )

src_prepare() {
default

# for libcrun-linkage.patch
eautoreconf
}

src_configure() {
local myeconfargs=(
$(use_enable bpf)
$(use_enable caps)
$(use_enable criu)
$(use_enable seccomp)
$(use_enable systemd)
$(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '')
)

econf "${myeconfargs[@]}"
}

src_compile() {
emake -C libocispec
emake crun
}

src_install() {
emake "DESTDIR=${D}" install-exec
doman crun.1
einstalldocs
}
57 changes: 57 additions & 0 deletions app-emulation/crun/crun-1.2.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3_{7..10} )

inherit autotools python-any-r1

DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
HOMEPAGE="https://github.com/containers/crun"
SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz"

LICENSE="GPL-2+ LGPL-2.1+"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
IUSE="+bpf +caps criu +seccomp systemd static-libs"

DEPEND="
sys-kernel/linux-headers
>=dev-libs/yajl-2.0.0
caps? ( sys-libs/libcap )
criu? ( >=sys-process/criu-3.15 )
seccomp? ( sys-libs/libseccomp )
systemd? ( sys-apps/systemd:= )
"
RDEPEND="${DEPEND}"
BDEPEND="${PYTHON_DEPS}"

# the crun test suite is comprehensive to the extent that tests will fail
# within a sandbox environment, due to the nature of the privileges
# required to create linux "containers".
RESTRICT="test"

src_configure() {
local myeconfargs=(
$(use_enable bpf)
$(use_enable caps)
$(use_enable criu)
$(use_enable seccomp)
$(use_enable systemd)
$(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '')
)

econf "${myeconfargs[@]}"
}

src_compile() {
emake -C libocispec
emake crun
}

src_install() {
emake "DESTDIR=${D}" install-exec
doman crun.1
einstalldocs
}
57 changes: 57 additions & 0 deletions app-emulation/crun/crun-1.3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{7..10} )

inherit autotools python-any-r1

DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
HOMEPAGE="https://github.com/containers/crun"
SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz"

LICENSE="GPL-2+ LGPL-2.1+"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
IUSE="+bpf +caps criu +seccomp systemd static-libs"

DEPEND="
sys-kernel/linux-headers
>=dev-libs/yajl-2.0.0
caps? ( sys-libs/libcap )
criu? ( >=sys-process/criu-3.15 )
seccomp? ( sys-libs/libseccomp )
systemd? ( sys-apps/systemd:= )
"
RDEPEND="${DEPEND}"
BDEPEND="${PYTHON_DEPS}"

# the crun test suite is comprehensive to the extent that tests will fail
# within a sandbox environment, due to the nature of the privileges
# required to create linux "containers".
RESTRICT="test"

src_configure() {
local myeconfargs=(
$(use_enable bpf)
$(use_enable caps)
$(use_enable criu)
$(use_enable seccomp)
$(use_enable systemd)
$(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '')
)

econf "${myeconfargs[@]}"
}

src_compile() {
emake -C libocispec
emake crun
}

src_install() {
emake "DESTDIR=${D}" install-exec
doman crun.1
einstalldocs
}
29 changes: 29 additions & 0 deletions app-emulation/crun/files/libcrun-linkage.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
From 7cfdf094071fcff038bab573c1eeee599fa17b16 Mon Sep 17 00:00:00 2001
From: Georgy Yakovlev <gyakovlev@gentoo.org>
Date: Mon, 2 Aug 2021 03:53:25 -0700
Subject: [PATCH] Makefile.am: link libcrun to $(FOUND_LIBS)

otherwise libcrun consumers fail at runtime with
symbol lookup errors

Closes: https://github.com/containers/crun/issues/711
Issue: https://github.com/containers/crun/issues/340
Downstream-bug: https://bugs.gentoo.org/717750
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index 150e933a..7e5a4406 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -46,7 +46,7 @@ libocispec/libocispec.la:

libcrun_la_SOURCES = $(libcrun_SOURCES)
libcrun_la_CFLAGS = -I $(abs_top_builddir)/libocispec/src -I $(abs_top_srcdir)/libocispec/src -fvisibility=hidden
-libcrun_la_LIBADD = libocispec/libocispec.la $(maybe_libyajl.la)
+libcrun_la_LIBADD = libocispec/libocispec.la $(FOUND_LIBS) $(maybe_libyajl.la)
libcrun_la_LDFLAGS = -Wl,--version-script=$(abs_top_srcdir)/libcrun.lds

# build a version with all the symbols visible for testing
31 changes: 31 additions & 0 deletions app-emulation/crun/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>robert@gnzler.io</email>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<longdescription lang="en">
While most of the tools used in the Linux containers ecosystem are written in
Go, crun authors believe C is a better fit for a lower level tool like a
container runtime. runc; the most used implementation of the OCI runtime specs
written in Go, re-execs itself and use a module written in C for setting up
the environment before the container process starts.

crun aims to be also usable as a library that can be easily included in
programs without requiring an external process for managing OCI containers.
</longdescription>
<upstream>
<changelog>https://github.com/containers/crun/releases</changelog>
<remote-id type="github">containers/crun</remote-id>
</upstream>
<use>
<flag name="bpf">Enable in Kernel, eBPF (enhanced Berkley Packet Filter)
support for managing device controllers.
</flag>
<flag name="criu">Enable CRIU based checkpoint/restore support</flag>
</use>
</pkgmetadata>

0 comments on commit c3d8217

Please sign in to comment.