[arch-commits] Commit in amarok/trunk (PKGBUILD scanning-qt-regression.patch)

Andrea Scarpino andrea at archlinux.org
Thu Sep 23 17:52:23 UTC 2010


    Date: Thursday, September 23, 2010 @ 13:52:22
  Author: andrea
Revision: 91173

add a patch to fix regression during scanning collection

Added:
  amarok/trunk/scanning-qt-regression.patch
Modified:
  amarok/trunk/PKGBUILD

------------------------------+
 PKGBUILD                     |   27 ++++++++-----
 scanning-qt-regression.patch |   80 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 97 insertions(+), 10 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-09-23 14:31:59 UTC (rev 91172)
+++ PKGBUILD	2010-09-23 17:52:22 UTC (rev 91173)
@@ -5,7 +5,7 @@
 pkgname=amarok
 replaces=('amarok-base' 'amarok-engine-xine' 'amarok-base-mysqlfree')
 pkgver=2.3.2
-pkgrel=1
+pkgrel=2
 pkgdesc="A media player for KDE"
 arch=("i686" "x86_64")
 url="http://amarok.kde.org"
@@ -16,17 +16,24 @@
 	"libmtp: support for portable media devices"
 	"loudmouth: backend needed by mp3tunes for syncing")
 install=${pkgname}.install
-source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('4e03dc009f8b44d9b8dfb5f6d1034081')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+	'scanning-qt-regression.patch')
+md5sums=('4e03dc009f8b44d9b8dfb5f6d1034081'
+	'a2effdfed3cf836c42264edbd2845441')
 
 build() {
-   cd ${srcdir}
-   mkdir build
-   cd build
-   cmake ../${pkgname}-${pkgver} \
-     -DCMAKE_BUILD_TYPE=Release \
-     -DCMAKE_INSTALL_PREFIX=/usr
-   make
+  # Already fixed upstream see:
+  # https://bugs.kde.org/show_bug.cgi?id=251762
+  cd ${srcdir}/${pkgname}-${pkgver}
+  patch -Np1 -i ${srcdir}/scanning-qt-regression.patch
+
+  cd ${srcdir}
+  mkdir build
+  cd build
+  cmake ../${pkgname}-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
 }
 
 package(){

Added: scanning-qt-regression.patch
===================================================================
--- scanning-qt-regression.patch	                        (rev 0)
+++ scanning-qt-regression.patch	2010-09-23 17:52:22 UTC (rev 91173)
@@ -0,0 +1,80 @@
+From: Jeff Mitchell <mitchell at kde.org>
+Date: Wed, 22 Sep 2010 22:15:17 +0000 (-0400)
+Subject: Re-add some tests for unprintable but also invalid chars. Apparently Qt's XML classes... 
+X-Git-Url: http://gitweb.kde.org?hp=fd2a40d970c57fa2102e95de1a60c59e37892638
+
+Re-add some tests for unprintable but also invalid chars. Apparently Qt's XML classes don't properly check for invalid chars when writing XML, even if you tell them to.
+
+Also switch to QXmlStreamWriter, as apparently going forward it is the more supported class.
+
+BUG: 251762
+---
+
+diff --git a/utilities/collectionscanner/CollectionScanner.cpp b/utilities/collectionscanner/CollectionScanner.cpp
+index 0a23a53..28c554b 100644
+--- a/utilities/collectionscanner/CollectionScanner.cpp
++++ b/utilities/collectionscanner/CollectionScanner.cpp
+@@ -37,13 +37,13 @@
+ #include <QByteArray>
+ #include <QDBusReply>
+ #include <QDir>
+-#include <QDomDocument>
+ #include <QFile>
+ #include <QtDebug>
+ #include <QTextCodec>
+ #include <QTextStream>
+ #include <QTimer>
+ #include <QThread>
++#include <QXmlStreamWriter>
+ 
+ //Taglib:
+ #include <apetag.h>
+@@ -814,8 +814,10 @@ CollectionScanner::readTags( const QString &path, TagLib::AudioProperties::ReadS
+ void
+ CollectionScanner::writeElement( const QString &name, const AttributeHash &attributes )
+ {
+-    QDomDocument doc; // A dummy. We don't really use DOM, but SAX2
+-    QDomElement element = doc.createElement( name );
++    QString text;
++    QXmlStreamWriter writer( &text );
++
++    writer.writeStartElement( name );
+ 
+     QHashIterator<QString, QString> it( attributes );
+     while( it.hasNext() )
+@@ -829,7 +831,15 @@ CollectionScanner::writeElement( const QString &name, const AttributeHash &attri
+         bool noCategory = false;
+         for( unsigned i = 0; i < len; i++ )
+         {
+-            if( data[i].category() == QChar::NoCategory )
++            if( data[i].category() == QChar::NoCategory ||
++                data[i].category() == QChar::Other_Surrogate ||
++                ( 
++                    data[i].unicode() < 20 &&
++                    data[i].unicode() != 9 &&
++                    data[i].unicode() != 10 &&
++                    data[i].unicode() != 13
++                )
++            )
+             {
+                 noCategory = true;
+                 break;
+@@ -838,15 +848,12 @@ CollectionScanner::writeElement( const QString &name, const AttributeHash &attri
+ 
+         if( noCategory )
+             continue;
+-
+-        element.setAttribute( it.key(), it.value() );
++        writer.writeAttribute( it.key(), it.value() );
+     }
+ 
+-    QString text;
+-    QTextStream stream( &text, QIODevice::WriteOnly );
+-    element.save( stream, 0 );
++    writer.writeEndElement();
+ 
+-    std::cout << text.toUtf8().data() << std::endl;
++    std::cout << text.toUtf8().data() << std::endl << std::endl;
+ }
+ 
+ // taken verbatim from Qt's sources, since it's stupidly in the QtGui module




More information about the arch-commits mailing list