Subject: bug#433: vlc-plugin-qt: VLC Qt UI doesn't start in the presense of QT_QPA_PLATFORMTHEME, GTK_CSD and LD_PRELOAD

From: Andrey ``Bass'' Shcheglov <[email-masked]>
Date: Mon, 27 Apr 2020 23:43:01 +0300

Package: vlc-plugin-qt
Version: 3.0.8-0+deb10u1
Severity: grave

Dear Maintainer,

I have all my Qt 5 applications rendering their UI via GTK2
(this means I have qt5-style-plugins package installed):

> QT_QPA_PLATFORMTHEME=gtk2
> QT_STYLE_OVERRIDE=gtk2

Additionally, for my GTK3 applications, I have client-side decorations
disabled (with gtk3-nocsd and libgtk3-nocsd0 packages installed):

> GTK_CSD=0
> LD_PRELOAD=libgtk3-nocsd.so.0

The above should have nothing to do with GTK2 UI rendering, still it
affects vlc (actuallly, vlc-plugin-qt) in Debian Buster/Devuan Beowulf
(everything worked fine in Debian Stretch/Devuan ASCII).

Also, I have to mention that cvlc (without Qt UI) works fine.

Now, to the problem.

Whenever vlc is laucnhed in the above environment:

> $ QT_QPA_PLATFORMTHEME=gtk2 QT_STYLE_OVERRIDE=gtk2 GTK_CSD=0 \
> LD_PRELOAD=libgtk3-nocsd.so.0 vlc

-- it prints the following and just hangs, w/o even showing a
window:

> VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
> 
> (vlc:25026): GLib-GObject-WARNING **: 23:35:25.110: cannot register
> existing type 'GtkBuildable'
> 
> (vlc:25026): GLib-GObject-CRITICAL **: 23:35:25.110:
> g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE
> (interface_type)' failed
> 
> (vlc:25026): GLib-CRITICAL **: 23:35:25.110: g_once_init_leave:
> assertion 'result != 0' failed
> 
> (vlc:25026): GLib-GObject-WARNING **: 23:35:25.111: cannot register
> existing type 'GtkWidget'
> 
> (vlc:25026): GLib-GObject-WARNING **: 23:35:25.111: cannot add class
> private field to invalid type '<invalid>'
> 
> (vlc:25026): GLib-GObject-WARNING **: 23:35:25.111: cannot add private
> field to invalid (non-instantiatable) type '<invalid>'

I can also provide the output of `vlc -vvv` here, but it wouldn't be
indicative, as, the above errors are purely GTK-specific.

*If* I change either GTK_CSD to 1 or LD_PRELOAD to an empty string (or
Qt UI style to anything different from gtk2), then vlc starts just fine
and shows its window, controls, etc.

All other (even complex) Qt 5 applications (assistant, designer,
wireshark, KDE appplications etc.) are not affected by either GTK_CSD
or LD_PRELOAD.

The problem is reproducible using a new clean user profile with default
vlc settings.

Regards,
Andrey.

-- System Information:
Distributor ID:	Debian
Description:	Devuan GNU/Linux 3 (beowulf)
Release:	3
Codename:	beowulf
Architecture: x86_64

Kernel: Linux 4.19.0-8-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8),
LANGUAGE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages vlc-plugin-qt depends on:
ii  libc6                                2.28-10
ii  libgcc1                              1:8.3.0-6
ii  libqt5core5a                         5.11.3+dfsg1-1+deb10u2
ii  libqt5gui5                           5.11.3+dfsg1-1+deb10u2
ii  libqt5svg5                           5.11.3-2
ii  libqt5widgets5                       5.11.3+dfsg1-1+deb10u2
ii  libqt5x11extras5                     5.11.3-2
ii  libstdc++6                           8.3.0-6
ii  libvlccore9 [vlc-plugin-abi-3-0-0f]  3.0.8-0+deb10u1
ii  libwayland-client0                   1.16.0-1
ii  libx11-6                             2:1.6.7-1

Versions of packages vlc-plugin-qt recommends:
ii  vlc-bin  3.0.8-0+deb10u1

vlc-plugin-qt suggests no packages.

Versions of packages libvlc-bin depends on:
ii  libc6    2.28-10
ii  libvlc5  3.0.8-0+deb10u1

Versions of packages libvlc5 depends on:
ii  libc6        2.28-10
ii  libvlccore9  3.0.8-0+deb10u1

Versions of packages libvlc5 recommends:
ii  libvlc-bin  3.0.8-0+deb10u1

Versions of packages vlc depends on:
ii  vlc-bin                  3.0.8-0+deb10u1
ii  vlc-plugin-base          3.0.8-0+deb10u1
ii  vlc-plugin-video-output  3.0.8-0+deb10u1

