[Fedora-packaging] libexecdir, rpmlint, and Packaging Guidelines

Ralf Corsepius rc040203 at freenet.de
Wed Jun 21 02:51:53 UTC 2006


On Tue, 2006-06-20 at 12:19 -0700, Toshio Kuratomi wrote:
> I would like to have clarification of whether using libexec is in
> accordance with the Fedora Guidelines or if packages using it should be
> changed.
> 
> The usage of libexecdir for binary programs (not libraries) which are
> not intended to be invoked by users, just other programs (gnome panel
> applets are an example)
Another example is GCC

>  is currently part of Fedora Core, the *BSDs, and
> the GNU Coding Standards. 

>  The FHS had libexecdir in a draft at one
> point but apparently dropped it after a poll (The FHS mailing list
> archives are currently inaccessible so I can't verify this)  Debian has
> been vehement in its following the letter of the FHS so they set
> libexecdir to /usr/lib/pkgname through configure.
This won't work for GCC

GCC is using using:
1) /usr/lib/gcc/$target
and
2) /usr/libexec/gcc/$target

1) contains target libraries/files
2) contains internal host-executables

Setting libexecdir=$libdir would screw up things badly, because it would
mix up host-executables and target-files.

Now one could argue that 1) actually should be /usr/share/gcc/$target
and 2) should be /usr/lib/gcc/$target ...

I am inclined to agree, but changing this would be a major effort.

>   If we decide libexec
> is not allowed we should consider doing the same with our %configure
> macro.
I am opposed to both.

> There have been several email threads related to libexecdir vs the FHS
> on the fedora lists.  The last one I recall is here:
>   http://thread.gmane.org/gmane.linux.redhat.fedora.devel/25433/
> 
> The thread brings up an issue which similar discussions on Debian
> mailing lists fail to mention (because Debian is not multilib): On
> multilib, you want one version of a helper program that matches the
> wordsize of the main program, not one for 32 bits in /usr/lib and
> another for 64 bits in /usr/lib64.  Thus /usr/libexec to match /usr/bin.
Exactly.

The /usr/lib in 1) above needs to be $(prefix)/lib (=/usr/lib) not %
_libdir.

> There have been several people who have said they intended to bring the
> libexec lack to the attention of the FHS but with their mailing list
> inaccessible I'm unable to check whether any discussion reached the FHS.
...

Ralf





More information about the packaging mailing list