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 609941 - GStreamer-WARNING **: External plugin loader failed.
GStreamer-WARNING **: External plugin loader failed.
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.10.26
Other Linux
: Normal blocker
: 0.10.27
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-02-14 20:13 UTC by Dirk Foerster
Modified: 2010-02-21 12:58 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
strace.log (99.91 KB, application/x-gzip)
2010-02-15 20:14 UTC, Dirk Foerster
Details

Description Dirk Foerster 2010-02-14 20:13:55 UTC
OS: openSUSE 11.2 / 2.6.31.12-0.1-default / x86_64

GStreamer: 0.10.26-999.pm.1000.1  (x86_64)

Installed plugins: good, bad, ugly etc. (Can provide details on request)

Problem: No webcam video feed.

Tested with: a) cheese 2.28.1-2.1.2  (x86_64).
             b) ekiga 3.2.6-2.6  (x86_64)

Command: cheese -v

Gives:
(cheese:2713): GStreamer-WARNING **: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. 
Cheese 2.28.1 
Probing devices with HAL...
Found device 046d:08aa, getting capabilities...
Detected v4l2 device: Camera         
Driver: zc3xx, version: 132608
Capabilities: 0x05000001

Probing supported video formats...
Device: Camera          (/dev/video0)

Please advice if this is a bug or whether there is something missing in my installation.
Comment 1 Sebastian Dröge (slomo) 2010-02-14 20:21:14 UTC
Yes, most likely the gstreamer packages you have are missing the external plugin loader. Do you have /usr/lib/gstreamer0.10/gstreamer-0.10/gst-plugin-scanner or /usr/libexec/gstreamer-0.10/gst-plugin-scanner or something like that?
Comment 2 Dirk Foerster 2010-02-15 15:27:33 UTC
Found: /usr/lib64/gstreamer-0.10/gst-plugin-scanner

No results for: 
/usr/lib/gstreamer0.10/gstreamer-0.10/gst-plugin-scanner
/usr/libexec/gstreamer-0.10/gst-plugin-scanner
Comment 3 Tim-Philipp Müller 2010-02-15 16:00:02 UTC
Could you run this:

 $ rm ~/.gstreamer-0.10/registry*
 $ strace -f gst-inspect-0.10 abcd 2>strace.log
 $ gzip strace.log

and then attach strace.log.gz please?
Comment 4 Dirk Foerster 2010-02-15 20:14:11 UTC
Created attachment 153862 [details]
strace.log
Comment 5 Tim-Philipp Müller 2010-02-15 22:53:03 UTC
Hrm, odd:

$ grep scanner 610017.strace 
[pid  3211] execve("/usr/lib/gstreamer-0.10/gst-plugin-scanner", ["/usr/lib/gstreamer-0.10/gst-plug"..., "-l"], [/* 77 vars */]) = -1 ENOENT (No such file or directory)

but then:

stat("/usr/lib64/gstreamer-0.10/gst-plugin-scanner", {st_mode=S_IFREG|0755, st_size=6456, ...}) = 0
Comment 6 Tim-Philipp Müller 2010-02-16 00:44:59 UTC
Right, so the packager probably builds multiarch packages by doing something like

 make libexecdir=/foo/bar

in which case the install path of the binary will be != the path set by ./configure in config.h
Comment 7 Jan Schmidt 2010-02-16 01:18:47 UTC
I think the correct way for the packaging system to do this is to pass --libexecdir=$path to the configure call.
Comment 8 Tim-Philipp Müller 2010-02-16 01:21:10 UTC
Marking as blocker for now, even though I'm not quite sure yet if we should allow this or not..
Comment 9 Tim-Philipp Müller 2010-02-16 08:34:58 UTC
I don't think we should hack around that, at least not for this release. I've committed this now, which should make the build fail if someone tries to do things like this:

commit 46beed9c60a8c60d1cde71bcfe46efe84d8a9758
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Tue Feb 16 08:26:59 2010 +0000

    build: make sure gst-plugin-scanner gets installed where we expect it
    
    Add check to make sure gst-plugin-scanner really gets installed where
    we will look for it later, ie. paths and prefixes are set at configure
    time and not specified via make.
    
    Fixes #609941.

You may want to file a bug with your distro so that they're aware of this issue.
Comment 10 Dirk Foerster 2010-02-16 12:53:15 UTC
Filed bug with distro:
https://bugzilla.novell.com/show_bug.cgi?id=580173
Comment 11 Tim-Philipp Müller 2010-02-21 12:58:36 UTC
I forgot to mention that you can work around the problem by setting the GST_PLUGIN_SCANNER environment variable to the actual location of the binary, e.g. in gnome-terminal or so:

 $ export GST_PLUGIN_SCANNER=/usr/lib64/gstreamer-0.10/gst-plugin-scanner
 $ cheese