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

marcin at saepia.net marcin at saepia.net
Sun Mar 13 19:45:42 UTC 2016


Ok, it seems to be a bug in Cerbero, see
https://bugzilla.gnome.org/show_bug.cgi?id=763576

m.

2016-03-13 19:59 GMT+01:00 marcin at saepia.net <marcin at saepia.net>:

> I have found out that libtool script in the broken library generated
> while running ./configure --prefix /root/cerbero/dist/android_armv7
> --libdir /root/cerbero/dist/android_armv7/lib --disable-maintainer-mode
> --disable-silent-rules --disable-introspection --host=arm-linux-androideabi
> has version_type=none while one that builds has this variable properly
> set to linux. That difference later causes libtool to not add symlinks.
>
> Can anyone here give me any hint where should I seek for what causes
> invalid host recognition while generating libtool?
>
>
> Marcin
>
> 2016-03-12 20:33 GMT+01:00 marcin at saepia.net <marcin at saepia.net>:
>
>> 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/20160313/42ac9cd1/attachment-0001.html>


More information about the gstreamer-devel mailing list