lirc + wayland fixes

el8
Nicolas Chauvet 8 years ago
parent a0ee390bf1
commit 6e8b6770df

@ -0,0 +1,32 @@
From 72846370b9f0e93a51838b567064c6a6b62c37be Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Mon, 16 Jan 2017 12:09:10 +0100
Subject: [PATCH] Fix lirc activation after detection
This fix build time activation of lirc.
"true" isn't "yes", so the HAVE_LIRC condition isn't met
This bug was initialy reported as
https://bugzilla.rpmfusion.org/4420
Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 29eaed9..864ff98 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3931,7 +3931,7 @@ have_lirc="no"
AS_IF([test "${enable_lirc}" = "yes"], [
AC_CHECK_HEADER(lirc/lirc_client.h, [
AC_CHECK_LIB(lirc_client, lirc_init, [
- have_lirc="true"
+ have_lirc="yes"
])
])
])
--
2.7.4

@ -0,0 +1,191 @@
From 82e73a6fa15cb7cf62decdd8ba44df4d1685301d Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Mon, 16 Jan 2017 12:03:14 +0100
Subject: [PATCH] Revert "qt: add Wayland run-time detection"
This reverts commit 785b0f18d70815288c8a673bcd0f3849af7ef6f7.
---
modules/gui/qt/Makefile.am | 4 --
modules/gui/qt/qt.cpp | 104 +++++++++++++--------------------------------
2 files changed, 29 insertions(+), 79 deletions(-)
diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index 7e5f5ae..16e3596 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -24,10 +24,6 @@ if HAVE_QT5_X11
libqt_plugin_la_CXXFLAGS += $(QT5_X11_CFLAGS) -DQT5_HAS_X11
libqt_plugin_la_LIBADD += $(QT5_X11_LIBS) $(X_LIBS) $(X_PRE_LIB) -lX11
endif
-if HAVE_WAYLAND
-libqt_plugin_la_CXXFLAGS += $(WAYLAND_CLIENT_CFLAGS) -DQT5_HAS_WAYLAND
-libqt_plugin_la_LIBADD += $(WAYLAND_CLIENT_LIBS)
-endif
if HAVE_WIN32
libqt_plugin_la_LIBADD += $(LIBCOM) -lcomctl32 -luuid
endif
diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
index 6015b2a..0229f6e 100644
--- a/modules/gui/qt/qt.cpp
+++ b/modules/gui/qt/qt.cpp
@@ -48,6 +48,10 @@
#include "util/qvlcapp.hpp" /* QVLCApplication definition */
#include "components/playlist/playlist_model.hpp" /* for ~PLModel() */
+#if defined (QT5_HAS_X11) || defined (Q_WS_X11)
+ #include <vlc_xlib.h>
+#endif
+
#include <vlc_plugin.h>
#include <vlc_vout_window.h>
@@ -75,6 +79,7 @@ static int Open ( vlc_object_t *, bool );
static void Close ( vlc_object_t * );
static int WindowOpen ( vout_window_t *, const vout_window_cfg_t * );
static void WindowClose ( vout_window_t * );
+static void *Thread ( void * );
static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * );
/*****************************************************************************
@@ -332,13 +337,6 @@ static bool active = false;
* Module callbacks
*****************************************************************************/
-static void *ThreadPlatform( void *, char * );
-
-static void *Thread( void *data )
-{
- return ThreadPlatform( data, NULL );
-}
-
#ifdef Q_OS_MAC
/* Used to abort the app.exec() on OSX after libvlc_Quit is called */
#include "../../../lib/libvlc_internal.h" /* libvlc_SetExitHandler */
@@ -348,67 +346,22 @@ static void Abort( void *obj )
}
#endif
-#if defined (QT5_HAS_X11)
-# include <vlc_xlib.h>
-
-static void *ThreadXCB( void *data )
-{
- char platform_name[] = "xcb";
- return ThreadPlatform( data, platform_name );
-}
-
-static bool HasX11( vlc_object_t *obj )
-{
- if( !vlc_xlib_init( obj ) )
- return false;
-
- Display *dpy = XOpenDisplay( NULL );
- if( dpy == NULL )
- return false;
-
- XCloseDisplay( dpy );
- return true;
-}
-#endif
-
-#ifdef QT5_HAS_WAYLAND
-# include <wayland-client.h>
-
-static void *ThreadWayland( void *data )
-{
- char platform_name[] = "wayland";
- return ThreadPlatform( data, platform_name );
-}
-
-static bool HasWayland( void )
-{
- struct wl_display *dpy = wl_display_connect( NULL );
- if( dpy == NULL )
- return false;
-
- wl_display_disconnect( dpy );
- return true;
-}
-#endif
-
/* Open Interface */
static int Open( vlc_object_t *p_this, bool isDialogProvider )
{
intf_thread_t *p_intf = (intf_thread_t *)p_this;
- void *(*thread)(void *) = Thread;
-#ifdef QT5_HAS_WAYLAND
- if( HasWayland() )
- thread = ThreadWayland;
- else
-#endif
-#ifdef QT5_HAS_X11
- if( HasX11( p_this ) )
- thread = ThreadXCB;
- else
-#endif
-#if defined (QT5_HAS_X11) || defined (QT5_HAS_WAYLAND)
+#if defined (QT5_HAS_X11) || defined (Q_WS_X11)
+ if( !vlc_xlib_init( p_this ) )
+ return VLC_EGENERIC;
+
+ Display *p_display = XOpenDisplay( NULL );
+ if( !p_display )
+ {
+ msg_Err( p_intf, "Could not connect to X server" );
return VLC_EGENERIC;
+ }
+ XCloseDisplay( p_display );
#endif
QMutexLocker locker (&lock);
@@ -435,9 +388,9 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider )
#ifdef Q_OS_MAC
/* Run mainloop on the main thread as Cocoa requires */
libvlc_SetExitHandler( p_intf->obj.libvlc, Abort, p_intf );
- thread( (void *)p_intf );
+ Thread( (void *)p_intf );
#else
- if( vlc_clone( &p_sys->thread, thread, p_intf, VLC_THREAD_PRIORITY_LOW ) )
+ if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) )
{
delete p_sys;
return VLC_ENOMEM;
@@ -493,22 +446,23 @@ static void Close( vlc_object_t *p_this )
busy = false;
}
-static void *ThreadPlatform( void *obj, char *platform_name )
+static void *Thread( void *obj )
{
intf_thread_t *p_intf = (intf_thread_t *)obj;
intf_sys_t *p_sys = p_intf->p_sys;
char vlc_name[] = "vlc"; /* for WM_CLASS */
+#ifdef QT5_HAS_X11
char platform_parm[] = "-platform";
- char *argv[4];
- int argc = 0;
-
- argv[argc++] = vlc_name;
- if( platform_name != NULL )
- {
- argv[argc++] = platform_parm;
- argv[argc++] = platform_name;
- }
- argv[argc] = NULL;
+ char platform_value[] = "xcb";
+#endif
+ char *argv[] = {
+ vlc_name,
+#ifdef QT5_HAS_X11
+ platform_parm, platform_value,
+#endif
+ NULL,
+ };
+ int argc = sizeof(argv) / sizeof(argv[0]) - 1;
Q_INIT_RESOURCE( vlc );
--
2.7.4

@ -23,6 +23,7 @@
%global _with_freerdp 1
%global _with_projectm 1
%global _with_schroedinger 1
%global _with_wayland 1
%endif
%ifarch x86_64 i686
%global _with_crystalhd 1
@ -32,7 +33,7 @@
Summary: The cross-platform open-source multimedia framework, player and server
Name: vlc
Version: 3.0.0
Release: 0.14%{?dist}
Release: 0.15%{?dist}
License: GPLv2+
Group: Applications/Multimedia
URL: http://www.videolan.org
@ -40,6 +41,8 @@ URL: http://www.videolan.org
# nightly for 3.0
Source0: http://nightlies.videolan.org/build/source/vlc-%{version}%{?vlc_rc}.tar.xz
Patch0: disable_hidpi_scaling.patch
Patch1: 0001-Fix-lirc-activation-after-detection.patch
Patch2: 0001-Revert-qt-add-Wayland-run-time-detection.patch
BuildRequires: desktop-file-utils
BuildRequires: libappstream-glib
@ -236,6 +239,8 @@ VLC media player extras modules.
%prep
%setup -q -n %{name}-%{version}%{?vlc_rc:-git}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%{?_with_bootstrap:
rm aclocal.m4 m4/lib*.m4 m4/lt*.m4 || :
./bootstrap
@ -513,6 +518,10 @@ fi || :
%changelog
* Tue Jan 17 2017 Nicolas Chauvet <kwizart@gmail.com> - 3.0.0-0.15
- Fix lirc activation - rhbz#4420
- Revert upstream commit 785b0f18d7 for wayland detection - rfbz#4380
* Mon Jan 09 2017 Nicolas Chauvet <kwizart@gmail.com> - 3.0.0-0.14
- Update to 20170109
- Disable wayland for now - rhbz#4380

Loading…
Cancel
Save