[arch-commits] Commit in kphotoalbum/trunk (PKGBUILD kphotoalbum-qt-5.10.patch)

Antonio Rojas arojas at archlinux.org
Wed Jan 3 09:23:08 UTC 2018


    Date: Wednesday, January 3, 2018 @ 09:23:06
  Author: arojas
Revision: 278146

Fix segfault with Qt 5.10 (FS#56932)

Added:
  kphotoalbum/trunk/kphotoalbum-qt-5.10.patch
Modified:
  kphotoalbum/trunk/PKGBUILD

---------------------------+
 PKGBUILD                  |   13 +++++++++---
 kphotoalbum-qt-5.10.patch |   45 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-01-03 09:21:43 UTC (rev 278145)
+++ PKGBUILD	2018-01-03 09:23:06 UTC (rev 278146)
@@ -7,7 +7,7 @@
 
 pkgname=kphotoalbum
 pkgver=5.2
-pkgrel=2
+pkgrel=3
 pkgdesc="KDE Photo Album, picture collection manager"
 url="https://www.kphotoalbum.org/"
 arch=('x86_64')
@@ -15,9 +15,16 @@
 depends=('libkipi' 'libkdcraw' 'libkgeomap' 'exiv2')
 makedepends=('extra-cmake-modules' 'python' 'plasma-framework' 'phonon-qt5' 'kdoctools' 'kparts' 'libkexiv2')
 optdepends=()
-source=("https://download.kde.org/stable/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.xz")
-sha256sums=('9ad02080b21787d5824d0c4bb49be2a00822098adca7937e9c7497440d3b0b89')
+source=("https://download.kde.org/stable/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.xz"
+        kphotoalbum-qt-5.10.patch)
+sha256sums=('9ad02080b21787d5824d0c4bb49be2a00822098adca7937e9c7497440d3b0b89'
+            '67efc8339a9754f28f5a438510b3f2b114dd9cc07ecc34e75c0e1aa72f1a6b80')
 
+prepare() {
+  cd $pkgname-$pkgver
+  patch -p1 -i ../kphotoalbum-qt-5.10.patch # Fix crash with Qt 5.10
+}
+
 build() {
   mkdir build
   cd build

Added: kphotoalbum-qt-5.10.patch
===================================================================
--- kphotoalbum-qt-5.10.patch	                        (rev 0)
+++ kphotoalbum-qt-5.10.patch	2018-01-03 09:23:06 UTC (rev 278146)
@@ -0,0 +1,45 @@
+From 211f74bec0101d56714787b3a722e7f324ce2ae2 Mon Sep 17 00:00:00 2001
+From: Sylvain Stanchina <sylvain at stanchina.fr>
+Date: Mon, 1 Jan 2018 21:57:32 +0100
+Subject: Fix crash with prepared SQL queries on Qt 5.10.
+
+Some explanations: The issue is related to SQL queries containing
+placeholders ("?"). In Exif.Database.cpp, some queries are built using
+the statement "QSqlQuery query( _queryString, m_db );" (or equivalent).
+However, according to QT5.10 documentation, the queries are immediately
+executed when constructed like that. If they contain one or more
+placeholders "?", they are thus executed before their arguments have
+been bound (by calls of bindValue()). In such cases, the application
+crashes.
+---
+ Exif/Database.cpp | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/Exif/Database.cpp b/Exif/Database.cpp
+index 1cc14c3..10747d2 100644
+--- a/Exif/Database.cpp
++++ b/Exif/Database.cpp
+@@ -226,7 +226,8 @@ void Exif::Database::remove( const DB::FileName& fileName )
+     if ( !isUsable() )
+         return;
+ 
+-    QSqlQuery query( QString::fromLatin1( "DELETE FROM exif WHERE fileName=?" ), m_db );
++    QSqlQuery query( m_db);
++    query.prepare( QString::fromLatin1( "DELETE FROM exif WHERE fileName=?" ));
+     query.bindValue( 0, fileName.absolute() );
+     if ( !query.exec() )
+         showError( query );
+@@ -248,8 +251,8 @@ bool Exif::Database::insert(const DB::FileName& filename, Exiv2::ExifData data )
+         }
+         _queryString = QString::fromLatin1( "INSERT OR REPLACE into exif values (?, %1) " ).arg( formalList.join( QString::fromLatin1( ", " ) ) );
+     }
+-
+-    QSqlQuery query( _queryString, m_db );
++    QSqlQuery query(m_db);
++    query.prepare( _queryString );
+     query.bindValue(  0, filename.absolute() );
+     int i = 1;
+     for( const DatabaseElement *e : elements() )
+-- 
+cgit v0.11.2
+



More information about the arch-commits mailing list