Many people use prelinking these days. Unfortunately this causes issues with GStreamer's plugin linking method. I'd expect the ebuild to check that GStreamer and its plugins are compiled with prelinking disabled or at least emit a warning that it will most likely not work and advise the user to disable prelinking. Reproducible: Always Steps to Reproduce: 1. make sure prelinking is enabled 2. emerge gstreamer and gst-plugins 3. run gst-inspect adder Actual Results: You get this output: ** (process:31081): CRITICAL **: how to remove plugins? GStreamer-CRITICAL **: Factory for `adder' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'adder' and is expected in file '/usr/lib/gstreamer-0.8/libgstadder.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' Followed by some normal output. Expected Results: There should be output without these critical warnings, like when running "gst-inspect fakesrc". You can get the actual error (undefined symbols) by running "gst-inspect --gst-debug=GST_PLUGIN_LOADING:5 adder" which will show the relevant debugging output.
cc-ing prelink maintainer. how to best save these libs from prelink cretin ?
short answer: set the PRELINK_PATH_MASK variable in /etc/env.d/ for example I have: saj@saj ~ $ cat /etc/env.d/60prelink PRELINK_PATH_MASK=/usr/lib/wine:/usr/lib/valgrind:/opt PRELINK_PATH="" Do an env-update and prelink will skip those directories.
added env mask to 0.8.9-r1 & a little postinst note. That should fix this over time.
Is there another fix needed for that? I reinstalled gstreamer many times and it's shown that it's not prelinked but I still get that error. Any ideas or something I might have forgotten?
I also get this error with gstreamer which is not prelinked (just compiled it) and I do not use any strange flags in my make.conf (no LDFLAGS, just CFLAGS="-O3 -march=i686 -O3" atm.). I have ACCEPT_KEYWORDS=~x86...
You get this error when running gst-inspect-0.8 adder ? ** (process:31081): CRITICAL **: how to remove plugins? GStreamer-CRITICAL **: Factory for `adder' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'adder' and is expected in file '/usr/lib/gstreamer-0.8/libgstadder.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' If so please attach your /var/lib/cache/gstreamer-0.8/registry.xml and your emerge info
# gst-inspect-0.8 adder ** (process:756): CRITICAL **: how to remove plugins? (process:756): GStreamer-CRITICAL **: Factory for `adder' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'adder' and is expected in file '/usr/lib/gstreamer-0.8/libgstadder.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' couldn't construct element for some reason Plugin Details: Name: adder Description: Adds multiple streams Filename: /usr/lib/gstreamer-0.8/libgstadder.so Version: 0.8.7 License: LGPL Package: GStreamer source release Origin URL: http://gstreamer.freedesktop.org/ adder: Adder 1 features: +-- 1 elements
Portage 2.0.51.19 (default-linux/x86/2004.2/gcc34, gcc-3.4.3, glibc-2.3.4.20050125-r0, 2.6.11-cko1 i686) ================================================================= System uname: 2.6.11-cko1 i686 Intel(R) Pentium(R) M processor 1.50GHz Gentoo Base System version 1.6.9 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Feb 17 2005, 21:36:43)] distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.3 [enabled] dev-lang/python: 2.3.5 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.7.9-r1, 1.8.5-r3, 1.6.3, 1.5, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r4 sys-devel/libtool: 1.5.10-r5 virtual/os-headers: 2.6.8.1-r1, 2.6.8.1-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -mcpu=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distcc distlocks sandbox sfperms" GENTOO_MIRRORS="http://ftp.linux.ee/pub/gentoo/distfiles/" LANG="C" LC_ALL="C" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/root/overlay /root/fluid /root/overlay2" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="x86" Unset: ASFLAGS, CBUILD, CTARGET, LDFLAGS
Created attachment 53008 [details] /var/lib/cache/gstreamer-0.8/registry.xml
I'm unsure what exactly fixed my issue but after (again) re-emerging all gstreamer packages, this time using normal CFLAGS="-O3 -march=pentium-m -mtune=pentium-m -pipe -ftracer", everything seems to work fine.
*** Bug 91880 has been marked as a duplicate of this bug. ***
*** Bug 92849 has been marked as a duplicate of this bug. ***
I'm not sure what I haven't done, but I'm running circles around this and nothing is changing the fact that it doesn't work for me. I've tried emerging without prelinking, LDFLAGS, using only standard CFLAGS, double checked my alsa config. mpg123 works fine, /dev/sound has everything it should. Utterly stumped... Additional info: http://bugs.gentoo.org/show_bug.cgi?id=91880
I'm also seeing this, I do prelink, but I followed the procedure to remove all prelinking and re-prelink with /usr/lib/gstreamer-0.8 in the PRELINK_PATH_MASK environment variable. Still no luck. I have yet to try compiling without a hardened gcc, however, it seems that may do the trick from Bug 85018 (which may be a duplicate of this) and from http://forums.gentoo.org/viewtopic-p-2389234.html. Since this bug is still happening to people, would it be possible to mark it as open? It's much easier to track it down if it's still open than hunting through all the bugs marked as resolved... Also, has anyone determined precisely why this no longer works with the hardened kernel, whether it ever did, and if it's possible to fix upstream so that it doesn't do it anymore. I've been having headaches all day with the ati driver and my hardened toolchain, I feel like I'm being punished for trying to make my software slightly more secure... Perhaps just adding a check in the ebuild, that if gcc has the hardened flag set to bring up another ewarn or an ebeep or whatever saying that it's unlikely to work? Any suggestions to make it more intuitive to users why the media system embedded throughout their system just stops (with error messages that point to the registry rather than the compilation method) would be a big help. Thanks... Mike 5:\
The mask does not exclude: /usr/lib/libgstreamer-0.8.so.1.4.0 media-libs/gstreamer-0.8.11 I'm still having stuttering problems.
I might be wrong on this, but I think the prelinking is a problem with seperate gst plugins, not with the actual main libs. As far as I've been able to reproduce this, it was fixed with making the plugin dirs prelink safe.