Summary: | media-libs/phonon-gstreamer-4.8.0 causes hangs/crashes in applications using qtwebkit | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Till Schäfer <till2.schaefer> |
Component: | Current packages | Assignee: | Gentoo KDE team <kde> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alex_y_xu, anton.wd, ao, b.brachaczek, bass_dr, cedric.godin, enrico.tagliavini, gentoo, josef64, kde, mail, mkyral, nixphoeni, solpeth, uwelk, vmatare+gbug |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=622682 https://bugs.gentoo.org/show_bug.cgi?id=624396 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 388207 | ||
Bug Blocks: | |||
Attachments: | Patch against ebuild to move blocker |
Description
Till Schäfer
2014-09-15 15:21:39 UTC
linked upstream bug @qt from upstream bug dev-qt/qtwebkit supports media-libs/gstreamer:1.0 and should be used to solve this issue. Err... nope. AFAIK qtwebkit-4.8.x supports gstreamer-0.10 only. in src/3rdparty/webkit: $ find . -name "*.pr[io]" -exec grep gstreamer- {} + ./Source/JavaScriptCore/wtf/wtf.pri: !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 gstreamer-0.10): { ./Source/WebCore/features.pri: !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 gstreamer-0.10): { ./Source/WebCore/WebCore.pri: PKGCONFIG += glib-2.0 gio-2.0 gstreamer-0.10 gstreamer-app-0.10 gstreamer-base-0.10 gstreamer-interfaces-0.10 gstreamer-pbutils-0.10 gstreamer-plugins-base-0.10 gstreamer-video-0.10 Ah wait, he probably means the 2.3 branch of qtwebkit, which we should really package anyway because it's supposedly much better than the currently packaged qtwebkit-2.2 that comes with Qt 4.8.x (see bug 388207). However note that qtwebkit 2.3 is not part of the official Qt4 release. does qt-4.8.6 package a newer webkit (currently not available in tree / see Bug 510042 ) sorry there is a missing ? -> the previous post should be a question :) No, Qt 4.8.6 doesn't change anything, it's still the (ancient) 2.2 branch of qtwebkit. Hi, I can confirm that after upgrade to phonon-4.8.0 Amarok does not work properly. In my case does not freeze, but just not playng. During the start, this is written to the console: (amarok:8676): GLib-GObject-WARNING **: cannot register existing type 'GstObject' (amarok:8676): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed (amarok:8676): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed (amarok:8676): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed (amarok:8676): GLib-GObject-CRITICAL **: g_object_newv: assertion 'G_TYPE_IS_OBJECT (object_type)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_registry_get_feature_list: assertion 'GST_IS_REGISTRY (registry)' failed (amarok:8676): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'GST_IS_MINI_OBJECT (mini_object)' failed (amarok:8676): GLib-GObject-WARNING **: /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/gobject/gsignal.c:2462: signal 'video-changed' is invalid for instance '0x2420510' of type 'GstPlayBin' (amarok:8676): GLib-GObject-WARNING **: /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/gobject/gsignal.c:2462: signal 'text-tags-changed' is invalid for instance '0x2420510' of type 'GstPlayBin' (amarok:8676): GLib-GObject-WARNING **: /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/gobject/gsignal.c:2462: signal 'audio-tags-changed' is invalid for instance '0x2420510' of type 'GstPlayBin' (amarok:8676): GLib-GObject-WARNING **: /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/gobject/gsignal.c:2462: signal 'about-to-finish' is invalid for instance '0x2420510' of type 'GstPlayBin' (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin1' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin1' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin1' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin2' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin1' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin2' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin1' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin2' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-WARNING **: Name 'bin3' is not unique in bin 'audioGraph', not adding (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_element_request_pad: assertion 'templ != NULL' failed (amarok:8676): GStreamer-CRITICAL **: gst_pad_link_full: assertion 'GST_IS_PAD (srcpad)' failed (amarok:8676): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed Rebuild of gstreamer, gst-, phonon and amarok packages did not help. I had to downgrade to phonon-4.7.2 and phonon-gstreamer-4.7.2. Now Amarok works again. Portage 2.2.12-r1 (python 2.7.8-final-0, default/linux/amd64/13.0/desktop/kde, gcc-4.8.3, glibc-2.19-r1, 3.16.2-gentoo x86_64) ================================================================= System uname: Linux-3.16.2-gentoo-x86_64-Intel-R-_Core-TM-2_Duo_CPU_P8400_@_2.26GHz-with-gentoo-2.2 KiB Mem: 3981164 total, 380272 free KiB Swap: 4000180 total, 3999880 free Timestamp of tree: Fri, 12 Sep 2014 06:15:01 +0000 ld GNU ld (Gentoo 2.24 p1.4) 2.24 app-shells/bash: 4.2_p47 dev-java/java-config: 2.2.0 dev-lang/python: 2.7.8, 3.2.5-r6, 3.4.1 dev-util/cmake: 2.8.12.2-r2 dev-util/pkgconfig: 0.28-r2 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.13.1 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.10.3, 1.11.6, 1.14.1 sys-devel/binutils: 2.24-r3 sys-devel/gcc: 4.8.3 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2-r1 sys-devel/make: 4.0-r1 sys-kernel/linux-headers: 3.16 (virtual/os-headers) sys-libs/glibc: 2.19-r1 Repositories: gentoo kde sunrise gentoo-zh java overlay ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/mnt/wind/data/portage/distfiles" EMERGE_DEFAULT_OPTS="--keep-going" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://ftp.fi.muni.cz/pub/linux/gentoo/ rsync://ftp.fi.muni.cz/pub/linux/gentoo/ ftp://ftp.fi.muni.cz/pub/linux/gentoo/ http://gentoo.mirror.dkm.cz/pub/gentoo/ ftp://gentoo.mirror.dkm.cz/pub/gentoo/ rsync://gentoo.mirror.dkm.cz/gentoo/ http://gentoo.mirror.web4u.cz/ ftp://gentoo.mirror.web4u.cz/" LANG="cs_CZ.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_EXTRA_OPTS="--quiet" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/kde /var/lib/layman/sunrise /var/lib/layman/gentoo-zh /var/lib/layman/java /usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="7zip X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif faad fam ffmpeg firefox flac fortran gdbm gif git gpm gstreamer iconv icu imagemagick ipv6 jpeg jpeg2k kde kde4 kipi lame lcms ldap libnotify logrotate lzma lzo mad matroska mmx mmxext mng modules mozilla mp3 mp4 mpeg mplayer msql multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds python qt3support qt4 quicktime raw readline samba sdl semantic-desktop session smp spell sqlite sqlite3 sse sse2 ssl ssse3 startup-notification subversion svg tcpd theora threads thumbnail thunderbird tiff truetype udev udisks unicode unzip upower usb vim-syntax vorbis webkit wmf wmp wxwidgets x264 xcb xcomposite xine xinerama xml xscreensaver xv xvid zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="cs" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="nvidia vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON Actually, I don't see out-of-the-box gstreamer:1.0 support in qtwebkit-2.3 either... At least the same gstreamer version selection code as in Qtwebkit:5 is included in the source: https://gitorious.org/webkit/qtwebkit-23/source/1b164e2cd9cd76f95f92c27c9753339d40f3e063:Tools/qmake/mkspecs/features/features.prf#L188 That requires a snapshot from git, it's not present in the 2.3.3 tarball. Fedora applies a patch[1] to qtwebkit-2.3.3 to build against gstreamer:1.0 [1] http://pkgs.fedoraproject.org/cgit/qtwebkit.git/plain/qtwebkit-2.3.3-gstreamer1.patch Ah wait, I just noticed that a 2.3.4 tag appeared in git few days ago, and that includes the latest patches to build against gstreamer:1.0 not sure if this is the same bug, but my amarok doesn't freeze, but also doesn't play anything anymore after upgrading. For completeness' sake: In the forum we have two reports that downgrading phonon to 4.7 and moving back to gstreamer 0.10 fixes the issue: http://forums.gentoo.org/viewtopic-p-7683854.html#7683854 maybe some hard masking is in order until this is resolved? After all this stuff simply breaks and is only fixable by downgrading (afaik), so why bother people on ~amd64 with it? There's an update qtwebkit package which may solve this issue: https://github.com/gentoo/qt/tree/master/dev-qt/qtwebkit23 There's a very hackish alternative: 1. set USE flag -gstreamer for dev-qt/qtwebkit:4 2. emerge -C media-libs/gstreamer:0.10 3. emerge -1 dev-qt/qtwebkit:4 4. emerge -1 media-libs/gstreamer:0.10 The qtwebkit configure automagically picks up the gstreamer dependency regardless of USE setting, but if it isn't present, it won't link to it. This got my KDE and Amarok install working with gstreamer-1.0 and phonon-gst-4.8. (In reply to Michael Palimaka (kensington) from comment #16) > There's an update qtwebkit package which may solve this issue: > https://github.com/gentoo/qt/tree/master/dev-qt/qtwebkit23 I can confirm this (with some adjustment) solves the issue, see bug #388207 comment 35. there seems to be some patch as upstream closed this bug as invalid. however, they did not point to any location (i will ask for it) (In reply to Till Schäfer from comment #19) > there seems to be some patch as upstream closed this bug as invalid. > however, they did not point to any location (i will ask for it) This is a gentoo bug* not a KDE one, so upstream closed is as invalid. There is no need for a patch, gentoo needs to update qtwebkit to the version linked in comment #16 but that still need some work. I'm trying to do my best to improve and complete that ebuild but I don't have much time to spare on it and that thing takes forever to build. * well to be honest is the webkit situation which is kind of a mess. qtwebkit from upstream Qt is out of date and doesn't support gstreamer 1, so qtwebkit from upstream webkit should be used instead. Version 2.3.4 supports gstreamer 1 and everything seems to work as expected. Fedora does that for example and I tried it on gentoo as well and it work. *** Bug 539234 has been marked as a duplicate of this bug. *** *** Bug 573934 has been marked as a duplicate of this bug. *** In the absence of any other progress, it looks like we will work around this issue by introducing a block in phonon-gstreamer: !dev-qt/qtwebkit:4[gstreamer] Workaround applied: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=362f25093d479d69fab1209fbf647ea6dc9f2520 dev-qt/qtwebkit-4.10.4 depends on gstreamer-1.0. The blocker looks a bit too general. (Generates a blocker for my working system. Only gstreamer:1.0.) (In reply to Markus from comment #25) > dev-qt/qtwebkit-4.10.4 depends on gstreamer-1.0. > The blocker looks a bit too general. (Generates a blocker for my working > system. Only gstreamer:1.0.) Thanks. https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e843d78924a44f0679bfde04169deee864553908 Created attachment 441456 [details, diff]
Patch against ebuild to move blocker
Hi,
shouldn't it be sufficient to add the blocker only to the "qt4?" part of the RDEPENDS (see patch)?
Best,
Gert
(In reply to Gert Wollny from comment #27) > Created attachment 441456 [details, diff] [details, diff] > Patch against ebuild to move blocker > > Hi, > > shouldn't it be sufficient to add the blocker only to the "qt4?" part of the > RDEPENDS (see patch)? > > Best, > Gert Thanks, that makes sense. https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da4fc1aff89078b552ef890c79f6979efe76bf66 What if we just drop USE=+gstreamer from qtwebkit:4 now? USE=gstreamer depending on slot 0.10 dropped in git commit a3cad5267a342385ba5993199d981609c9f78f46 Since qtwebkit no longer offers gstreamer:0.10 as an option, there can no longer be a conflict with phonon-gstreamer. |