Acceptable use of rpath
andrew at aehunter.net
Thu Jan 24 21:42:39 GMT 2008
Based on conversations on irc, I thought it would be appropriate to take
this question to the general knowledge of the MOTU team. I am packaging
Open Libraries , a set of cross platform multimedia libs developed
out the of the Jahshaka project that leverage FFmpeg and MLT.
The problem that I have encountered, most likely due to the main devs of
the projects coming from a non-linux background, is the setting of
rpath in some, but not all, of the component libraries. My attempts to
strip the rpaths from the libs have resulted in general breakage. This
is due to the upstream installing the libs to a (very) nonstandard
directory structure. Specifically, Open Libraries are installed to
$(prefix)/lib/openlibraries-<foo>/<component>/lib or plugin/. The rpath
in the plugin .sos define the location of the the main libraries.
I have examined Debian's policy on rpath and believe that
openlibraries falls within the exception to it as:
1) The rpaths are only used internally between libs
2) It is distributed as an entire package. It is highly unlikely that
one would only build one of the components.
I have been in contact with the upstream and they have stripped out most
of the rpaths down to what exists now:
[quoted from emails with upstream]
>Well, these are due to dependencies on the Makefiles. Without
>significantly alter how this whole thing gets compiled and installed
>they're to be expected.
>The plan was to have side by side installations of different versions
>and that's why it was done this way.
>> Here is a link to why Debian discourages the use of rpath:
>Fair enough. But we use libtool here and libtool must be adding them
>since no rpaths are now present in configure. Makefile.am or m4
>macros of both openlibraries and jahshaka.
As I see it, I have several options:
1) Leave it as it is. I would not change any of the rpaths or mangle the
install to have it install to the standard directories. The reasons for
doing this is that it would not break compatibility with any apps that
have been written with OpenLibs.
2) Mangle the packages. Change all rpaths to NEEDED, install to standard
directories and find a way to make things work.
3) Pester upstream to fix things.
I will be doing 3) regardless, so my question is related to 1) and 2).
What defines an acceptable use of rpath :)
More information about the Ubuntu-motu