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@. 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
Attachment:
pgpyJMQfyc6Tg.pgp
Description: PGP signature
-- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct