After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 444049 - cacasink doesn't ask for libs
cacasink doesn't ask for libs
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.12
Other All
: Normal minor
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-06-04 18:16 UTC by Steve Fink
Modified: 2007-06-06 07:52 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Steve Fink 2007-06-04 18:16:46 UTC
When I write a simple test program using gstreamer, and then run it with GST_DEBUG='*:2', I get error messages from cacasink when the plugin is loaded because it can't find symbols from curses, slang, and X11. They're harmless, since I'm not using cacasink, but they're annoying enough that I'm now linking my app with -lcurses -lslang -lX11 just so that cacasink will find what it wants and shut up. It would be nice if it linked with them itself.


Other information:
Comment 1 Tim-Philipp Müller 2007-06-05 09:06:32 UTC
I don't get these with CVS.

What version of gst-plugins-good do you have?

 $ gst-inspect-0.10 autoaudiosink | grep Version


What's the output of:

 $ ldd /usr/lib/libcaca.so

on your system?

What distro + distro version do you run?
Comment 2 Steve Fink 2007-06-05 17:43:33 UTC
$ gst-inspect-0.10 autoaudiosink | grep Version
  Version:              0.10.5
$ ldd /usr/lib/libcaca.so
ldd: /usr/lib/libcaca.so: No such file or directory
Hmm... well, that is a symlink to a nonexistent file. But:
$ ldd /usr/lib/gstreamer-0.10/libgstcacasink.so
        libgstbase-0.10.so.0 => /usr/lib/libgstbase-0.10.so.0 (0x009df000)
        libgstreamer-0.10.so.0 => /usr/lib/libgstreamer-0.10.so.0 (0x008aa000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00d61000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00288000)
        libdl.so.2 => /lib/libdl.so.2 (0x00dd4000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00dec000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00111000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00eb4000)
        libz.so.1 => /usr/lib/libz.so.1 (0x0023d000)
        libm.so.6 => /lib/tls/libm.so.6 (0x00e7b000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x0028c000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00ec5000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x004cb000)
$ nm /usr/lib/gstreamer-0.10/libgstcacasink.so | fgrep initscr
         U initscr

I am using CentOS 3.5, with gstreamer compiled from the 0.10.12 source.

% GST_DEBUG='*:2' gst-launch-0.10 filesrc location=/dev/null ! cacasink
0:00:00.058830000 31014 0x9f07058 WARN    GST_PLUGIN_LOADING gstplugin.c:414:gst_plugin_load_file: module_open failed: /usr/lib/gstreamer-0.10/libgstcacasink.so: undefined symbol: initscr
0:00:00.059133000 31014 0x9f07058 WARN    GST_PLUGIN_LOADING gstplugin.c:878:gst_plugin_load_by_name: load_plugin error: Opening module failed
 
0:00:00.059169000 31014 0x9f07058 WARN    GST_PLUGIN_LOADING gstpluginfeature.c:134:gst_plugin_feature_load: Failed to load plugin containing feature 'cacasink'.
0:00:00.059203000 31014 0x9f07058 WARN   GST_ELEMENT_FACTORY gstelementfactory.c:405:gst_element_factory_create:<elementfactory157> loading plugin returned NULL!
0:00:00.059237000 31014 0x9f07058 ERROR         GST_PIPELINE ./grammar.y:494:_gst_parse__yyparse: no element "cacasink"
WARNING: erroneous pipeline: no element "cacasink"
Comment 3 David Schleef 2007-06-05 20:08:55 UTC
Works fine here.  It looks like your distro has a broken libcaca, especially since you say it has a broken symlink.
Comment 4 Steve Fink 2007-06-05 21:55:06 UTC
The /usr/lib/libcaca broken symlink is because the libcaca-devel RPM doesn't depend on the libcaca RPM, which is kind of silly. I installed the libcaca RPM and now have a correct symlink. ldd /usr/lib/libcaca.so now shows all of the needed libraries -- but gstreamer still can't load it.

Ah! If I recompile gst-plugins-good after installing the libcaca RPM, ldd on libgstcacasink.so now points to libcaca.

So there's certainly a bug in libcaca-devel (it should depend on libcaca). I wonder if there's also a bug in the autoconf caca autodetection, where it is happy to build the cacasink plugin (incorrectly) when there's no actual libcaca to link to?
Comment 5 David Schleef 2007-06-05 22:36:23 UTC
Closing, not a GStreamer bug.