[opensuse-factory] Applications linking against both gstreamer-0.10 and gstreamer-1.0
Since the introduction of gstreamer-1.0 into Factory we now have a mix of programs and libraries linking against one or the other. The trouble is that the gstreamer-* libraries do not use symbol versioning and in some cases progams end up linking to both versions, mostly through indirect shared library dependencies or object which are dlopen'd at runtime. E.g. currently all GTK2/3 applications indirectly link to gstreamer-1.0 through the libcanberra-gtk-module and some directly link against gstreamer-0.10 at the same time, see https://bugzilla.novell.com/show_bug.cgi?id=800963. While this particular case may be solved by removing libcanberra-gtk-module as Dominique offered, there are probably more of such cases and there is the problem that people developing on openSUSE will run into trouble when linking against certain combinations of libraries which have different gstreamer versions in their dependency tree. Identifying such cases is also not straightforward, the dependency information from repository metadata is not helpful since it only covers the package level, directly resolving library dependency trees via recursive ldd turns out to be extremely slow and also does not cover dlopen'd plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release? -- Guido Berhoerster -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options. Wolfgang -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
* Wolfgang Rosenauer
Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options.
AFAICS Firefox currently links aginst gstreamer-1.0 only indirectly through the libcanberra GTK module which could be disabled as suggested in the referenced bug. -- Guido Berhoerster -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On 6 February 2013 09:31, Wolfgang Rosenauer
Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options.
Patching gstreamer to version symbols? In the fast and ugly way: versioning *all* symbols with "GST_0.10" and/or "GST_1.0", it should be easy. But it would be good to double check if other distributions have already done this to use the same version string. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
It's explained in http://www.akkadia.org/drepper/symbol-versioning
"In case only the object file with the reference does not use
versioning but the object with the definition does, then the reference
only matches the base definition."
So it will just continue working (I think ld.so issues a warning).
On 6 February 2013 10:47, Dominique Leuenberger a.k.a. Dimstar
Quoting Cristian Morales Vega
: On 6 February 2013 09:31, Wolfgang Rosenauer
wrote: Patching gstreamer to version symbols? In the fast and ugly way: versioning *all* symbols with "GST_0.10" and/or "GST_1.0", it should be easy. But it would be good to double check if other distributions have already done this to use the same version string.
What side effect does that have on the paid / binary fluendo codec packs, which will not be rebuilt against our GST Symbols?
And the same of other 3rd-party binaries?
Dominique
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
Am 06.02.2013 10:37, schrieb Guido Berhoerster:
* Wolfgang Rosenauer
[2013-02-06 10:32]: Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options.
AFAICS Firefox currently links aginst gstreamer-1.0 only indirectly through the libcanberra GTK module which could be disabled as suggested in the referenced bug.
Not sure which Firefox you look at but probably not the openSUSE one? It links for sure to gstreamer-0.10 Wolfgang -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On 6 February 2013 09:57, Cristian Morales Vega
So it will just continue working (I think ld.so issues a warning).
I mean, they will continue having the same problems that Guido explained we have right now. If gstreamer-1.0 is loaded before gstreamer-0.10, and the plugin was linked to gstreamer-0.10 it will continue breaking. It would fix our packages, it would not do anything to improve or make worse the situation with third party software. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
* Wolfgang Rosenauer
Am 06.02.2013 10:37, schrieb Guido Berhoerster:
* Wolfgang Rosenauer
[2013-02-06 10:32]: Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options.
AFAICS Firefox currently links aginst gstreamer-1.0 only indirectly through the libcanberra GTK module which could be disabled as suggested in the referenced bug.
Not sure which Firefox you look at but probably not the openSUSE one? It links for sure to gstreamer-0.10
Sorry, I meant to say that it only links to both gstreamer versions because of the libcanberra GTK module. If that is not loaded is will not link against gstreamer-1.0. -- Guido Berhoerster -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Wed, Feb 06, 2013 at 09:40:03AM +0000, Cristian Morales Vega wrote:
On 6 February 2013 09:31, Wolfgang Rosenauer
wrote: Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options.
Patching gstreamer to version symbols? In the fast and ugly way: versioning *all* symbols with "GST_0.10" and/or "GST_1.0", it should be easy. But it would be good to double check if other distributions have already done this to use the same version string.
You will have to maintain this symbol versioning forever if you start doing it. ;) Ciao, Marcus -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On 6 February 2013 10:20, Marcus Meissner
On Wed, Feb 06, 2013 at 09:40:03AM +0000, Cristian Morales Vega wrote:
On 6 February 2013 09:31, Wolfgang Rosenauer
wrote: Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options.
Patching gstreamer to version symbols? In the fast and ugly way: versioning *all* symbols with "GST_0.10" and/or "GST_1.0", it should be easy. But it would be good to double check if other distributions have already done this to use the same version string.
You will have to maintain this symbol versioning forever if you start doing it. ;)
Ideally upstream would take the patch. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
Am 06.02.2013 11:08, schrieb Guido Berhoerster:
* Wolfgang Rosenauer
[2013-02-06 11:02]: Am 06.02.2013 10:37, schrieb Guido Berhoerster:
* Wolfgang Rosenauer
[2013-02-06 10:32]: Am 06.02.2013 10:15, schrieb Guido Berhoerster:
plugins etc. Any ideas how to systematically determine which packages are actually affected by this and how to address this probem before the 12.3 release?
I'm pretty sure that Firefox might be affected by this. It pulls in quite some gtk stuff and also links to gstreamer-0.10 (in our setup). The question for me is how to solve that. I do not see the possibility to change Firefox in time to use gstreamer-1.0 unfortunately. So the only thing I could do is disabling gstreamer for Firefox on 12.3 which will remove MP3 and H.264 support (if installed via gstreamer plugins) from Firefox. So I'm wondering if there are other options.
AFAICS Firefox currently links aginst gstreamer-1.0 only indirectly through the libcanberra GTK module which could be disabled as suggested in the referenced bug.
Not sure which Firefox you look at but probably not the openSUSE one? It links for sure to gstreamer-0.10
Sorry, I meant to say that it only links to both gstreamer versions because of the libcanberra GTK module. If that is not loaded is will not link against gstreamer-1.0.
Ok, now I understood. Sorry for the confusion. Not sure what the libcanberra GTK module is exactly doing though. canberra is used directly in Firefox as well for sound event output. Wolfgang -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
* Wolfgang Rosenauer
canberra is used directly in Firefox as well for sound event output.
Ugh, it seems that /usr/lib64/libcanberra-0.30/libcanberra-gstreamer.so is loaded on demand, so that brings in /usr/lib64/libgstreamer-1.0.so.0.5.0 and you have both gstreamer version in the same process again. -- Guido Berhoerster -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
Quoting Cristian Morales Vega
On 6 February 2013 09:31, Wolfgang Rosenauer
wrote:
Patching gstreamer to version symbols? In the fast and ugly way: versioning *all* symbols with "GST_0.10" and/or "GST_1.0", it should be easy. But it would be good to double check if other distributions have already done this to use the same version string.
What side effect does that have on the paid / binary fluendo codec packs, which will not be rebuilt against our GST Symbols? And the same of other 3rd-party binaries? Dominique -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On 6 February 2013 15:54, Dominique Leuenberger a.k.a. Dimstar
Quoting Cristian Morales Vega
: It's explained in http://www.akkadia.org/drepper/symbol-versioning
"In case only the object file with the reference does not use versioning but the object with the definition does, then the reference only matches the base definition."
So it will just continue working (I think ld.so issues a warning).
well, we can discuss and guess what upstream would / would not want..
I went to ask :)
In general, if the solution is 100% backwards aBI compatible, it's acceptable.
BUT: there are also GTpye registration clashes, which are not addressed by symbol versioning.
Any solution to that?
Can GType be explained in 10 lines so people with knowledge about ELF/linkers but ignorant in GType can contribute? Or does it need 20 pages of documentation to be understood? -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
Quoting Cristian Morales Vega
It's explained in http://www.akkadia.org/drepper/symbol-versioning
"In case only the object file with the reference does not use versioning but the object with the definition does, then the reference only matches the base definition."
So it will just continue working (I think ld.so issues a warning).
well, we can discuss and guess what upstream would / would not want.. I went to ask :) In general, if the solution is 100% backwards aBI compatible, it's acceptable. BUT: there are also GTpye registration clashes, which are not addressed by symbol versioning. Any solution to that? Dominique -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (5)
-
Cristian Morales Vega
-
Dominique Leuenberger a.k.a. Dimstar
-
Guido Berhoerster
-
Marcus Meissner
-
Wolfgang Rosenauer