summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stapelberg <stapelberg@debian.org>2012-10-29 18:06:29 +0100
committerJoey Hess <joey@kitenet.net>2012-10-29 14:32:15 -0400
commit469c74d0ac590016eeae847e3fe4c353c6e0c25b (patch)
treefa8a07d25eb9b0d4ef0709865f22eda31de00fc2
parentd8e9aa3c77f796dc984af3a73125bc03b8f048c1 (diff)
dh_installinit: only add systemd-tmpfiles --create when shipping tmpfiles
-rw-r--r--autoscripts/postinst-init6
-rw-r--r--autoscripts/postinst-init-tmpfiles5
-rwxr-xr-xdh_installinit20
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