summaryrefslogtreecommitdiff
path: root/app-emulation/lxd
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/lxd')
-rw-r--r--app-emulation/lxd/Manifest3
-rw-r--r--app-emulation/lxd/files/lxd-4.0.0.initd18
-rw-r--r--app-emulation/lxd/lxd-4.0.4-r7.ebuild154
3 files changed, 169 insertions, 6 deletions
diff --git a/app-emulation/lxd/Manifest b/app-emulation/lxd/Manifest
index 8e5bd2efc070..f60e5247ed98 100644
--- a/app-emulation/lxd/Manifest
+++ b/app-emulation/lxd/Manifest
@@ -1,5 +1,5 @@
AUX lxd-4.0.0.confd 582 BLAKE2B 88ce8ec99eb50174bffea7d3b8bddc67b50fe6677d54df115c9069311b5fb59a72170a15988f50714740074f7ec4f2cd32fb47b6d8c52cf69b8c6fa332162a06 SHA512 96d922ae81677eebace3f8d2dff7f67d58701c40c09e2435677f9289cca89fe260c0d9526059d3772c3405a5b8ec52466bf7d7a920dcdd7551f1b3f01f2fc9c4
-AUX lxd-4.0.0.initd 806 BLAKE2B bd28a871c8984eb27043e78cbb06ab64e8e071e9baa06a53015b4c7d28ff74b9ad54093acda51d66ed8e07921eb8c1ead8a5f6075404334e54c0d0096f19aa31 SHA512 c9a30685272ce2828d3c739a5718a388ffc70b0c613faa7d18c91b44e311f33abe2d51153c2ae6dd12d3cf921830952937214289e5b4d700d8f57e74ac2fc206
+AUX lxd-4.0.0.initd 1223 BLAKE2B 1f7ba04af8d4d22c04312bbf9243f94855e8c4912485bedde7ab8c78e21c0957de0434095811db0be4ee38723cd1e8a9bec01af4420283b297ef547154f31577 SHA512 cecd9da83e1352eec23720e84c7ad85a65dde21344b5c1aca8943f9ac74eeb0e1f66d968bba24592303fed05beefa2959c8cffc0d2e0be59168ded91b84e5fe0
AUX lxd-4.0.0.service 519 BLAKE2B 5314820c25e52449aad8db6584739cbe0f2654111e4b42c3eef0df995373487c789390dee99420dfd1aa5768ba66ba72999e8f2d8a3b0be6e621185f185b5b85 SHA512 c68c4106e189bd32538f5f2963c43afc30418dd9afeca56e5590f354725eb0126ee0aac02082cc42d69b851f392a4977a4f95cf2886044ad563c9a36facea222
AUX lxd-4.0.0.socket 197 BLAKE2B 8c0d2dee71c14ee5f34b2bd0804adfa06ab3ae2a73bcf8d122184434c42b7f91f66fe610bddda93c458e0f171b505fe79a4f268d8243aabdf226f47e95027e71 SHA512 d70dc867b2e92b69928c83fc5feca4e387808adbc267b9fe4ecf0c8befdf3ca13366b229c6eefcb5667e51405fb0aa4e6bb8f59a0b5b5fb3895c46b4aaab0661
AUX lxd-4.0.0_apparmor.service 567 BLAKE2B e5951c31f90b842f5b625060326d9611ed67fb50360b11791cbd1ab1953fdfe5eb726e22b7091bb8e45c294b772e6b00e9ca65833512eb5b570627fa3234812e SHA512 364764d007f4800138c712fce70fe28b096b6e35dc6d2e4f8aa9aff4b335ecec7dfc9600a1a16cd38e69a96534b7462daf5f6e946a2ee81bce17977b8d5911db
@@ -7,4 +7,5 @@ AUX lxd-containers-4.0.0.service 322 BLAKE2B a38cffd4b5809946abdac858564dcab2c29
DIST lxd-4.0.4.tar.gz 14166577 BLAKE2B 5a04efa1bf70d416b328f5f85379a7c697667978a2b7571c05f8d834ccea51c65ce3df447787ccad5c0a9cc524bc396eb5c90b26b92d6252fc07a5be0157e0ea SHA512 800768b923de920e04d676d9c87beedd2ddd164661799c429616f6fa00b36f23ae1d9cff56f2ed16172585b9b3c058ee955eb3e5f8d98c84109c4405c5aae23f
DIST lxd-4.0.4.tar.gz.asc 833 BLAKE2B bac0b63fc7fe61290bd399ef09eaf0bae12ac962b1188c49fa94c9132b002c278dcdb271d35a1784848591a315a8e88eab823c1c653ef814d454a0af607e461b SHA512 7fc9b9b27305d7637efeaf4024a8a26e2f891599fe50fa22e2f9defa6d451a015d74d068f63a9547fce312ed5fb5da82b99be9dc13601f807695cf1b675baf15
EBUILD lxd-4.0.4-r6.ebuild 3819 BLAKE2B be531ecbfbab005179ffede6038eb6798297c324c0870064a37e94d473bb6b6e94e42abfe1e623d78f39fc1c0c62923901c8444d2842cbedeca1e08b8f242b17 SHA512 13110a84d788c5834f8cc1deb32d3c8e296d080167923be035198dcc36e026f97b3bcad33f30787cdec68a09e03dbacd03de14902955b2e58c10fbfae8bd2370
+EBUILD lxd-4.0.4-r7.ebuild 3870 BLAKE2B 7adea6e16b9f324d2ec8bd122462ea5b18c29da1c4a4b34f722ed16a328a29f41e919cfe7ae5f13e75cad2e0155b16cd101929a36612c47bc621a40034898cdf SHA512 cc73658faf294ca21cab39f18ebf54638e36c279f2c9e4448275eb714c3bcce3c38acfff2b5ccb5394748a5f8c772b94eee07abbfa26139e363d8e995688a56d
MISC metadata.xml 776 BLAKE2B 5f8e6d2639982bf6564567a9775e55b777d4bd9cb01818770b5089071262ceda815e5d94e853b7c08a470234729c08e313685610b3da457a23bb7edbf5b3ff52 SHA512 050d500629b4331f2f8bd2fa5cbcabadc988d737c891edb66ad8b2ee2fd378690b2fee4c70e0b380c2579cb9a39453768242d7acbead4c5390c7f01131b939c0
diff --git a/app-emulation/lxd/files/lxd-4.0.0.initd b/app-emulation/lxd/files/lxd-4.0.0.initd
index 266e84fcef64..c55b2da6a84d 100644
--- a/app-emulation/lxd/files/lxd-4.0.0.initd
+++ b/app-emulation/lxd/files/lxd-4.0.0.initd
@@ -28,12 +28,20 @@ start() {
}
stop() {
- if [[ ${RC_GOINGDOWN} = YES ]] || [[ ${RC_REBOOT} = YES ]]; then
- "${DAEMON}" shutdown
- rm -f ${PIDFILE}
+ if [[ "${RC_CMD}" = restart ]]; then
+ ebegin "Stopping lxd service (but not containers)"
+ # start-stop-daemon sends SIGTERM with a timeout of 5s by default.
+ # SIGTERM indicates to LXD that it will be stopped temporarily.
+ # Instances will keep running.
+ start-stop-daemon --stop --quiet -p "${PIDFILE}"
+ eend ${?}
else
- ebegin "Stopping lxd service (but not containers)."
- start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE}
+ ebegin "Stopping lxd service and containers, waiting 40s"
+ # SIGPWR indicates to LXD that the host is going down.
+ # LXD will do a clean shutdown of all instances.
+ # After 30s all remaining instances will be killed.
+ # We wait up to 40s for LXD.
+ start-stop-daemon --stop --quiet -R SIGPWR/40 -p "${PIDFILE}"
eend ${?}
fi
}
diff --git a/app-emulation/lxd/lxd-4.0.4-r7.ebuild b/app-emulation/lxd/lxd-4.0.4-r7.ebuild
new file mode 100644
index 000000000000..b5c87f1d9fde
--- /dev/null
+++ b/app-emulation/lxd/lxd-4.0.4-r7.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools bash-completion-r1 linux-info optfeature systemd verify-sig
+
+DESCRIPTION="Fast, dense and secure container management"
+HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd"
+SRC_URI="https://linuxcontainers.org/downloads/lxd/${P}.tar.gz
+ verify-sig? ( https://linuxcontainers.org/downloads/lxd/${P}.tar.gz.asc )"
+
+# 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 verify-sig"
+
+DEPEND="app-arch/xz-utils
+ >=app-emulation/lxc-3.0.0[apparmor?,seccomp(+)]
+ dev-libs/dqlite
+ dev-libs/lzo
+ dev-libs/raft
+ 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[lzma]
+ virtual/acl"
+BDEPEND="dev-lang/go
+ nls? ( sys-devel/gettext )
+ verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )"
+
+CONFIG_CHECK="
+ ~CGROUPS
+ ~IPC_NS
+ ~NET_NS
+ ~PID_NS
+
+ ~SECCOMP
+ ~USER_NS
+ ~UTS_NS
+"
+
+ERROR_IPC_NS="CONFIG_IPC_NS is required."
+ERROR_NET_NS="CONFIG_NET_NS is required."
+ERROR_PID_NS="CONFIG_PID_NS is required."
+ERROR_SECCOMP="CONFIG_SECCOMP is required."
+ERROR_UTS_NS="CONFIG_UTS_NS is required."
+
+# Go magic.
+QA_PREBUILT="/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
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
+
+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
+
+ # Fix hardcoded ovmf file path, see bug 763180
+ sed -i \
+ -e "s:/usr/share/OVMF:/usr/share/edk2-ovmf:g" \
+ -e "s:OVMF_VARS.ms.fd:OVMF_VARS.secboot.fd:g" \
+ doc/environment.md \
+ lxd/apparmor/instance_qemu.go \
+ lxd/instance/drivers/driver_qemu.go || die "Failed to fix hardcoded ovmf paths."
+}
+
+src_configure() { :; }
+
+src_compile() {
+ export GOPATH="${S}/_dist"
+ export GO111MODULE=auto
+
+ 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 GO111MODULE=auto
+ export GOPATH="${S}/_dist"
+ 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
+
+ cd "${S}" || 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 "Please run 'lxc-checkconfig' to see all optional kernel features."
+ 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."
+}