[PATCH] debian: Replace SysV init script with native systemd unit

Clara Kowalsky <[email protected]> Thu, 30 Jul 2026 17:47:48 +0200
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
Debian trixie warns when relying on the generated compatibility unit for
/etc/init.d/xenomai.

This addresses

systemd-sysv-generator[1423]: SysV service '/etc/init.d/xenomai' lacks a native systemd unit file, automatically generating a unit file for compatibility.
systemd-sysv-generator[1423]: Please update package to include a native systemd unit file.
systemd-sysv-generator[1423]: ⚠ This compatibility logic is deprecated, expect removal soon. ⚠

See #54.

Signed-off-by: Clara Kowalsky <[email protected]>
---
 debian/libxenomai1.xenomai.init    | 36 ------------------------------
 debian/libxenomai1.xenomai.service | 13 +++++++++++
 debian/rules                       |  2 +-
 3 files changed, 14 insertions(+), 37 deletions(-)
 delete mode 100644 debian/libxenomai1.xenomai.init
 create mode 100644 debian/libxenomai1.xenomai.service

diff --git a/debian/libxenomai1.xenomai.init b/debian/libxenomai1.xenomai.init
deleted file mode 100644
index 811fe25fd..000000000
--- a/debian/libxenomai1.xenomai.init
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh -e
-### BEGIN INIT INFO
-# Provides:          xenomai
-# Required-Start:    mountkernfs
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Set Xenomai group
-### END INIT INFO
-
-GROUP=xenomai
-INITNAME=/etc/init.d/xenomai
-FILENAME=/sys/module/xenomai/parameters/allowed_group
-GID=$(getent group $GROUP | cut -d: -f3)
-
-test -e $FILENAME || exit 0
-test -n "$GID" || exit 0
-
-case "$1" in
-  start)
-        echo "$GID" > $FILENAME
-        ;;
-  stop)
-        echo "-1" > $FILENAME
-        ;;
-  restart|force-reload)
-        $0 start
-        ;;
-  *)
-        echo "Usage: $INITNAME {start|stop|restart|force-reload}"
-        exit 1
-        ;;
-esac
-
-exit 0
-
diff --git a/debian/libxenomai1.xenomai.service b/debian/libxenomai1.xenomai.service
new file mode 100644
index 000000000..4494dc00c
--- /dev/null
+++ b/debian/libxenomai1.xenomai.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Set Xenomai group
+ConditionPathExists=/sys/module/xenomai/parameters/allowed_group
+After=systemd-modules-load.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/sh -ec 'gid=$(/usr/bin/getent group xenomai | /usr/bin/cut -d: -f3); [ -n "$gid" ] && echo "$gid" > /sys/module/xenomai/parameters/allowed_group || true'
+ExecStop=/bin/sh -ec 'echo -1 > /sys/module/xenomai/parameters/allowed_group || true'
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/rules b/debian/rules
index 9e56de260..dd52cbaf0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -103,7 +103,7 @@ binary-indep: build install
 binary-arch: build install
 	dh_testdir -a
 	dh_testroot -a
-	dh_installinit -a --name=xenomai
+	dh_installsystemd -a --name=xenomai
 	dh_installman -a
 	dh_installdocs -a -A README
 	dh_link -a
-- 
2.54.0