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

