[opensuse-factory] Proposal: Use /usr/libexec for libexec content
Hello, I'd like to propose adding /usr/libexec to the openSUSE FHS and reverting the definition of %_libexecdir in rpm back to /usr/libexec so that libexec content is installed there. Currently, openSUSE overrides rpm to define %_libexecdir as /usr/lib, which leads to pollution of the /usr/lib directory with executable content as well as 64-bit content when there shouldn't be any. The /usr/libexec has been in use on RH/Fedora and Mageia systems in the Linux world, but has its origins in BSD and is still used today in BSDs and variants (like Mac OS X). The usage of /usr/libexec for libexec content has also been recognized by FHS with v3.0, released in 2015. In the Linux distribution landscape (that is, all major families, not just RPM ones), /usr/libexec is in use on Red Hat, Mandrake, Gentoo, and Slackware families. This is a breaking change, as it means that as packages are rebuilt, libexec content *should* migrate from /usr/lib to /usr/libexec. The major advantage of migrating the libexec content is that it will make openSUSE consistent with other major RPM-based Linux distributions, and ease efforts in supporting SUSE distributions along with Red Hat ones by removing the need for hacks and tweaks to support two different hierarchies. This simplifies the portability headaches in supporting both distribution families, and makes it easier for applications that were originally aimed for RHEL/CentOS to run on SLE/openSUSE Leap. This change would be done in three stages: 1. Make the change to the filesystem package to add /usr/libexec to the hierarchy. 2. Add /usr/libexec to allowed prefixes in rpmlint-checks and remove spec-cleaner rule that assumes /usr/lib == %_libexecdir. 3. Make the change to the rpm package to set %_libexecdir back to /usr/libexec. This one will cause a fair bit of work to fix packages that do the wrong thing one way or another with %_libexecdir. What do you all think? Best regards, Neal -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Mon, Jul 22, Neal Gompa wrote:
This change would be done in three stages:
1. Make the change to the filesystem package to add /usr/libexec to the hierarchy. 2. Add /usr/libexec to allowed prefixes in rpmlint-checks and remove spec-cleaner rule that assumes /usr/lib == %_libexecdir. 3. Make the change to the rpm package to set %_libexecdir back to /usr/libexec. This one will cause a fair bit of work to fix packages that do the wrong thing one way or another with %_libexecdir.
What do you all think?
I don't see really a problem with this subdirectories in /usr/lib, as this is nothing a normal user should care about, and for packages, RPM does take care of if the package uses the correct macros. But I would not vote against it, too. I have a much bigger problem with all the configuration files in /usr/lib and subdirectories, because this makes it really hard and difficult for admins to find the right one. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & MicroOS SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Mary Higgins, Sri Rasiah, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Mon, 2019-07-22 at 15:28 +0200, Thorsten Kukuk wrote:
On Mon, Jul 22, Neal Gompa wrote:
This change would be done in three stages:
1. Make the change to the filesystem package to add /usr/libexec to the hierarchy. 2. Add /usr/libexec to allowed prefixes in rpmlint-checks and remove spec-cleaner rule that assumes /usr/lib == %_libexecdir. 3. Make the change to the rpm package to set %_libexecdir back to /usr/libexec. This one will cause a fair bit of work to fix packages that do the wrong thing one way or another with %_libexecdir.
What do you all think?
I don't see really a problem with this subdirectories in /usr/lib, as this is nothing a normal user should care about, and for packages, RPM does take care of if the package uses the correct macros. But I would not vote against it, too.
I have a much bigger problem with all the configuration files in /usr/lib and subdirectories, because this makes it really hard and difficult for admins to find the right one.
While I agree with Thorsten's additional problem, I don't think the existance of that issue negates Neal's points. I would quite like to see /usr/libexec established in openSUSE..but how we will handle executables that currently live in /usr/lib for the 32- bit version and /usr/lib64 for the 64-bit version? Regards, -- Richard Brown Linux Distribution Engineer - Future Technology Team Chairman - openSUSE Phone +4991174053-361 SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nuernberg GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Tue, Jul 23, 2019 at 7:33 AM Richard Brown <rbrown@suse.de> wrote:
On Mon, 2019-07-22 at 15:28 +0200, Thorsten Kukuk wrote:
On Mon, Jul 22, Neal Gompa wrote:
This change would be done in three stages:
1. Make the change to the filesystem package to add /usr/libexec to the hierarchy. 2. Add /usr/libexec to allowed prefixes in rpmlint-checks and remove spec-cleaner rule that assumes /usr/lib == %_libexecdir. 3. Make the change to the rpm package to set %_libexecdir back to /usr/libexec. This one will cause a fair bit of work to fix packages that do the wrong thing one way or another with %_libexecdir.
What do you all think?
I don't see really a problem with this subdirectories in /usr/lib, as this is nothing a normal user should care about, and for packages, RPM does take care of if the package uses the correct macros. But I would not vote against it, too.
I have a much bigger problem with all the configuration files in /usr/lib and subdirectories, because this makes it really hard and difficult for admins to find the right one.
While I agree with Thorsten's additional problem, I don't think the existance of that issue negates Neal's points.
I would quite like to see /usr/libexec established in openSUSE..but how we will handle executables that currently live in /usr/lib for the 32- bit version and /usr/lib64 for the 64-bit version?
The last time this had been brought up, it sounded like those were packaging mistakes, and that binaries being installed into /usr/lib64 needed to be fixed anyway. I don't know how many of those are like that (I don't have an easy way to get all the spec files and grep through them like I do for Fedora package specs...), but I think those would just be fixed so that binaries would be installed correctly into /usr/libexec. I don't know of a circumstance where we need multiarch *binaries* along with multiarch *libraries*. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Tue, 2019-07-23 at 07:40 -0400, Neal Gompa wrote:
I don't know of a circumstance where we need multiarch *binaries* along with multiarch *libraries*.
gstremer and its pluging scanner - the generated cache differs between the i586 and x86_64 libraries - as there CAN be different sets of encoders/decoders installed. But this case is solved in openSUSE by installing the scanner with %{_arch} suffixes (and the caches are also named accordingly) Cheers Dominique
On Tue, Jul 23, Neal Gompa wrote:
The last time this had been brought up, it sounded like those were packaging mistakes, and that binaries being installed into /usr/lib64 needed to be fixed anyway. I don't know how many of those are like that (I don't have an easy way to get all the spec files and grep through them like I do for Fedora package specs...), but I think those would just be fixed so that binaries would be installed correctly into /usr/libexec.
What does this change mean for all the configuration files and *.d directories below /usr/lib? Should they stay there? Should they be moved, too? Or do we agree on another directory for them? Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & MicroOS SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Mary Higgins, Sri Rasiah, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Thu, Jul 25, 2019 at 6:53 AM Thorsten Kukuk <kukuk@suse.de> wrote:
On Tue, Jul 23, Neal Gompa wrote:
The last time this had been brought up, it sounded like those were packaging mistakes, and that binaries being installed into /usr/lib64 needed to be fixed anyway. I don't know how many of those are like that (I don't have an easy way to get all the spec files and grep through them like I do for Fedora package specs...), but I think those would just be fixed so that binaries would be installed correctly into /usr/libexec.
What does this change mean for all the configuration files and *.d directories below /usr/lib?
Should they stay there? Should they be moved, too? Or do we agree on another directory for them?
For now, I'm not touching those, but I'm pretty sure moving those is something that will probably happen with the /usr/sysconfig proposal[1]. [1]: https://lists.linuxfoundation.org/pipermail/fhs-discuss/2019-June/000509.htm... -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Thu, Jul 25, Neal Gompa wrote:
On Thu, Jul 25, 2019 at 6:53 AM Thorsten Kukuk <kukuk@suse.de> wrote:
On Tue, Jul 23, Neal Gompa wrote:
The last time this had been brought up, it sounded like those were packaging mistakes, and that binaries being installed into /usr/lib64 needed to be fixed anyway. I don't know how many of those are like that (I don't have an easy way to get all the spec files and grep through them like I do for Fedora package specs...), but I think those would just be fixed so that binaries would be installed correctly into /usr/libexec.
What does this change mean for all the configuration files and *.d directories below /usr/lib?
Should they stay there? Should they be moved, too? Or do we agree on another directory for them?
For now, I'm not touching those, but I'm pretty sure moving those is something that will probably happen with the /usr/sysconfig proposal[1].
I hope so, too ;) But I'm also pretty sure that the FHS will not make anything about this, we have to decide and do it at our own. I only wanted to know, as I'm pretty sure, that some packages uses libexecdir for this stuff, too. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & MicroOS SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Mary Higgins, Sri Rasiah, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Thursday 2019-07-25 12:53, Thorsten Kukuk wrote:
On Tue, Jul 23, Neal Gompa wrote:
The last time this had been brought up, it sounded like those were packaging mistakes, and that binaries being installed into /usr/lib64 needed to be fixed anyway. I don't know how many of those are like that (I don't have an easy way to get all the spec files and grep through them like I do for Fedora package specs...), but I think those would just be fixed so that binaries would be installed correctly into /usr/libexec.
What does this change mean for all the configuration files and *.d directories below /usr/lib?
Configuration files full of things that should be hard defaults anyway. :-( sshd_config has the libexec path in it for the sftp helper, and moving sshd to /usr/libexec will require a change in sshd_config too. Now, if that part of sshd_config was in /usr/etc, that would be a no-brainer, but someone's going to get an rpmnew/rpmsave file in /etc/ssh for the time being. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Tuesday, 23 July 2019 21:03:28 ACST Richard Brown wrote:
On Mon, 2019-07-22 at 15:28 +0200, Thorsten Kukuk wrote:
On Mon, Jul 22, Neal Gompa wrote:
This change would be done in three stages:
1. Make the change to the filesystem package to add /usr/libexec to the hierarchy. 2. Add /usr/libexec to allowed prefixes in rpmlint-checks and remove spec-cleaner rule that assumes /usr/lib == %_libexecdir. 3. Make the change to the rpm package to set %_libexecdir back to /usr/libexec. This one will cause a fair bit of work to fix packages that do the wrong thing one way or another with %_libexecdir.
What do you all think?
I don't see really a problem with this subdirectories in /usr/lib, as this is nothing a normal user should care about, and for packages, RPM does take care of if the package uses the correct macros. But I would not vote against it, too.
I have a much bigger problem with all the configuration files in /usr/lib and subdirectories, because this makes it really hard and difficult for admins to find the right one.
While I agree with Thorsten's additional problem, I don't think the existance of that issue negates Neal's points.
I would quite like to see /usr/libexec established in openSUSE..but how we will handle executables that currently live in /usr/lib for the 32- bit version and /usr/lib64 for the 64-bit version?
Regards,
/usr/libexec32 for 32-bit executables on 64-bit systems, and /usr/libexec for the system default architecture? -- ============================================================== Rodney Baker VK5ZTV rodney.baker@iinet.net.au CCNA #CSCO12880208 ==============================================================
On Monday 2019-07-22 15:17, Neal Gompa wrote:
I'd like to propose adding /usr/libexec to the openSUSE FHS and reverting the definition of %_libexecdir in rpm back to /usr/libexec so that libexec content is installed there. [..] What do you all think?
Let's do it. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Mon, Aug 26, 2019 at 3:47 AM Jan Engelhardt <jengelh@inai.de> wrote:
On Monday 2019-07-22 15:17, Neal Gompa wrote:
I'd like to propose adding /usr/libexec to the openSUSE FHS and reverting the definition of %_libexecdir in rpm back to /usr/libexec so that libexec content is installed there. [..] What do you all think?
Let's do it.
First steps: * filesystem SR to Base:System: https://build.opensuse.org/request/show/727786 * rpmlint-checks PR: https://github.com/openSUSE/rpmlint-checks/pull/48 -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (6)
-
Dominique Leuenberger / DimStar
-
Jan Engelhardt
-
Neal Gompa
-
Richard Brown
-
Rodney Baker
-
Thorsten Kukuk