<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Please consider 'fixing' unit symlinks in /etc (on startup?)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=68102#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Please consider 'fixing' unit symlinks in /etc (on startup?)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=68102">bug 68102</a>
              from <span class="vcard"><a class="email" href="mailto:mgorny@gentoo.org" title="Michał Górny <mgorny@gentoo.org>"> <span class="fn">Michał Górny</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=68102#c1">comment #1</a>)
<span class="quote">> (In reply to <a href="show_bug.cgi?id=68102#c0">comment #0</a>)
> > My /etc/systemd/system/multi-user.target.wants/ has a number of symlinks
> > like:
> > 
> >   dhcpcd.service -> /usr/lib64/systemd/system/dhcpcd.service

> This is not arch dependent, it shouldn't be in lib64/, but in lib/.</span >

And it is in lib/. The symlink is wrong but let's not get into how I got that.

<span class="quote">> > Could you consider doing some kind of 'symlink update' run within systemd?
> > That is, while doing the usual readlink() magic and unit search, compare
> > whether the canonical unit path matches the symlink target and rewrite the
> > symlink if it doesn't?

> I don't follow? Come again? It should rewrite lib/ to lib64/? That sounds
> very specialist to me and sounds like something that is better fixed with a
> manual script.

> Or what are you asking for? I don't get it?</span >

I mean that systemd currently does readlink() and uses basename of symlink to
find the unit. I would like it to additionally compare the result of this
search with current symlink target, and reset symlink to point to the found
unit.

In other words, I have this:

  dhcpcd.service -> /usr/lib64/systemd/system/dhcpcd.service

but after systemd interprets it, it is rewritten as:

  dhcpcd.service -> /usr/lib/systemd/system/dhcpcd.service

or:

  dhcpcd.service -> /lib/systemd/system/dhcpcd.service

or even:

  dhcpcd.service -> /etc/systemd/system/dhcpcd.service

depending on where systemd actually found the unit.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>