Versions of packages vlc recommends:
ii  vlc-l10n                   3.0.8-0+deb10u1
ii  vlc-plugin-notify          3.0.8-0+deb10u1
ii  vlc-plugin-samba           3.0.8-0+deb10u1
ii  vlc-plugin-skins2          3.0.8-0+deb10u1
ii  vlc-plugin-video-splitter  3.0.8-0+deb10u1
ii  vlc-plugin-visualization   3.0.8-0+deb10u1

Versions of packages vlc-bin depends on:
ii  libc6       2.28-10
ii  libvlc-bin  3.0.8-0+deb10u1
ii  libvlc5     3.0.8-0+deb10u1

Versions of packages vlc-plugin-base depends on:
ii  liba52-0.7.4                         0.7.4-19
ii  libaom0                              1.0.0-3
ii  libarchive13                         3.3.3-4+deb10u1
ii  libaribb24-0                         1.0.3-2
ii  libasound2                           1.1.8-1
ii  libass9                              1:0.14.0-2
ii  libavahi-client3                     0.7-4+b1
ii  libavahi-common3                     0.7-4+b1
ii  libavc1394-0                         0.5.4-5
ii  libavcodec58                         7:4.1.4-1~deb10u1
ii  libavformat58                        7:4.1.4-1~deb10u1
ii  libavutil56                          7:4.1.4-1~deb10u1
ii  libbasicusageenvironment1            2018.11.26-1.1
ii  libbluray2                           1:1.1.0-1
ii  libc6                                2.28-10
ii  libcairo2                            1.16.0-4
ii  libcddb2                             1.3.2-6
ii  libchromaprint1                      1.4.3-3
ii  libcrystalhd3                        1:0.0~git20110715.fdd2f19-13
ii  libdbus-1-3                          1.12.16-1+devuan2
ii  libdc1394-22                         2.2.5-1
ii  libdca0                              0.0.6-1
ii  libdvbpsi10                          1.3.2-1
ii  libdvdnav4                           6.0.0-1
ii  libdvdread4                          6.0.1-1
ii  libebml4v5                           1.3.6-2
ii  libelogind0 [libsystemd0]            241.4-2
ii  libeudev1 [libudev1]                 3.2.7-6
ii  libfaad2                             2.8.8-3
ii  libflac8                             1.3.2-3
ii  libfontconfig1                       2.13.1-2
ii  libfreetype6                         2.9.1-3+deb10u1
ii  libfribidi0                          1.0.5-3.1+deb10u1
ii  libgcc1                              1:8.3.0-6
ii  libgcrypt20                          1.8.4-5
ii  libglib2.0-0                         2.58.3-2+deb10u2
ii  libgnutls30                          3.6.7-4+deb10u2
ii  libgpg-error0                        1.35-1
ii  libgroupsock8                        2018.11.26-1.1
ii  libharfbuzz0b                        2.3.1-1
ii  libixml10                            1:1.8.4-2
ii  libjpeg62-turbo                      1:1.5.2-2+b1
ii  libkate1                             0.4.1-9
ii  liblirc-client0                      0.10.1-5.2
ii  liblivemedia64                       2018.11.26-1.1
ii  liblua5.2-0                          5.2.4-1.1+b2
ii  libmad0                              0.15.1b-10
ii  libmatroska6v5                       1.4.9-1+deb10u1
ii  libmicrodns0                         0.0.10-1
ii  libmpcdec6                           2:0.1~r495-1+b2
ii  libmpeg2-4                           0.5.1-8
ii  libmpg123-0                          1.25.10-2
ii  libmtp9                              1.1.16-2
ii  libncursesw6                         6.1+20181013-2+deb10u2
ii  libnfs12                             3.0.0-2
ii  libogg0                              1.3.2-1+b1
ii  libopenmpt-modplug1                  0.4.3-1
ii  libopus0                             1.3-1
ii  libpng16-16                          1.6.36-6
ii  libpostproc55                        7:4.1.4-1~deb10u1
ii  libprotobuf-lite17                   3.6.1.3-2
ii  libpulse0                            12.2-4+deb10u1
ii  libraw1394-11                        2.1.2-1+b1
ii  libresid-builder0c2a                 2.1.1-15
ii  librsvg2-2                           2.44.10-2.1
ii  libsamplerate0                       0.1.9-2
ii  libsdl-image1.2                      1.2.12-10+deb10u1
ii  libsdl1.2debian                      1.2.15+dfsg2-4
ii  libsecret-1-0                        0.18.7-1
ii  libshine3                            3.1.1-2
ii  libshout3                            2.4.1-2
ii  libsidplay2                          2.1.1-15
ii  libsndio7.0                          1.5.0-3
ii  libsoxr0                             0.1.2-3
ii  libspatialaudio0                     0.3.0+git20180730+dfsg1-2
ii  libspeex1                            1.2~rc1.2-1+b2
ii  libspeexdsp1                         1.2~rc1.2-1+b2
ii  libssh2-1                            1.8.0-2.1
ii  libstdc++6                           8.3.0-6
ii  libswscale5                          7:4.1.4-1~deb10u1
ii  libtag1v5                            1.11.1+dfsg.1-0.3
ii  libtheora0                           1.1.1+dfsg.1-15
ii  libtinfo6                            6.1+20181013-2+deb10u2
ii  libtwolame0                          0.3.13-4
ii  libudev1                             1:3.2.7+devuan1.1
ii  libupnp13                            1:1.8.4-2
ii  libusageenvironment3                 2018.11.26-1.1
ii  libva-drm2                           2.4.0-1
ii  libva2                               2.4.0-1
ii  libvlccore9 [vlc-plugin-abi-3-0-0f]  3.0.8-0+deb10u1
ii  libvorbis0a                          1.3.6-2
ii  libvorbisenc2                        1.3.6-2
ii  libx264-155                          2:0.155.2917+git0a84d98-2
ii  libx265-165                          2.9-4
ii  libxcb-keysyms1                      0.4.0-1+b2
ii  libxcb1                              1.13.1-2
ii  libxml2                              2.9.4+dfsg1-7+b3
ii  libzvbi0                             0.2.35-16
ii  vlc-data                             3.0.8-0+deb10u1
ii  zlib1g                               1:1.2.11.dfsg-1

