[opensuse-factory] TW 0825: %{_libexecdir} == /usr/libexec

Dear Tumbleweed users and hackers, After a few months of hard labor by many package maintainers, we reached the point where we could merge the change for %_libexecdir now. Snapshot 0825 has just started building and will be the first snapshot to come out (or to be built - we'll see if it will be published) with that change enabled. As this is a change also having impact on interactions between packages it was nescessary to trigger a rebuild of all packages. It's not realistically possible to identify the packages that would effectively be affected. So, besides the 'big change', you can expect also 'big download' for Snapshot 0825 (or the first snapshot to be published after that date). Please be extra attentive to things no longer behaving as you expect. There is unfortunately a chance that some packages have hardcoded paths to files that moved around or also packages that hardcoded the install path even though things expect the helpers in different locations. Should you come across one of your packages failing to build, it would be appreciated by all users of said package to receive a fix rather sooner than later. Than kyou all for your great work on this topic. It once again showed that together, we can reach even such larger goals and doing so without rishing things. Cheers, Dominique

On Tuesday 2020-08-25 10:32, Dominique Leuenberger / DimStar wrote:
One issue of note is that users who modified sshd_config should now be getting a sshd_config.rpmnew, /etc/ssh/sshd_config:Subsystem sftp /usr/lib/ssh/sftp-server /etc/ssh/sshd_config.rpmnew:Subsystem sftp /usr/libexec/ssh/sftp-server if left unfixed, sftp will be effectively nonfunctional. # sftp localhost Connection closed. Connection closed -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

Am 25.08.20 um 10:32 schrieb Dominique Leuenberger / DimStar:
In llvm, we're currently moving some files from /usr/libexec to /usr/bin as a leftover from earlier times: mv %{buildroot}%{_prefix}/libexec/{c++,ccc}-analyzer \ %{buildroot}%{_bindir} Now I would like to change that, but older distros still have %{_libexecdir} == /usr/lib and the executable is expected in either /usr/libexec or /usr/bin. Any advice on this? My idea would be to branch on %{_libexecdir} == /usr/libexec and fall back to %{_bindir} if that isn't satisfied. Best regards, Aaron -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

On Tuesday 2020-08-25 22:33, Aaron Puchert wrote:
%install ... if ! test -e %buildroot/%bindir/ccc-analyzer; then ln -s %_libexecdir/ccc-analyzer %buildroot/%bindir/ccc-analyzer fi ... It does not hurts to have a symlink too much. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

Am 25.08.20 um 22:54 schrieb Jan Engelhardt:
Hmm, but isn't the idea behind /usr/libexec to have the executables not in $PATH, because they are not meant to be invoked by users? These two are only used internally by scan-build, which looks for them first in /usr/libexec, then /usr/bin: # Determine the location of ccc-analyzer. my $AbsRealBin = Cwd::realpath($RealBin); my $Cmd = "$AbsRealBin/../libexec/ccc-analyzer"; # ... if (!defined $Cmd || ! -e $Cmd) { $Cmd = "$AbsRealBin/ccc-analyzer"; DieDiag("'ccc-analyzer' does not exist at '$Cmd'\n") if(! -e $Cmd); } # ... So if it's in /usr/libexec, it doesn't need to be in /usr/bin. But for older distros (currently everything != Tumbleweed) I want to keep them in /usr/bin since /usr/libexec doesn't exist and %{_libexecdir} == /usr/lib, where the script doesn't look. Best regards, Aaron -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

On Tue, Aug 25, Aaron Puchert wrote:
Correct, having them in bin and libexec doesn't make much sense. I would check if /usr/libexec exists, if yes, use it, else /usr/bin. Thorsten
-- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & MicroOS SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany Managing Director: Felix Imendoerffer (HRB 36809, AG Nürnberg) -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

Hi, Am Dienstag, 25. August 2020, 10:32:00 CEST schrieb Dominique Leuenberger / DimStar:
I realize I'm a bit late to the discussion here, but when this topic came up initially I wasn't familiar enough with the facts to actually respond. At this point I really wonder whether this change is necessary and worth it. FWICT, the reasoning for this change is twofold: a) It aligns with the FHS b) It aligns with other distros About a), the FHS actually says that /usr/lib is also acceptable: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html
It's not entirely clear to me how that is exactly meant. My interpretation is that if /usr/libexec is provided, it is preferred over /usr/lib, but it is not mandatory. That means Tumbleweed is in the clear already. About b), it just changes the list of distros it aligns with: Arch and Debian-based use %_libexecdir == %_libdir while Fedora and Slackware use %_libexecdir != %_libdir, i.e. /usr/libexec. On top of those two reasons, I'm not aware of any immediate issue or problem it fixes, compared to e.g. the /usr/etc movement. So this change appears to be entirely cosmetic. The warning in the quoted mail is quite severe, but it's really true. The current openQA results show that both chromium and man are completely broken. Those issues will be fixed, but that's just the visible tip of the iceberg. There are many more cases not covered by build-testing and openQA, which will keep surfacing even in the further away future, as subtle breakage appears, something like AppArmor denying access to some less frequently used program. All of that really makes me wonder whether this change is actually worth doing, as there aren't any immediate benefits and it causes severe breakage. Unless I'm missing something (please enlighten me in that case!), I propose to change back to the old value of %_libexec. Cheers, Fabian
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

