diff options
author | Alexander Golubev <fatzer2@gmail.com> | 2016-05-02 17:11:35 +0300 |
---|---|---|
committer | Sam Jorna <wraeth@gentoo.org> | 2016-05-11 15:31:40 +1000 |
commit | 849bd7d2988e135fee6eb75a4bc498e88340bf0a (patch) | |
tree | c5ec3b71fae0cb6f2cece9394ac85186d986a45f /media-libs/libechonest | |
parent | dev-ruby/rgen: add 0.8.0 (diff) | |
download | gentoo-849bd7d2988e135fee6eb75a4bc498e88340bf0a.tar.gz gentoo-849bd7d2988e135fee6eb75a4bc498e88340bf0a.tar.bz2 gentoo-849bd7d2988e135fee6eb75a4bc498e88340bf0a.zip |
media-libs/libechonest: fix nonascii artist lookup
Gentoo-bug: https://bugs.gentoo.org/581844
Diffstat (limited to 'media-libs/libechonest')
-rw-r--r-- | media-libs/libechonest/files/libechonest-2.3.1-Don-t-double-encode-on-Qt4.patch | 78 | ||||
-rw-r--r-- | media-libs/libechonest/libechonest-2.3.1-r1.ebuild | 72 |
2 files changed, 150 insertions, 0 deletions
diff --git a/media-libs/libechonest/files/libechonest-2.3.1-Don-t-double-encode-on-Qt4.patch b/media-libs/libechonest/files/libechonest-2.3.1-Don-t-double-encode-on-Qt4.patch new file mode 100644 index 000000000000..1a7b93b90245 --- /dev/null +++ b/media-libs/libechonest/files/libechonest-2.3.1-Don-t-double-encode-on-Qt4.patch @@ -0,0 +1,78 @@ +https://bugs.gentoo.org/show_bug.cgi?id=581844 +https://github.com/lfranchi/libechonest/issues/27 + +From 009514f65044823ef29045397d4b58dd04d09977 Mon Sep 17 00:00:00 2001 +From: Leo Franchi <lfranchi@dropbox.com> +Date: Mon, 18 May 2015 22:08:31 -0400 +Subject: [PATCH 1/2] Don't double-encode on Qt4 + +Fixes issue #27 +--- + src/Util.cpp | 4 +++- + tests/PlaylistTest.cpp | 22 ++++++++++++++++++++++ + tests/PlaylistTest.h | 1 + + 3 files changed, 26 insertions(+), 1 deletion(-) + +diff --git a/src/Util.cpp b/src/Util.cpp +index 8401e8c..595435b 100644 +--- a/src/Util.cpp ++++ b/src/Util.cpp +@@ -150,7 +150,9 @@ void Echonest::urlAddQueryItem(QUrl& url, const QString& key, const QString& val + urlQuery.addQueryItem( key, value ); + url.setQuery( urlQuery ); + #else +- url.addQueryItem( key, value ); ++ // We assume here that the key and values, though QStrings, are actually latin1 and not UTF-8. ++ // That is, they've already gone through playlistParamToString(). This is terrible. ++ url.addEncodedQueryItem( key.toLatin1(), value.toLatin1() ); + #endif + } + +diff --git a/tests/PlaylistTest.cpp b/tests/PlaylistTest.cpp +index 6f7c606..2ec7eb2 100644 +--- a/tests/PlaylistTest.cpp ++++ b/tests/PlaylistTest.cpp +@@ -201,6 +201,28 @@ void PlaylistTest::testStaticXSPF() + } + + ++void PlaylistTest::testStaticWithSpecialChars() ++{ ++ DynamicPlaylist::PlaylistParams p; ++ p.append( DynamicPlaylist::PlaylistParamData( Echonest::DynamicPlaylist::Artist, QString::fromUtf8( "Björk" ) ) ); ++ p.append( DynamicPlaylist::PlaylistParamData( Echonest::DynamicPlaylist::Type, Echonest::DynamicPlaylist::ArtistRadioType ) ); ++ p.append( DynamicPlaylist::PlaylistParamData( Echonest::DynamicPlaylist::Results, 10 ) ); ++ ++ QNetworkReply* reply = DynamicPlaylist::staticPlaylist( p ); ++ ++ QVERIFY( reply->url().toEncoded() == "http://developer.echonest.com/api/v4/playlist/static?api_key=JGJCRKWLXLBZIFAZB&format=xml&artist=Bj%C3%B6rk&type=artist-radio&results=10" ); ++ ++ QEventLoop loop; ++ loop.connect( reply, SIGNAL(finished()), SLOT(quit()) ); ++ loop.exec(); ++ SongList songs = DynamicPlaylist::parseStaticPlaylist( reply ); ++ ++ QVERIFY( songs.size() == 10 ); ++ Q_FOREACH( const Song& song, songs ) ++ QVERIFY( !song.id().isEmpty() ); ++ ++} ++ + void PlaylistTest::testDynamic1() + { + DynamicPlaylist::PlaylistParams p; +diff --git a/tests/PlaylistTest.h b/tests/PlaylistTest.h +index 9d75c05..71c21d6 100644 +--- a/tests/PlaylistTest.h ++++ b/tests/PlaylistTest.h +@@ -30,6 +30,7 @@ private slots: + void testStaticArtistYears(); + void testStaticWithSongType(); + void testStaticXSPF(); ++ void testStaticWithSpecialChars(); + void testDynamic1(); + void testDynamic2(); + void testNewDynamicAPI(); +-- +2.7.4 + diff --git a/media-libs/libechonest/libechonest-2.3.1-r1.ebuild b/media-libs/libechonest/libechonest-2.3.1-r1.ebuild new file mode 100644 index 000000000000..c609bf30329c --- /dev/null +++ b/media-libs/libechonest/libechonest-2.3.1-r1.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +inherit cmake-utils multibuild + +DESCRIPTION="A library for communicating with The Echo Nest" +HOMEPAGE="https://projects.kde.org/projects/playground/libs/libechonest" +SRC_URI="http://files.lfranchi.com/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0/2.3" +KEYWORDS="~amd64 ~x86" +IUSE="+qt4 qt5" + +REQUIRED_USE="|| ( qt4 qt5 )" + +RESTRICT="test" # Networking required + +RDEPEND=" + qt4? ( + dev-libs/qjson[qt4(+)] + dev-qt/qtcore:4 + ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtnetwork:5 + ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +DOCS=( AUTHORS README TODO ) + +PATCHES=( "${FILESDIR}"/${P}-Don-t-double-encode-on-Qt4.patch ) + +pkg_setup() { + MULTIBUILD_VARIANTS=( $(usev qt4) $(usev qt5) ) +} + +src_configure() { + myconfigure() { + local mycmakeargs=( + -DECHONEST_BUILD_TESTS=OFF + ) + + if [[ ${MULTIBUILD_VARIANT} = qt4 ]]; then + mycmakeargs+=(-DBUILD_WITH_QT4=ON) + fi + + if [[ ${MULTIBUILD_VARIANT} = qt5 ]]; then + mycmakeargs+=(-DBUILD_WITH_QT4=OFF) + fi + + cmake-utils_src_configure + } + + multibuild_foreach_variant myconfigure +} + +src_compile() { + multibuild_foreach_variant cmake-utils_src_compile +} + +src_test() { + multibuild_foreach_variant cmake-utils_src_test +} + +src_install() { + multibuild_foreach_variant cmake-utils_src_install +} |