[opensuse-packaging] Why %_libexecdir is not arch dependent?

I am thinking about /usr/lib/gstreamer-0.10/gst-plugin-scanner, that apparently can't detect 32bit gstreamer plugins: (gst-plugin-scanner:18379): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-0.10/libgstcoreelements.so': /usr/lib/gstreamer-0.10/libgstcoreelements.so: wrong ELF class: ELFCLASS32 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

* Cristian Morales Vega (reddwarf@opensuse.org) [20120510 01:05]:
There is no real standard regarding libexecdir. It is defined in the GNU coding standard http://www.gnu.org/prep/standards/html_node/Directory-Variables.html And that isn't very precise. My POV is that the wrong place was choosen for the plugins. They should either have used arch specific dirs below $(libexecdir)/@PACKAGE@ or (which is easier) used $(libdir)/@PACKAGE@. All in all this is a discussion that should happen upstream since it's up to the upstream project to decide about the correct place in the presence of biarch platforms. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On Thu, 10 May 2012, Philipp Thomas wrote:
I think we generally avoid the use of libexecdir in favor of libdir. Richard. -- Richard Guenther <rguenther@suse.de> SUSE / SUSE Labs SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer

Am 10.05.2012 12:33, schrieb Richard Guenther:
libexecdir pointing to /usr/lib makes sense IMHO: Packages containing binaries which are not meant to be used directly by the user should place those into /usr/lib/PACKAGE AFAIK. There MUST NOT be any library there obviously. Wolfgang -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On 10 May 2012 11:44, Wolfgang Rosenauer <wolfgang@rosenauer.org> wrote:
I would not be against it. But that's not what the GNU coding standards say and it would mean removing the only reason libexecdir exists. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On 10 May 2012 11:26, Philipp Thomas <pth@suse.de> wrote:
The plugins are installed in $(libdir)/@PACKAGE@. Only gst-plugin-scanner is installed in $(libexecdir)/@PACKAGE@. And that's exactly what the GNU coding standards say since gst-plugin-scanner is an "executable program to be run by other programs rather than by users". In fact about libdir they say "Do not install executables here, they probably ought to go in ‘$(libexecdir)’ instead". You can't blame gstreamer here for using libexec.
I don't know how to argue with upstream that they should use libdir for gst-plugin-scanner when the GNU coding standards so clearly say they should use libexecdir and even explicitly says they should not use libdir. The same problem would happen with the plugins if we weren't defining _libdir as /usr/lib64. We are the ones behaving in inconsistent ways. But I don't think this is gstreamer specific. We should talk with upstream, but that upstream should be RPM. I just wanted to know if there is any good cause for things being the way they are now. And if we should patch rpm or gstreamer. But really, any patch to the gstreamer package probably is going to stay in openSUSE. I don't think gstreamer will want to change this. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

* Cristian Morales Vega (reddwarf@opensuse.org) [20120510 12:53]:
The plugins are installed in $(libdir)/@PACKAGE@. Only gst-plugin-scanner is installed in $(libexecdir)/@PACKAGE@.
Then its looking in the wrong place aka is buggy coded! A 32 bit binary *must* only search in /usr/lib/gstreamer and the 64 bit binary *must* only look in /usr/lib64. I'd say this is a clear bug in gst-plugin-scanner. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On 10 May 2012 12:07, Philipp Thomas <pth@suse.de> wrote:
Agreed. It's a bit inefficient for the 64 bit binary searching in /usr/lib/gstreamer. I will look into it. But that's unrelated to the libexecdir thing. If you want a 32 bit binary that only searches in /usr/lib/gstreamer and a 64 binary that only searches in /usr/lib64/gstreamer... you still need *two* places to put them in. They are executables, so they must be installed in "libexecdir", but libexecdir is /usr/lib for both i586 and x86-64. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On Thu, 10 May 2012, Cristian Morales Vega wrote:
Binaries are usually not "multilibbed" and if they are they need distinctive names. For example we have 'gdb' and 'gdb64' on powerpc, both live in /usr/bin. Richard. -- Richard Guenther <rguenther@suse.de> SUSE / SUSE Labs SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer

On 10 May 2012 13:06, Richard Guenther <rguenther@suse.de> wrote:
Are usually not "multilibbed" as in "this gstreamer case is so specific that is better to patch it than change libexecdir in rpm"? Really, no idea... -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

* Cristian Morales Vega (reddwarf@opensuse.org) [20120510 14:09]:
Are usually not "multilibbed" as in "this gstreamer case is so specific that is better to patch it than change libexecdir in rpm"?
It's simple. In all cases it's up to upstream to fix it. Be it by naming the binaries according to their bitness, having one binary that only looks into the right directory or by using arch dependent directories in libexecdir. Libexecdir as it is doesn't need cahnges. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

* Cristian Morales Vega (reddwarf@opensuse.org) [20120510 13:35]:
Only if you name me a real reason for that. 586 packages will replace x64 packages and vice versa as long as they don't contain libraries. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

* Cristian Morales Vega (reddwarf@opensuse.org) [20120510 01:05]:
There is no real standard regarding libexecdir. It is defined in the GNU coding standard http://www.gnu.org/prep/standards/html_node/Directory-Variables.html And that isn't very precise. My POV is that the wrong place was choosen for the plugins. They should either have used arch specific dirs below $(libexecdir)/@PACKAGE@ or (which is easier) used $(libdir)/@PACKAGE@. All in all this is a discussion that should happen upstream since it's up to the upstream project to decide about the correct place in the presence of biarch platforms. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On Thu, 10 May 2012, Philipp Thomas wrote:
I think we generally avoid the use of libexecdir in favor of libdir. Richard. -- Richard Guenther <rguenther@suse.de> SUSE / SUSE Labs SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer

Am 10.05.2012 12:33, schrieb Richard Guenther:
libexecdir pointing to /usr/lib makes sense IMHO: Packages containing binaries which are not meant to be used directly by the user should place those into /usr/lib/PACKAGE AFAIK. There MUST NOT be any library there obviously. Wolfgang -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On 10 May 2012 11:44, Wolfgang Rosenauer <wolfgang@rosenauer.org> wrote:
I would not be against it. But that's not what the GNU coding standards say and it would mean removing the only reason libexecdir exists. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org

On 10 May 2012 11:26, Philipp Thomas <pth@suse.de> wrote:
The plugins are installed in $(libdir)/@PACKAGE@. Only gst-plugin-scanner is installed in $(libexecdir)/@PACKAGE@. And that's exactly what the GNU coding standards say since gst-plugin-scanner is an "executable program to be run by other programs rather than by users". In fact about libdir they say "Do not install executables here, they probably ought to go in ‘$(libexecdir)’ instead". You can't blame gstreamer here for using libexec.
I don't know how to argue with upstream that they should use libdir for gst-plugin-scanner when the GNU coding standards so clearly say they should use libexecdir and even explicitly says they should not use libdir. The same problem would happen with the plugins if we weren't defining _libdir as /usr/lib64. We are the ones behaving in inconsistent ways. But I don't think this is gstreamer specific. We should talk with upstream, but that upstream should be RPM. I just wanted to know if there is any good cause for things being the way they are now. And if we should patch rpm or gstreamer. But really, any patch to the gstreamer package probably is going to stay in openSUSE. I don't think gstreamer will want to change this. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (4)
-
Cristian Morales Vega
-
Philipp Thomas
-
Richard Guenther
-
Wolfgang Rosenauer