diff options
-rw-r--r-- | kde/amarok/.md5sum | 1 | ||||
-rwxr-xr-x | kde/amarok/Pkgfile | 9 | ||||
-rw-r--r-- | kde/amarok/scanning-qt-regression.patch | 80 |
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 |