diff options
author | Brahmajit Das <brahmajit.xyz@gmail.com> | 2023-09-04 21:02:05 +0530 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2023-09-10 16:20:05 +0300 |
commit | 9e4cb55e7bf022bb3e37e069472543fdb11e4797 (patch) | |
tree | b5d6c72944adfe42999d0e2dbe87e6fa1eaf838c /app-containers | |
parent | sec-keys/openpgp-keys-canonical: new package, add 20190401 (diff) | |
download | gentoo-9e4cb55e7bf022bb3e37e069472543fdb11e4797.tar.gz gentoo-9e4cb55e7bf022bb3e37e069472543fdb11e4797.tar.bz2 gentoo-9e4cb55e7bf022bb3e37e069472543fdb11e4797.zip |
app-containers/lxd: add 5.17
Closes: https://bugs.gentoo.org/903870
Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com>
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'app-containers')
-rw-r--r-- | app-containers/lxd/Manifest | 2 | ||||
-rw-r--r-- | app-containers/lxd/files/lxd-5.17-remove-shellcheck-buildsystem-checks.patch | 31 | ||||
-rw-r--r-- | app-containers/lxd/lxd-5.17.ebuild | 187 | ||||
-rw-r--r-- | app-containers/lxd/metadata.xml | 8 |
4 files changed, 228 insertions, 0 deletions
diff --git a/app-containers/lxd/Manifest b/app-containers/lxd/Manifest index 7a4e3af6d38c..798dacc3f7da 100644 --- a/app-containers/lxd/Manifest +++ b/app-containers/lxd/Manifest @@ -2,3 +2,5 @@ DIST lxd-4.0.9.tar.gz 9117078 BLAKE2B aa6689c1e958258484fba5c060765dd71d5406cb43 DIST lxd-4.0.9.tar.gz.asc 833 BLAKE2B 7cd0d3ab518d947ca3ea6dc804c6a59b592e4e568152c078fdd3c102420bcd94d2f0b2c335b8b4ecdb19dc3c9a10f665a1510903f395247da956717beaa172a3 SHA512 79a4111571ab43e79cf669e416ed50f3ccae0fbceb86d73757d23c778035e827f47643bc87ff6a2fc64b095345a3d53cbd0c4eb245c75364e907d7449f3a0886 DIST lxd-5.0.2.tar.gz 16258766 BLAKE2B a0d4e3108664724c064fb8c16031ff7dfa3f49735c81290c78fca1dd8c95774e8d8faf131a9de0961a51fb3f1fb1e3a1219d325e6c440dc42d077bfb6550df0b SHA512 e44b210828251ef2bbdcca332f605294a9258572a52a8e94f5c8dcf8d5c2b3d4cdaf46f85236d9c963de5654d3a0437b5f177ea908a6dac3b5b03fb721be6eaa DIST lxd-5.0.2.tar.gz.asc 833 BLAKE2B 606cae1439148060acd3fb04fdb108654a351ce2b7484081f7874ab2b0af8de2b5befc5a5409a94af0da25308622234db2e3b411edb20324df458fe85f46ac21 SHA512 884c921a263a8baf2d94958c72e232a0a47d0747f5a9d36ed8fc270edfa18dfc240d1e858e75dcc03eae921dae08d3ddfd34d9146d1510de6a09031da26aaccc +DIST lxd-5.17.tar.gz 22319517 BLAKE2B b9dfd934fad6b21b6f2b1d25291b4201f647b2b09a1ae155577a88257c021cc36b43a08802411d0f3268b726da7fa38b8627302696f670a1747e3795db0b0efe SHA512 f5feca34fff0b01a9db8041dd18fde82ad089f36ab171cf338556ebec9b2accfa450b0734d72b25bbb7296aaaeafed247aac2117c32f3ebfce5ae716e4b196bf +DIST lxd-5.17.tar.gz.asc 833 BLAKE2B bc781d520b8314261b6681603f17fcb82d045bb969ebf8eec64c82ef73f493892d48d50c870f72e9f4f1f6c7dd4b63239a5039949e4f7bb49539c69538b4a2f2 SHA512 7e76a6cfcb1bf5b7b864125b412d5bd4766b4af6cdab40d70324c4103d1a716c39dfa5cf0eccf2cb7862f182c7c469f18ca46b981a1be3fc0fac8c47537d6c1c diff --git a/app-containers/lxd/files/lxd-5.17-remove-shellcheck-buildsystem-checks.patch b/app-containers/lxd/files/lxd-5.17-remove-shellcheck-buildsystem-checks.patch new file mode 100644 index 000000000000..b0e3a7500b89 --- /dev/null +++ b/app-containers/lxd/files/lxd-5.17-remove-shellcheck-buildsystem-checks.patch @@ -0,0 +1,31 @@ +--- a/Makefile ++++ b/Makefile +@@ -249,28 +249,6 @@ endif + .PHONY: build-mo + build-mo: $(MOFILES) + +-.PHONY: static-analysis +-static-analysis: +-ifeq ($(shell command -v golangci-lint),) +- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $$(go env GOPATH)/bin +-endif +-ifeq ($(shell command -v shellcheck),) +- echo "Please install shellcheck" +- exit 1 +-endif +-ifneq "$(shell shellcheck --version | grep version: | cut -d ' ' -f2)" "0.8.0" +- @echo "WARN: shellcheck version is not 0.8.0" +-endif +-ifeq ($(shell command -v flake8),) +- echo "Please install flake8" +- exit 1 +-endif +- golangci-lint run --timeout 5m +- flake8 test/deps/import-busybox +- shellcheck --shell sh test/*.sh test/includes/*.sh test/suites/*.sh test/backends/*.sh test/lint/*.sh +- shellcheck test/extras/*.sh +- run-parts --exit-on-error --regex '.sh' test/lint +- + .PHONY: tags + tags: *.go lxd/*.go shared/*.go lxc/*.go + find . -type f -name '*.go' | xargs gotags > tags diff --git a/app-containers/lxd/lxd-5.17.ebuild b/app-containers/lxd/lxd-5.17.ebuild new file mode 100644 index 000000000000..76c54a54d503 --- /dev/null +++ b/app-containers/lxd/lxd-5.17.ebuild @@ -0,0 +1,187 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 go-module linux-info optfeature systemd verify-sig + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd" +SRC_URI="https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz + verify-sig? ( https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz.asc +)" + +LICENSE="Apache-2.0 BSD LGPL-3 MIT" +SLOT="0/stable" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="apparmor nls" + +DEPEND="acct-group/lxd + app-arch/xz-utils + >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/dqlite-1.13.0:= + dev-libs/lzo + >=dev-libs/raft-0.17.1:=[lz4] + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + net-firewall/ebtables + net-firewall/iptables + sys-apps/iproute2 + sys-fs/fuse:3 + >=sys-fs/lxcfs-5.0.0 + sys-fs/squashfs-tools[lzma] + virtual/acl" +BDEPEND="dev-lang/go + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-canonical )" + +CONFIG_CHECK=" + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +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." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# 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-migrate + /usr/sbin/lxd" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/canonical.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +PATCHES=( + "${FILESDIR}"/lxd-5.17-remove-shellcheck-buildsystem-checks.patch +) + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + 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.fd:g" \ + doc/environment.md \ + lxd/apparmor/instance.go \ + lxd/apparmor/instance_qemu.go \ + lxd/instance/drivers/driver_qemu.go || die "Failed to fix hardcoded ovmf paths." + + # Fix hardcoded virtfs-proxy-helper file path, see bug 798924 + sed -i \ + -e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \ + lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path." + + cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/lxd.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + export CGO_LDFLAGS_ALLOW="-Wl,-z,now" + + for k in fuidshift lxd-benchmark lxc lxc-to-lxd; do + go install -v -x "${S}/${k}" || die "failed compiling ${k}" + done + + go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon" + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-migrate + CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + local bindir="_dist/bin" + + dosbin ${bindir}/lxd + + for l in fuidshift lxd-agent lxd-benchmark lxd-migrate lxc lxc-to-lxd; do + dobin ${bindir}/${l} + done + + newbashcomp scripts/bash/lxd-client lxc + + newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd + newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd + + systemd_dounit "${T}"/lxd.service + systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service + systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket + + dodoc AUTHORS + dodoc -r 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 "For virtual machine support, see:" + elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines" + elog + elog "Please run 'lxc-checkconfig' to see all optional kernel features." + elog + optfeature "virtual machine support" app-emulation/qemu[spice,usbredir,virtfs] + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full lxd-migrate support" + 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." +} diff --git a/app-containers/lxd/metadata.xml b/app-containers/lxd/metadata.xml index 0367880cdf4c..fd92d5b3194e 100644 --- a/app-containers/lxd/metadata.xml +++ b/app-containers/lxd/metadata.xml @@ -5,10 +5,18 @@ <email>juippis@gentoo.org</email> <name>Joonas Niilola</name> </maintainer> + <maintainer type="person" proxied="yes"> + <email>brahmajit.xyz@gmail.com</email> + <name>Brahmajit Das</name> + </maintainer> <maintainer type="project"> <email>virtualization@gentoo.org</email> <name>Gentoo Virtualization Project</name> </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> <longdescription> LXD is a modern, secure and powerful system container and virtual machine manager. |