[packages/incus] - updated to 7.1 - systemd units copied from Debian
witekfl
witekfl at pld-linux.org
Sat Jun 6 19:31:08 CEST 2026
commit 1e7b2e724608c242afa7be1cd70f7b23471b07a4
Author: Witold Filipczyk <witekfl at poczta.onet.pl>
Date: Sat Jun 6 19:30:06 2026 +0200
- updated to 7.1
- systemd units copied from Debian
incus-agent.service | 16 ++++++++++++++++
incus-startup.service | 16 ++++++++++++++++
incus-user.service | 14 ++++++++++++++
incus-user.socket | 13 +++++++++++++
incus.service | 31 +++++++++++++++++-------------
incus.socket | 13 +++++++++++++
incus.spec | 53 ++++++++++++++++++++++++++++++++++++++-------------
7 files changed, 130 insertions(+), 26 deletions(-)
---
diff --git a/incus.spec b/incus.spec
index 9660575..c1bec01 100644
--- a/incus.spec
+++ b/incus.spec
@@ -1,16 +1,21 @@
# TODO: proper gid, uid, etc.
Summary: Fast, dense and secure container and virtual machine management
Name: incus
-Version: 7.0.0
+Version: 7.1.0
Release: 0.1
License: Apache v2.0
Group: Applications/System
Source0: https://github.com/lxc/incus/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 4f080d5ab0bd4c8022dbb796f97f31ff
+# Source0-md5: cd2b63449151e28be459e3517eb772f4
Source1: %{name}.service
Source2: %{name}.init
Source3: %{name}.sysconfig
Source4: %{name}.sh
+Source5: %{name}-user.service
+Source6: %{name}-user.socket
+Source7: %{name}.socket
+Source8: %{name}-startup.service
+Source9: %{name}-agent.service
URL: http://linuxcontainers.org/
BuildRequires: acl-devel
BuildRequires: cowsql-devel >= 1.15.9
@@ -47,8 +52,8 @@ ExclusiveArch: %{ix86} %{x8664} %{arm}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _enable_debug_packages 0
-%define gobuild(o:tags:) go build -ldflags "${GO_LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**};
-%define goinstall go install -ldflags "${GO_LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v
+%define gobuild(o:tags:) ggo build -ldflags "${GO_LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**};
+%define goinstall go install -ldflags "${GO_LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v
%define gopath %{_libdir}/golang
%define import_path github.com/lxc/incus
%define _libexecdir %{_prefix}/lib
@@ -96,7 +101,7 @@ export GOBIN=$GOPATH/bin
export CGO_LDFLAGS_ALLOW="-Wl,-z,now"
# linux agents
-CGO_ENABLED=0 GO_LDFLAGS= %gobuild -o bin/ -tags=agent,netgo ./cmd/incus-agent/...
+CGO_ENABLED=0 GO_LDFLAGS="" %gobuild -o bin/ -tags=agent,netgo ./cmd/incus-agent/...
export GO_LDFLAGS="-compressdwarf=false -linkmode external"
export GOFLAGS="-buildmode=pie -modcacherw"
@@ -135,29 +140,46 @@ done
./bin/incus completion fish | install -Dm644 /dev/stdin "$RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/incus.fish"
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}
-install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+#install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
install -p %{SOURCE4} $RPM_BUILD_ROOT%{_libexecdir}/incus-wrapper
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE8} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdunitdir}
+
%pre
%groupadd -g 273 %{name}
+%groupadd -g 274 %{name}-admin
%post
-/sbin/chkconfig --add %{name}
-%service -n %{name} restart
+#/sbin/chkconfig --add %{name}
+#%%service -n %{name} restart
+%systemd_post %{name}.socket
+%systemd_post %{name}-user.socket
+%systemd_post %{name}-startup.service
%systemd_post %{name}.service
+%systemd_post %{name}-user.service
%preun
-if [ "$1" = "0" ]; then
- %service -q %{name} stop
- /sbin/chkconfig --del %{name}
-fi
+#if [ "$1" = "0" ]; then
+# %%service -q %{name} stop
+# /sbin/chkconfig --del %{name}
+#fi
%systemd_preun %{name}.service
+%systemd_preun %{name}-user.service
+%systemd_preun %{name}-startup.service
+%systemd_preun %{name}.socket
+%systemd_preun %{name}-user.socket
+
%postun
if [ "$1" = "0" ]; then
+ %groupremove %{name}-admin
%groupremove %{name}
fi
%systemd_reload
@@ -169,12 +191,16 @@ rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%doc AUTHORS doc/*
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
-%attr(754,root,root) /etc/rc.d/init.d/%{name}
+#%%attr(754,root,root) /etc/rc.d/init.d/%{name}
%attr(755,root,root) %{_bindir}/incus
%attr(755,root,root) %{_bindir}/incusd
%attr(755,root,root) %{_bindir}/incus-simplestreams
%attr(755,root,root) %{_bindir}/incus-user
%{systemdunitdir}/%{name}.service
+%{systemdunitdir}/%{name}.socket
+%{systemdunitdir}/%{name}-user.service
+%{systemdunitdir}/%{name}-user.socket
+%{systemdunitdir}/%{name}-startup.service
%dir %attr(750,root,root) %{_libdir}/%{name}
%dir %attr(750,root,root) %{_libdir}/%{name}/rootfs
%attr(750,root,root) %{_libexecdir}/%{name}-wrapper
@@ -192,6 +218,7 @@ rm -rf $RPM_BUILD_ROOT
%files agent
%defattr(644,root,root,755)
%attr(755,root,root) %{_libexecdir}/incus/agents/incus-agent*
+%{systemdunitdir}/%{name}-agent.service
%files tools
%defattr(644,root,root,755)
diff --git a/incus-agent.service b/incus-agent.service
new file mode 100644
index 0000000..54bf28b
--- /dev/null
+++ b/incus-agent.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Incus - agent
+Documentation=man:incus-agent(1)
+ConditionPathExists=/dev/virtio-ports/org.linuxcontainers.incus
+Before=multi-user.target cloud-init.target cloud-init.service cloud-init-local.service
+DefaultDependencies=no
+
+[Service]
+Type=notify
+WorkingDirectory=-/run/incus_agent
+ExecStartPre=/usr/libexec/incus/incus-agent-setup
+ExecStart=/usr/libexec/incus/incus-agent
+Restart=on-failure
+RestartSec=5s
+StartLimitInterval=60
+StartLimitBurst=10
diff --git a/incus-startup.service b/incus-startup.service
new file mode 100644
index 0000000..856c704
--- /dev/null
+++ b/incus-startup.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Incus - Startup check
+Documentation=man:incusd(1)
+After=incus.socket incus.service
+Requires=incus.socket
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/incus/incusd activateifneeded
+ExecStop=/usr/libexec/incus/shutdown
+TimeoutStartSec=600s
+TimeoutStopSec=600s
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/incus-user.service b/incus-user.service
new file mode 100644
index 0000000..32cc13c
--- /dev/null
+++ b/incus-user.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Incus - User daemon
+After=incus.service incus-user.socket
+Requires=incus.service incus-user.socket
+Documentation=man:incus-user(1)
+
+[Service]
+EnvironmentFile=-/etc/environment
+EnvironmentFile=/etc/sysconfig/incus
+ExecStart=/usr/libexec/incus/incus-user --group incus
+Restart=on-failure
+
+[Install]
+Also=incus-user.socket
diff --git a/incus-user.socket b/incus-user.socket
new file mode 100644
index 0000000..285c909
--- /dev/null
+++ b/incus-user.socket
@@ -0,0 +1,13 @@
+[Unit]
+Description=Incus - Daemon (user unix socket)
+Documentation=man:incus-user(1)
+
+[Socket]
+FileDescriptorName=unix
+ListenStream=/var/lib/incus/unix.socket.user
+SocketGroup=incus
+SocketMode=0660
+Service=incus-user.service
+
+[Install]
+WantedBy=sockets.target
diff --git a/incus.service b/incus.service
index ddbbfd2..8490aec 100644
--- a/incus.service
+++ b/incus.service
@@ -1,19 +1,24 @@
[Unit]
-Description=Incus Container Hypervisor
-Documentation=http://linuxcontainers.org
-After=network.target
+Description=Incus - Main daemon
+After=network-online.target openvswitch-switch.service lxcfs.service incus.socket
+Requires=network-online.target lxcfs.service incus.socket
+Documentation=man:incusd(1)
[Service]
-Type=simple
-ExecStart=/usr/bin/incusd daemon
-ExecStop=/usr/bin/incusd shutdown
-ExecReload=/bin/kill -s HUP $MAINPID
-LimitNOFILE=infinity
-LimitNPROC=infinity
-LimitCORE=infinity
-TimeoutStartSec=0
-Delegate=yes
+EnvironmentFile=/etc/sysconfig/incus
+EnvironmentFile=-/etc/environment
+ExecStartPre=/usr/libexec/incus/incus-apparmor-load
+ExecStartPre=/bin/mkdir -p /var/log/incus/
+ExecStartPre=/bin/chown -R root:incus-admin /var/log/incus/
+ExecStart=/usr/libexec/incus/startup
+ExecStartPost=/usr/libexec/incus/incusd waitready --timeout=600
KillMode=process
+TimeoutStartSec=600s
+TimeoutStopSec=330s
+Restart=on-failure
+LimitNOFILE=1048576
+LimitNPROC=infinity
+TasksMax=infinity
[Install]
-WantedBy=multi-user.target
+Also=incus-startup.service incus.socket
diff --git a/incus.socket b/incus.socket
new file mode 100644
index 0000000..0b2aa8d
--- /dev/null
+++ b/incus.socket
@@ -0,0 +1,13 @@
+[Unit]
+Description=Incus - Daemon (unix socket)
+Documentation=man:incusd(1)
+
+[Socket]
+FileDescriptorName=unix
+ListenStream=/var/lib/incus/unix.socket
+SocketGroup=incus-admin
+SocketMode=0660
+Service=incus.service
+
+[Install]
+WantedBy=sockets.target
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/incus.git/commitdiff/1e7b2e724608c242afa7be1cd70f7b23471b07a4
More information about the pld-cvs-commit
mailing list