From: "Joonas Niilola" <juippis@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-containers/incus/
Date: Wed, 04 Jun 2025 08:08:30 +0000 (UTC) [thread overview]
Message-ID: <1749023973.3bc6c260c462d0f75e1643b606ae61763f5aa28c.juippis@gentoo> (raw)
commit: 3bc6c260c462d0f75e1643b606ae61763f5aa28c
Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 4 07:59:33 2025 +0000
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Jun 4 07:59:33 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3bc6c260
app-containers/incus: install windows vm agent with 6.13-r1
Switch from "single agent setup" to "multi agent setup" in order to get the
Windows VM agent working, that's shipped with 6.13. Ideally these agents are
installed somewhere and called with 'INCUS_AGENT_PATH', but I'm taking a bet
they work from /usr/bin/* normally. Please file a bug if not, I have no way of
testing this currently! That's also why 6.13 is kept around, for a possible
downgrade if 6.13-r1 breaks launching VMs.
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
app-containers/incus/incus-6.13-r1.ebuild | 253 ++++++++++++++++++++++++++++++
1 file changed, 253 insertions(+)
diff --git a/app-containers/incus/incus-6.13-r1.ebuild b/app-containers/incus/incus-6.13-r1.ebuild
new file mode 100644
index 000000000000..e9a35ca7d8bd
--- /dev/null
+++ b/app-containers/incus/incus-6.13-r1.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-env go-module linux-info optfeature systemd toolchain-funcs verify-sig
+
+DESCRIPTION="Modern, secure and powerful system container and virtual machine manager"
+HOMEPAGE="https://linuxcontainers.org/incus/introduction/ https://github.com/lxc/incus"
+SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz
+ verify-sig? ( https://linuxcontainers.org/downloads/incus/${P}.tar.xz.asc )"
+
+LICENSE="Apache-2.0 BSD LGPL-3 MIT"
+SLOT="0/stable"
+KEYWORDS="~amd64 ~arm64"
+IUSE="apparmor fuidshift nls qemu"
+
+DEPEND="acct-group/incus
+ acct-group/incus-admin
+ app-arch/xz-utils
+ >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)]
+ dev-db/sqlite:3
+ >=dev-libs/cowsql-1.15.7
+ dev-libs/lzo
+ >=dev-libs/raft-0.22.1:=[lz4]
+ >=dev-util/xdelta-3.0[lzma(+)]
+ net-dns/dnsmasq[dhcp]
+ sys-libs/libcap
+ virtual/udev"
+RDEPEND="${DEPEND}
+ || (
+ net-firewall/iptables
+ net-firewall/nftables[json]
+ )
+ fuidshift? ( !app-containers/lxd )
+ net-firewall/ebtables
+ sys-apps/iproute2
+ sys-fs/fuse:*
+ >=sys-fs/lxcfs-5.0.0
+ sys-fs/squashfs-tools[lzma]
+ virtual/acl
+ apparmor? ( sec-policy/apparmor-profiles )
+ qemu? (
+ app-cdr/cdrtools
+ app-emulation/qemu[spice,usbredir,virtfs]
+ sys-apps/gptfdisk
+ )"
+BDEPEND=">=dev-lang/go-1.21
+ nls? ( sys-devel/gettext )
+ verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )"
+
+CONFIG_CHECK="
+ ~AIO
+ ~CGROUPS
+ ~IPC_NS
+ ~NET_NS
+ ~PID_NS
+
+ ~SECCOMP
+ ~USER_NS
+ ~UTS_NS
+
+ ~KVM
+ ~MACVTAP
+ ~VHOST_VSOCK
+"
+
+ERROR_AIO="CONFIG_AIO is required."
+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/incus
+ /usr/bin/incus-agent
+ /usr/bin/incus-benchmark
+ /usr/bin/incus-migrate
+ /usr/bin/lxc-to-incus
+ /usr/sbin/fuidshift
+ /usr/sbin/incusd
+ /usr/sbin/lxd-to-incus"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/linuxcontainers.asc
+
+# The testsuite must be run as root.
+# make: *** [Makefile:156: check] Error 1
+RESTRICT="test"
+
+GOPATH="${S}/_dist"
+
+src_unpack() {
+ verify-sig_src_unpack
+ go-module_src_unpack
+}
+
+src_prepare() {
+ export GOPATH="${S}/_dist"
+
+ default
+
+ sed -i \
+ -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/incus:g" \
+ -e "s:make:make ${MAKEOPTS}:g" \
+ Makefile || die
+
+ sed -i \
+ -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \
+ -e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \
+ internal/server/instance/drivers/edk2/driver_edk2.go || die "Failed to fix hardcoded ovmf paths."
+
+ cp "${FILESDIR}"/incus-0.4.service "${T}"/incus.service || die
+ if use apparmor; then
+ sed -i \
+ '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \
+ "${T}"/incus.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 incus-benchmark incus-simplestreams incus-user incus lxc-to-incus lxd-to-incus ; do
+ ego install -v -x "${S}/cmd/${k}"
+ done
+
+ if use fuidshift ; then
+ ego install -v -x "${S}/cmd/fuidshift"
+ fi
+
+ ego install -v -x -tags libsqlite3 "${S}"/cmd/incusd
+
+ # Needs to be built statically
+ CGO_ENABLED=0 go install -v -tags netgo "${S}"/cmd/incus-migrate
+
+ # Build the VM agents, statically too
+ # 32-bit agents couldn't be built with the settings below, will need to investigate later - maybe
+ if use amd64 ; then
+ GOARCH=amd64 CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.linux.x86_64 -v -tags agent,netgo "${S}"/cmd/incus-agent
+ # GOARCH=386 CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.linux.i686 -v -tags agent,netgo "${S}"/cmd/incus-agent
+ GOARCH=amd64 GOOS=windows CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.windows.x86_64 -v -tags agent,netgo "${S}"/cmd/incus-agent
+ # GOARCH=386 GOOS=windows CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.windows.i686 -v -tags agent,netgo "${S}"/cmd/incus-agent
+ elif use arm64 ; then
+ GOARCH=arm64 CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.linux.aarch64 -v -tags agent,netgo "${S}"/cmd/incus-agent
+ GOARCH=arm64 GOOS=windows CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.windows.aarch64 -v -tags agent,netgo "${S}"/cmd/incus-agent
+ else
+ echo "No VM support for this arch."
+ return
+ fi
+
+ use nls && emake build-mo
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ export GOPATH="${S}/_dist"
+
+ export GOHOSTARCH=$(go-env_goarch "${CBUILD}")
+ if [[ "${GOARCH}" != "${GOHOSTARCH}" ]]; then
+ local bindir="_dist/bin/linux_${GOARCH}"
+ else
+ local bindir="_dist/bin"
+ fi
+
+ newsbin "${FILESDIR}"/incus-startup-0.4.sh incus-startup
+
+ # Admin tools
+ for l in incusd incus-user lxd-to-incus ; do
+ dosbin "${bindir}/${l}"
+ done
+
+ # User tools
+ for m in incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do
+ dobin "${bindir}/${m}"
+ done
+
+ # VM Agents
+ if use amd64 ; then
+ dobin ${bindir}/incus-agent.linux.x86_64
+ # dobin ${bindir}/incus-agent.linux.i686
+ dobin ${bindir}/incus-agent.windows.x86_64
+ # dobin ${bindir}/incus-agent.windows.i686
+ elif use arm64 ; then
+ dobin ${bindir}/incus-agent.linux.aarch64
+ dobin ${bindir}/incus-agent.windows.aarch64
+ fi
+
+ # fuidshift, should be moved under admin tools at some point
+ if use fuidshift ; then
+ dosbin ${bindir}/fuidshift
+ fi
+
+ newconfd "${FILESDIR}"/incus-6.0.confd incus
+ newinitd "${FILESDIR}"/incus-6.0.initd incus
+ newinitd "${FILESDIR}"/incus-user-0.4.initd incus-user
+
+ systemd_dounit "${T}"/incus.service
+ systemd_newunit "${FILESDIR}"/incus-0.4.socket incus.socket
+ systemd_newunit "${FILESDIR}"/incus-startup-0.4.service incus-startup.service
+ systemd_newunit "${FILESDIR}"/incus-user-0.4.service incus-user.service
+ systemd_newunit "${FILESDIR}"/incus-user-0.4.socket incus-user.socket
+
+ if ! tc-is-cross-compiler; then
+ # Generate and install shell completion files.
+ mkdir -p "${D}"/usr/share/{bash-completion/completions/,fish/vendor_completions.d/,zsh/site-functions/} || die
+ "${bindir}"/incus completion bash > "${D}"/usr/share/bash-completion/completions/incus || die
+ "${bindir}"/incus completion fish > "${D}"/usr/share/fish/vendor_completions.d/incus.fish || die
+ "${bindir}"/incus completion zsh > "${D}"/usr/share/zsh/site-functions/_incus || die
+ else
+ ewarn "Shell completion files not installed! Install them manually with incus completion --help"
+ fi
+
+ dodoc AUTHORS
+ dodoc -r doc/*
+ use nls && domo po/*.mo
+
+ # Incus needs INCUS_EDK2_PATH in env to find OVMF files for virtual machines, #946184
+ newenvd - 90incus <<- _EOF_
+ INCUS_EDK2_PATH=${EPREFIX}/usr/share/edk2-ovmf
+ _EOF_
+}
+
+pkg_postinst() {
+ elog
+ elog "Please see"
+ elog " https://wiki.gentoo.org/wiki/Incus"
+ elog " https://wiki.gentoo.org/wiki/Incus#Migrating_from_LXD"
+ elog
+ optfeature "OCI container images support" app-containers/skopeo app-containers/umoci
+ optfeature "support for ACME certificate issuance" app-crypt/lego
+ optfeature "btrfs storage backend" sys-fs/btrfs-progs
+ optfeature "ipv6 support" net-dns/dnsmasq[ipv6]
+ optfeature "full incus-migrate support" net-misc/rsync
+ 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 incus group."
+ elog
+}
next reply other threads:[~2025-06-04 8:08 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-04 8:08 Joonas Niilola [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-09-29 13:15 [gentoo-commits] repo/gentoo:master commit in: app-containers/incus/ Marc Schiffbauer
2025-09-29 13:15 Marc Schiffbauer
2025-08-16 8:22 Joonas Niilola
2025-08-02 10:34 Joonas Niilola
2025-07-08 8:34 Joonas Niilola
2025-07-01 16:15 Joonas Niilola
2025-06-30 7:56 Joonas Niilola
2025-06-19 7:04 Joonas Niilola
2025-06-19 6:46 Joonas Niilola
2025-05-31 6:02 Joonas Niilola
2025-05-15 13:56 Joonas Niilola
2025-05-15 13:56 Joonas Niilola
2025-04-27 6:17 Joonas Niilola
2025-04-06 6:25 Joonas Niilola
2025-04-06 6:25 Joonas Niilola
2025-03-28 6:22 Joonas Niilola
2025-03-28 6:22 Joonas Niilola
2025-03-28 6:22 Joonas Niilola
2025-03-03 7:37 Joonas Niilola
2025-03-03 7:37 Joonas Niilola
2025-02-28 8:41 Joonas Niilola
2025-02-21 14:31 Joonas Niilola
2025-02-08 8:00 Joonas Niilola
2025-01-26 7:33 Joonas Niilola
2024-12-21 16:19 Joonas Niilola
2024-12-15 7:23 Joonas Niilola
2024-12-15 7:23 Joonas Niilola
2024-12-14 7:13 Joonas Niilola
2024-11-17 7:10 Joonas Niilola
2024-10-27 12:43 Maciej Barć
2024-10-25 11:09 Joonas Niilola
2024-10-20 6:27 Joonas Niilola
2024-10-10 16:33 James Le Cuirot
2024-10-04 12:57 Joonas Niilola
2024-09-28 12:46 Joonas Niilola
2024-09-18 7:29 Joonas Niilola
2024-09-10 16:14 Joonas Niilola
2024-09-10 16:14 Joonas Niilola
2024-09-09 15:15 Joonas Niilola
2024-08-27 7:00 Joonas Niilola
2024-08-10 6:08 Joonas Niilola
2024-08-03 7:18 Joonas Niilola
2024-08-01 4:53 Joonas Niilola
2024-07-12 8:58 Joonas Niilola
2024-07-12 8:58 Joonas Niilola
2024-06-29 6:22 Joonas Niilola
2024-06-08 6:39 Joonas Niilola
2024-06-01 6:38 Joonas Niilola
2024-05-08 7:13 Joonas Niilola
2024-05-05 6:28 Joonas Niilola
2024-04-23 10:43 Joonas Niilola
2024-04-22 17:02 Joonas Niilola
2024-04-22 17:02 Joonas Niilola
2024-04-22 17:02 Joonas Niilola
2024-04-05 7:57 Joonas Niilola
2024-03-26 8:28 Joonas Niilola
2024-03-26 6:38 Joonas Niilola
2024-02-23 7:50 Joonas Niilola
2024-02-13 6:28 Joonas Niilola
2024-01-29 7:43 Joonas Niilola
2024-01-07 9:05 Sam James
2024-01-06 9:32 Joonas Niilola
2024-01-04 7:03 Joonas Niilola
2023-12-27 17:21 Joonas Niilola
2023-11-27 7:18 Joonas Niilola
2023-11-01 13:17 Joonas Niilola
2023-10-29 9:05 Joonas Niilola
2023-10-19 16:06 Joonas Niilola
2023-10-14 19:28 Joonas Niilola
2023-10-14 11:12 Joonas Niilola
2023-10-13 17:22 Joonas Niilola
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1749023973.3bc6c260c462d0f75e1643b606ae61763f5aa28c.juippis@gentoo \
--to=juippis@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox