summaryrefslogtreecommitdiff
path: root/app-containers/incus
diff options
context:
space:
mode:
Diffstat (limited to 'app-containers/incus')
-rw-r--r--app-containers/incus/Manifest11
-rw-r--r--app-containers/incus/files/incus-6.9-ensure-leading-slash-in-all-paths.patch32
-rw-r--r--app-containers/incus/files/incus-6.9-read-files-in-chunks.patch39
-rw-r--r--app-containers/incus/incus-6.0.4.ebuild224
-rw-r--r--app-containers/incus/incus-6.11.ebuild226
-rw-r--r--app-containers/incus/incus-6.12.ebuild227
6 files changed, 686 insertions, 73 deletions
diff --git a/app-containers/incus/Manifest b/app-containers/incus/Manifest
index 34f8eed5ada4..087a23fb7b8a 100644
--- a/app-containers/incus/Manifest
+++ b/app-containers/incus/Manifest
@@ -2,8 +2,6 @@ AUX incus-0.4.service 620 BLAKE2B 8e9bee88c79adbdbcbf90ed9602e8f041277dc059dd294
AUX incus-0.4.socket 195 BLAKE2B 47fd548c3a3809dccab38303b0f103f59da4d57b9ccc7366574de6da161099a29e9065050ad9e47dc7b36b46af031c58ac45628468808d1f70ec63cc890ddb7a SHA512 f905d405f1031196e53297a6d0d83bde27a9571d9315fad39fb6940e11be4df89e91710f7f13cbeb9592e74eba5614307c95e6fa0642dbcc71e34a9a3ae5ee31
AUX incus-6.0.confd 864 BLAKE2B 0bbce1f2ae17649598ab213514cdbfaa9d1bd7092078c2297ac82e643b79942a076cd28473e2e1406b9da1b0ecde700dcf0cf7b0612cd78d8e01a86eb54b6ac3 SHA512 cbc7d3c7732a0bb4175d48df24dba3d24e6e2b51e06f93d37f8b6c4368bd4d93ee966694407f9fa6350293cbaafbf907983ae26a508be454333bef417e53b6d7
AUX incus-6.0.initd 1926 BLAKE2B 62102a1d675afa0b6227be581be970442d3528c4f54c8e882b1e143995d7dce388fcf7928b16f6f8ee827048019f1e6c049f2f87c9c7b47291fea9c640b088e1 SHA512 daa647f27940363142498b0bf26f6ff8be464825d86798f23c82a7e7fe8918317b0256545ea6c74492bedb2eff090590f248a08c07f108232c9b160173551871
-AUX incus-6.9-ensure-leading-slash-in-all-paths.patch 1040 BLAKE2B e61291a978dbb16ee3f04c205134467933f77e1102f3cf6e2ace8cc2e4eca0608630af4414ce81400cf74335b60f40bc39d58f516a15d0482be8f3d38bde9e5a SHA512 22801d88b8de47f97c5c99231fc0c586e73e487e60ff5626c7f199e604e400e0dde0a59c6556eeafeb27d2a84bbf935da1afcb9863259f3ba33888d17b347569
-AUX incus-6.9-read-files-in-chunks.patch 1045 BLAKE2B 58f4d7bc048802edd21770b5a9d1118a529d5df785a9438c7a1c633308c24bb7e6089f44427aed376d906601706d141d75be06e246dfbbcb0f3e3f7342ea8020 SHA512 4a8f3585863f0ebeb9b6424c3e36b05afd73fdaeaa7f0e2631c0c9018abbbaa6b41638d2a24d389079d6951db9bdcc2b2e1b1772839731fc57321ad879808f20
AUX incus-startup-0.4.service 297 BLAKE2B a9a13cdf5f966601fc28785072c7e05e6636d1f0583762cc220150ca94e930deb1b40a5d57cd2747ca0be67bd4548460b1ed48a8e67734d23101f86d909c3ba8 SHA512 21044267b73a8d59686d4d0a371cc5e74d4ad4c43331f1886a114e9e41cab4fd796da83469a766e360e75b0f356c3e2c4249c4b2f3ae36c3a2fccf539508bbb8
AUX incus-startup-0.4.sh 304 BLAKE2B a30c8a848ed2a3c8ff6eb2552bc59916eb01b178edf0f2036b54e8a02e41b7a534c4d5333b102344fec4804e50bde22dc916a575bd2b44333d90f15633be4fb6 SHA512 60706d6dc3bbf09337a557c0c4335e1b5147cc2a8b2fa15becac887fc36a27724ef385c94e0516b9050400e11d2d3db4e2a382b72ffd65b11475cc57ab4c9f4f
AUX incus-user-0.4.initd 670 BLAKE2B 5481019916f573a71ee5dadd5a2fefac137951a9b7bb54da7b55376c4ab4b64f2c709904467cf7d14ebc7b297c9113b01064966388f082a52ea91b90c334c2d4 SHA512 048d4634b25c8000ea6c0bf856050016e04b29080c8a68a9924b58781a3093c3adf0f4ed88841bf297df659f370162d4d7296d2d15256f67ca6f6d5fa5af92ab
@@ -11,8 +9,17 @@ AUX incus-user-0.4.service 247 BLAKE2B 97c181da8dc7c91e8effec89a8bac17b626e8e2f3
AUX incus-user-0.4.socket 204 BLAKE2B df26315099820f77fc875c1619078c0b3adc1cf131f4a2c5f3b6f91609bc07a4535d9fb24d20f91c77b0de7f8334442ba17c704310f35ccbc2864a6148f78389 SHA512 a2541cc29d87e96d6a2ebec1cb72dd5779648b4d739657cf123590c23ae00b8022ebf68a7a2af24cfdb9fcb89a05ec87ecd15e37f3160c7ceedf23f3a2459950
DIST incus-6.0.3.tar.xz 11916020 BLAKE2B d3d998bd50124604c52ff007eefed586c216ce1a0a77d45724fd489db1d93f2fa304f5d6e1c368ff2dd4d1170b24605fd24bbf2a6e4506207686ca392936c200 SHA512 6a879e6634cf545b4c427800d923a32e5fe58a6eaf220ad8d0cb08e0ced5e6c4be09274ae095bb9dae25a55445462ea83d3d9235f67bbb9896944f596bf17e1a
DIST incus-6.0.3.tar.xz.asc 833 BLAKE2B 38835ab036709161150992cb40df4ff1ae1887d4f3e0b037d0415f75d2bb711cb3c5945bffe1b91d289acfb7e19e726964278e5c2ab31731ba9f7534f139dec7 SHA512 7d5360ab91aafe1d047a60e38a07e24c3c7b158e753087a943ec5e59d6a27c19a872080c9007b6cf592040d3408845bc188d76f6e732408d0680a3782cebce47
+DIST incus-6.0.4.tar.xz 12000208 BLAKE2B 99a4ba40d2eea48515b88f4534c282adc925fe1b5487dc98901f000894b3781aec89f617d2246314cf9a95a7d65531e486c4092f8939722e1b3c2bf7d33063c8 SHA512 14a5cdad3f9365d58e526c8f451d9e7a57729010073caff31256e0b94d28206adc82ead4820278e7eac17b74d22a76d9f3b9f5f8424ddbfa6b74a5cea13e019f
+DIST incus-6.0.4.tar.xz.asc 833 BLAKE2B 96c94cde55cd2e9f7f28db7adb098adf4895437d300dfd42aeac540cdab6677fb604831c28f40f8581e60b89b228557d81696cd64950a1c2147b445a5ec58b30 SHA512 1ef2063eab424467c805f8c86b5b0caca848f46d2ef7ebf602049fe32ee15a7e1006d5a2710b355604aef73802b4333cd0428c772e1c5fc4da588c2cd7ee1694
DIST incus-6.10.1.tar.xz 18023076 BLAKE2B c35c7a81448b17db6db8959458c23a58392d9e3dcfedaf6d1094964c0c35d46d551a4d6cbaab93cde4b9006bdeb064dcc50148fc2cded6c9ca122f635dab58cd SHA512 12566fef798b34e3d1f3abe4bebada50a99f0e30fd33e1c5ffab458a2ebdac484650e6bf35a48bc4680669d24c9fd912b549e43ed01318bdac52d1b1767cb275
DIST incus-6.10.1.tar.xz.asc 833 BLAKE2B 2e2de67bae59502fdad66a7ac5b7771d4e305f87e4b3e35bc829a73bd053a7ca8256f9bfa8e4c2fc6ee2268cdc8bd9b9bac7ed319e5cda14829daeaa39108b51 SHA512 4f00405913b0d04a0eec407756928e59e477ecf4dfc07b063a13fc5683fcc6e18efe1d2947a6b9c12e5fb1b64d39dc076f4a41da129fe132d30e7cfc23af80a4
+DIST incus-6.11.tar.xz 11997736 BLAKE2B 8764c1189fceeb65caedc0b9cf562f8f78a4e905101022c4efe98693ed70ef069b580d10f74e1830e0225a5332b5b37a9068c636aec738a6496a01430d6074c3 SHA512 0d52e71ce55aa59bb2b3a4c9f7926d43a6dfae1809d42c2c0c591019eaef648a4e15159a826de382e06149aa3488d60c283f69055335124d85597199d231367f
+DIST incus-6.11.tar.xz.asc 833 BLAKE2B b399138638c2c503600b29899b81a4ce691af2ad16ab2d8f8994c92e317e0b48dc2021095346e9784f58a631b724c134186be026acb06fb9a63a01cc0d1cb970 SHA512 f2b108129fe3111e184544b4fce8d5503b59764b202582c901699602d3a7434e3876684ad0f625b7beeb8ca92e6cd9468ced804bcbb8e00336d48d4bce4de1fe
+DIST incus-6.12.tar.xz 12041616 BLAKE2B 25bb157839a6d86f45614f71cb8f61ec2d92ca96322e90dc9d4f47603aee8b246621b941cd223a3c9007bbb4dbb65ffe432a72d2e7af5fefae40bc398406424b SHA512 1234f54965f2b50fa04c286405dd3b7dcbf86f88f91dd38476695a57961dd13fbc8da3c698ce1c254da71239b4af64fda25b9de7c6db017e7728b5bc4db52bf4
+DIST incus-6.12.tar.xz.asc 833 BLAKE2B e74dbefea68db25458da3956e6b5fc99b2cc861d9a20c5d10a9fa2d1803068b2b36a350d35960bfb289e9e1e747baa8bc5d2fdb0a93fcfb8ee7b0ffcd65befe7 SHA512 11f63160366a17d7d2679eb52f318d3c0e2a6d91a76c968d6483db9fb45892006d831f85e30bedfa9237a55d9b517458b01c3d1311e7e5f9ea1c3b3bbc18975a
EBUILD incus-6.0.3-r1.ebuild 6312 BLAKE2B 34672a11b2bc0e609f5a2ee9386ba0d0efb77bc2e75ffc8777794bdabd2724f5bddff0afe19137c91e715f4faea76b9318c3e6fd9f9b1a0315644f303623a076 SHA512 293c0001a88dd64c4e253331b1aaf8ea70b7efab9230b6fda4b11602068130d570a2a098c85aa34ad3d4cd45914d5e973946e505c9eea66de177003706abce17
+EBUILD incus-6.0.4.ebuild 6131 BLAKE2B bcbd1f10c93513d03b110e0f0504113d2537275672eda43248a2be82a85d0c4b70bfb6487d86b96ace954dde8ce5e07b2cddad933780ae3e60ea1fa2a057e0b2 SHA512 9e4014eda459dd84d67e3c005ed50eaf70e266b34475ed6c5e3f2fcdf6af0c4889c54a6a7ebef933d36791153baaafa4bbca36d0cf4ce195740de00e31809a68
EBUILD incus-6.10.1-r1.ebuild 6182 BLAKE2B e5b5e85585668cf6b3188310628e7f9fa511521994afe911d77f6737926ec2893418f294c6be712be9cba84fa10e5b7c94ab1374f5d8bba2640cf0c1a5b924ee SHA512 4d147e4ff3fbb465faf5eb222ea36758aa6c74b295a0ae6ebc564095883c570737f234503173e55cbddf9e0847e0df79bf95ba9f77c8cffbb331ff42e9f950e7
+EBUILD incus-6.11.ebuild 6249 BLAKE2B 2712a56bb12091330aaaeabaea7d5566aa4043ad55bbc7c1f4a57e82a584e91489afc1585101a64b97bad5a068cb8e7165051cf6fc3d19caf6a56ce1de2946e8 SHA512 5474951013d7810c9de265f768f025f6eecbda22a5843509cc93fc80904e9f1fd40d021e0d904dab9bdf6ad9b177d36e99b4de89a307a3809da405430c30fa9b
+EBUILD incus-6.12.ebuild 6293 BLAKE2B e509207215ad67b31572f66dd4a19251fb809ee1071dfb9dabe7b10aa8784206c755ed9ac673a3fcbfcf1c25741d317bfbd7e81d4f8e5ab88aa22b8e65ed5c48 SHA512 fb97abb56f0b52e7ec84aa7db4e1957a691dc6fab8b0b4961873292980cec0876e93df5e8844e12bc766cb372a258fd7ac7d2fb7a539531a92e4d279650b944c
MISC metadata.xml 1696 BLAKE2B d15b2a9b4a9f2197369466403fe00ff6a2a10d3d2b86e2f306a7eeaad4ef3eb6709c22b08df6dc4a8fa0f6d9468da6a240fca27d587c222f081644b8e303da6f SHA512 e07b3700562381e6634ae5bb50163c63fdec2e2798c055da53bd1e84e65a394482b4b95a57effac61f037ecee91440e1d3d608322978846b7c6c5e200e503f0f
diff --git a/app-containers/incus/files/incus-6.9-ensure-leading-slash-in-all-paths.patch b/app-containers/incus/files/incus-6.9-ensure-leading-slash-in-all-paths.patch
deleted file mode 100644
index a4647528c593..000000000000
--- a/app-containers/incus/files/incus-6.9-ensure-leading-slash-in-all-paths.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b726905c66050ac4229d53ce079a0bd05dbe900d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org>
-Date: Thu, 30 Jan 2025 15:21:36 +0100
-Subject: [PATCH] incus/file/pull: Ensure we have a leading / in all paths
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Closes #1614
-
-Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
----
- cmd/incus/file.go | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/cmd/incus/file.go b/cmd/incus/file.go
-index a17486ad327..99467a0bfc5 100644
---- a/cmd/incus/file.go
-+++ b/cmd/incus/file.go
-@@ -575,6 +575,11 @@ func (c *cmdFilePull) Run(cmd *cobra.Command, args []string) error {
- return fmt.Errorf(i18n.G("Invalid source %s"), resource.name)
- }
-
-+ // Make sure we have a leading / for the path.
-+ if !strings.HasPrefix(pathSpec[1], "/") {
-+ pathSpec[1] = "/" + pathSpec[1]
-+ }
-+
- sftpConn, ok := sftpClients[pathSpec[0]]
- if !ok {
- sftpConn, err = resource.server.GetInstanceFileSFTP(pathSpec[0])
-
diff --git a/app-containers/incus/files/incus-6.9-read-files-in-chunks.patch b/app-containers/incus/files/incus-6.9-read-files-in-chunks.patch
deleted file mode 100644
index 05c7b45c0e5d..000000000000
--- a/app-containers/incus/files/incus-6.9-read-files-in-chunks.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f2ef7aa808e204c8714de40b29895ea596e2bb0e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org>
-Date: Sun, 2 Feb 2025 09:18:54 +0100
-Subject: [PATCH] incus/file/pull: Read files in chunks
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
----
- cmd/incus/file.go | 15 +++++++++++----
- 1 file changed, 11 insertions(+), 4 deletions(-)
-
-diff --git a/cmd/incus/file.go b/cmd/incus/file.go
-index 99467a0bfc5..4aad930acd8 100644
---- a/cmd/incus/file.go
-+++ b/cmd/incus/file.go
-@@ -686,10 +686,17 @@ func (c *cmdFilePull) Run(cmd *cobra.Command, args []string) error {
- return err
- }
- } else {
-- _, err = io.Copy(writer, src)
-- if err != nil {
-- progress.Done("")
-- return err
-+ for {
-+ // Read 1MB at a time.
-+ _, err = io.CopyN(writer, src, 1024*1024*1024)
-+ if err != nil {
-+ if err == io.EOF {
-+ break
-+ }
-+
-+ progress.Done("")
-+ return err
-+ }
- }
- }
-
diff --git a/app-containers/incus/incus-6.0.4.ebuild b/app-containers/incus/incus-6.0.4.ebuild
new file mode 100644
index 000000000000..4703fda20578
--- /dev/null
+++ b/app-containers/incus/incus-6.0.4.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit 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/lts"
+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.6
+ 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
+ )
+ fuidshift? ( !app-containers/lxd )
+ sys-apps/iproute2
+ sys-fs/fuse:*
+ >=sys-fs/lxcfs-5.0.0
+ sys-fs/squashfs-tools[lzma]
+ virtual/acl
+ 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
+ CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/cmd/incus-agent
+
+ use nls && emake build-mo
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ export GOPATH="${S}/_dist"
+
+ if tc-is-cross-compiler ; 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-agent incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do
+ dobin ${bindir}/${m}
+ done
+
+ # 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 "btrfs storage backend" sys-fs/btrfs-progs
+ optfeature "support for ACME certificate issuance" app-crypt/lego
+ 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
+}
diff --git a/app-containers/incus/incus-6.11.ebuild b/app-containers/incus/incus-6.11.ebuild
new file mode 100644
index 000000000000..172578e69bfb
--- /dev/null
+++ b/app-containers/incus/incus-6.11.ebuild
@@ -0,0 +1,226 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit 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
+ 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
+ CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/cmd/incus-agent
+
+ use nls && emake build-mo
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ export GOPATH="${S}/_dist"
+
+ if tc-is-cross-compiler ; 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-agent incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do
+ dobin ${bindir}/${m}
+ done
+
+ # 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
+}
diff --git a/app-containers/incus/incus-6.12.ebuild b/app-containers/incus/incus-6.12.ebuild
new file mode 100644
index 000000000000..92da209e83f8
--- /dev/null
+++ b/app-containers/incus/incus-6.12.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit 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
+ CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/cmd/incus-agent
+
+ use nls && emake build-mo
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ export GOPATH="${S}/_dist"
+
+ if tc-is-cross-compiler ; 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-agent incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do
+ dobin ${bindir}/${m}
+ done
+
+ # 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
+}