http://gnashdev.org/?q=node/42 Proposed ebuild follow, based on net-www/gnash-0.8.0 Reproducible: Always
Created attachment 129599 [details] gnash-0.8.1.ebuild Doesn't deal with all building possibility but enough for firefox plugin
Please review http://www.gentoo.org/doc/en/bugzilla-howto.xml#doc_chap6 (Zero-day bump requests).
I like 0-days :) Well, please give me a better ebuild that deals with the options and I will add it.
# emerge -va =gnash-0.8.1 These are the packages that would be merged, in order: Calculating dependencies \ !!! Invalid or corrupt dependency specification: Conditional without parenthesis: 'gtk?' ('ebuild', '/', 'net-www/gnash-0.8.1', 'merge') agg? ( >=x11-libs/agg-2.5 ) cairo? ( x11-libs/cairo ) opengl? ( virtual/opengl gtk? x11-libs/gtkglext ) kde? ( kde-base/kdelibs ) xml? ( dev-libs/libxml2 ) sys-libs/zlib media-libs/jpeg media-libs/libpng net-misc/curl mysql? ( virtua/mysql ) ffmpeg? ( media-video/ffmpeg ) gstreamer? ( media-libs/gstreamer || ( media-plugins/gst-plugins-ffmpeg media-plugins/gst-plugins-mad ) ) !gstreamer? ( !ffmpeg? ( media-libs/libsdl ) ) dev-libs/boost x11-libs/libX11 x11-libs/libXi x11-libs/libXmu x11-libs/libXt x11-proto/xproto dev-util/pkgconfig =sys-devel/automake-1.9* >=sys-devel/autoconf-2.59 sys-devel/libtool This package can not be installed. Please notify the 'net-www/gnash-0.8.1' package maintainer about this problem. Add parenthesis around x11-libs/gtkglext and it'll work. Looks to me like all the interesting possibilities (3 renderers, 2 media handlers, 2 GUIs, 2 plugins) are catered for. Only strange thing is that the 'mad' media handler is not available any more. Or is it enabled by default ? In any case, the 'eerror' text mentions mad as an option, without testing for it. Works for me on konqueror (not using gnas on firefox) with USE="ffmpeg gstreamer kde konqueror nsplugin opengl xml -agg -cairo -gtk"
Created attachment 130984 [details] updated ebuild (hopefully) fixed some mistakes in the ebuild. Works for me in amd64 with USE="cairo ffmpeg gstreamer gtk nsplugin opengl xml -agg -kde -konqueror"
Comments on the updated ebuild: paludis doesn't like "opengl?(" and "gtk?(". Inserting a space between "?" and "(" fixes that. The Firefox plugin isn't actually installed unless "gtk" is enabled. (the /usr/lib/nsbrowser/plugins/libgnashplugin.so symlink is created, but the file it points to doesn't exist) It looks like either "kde" or "gtk" needs to be enabled for gnash to be useful. If neither is, running the 'gnash' command gives: Could not find any <gui>-gnash executable under directory /usr/bin, with <gui> in . It's working beautifully for me now, though.
> The Firefox plugin isn't actually installed unless "gtk" is enabled. (the > /usr/lib/nsbrowser/plugins/libgnashplugin.so symlink is created, but the file > it points to doesn't exist) It's the same for konqueror plugin. I'm submitting updated ebuild with added checks.
Created attachment 132052 [details] ebuld with additional checks
Just a little note on gnash completeness: I don't know for previous versions, testing Lukas Turek ebuild with Konqueror (kde and konqueror flags on , but also gtk) showed some flaws: flash used to give input (as flash menus) aren't displayed/gettin input in the right way, more, if you click on a flash with embedded link inside konqueror, it will open the link in firefox if an istance of firefox is open, or it will do just nothing (yes, I click a flash in konqueror and it opens a firefox tab, if firefox is not open instead it does nothing). If I open the same page in firefox then some more flash work, but some other hang firefox sending my cpu to 100% occupation. All the flash tested are working with netscape-flash-9.0.48-r1
gnash 0.8.0 is not compiling with 4.2 we need a bump
Created attachment 133914 [details] Suggested changes to proposed ebuild. 1. xml? ( dev-libs/libxml2 ) The xml use flag should be removed and the dependency dev-libs/libxml2 should be an unconditional dependency. Gnash will not even get pass the configure script without libxml2 installed on the system. 2. mysql? ( virtual/mysql ) Why are you testing for the mysql use flag when you don't even have it set under IUSE ? 3. ffmpeg? ( media-video/ffmpeg ) This should be: ffmpeg? ( media-libs/libsdl media-video/ffmpeg ) Gnash will not even get past the configure script when ffmpeg is set as the media handler and libsdl is not installed. 4. gstreamer? ( media-libs/gstreamer || ( media-plugins/gst-plugins-ffmpeg media-plugins/gst-plugins-mad ) ) This test to see if one or the other plugins is installed. If mad is installed ffmpeg is not installed if ffmpeg or neither plugins are installed it will install the ffmpeg plugin if necessary but not the mad plugin. When testing video's at youtube i have found at least on my system you need both the ffmpeg and mad plugins installed. This should be: gstreamer? ( !ffmpeg? ( media-plugins/gst-plugins-ffmpeg media-plugins/gst-plugins-mad ) ) No need to add media-libs/gstreamer as it is a dependency of the plugins. 5. !gstreamer? ( !ffmpeg? ( media-libs/libsdl ) ) This condition will never be meet because the pkg_setup check below will prevent it and should be removed. if use !ffmpeg && use !gstreamer; then eerror "You are trying to build Gnash without choosing a media handler." eerror "Please enable one of the following ffmpeg, gstreamer or mad (mp3 audio only)." die "No media handler selected !" fi 6. eerror "Please enable one of the following ffmpeg, gstreamer or mad (mp3 audio only)." Mad is no longer supported by the ebuild and should be removed from the error message. 7. if use agg; then myconf="${myconf} --enable-renderer=agg" fi if use cairo; then myconf="${myconf} --enable-renderer=cairo" fi if use opengl; then myconf="${myconf} --enable-renderer=ogl" fi Only one renderer at a time is allowed this will try to set all three and Gnash will end up using opengl if all three use flags are set. This should be: if use agg; then myconf="${myconf} --enable-renderer=agg" elif use opengl; then myconf="${myconf} --enable-renderer=ogl" else myconf="${myconf} --enable-renderer=cairo" fi This will favor agg over both opengl and cairo ( agg is the gnash default ) and it will favor opengl over cairo. 8. econf \ $(use_enable nsplugin plugin) \ $(use_enable xml) \ $(use_enable video_cards_i810 i810-lod-bias) \ --enable-gui=${gui} \ --without-gcc-arch --disable-debugger \ use_enable nsplugin plugin is saying if the nsplugin use flag is set then add --enable-plugin to the configuration. --enable-plugin is not an option in gnash anymore. This should be removed. The plugins are already addressed earlier in the ebuild. use_enable xml should be removed. --disable-debugger is unnecessary as it is disabled by default now. --without-gcc-arch is not a valid option in gnash anymore. 9. emake -j1 Gnash 0.8.1 compiles just fine in parallel no need to restrict it. This should be: emake ${MAKEOPTS}
Created attachment 135280 [details] Suggested ebuild with several improvements I made several refinements in the ebuild. 1. WANT_AUTOMAKE="1.9" This is a release tarball and does not need the autotools. The README explicitly suggest the user to use the provided 'configure'. Using the provided 'configure' significantly simplifies the ebuild. No need to set WANT_AUTOMAKE, no need to inherit autotools eclass, no need to specify a src_unpack function. Also, the compilation has less dependencies and is faster. 2. gstreamer? ( !ffmpeg? ( media-plugins/gst-plugins-ffmpeg media-plugins/gst-plugins-mad ) ) If the user enables both gstreamer and ffmpeg USE flags, he is asking for both GStreamer and FFmpeg to be activated. If we must choose only one of FFmpeg and GStreamer, and the user selects both, the ebuild should die with a clear error message. To silently choose FFmpeg instead of GStreamer is unreasonable. I changed the ebuild to die if an impossible USE flag combination is set by the user. 3. I changed all the error messages to be more didactic and consistent. 4. The local variable named 'extensions' in function 'src_compile' was unused, so I deleted it. 5. I made some changes to the coding style 6. I replaced emake ${MAKEOPTS} with just emake. Doesn't emake already uses MAKEOPTS? The ebuilds in the portage tree don't specify MAKEOPTS as an argument to emake. In fact, a cd /usr/portage; find -iname '*.ebuild' -exec grep -H --color=always MAKEOPTS {} \; shows that MAKEOPTS is very rarely used as an argument to emake. Besides, we are not changing the default MAKEOPTS. Note: repoman complains with IUSE.invalid about the konqueror USE flag
Any idea whether / when this will be in Portage?
Well, I just added that ebuild without much changing. Thank you everyone for working on this.