totem-2.28.5-r2 youtube plugin (youtube use flag) is not working without python use flag enabled
Steps to Reproduce:
1. Compile totem-2.28.5-r2 with use flag youtube but without python
2. Run totem
3. Try to turn on youtube plugin
Can't load YouTube plugin
And, what error do you get when running totem on a terminal and getting the failure?
I forgot about it, sorry
/usr/lib/totem/plugins/youtube/libyoutube.so: undefined symbol: totem_cell_renderer_video_new
would be interesting to see where is this symbol defined. The youtube plugin has been reimplemented in full C in 2.28 so I doubt it really depends on python use flag.
$ grep -r totem_cell_renderer_video_new *
bindings/python/totem.defs: (c-name "totem_cell_renderer_video_new")
src/totem-cell-renderer-video.c: * totem_cell_renderer_video_new:
src/totem-cell-renderer-video.c:totem_cell_renderer_video_new (gboolean use_placeholder)
src/totem-cell-renderer-video.h:TotemCellRendererVideo *totem_cell_renderer_video_new (gboolean use_placeholder);
src/plugins/youtube/totem-youtube.c: renderer = GTK_CELL_RENDERER (totem_cell_renderer_video_new (TRUE));
src/plugins/tracker/totem-tracker-widget.c: renderer = totem_cell_renderer_video_new (TRUE);
src/plugins/mythtv/totem-mythtv.c: renderer = totem_cell_renderer_video_new (TRUE);
Seems that it needs "--enable-python" to be passed :-/
> src/totem-cell-renderer-video.c: * totem_cell_renderer_video_new:
> src/totem-cell-renderer-video.c:totem_cell_renderer_video_new (gboolean use_placeholder)
it rather looks like an underlinking issue or something like that.
After checking the code, the problem is that the build system uses an intermediate library that is not installed. It's form is a static archive and the problem is that when USE="-python", there is nothing pulling the totem_cell_* symbols into the main binary and as such the code gets removed by gcc.
The result is that the code is not available to plugins anymore. It's a classic but I can't put my hands on how to fix this right now. Something about forcing the export of a list of symbols, ...
Making the intermediate library is real lib should also work since shared objects export all of their symbols.
This is workarounded for now to allow Gnome 2.28 stabilization, once a fix is found, I will be happy to commit it
As can be seen in upstream report, this will probably take a lot of time to be fixed... maybe we should simply force "--enable-python" until then with "youtube" USE flag, what do you think?
(In reply to comment #8)
> As can be seen in upstream report, this will probably take a lot of time to be
> fixed... maybe we should simply force "--enable-python" until then with
> "youtube" USE flag, what do you think?
Will do this if nobody disagrees as upstream bug won't be solved in the near future (I think)
+*totem-2.32.0-r2 (05 Jun 2011)
+ 05 Jun 2011; Pacho Ramos <email@example.com> +totem-2.32.0-r2.ebuild:
+ Try to handle a bit better bug #316409: youtube plugin needs --enable-python
+ to be passed due upstream bug #572713, we was workarounding this defaulting
+ to USE=+python, after this change, people will be able to set USE=-python to
+ skip python based plugins but python RDEPEND will still be pulled in by
+ 'youtube' USE flag as it still needs it. Also add some comments about vala
+ plugins that will probably be enabled in totem-3.