On Thu, Aug 27, 2020 at 3:45 AM Fabian Vogt <fvogt@suse.de> wrote:
Debian switched %_libexecdir to /usr/libexec when they upgraded to FHS 3.0 in 2018. This change is particularly evident in gnome-terminal, which now installs binaries there. They are (slowly) removing their hacks around libexecdir in the distribution so that stuff goes in /usr/libexec again. -- 真実はいつも一つ!/ 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 Thursday 2020-08-27 09:39, Fabian Vogt wrote:
c) It aligns with some other OSes, too. (FreeBSD) d) It aligns with upstream's standard installation layout. As in, autoconf (and others) have had a --libexecdir flag. Just because it is possible for a builder to override the plethora of setting offered does not mean it is always necessary to do so. Documentation and bugreports favorable mention /usr/libexec. But, whenever SUSE is involved, involved people need a mental hook that it's /usr/lib instead, and they'll go like <Ryan Reynolds: "... but why?">
Quite so. But changing from libexec to lib to please ye olde FHS2.3 some 20ish years ago, that itself was already a cosmetic change (and not one with much value; see a-d). We're just removing the makeup now. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

Hi, (collecting all replies here) Am Donnerstag, 27. August 2020, 12:45:39 CEST schrieb Neal Gompa:
Looks like they didn't get too far yet, I checked by looking into the debian:10 image from the docker library and there is no libexec anywhere. How are they performing the move in a slow manner compared to Tumbleweed ripping off like a band-aid? Am Donnerstag, 27. August 2020, 16:30:09 CEST schrieb Jan Engelhardt:
Even macOS appears to use /usr/libexec, fair enough.
Everything already works with the current setup, so adding more points on top of the "blend in" heap doesn't really put any more weight on that IMO.
Debian has /usr/<triple>/ and gets the same reaction from me. Though that directory structure actually provides some (small) benefit, compared to /usr/libexec.
The makeup is already part of the skin now, it looks fine and everyone got used to it. Forcibly removing it *will* hurt, everyone has to get used to it again and after it has healed it'll look at best the same. Am Donnerstag, 27. August 2020, 16:49:52 CEST schrieb Callum Farmer:
e) We move back but we still have misuses of the macro
I agree that cleaning up misuse of macros is good, but it shouldn't hurt users, just to make some .spec files and macros a tiny bit simpler.
Where does it say that? It says that it's acceptable precisely because /usr/lib is already widely used. Cheers, Fabian -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org

On Fri, Aug 28, 2020 at 10:45 AM Fabian Vogt <fvogt@suse.de> wrote:
Well, they don't do mass rebuilds on a regular basis, so stuff churns over when packages are updated. :) The first one to make the change was the GNOME stack. I expect that we'll see more of it as we get closer to Debian 11's release. The changes in the GNOME stack did make it into Ubuntu 20.04, though. -- 真実はいつも一つ!/ 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

* Dominique Leuenberger / DimStar <dimstar@opensuse.org> [08-25-20 04:33]:
this change included moving /usr/lib/mc to /usr/libexec/mc and automagically altered the included config files, but failed to alter <user> files such as ~/.config/mc/mc.exe. -- (paka)Patrick Shanahan Plainfield, Indiana, USA @ptilopteri http://en.opensuse.org openSUSE Community Member facebook/ptilopteri Photos: http://wahoo.no-ip.org/piwigo paka @ IRCnet freenode -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (7)
-
Aaron Puchert
-
Dominique Leuenberger / DimStar
-
Fabian Vogt
-
Jan Engelhardt
-
Neal Gompa
-
Patrick Shanahan
-
Thorsten Kukuk