summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kde/amarok/.md5sum1
-rwxr-xr-xkde/amarok/Pkgfile9
-rw-r--r--kde/amarok/scanning-qt-regression.patch80
3 files changed, 88 insertions, 2 deletions
diff --git a/kde/amarok/.md5sum b/kde/amarok/.md5sum
index fa9faaafa..b41a9ffeb 100644
--- a/kde/amarok/.md5sum
+++ b/kde/amarok/.md5sum
@@ -1,2 +1,3 @@
4e03dc009f8b44d9b8dfb5f6d1034081 amarok-2.3.2.tar.bz2
+a2effdfed3cf836c42264edbd2845441 scanning-qt-regression.patch
5595074ec080ede76f366496f4fc0ff7 splash_screen.jpg
diff --git a/kde/amarok/Pkgfile b/kde/amarok/Pkgfile
index 51c6d1410..721b87fb1 100755
--- a/kde/amarok/Pkgfile
+++ b/kde/amarok/Pkgfile
@@ -7,12 +7,17 @@
name=amarok
version=2.3.2
-release=1
+release=2
source=(ftp://ftp.kde.org/pub/kde/stable/$name/$version/src/$name-$version.tar.bz2
- splash_screen.jpg)
+ splash_screen.jpg
+ scanning-qt-regression.patch)
build() {
cd $name-$version
+
+ # https://bugs.kde.org/show_bug.cgi?id=251762
+ patch -Np1 -i ../scanning-qt-regression.patch
+
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr \
diff --git a/kde/amarok/scanning-qt-regression.patch b/kde/amarok/scanning-qt-regression.patch
new file mode 100644
index 000000000..27c6bb067
--- /dev/null
+++ b/kde/amarok/scanning-qt-regression.patch
@@ -0,0 +1,80 @@
+From: Jeff Mitchell <mitchell@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