public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-libs/libechonest/files/, media-libs/libechonest/
@ 2016-05-11  5:32 Sam Jorna
  0 siblings, 0 replies; only message in thread
From: Sam Jorna @ 2016-05-11  5:32 UTC (permalink / raw
  To: gentoo-commits

commit:     849bd7d2988e135fee6eb75a4bc498e88340bf0a
Author:     Alexander Golubev <fatzer2 <AT> gmail <DOT> com>
AuthorDate: Mon May  2 14:11:35 2016 +0000
Commit:     Sam Jorna <wraeth <AT> gentoo <DOT> org>
CommitDate: Wed May 11 05:31:40 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=849bd7d2

media-libs/libechonest: fix nonascii artist lookup

Gentoo-bug: https://bugs.gentoo.org/581844

 ...echonest-2.3.1-Don-t-double-encode-on-Qt4.patch | 78 ++++++++++++++++++++++
 media-libs/libechonest/libechonest-2.3.1-r1.ebuild | 72 ++++++++++++++++++++
 2 files changed, 150 insertions(+)

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 0000000..1a7b93b
--- /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 0000000..c609bf3
--- /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
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-05-11  5:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-11  5:32 [gentoo-commits] repo/gentoo:master commit in: media-libs/libechonest/files/, media-libs/libechonest/ Sam Jorna

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox