Date: Monday, January 11, 2016 @ 11:28:19 Author: fyan Revision: 257942
upgpkg: qt5 5.5.1-8 Add a patch to avoid crashes with nvidia 361.16 drivers (FS#47703) Added: qt5/trunk/fs47703.patch Modified: qt5/trunk/PKGBUILD ---------------+ PKGBUILD | 10 +++++++--- fs47703.patch | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-01-11 09:51:28 UTC (rev 257941) +++ PKGBUILD 2016-01-11 10:28:19 UTC (rev 257942) @@ -30,7 +30,7 @@ 'qt5-x11extras' 'qt5-xmlpatterns') pkgver=5.5.1 -pkgrel=7 +pkgrel=8 arch=('i686' 'x86_64') url='http://www.qt.io/developers' license=('GPL3' 'LGPL' 'FDL' 'custom') @@ -44,16 +44,20 @@ groups=('qt' 'qt5') _pkgfqn="qt-everywhere-opensource-src-${pkgver}" source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgver}/single/${_pkgfqn}.tar.xz" - 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qdbusviewer.desktop') + 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qdbusviewer.desktop' + 'fs47703.patch') md5sums=('c2a249e8795d45200d997d96860d0353' 'b2897dd6a2967bccf8f10e397aafee55' '76e150b20178d2d43801f7367232e5f7' '188da8f4c87316e730ebf1c6217bf5a0' - '322b419b16c75d4de0ee7ad0a246caa1') + '322b419b16c75d4de0ee7ad0a246caa1' + 'e710bb841ba2919bd3c9e10c80d67b0b') prepare() { cd ${_pkgfqn} + (cd qtbase; patch -p1 -i "$srcdir"/fs47703.patch) + # Build qmake using Arch {C,LD}FLAGS # This also sets default {C,CXX,LD}FLAGS for projects built using qmake sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CFLAGS}|" \ Added: fs47703.patch =================================================================== --- fs47703.patch (rev 0) +++ fs47703.patch 2016-01-11 10:28:19 UTC (rev 257942) @@ -0,0 +1,49 @@ +From f6ba546d57018ddd2bfdc226db498f12a0c2d8bf Mon Sep 17 00:00:00 2001 +From: =?utf8?q?D=C4=81vis=20Mos=C4=81ns?= <davis...@gmail.com> +Date: Fri, 8 Jan 2016 04:12:13 +0200 +Subject: [PATCH] Don't pass NULL Display to glXGetClientString + +glXGetCurrentDisplay can return NULL so need to check +for that. + +Change-Id: I1b85a5c575d1deb24dcce4719b6f737283adeabe +--- + .../platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 5 ++++- + .../platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp | 5 ++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +index 8b14fc7..3412f3f 100644 +--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp ++++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +@@ -644,7 +644,10 @@ void QGLXContext::queryDummyContext() + oldSurface = oldContext->surface(); + + QScopedPointer<QSurface> surface; +- const char *glxvendor = glXGetClientString(glXGetCurrentDisplay(), GLX_VENDOR); ++ Display *display = glXGetCurrentDisplay(); ++ const char *glxvendor = 0; ++ if (display) ++ glxvendor = glXGetClientString(display, GLX_VENDOR); + if (glxvendor && !strcmp(glxvendor, "ATI")) { + QWindow *window = new QWindow; + window->resize(64, 64); +diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp +index ce72cb6..cd4949af 100644 +--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp ++++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp +@@ -195,7 +195,10 @@ QPlatformOffscreenSurface *QXcbGlxIntegration::createPlatformOffscreenSurface(QO + static bool glxPbufferUsable = true; + if (!vendorChecked) { + vendorChecked = true; +- const char *glxvendor = glXGetClientString(glXGetCurrentDisplay(), GLX_VENDOR); ++ Display *display = glXGetCurrentDisplay(); ++ const char *glxvendor = 0; ++ if (display) ++ glxvendor = glXGetClientString(display, GLX_VENDOR); + if (glxvendor && !strcmp(glxvendor, "ATI")) + glxPbufferUsable = false; + } +-- +2.6.2.2.g1b5ffa3 +