Hi all,

I'm attaching an updated version of the patches where
stop actions are turned into no-op

On Mon, 01 Jun 2026 22:21:24 +0200
Matthias Geiger <[email protected]> wrote:

> Control: tag -1 upstream

> I would suggest that you reach out to upstream; they have been very 
> helpful in getting bugs fixed, and also state that they will merge
> any needed tmpfiles config.
> seedfiles is also still very new, so the issue with --clean in /run 
> should best also be discussed upstream.

I've checked all tmpfiles.conf in my system and I think seedfiles does
the right thing (given the tmpfiles.d format) so I don't know what to
report upstream.
My issues was more with tmpfiles.conf files shipped in Debian by
several packages and the idea was that we can slightly change the way
systemd-tmpfiles/seedfiles is called at boot to adjust the behavior
according to our preferences; IMHO this is a Debian discussion, not
an upstream one.

> Once those questions are 
> resolved I am happy to include an init script.

By CC'ing the list I was hoping to hear opinions from Openrc and
Sysvinit Maintainers, I think the following questions are open:

1. do we want to add a common boot script (will work for Sysvinit,
   Openrc and runit) to seedfiles/standalone-tmpfiles or we prefer to
   delegate this to each init package?

2. if 1=yes, do we agree on the set of options to use? for example,
   exclude /dev ?
   maybe exclude /run and /tmp from cleanup could be a thing?

If there is not agreement on 2. it's better to not ship the script in
seedfiles and delegate to each init package.

My preference as runit maintainer is:
   - exclude /dev from files creation (delegate to each init);
   - I don't like the flood on /run, but I can live with it;
   - I don't see the use of cleaning in /run, it's a tmpfs here, but
     maybe I'm missing something
   - I suspect users can be surprised and very unhappy of
     time-based (ie older that 10d or 20d) clean up in /tmp and I'm not
     sure what to do with /tmp

If there is no interest in discussing this right now I suggest to either
won't fix it or leave it open until some service will start to fail due
to missing call of tmpfiles at boot, and restart the discussion then.

Best,
Lorenzo

> 
> best,
> 
> werdahias
>From d5fefff07c9f480f95392eae578d8e4c44b90904 Mon Sep 17 00:00:00 2001
From: Lorenzo Puliti <[email protected]>
Date: Mon, 1 Jun 2026 01:15:15 +0200
Subject: [PATCH 1/2] Add scripts for boot clean and setup

add seedfiles-clean and seedfiles-setup initscripts;
d/rules: by default don't start after install (pointless since they
should only run during boot and shutdown)
Use the seedfiles. prefix for scripts in debian/ to make dh happy
and avoid the warning
"Named prefix-less debhelper config files will trigger an error
in compat 15 or later"
---
 debian/rules                          |  4 ++
 debian/seedfiles.seedfiles-clean.init | 58 +++++++++++++++++++++++++++
 debian/seedfiles.seedfiles-setup.init | 58 +++++++++++++++++++++++++++
 3 files changed, 120 insertions(+)
 create mode 100755 debian/seedfiles.seedfiles-clean.init
 create mode 100755 debian/seedfiles.seedfiles-setup.init

diff --git a/debian/rules b/debian/rules
index ffd9067..fd66ce0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,3 +5,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
 %:
 		dh $@
