[packages/libechonest] - patch for C++17 compatibility; release 2
qboosh
qboosh at pld-linux.org
Sat Oct 4 12:45:01 CEST 2025
commit c255966616fcfecfe0726fcbd1e793f776a1ae53
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sat Oct 4 12:48:11 2025 +0200
- patch for C++17 compatibility; release 2
libechonest-throw.patch | 1063 +++++++++++++++++++++++++++++++++++++++++++++++
libechonest.spec | 20 +-
2 files changed, 1072 insertions(+), 11 deletions(-)
---
diff --git a/libechonest.spec b/libechonest.spec
index 523211e..a6069ed 100644
--- a/libechonest.spec
+++ b/libechonest.spec
@@ -8,12 +8,13 @@ Summary: C++/Qt4 wrapper for the Echo Nest API
Summary(pl.UTF-8): Obudowanie C++/Qt4 dla API Echo Nest
Name: libechonest
Version: 2.3.1
-Release: 1
+Release: 2
License: GPL v2+
Group: Libraries
Source0: http://files.lfranchi.com/%{name}-%{version}.tar.bz2
# Source0-md5: d8c60545b056145dc66882971a0acf9c
-URL: https://projects.kde.org/projects/playground/libs/libechonest
+Patch0: %{name}-throw.patch
+URL: https://invent.kde.org/unmaintained/libechonest
BuildRequires: cmake >= 2.6
BuildRequires: libstdc++-devel
BuildRequires: pkgconfig
@@ -35,11 +36,6 @@ BuildRequires: qt5-qmake >= 5
BuildRequires: rpmbuild(macros) >= 1.605
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# Unresolved symbol __stack_chk_fail in libechonest.so.2.1.0
-%ifarch i486
-%define skip_post_check_so libechonest.so.%{version}
-%endif
-
%description
libechonest is a collection of Qt4 classes designed to make a
developer's life easy when trying to use the APIs provided by The Echo
@@ -97,6 +93,7 @@ wykorzystujących bibliotekę libechonest5.
%prep
%setup -q
+%patch -P0 -p1
%build
%if %{with qt4}
@@ -135,6 +132,7 @@ test "$(pkg-config --modversion libechonest5)" = "%{version}"
%install
rm -rf $RPM_BUILD_ROOT
+
%if %{with qt4}
%{__make} -C build-qt4 install/fast \
DESTDIR=$RPM_BUILD_ROOT
@@ -160,11 +158,11 @@ rm -rf $RPM_BUILD_ROOT
%doc AUTHORS README TODO
%attr(755,root,root) %{_libdir}/libechonest.so.*.*.*
# yes, SONAME is "libechonest.so.2.3"
-%attr(755,root,root) %ghost %{_libdir}/libechonest.so.2.3
+%ghost %{_libdir}/libechonest.so.2.3
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libechonest.so
+%{_libdir}/libechonest.so
%{_includedir}/echonest
%{_pkgconfigdir}/libechonest.pc
%endif
@@ -175,11 +173,11 @@ rm -rf $RPM_BUILD_ROOT
%doc AUTHORS README TODO
%attr(755,root,root) %{_libdir}/libechonest5.so.*.*.*
# yes, SONAME is "libechonest5.so.2.3"
-%attr(755,root,root) %ghost %{_libdir}/libechonest5.so.2.3
+%ghost %{_libdir}/libechonest5.so.2.3
%files -n libechonest-qt5-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libechonest5.so
+%{_libdir}/libechonest5.so
%{_includedir}/echonest5
%{_pkgconfigdir}/libechonest5.pc
%endif
diff --git a/libechonest-throw.patch b/libechonest-throw.patch
new file mode 100644
index 0000000..390dfd4
--- /dev/null
+++ b/libechonest-throw.patch
@@ -0,0 +1,1063 @@
+--- libechonest-2.3.1/src/Parsing_p.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Parsing_p.h 2025-10-04 12:15:09.872545373 +0200
+@@ -37,92 +37,92 @@ namespace Parser
+ * Internal helper parsing functions for QXmlStreamParser
+ */
+
+- void checkForErrors( QNetworkReply* reply ) throw( ParseError );
++ void checkForErrors( QNetworkReply* reply );
+
+ // read the start element and then the status element, throwing
+ // if the result code is not Success
+- void readStatus( QXmlStreamReader& xml ) throw( ParseError );
++ void readStatus( QXmlStreamReader& xml );
+
+ // parses a <songs></songs> block and turns them into a list of Song object
+- QVector< Song > parseSongList( QXmlStreamReader& xml ) throw( ParseError );
++ QVector< Song > parseSongList( QXmlStreamReader& xml );
+
+ // parses a <song></song> block
+- Song parseSong( QXmlStreamReader& xml ) throw( ParseError );
++ Song parseSong( QXmlStreamReader& xml );
+
+ // parses a <artist_location> block
+- ArtistLocation parseSongArtistLocation( QXmlStreamReader& xml ) throw( ParseError );
++ ArtistLocation parseSongArtistLocation( QXmlStreamReader& xml );
+
+ // parses a <track></track> block
+- Track parseTrack( QXmlStreamReader& xml ) throw( ParseError );
++ Track parseTrack( QXmlStreamReader& xml );
+
+ // parses a <tracks> chunk when asking for a song with tracks bucket
+- Tracks parseSongTrackBucket( QXmlStreamReader& xml ) throw( ParseError );
++ Tracks parseSongTrackBucket( QXmlStreamReader& xml );
+
+ // parses an <audio_summary> chunk
+- AudioSummary parseAudioSummary( QXmlStreamReader& xml ) throw( ParseError );
++ AudioSummary parseAudioSummary( QXmlStreamReader& xml );
+ // parses the json of the detailed audio summary
+- void parseDetailedAudioSummary( QNetworkReply* reply, AudioSummary& summary ) throw( ParseError );
++ void parseDetailedAudioSummary( QNetworkReply* reply, AudioSummary& summary );
+
+ // parses a list of artists in an <artists></artists> block
+- Echonest::Artists parseArtists( QXmlStreamReader& xml ) throw( ParseError );
++ Echonest::Artists parseArtists( QXmlStreamReader& xml );
+
+ // parses the contents of an artist fetch result, expects to be positioned after the readStatus() call
+ // it could be a profile query, in which case it has a bunch of different artist attributes
+ // or it could be a single fetch, in which case it starts with result number and offset.
+ // the results are saved back into the artist
+- int parseArtistInfoOrProfile( QXmlStreamReader&, Echonest::Artist& artist ) throw( ParseError );
++ int parseArtistInfoOrProfile( QXmlStreamReader&, Echonest::Artist& artist );
+
+ // parse the individual artist attributes
+- void parseArtistInfo( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
++ void parseArtistInfo( QXmlStreamReader& xml, Echonest::Artist& artist );
+
+ // parse each type of artist attribute
+- void parseAudio( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseBiographies( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseImages( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseNewsOrBlogs( QXmlStreamReader& xml, Echonest::Artist& artist, bool news = true ) throw( ParseError );
+- void parseReviews( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseTerms( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseUrls( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseArtistSong( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseVideos( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseForeignArtistIds( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
+- void parseArtistGenres( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( ParseError );
++ void parseAudio( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseBiographies( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseImages( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseNewsOrBlogs( QXmlStreamReader& xml, Echonest::Artist& artist, bool news = true );
++ void parseReviews( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseTerms( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseUrls( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseArtistSong( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseVideos( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseForeignArtistIds( QXmlStreamReader& xml, Echonest::Artist& artist );
++ void parseArtistGenres( QXmlStreamReader& xml, Echonest::Artist& artist );
+
+ // parse a list of terms
+- TermList parseTopTermList( QXmlStreamReader& xml ) throw( ParseError );
+- QVector< QString > parseTermList( QXmlStreamReader& xml ) throw( ParseError );
++ TermList parseTopTermList( QXmlStreamReader& xml );
++ QVector< QString > parseTermList( QXmlStreamReader& xml );
+
+ //parse a list of genres
+- QVector< QString > parseGenreListStrings( QXmlStreamReader& xml ) throw( ParseError );
++ QVector< QString > parseGenreListStrings( QXmlStreamReader& xml );
+
+- Echonest::Genres parseGenres( QXmlStreamReader& xml ) throw( ParseError );
+- Echonest::Genre parseGenre( QXmlStreamReader& xml ) throw( ParseError );
++ Echonest::Genres parseGenres( QXmlStreamReader& xml );
++ Echonest::Genre parseGenre( QXmlStreamReader& xml );
+
+- Artists parseArtistSuggestList( QXmlStreamReader& xml ) throw( ParseError );
++ Artists parseArtistSuggestList( QXmlStreamReader& xml );
+
+- License parseLicense( QXmlStreamReader& xml ) throw( ParseError );
++ License parseLicense( QXmlStreamReader& xml );
+
+- QByteArray parsePlaylistSessionId( QXmlStreamReader& xml ) throw( ParseError );
+- SongList parseDynamicLookahead( QXmlStreamReader& xml ) throw( ParseError );
++ QByteArray parsePlaylistSessionId( QXmlStreamReader& xml );
++ SongList parseDynamicLookahead( QXmlStreamReader& xml );
+
+ // Catalog functions
+- Catalogs parseCatalogList( QXmlStreamReader& xml ) throw( ParseError );
+- Catalog parseCatalog( QXmlStreamReader& xml, bool justOne = false /* the catalog API is ugly :( */ ) throw( ParseError );
+- QList<CatalogItem*> parseCatalogItems( QXmlStreamReader& xml ) throw( ParseError );
+- void parseCatalogRequestItem( QXmlStreamReader& xml, Echonest::CatalogArtist&, Echonest::CatalogSong& ) throw( ParseError );
++ Catalogs parseCatalogList( QXmlStreamReader& xml );
++ Catalog parseCatalog( QXmlStreamReader& xml, bool justOne = false /* the catalog API is ugly :( */ );
++ QList<CatalogItem*> parseCatalogItems( QXmlStreamReader& xml );
++ void parseCatalogRequestItem( QXmlStreamReader& xml, Echonest::CatalogArtist&, Echonest::CatalogSong& );
+ void saveArtistList( Catalog& catalog, QList<CatalogItem*>& );
+ void saveSongList( Catalog& catalog, QList<CatalogItem*>& );
+- Echonest::CatalogStatus parseCatalogStatus( QXmlStreamReader& xml ) throw( ParseError );
+- Echonest::CatalogStatusItem parseTicketUpdateInfo( QXmlStreamReader& xml ) throw( ParseError );
+- QByteArray parseCatalogTicket( QXmlStreamReader& xml ) throw( ParseError );
+- Catalog parseNewCatalog( QXmlStreamReader& xml ) throw( ParseError );
++ Echonest::CatalogStatus parseCatalogStatus( QXmlStreamReader& xml );
++ Echonest::CatalogStatusItem parseTicketUpdateInfo( QXmlStreamReader& xml );
++ QByteArray parseCatalogTicket( QXmlStreamReader& xml );
++ Catalog parseNewCatalog( QXmlStreamReader& xml );
+
+ // parses a <tracks> chunk when asking for a song with tracks bucket in a catalog.read call
+- Tracks parseCatalogSongTracks( QXmlStreamReader& xml ) throw( ParseError );
++ Tracks parseCatalogSongTracks( QXmlStreamReader& xml );
+
+- SessionInfo parseSessionInfo( QXmlStreamReader& xml ) throw( ParseError );
+- QVector< QString > parseRulesList( QXmlStreamReader& xml ) throw( ParseError );
+-// QVector< SessionItem > parseSessionSongItem( QXmlStreamReader& xml, const QString& type ) throw( ParseError );
++ SessionInfo parseSessionInfo( QXmlStreamReader& xml );
++ QVector< QString > parseRulesList( QXmlStreamReader& xml );
++// QVector< SessionItem > parseSessionSongItem( QXmlStreamReader& xml, const QString& type );
+
+ }
+ }
+--- libechonest-2.3.1/src/AudioSummary.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/AudioSummary.h 2025-10-04 12:17:37.748410927 +0200
+@@ -136,7 +136,7 @@ namespace Echonest{
+ * information such as mode, fadein/fadeout, confidence metrics,
+ * and the division of the song into bars, beats, sections, and segments.
+ */
+- void parseFullAnalysis( QNetworkReply* reply ) throw( ParseError );
++ void parseFullAnalysis( QNetworkReply* reply );
+
+ /// The following methods *ALL REQUIRE THAT parseFullAnalysis be called first*
+
+--- libechonest-2.3.1/src/Track.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Track.h 2025-10-04 12:17:54.474986978 +0200
+@@ -213,7 +213,7 @@ public:
+ * Call this function after the QNetworkReply* object returned
+ * from the parse*, upload*, and analyze* emits its finished() signal
+ */
+- static Track parseProfile( QNetworkReply* ) throw( ParseError );
++ static Track parseProfile( QNetworkReply* );
+
+ private:
+
+--- libechonest-2.3.1/src/Song.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Song.h 2025-10-04 12:18:06.114923920 +0200
+@@ -226,19 +226,19 @@ public:
+ * Parses the reply of the identify call and returns a list of songs found.
+ *
+ */
+- static QVector< Song > parseIdentify( QNetworkReply* ) throw( ParseError );
++ static QVector< Song > parseIdentify( QNetworkReply* );
+
+ /**
+ * Parse the result of the fetchInformation() call.
+ * For each requested SongInformationFlag in the original request, the respective
+ * data will be saved to this Song object.
+ */
+- void parseInformation( QNetworkReply* reply ) throw( ParseError );
++ void parseInformation( QNetworkReply* reply );
+
+ /**
+ * Parse the result of the search() call.
+ */
+- static QVector<Song> parseSearch( QNetworkReply* reply ) throw( ParseError );
++ static QVector<Song> parseSearch( QNetworkReply* reply );
+
+ QString toString() const;
+
+--- libechonest-2.3.1/src/Artist.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Artist.h 2025-10-04 12:18:37.501420551 +0200
+@@ -300,7 +300,7 @@ namespace Echonest{
+ *
+ * @return The number of results available on the server.
+ */
+- int parseProfile( QNetworkReply* ) throw( ParseError );
++ int parseProfile( QNetworkReply* );
+
+ /**
+ * Fetch a list of similar artists given one or more artists for comparison.
+@@ -368,40 +368,40 @@ namespace Echonest{
+ * Parse the result of a fetchSimilar() call, which returns a list of artists similar to the
+ * original pair.
+ */
+- static Artists parseSimilar( QNetworkReply* ) throw( ParseError );
++ static Artists parseSimilar( QNetworkReply* );
+
+ /**
+ * Parse the result of an artist search.
+ */
+- static Artists parseSearch( QNetworkReply* ) throw( ParseError );
++ static Artists parseSearch( QNetworkReply* );
+
+ /**
+ * Parse the result of a top hottness query.
+ */
+- static Artists parseTopHottt( QNetworkReply* ) throw( ParseError );
++ static Artists parseTopHottt( QNetworkReply* );
+
+ /**
+ * Parse the result of a top terms query.
+ */
+- static TermList parseTopTerms( QNetworkReply* ) throw( ParseError );
++ static TermList parseTopTerms( QNetworkReply* );
+
+ /**
+ * Parse the result of a suggest query
+ *
+ * Returns a list of suggested artists
+ */
+- static Artists parseSuggest( QNetworkReply* ) throw( ParseError );
++ static Artists parseSuggest( QNetworkReply* );
+
+ /**
+ * Parse the result of a termList query. Returns the list of terms delivered.
+ */
+- static QVector< QString > parseTermList( QNetworkReply* ) throw( ParseError );
++ static QVector< QString > parseTermList( QNetworkReply* );
+
+ /**
+ * @Deprecated
+ * Parse the result of a genres query. Returns the list of genres delivered.
+ */
+- static QVector< QString > parseGenreList( QNetworkReply* ) throw ( ParseError );
++ static QVector< QString > parseGenreList( QNetworkReply* );
+
+ private:
+ QUrl setupQuery( const QByteArray& methodName, int numResults = 0, int start = -1 ) const;
+--- libechonest-2.3.1/src/Catalog.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Catalog.h 2025-10-04 12:19:11.964567181 +0200
+@@ -173,17 +173,17 @@ public:
+ * Parses the result of a status call, returning the status information along with information on
+ * item resolution if available.
+ */
+- static CatalogStatus parseStatus( QNetworkReply* ) throw( Echonest::ParseError );
++ static CatalogStatus parseStatus( QNetworkReply* );
+
+ /**
+ * Parses the result of a profile() call. Saves the data to this catalog object.
+ */
+- void parseProfile( QNetworkReply* ) throw( Echonest::ParseError );
++ void parseProfile( QNetworkReply* );
+
+ /**
+ * Parses the result of the read*Catalog() calls. Saves the catalog data to this object.
+ */
+- void parseRead( QNetworkReply * ) throw( Echonest::ParseError );
++ void parseRead( QNetworkReply * );
+
+ /**
+ * Parse the result of a delete call. Will throw if the catalog was not successfully deleted,
+@@ -191,24 +191,24 @@ public:
+ *
+ * \return QPair of catalogName, catalogId that was just deleted.
+ */
+- QPair< QString, QByteArray > parseDelete( QNetworkReply* ) throw( Echonest::ParseError );
++ QPair< QString, QByteArray > parseDelete( QNetworkReply* );
+
+ /**
+ * Parse the result of the list() API call. Will return a list of catalogs---each catalog only
+ * has id, name, type, and total tracks information.
+ */
+- static Catalogs parseList( QNetworkReply* ) throw( Echonest::ParseError );
++ static Catalogs parseList( QNetworkReply* );
+
+ /**
+ * Parse the result of a catalog call. The calls return a ticket that can be used to check the status
+ * of the call with status()
+ */
+- static QByteArray parseTicket( QNetworkReply* ) throw( Echonest::ParseError );
++ static QByteArray parseTicket( QNetworkReply* );
+
+ /**
+ * Parse the result of a create() call.
+ */
+- static Catalog parseCreate( QNetworkReply* reply ) throw( Echonest::ParseError );
++ static Catalog parseCreate( QNetworkReply* reply );
+ private:
+ static QNetworkReply* updatePrivate( QUrl&, const CatalogUpdateEntries& entries );
+ QNetworkReply* readPrivate( QUrl& url, int results, int start ) const;
+--- libechonest-2.3.1/src/Playlist.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Playlist.h 2025-10-04 12:21:57.833668592 +0200
+@@ -247,7 +247,7 @@ namespace Echonest{
+ * to extract session information
+ */
+ QNetworkReply* create( const PlaylistParams& params ) const;
+- void parseCreate( QNetworkReply* ) throw( ParseError );
++ void parseCreate( QNetworkReply* );
+
+ /**
+ * Retart a dynamic playlist with the given parameters.
+@@ -289,7 +289,7 @@ namespace Echonest{
+ * the "next" list and the "lookahead" list. Consult the \ref next() docs
+ * and The Echo Nest documentation for more information.
+ */
+- FetchPair parseNext( QNetworkReply* reply ) throw( ParseError );
++ FetchPair parseNext( QNetworkReply* reply );
+
+ /**
+ * Returns feedback to The Echo Nest for the currently playing dynamic
+@@ -306,7 +306,7 @@ namespace Echonest{
+ *
+ * Will throw an exception if the return code is not successful (as other parse methods do).
+ */
+- void parseFeedback(QNetworkReply* reply) const throw( ParseError );
++ void parseFeedback(QNetworkReply* reply) const;
+
+ /**
+ * Modifies the upcoming tracks in this dynamic playlist session by steering it.
+@@ -322,13 +322,13 @@ namespace Echonest{
+ *
+ * Will throw an exception if the return code is not successful (as other parse methods do).
+ */
+- void parseSteer(QNetworkReply* reply) const throw( ParseError );
++ void parseSteer(QNetworkReply* reply) const;
+
+ /**
+ * Returns a description of this dynamic playlist session
+ */
+ QNetworkReply* fetchInfo() const;
+- SessionInfo parseInfo( QNetworkReply* reply ) throw( ParseError );
++ SessionInfo parseInfo( QNetworkReply* reply );
+
+ /**
+ * Deletes a currently active playlist session. A non-commercial API can have, at most 1,000 active playlist sessions.
+@@ -341,12 +341,12 @@ namespace Echonest{
+ * you pass format=xspf to \c staticPlaylist().
+ */
+ static QNetworkReply* staticPlaylist( const PlaylistParams& params );
+- static SongList parseStaticPlaylist( QNetworkReply* reply ) throw( ParseError );
++ static SongList parseStaticPlaylist( QNetworkReply* reply );
+
+ /**
+ * Parse an xspf playlist. Returns the full xspf content with no modifications.
+ */
+- static QByteArray parseXSPFPlaylist( QNetworkReply* reply ) throw( ParseError );
++ static QByteArray parseXSPFPlaylist( QNetworkReply* reply );
+
+ private:
+ static QByteArray playlistParamToString( PlaylistParam param );
+--- libechonest-2.3.1/src/Genre.h.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Genre.h 2025-10-04 12:22:26.896844476 +0200
+@@ -63,11 +63,11 @@ namespace Echonest{
+ static QNetworkReply* fetchList( GenreInformation information = GenreInformation(), int numResults = 0 );
+ static QNetworkReply* fetchSearch( const QString& name, GenreInformation information = GenreInformation(), int numResults = 0, int start = -1 );
+
+- static Artists parseArtists( QNetworkReply* ) throw( ParseError );
+- static Genres parseSimilar( QNetworkReply* ) throw( ParseError );
+- static Genres parseProfile( QNetworkReply* ) throw( ParseError );
+- static Genres parseList( QNetworkReply* ) throw( ParseError );
+- static Genres parseSearch( QNetworkReply* ) throw( ParseError );
++ static Artists parseArtists( QNetworkReply* );
++ static Genres parseSimilar( QNetworkReply* );
++ static Genres parseProfile( QNetworkReply* );
++ static Genres parseList( QNetworkReply* );
++ static Genres parseSearch( QNetworkReply* );
+ private:
+ static QUrl setupStaticQuery( const QByteArray& methodName, int numResults = 0, int start = -1 );
+ QUrl setupQuery( const QByteArray& methodName, int numResults = 0, int start = -1 ) const;
+--- libechonest-2.3.1/src/Song.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Song.cpp 2025-10-04 12:25:50.772406654 +0200
+@@ -247,7 +247,7 @@ QNetworkReply* Echonest::Song::identify(
+ return Echonest::Config::instance()->nam()->post( request, data );
+ }
+
+-Echonest::SongList Echonest::Song::parseIdentify( QNetworkReply* reply ) throw( ParseError )
++Echonest::SongList Echonest::Song::parseIdentify( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -287,7 +287,7 @@ Echonest::SongList Echonest::Song::parse
+
+
+
+-void Echonest::Song::parseInformation( QNetworkReply* reply ) throw( ParseError )
++void Echonest::Song::parseInformation( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -313,7 +313,7 @@ void Echonest::Song::parseInformation( Q
+
+ }
+
+-QVector< Echonest::Song > Echonest::Song::parseSearch( QNetworkReply* reply ) throw( ParseError )
++QVector< Echonest::Song > Echonest::Song::parseSearch( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+--- libechonest-2.3.1/src/Track.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Track.cpp 2025-10-04 12:26:13.875614827 +0200
+@@ -292,7 +292,7 @@ QNetworkReply* Echonest::Track::analyzeT
+ // return Echonest::Config::instance()->nam()->post( QNetworkRequest( url ), QByteArray() );
+ }
+
+-Echonest::Track Echonest::Track::parseProfile( QNetworkReply* finishedReply ) throw( Echonest::ParseError )
++Echonest::Track Echonest::Track::parseProfile( QNetworkReply* finishedReply )
+ {
+ QByteArray data = finishedReply->readAll();
+ qDebug() << data;
+--- libechonest-2.3.1/src/Artist.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Artist.cpp 2025-10-04 12:32:59.653416540 +0200
+@@ -499,7 +499,7 @@ QNetworkReply* Echonest::Artist::suggest
+ }
+
+
+-int Echonest::Artist::parseProfile( QNetworkReply* reply ) throw( Echonest::ParseError )
++int Echonest::Artist::parseProfile( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -513,7 +513,7 @@ int Echonest::Artist::parseProfile( QNet
+ return numResults;
+ }
+
+-Echonest::Artists Echonest::Artist::parseSearch( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Artists Echonest::Artist::parseSearch( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -528,17 +528,17 @@ Echonest::Artists Echonest::Artist::pars
+ return artists;
+ }
+
+-Echonest::Artists Echonest::Artist::parseSimilar( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Artists Echonest::Artist::parseSimilar( QNetworkReply* reply )
+ {
+ return parseSearch( reply );
+ }
+
+-Echonest::Artists Echonest::Artist::parseTopHottt( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Artists Echonest::Artist::parseTopHottt( QNetworkReply* reply )
+ {
+ return parseSearch( reply );
+ }
+
+-Echonest::TermList Echonest::Artist::parseTopTerms( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::TermList Echonest::Artist::parseTopTerms( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -552,7 +552,7 @@ Echonest::TermList Echonest::Artist::par
+ return terms;
+ }
+
+-Echonest::Artists Echonest::Artist::parseSuggest( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Artists Echonest::Artist::parseSuggest( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -566,7 +566,7 @@ Echonest::Artists Echonest::Artist::pars
+ return artists;
+ }
+
+-QVector< QString > Echonest::Artist::parseTermList( QNetworkReply* reply ) throw( Echonest::ParseError )
++QVector< QString > Echonest::Artist::parseTermList( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -580,7 +580,7 @@ QVector< QString > Echonest::Artist::par
+ return terms;
+ }
+
+-QVector< QString > Echonest::Artist::parseGenreList( QNetworkReply* reply ) throw( Echonest::ParseError )
++QVector< QString > Echonest::Artist::parseGenreList( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+--- libechonest-2.3.1/src/Playlist.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Playlist.cpp 2025-10-04 12:33:16.829990153 +0200
+@@ -50,7 +50,7 @@ QNetworkReply* Echonest::DynamicPlaylist
+ return generateInternal( params, "dynamic/create" );
+ }
+
+-void Echonest::DynamicPlaylist::parseCreate(QNetworkReply* reply) throw( Echonest::ParseError )
++void Echonest::DynamicPlaylist::parseCreate(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+ QByteArray data = reply->readAll();
+@@ -110,7 +110,7 @@ QNetworkReply* Echonest::DynamicPlaylist
+ }
+
+
+-Echonest::DynamicPlaylist::FetchPair Echonest::DynamicPlaylist::parseNext(QNetworkReply* reply) throw( Echonest::ParseError )
++Echonest::DynamicPlaylist::FetchPair Echonest::DynamicPlaylist::parseNext(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -141,7 +141,7 @@ QNetworkReply* Echonest::DynamicPlaylist
+ return Echonest::Config::instance()->nam()->get( QNetworkRequest( url ) );
+ }
+
+-void Echonest::DynamicPlaylist::parseFeedback(QNetworkReply* reply) const throw( Echonest::ParseError )
++void Echonest::DynamicPlaylist::parseFeedback(QNetworkReply* reply) const
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -214,7 +214,7 @@ QNetworkReply* Echonest::DynamicPlaylist
+ return Echonest::Config::instance()->nam()->get( QNetworkRequest( url ) );
+ }
+
+-void Echonest::DynamicPlaylist::parseSteer(QNetworkReply* reply) const throw( Echonest::ParseError )
++void Echonest::DynamicPlaylist::parseSteer(QNetworkReply* reply) const
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -225,7 +225,7 @@ void Echonest::DynamicPlaylist::parseSte
+ reply->deleteLater();
+ }
+
+-Echonest::SessionInfo Echonest::DynamicPlaylist::parseInfo(QNetworkReply* reply) throw( Echonest::ParseError )
++Echonest::SessionInfo Echonest::DynamicPlaylist::parseInfo(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -265,7 +265,7 @@ QNetworkReply* Echonest::DynamicPlaylist
+ return Echonest::DynamicPlaylist::generateInternal( params, "static" );
+ }
+
+-Echonest::SongList Echonest::DynamicPlaylist::parseStaticPlaylist(QNetworkReply* reply) throw( Echonest::ParseError )
++Echonest::SongList Echonest::DynamicPlaylist::parseStaticPlaylist(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -278,7 +278,7 @@ Echonest::SongList Echonest::DynamicPlay
+ return songs;
+ }
+
+-QByteArray Echonest::DynamicPlaylist::parseXSPFPlaylist(QNetworkReply* reply) throw( Echonest::ParseError )
++QByteArray Echonest::DynamicPlaylist::parseXSPFPlaylist(QNetworkReply* reply)
+ {
+ QByteArray data = reply->readAll();
+ Echonest::Parser::checkForErrors( reply );
+--- libechonest-2.3.1/src/Parsing.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Parsing.cpp 2025-10-04 12:38:44.094883873 +0200
+@@ -28,7 +28,7 @@
+ #include <QDateTime>
+ #include <QStringBuilder>
+
+-void Echonest::Parser::checkForErrors( QNetworkReply* reply ) throw( Echonest::ParseError )
++void Echonest::Parser::checkForErrors( QNetworkReply* reply )
+ {
+ if( !reply )
+ throw ParseError( Echonest::UnknownError );
+@@ -46,7 +46,7 @@ void Echonest::Parser::checkForErrors( Q
+ }
+ }
+
+-void Echonest::Parser::readStatus( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++void Echonest::Parser::readStatus( QXmlStreamReader& xml )
+ {
+ if( xml.readNextStartElement() ) {
+ // sanity checks
+@@ -80,7 +80,7 @@ void Echonest::Parser::readStatus( QXmlS
+ }
+ }
+
+-QVector< Echonest::Song > Echonest::Parser::parseSongList( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++QVector< Echonest::Song > Echonest::Parser::parseSongList( QXmlStreamReader& xml )
+ {
+ QVector< Echonest::Song > songs;
+
+@@ -92,7 +92,7 @@ QVector< Echonest::Song > Echonest::Pars
+ return songs;
+ }
+
+-Echonest::Song Echonest::Parser::parseSong( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Song Echonest::Parser::parseSong( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "song" ) )
+ throw ParseError( Echonest::UnknownParseError );
+@@ -132,7 +132,7 @@ Echonest::Song Echonest::Parser::parseSo
+ }
+
+
+-Echonest::ArtistLocation Echonest::Parser::parseSongArtistLocation( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::ArtistLocation Echonest::Parser::parseSongArtistLocation( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "artist_location" ) ) {
+ throw ParseError( Echonest::UnknownParseError );
+@@ -160,7 +160,7 @@ xml.readNext();
+ return location;
+ }
+
+-Echonest::Tracks Echonest::Parser::parseSongTrackBucket( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Tracks Echonest::Parser::parseSongTrackBucket( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "tracks" ) ) {
+ throw ParseError( Echonest::UnknownParseError );
+@@ -179,7 +179,7 @@ Echonest::Tracks Echonest::Parser::parse
+ }
+
+
+-Echonest::Tracks Echonest::Parser::parseCatalogSongTracks( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Tracks Echonest::Parser::parseCatalogSongTracks( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "tracks" ) ) {
+ throw ParseError( Echonest::UnknownParseError );
+@@ -196,7 +196,7 @@ Echonest::Tracks Echonest::Parser::parse
+ return tracks;
+ }
+
+-Echonest::Track Echonest::Parser::parseTrack( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Track Echonest::Parser::parseTrack( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "track" ) ) {
+ throw ParseError( Echonest::UnknownParseError );
+@@ -244,7 +244,7 @@ Echonest::Track Echonest::Parser::parseT
+ }
+
+
+-Echonest::AudioSummary Echonest::Parser::parseAudioSummary( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::AudioSummary Echonest::Parser::parseAudioSummary( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "audio_summary" ) ) {
+ throw ParseError( Echonest::UnknownParseError );
+@@ -303,7 +303,7 @@ inline QVector< T > extractTripleTuple(
+ return tList;
+ }
+
+-void Echonest::Parser::parseDetailedAudioSummary( QNetworkReply* reply, Echonest::AudioSummary& summary ) throw( ParseError )
++void Echonest::Parser::parseDetailedAudioSummary( QNetworkReply* reply, Echonest::AudioSummary& summary )
+ {
+ bool ok;
+ QByteArray jsonData = reply->readAll();
+@@ -383,7 +383,7 @@ void Echonest::Parser::parseDetailedAudi
+ }
+
+
+-Echonest::Artists Echonest::Parser::parseArtists( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Artists Echonest::Parser::parseArtists( QXmlStreamReader& xml )
+ {
+ // we expect to be in an <artists> start element
+ if( xml.atEnd() || xml.name() != QLatin1String( "artists" ) || !xml.isStartElement() )
+@@ -407,7 +407,7 @@ Echonest::Artists Echonest::Parser::pars
+ return artists;
+ }
+
+-int Echonest::Parser::parseArtistInfoOrProfile( QXmlStreamReader& xml , Echonest::Artist& artist ) throw( Echonest::ParseError )
++int Echonest::Parser::parseArtistInfoOrProfile( QXmlStreamReader& xml , Echonest::Artist& artist )
+ {
+ if( xml.name() == QLatin1String( "start" ) ) { // this is an individual info query, so lets read it
+ xml.readNextStartElement();
+@@ -436,7 +436,7 @@ int Echonest::Parser::parseArtistInfoOrP
+ return 0;
+ }
+
+-void Echonest::Parser::parseArtistInfo( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseArtistInfo( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ // parse each sort of artist information
+ if( xml.name() == QLatin1String( "audio" ) ) {
+@@ -479,7 +479,7 @@ void Echonest::Parser::parseArtistInfo(
+
+ // parse each type of artist attribute
+
+-void Echonest::Parser::parseAudio( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseAudio( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "audio" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -514,7 +514,7 @@ void Echonest::Parser::parseAudio( QXmlS
+ artist.setAudio( audioList );
+ }
+
+-void Echonest::Parser::parseBiographies( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseBiographies( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "biographies" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -543,7 +543,7 @@ void Echonest::Parser::parseBiographies(
+ }
+
+
+-void Echonest::Parser::parseImages( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseImages( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "images" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -567,7 +567,7 @@ void Echonest::Parser::parseImages( QXml
+ artist.setImages( imgs );
+ }
+
+-void Echonest::Parser::parseNewsOrBlogs( QXmlStreamReader& xml, Echonest::Artist& artist, bool news ) throw( Echonest::ParseError )
++void Echonest::Parser::parseNewsOrBlogs( QXmlStreamReader& xml, Echonest::Artist& artist, bool news )
+ {
+ if( news && ( xml.atEnd() || xml.name() != QLatin1String( "news" ) || xml.tokenType() != QXmlStreamReader::StartElement ) )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -603,7 +603,7 @@ void Echonest::Parser::parseNewsOrBlogs(
+ artist.setBlogs( newsList );
+ }
+
+-void Echonest::Parser::parseReviews( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseReviews( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "reviews" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -637,7 +637,7 @@ void Echonest::Parser::parseReviews( QXm
+ artist.setReviews( reviews );
+ }
+
+-void Echonest::Parser::parseArtistSong( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseArtistSong( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "songs" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -662,14 +662,14 @@ void Echonest::Parser::parseArtistSong(
+ artist.setSongs( songs );
+ }
+
+-void Echonest::Parser::parseTerms( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseTerms( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "terms" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+ artist.setTerms( parseTopTermList( xml ) );
+ }
+
+-Echonest::Artists Echonest::Parser::parseArtistSuggestList( QXmlStreamReader& xml ) throw( ParseError )
++Echonest::Artists Echonest::Parser::parseArtistSuggestList( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "artists" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -694,7 +694,7 @@ Echonest::Artists Echonest::Parser::pars
+ }
+
+
+-void Echonest::Parser::parseUrls( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseUrls( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "urls" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -720,7 +720,7 @@ void Echonest::Parser::parseUrls( QXmlSt
+ xml.readNextStartElement();
+ }
+
+-void Echonest::Parser::parseVideos( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseVideos( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "video" )|| xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -753,7 +753,7 @@ void Echonest::Parser::parseVideos( QXml
+ artist.setVideos( videos );
+ }
+
+-Echonest::TermList Echonest::Parser::parseTopTermList( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::TermList Echonest::Parser::parseTopTermList( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "terms" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -783,7 +783,7 @@ Echonest::TermList Echonest::Parser::par
+ }
+
+
+-QVector< QString > Echonest::Parser::parseTermList( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++QVector< QString > Echonest::Parser::parseTermList( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "terms" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -798,7 +798,7 @@ QVector< QString > Echonest::Parser::par
+ return terms;
+ }
+
+-QVector< QString > Echonest::Parser::parseGenreListStrings( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++QVector< QString > Echonest::Parser::parseGenreListStrings( QXmlStreamReader& xml )
+ {
+ xml.readNextStartElement();
+ xml.readNextStartElement();
+@@ -816,7 +816,7 @@ QVector< QString > Echonest::Parser::par
+ return genres;
+ }
+
+-Echonest::Genres Echonest::Parser::parseGenres( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Genres Echonest::Parser::parseGenres( QXmlStreamReader& xml )
+ {
+ if ( xml.name() == QLatin1String( "start" ) )
+ xml.readNextStartElement();
+@@ -839,7 +839,7 @@ Echonest::Genres Echonest::Parser::parse
+ return genres;
+ }
+
+-Echonest::Genre Echonest::Parser::parseGenre( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Genre Echonest::Parser::parseGenre( QXmlStreamReader& xml )
+ {
+ Genre g;
+ while ( !( xml.isEndElement() && xml.name() == QLatin1String( "genre" ) ) ) {
+@@ -860,13 +860,13 @@ Echonest::Genre Echonest::Parser::parseG
+ return g;
+ }
+
+-void Echonest::Parser::parseArtistGenres( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseArtistGenres( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ Genres genres = parseGenres( xml );
+ artist.setGenres( genres );
+ }
+
+-void Echonest::Parser::parseForeignArtistIds( QXmlStreamReader& xml, Echonest::Artist& artist ) throw( Echonest::ParseError )
++void Echonest::Parser::parseForeignArtistIds( QXmlStreamReader& xml, Echonest::Artist& artist )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "foreign_ids" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -890,7 +890,7 @@ void Echonest::Parser::parseForeignArtis
+ artist.setForeignIds( ids );
+ }
+
+-Echonest::License Echonest::Parser::parseLicense( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::License Echonest::Parser::parseLicense( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "license" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -911,7 +911,7 @@ Echonest::License Echonest::Parser::pars
+ return license;
+ }
+
+-QByteArray Echonest::Parser::parsePlaylistSessionId( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++QByteArray Echonest::Parser::parsePlaylistSessionId( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "session_id" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -921,7 +921,7 @@ QByteArray Echonest::Parser::parsePlayli
+ return sessionId;
+ }
+
+-Echonest::SongList Echonest::Parser::parseDynamicLookahead( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::SongList Echonest::Parser::parseDynamicLookahead( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -956,8 +956,8 @@ Echonest::SongList Echonest::Parser::par
+ return lookahead;
+ }
+
+-// Catalogs parseCatalogList( QXmlStreamReader& xml ) throw( ParseError );
+-Echonest::Catalogs Echonest::Parser::parseCatalogList( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++// Catalogs parseCatalogList( QXmlStreamReader& xml );
++Echonest::Catalogs Echonest::Parser::parseCatalogList( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -984,7 +984,7 @@ Echonest::Catalogs Echonest::Parser::par
+ return catalogs;
+ }
+
+-Echonest::Catalog Echonest::Parser::parseCatalog( QXmlStreamReader& xml, bool justOne ) throw( Echonest::ParseError )
++Echonest::Catalog Echonest::Parser::parseCatalog( QXmlStreamReader& xml, bool justOne )
+ {
+ QString cName = justOne ? QLatin1String( "catalog" ) : QLatin1String( "catalogs" );
+ if( xml.atEnd() || xml.name() != cName || !xml.isStartElement() )
+@@ -1020,7 +1020,7 @@ Echonest::Catalog Echonest::Parser::pars
+ return catalog;
+ }
+
+-QList<Echonest::CatalogItem*> Echonest::Parser::parseCatalogItems( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++QList<Echonest::CatalogItem*> Echonest::Parser::parseCatalogItems( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "items" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -1115,7 +1115,7 @@ QList<Echonest::CatalogItem*> Echonest::
+ return items;
+ }
+
+-void Echonest::Parser::parseCatalogRequestItem( QXmlStreamReader& xml, Echonest::CatalogArtist& artist, Echonest::CatalogSong& song) throw( Echonest::ParseError )
++void Echonest::Parser::parseCatalogRequestItem( QXmlStreamReader& xml, Echonest::CatalogArtist& artist, Echonest::CatalogSong& song)
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "request" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -1168,7 +1168,7 @@ void Echonest::Parser::saveSongList( Ech
+ }
+
+
+-Echonest::CatalogStatus Echonest::Parser::parseCatalogStatus( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::CatalogStatus Echonest::Parser::parseCatalogStatus( QXmlStreamReader& xml )
+ {
+ Echonest::CatalogStatus status;
+
+@@ -1190,7 +1190,7 @@ Echonest::CatalogStatus Echonest::Parser
+ return status;
+ }
+
+-Echonest::CatalogStatusItem Echonest::Parser::parseTicketUpdateInfo( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::CatalogStatusItem Echonest::Parser::parseTicketUpdateInfo( QXmlStreamReader& xml )
+ {
+ // if( xml.atEnd() || xml.name() != "ticket_status" || xml.tokenType() != QXmlStreamReader::StartElement )
+ // throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -1198,7 +1198,7 @@ Echonest::CatalogStatusItem Echonest::Pa
+ return Echonest::CatalogStatusItem();
+ }
+
+-QByteArray Echonest::Parser::parseCatalogTicket( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++QByteArray Echonest::Parser::parseCatalogTicket( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "ticket" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -1207,7 +1207,7 @@ QByteArray Echonest::Parser::parseCatalo
+ return ticket;
+ }
+
+-Echonest::Catalog Echonest::Parser::parseNewCatalog( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::Catalog Echonest::Parser::parseNewCatalog( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -1236,7 +1236,7 @@ Echonest::Catalog Echonest::Parser::pars
+ return c;
+ }
+
+-Echonest::SessionInfo Echonest::Parser::parseSessionInfo( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++Echonest::SessionInfo Echonest::Parser::parseSessionInfo( QXmlStreamReader& xml )
+ {
+ Echonest::SessionInfo info;
+
+@@ -1284,7 +1284,7 @@ Echonest::SessionInfo Echonest::Parser::
+ }
+
+
+-QVector< QString > Echonest::Parser::parseRulesList( QXmlStreamReader& xml ) throw( Echonest::ParseError )
++QVector< QString > Echonest::Parser::parseRulesList( QXmlStreamReader& xml )
+ {
+ if( xml.atEnd() || xml.name() != QLatin1String( "rules" ) || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+@@ -1302,7 +1302,7 @@ QVector< QString > Echonest::Parser::par
+ }
+ /*
+ * TODO port to API v2
+-QVector< Echonest::SessionItem > Echonest::Parser::parseSessionSongItem( QXmlStreamReader& xml, const QString& type ) throw( Echonest::ParseError )
++QVector< Echonest::SessionItem > Echonest::Parser::parseSessionSongItem( QXmlStreamReader& xml, const QString& type )
+ {
+ if( xml.atEnd() || xml.name() != type || xml.tokenType() != QXmlStreamReader::StartElement )
+ throw Echonest::ParseError( Echonest::UnknownParseError );
+--- libechonest-2.3.1/src/AudioSummary.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/AudioSummary.cpp 2025-10-04 12:38:54.234828940 +0200
+@@ -185,7 +185,7 @@ void Echonest::AudioSummary::setNumSampl
+ d->num_samples = num;
+ }
+
+-void Echonest::AudioSummary::parseFullAnalysis( QNetworkReply* reply ) throw( Echonest::ParseError )
++void Echonest::AudioSummary::parseFullAnalysis( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+ Echonest::Parser::parseDetailedAudioSummary( reply, *this );
+--- libechonest-2.3.1/src/Catalog.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Catalog.cpp 2025-10-04 12:45:13.356108398 +0200
+@@ -216,7 +216,7 @@ QNetworkReply* Echonest::Catalog::readSo
+ return readPrivate( url, results, start );
+ }
+
+-QPair< QString, QByteArray > Echonest::Catalog::parseDelete( QNetworkReply* reply ) throw( Echonest::ParseError )
++QPair< QString, QByteArray > Echonest::Catalog::parseDelete( QNetworkReply* reply )
+ {
+ QByteArray data = reply->readAll();
+ // qDebug() << "DATA:" << data;
+@@ -232,7 +232,7 @@ QPair< QString, QByteArray > Echonest::C
+ return asd;
+ }
+
+-Echonest::Catalogs Echonest::Catalog::parseList(QNetworkReply* reply) throw( Echonest::ParseError )
++Echonest::Catalogs Echonest::Catalog::parseList(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+ QXmlStreamReader xml( reply->readAll() );
+@@ -244,7 +244,7 @@ Echonest::Catalogs Echonest::Catalog::pa
+ return catalogs;
+ }
+
+-void Echonest::Catalog::parseProfile(QNetworkReply* reply) throw( Echonest::ParseError )
++void Echonest::Catalog::parseProfile(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+ QXmlStreamReader xml( reply->readAll() );
+@@ -255,7 +255,7 @@ void Echonest::Catalog::parseProfile(QNe
+ reply->deleteLater();
+ }
+
+-void Echonest::Catalog::parseRead(QNetworkReply* reply) throw( Echonest::ParseError )
++void Echonest::Catalog::parseRead(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+ QXmlStreamReader xml( reply->readAll() );
+@@ -266,7 +266,7 @@ void Echonest::Catalog::parseRead(QNetwo
+ reply->deleteLater();
+ }
+
+-Echonest::CatalogStatus Echonest::Catalog::parseStatus(QNetworkReply* reply) throw( Echonest::ParseError )
++Echonest::CatalogStatus Echonest::Catalog::parseStatus(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+ QByteArray data = reply->readAll();
+@@ -279,7 +279,7 @@ Echonest::CatalogStatus Echonest::Catalo
+ return status;
+ }
+
+-QByteArray Echonest::Catalog::parseTicket(QNetworkReply* reply) throw( Echonest::ParseError )
++QByteArray Echonest::Catalog::parseTicket(QNetworkReply* reply)
+ {
+ Echonest::Parser::checkForErrors( reply );
+ QByteArray data = reply->readAll();
+@@ -292,7 +292,7 @@ QByteArray Echonest::Catalog::parseTicke
+ return ticket;
+ }
+
+-Echonest::Catalog Echonest::Catalog::parseCreate(QNetworkReply* reply) throw( Echonest::ParseError )
++Echonest::Catalog Echonest::Catalog::parseCreate(QNetworkReply* reply)
+ {
+ QByteArray data = reply->readAll();
+ // qDebug() << data;
+--- libechonest-2.3.1/src/Genre.cpp.orig 2015-02-07 20:59:44.000000000 +0100
++++ libechonest-2.3.1/src/Genre.cpp 2025-10-04 12:46:01.165849390 +0200
+@@ -158,25 +158,25 @@ QNetworkReply* Echonest::Genre::fetchSea
+ }
+
+
+-Echonest::Artists Echonest::Genre::parseArtists( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Artists Echonest::Genre::parseArtists( QNetworkReply* reply )
+ {
+ return Artist::parseSearch( reply );
+ }
+
+
+-Echonest::Genres Echonest::Genre::parseSimilar( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Genres Echonest::Genre::parseSimilar( QNetworkReply* reply )
+ {
+ return parseList( reply );
+ }
+
+
+-Echonest::Genres Echonest::Genre::parseProfile( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Genres Echonest::Genre::parseProfile( QNetworkReply* reply )
+ {
+ return parseList( reply );
+ }
+
+
+-Echonest::Genres Echonest::Genre::parseList( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Genres Echonest::Genre::parseList( QNetworkReply* reply )
+ {
+ Echonest::Parser::checkForErrors( reply );
+
+@@ -191,7 +191,7 @@ Echonest::Genres Echonest::Genre::parseL
+ }
+
+
+-Echonest::Genres Echonest::Genre::parseSearch( QNetworkReply* reply ) throw( Echonest::ParseError )
++Echonest::Genres Echonest::Genre::parseSearch( QNetworkReply* reply )
+ {
+ return parseList( reply );
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/libechonest.git/commitdiff/c255966616fcfecfe0726fcbd1e793f776a1ae53
More information about the pld-cvs-commit
mailing list