Bug 81512 - GStreamer ebuild needs to disable prelinking
|
Bug#:
81512
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: gstreamer@gentoo.org
|
Reported By: otte@gnome.org
|
|
Component: Ebuilds
|
|
|
URL:
|
|
Summary: GStreamer ebuild needs to disable prelinking
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-02-10 09:14 0000
|
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
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.