diff options
author | Joonas Niilola <juippis@gentoo.org> | 2020-08-15 09:19:25 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2020-08-15 09:19:46 +0300 |
commit | 6dc1a76c6c1221364f661988c15b5961da8b14f9 (patch) | |
tree | 491ce0830b72a07660d924e776087bc936d36cf5 /app-emulation/lxd | |
parent | sys-fs/btrfsmaintenance: remove old (diff) | |
download | gentoo-6dc1a76c6c1221364f661988c15b5961da8b14f9.tar.gz gentoo-6dc1a76c6c1221364f661988c15b5961da8b14f9.tar.bz2 gentoo-6dc1a76c6c1221364f661988c15b5961da8b14f9.zip |
app-emulation/lxd: bump to 4.0.3
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'app-emulation/lxd')
-rw-r--r-- | app-emulation/lxd/Manifest | 1 | ||||
-rw-r--r-- | app-emulation/lxd/lxd-4.0.3.ebuild | 208 |
2 files changed, 209 insertions, 0 deletions
diff --git a/app-emulation/lxd/Manifest b/app-emulation/lxd/Manifest index e491542f828a..ec555c4d4d44 100644 --- a/app-emulation/lxd/Manifest +++ b/app-emulation/lxd/Manifest @@ -1 +1,2 @@ DIST lxd-4.0.2.tar.gz 25350601 BLAKE2B 2abecb61759a1a717960671516157dc7b7a36865ecdbcec1f211e5b653b2b4afc41932a4a289430de0dd4ac1e2c777de471ab26e31dbf2b8d1855f67d03886ad SHA512 6c1c668055e9677850f24e142e6741cb6b5aa8d4d9cce29af566e8090c28e04b4baf973f486aef28b7f6b34be5b9ab9bb45e77956879ff7feff6bec8e4db3077 +DIST lxd-4.0.3.tar.gz 25468067 BLAKE2B 5c3d8a2841d3222d070be39fb6cb63c99450a7edea86915a808230012f1a3b7a66c2c4a3c56be378f586c8ca033c4f547ed6eeb14bb09a091b3ae28c62fda7ae SHA512 aaf7fe7473e04765263ff99f02041748f0e57abdd0311d734fbf1cbc461516bf6adad1bc42c9cfa58b4e87c28efb5186d9436fb0a1d309b23eb37fe95299ad6f diff --git a/app-emulation/lxd/lxd-4.0.3.ebuild b/app-emulation/lxd/lxd-4.0.3.ebuild new file mode 100644 index 000000000000..6916707a2f41 --- /dev/null +++ b/app-emulation/lxd/lxd-4.0.3.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools bash-completion-r1 eutils linux-info systemd + +DESCRIPTION="Fast, dense and secure container management" +HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd" +SRC_URI="https://linuxcontainers.org/downloads/${PN}/${P}.tar.gz" + +# Needs to include licenses for all bundled programs and libraries. +LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="apparmor +ipv6 nls" + +DEPEND="app-arch/xz-utils + >=app-emulation/lxc-3.0.0[apparmor?,seccomp] + dev-lang/tcl + dev-libs/libuv + dev-libs/lzo + net-dns/dnsmasq[dhcp,ipv6?]" +RDEPEND="${DEPEND} + acct-group/lxd + net-firewall/ebtables + net-firewall/iptables[ipv6?] + sys-apps/iproute2[ipv6?] + sys-fs/fuse:0= + sys-fs/lxcfs + sys-fs/squashfs-tools + virtual/acl" +BDEPEND=">=dev-lang/go-1.13 + nls? ( sys-devel/gettext )" + +CONFIG_CHECK=" + ~BRIDGE + ~DUMMY + ~IP6_NF_NAT + ~IP6_NF_TARGET_MASQUERADE + ~IPV6 + ~IP_NF_NAT + ~IP_NF_TARGET_MASQUERADE + ~MACVLAN + ~NETFILTER_XT_MATCH_COMMENT + ~NET_IPGRE + ~NET_IPGRE_DEMUX + ~NET_IPIP + ~NF_NAT_MASQUERADE + ~VSOCKETS + ~VXLAN +" + +# 4.0.3: Network fetching fixed, but tests don't work when ran inside container. +RESTRICT="test" + +# Go magic. +QA_PREBUILT="/usr/lib/lxd/libdqlite.so.0.0.1 + /usr/bin/fuidshift + /usr/bin/lxc + /usr/bin/lxc-to-lxd + /usr/bin/lxd-agent + /usr/bin/lxd-benchmark + /usr/bin/lxd-p2c + /usr/sbin/lxd" + +EGO_PN="github.com/lxc/lxd" +GOPATH="${S}/_dist" # this seems to reset every now and then, though + +common_op() { + local i + for i in dqlite raft; do + cd "${GOPATH}"/deps/${i} || die "failed to switch dir to ${i}" + "${@}" + cd "${S}" || die "failed to switch dir back from ${i} to ${S}" + done +} + +src_prepare() { + default + + export GOPATH="${S}/_dist" + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + sed -i 's#lib$#lib/lxd#' "${GOPATH}"/deps/libco/Makefile || die + sed -i 's#zfs version 2>/dev/null | cut -f 2 -d - | head -1#< /sys/module/zfs/version cut -f 1#' "${GOPATH}"/deps/raft/configure.ac || die + + common_op eautoreconf +} + +src_configure() { + export GOPATH="${S}/_dist" + + export CO_CFLAGS="-I${GOPATH}/deps/libco/" + export CO_LIBS="${GOPATH}/deps/libco/" + + export RAFT_CFLAGS="-I${GOPATH}/deps/raft/include/" + export RAFT_LIBS="${GOPATH}/deps/raft/.libs" + + export SQLITE_CFLAGS="-I${GOPATH}/deps/sqlite" + export SQLITE_LIBS="${GOPATH}/deps/sqlite/.libs" + + export PKG_CONFIG_PATH="${GOPATH}/sqlite/:${GOPATH}/libco/:${GOPATH}/raft/" + + cd "${GOPATH}/deps/sqlite" || die + econf --enable-replication --disable-amalgamation --disable-tcl --libdir="${EPREFIX}/usr/lib/lxd" + + common_op econf --libdir="${EPREFIX}"/usr/lib/lxd +} + +src_compile() { + export GOPATH="${S}/_dist" + + export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/" + export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd" + export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}" + + local j + for j in sqlite raft libco; do + cd "${GOPATH}"/deps/${j} || die + emake + done + + ln -s libco.so.0.1.0 libco.so || die + ln -s libco.so.0.1.0 libco.so.0 || die + + cd "${GOPATH}/deps/dqlite" || die + emake CFLAGS="-I${GOPATH}/deps/sqlite -I${GOPATH}/deps/raft/include" LDFLAGS="-L${GOPATH}/deps/sqlite -L${GOPATH}/deps/raft" + + cd "${S}" || die + + for k in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do + go install -v -x ${EGO_PN}/${k} || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon" + + use nls && emake build-mo +} + +src_test() { + export GOPATH="${S}/_dist" + + export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/" + export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd" + export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}" + + go test -v ${EGO_PN}/lxd || die +} + +src_install() { + local bindir="_dist/bin" + export GOPATH="${S}/_dist" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do + dobin ${bindir}/${l} + done + + for m in dqlite libco raft sqlite; do + cd "${GOPATH}"/deps/${m} || die "failed switching into ${GOPATH}/${m}" + emake DESTDIR="${D}" install + done + + cd "${S}" || die + + # We only need bundled libs during src_compile, and we don't want anything + # to link against these. + rm "${ED}"/usr/bin/sqlite3 || die + rm -r "${ED}"/usr/include || die + rm -r "${ED}"/usr/lib/lxd/*.a || die + rm -r "${ED}"/usr/lib/lxd/pkgconfig || die + + newbashcomp scripts/bash/lxd-client lxc + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-4.0.0.initd lxd + + if use apparmor; then + systemd_newunit "${FILESDIR}"/lxd-4.0.0_apparmor.service lxd.service + else + systemd_newunit "${FILESDIR}"/lxd-4.0.0.service lxd.service + fi + + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS doc/* + use nls && domo po/*.mo +} + +pkg_postinst() { + elog + elog "Consult https://wiki.gentoo.org/wiki/LXD for more information," + elog "including a Quick Start." + elog + elog "Optional features:" + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the lxd group." +} |