2014-09-04, 20:16
Not sure if anyone has pointed this out yet, but the new 30Aug2014 build of librtmp also doesn't work in OpenELEC Helix on x86, so it's not just an R-Pi (ie. architecture) issue - it's a platform issue.
The error when librtmp.so.0 is loaded on OpenELEC Helix x86:
However in a Gotham build of OpenELEC 4.0.7, there is no problem running the new librtmp:
This is the ldd output for the system /usr/lib/librtmp.so.0:
The easiest solution would be to build with statically linked libssl/libcrypto. Building with dynamic libssl/libcrypto should be possible, as long as there is no hard dependency on OpenSSL. Building librtmp against libressl for OpenELEC Helix might be another option, though more work etc.
Code:
OpenELEC:~/lib # head -6 /storage/xbmc.log
16:52:13 T:140493183813504 NOTICE: special://profile/ is mapped to: special://masterprofile/
16:52:13 T:140493183813504 NOTICE: -----------------------------------------------------------------------
16:52:13 T:140493183813504 NOTICE: Starting Kodi (14.0-ALPHA4 Git:247f4ae). Platform: Linux x86 64-bit
16:52:13 T:140493183813504 NOTICE: Using Release Kodi x64 build
16:52:13 T:140493183813504 NOTICE: Kodi compiled Sep 2 2014 by GCC 4.9.1 for Linux x86 64-bit version 3.16.1 (200705)
16:52:13 T:140493183813504 NOTICE: Running on OpenELEC (official) - Version: devel-20140902150354-r19159-g43bef62 5.0, kernel: Linux x86 64-bit version 3.16.1
OpenELEC:~/lib # ls -la
total 296
drwxr-xr-x 2 root root 4096 Sep 4 17:57 .
drwxr-xr-x 24 root root 4096 Sep 2 14:14 ..
lrwxrwxrwx 1 root root 25 Aug 11 2013 librtmp.so -> /storage/lib/librtmp.so.0
-rwxr-xr-x 1 root root 145083 Sep 4 17:56 librtmp.so.0
OpenELEC:~/lib # ldd librtmp.so.0
linux-vdso.so.1 (0x00007fff5f3fd000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libz.so.1 => /usr/lib/libz.so.1 (0x00007f3f37618000)
libm.so.6 => /lib/libm.so.6 (0x00007f3f37313000)
libc.so.6 => /lib/libc.so.6 (0x00007f3f36f69000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3f3784b000)
The error when librtmp.so.0 is loaded on OpenELEC Helix x86:
Code:
17:53:04 T:140491324647168 ERROR: Unable to load librtmp.so.0, reason: libssl.so.1.0.0: cannot open shared object file: No such file or directory
However in a Gotham build of OpenELEC 4.0.7, there is no problem running the new librtmp:
Code:
OpenELEC:~/lib # head -6 /storage/xbmc.log
18:07:35 T:139922543662976 NOTICE: special://profile/ is mapped to: special://masterprofile/
18:07:35 T:139922543662976 NOTICE: -----------------------------------------------------------------------
18:07:35 T:139922543662976 NOTICE: Starting XBMC (13.1 Git:84725b0). Platform: x86 Linux 64-bit
18:07:35 T:139922543662976 NOTICE: Using Release XBMC x64 build, compiled Jul 9 2014 by GCC 4.9.0 for x86 Linux 64-bit 3.14.11
18:07:35 T:139922543662976 NOTICE: Running on Linux 64-bit (OpenELEC (official) - Version: 4.0.7, 3.14.11 x86_64)
18:07:35 T:139922543662976 NOTICE: Host CPU: Intel(R) Atom(TM) CPU D525 @ 1.80GHz, 4 cores available
OpenELEC:~/lib # ldd librtmp.so.0
./librtmp.so.0: /usr/lib/libssl.so.1.0.0: no version information available (required by ./librtmp.so.0)
./librtmp.so.0: /usr/lib/libcrypto.so.1.0.0: no version information available (required by ./librtmp.so.0)
linux-vdso.so.1 (0x00007fff3ddff000)
libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007fd97719d000)
libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007fd976dd2000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007fd976dc0000)
libm.so.6 => /lib/libm.so.6 (0x00007fd976aba000)
libc.so.6 => /lib/libc.so.6 (0x00007fd976721000)
libdl.so.2 => /lib/libdl.so.2 (0x00007fd97651d000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fd976306000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd977622000)
This is the ldd output for the system /usr/lib/librtmp.so.0:
Code:
OpenELEC:~ # ldd /usr/lib/librtmp.so.0
linux-vdso.so.1 (0x00007fffbe854000)
libssl.so.27 => /usr/lib/libssl.so.27 (0x00007fd6438fe000)
libcrypto.so.30 => /usr/lib/libcrypto.so.30 (0x00007fd64376d000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007fd64375b000)
libc.so.6 => /lib/libc.so.6 (0x00007fd6433b0000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd64396c000)
The easiest solution would be to build with statically linked libssl/libcrypto. Building with dynamic libssl/libcrypto should be possible, as long as there is no hard dependency on OpenSSL. Building librtmp against libressl for OpenELEC Helix might be another option, though more work etc.