Incorrect order of /usr/bin and /usr/sbin in path

Toshio Kuratomi a.badger at gmail.com
Mon May 5 22:25:19 UTC 2014


On Mon, May 05, 2014 at 10:38:10PM +0200, Kalev Lember wrote:
> On 05/05/2014 10:28 PM, Matthew Miller wrote:
> > On Mon, May 05, 2014 at 04:24:03PM -0400, Matthias Clasen wrote:
> >> It causes pointless configure and Makefile complications in every single
> >> upstream project that wants to install something into that location and
> >> has to differentiate between Fedora (/usr/libexec) and the rest of the
> >> world (/usr/lib/$pkg). It has ripple-on effects throughout the project -
> >> e.g. having to patch the right prefix into desktop files, into service
> >> files, etc etc.
> > 
Note that when I first read this, I assumed you meant %{_libexecdir} and
%{_libdir}/$pkg which would be untrue.  After reading kalev's message, I'm
guessing that you mean %{_libexecdir} and %{_prefix}/lib/$pkg.  This could
also be stated as %{_libdir}/$pkg vs %{_prefix}/lib/$pkg... %{_libexecdir}
and %{_libdir}/$pkg are both valid in the packaging guidelines.

> > Now that's a practical reason that I can get behind. But given that we're
> > already here and have done all that, is it valuable to undo? Again, I shrug
> > -- plenty of other stuff to fix, but I think a case could certainly be made.
> 
> I don't think it's valuable to undo it at this point, but rather let
> applications install into /usr/lib/$pkg/ if they want to. Right now, the
> Fedora guidelines downright forbid that.
> 
> I'll emphasize that I really mean /usr/lib/$pkg/, as opposed to
> /usr/$multilib_directory/$pkg/ -- this ensures that the same directory
> is available in all distros the same way, and avoids multilib issues
> with helper binaries.
> 
> Right now, various upstreams have to ship checks like:
> 
> if (fedora_based_distro)
>   helper_dir = /usr/libexec
> else
>   helper_dir = /usr/lib
> 

If upstream is using the autotools you should just use @pkglibexecdir@ or
@libexecdir at .  Linux distributions, BSDs and etc all set --libexecdir to
the proper location for their tastes.

If upstream does not use autotools then they may end up having to do
a platform check for helper_dir.  But they could also end up having to do
a platform check for shared libraries or arch-specific data files. The
difference between Fedora and other distros is really multilib, not libexec.

> Relaxing the guidelines would allow those upstreams to write saner code,
> and be more compatible across various distributions.

If we get rid of multilib then that would be fine otherwise it'll be more
error prone to add %{_prefix}/lib into the mix with  %{_libexecdir} and
%{_libdir}.  Most upstreams do not know about or care about multilib.  This
means that they mix stuff appropriate for %{_prefix}/lib/$pkg in with things
that must go in %{_libdir}/$pkg.  As long as we have multilib we need to
check the usage of these directories and patch in the separation between the
directories when needed.  The usage of %{_libdir}/$pkg and %{_libexecdir}
just makes this more apparent.

We've already gotten rid of multilib distinctions for specific ecosystems
within Fedora so they don't have to make checks like this.  We could either
expand that to encompass additional specific ecosystems or we could get rid
of multilib altogether.

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


More information about the devel mailing list