[opensuse-factory] Re: [opensuse-packaging] Re: -rpath /usr/lib64/modules
![](https://seccdn.libravatar.org/avatar/764c965aec778ca830c3c46e8961926f.jpg?s=120&d=mm&r=g)
Le 10/12/2014 00:05, Michael Ströder a écrit :
Malcolm wrote:
On Tue 09 Dec 2014 09:41:02 PM CST, Michael Ströder wrote:
I'm still trying to get this to build:
https://build.opensuse.org/package/show/home:stroeder:branches:network:ldap:...
Although I set ./configure --libexecdir=/usr/lib64 for some reason the build log shows that the OpenLDAP standard backend and overlay modules get installed into ${RPM_BUILD_ROOT}/usr/lib64/modules instead of ${RPM_BUILD_ROOT}/usr/lib64/openldap.
Is /usr/lib64/modules coming from some magic macro?
Any hint is appreciated. According to the 'official' version developed at; https://build.opensuse.org/package/view_file/network:ldap/openldap2/openldap...
It should be;
--libexecdir=/usr/lib/openldap Is that really still the way to go on 64-bit platforms?
I have some doubts. E.g. authorative DNS server package pdns places backend modules in /usr/lib64/pdns/
Ciao, Michael.
This is difference betwen libdir and libexecdir. Scripts are usually installed into /usr/lib as they are not arch-dependent. Anyway, have a try ! You'll see libexecdir corresponds to /usr/lib -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/5b748275c3dbb1ceee18ed554486547d.jpg?s=120&d=mm&r=g)
On Wednesday 2014-12-10 00:07, denisart benjamin2 wrote:
Le 10/12/2014 00:05, Michael Ströder a écrit :
Malcolm wrote:
It should be; --libexecdir=/usr/lib/openldap
Is that really still the way to go on 64-bit platforms? I have some doubts. E.g. authorative DNS server package pdns places backend modules in /usr/lib64/pdns/
This is difference betwen libdir and libexecdir. Scripts are usually installed into /usr/lib as they are not arch-dependent.
First, libexecdir is for executable subcomponents; https://www.gnu.org/prep/standards/html_node/Directory-Variables.html has the details. It does not really have anything to do with arch-(in)dependency. Whether you place modules in ${libexecdir} or ${libdir} is ultimately a personal choice. The only thing that a developer needs to be aware of is that, if there is a public library loading plugins, there is a chance that this library may exist in multiple formats, and as a result, the plugins, too, need to be provided in matching formats. For that to work, they cannot occupy the same path. And so, plugins loaded by /usr/lib64/libxtables.so.10 are located in /usr/lib64/xtables, and those loaded by /usr/lib/libxtables.so.10 are in /usr/lib/xtables on SUSE. Consider Perl on the other hand, it uses the locations /usr/lib/perl/5.20.1/x86_64-linux-thread-multi (which _could_ be seen as ${libexecdir}/perl/5.20.1/x86_64) and /usr/lib/perl/5.20.1/i586-linux-thread-multi instead.
Anyway, have a try ! You'll see libexecdir corresponds to /usr/lib
You probably meant to say: libexecdir coincides with libdir. (bad) Which is an artifact of openSUSE (and some other distros) as a result of following FHS too strictly. The GNU build system, used by more than 60% of all software in openSUSE, _does_ make a distinction between libdir and libexecdir. And in Debian, they started redefining libdir to /usr/lib/<platform> (for a different cause, though), so it no longer coincides. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/764c965aec778ca830c3c46e8961926f.jpg?s=120&d=mm&r=g)
Le 10/12/2014 00:46, Jan Engelhardt a écrit :
On Wednesday 2014-12-10 00:07, denisart benjamin2 wrote:
Le 10/12/2014 00:05, Michael Ströder a écrit :
Malcolm wrote:
It should be; --libexecdir=/usr/lib/openldap Is that really still the way to go on 64-bit platforms? I have some doubts. E.g. authorative DNS server package pdns places backend modules in /usr/lib64/pdns/ This is difference betwen libdir and libexecdir. Scripts are usually installed into /usr/lib as they are not arch-dependent. First, libexecdir is for executable subcomponents; https://www.gnu.org/prep/standards/html_node/Directory-Variables.html has the details. It does not really have anything to do with arch-(in)dependency.
Whether you place modules in ${libexecdir} or ${libdir} is ultimately a personal choice. The only thing that a developer needs to be aware of is that, if there is a public library loading plugins, there is a chance that this library may exist in multiple formats, and as a result, the plugins, too, need to be provided in matching formats. For that to work, they cannot occupy the same path.
And so, plugins loaded by /usr/lib64/libxtables.so.10 are located in /usr/lib64/xtables, and those loaded by /usr/lib/libxtables.so.10 are in /usr/lib/xtables on SUSE.
Consider Perl on the other hand, it uses the locations /usr/lib/perl/5.20.1/x86_64-linux-thread-multi (which _could_ be seen as ${libexecdir}/perl/5.20.1/x86_64) and /usr/lib/perl/5.20.1/i586-linux-thread-multi instead.
Anyway, have a try ! You'll see libexecdir corresponds to /usr/lib You probably meant to say: libexecdir coincides with libdir. (bad)
Which is an artifact of openSUSE (and some other distros) as a result of following FHS too strictly.
The GNU build system, used by more than 60% of all software in openSUSE, _does_ make a distinction between libdir and libexecdir. And in Debian, they started redefining libdir to /usr/lib/<platform> (for a different cause, though), so it no longer coincides. Nop, that wasn't what I meant. I mean libexecdir coincides to /usr/lib/, whatever you're on 32 or 64bits arch system. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (2)
-
denisart benjamin2
-
Jan Engelhardt