manio / vdr-plugin-dvbapi

VDR dvbapi plugin for use with OSCam
http://www.streamboard.tv/wbb2/thread.php?threadid=40060
GNU General Public License v2.0
58 stars 25 forks source link

undefined symbol: dvbcsa_bs_key_set #113

Closed AndreyPavlenko closed 8 years ago

AndreyPavlenko commented 8 years ago

I've compiled the plugin against libdvbcsa as described in the INSTALL guide: make LIBDVBCSA=1 and now I'm getting this error:

ERROR: /usr/lib/vdr/plugins/libvdr-dvbapi.so.2.3.1: undefined symbol: dvbcsa_bs_key_set

The packages libdvbcsa1 and libdvbcsa-dev are installed on my system.

manio commented 8 years ago

This means that you are probably installed/compiled the the plugin wrongly - you sure you was using correct vdr libraries? If unsure you can try make clean in the dvbapi plugin dir, and then make install in main vdr source directory.

AndreyPavlenko commented 8 years ago

Yes, I'm sure. If I remove the LIBDVBCSA=1 option, everything works fine.

manio commented 8 years ago

Because it is not using libdvbcsa - that's obvious. I am sure that the plugin works ok with libdvbcsa. Your problem rather means that the plugin is not correctly linked with libdvbcsa library. You can also try to check it with ldd.

AndreyPavlenko commented 8 years ago

I have no doubt that the plugin works ok with libdvbcsa, but I think there is an issue with the build scrips. Or I'm doing something wrong. I'm building a deb package under deb bootstrap environment with the vdr-dev and libdvbcsa-dev packages installed. Here is my build log - http://pastebin.com/eB7DjbdX.

manio commented 8 years ago

Rather the latter case. Let's start from beginning: Good that you've pointed something about your distribution - you did not mention it earlier.

What build scripts you are talking about? Makefile? I am not providing any debian build scripts. The plugin is building and working correctly in vanilla vdr (when you use original vdr tarballs). It is building and working ok here also in debian with libdvbcsa deb packages installed - but I am installing it manually with "make install-plugins" in main vdr sources dir.

I am not seeing any issue here. Please reopen if you think different or if you see any issue in the Makefile. Closing for now.

AndreyPavlenko commented 8 years ago

I'm talking about Makefile. The debian build scripts just run /usr/bin/make LIBDVBCSA=1, as you can see in the log. It's running without the vdr sources. Only the vdr-dev package is installed in the build environment. I have no problems with the package build. The package is available here https://launchpad.net/~aap/+archive/ubuntu/vdr/+packages?field.name_filter=dvbapi&field.status_filter=published&field.series_filter=xenial and it works just fine unless I'm building against libdvbcsa. In this case the package is built but it seems not linked with libdvbcsa.

manio commented 8 years ago

You are building it wrong! It is not only necessary to pass the LIBDVBCSA=1 to the make target, but also for the make-install target!

Look at my build log: http://pastebin.com/G5yrpzgF

In your log you are building with LIBDVBCSA=1 but installing without it. You can see in your log that during install the FFdecsa is compiled!

I was also asking you to provide the ldd output - you did not. It is very easy to reproduce your problem: in the vdr source dir:

make plugins LIBDVBCSA=1
make install-plugins        #LIBDVBCSA=1 is missing!!!!

If you do the ldd you can see that it is not linked with the libdvbcsa: http://pastebin.com/X1W16546 And it should be: http://pastebin.com/QcXiMPXC

Fix your build scripts. It is not a problem in the Makefile.

AndreyPavlenko commented 8 years ago

You are right. I do not install with LIBDVBCSA=1. I just do make LIBDVBCSA=1 as described here - https://github.com/manio/vdr-plugin-dvbapi/blob/master/INSTALL:

If you want to compile the plugin against libdvbcsa instead of default FFdecsa then you need to pass additinal argument when compiling the plugin, eg:

make LIBDVBCSA=1

Thanks, I'll add LIBDVBCSA=1 to the install target as well.