Index: branches/2021Q1/audio/liblastfm-qt5/Makefile =================================================================== --- branches/2021Q1/audio/liblastfm-qt5/Makefile (revision 564788) +++ branches/2021Q1/audio/liblastfm-qt5/Makefile (revision 564789) @@ -1,43 +1,43 @@ # $FreeBSD$ PORTNAME= liblastfm DISTVERSION= 1.0.9-5 -PORTREVISION= 1 +PORTREVISION= 2 DISTVERSIONSUFFIX= -g4433165 CATEGORIES= audio PKGNAMESUFFIX= -qt5 MAINTAINER= jhale@FreeBSD.org COMMENT= Qt C++ library for the Last.fm webservices LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING USES= cmake compiler:c++11-lang pkgconfig qt:5 USE_GITHUB= yes GH_ACCOUNT= lastfm USE_LDCONFIG= yes USE_QT= core dbus network sql xml \ buildtools_build qmake_build CMAKE_OFF= BUILD_WITH_QT4 QTVER_SUFFIX= 5 PLIST_SUB= QTVER_SUFFIX="${QTVER_SUFFIX}" OPTIONS_DEFINE= FINGERPRINT TEST OPTIONS_DEFAULT= FINGERPRINT OPTIONS_SUB= yes FINGERPRINT_DESC= Build the lastfm-fingerprint library FINGERPRINT_LIB_DEPENDS=libsamplerate.so:audio/libsamplerate \ libfftw3f.so:math/fftw3-float FINGERPRINT_CMAKE_BOOL= BUILD_FINGERPRINT # We only need fftw3.h from math/fftw3; no need to install FINGERPRINT_BUILD_DEPENDS= ${NONEXISTENT}:math/fftw3:patch FINGERPRINT_CMAKE_ON= -DLIBFFTW3_INCLUDE_DIR:PATH=`${MAKE} -C ${PORTSDIR}/math/fftw3 -VWRKSRC`/api TEST_USE= QT=testlib_build TEST_CMAKE_BOOL= BUILD_TESTS TEST_TEST_TARGET= test .include Index: branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.h =================================================================== --- branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.h (nonexistent) +++ branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.h (revision 564789) @@ -0,0 +1,33 @@ +Add prototype for localePath() and adjust comments to reflect current +website layout + +--- src/UrlBuilder.h.orig 2015-02-06 16:49:40 UTC ++++ src/UrlBuilder.h +@@ -44,10 +44,12 @@ namespace lastfm + + QUrl url() const; + +- /** www.last.fm becomes the local version, eg www.lastfm.de */ ++ /** www.last.fm becomes the local version, e.g. www.last.fm/de */ + static QUrl localize( QUrl ); +- /** www.last.fm becomes m.last.fm, localisation is preserved */ +- static QUrl mobilize( QUrl ); ++ ++ /** DEPRECATED: Returns url as-is since the mobile website redirects ++ * to the main website */ ++ Q_DECL_DEPRECATED static QUrl mobilize( QUrl ); + + /** Use this to URL encode any database item (artist, track, album). It + * internally calls UrlEncodeSpecialChars to double encode some special +@@ -60,7 +62,10 @@ namespace lastfm + */ + static QByteArray encode( QString ); + +- /** returns eg. www.lastfm.de */ ++ /** returns the base path of the localized website e.g. /de */ ++ static QString localePath ( const QLocale& = QLocale() ); ++ ++ /** returns www.last.fm */ + static QString host( const QLocale& = QLocale() ); + + /** return true if url is a last.fm url */ Property changes on: branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp =================================================================== --- branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp (nonexistent) +++ branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp (revision 564789) @@ -0,0 +1,123 @@ +url(): + - Use https scheme to avoid 301 redirects + - Override default QUrl::TolerantMode with QUrl::StrictMode for Qt 5.x to + prevent overprocessing the already encoded input URL +localePath(): + - New function to return the base path of the localized website +host(): + - Just return www.last.fm since the localized hosts 301 redirect there +localize(): + - Set the path of the url instead of the host since the localized + hosts 301 redirect to the main website with a localized path +mobilize(): + - Mobile website 301 redirects to main website, so just return the url as-is + +--- src/UrlBuilder.cpp.orig 2014-10-02 14:05:46 UTC ++++ src/UrlBuilder.cpp +@@ -32,7 +32,7 @@ class lastfm::UrlBuilderPrivate (public) + lastfm::UrlBuilder::UrlBuilder( const QString& base ) + : d( new UrlBuilderPrivate ) + { +- d->path = '/' + base.toLatin1(); ++ d->path = localePath().toLatin1() + '/' + base.toLatin1(); + } + + +@@ -60,10 +60,10 @@ QUrl + lastfm::UrlBuilder::url() const + { + QUrl url; +- url.setScheme( "http" ); ++ url.setScheme( "https" ); + url.setHost( host() ); + #if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) +- url.setPath( d->path ); ++ url.setPath( d->path, QUrl::StrictMode ); + #else + url.setEncodedPath( d->path ); + #endif +@@ -85,49 +85,50 @@ lastfm::UrlBuilder::encode( QString s ) + + + QString //static +-lastfm::UrlBuilder::host( const QLocale& locale ) ++lastfm::UrlBuilder::localePath( const QLocale& locale ) + { + switch (locale.language()) + { +- case QLocale::Portuguese: return "www.lastfm.com.br"; +- case QLocale::Turkish: return "www.lastfm.com.tr"; +- case QLocale::French: return "www.lastfm.fr"; +- case QLocale::Italian: return "www.lastfm.it"; +- case QLocale::German: return "www.lastfm.de"; +- case QLocale::Spanish: return "www.lastfm.es"; +- case QLocale::Polish: return "www.lastfm.pl"; +- case QLocale::Russian: return "www.lastfm.ru"; +- case QLocale::Japanese: return "www.lastfm.jp"; +- case QLocale::Swedish: return "www.lastfm.se"; +- case QLocale::Chinese: return "cn.last.fm"; +- default: return "www.last.fm"; ++ case QLocale::Chinese: return "/zh"; ++ case QLocale::French: return "/fr"; ++ case QLocale::German: return "/de"; ++ case QLocale::Italian: return "/it"; ++ case QLocale::Japanese: return "/ja"; ++ case QLocale::Polish: return "/pl"; ++ case QLocale::Portuguese: return "/pt"; ++ case QLocale::Russian: return "/ru"; ++ case QLocale::Spanish: return "/es"; ++ case QLocale::Swedish: return "/sv"; ++ case QLocale::Turkish: return "/tr"; ++ default: return ""; + } + } + + ++QString //static ++lastfm::UrlBuilder::host( const QLocale& locale ) ++{ ++ return "www.last.fm"; ++} ++ ++ + bool // static + lastfm::UrlBuilder::isHost( const QUrl& url ) + { +- QStringList hosts = QStringList() << "www.lastfm.com.br" +- << "www.lastfm.com.tr" +- << "www.lastfm.fr" +- << "www.lastfm.it" +- << "www.lastfm.de" +- << "www.lastfm.es" +- << "www.lastfm.pl" +- << "www.lastfm.ru" +- << "www.lastfm.jp" +- << "www.lastfm.se" +- << "cn.last.fm" +- << "www.last.fm"; ++ QStringList hosts = QStringList() << "www.last.fm"; + + return hosts.contains( url.host() ); + } + ++ + QUrl //static + lastfm::UrlBuilder::localize( QUrl url) + { +- url.setHost( url.host().replace( QRegExp("^(www.)?last.fm"), host() ) ); ++#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) ++ url.setPath( url.path().prepend( localePath() ), QUrl::DecodedMode ); ++#else ++ url.setPath( url.path().prepend( localePath() ) ); ++#endif + return url; + } + +@@ -135,7 +136,6 @@ lastfm::UrlBuilder::localize( QUrl url) + QUrl //static + lastfm::UrlBuilder::mobilize( QUrl url ) + { +- url.setHost( url.host().replace( QRegExp("^(www.)?last"), "m.last" ) ); + return url; + } + Property changes on: branches/2021Q1/audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2021Q1/audio/liblastfm-qt5/files/patch-src_mbid__mp3.c =================================================================== --- branches/2021Q1/audio/liblastfm-qt5/files/patch-src_mbid__mp3.c (nonexistent) +++ branches/2021Q1/audio/liblastfm-qt5/files/patch-src_mbid__mp3.c (revision 564789) @@ -0,0 +1,15 @@ +Silence warning +warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses] + if (!strncmp(head,"ID3",3) == 0) { + +--- src/mbid_mp3.c.orig 2014-10-02 14:05:46 UTC ++++ src/mbid_mp3.c +@@ -94,7 +94,7 @@ int getMP3_MBID(const char *path, char mbid[MBID_BUFFE + + while (s) { + mfile(3,head,fp,&s); +- if (!strncmp(head,"ID3",3) == 0) { ++ if (!(strncmp(head,"ID3",3) == 0)) { + //debug("No ID3v2 tag found: %s\n",path); + break; + } Property changes on: branches/2021Q1/audio/liblastfm-qt5/files/patch-src_mbid__mp3.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2021Q1/audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h =================================================================== --- branches/2021Q1/audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h (nonexistent) +++ branches/2021Q1/audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h (revision 564789) @@ -0,0 +1,13 @@ +http://www.last.fm 301 redirects to https://www.last.fm causing test to fail + +--- tests/TestUrlBuilder.h.orig 2018-03-31 12:04:00 UTC ++++ tests/TestUrlBuilder.h +@@ -81,7 +81,7 @@ private slots: + + void test404() /** @author */ + { +- QCOMPARE( getResponseCode( QUrl("http://www.last.fm/404") ), 404 ); ++ QCOMPARE( getResponseCode( QUrl("https://www.last.fm/404") ), 404 ); + } + }; + Property changes on: branches/2021Q1/audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2021Q1/audio/liblastfm-qt5/files/patch-CMakeLists.txt =================================================================== --- branches/2021Q1/audio/liblastfm-qt5/files/patch-CMakeLists.txt (nonexistent) +++ branches/2021Q1/audio/liblastfm-qt5/files/patch-CMakeLists.txt (revision 564789) @@ -0,0 +1,25 @@ +- Support symbol visibility with Clang +- Don't put linker flags in CXXFLAGS + +--- CMakeLists.txt.orig 2014-10-02 14:05:46 UTC ++++ CMakeLists.txt +@@ -1,4 +1,5 @@ + cmake_minimum_required(VERSION 2.8.6) ++cmake_policy(SET CMP0043 OLD) + project(liblastfm) + + set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) +@@ -62,11 +63,11 @@ else() + endif() + + +-if(CMAKE_COMPILER_IS_GNUCXX) ++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_definitions("-fno-operator-names -fvisibility-inlines-hidden -fvisibility=hidden") + endif() + if(UNIX AND NOT APPLE) +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-undefined") ++set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") + endif() + + if(MSVC) Property changes on: branches/2021Q1/audio/liblastfm-qt5/files/patch-CMakeLists.txt ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2021Q1 =================================================================== --- branches/2021Q1 (revision 564788) +++ branches/2021Q1 (revision 564789) Property changes on: branches/2021Q1 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r564788