# Disable documentation due to missing dependencies %bcond doc 0 # Fedora upstream sync: 492132cfe8 (2026-04-09) # Source: https://src.fedoraproject.org/rpms/incus/c/492132cfe8c957e5d924b009a52cfc8d397f694d # Swagger version to download for documentation %global swaggerui_version 5.21.0 %global swaggerui_source_baseurl https://github.com/swagger-api/swagger-ui/raw/v%{swaggerui_version}/dist/ # Incus UI version (independent versioning from Incus) %global ui_version 0.21.6 %global ui_release 1 # Enable tests %bcond check 0 # https://github.com/lxc/incus %global goipath github.com/lxc/incus Version: 7.4 %gometa %global godocs AUTHORS CODE_OF_CONDUCT.md CONTRIBUTING.md README.md SECURITY.md %global golicenses COPYING # Set build macro for static builds # Uses GO111MODULE=on -mod=vendor instead of %%gomodulesmode (GO111MODULE=off) # to ensure vendored dependencies are correctly resolved (rhbz#2419661) %define gocompilerflags_static -compiler gc %define gobuild_baseflags_static %{gocompilerflags_static} -mod=vendor -tags="rpm_crashtraceback ${GO_BUILDTAGS-${BUILDTAGS-}}" -a -v %define gobuild_ldflags_static ${GO_LDFLAGS-${LDFLAGS-}} %{?currentgoldflags} -B 0x$(echo "%{name}-%{version}-%{release}-${SOURCE_DATE_EPOCH:-}" | sha1sum | cut -d ' ' -f1) -compressdwarf=false %define gobuildflags_static() %{expand:%{gobuild_baseflags_static} -ldflags "%{gobuild_ldflags_static}"} %define gobuild_static(-) %{expand: GO111MODULE=on CGO_ENABLED=0 go build %{gobuildflags_static} %{?**}; } Name: incus Release: 1%{?dist} # Snapshot the daemon's version-release before the ui subpackage overrides # %%version/%%release/%%epoch for the rest of the spec (RPM quirk: Epoch/ # Version/Release tags in a subpackage section reassign these macros # spec-wide, not just for that subpackage's own scope) %global incus_epoch %{?epoch} %global incus_version %{version} %global incus_release %{release} Summary: Powerful system container and virtual machine manager License: Apache-2.0 URL: https://linuxcontainers.org/incus Source0: https://linuxcontainers.org/downloads/%{name}/%{name}-%{version}.tar.xz # Systemd units Source101: %{name}.socket Source102: %{name}.service Source103: %{name}-startup.service Source104: %{name}-user.socket Source105: %{name}-user.service # Ensure Incus groups exist Source106: %{name}-sysusers.conf # Ensure state directories (/var/lib/incus, /var/cache/incus, /var/log/incus) exist Source107: %{name}-tmpfiles.conf # Ensure system dnsmasq ignores Incus network bridge Source108: %{name}-dnsmasq.conf # Raise number of inotify user instances Source109: %{name}-sysctl.conf # Helper script for incusd shutdown Source110: shutdown # Systemd drop-in to enable the web UI Source111: %{name}-ui-env.conf # Pre-built web UI (generated by build-incus-ui.sh) Source301: %{name}-ui-%{ui_version}.tar.xz # Web scripts shipped with API documentation Source201: %{swaggerui_source_baseurl}/swagger-ui-bundle.js#/swagger-ui-%{swaggerui_version}-bundle.js Source202: %{swaggerui_source_baseurl}/swagger-ui-standalone-preset.js#/swagger-ui-%{swaggerui_version}-standalone-preset.js Source203: %{swaggerui_source_baseurl}/swagger-ui.css#/swagger-ui-%{swaggerui_version}.css # Downstream only patches ## Allow offline builds Patch1002: incus-0.2-doc-Remove-downloads-from-sphinx-build.patch %global bashcompletiondir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null || :) BuildRequires: gettext BuildRequires: glibc-static BuildRequires: help2man BuildRequires: pkgconfig(bash-completion) BuildRequires: pkgconfig(cowsql) BuildRequires: pkgconfig(libacl) BuildRequires: pkgconfig(libcap) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(lxc) BuildRequires: pkgconfig(raft) BuildRequires: pkgconfig(sqlite3) BuildRequires: systemd-rpm-macros %{?sysusers_requires_compat} Requires: %{name}-client = %{version}-%{release} Requires: (container-selinux >= 2.245.0 if selinux-policy) Requires: attr Requires: dnsmasq Requires: iptables, ebtables Requires: (nftables if iptables-nft) Requires: lxcfs Requires: rsync Requires: shadow-utils Requires: squashfs-tools Requires: tar Requires: xdelta Requires: xz %{?systemd_requires} %ifnarch %{ix86} %{arm32} Requires: skopeo # Not yet packaged in Fedora #Requires: umoci %endif %if %{with check} BuildRequires: btrfs-progs BuildRequires: dnsmasq BuildRequires: nftables %endif Recommends: %{name}-agent = %{version}-%{release} Recommends: %{name}-ui Suggests: %{name}-doc # This package no longer exists as container-selinux supersedes it Obsoletes: %{name}-selinux < 6.23-3 Conflicts: %{name}-selinux < 6.23-3 %description Container hypervisor based on LXC Incus offers a REST API to remotely manage containers over the network, using an image based work-flow and with support for live migration. This package contains the Incus daemon. %pre %sysusers_create_package %{name} %{SOURCE106} %tmpfiles_create_package %{name} %{SOURCE107} %post %systemd_post %{name}.socket %systemd_post %{name}.service %systemd_post %{name}-startup.service %systemd_post %{name}-user.socket %systemd_post %{name}-user.service # Ensure root has subordinate UID/GID ranges for unprivileged containers for f in /etc/subuid /etc/subgid; do if ! grep -q "^root:1000000:1000000000$" "$f" 2>/dev/null; then echo "root:1000000:1000000000" >> "$f" fi done %preun %systemd_preun %{name}.socket %systemd_preun %{name}.service %systemd_preun %{name}-startup.service %systemd_preun %{name}-user.socket %systemd_preun %{name}-user.service %postun %systemd_postun_with_restart %{name}.socket %systemd_postun_with_restart %{name}.service %systemd_postun_with_restart %{name}-user.socket %systemd_postun_with_restart %{name}-user.service %files %license %{golicenses} %config(noreplace) %{_sysconfdir}/dnsmasq.d/%{name}.conf %{_sysctldir}/10-incus-inotify.conf %{_unitdir}/%{name}.socket %{_unitdir}/%{name}.service %{_unitdir}/%{name}-startup.service %{_unitdir}/%{name}-user.socket %{_unitdir}/%{name}-user.service %{_libexecdir}/%{name}/ %{_sysusersdir}/%{name}.conf %{_tmpfilesdir}/%{name}.conf %{_mandir}/man1/incusd*.1.* %attr(700,root,root) %dir %{_localstatedir}/cache/%{name} %attr(700,root,root) %dir %{_localstatedir}/log/%{name} %attr(711,root,root) %dir %{_localstatedir}/lib/%{name} %dnl ---------------------------------------------------------------------------- %package client Summary: Container hypervisor based on LXC - Client License: Apache-2.0 Requires: gettext %description client Incus offers a REST API to remotely manage containers over the network, using an image based work-flow and with support for live migration. This package contains the command line client. %files client -f incus.lang %license %{golicenses} %{_bindir}/%{name} %dir %{bashcompletiondir} %{bashcompletiondir}/%{name} %dir %{fish_completions_dir} %{fish_completions_dir}/%{name}.fish %dir %{zsh_completions_dir} %{zsh_completions_dir}/_%{name} %{_mandir}/man1/%{name}*.1.* %exclude %{_mandir}/man1/incusd*.1.* %exclude %{_mandir}/man1/incus-agent.1.* %exclude %{_mandir}/man1/incus-benchmark.1.* %exclude %{_mandir}/man1/incus-migrate.1.* %exclude %{_mandir}/man1/lxc-to-incus.1.* %dnl ---------------------------------------------------------------------------- %package tools Summary: Container hypervisor based on LXC - Extra Tools License: Apache-2.0 Requires: incus%{?_isa} = %{version}-%{release} # fuidshift is also shipped with lxd Conflicts: lxd-tools %description tools Incus offers a REST API to remotely manage containers over the network, using an image based work-flow and with support for live migration. This package contains extra tools provided with Incus. - fuidshift - A tool to map/unmap filesystem uids/gids - lxc-to-incus - A tool to migrate LXC containers to Incus - incus-benchmark - A Incus benchmark utility - incus-migrate - A physical to container migration tool %files tools %license %{golicenses} %{_bindir}/fuidshift %{_bindir}/incus-benchmark %{_bindir}/incus-migrate %{_bindir}/lxc-to-incus %{_mandir}/man1/fuidshift.1.* %{_mandir}/man1/incus-benchmark.1.* %{_mandir}/man1/incus-migrate.1.* %{_mandir}/man1/lxc-to-incus.1.* %dnl ---------------------------------------------------------------------------- %package agent Summary: Incus guest agent License: Apache-2.0 # Virtual machine support requires additional packages Recommends: edk2-ovmf Recommends: xorriso Recommends: qemu-audio-spice Recommends: qemu-char-spice Recommends: qemu-device-display-virtio-vga Recommends: qemu-device-display-virtio-gpu Recommends: qemu-device-usb-redirect Recommends: qemu-img Recommends: qemu-kvm-core %description agent This packages provides an agent to run inside Incus virtual machine guests. It has to be installed on the Incus host if you want to allow agent injection capability when creating a virtual machine. %files agent %license %{golicenses} %{_bindir}/incus-agent %{_mandir}/man1/incus-agent.1.* %dnl ---------------------------------------------------------------------------- %package ui # Epoch bump: the previous NVR scheme tied incus-ui's version to Incus's # (e.g. 7.2-8), which sorts higher than the new upstream UI tag (0.21.4). # Without this, dnf would see the new NVR as a downgrade and skip it. # DO NOT remove or lower this once released: dropping it back to the # implicit epoch 0 would recreate the same downgrade problem in reverse # for anyone who installed an epoch-1 build. Epoch: 1 Version: %{ui_version} Release: %{ui_release}%{?dist} Summary: Incus web management UI # The Canonical LXD UI (on which this is based) is AGPL-3.0 License: AGPL-3.0-only BuildArch: noarch Requires: %{name} = %{incus_version}-%{incus_release} %description ui Web-based graphical user interface for managing Incus containers and virtual machines. Based on the Canonical LXD UI adapted for Incus. After installing, restart the incus service to activate the UI: systemctl restart incus.service The UI is then accessible through the Incus HTTPS API endpoint. %files ui %license %{golicenses} %{_datadir}/%{name}/ui/ %{_unitdir}/%{name}.service.d/ui.conf # Restore %%epoch/%%version/%%release to the daemon's values for the rest of # the spec (%%package doc, %%prep, %%build, %%install, %%check, %%changelog) %global epoch %{incus_epoch} %global version %{incus_version} %global release %{incus_release} %dnl ---------------------------------------------------------------------------- %if %{with doc} %package doc Summary: Container hypervisor based on LXC - Documentation # This project is Apache-2.0. Other files bundled with the documentation have the # following licenses: # - _static/basic.css: BSD-2-Clause # - _static/clipboard.min.js: MIT # - _static/copy*: MIT # - _static/doctools.js: BSD-2-Clause # - _static/*/furo*: MIT # - _static/jquery*.js: MIT # - _static/language_data.js: BSD-2-Clause # - _static/pygments.css: BSD-2-Clause # - _static/searchtools.js: BSD-2-Clause # - _static/swagger-ui/*: Apache-2.0 # - _static/underscore*.js: MIT License: Apache-2.0 AND BSD-2-Clause AND MIT BuildArch: noarch BuildRequires: python3-furo BuildRequires: python3-linkify-it-py BuildRequires: python3-lxd-sphinx-extensions BuildRequires: python3-myst-parser BuildRequires: python3-sphinx BuildRequires: python3-sphinx-copybutton BuildRequires: python3-sphinx-design BuildRequires: python3-sphinx-notfound-page BuildRequires: python3-sphinx-remove-toctrees BuildRequires: python3-sphinx-reredirects BuildRequires: python3-sphinx-tabs BuildRequires: python3-sphinxcontrib-devhelp BuildRequires: python3-sphinxext-opengraph %description doc Incus offers a REST API to remotely manage containers over the network, using an image based work-flow and with support for live migration. This package contains user documentation. %files doc %license %{golicenses} %doc doc/html %endif %dnl ---------------------------------------------------------------------------- %prep %goprep -k %autopatch -v -p1 # Extract pre-built web UI tar xJf %{SOURCE301} %build export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" # Build module-aware (GO111MODULE=on -mod=vendor) instead of %%gomodulesmode # (GO111MODULE=off / GOPATH mode). In GOPATH mode the go.mod "go" directive is # ignored, so the binaries are linked with the legacy go1.21 GODEBUG profile # (httpmuxgo121=1). Incus 7.2 routes its REST API with the stdlib http.ServeMux # and {name} wildcard patterns (Go 1.22+); httpmuxgo121=1 reverts to literal # matching, making every by-name route (e.g. GET /1.0/instances/{name}) return # 404. Building module-aware honors go.mod (go 1.25) and restores the modern # GODEBUG profile. Paths must be relative to the module root. export GOFLAGS="-mod=vendor" %global gomodulesmode GO111MODULE=on pushd %{currentgosourcedir} for cmd in incusd incus-user; do BUILDTAGS="libsqlite3" %gobuild -o %{gobuilddir}/lib/$cmd ./cmd/$cmd done for cmd in incus fuidshift incus-benchmark lxc-to-incus; do BUILDTAGS="libsqlite3" %gobuild -o %{gobuilddir}/bin/$cmd ./cmd/$cmd done popd # Build incus-migrate and incus-agent statically (cf. rhbz#2419661) # Uses GO111MODULE=on -mod=vendor, so paths must be relative to module root pushd %{currentgosourcedir} BUILDTAGS="netgo" %gobuild_static -o %{gobuilddir}/bin/incus-migrate ./cmd/incus-migrate BUILDTAGS="agent netgo" %gobuild_static -o %{gobuilddir}/bin/incus-agent ./cmd/incus-agent popd # build shell completions mkdir %{gobuilddir}/completions %{gobuilddir}/bin/%{name} completion bash > %{gobuilddir}/completions/%{name}.bash %{gobuilddir}/bin/%{name} completion fish > %{gobuilddir}/completions/%{name}.fish %{gobuilddir}/bin/%{name} completion zsh > %{gobuilddir}/completions/%{name}.zsh %if %{with docs} # build documentation mkdir -p doc/.sphinx/_static/swagger-ui install -pm 0644 %{SOURCE201} doc/.sphinx/_static/swagger-ui/swagger-ui-bundle.js install -pm 0644 %{SOURCE202} doc/.sphinx/_static/swagger-ui/swagger-ui-standalone-preset.js install -pm 0644 %{SOURCE203} doc/.sphinx/_static/swagger-ui//swagger-ui.css sed -i 's|^path.*$|path = "%{gobuilddir}"|' doc/conf.py sphinx-build -c doc/ -b dirhtml doc/ doc/html/ rm -vrf doc/html/{.buildinfo,.doctrees} # remove duplicate files rm -vrf doc/html/{_sources,_sphinx_design_static} %endif # build translations rm -f po/zh_Hans.po po/zh_Hant.po # remove invalid locales make %{?_smp_mflags} build-mo # generate man-pages mkdir %{gobuilddir}/man %{gobuilddir}/bin/incus manpage %{gobuilddir}/man/ %{gobuilddir}/lib/incusd manpage %{gobuilddir}/man/ help2man %{gobuilddir}/bin/fuidshift -n "uid/gid shifter" --no-info --no-discard-stderr > %{gobuilddir}/man/fuidshift.1 help2man %{gobuilddir}/bin/incus-benchmark -n "The container lightervisor - benchmark" --no-info --no-discard-stderr > %{gobuilddir}/man/incus-benchmark.1 help2man %{gobuilddir}/bin/incus-migrate -n "Physical to container migration tool" --no-info --no-discard-stderr > %{gobuilddir}/man/incus-migrate.1 help2man %{gobuilddir}/bin/lxc-to-incus -n "Convert LXC containers to Incus" --no-info --no-discard-stderr > %{gobuilddir}/man/lxc-to-incus.1 help2man %{gobuilddir}/bin/incus-agent -n "Incus virtual machine guest agent" --no-info --no-discard-stderr > %{gobuilddir}/man/incus-agent.1 %install # install binaries install -d %{buildroot}%{_bindir} install -m0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ # install systemd units install -d %{buildroot}%{_unitdir} install -m0644 -vp %{SOURCE101} %{buildroot}%{_unitdir}/ install -m0644 -vp %{SOURCE102} %{buildroot}%{_unitdir}/ install -m0644 -vp %{SOURCE103} %{buildroot}%{_unitdir}/ install -m0644 -vp %{SOURCE104} %{buildroot}%{_unitdir}/ install -m0644 -vp %{SOURCE105} %{buildroot}%{_unitdir}/ install -D -m0644 -vp %{SOURCE106} %{buildroot}%{_sysusersdir}/%{name}.conf install -D -m0644 -vp %{SOURCE107} %{buildroot}%{_tmpfilesdir}/%{name}.conf # extra configs install -D -m0644 -vp %{SOURCE108} %{buildroot}%{_sysconfdir}/dnsmasq.d/%{name}.conf install -D -m0644 -vp %{SOURCE109} %{buildroot}%{_sysctldir}/10-incus-inotify.conf # install helper libs install -d %{buildroot}%{_libexecdir}/%{name} install -m0755 -vp %{SOURCE110} %{buildroot}%{_libexecdir}/%{name}/ install -m0755 -vp %{gobuilddir}/lib/* %{buildroot}%{_libexecdir}/%{name}/ # install manpages install -d %{buildroot}%{_mandir}/man1 cp -p %{gobuilddir}/man/*.1 %{buildroot}%{_mandir}/man1/ # install shell completions install -D -m0644 -vp %{gobuilddir}/completions/%{name}.bash %{buildroot}%{bashcompletiondir}/%{name} install -D -m0644 -vp %{gobuilddir}/completions/%{name}.fish %{buildroot}%{fish_completions_dir}/%{name}.fish install -D -m0644 -vp %{gobuilddir}/completions/%{name}.zsh %{buildroot}%{zsh_completions_dir}/_%{name} # cache and log directories install -d -m0700 %{buildroot}%{_localstatedir}/cache/%{name} install -d -m0700 %{buildroot}%{_localstatedir}/log/%{name} install -d -m0711 %{buildroot}%{_localstatedir}/lib/%{name} # web UI install -d %{buildroot}%{_datadir}/%{name}/ui cp -rp incus-ui-%{ui_version}/. %{buildroot}%{_datadir}/%{name}/ui/ install -D -m0644 -vp %{SOURCE111} %{buildroot}%{_unitdir}/%{name}.service.d/ui.conf # language files for mofile in po/*.mo ; do install -D -m0644 -vp ${mofile} %{buildroot}%{_datadir}/locale/$(basename ${mofile%%.mo})/LC_MESSAGES/%{name}.mo done %find_lang incus %if %{with check} %check export GOPATH=%{buildroot}/%{gopath}:%{gopath} export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" # Add libsqlite3 tag to go test %define gotestflags -buildmode pie -compiler gc -v -tags libsqlite3 # Only run tests on aarch64 and x86_64 — emulated arches (s390x, riscv64, ppc64le) # and 32-bit (i686) are unreliable (timeouts, crashes) %ifarch aarch64 x86_64 %gocheck -v -t %{goipath}/test \ -d %{goipath}/cmd/lxc-to-incus # lxc-to-incus test fails, see ganto/copr-lxc4#23 %endif %endif %changelog * Fri Aug 28 2026 Julien RAVAIAU - 7.4-1 - Update to Incus 7.4 - Bump incus-ui 0.21.5 -> 0.21.6 * Fri Jul 31 2026 Julien RAVAIAU - 7.3-1 - Update to Incus 7.3 - Drop backport patches for issues 3558, 3602, 3638, 3625, 3618 and 3613, now fixed upstream in the incus-7.3 milestone * Mon Jul 20 2026 Julien RAVAIAU - 7.2-11 - Version incus-ui subpackage independently of the Incus version, tracking its own upstream UI tag instead - Bump incus-ui epoch to 1 so dnf does not treat the new NVR as a downgrade from previously-shipped incus-ui-7.2-* builds - Bump incus-ui 0.21.4 -> 0.21.5 * Mon Jul 20 2026 Julien RAVAIAU - 7.2-10 - Revert: drop 7.2-9 backports (incus#3669, incus#3658, incus#3654, incus#3642, incus#3614), release was broken * Mon Jul 20 2026 Julien RAVAIAU - 7.2-9 - Backport: fix double-unlock in GetInstanceNBD freeing other operations' locks (incus#3669) - Backport: fix btrfs image volume left as plain directory on first-ever unpack (incus#3658) - Backport: fix NBD all-disks teardown not committing ephemeral overlay, causing lost writes (incus#3654) - Backport: only retry TLS dial on certificate verification errors (incus#3642) - Backport: fix incus.exe file push --create-dirs doing nothing on Windows (incus#3614) * Wed Jul 15 2026 Julien RAVAIAU - 7.2-8 - Backport: fix seccomp mknod interception for non-leader threads, breaks Docker whiteouts (incus#3638) - Backport: fix ZFS incus copy --refresh failing with out of space (incus#3625) - Backport: fix concurrent map read/write crash in dev_incus.go (incus#3618) - Backport: fix mknod emulation for relative paths (incus#3613) - Bump incus-ui 0.21.3 -> 0.21.4 * Wed Jul 08 2026 Julien RAVAIAU - 7.2-7 - Backport upstream fix: VMs with explicit CPU pinning could not be stateful stopped or migrated (incus#3602) * Mon Jul 06 2026 Julien RAVAIAU - 7.2-6 - update incus-ui to 0.21.3 * Sun Jul 05 2026 Julien RAVAIAU - 7.2-5 - backport: fix QMP monitor timeout causing silent VM to hang instance rendering (upstream#cce895d, incus#3558) * Sat Jun 27 2026 Julien RAVAIAU - 7.2-4 - Build dynamic binaries module-aware (GO111MODULE=on -mod=vendor) so the go.mod "go" directive is honored; GOPATH mode linked them with the legacy go1.21 GODEBUG profile (httpmuxgo121=1), breaking the stdlib http.ServeMux {name} routing introduced in 7.2 (every by-name API route returned 404) * Sat Jun 27 2026 Julien RAVAIAU - 7.2-3 - Disable test suite (check bcond off): integration tests incompatible with COPR build environment * Fri Jun 26 2026 Julien RAVAIAU - 7.2-2 - Run the full test suite; clustering and DevIncus integration tests pass under COPR simple-chroot build isolation (no longer require skipping) * Fri Jun 26 2026 Julien RAVAIAU - 7.2-1 - Update to upstream release 7.2 - Drop lxd-to-incus (removed upstream in 7.2, incus@fe296b7) * Mon Jun 22 2026 Julien RAVAIAU - 7.1-5 - backport: fix routed NIC VLAN-backed IPv6 NDP proxy on wrong interface (incus#3485) - backport: fix IPv6 disabled returns nil to OVN on Alpine Linux (incus#3480) - backport: fix VM max name length not accounting for unix socket path limit (incus#3459) * Mon Jun 08 2026 Julien RAVAIAU - 7.1-4 - backport: set expiration on OIDC authentication cookies (upstream#d4e1e5003492, incus#3454) - backport: fix VM creation from raw image without GPT structure (upstream#b9cfdafacaec, incus#3450) * Fri Jun 05 2026 Julien RAVAIAU - 7.1-3 - backport: fix no chassis found on OVN uplink network change (incus#3445) - backport: fix admin recover fails on custom storage volume (incus#3429) * Wed Jun 03 2026 Julien Ravaïau - 7.1-2 - backport: remove stale migrate.sock before qcow2 export (upstream#89c7b49297a0, incus#3447) - backport: fix qcow2 custom volume backups (upstream#05150c5df688, incus#3446) - backport: zfs refuse refresh when snapshots lack common base, avoid destroying target (upstream#e03ff38e675b, incus#3330) * Fri May 29 2026 Julien Ravaïau - 7.1-1 - Update to upstream release 7.1 * Tue May 05 2026 Julien Ravaïau - 7.0.0-6 - backport: QEMU 11 zero-blocks migration cap removed (upstream#a20e4528c16a, incus#3316) - backport: dns.nameservers on bridge breaks with ACL NIC (upstream#33ffcf71745e, incus#3307) - backport: can't edit ACL with shared project bridge NIC ACL (upstream#672c2da2d09e, incus#3306) - backport: force delete project fails with duplicate volume name on cluster (upstream#25d9e703eee6, incus#3260) * Tue May 05 2026 Julien Ravaïau - 7.0.0-5 - Skip tests on ppc64le (emulated COPR builder); run only on aarch64 and x86_64 * Mon May 04 2026 Julien Ravaïau - 7.0.0-4 - Replace downstream SetMemorySwappiness no-op patch with upstream fix (stgraber 5f2cdf75, incus#3300): ignore ErrControllerMissing in driver_lxc.go callers instead of stubbing the cgroup abstraction - Fix QEMU version detection on systems using /usr/libexec/qemu-kvm, causing wrong flags at VM startup (stgraber a5f50d36, incus#3302) - Re-introduce core scheduling kernel detection; some environments fail to set it up even on recent kernels (stgraber 1e6ce18e, incus#3304) * Sat May 02 2026 Julien Ravaïau - 7.0.0-3 - Fix container startup failure with limits.memory.swap=false on cgroup v2 * Sat May 02 2026 Julien Ravaïau - 7.0.0-2 - Skip tests on i686 (cluster tests crash with SIGSEGV on 32-bit) * Sat May 02 2026 Julien Ravaïau - 7.0.0-1 - Update to 7.0.0 LTS - Drop patch incus-6.23-incusd-Fix-bad-type-in-format-strings.patch (merged upstream) * Sun Apr 12 2026 Julien Ravaïau - 6.23-9 - Skip tests on s390x and riscv64 (emulated COPR builders, unreliable) * Sun Apr 12 2026 Julien Ravaïau - 6.23-8 - Pre-build incus-ui tarball via build-incus-ui.sh instead of building during RPM build - Drop nodejs, nodejs-npm, yarnpkg BuildRequires (fixes yarn network timeout on RISC-V COPR builders) * Fri Apr 10 2026 Julien Ravaïau - 6.23-7 - Remove incus dependency from incus-agent (rhbz#2456888) * Fri Apr 10 2026 Julien Ravaïau - 6.23-6 - Add root subuid/subgid ranges in %%post for unprivileged container support * Fri Apr 10 2026 Julien Ravaïau - 6.23-5 - Build incus-ui from source (zabbly/incus-ui-canonical v0.19.9) instead of extracting from Zabbly .deb * Mon Apr 06 2026 Julien Ravaïau - 6.23-4 - Add incus-ui subpackage with web management interface * Mon Apr 06 2026 Julien Ravaïau - 6.22-3 - Upstream Fedora finally fixed : merge code to this COPR * Mon Apr 06 2026 Reto Gantenbein - 6.23-2 - Fix static builds of vendored dependencies (RHBZ 2419661) * Mon Apr 06 2026 Reto Gantenbein - 6.23-1 - Update to 6.23 * Mon Mar 30 2026 Neal Gompa - 6.19.1-4 - Drop selinux subpackage in favor of container-selinux * Wed Mar 25 2026 Julien Ravaïau - 6.22-2 - Fix wrong fmt verbs (%q on numeric types) in 3 files (fix-fmt-verbs) * Sun Mar 01 2026 Julien Ravaïau - 6.22-1 - Update to 6.22 * Tue Feb 03 2026 Maxwell G - 6.19.1-3 - Rebuild for https://fedoraproject.org/wiki/Changes/golang1.26 * Thu Jan 29 2026 Julien Ravaïau - 6.21-1 - Update to 6.21 - Fix incus-agent websocket handshake: use GO111MODULE=on -mod=vendor in gobuild_static * Fri Jan 16 2026 Fedora Release Engineering - 6.19.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Wed Dec 10 2025 Robby Callicotte - 6.19.1-1 - Update to 6.19.1 * Sun Dec 07 2025 Neal Gompa - 6.18-3 - Build incus-migrate and incus-migrate with cgo disabled * Sat Dec 06 2025 Neal Gompa - 6.18-2 - Build incus-agent as a fully statically linked binary (rhbz#2419661) * Mon Nov 03 2025 Robby Callicotte - 6.18-1 - Updated to incus-6.18 * Fri Oct 10 2025 Alejandro Sáez - 6.15-3 - rebuild * Fri Aug 15 2025 Maxwell G - 6.15-2 - Rebuild for golang-1.25.0 * Sun Aug 03 2025 Robby Callicotte - 6.15-1 - Updated to incus-6.15 * Thu Jul 24 2025 Fedora Release Engineering - 6.14-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Mon Jun 30 2025 Robby Callicotte - 6.14-1 - Updated to incus-6.14 - Added patch for non-constant format strings * Fri May 30 2025 Robby Callicotte - 6.13-1 - Updated to incus-6.13 * Mon May 05 2025 Reto Gantenbein - 6.12-1 - Update to incus-6.12 * Fri Jan 17 2025 Fedora Release Engineering - 6.8-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Wed Dec 18 2024 Neal Gompa - 6.8-1 - Update to 6.8 - Another fix for incus socket * Thu Jul 18 2024 Fedora Release Engineering - 6.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Tue Jul 02 2024 Neal Gompa - 6.2-2 - Drop devel subpackage * Thu Jun 06 2024 Neal Gompa - 6.2-1 - Update to 6.2 * Thu May 16 2024 Fabian Mettler - 6.1.0-1 - Update to 6.1.0 * Sat Apr 27 2024 Neal Gompa - 6.0.0-1 - Update to 6.0.0 - Move libexec content to libexecdir - Move sockets to rundir * Wed Mar 27 2024 Neal Gompa - 0.7-1 - Update to 0.7 * Thu Feb 29 2024 Neal Gompa - 0.6-1 - Update to 0.6 * Fri Jan 26 2024 Neal Gompa - 0.5-1 - Update to 0.5 - Disable building documentation - Restructure packaging to be easier to conditionalize * Wed Jan 10 2024 Reto Gantenbein 0.4-0.4 - Add incus-selinux sub package * Thu Dec 28 2023 Reto Gantenbein 0.4-0.3 - Fix typo in tmpfiles config * Wed Dec 27 2023 Reto Gantenbein 0.4-0.2 - Use systemd sysusers/tmpfiles - Update dependencies to use 'Recommends' - Remove unneeded incus-agent script and systemd unit * Thu Dec 21 2023 Reto Gantenbein 0.4-0.1 - Update to 0.4 - Update swagger-ui to v5.10.5 * Fri Nov 10 2023 Reto Gantenbein 0.2-0.2 - Fix envvar for OVMF and documentation * Mon Oct 30 2023 Reto Gantenbein 0.2-0.1 - Update to 0.2 - Update swagger-ui to v5.9.1 * Sun Oct 15 2023 Reto Gantenbein 0.1-0.2 - Fix libdir path * Sun Oct 15 2023 Reto Gantenbein 0.1-0.1 - Initial package