systemd system unit files and UsrMove

Toshio Kuratomi a.badger at gmail.com
Tue Feb 21 16:52:46 UTC 2012


On Mon, Feb 20, 2012 at 09:17:30PM +0100, Kay Sievers wrote:
> 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,

So I have to admit here that I have no idea why systemd is using $libexecdir
here.  The definition of libexecdir does not support the storing of
unit files:

"""
libexecdir

    The directory for installing executable programs to be run by other
    programs rather than by users. This directory should normally be
    ‘/usr/local/libexec’, but write it as ‘$(exec_prefix)/libexec’. (If you are
    using Autoconf, write it as ‘@libexecdir@’.)

    The definition of ‘libexecdir’ is the same for all packages, so you should
    install your data in a subdirectory thereof. Most packages install their
    data under ‘$(libexecdir)/package-name/’, possibly within additional
    subdirectories thereof, such as ‘$(libexecdir)/package-name/machine/version’. 
"""

unit files are declarative, not executable.  It sounds like upstream systemd
wants to use $(exec_prefix)/lib/systemd for the unit files and is attempting
to shoehorn those into libexecdir because some distros set libexecdir to
${exec_prefix}/lib whereas some distros on some arches set libdir to
${exec_prefix}lib64  This is incorrect use of libexecdir.  They should just
use ${exec_prefix}/lib if that is the place that makes the most sense.

(Or make up a new config variable that they submit to the GNU coding
standards).

-Toshio
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20120221/9ab41c59/attachment.sig>


More information about the devel mailing list