Cerbero not including version-info in the shared library .so file

marcin at saepia.net marcin at saepia.net
Sat Mar 12 19:33:13 UTC 2016


Hello,

I want to extend Cerbero build system in order to build this library:
http://github.com/mspanc/vspec

I have created the recipe:

class Recipe(recipe.Recipe):
    name = 'libvspec-1.0'
    version = '0.9.0'
    licenses = [License.LGPLv2Plus]
    remotes = {'origin': 'https://github.com/mspanc/vspec.git'}
    commit = 'origin/master'
    deps = ['glib']
    autoreconf = True
    files_libs = ['libvspec-1.0']
    files_devel = ['include/libvspec-1.0', 'lib/pkgconfig/libvspec-1.0.pc']

My problem is that libs are not included in the package that relies on the
lib.

I've found out that Cerbero seeks for libraries that have .so.* suffix so
they must use libtool versioning. I've added libtool -version-info. The
issue is that if I build my library manually on my ubuntu box, libtool
creates appropriate symlinks containing version info during make install.
However, if I run the same build within Cerbero, they are ignored and only
.so file is built, which results in Cerbero not recognizing it. Anyone
knows, why?

Below log from Cerbero's make install:

Making install in src
make[1]: Entering directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
make[2]: Entering directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
 /bin/mkdir -p '/root/cerbero/dist/android_armv7/lib'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libvspec-1.0.la
'/root/cerbero/dist/android_armv7/lib'
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.so
/root/cerbero/dist/android_armv7/lib/libvspec-1.0.so
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.lai
/root/cerbero/dist/android_armv7/lib/libvspec-1.0.la
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.a
/root/cerbero/dist/android_armv7/lib/libvspec-1.0.a
libtool: install: chmod 644
/root/cerbero/dist/android_armv7/lib/libvspec-1.0.a
libtool: install: arm-linux-androideabi-ranlib
/root/cerbero/dist/android_armv7/lib/libvspec-1.0.a
 /bin/mkdir -p '/root/cerbero/dist/android_armv7/share/vala/vapi'
 /usr/bin/install -c -m 644 libvspec-1.0.vapi libvspec-1.0.deps
'/root/cerbero/dist/android_armv7/share/vala/vapi'
 /bin/mkdir -p '/root/cerbero/dist/android_armv7/include/libvspec-1.0'
 /usr/bin/install -c -m 644 libvspec.h
'/root/cerbero/dist/android_armv7/include/libvspec-1.0'
 /bin/mkdir -p '/root/cerbero/dist/android_armv7/lib/pkgconfig'
 /usr/bin/install -c -m 644 libvspec-1.0.pc
'/root/cerbero/dist/android_armv7/lib/pkgconfig'
make[2]: Leaving directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
make[1]: Leaving directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
make[1]: Entering directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
make[2]: Entering directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
make[1]: Leaving directory
`/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
Running command 'make install'

And the same command on my ubuntu 14.04 box:

$ LC_ALL=C sudo make install
Making install in src
make[1]: Entering directory `/home/marcin/aktivitis/radiokit/vspec/src'
make[2]: Entering directory `/home/marcin/aktivitis/radiokit/vspec/src'
 /bin/mkdir -p '/usr/local/lib'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libvspec-1.0.la
'/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.so.1.0.0
/usr/local/lib/libvspec-1.0.so.1.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libvspec-1.0.so.1.0.0
libvspec-1.0.so.1 || { rm -f libvspec-1.0.so.1 && ln -s
libvspec-1.0.so.1.0.0 libvspec-1.0.so.1; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libvspec-1.0.so.1.0.0
libvspec-1.0.so || { rm -f libvspec-1.0.so && ln -s libvspec-1.0.so.1.0.0
libvspec-1.0.so; }; })
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.lai /usr/local/lib/
libvspec-1.0.la
libtool: install: /usr/bin/install -c .libs/libvspec-1.0.a
/usr/local/lib/libvspec-1.0.a
libtool: install: chmod 644 /usr/local/lib/libvspec-1.0.a
libtool: install: ranlib /usr/local/lib/libvspec-1.0.a
libtool: finish:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin"
ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /bin/mkdir -p '/usr/local/share/vala/vapi'
 /usr/bin/install -c -m 644 libvspec-1.0.vapi libvspec-1.0.deps
'/usr/local/share/vala/vapi'
 /bin/mkdir -p '/usr/local/include/libvspec-1.0'
 /usr/bin/install -c -m 644 libvspec.h '/usr/local/include/libvspec-1.0'
 /bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libvspec-1.0.pc '/usr/local/lib/pkgconfig'
make[2]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec/src'
make[1]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec/src'
make[1]: Entering directory `/home/marcin/aktivitis/radiokit/vspec'
make[2]: Entering directory `/home/marcin/aktivitis/radiokit/vspec'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec'
make[1]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec'

Thanks,

Marcin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160312/bec8d27c/attachment-0001.html>


More information about the gstreamer-devel mailing list