[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