From 1eafa95494ae810437a977e0df98a3e948596ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Fri, 21 Oct 2011 12:51:17 +0100 Subject: [PATCH] Resolves: rhbz#747356 let Qt call XInitThreads --- ...tThreads-so-that-it-knows-it-s-been-.patch | 38 +++++++++++++++++++ libreoffice.spec | 7 +++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 0001-let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch diff --git a/0001-let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch b/0001-let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch new file mode 100644 index 0000000..f7f0229 --- /dev/null +++ b/0001-let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch @@ -0,0 +1,38 @@ +From 6163c62a52794725188faf82ee12852f4b2cd023 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= +Date: Thu, 20 Oct 2011 16:41:50 +0200 +Subject: [PATCH] let Qt call XInitThreads(), so that it knows it's been + called (fdo#40298) + +Otherwise QPixmap complains when used outside of the main Qt thread +and resets itself to null pixmap, eventually leading to crashes. +--- + vcl/unx/kde4/main.cxx | 11 +++++++++++ + 1 files changed, 11 insertions(+), 0 deletions(-) + +diff --git a/vcl/unx/kde4/main.cxx b/vcl/unx/kde4/main.cxx +index 9e0a361..482a212 100644 +--- a/vcl/unx/kde4/main.cxx ++++ b/vcl/unx/kde4/main.cxx +@@ -56,7 +56,18 @@ extern "C" { + established, so protect X against itself + */ + if( ! ( pNoXInitThreads && *pNoXInitThreads ) ) ++ { ++#if QT_VERSION >= 0x040800 ++ // let Qt call XInitThreads(), so that also Qt knows it's been used ++ // (otherwise QPixmap may warn about threads not being initialized) ++ QApplication::setAttribute( Qt::AA_X11InitThreads ); ++#else + XInitThreads(); ++ // just in case somebody builds with old version and then upgrades Qt, ++ // otherwise this is a no-op ++ QApplication::setAttribute( static_cast< ApplicationAttribute >( 10 )); ++#endif ++ } + + #if QT_VERSION < 0x050000 + // Qt 4.x support needs >= 4.1.0 +-- +1.7.6.4 + diff --git a/libreoffice.spec b/libreoffice.spec index 76c50bd..15d98f3 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -27,7 +27,7 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 Version: 3.4.3.2 -Release: 14%{?dist} +Release: 15%{?dist} License: LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and (CDDL or GPLv2) and Public Domain Group: Applications/Productivity URL: http://www.documentfoundation.org/develop @@ -128,6 +128,7 @@ Patch32: fdo40856.bn.discard.patch Patch33: 0001-Fix-for-fdo-35513-avoid-crash-while-processing-incor.patch Patch34: libreoffice34-gcc461.patch Patch35: 0001-make-sure-we-stay-in-array-bounds.patch +Patch36: 0001-let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %define instdir %{_libdir} @@ -805,6 +806,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch33 -p1 -b .fdo35513-avoid-crash-while-processing-incor.patch %patch34 -p1 -b .libreoffice34-gcc461.patch %patch35 -p1 -b .make-sure-we-stay-in-array-bounds.patch +%patch36 -p1 -b .let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch # these are horribly incomplete--empty translations and copied english # strings with spattering of translated strings @@ -2106,6 +2108,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{basisinstdir}/program/kde-open-url %changelog +* Fri Oct 21 2011 Caolán McNamara - 3.4.3.2-15 +- Resolves: rhbz#747356 let Qt call XInitThreads + * Wed Oct 19 2011 Caolán McNamara - 3.4.3.2-14 - Related: rhbz#743750 addXineramaScreenUnique issue