Versions of packages vlc-plugin-base recommends:
ii  xdg-utils  1.1.3-1

Versions of packages vlc-plugin-base suggests:
ic  libdvd-pkg [libdvdcss2]  1.4.0-1-2

Versions of packages vlc-plugin-notify depends on:
ii  libc6                                2.28-10
ii  libgdk-pixbuf2.0-0                   2.38.1+dfsg-1
ii  libglib2.0-0                         2.58.3-2+deb10u2
ii  libgtk-3-0                           3.24.5-1
ii  libnotify4                           0.7.7-4
ii  libvlccore9 [vlc-plugin-abi-3-0-0f]  3.0.8-0+deb10u1

Versions of packages vlc-plugin-skins2 depends on:
ii  fonts-freefont-ttf                   20120503-9
ii  libc6                                2.28-10
ii  libfreetype6                         2.9.1-3+deb10u1
ii  libfribidi0                          1.0.5-3.1+deb10u1
ii  libgcc1                              1:8.3.0-6
ii  libstdc++6                           8.3.0-6
ii  libvlccore9 [vlc-plugin-abi-3-0-0f]  3.0.8-0+deb10u1
ii  libx11-6                             2:1.6.7-1
ii  libxext6                             2:1.3.3-1+b2
ii  libxinerama1                         2:1.1.4-2
ii  libxpm4                              1:3.5.12-1

Versions of packages vlc-plugin-skins2 recommends:
ii  vlc-bin  3.0.8-0+deb10u1

Versions of packages vlc-plugin-video-output depends on:
ii  libaa1                               1.4p5-46
ii  libavcodec58                         7:4.1.4-1~deb10u1
ii  libavutil56                          7:4.1.4-1~deb10u1
ii  libc6                                2.28-10
ii  libcaca0                             0.99.beta19-2.1
ii  libegl1                              1.1.0-1
ii  libgl1                               1.1.0-1
ii  libgles2                             1.1.0-1
ii  libplacebo7                          1.7.0-2
ii  libva-drm2                           2.4.0-1
ii  libva-wayland2                       2.4.0-1
ii  libva-x11-2                          2.4.0-1
ii  libva2                               2.4.0-1
ii  libvlccore9 [vlc-plugin-abi-3-0-0f]  3.0.8-0+deb10u1
ii  libwayland-client0                   1.16.0-1
ii  libwayland-egl1                      1.16.0-1
ii  libx11-6                             2:1.6.7-1
ii  libxcb-keysyms1                      0.4.0-1+b2
ii  libxcb-shm0                          1.13.1-2
ii  libxcb-xv0                           1.13.1-2
ii  libxcb1                              1.13.1-2

Versions of packages vlc-plugin-video-splitter depends on:
ii  libc6                                2.28-10
ii  libvlccore9 [vlc-plugin-abi-3-0-0f]  3.0.8-0+deb10u1
ii  libxcb-randr0                        1.13.1-2
ii  libxcb1                              1.13.1-2

Versions of packages vlc-plugin-visualization depends on:
ii  libc6                                2.28-10
ii  libgl1                               1.1.0-1
ii  libvlccore9 [vlc-plugin-abi-3-0-0f]  3.0.8-0+deb10u1

-- no debconf information