Comment 1 for bug 1637946

Revision history for this message
Sergio Schvezov (sergiusens) wrote : Re: [Bug 1637946] [NEW] automatic ldd resolution fails with pulse

El 31 oct. 2016 10:40 AM, "Harald Sitter" <email address hidden>
escribió:
>
> Public bug reported:
>
> This is a bit of a special thing and it may well be not solvable.
>
> We (KDE) are building a content snap with all our core libraries. To
> then build aginst libraries in this content snap we also create a
> tarball of the stage of the content snap (i.e. a tar containing every
> libray and header pertaining to the content snap).

This is the current recommended way to this. We went over it at the last
Sprint. There are some good things coming to make this better by the way
like parts caching.

> To consume this one would have a dummy 'dump' part that uses the tarball
> as source. This works for the most part. It does however not work for
> pulseaudio. Specifically usr/lib/x86_64-linux-gnu/libpulse.so.0 needs
> usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-8.0.so (note the
> subdir). Since we have both in the content snap and the associated dev
> tarball, a consumer should not need to install this, ld however falls
> flat on the face.
>
> In a build environment libpulse0 would not be a stage-package, as such
> not installed in the system, and thus ld won't be able to resolve
> pulsecommon (supposedly because of the subdir).
>
> Causes errors like this while trying to link a cmake project:
> /usr/bin/ld: warning: libpulsecommon-8.0.so, needed by
/var/lib/jenkins-slave/nci/workspace/kruler-release_amd64.snap/stage/usr/lib/x86_64-linux-gnu/libpulse.so.0,
not found (try using -rpath or -rpath-link)
>
/var/lib/jenkins-slave/nci/workspace/kruler-release_amd64.snap/stage/usr/lib/x86_64-linux-gnu/libpulse.so.0:
undefined reference to `pa_smoother_resume'

This is indeed an issue and we do have a task/action in our spring notes to
not ldd crawl items that are in stage.