I changed my Patch... Now it seems to work correct.
-- Jakobus Schürz Roseggergasse 37/21 1160 Wien +43/699/107 66 126 http://xundeenergie.at http://cogitationum.wordpress.com/ http://verkehrsloesungen.wordpress.com/
--- /usr/bin/deb-systemd-helper 2017-02-25 03:56:20.844471315 +0100
+++ /usr/bin/deb-systemd-helper-xe 2017-03-23 00:00:36.456053295 +0100
@@ -116,8 +116,8 @@
sub find_unit {
my ($scriptname) = @_;
-
my $service_path = $scriptname;
+ $scriptname =~ s/\@(.*)\.([a-z]*)$/@.$2/;
if (-f "/etc/systemd/system/$scriptname") {
$service_path = "/etc/systemd/system/$scriptname";
} elsif (-f "/lib/systemd/system/$scriptname") {
@@ -126,6 +126,12 @@
return $service_path;
}
+sub get_instance {
+ my ($instance) = @_;
+ $instance =~ s/^.*\@(.*)\.([a-z]*)$/$1/;
+ return $instance;
+}
+
sub dsh_state_path {
my ($scriptname) = @_;
return $enabled_state_dir . '/' . basename($scriptname) . '.dsh-also';
@@ -182,6 +188,7 @@
my @links;
my $unit_name = basename($service_path);
+ my $instance = get_instance($scriptname);
# The keys parsed from the unit file below can only have unit names
# as values. Since unit names can't have whitespace in systemd,
@@ -198,6 +205,7 @@
my $wants_dir = "/etc/systemd/system/$value";
$wants_dir .= '.wants' if $1 eq 'WantedBy';
$wants_dir .= '.requires' if $1 eq 'RequiredBy';
+ $wants_dir =~ s/\%i/$instance/;
push @links, { dest => $service_path, src =>
"$wants_dir/$scriptname" };
}
}
@@ -206,6 +214,7 @@
for my $value (split(/\s+/, $1)) {
$value =~ s/^(["'])(.*)\g1$/$2/;
if ($value ne $unit_name) {
+ $value =~ s/\%i/$instance/;
push @links, get_link_closure($value, find_unit($value));
}
}
@@ -215,6 +224,7 @@
for my $value (split(/\s+/, $1)) {
$value =~ s/^(["'])(.*)\g1$/$2/;
if ($value ne $unit_name) {
+ #$value =~ s/\%i/$instance/;
push @links, { dest => $service_path, src =>
"/etc/systemd/system/$1" };
}
}
0x43B88572.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature

