diff options
Diffstat (limited to 'app-emulation/rkt/rkt-1.1.0.ebuild')
-rw-r--r-- | app-emulation/rkt/rkt-1.1.0.ebuild | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/app-emulation/rkt/rkt-1.1.0.ebuild b/app-emulation/rkt/rkt-1.1.0.ebuild new file mode 100644 index 000000000000..ff8409858f5d --- /dev/null +++ b/app-emulation/rkt/rkt-1.1.0.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +AUTOTOOLS_AUTORECONF=yes +AUTOTOOLS_IN_SOURCE_BUILD=yes + +inherit autotools-utils flag-o-matic systemd toolchain-funcs + +KEYWORDS="~amd64" + +PXE_VERSION="794.1.0" +PXE_SYSTEMD_VERSION="v222" +PXE_URI="http://alpha.release.core-os.net/amd64-usr/${PXE_VERSION}/coreos_production_pxe_image.cpio.gz" +PXE_FILE="${PN}-pxe-${PXE_VERSION}.img" + +SRC_URI="https://github.com/coreos/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz +rkt_stage1_coreos? ( $PXE_URI -> $PXE_FILE ) +rkt_stage1_src? ( https://github.com/systemd/systemd/archive/${PXE_SYSTEMD_VERSION}.tar.gz -> systemd-${PXE_SYSTEMD_VERSION#v}.tar.gz )" + +DESCRIPTION="A CLI for running app containers, and an implementation of the App +Container Spec." +HOMEPAGE="https://github.com/coreos/rkt" + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="doc examples +rkt_stage1_coreos +rkt_stage1_fly rkt_stage1_src +actool" +REQUIRED_USE="|| ( rkt_stage1_coreos rkt_stage1_fly rkt_stage1_src )" + +DEPEND=">=dev-lang/go-1.4.1 + app-arch/cpio + app-crypt/trousers + sys-fs/squashfs-tools + dev-perl/Capture-Tiny" + +RDEPEND="!app-emulation/rocket" + +BUILDDIR="build-${P}" +STAGE1_DEFAULT_LOCATION="/usr/share/rkt/stage1.aci" + +src_prepare() { + # disable git fetch of systemd + sed -e 's|^include makelib/git.mk$|_ := '\ +'$(shell set -ex; [ -d "$(UFS_SYSTEMD_SRCDIR)" ] \&\& exit 0; '\ +'[ ! -d "$${WORKDIR}/systemd-222" ] \&\& exit 0; '\ +'mkdir -p "$$( dirname "$(UFS_SYSTEMD_SRCDIR)")"; '\ +'mv "$${WORKDIR}/systemd-222" "$(UFS_SYSTEMD_SRCDIR)";)|' \ + i stage1/usr_from_src/usr_from_src.mk || die + autotools-utils_src_prepare +} + +src_configure() { + local flavors myeconfargs=( + --with-stage1-default-images-directory="/usr/share/rkt" + --with-stage1-default-location="${STAGE1_DEFAULT_LOCATION}" + ) + + # TODO: + # - fix rkt_stage1_kvm to not download kernel sources with wget + # - fix rkt_stage1_host to not fail during launch + + # enable flavors (first is default) + use rkt_stage1_src && flavors+=",src" + use rkt_stage1_coreos && flavors+=",coreos" + use rkt_stage1_fly && flavors+=",fly" + myeconfargs+=( --with-stage1-flavors="${flavors#,}" ) + + if use rkt_stage1_coreos; then + myeconfargs+=( + --with-coreos-local-pxe-image-path="${DISTDIR}/${PXE_FILE}" + --with-coreos-local-pxe-image-systemd-version="${PXE_SYSTEMD_VERSION}" + ) + fi + + # Go's 6l linker does not support PIE, disable so cgo binaries + # which use 6l+gcc for linking can be built correctly. + if gcc-specs-pie; then + append-ldflags -nopie + fi + + export CC=$(tc-getCC) + export CGO_ENABLED=1 + export CGO_CFLAGS="${CFLAGS}" + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" + export BUILDDIR + + autotools-utils_src_configure +} + +src_install() { + dodoc README.md + use doc && dodoc -r Documentation + use examples && dodoc -r examples + use actool && dobin "${S}/${BUILDDIR}/bin/actool" + + dobin "${S}/${BUILDDIR}/bin/rkt" + + insinto /usr/share/rkt + doins "${S}/${BUILDDIR}/bin/"*.aci + + # create symlink for default stage1 image path + if use rkt_stage1_src; then + dosym stage1-src.aci "${STAGE1_DEFAULT_LOCATION}" + elif use rkt_stage1_coreos; then + dosym stage1-coreos.aci "${STAGE1_DEFAULT_LOCATION}" + elif use rkt_stage1_fly; then + dosym stage1-fly.aci "${STAGE1_DEFAULT_LOCATION}" + fi + + systemd_dounit "${S}"/dist/init/systemd/${PN}-gc.service + systemd_dounit "${S}"/dist/init/systemd/${PN}-gc.timer + systemd_dounit "${S}"/dist/init/systemd/${PN}-metadata.service + systemd_dounit "${S}"/dist/init/systemd/${PN}-metadata.socket +} |