diff options
-rw-r--r-- | autoscripts/postinst-init | 6 | ||||
-rw-r--r-- | autoscripts/postinst-init-tmpfiles | 5 | ||||
-rwxr-xr-x | dh_installinit | 20 |
3 files changed, 25 insertions, 6 deletions
diff --git a/autoscripts/postinst-init b/autoscripts/postinst-init index f5371ce8..2430b2c0 100644 --- a/autoscripts/postinst-init +++ b/autoscripts/postinst-init @@ -1,10 +1,4 @@ if [ -x "/etc/init.d/#SCRIPT#" ]; then - # In case this system is running systemd, we need to ensure that all - # necessary tmpfiles (if any) are created before starting. - if [ -d /sys/fs/cgroup/systemd ] ; then - systemd-tmpfiles --create >/dev/null || true - fi - update-rc.d #SCRIPT# #INITPARMS# >/dev/null invoke-rc.d #SCRIPT# start || #ERROR_HANDLER# fi diff --git a/autoscripts/postinst-init-tmpfiles b/autoscripts/postinst-init-tmpfiles new file mode 100644 index 00000000..41f738a9 --- /dev/null +++ b/autoscripts/postinst-init-tmpfiles @@ -0,0 +1,5 @@ +# In case this system is running systemd, we need to ensure that all +# necessary tmpfiles (if any) are created before starting. +if [ -d /sys/fs/cgroup/systemd ] ; then + systemd-tmpfiles --create >/dev/null || true +fi diff --git a/dh_installinit b/dh_installinit index f657f85c..2daad639 100755 --- a/dh_installinit +++ b/dh_installinit @@ -8,6 +8,7 @@ dh_installinit - install service init files into package build directories use strict; use Debian::Debhelper::Dh_Lib; +use File::Find; =head1 SYNOPSIS @@ -251,6 +252,25 @@ foreach my $package (@{$dh{DOPACKAGES}}) { } if (! $dh{NOSCRIPTS}) { + # Include postinst-init-tmpfiles if the package ships any files + # in /usr/lib/tmpfiles.d or /etc/tmpfiles.d + my $got_tmpfile = undef; + my $tmpdir = tmpdir($package); + find({ + wanted => sub { + return unless -f $File::Find::name; + if (!$got_tmpfile && + $File::Find::name =~ m,^$tmpdir/usr/lib/tmpfiles\.d/, || + $File::Find::name =~ m,^$tmpdir/etc/tmpfiles\.d/,) { + $got_tmpfile = 1; + } + }, + no_chdir => 1, + }, $tmpdir); + if ($got_tmpfile) { + autoscript($package,"postinst", "postinst-init-tmpfiles", ""); + } + if (! $dh{NO_START}) { if ($dh{RESTART_AFTER_UPGRADE}) { # update-rc.d, and restart (or |