systemd: Fix relative ln add-wants wrapper
authorTrent Piepho <tpiepho@impinj.com>
Fri, 23 Feb 2018 20:18:35 +0000 (12:18 -0800)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 27 Feb 2018 21:05:30 +0000 (22:05 +0100)
commit1cf62bfc1e0774fc36b7acc8b09613dbf46e985b
treedca5b4668b12da26f71f465905f73f882038e45a
parentf9892a795ab1bc6d078cd803b4211f2c5c974b01
systemd: Fix relative ln add-wants wrapper

The patch to allow systemd to work with old "ln" versions that don't
support --relative didn't work properly in the the meson-add-wants.sh
script.

This results in all the links in systemd's "*.wants" directories being
broken, e.g.
/usr/lib/systemd/system/multi-user.target.wants/getty.target ->
  ../../../../usr/lib/systemd/system/getty.target
There is one too few ".." in that relative link.

The problem is that the script is called with the link name being either a
file or an existing directory.  In the latter case, ln creates the link in
the directory using the name of the target.  This means the link is one
level deeper than the relative link making code thinks.

The solution used is to only dirname the link, moving up a level, if it's
not a directory, to mimic ln's logic in how it creates links.

Signed-off-by: Trent Piepho <tpiepho@impinj.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/systemd/0002-install-don-t-use-ln-relative.patch