[Fwd: Acceptable use of rpath]

Andrew Hunter andy.e.hunter at gmail.com
Thu Jan 31 23:27:28 UTC 2008


Hey Everyone,

I have posted this to -motu list and not received a response after a
week, I was recommended to cross-post.

After doing some additional research, the rpath stays internal. I
compiled Jahwidgets (part of the Jahshaka project) and dumped the .so
headers and there are no rpaths there.

As for attempting to mangle the install directories, this breaks any
downstream programs.

So now I open it up the devel list?

Perhaps we can get a definitive policy on what are the appropriate
exceptions for rpath?

Thanks,

Andrew

-------- Original Message --------
Subject: Acceptable use of rpath
Date: Thu, 24 Jan 2008 21:42:39 +0000
From: Andrew Hunter <andrew at aehunter.net>
To: Ubuntu MOTU Mailing List <ubuntu-motu at lists.ubuntu.com>

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-devel-discuss mailing list