MFH: r564788
audio/liblastfm-qt5: Restore the patches that were originally part of audio/liblastfm (R.I.P.) to make the library function again. It seems they were forgotten when this was converted to a free-standing port in r495869.
This commit is contained in:
parent
0a0e46e910
commit
0f5950b10a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/branches/2021Q1/; revision=564789
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= liblastfm
|
||||
DISTVERSION= 1.0.9-5
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
DISTVERSIONSUFFIX= -g4433165
|
||||
CATEGORIES= audio
|
||||
PKGNAMESUFFIX= -qt5
|
||||
|
25
audio/liblastfm-qt5/files/patch-CMakeLists.txt
Normal file
25
audio/liblastfm-qt5/files/patch-CMakeLists.txt
Normal file
@ -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)
|
123
audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp
Normal file
123
audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp
Normal file
@ -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;
|
||||
}
|
||||
|
33
audio/liblastfm-qt5/files/patch-src_UrlBuilder.h
Normal file
33
audio/liblastfm-qt5/files/patch-src_UrlBuilder.h
Normal file
@ -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 */
|
15
audio/liblastfm-qt5/files/patch-src_mbid__mp3.c
Normal file
15
audio/liblastfm-qt5/files/patch-src_mbid__mp3.c
Normal file
@ -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;
|
||||
}
|
13
audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h
Normal file
13
audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h
Normal file
@ -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 <max@last.fm> */
|
||||
{
|
||||
- QCOMPARE( getResponseCode( QUrl("http://www.last.fm/404") ), 404 );
|
||||
+ QCOMPARE( getResponseCode( QUrl("https://www.last.fm/404") ), 404 );
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user