systemd system unit files and UsrMove

Kay Sievers kay.sievers at vrfy.org
Mon Feb 20 20:17:30 UTC 2012


On Mon, Feb 20, 2012 at 20:18, Toshio Kuratomi <a.badger at gmail.com> wrote:
> On Mon, Feb 20, 2012 at 06:30:11PM +0100, Lennart Poettering wrote:
>> On Mon, 20.02.12 09:25, Toshio Kuratomi (a.badger at gmail.com) wrote:

>> > This sounds like the unit files belong in %{_libdir} now?  However, that
>> > would mean that they can't go into noarch packages.  So we probably need to
>> > know a little more about just how architecture dependent these unit files
>> > can be.
>>
>> No, not %{_libdir}, but rather %{_prefix}/lib. (i.e. we do not want to ship
>> two different versions for 32bit and 64bit. We want just one, hence they
>> belong in /lib unconditionally)
>>
> Okay, so this is one more area where when people mispackage a library and
> a program in the same subpackage, they'll get bitten?

I'm convinced that the default of $libexedir should just be set to
/usr/lib and all packages using libexecdir should use a subdir in
that, and $libdir should not be involved at all, this results in
/usr/lib/udev/cdrom_id, and /usr/lib/systemd/systemd-journald and so
on. This is actually what most distributions do today and what we
envision for the future of a cross-distribution unified Linux.

The general rule for $libdir is that it is reserved for shared objects
and their directly associated files like pkgconfig files.

There are valid cases where shared objects exec() their own helpers,
like when elevated privileges and setuid/capabilities are involved,
that can be a good and valid reason to drop the binary in $libdir if
multilib installation with separate callout helpers need to be
supported; but almost all other packages should not mess there.

Kay


More information about the devel mailing list