+
+override_dh_installinit:
+	dh_installinit --name=seedfiles-clean --no-start
+	dh_installinit --name=seedfiles-setup --no-start
diff --git a/debian/seedfiles.seedfiles-clean.init b/debian/seedfiles.seedfiles-clean.init
new file mode 100755
index 0000000..fdc7d93
--- /dev/null
+++ b/debian/seedfiles.seedfiles-clean.init
@@ -0,0 +1,58 @@
+#! /bin/sh
+#
+### BEGIN INIT INFO
+# Provides:          seedfiles-clean
+# Required-Start:    $network $remote_fs $syslog
+# Required-Stop:     $network $remote_fs
+# Default-Start:     S
+# Default-Stop:      0 6
+# Short-Description: temporary files and dir cleanup
+### END INIT INFO
+#
+
+# Copyright: 2020,2026 Lorenzo Puliti <[email protected]>
+# License: GPL-3+
+# originally written for the Debian opentmpfiles package (BSD-2) in 2020, see
+# https://salsa.debian.org/debian/opentmpfiles/-/merge_requests/1/
+# now adapted and relicensed to GPL-3+ for seedfiles Debian package
+
+. /lib/init/vars.sh
+. /lib/lsb/init-functions
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+NAME=seedfiles-clean
+DESC='seedfiles cleanup service'
+DAEMON=/usr/bin/seedfiles
+
+#removed but not purged case
+[ ! -e "$DAEMON" ] && exit 0
+
+case "$1" in
+	start )
+		if [ "$RUNLEVEL" = "S" ] && [ "$PREVLEVEL" = "N" ]; then
+			install -d /run/seedfiles
+			if "$DAEMON"  --clean ; then
+				touch /run/seedfiles/clean
+				log_success_msg "seedfiles: cleanup complete"
+			else
+				log_failure_msg "seedfiles: cleanup failed"
+			fi
+		fi
+		;;
+	restart | reload | force-reload | stop )
+		# No-op
+		;;
+	status)
+		if [ -e /run/seedfiles/clean ]; then
+                    log_success_msg "seedfiles: clenup already done"
+                else
+                    log_failure_msg "seedfiles: clenup failed"
+                fi
+		;;
+	*)
+		echo "Usage: seedfiles-clean [start|stop|status]" >&2
+		exit 3
+		;;
+esac
+
+:
diff --git a/debian/seedfiles.seedfiles-setup.init b/debian/seedfiles.seedfiles-setup.init
new file mode 100755
index 0000000..f510c83
--- /dev/null
+++ b/debian/seedfiles.seedfiles-setup.init
@@ -0,0 +1,58 @@
+#! /bin/sh
+#
+### BEGIN INIT INFO
+# Provides:          seedfiles-setup
+# Required-Start:    $network $remote_fs $syslog seedfiles-clean
+# Required-Stop:     $network $remote_fs seedfiles-clean
+# Default-Start:     S
+# Default-Stop:      0 6
+# Short-Description: create volatile files and directories
+### END INIT INFO
+#
+
+# Copyright: 2020,2026 Lorenzo Puliti <[email protected]>
+# License: GPL-3+
+# originally written for the Debian opentmpfiles package (BSD-2) in 2020, see
+# https://salsa.debian.org/debian/opentmpfiles/-/merge_requests/1/
+# now adapted and relicensed to GPL-3+ for seedfiles Debian package
+
+. /lib/init/vars.sh
+. /lib/lsb/init-functions
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+NAME=seedfiles-setup
+DESC='seedfiles setup service'
+DAEMON=/usr/bin/seedfiles
+
+#removed but not purged case
+[ ! -e "$DAEMON" ] && exit 0
+
+case "$1" in
+	start )
+		if [ "$RUNLEVEL" = "S" ] && [ "$PREVLEVEL" = "N" ]; then
+			install -d /run/seedfiles
+			if "$DAEMON"  --create --remove --boot --exclude-prefix=/dev ; then
+				touch /run/seedfiles/setup
+				log_success_msg "seedfiles: setup complete"
+			else
+				log_failure_msg "seedfiles: setup failed"
+			fi
+		fi
+		;;
+	restart | reload | force-reload | stop )
+		# No-op
+		;;
+	status)
+		if [ -e /run/seedfiles/setup ]; then
+                    log_success_msg "seedfiles: setup already done"
+                else
+                    log_failure_msg "seedfiles: setup failed"
+                fi
+		;;
+	*)
+		echo "Usage: seedfiles-setup [start|stop|status]" >&2
+		exit 3
+		;;
+esac
+
+:
-- 
2.53.0

>From ae903ebaf54933af53a5c23f3cd01941de0e1ec7 Mon Sep 17 00:00:00 2001
From: Lorenzo Puliti <[email protected]>
Date: Mon, 1 Jun 2026 01:37:17 +0200
Subject: [PATCH 2/2] lintian: override missing-systemd-service

---
 debian/seedfiles.lintian-overrides | 3 +++
 1 file changed, 3 insertions(+)
 create mode 100644 debian/seedfiles.lintian-overrides

diff --git a/debian/seedfiles.lintian-overrides b/debian/seedfiles.lintian-overrides
new file mode 100644
index 0000000..8a4cdf4
--- /dev/null
+++ b/debian/seedfiles.lintian-overrides
@@ -0,0 +1,3 @@
+# seedfiles is for alternative init only, systemd has its own services for this
+seedfiles: missing-systemd-service-for-init.d-rcS-script seedfiles-clean [etc/init.d/seedfiles-clean]
+seedfiles: missing-systemd-service-for-init.d-rcS-script seedfiles-setup [etc/init.d/seedfiles-setup]
-- 
2.53.0

Reply via email to