Acceptable use of rpath

Andrew Hunter andrew at aehunter.net
Thu Jan 24 21:42:39 GMT 2008


Hello everyone,

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 [1][2], 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[3] 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:
 >> http://wiki.debian.org/RpathIssue
>
>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 :)

Thanks,

Andrew

[1] http://www.openlibraries.org
[2] http://revu.ubuntuwire.com/details.py?package=openlibraries
[3] http://www.jahshaka.org
[4] http://wiki.debian.org/RpathIssue



More information about the Ubuntu-motu mailing list