Comment 44 for bug 1741390

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

File is \x2d
Name has to be escaped as \\x2d for e.g. systemctl

This is exactly as we have it in later releases with the fix - so the file names are "ok" despite still feeling odd to have it named that way.

It turns out that the old 'deb-systemd-helper' is fine with the name - that is the reason it is installed and enabled corretcly.
The failing part is 'deb-systemd.invoke', that would need other escapes.
This call is no more existing in newer Ubuntu releases as dh_installsystemd has taken over there but does not exist on Xenial yet.

The newer version of deb-systemd-invoke is no more used in Bionic, but it would be fixed - not worth for this case but nice to know.

The older Xenial version failes the same way at the moment btw.
So we are fixing a real bug in Xenial, not just removing backport artifacts.
Essentially it is not started on install and stopped on upgrade until reboot.

The escaping in /usr/bin/deb-systemd-invoke is inconsistent.
For the first check we would need to pass: run-vmblock\\\\x2dfuse.mount
But for the second we would need to pass: run-vmblock\\x2dfuse.mount

The "real" fix would be in /usr/bin/deb-systemd-invoke:
my $enabled_output = `/bin/systemctl is-enabled -- '$unit'`;
to
my $enabled_output = `/bin/systemctl is-enabled -- $unit`;
But that has too many regression risks on an SRU.

But for open-vm-tools alone we can fix this up by overriding dh_systemd_start.
Generated:
if [ -d /run/systemd/system ]; then
        systemctl --system daemon-reload >/dev/null || true
        deb-systemd-invoke start run-vmblock\\x2dfuse.mount >/dev/null || true
fi
Has to be replaced with a custom snipped to handle the esacping.
I checked the other calls to deb-systemd-invoke, e.g. the stop - they work fine with the names.

I have fixed the issues and ran test builds.
The now:
- do not report the warnigns on install/upgrade they did before
- the service is active right after install of open-vm-tools-desktop

The new version in the ppa 10.2.0-3ubuntu0.16.04.1~ppa6 is good for a retest.