audio/liblastfm-qt5: Rename and only support Qt6

Move port origin to audio/liblastfm and only support Qt6. Qt5 support
is not required by anything currently in the ports tree.

Switch to active fork and update to latest commit.

Convert TEST option to the cmake testing framework.
This commit is contained in:
Jason E. Hale 2025-02-05 07:58:53 -05:00
parent f4b016e43e
commit a177c72d31
16 changed files with 103 additions and 239 deletions

1
MOVED
View file

@ -4136,3 +4136,4 @@ www/p5-CGI-Application-Plugin-HtmlTidy||2025-02-04|Has expired: Depends on expir
textproc/p5-HTML-Tidy||2025-02-04|Has expired: Depends on expired textproc/tidyp textproc/p5-HTML-Tidy||2025-02-04|Has expired: Depends on expired textproc/tidyp
textproc/tidyp||2025-02-04|Has expired: The repository has been archived by upstream on Apr 14, 2019 textproc/tidyp||2025-02-04|Has expired: The repository has been archived by upstream on Apr 14, 2019
audio/kid3@kf5|audio/kid3@kf6|2025-02-05|kf5 support has been removed. Use kf6 flavor instead audio/kid3@kf5|audio/kid3@kf6|2025-02-05|kf5 support has been removed. Use kf6 flavor instead
audio/liblastfm-qt5||2025-02-05|No ports depend on this. New ports should used Qt6-based audio/liblastfm

View file

@ -353,7 +353,7 @@
SUBDIR += libkcddb SUBDIR += libkcddb
SUBDIR += libkcompactdisc SUBDIR += libkcompactdisc
SUBDIR += libkeyfinder SUBDIR += libkeyfinder
SUBDIR += liblastfm-qt5 SUBDIR += liblastfm
SUBDIR += liblo SUBDIR += liblo
SUBDIR += liblscp SUBDIR += liblscp
SUBDIR += libltc SUBDIR += libltc

View file

@ -1,5 +0,0 @@
TIMESTAMP = 1687757062
SHA256 (lastfm-liblastfm-1.0.9-5-g4433165_GH0.tar.gz) = 8cf1835af3f38f0c7c576e8a01c2d19ee32c7006a44d2d183fb64ed228bc5ca6
SIZE (lastfm-liblastfm-1.0.9-5-g4433165_GH0.tar.gz) = 119427
SHA256 (d51ad3e759331d7d79c6675c5d22541280bf9a70.patch) = a0c3454c57cc1b36cfc617d431bdcdff91adb3ead0c7ee0ec7c9b6c0211f601e
SIZE (d51ad3e759331d7d79c6675c5d22541280bf9a70.patch) = 2220

View file

@ -1,123 +0,0 @@
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;
}

View file

@ -1,33 +0,0 @@
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 */

View file

@ -1,13 +0,0 @@
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 );
}
};

View file

@ -1,36 +0,0 @@
include/lastfm%%QTVER_SUFFIX%%/AbstractType.h
include/lastfm%%QTVER_SUFFIX%%/Album.h
include/lastfm%%QTVER_SUFFIX%%/Artist.h
include/lastfm%%QTVER_SUFFIX%%/Audioscrobbler.h
include/lastfm%%QTVER_SUFFIX%%/Auth.h
include/lastfm%%QTVER_SUFFIX%%/Chart.h
%%FINGERPRINT%%include/lastfm%%QTVER_SUFFIX%%/Fingerprint.h
include/lastfm%%QTVER_SUFFIX%%/FingerprintId.h
%%FINGERPRINT%%include/lastfm%%QTVER_SUFFIX%%/FingerprintableSource.h
include/lastfm%%QTVER_SUFFIX%%/InternetConnectionMonitor.h
include/lastfm%%QTVER_SUFFIX%%/Library.h
include/lastfm%%QTVER_SUFFIX%%/Mbid.h
include/lastfm%%QTVER_SUFFIX%%/NetworkAccessManager.h
include/lastfm%%QTVER_SUFFIX%%/NetworkConnectionMonitor.h
include/lastfm%%QTVER_SUFFIX%%/Playlist.h
include/lastfm%%QTVER_SUFFIX%%/RadioStation.h
include/lastfm%%QTVER_SUFFIX%%/RadioTuner.h
include/lastfm%%QTVER_SUFFIX%%/ScrobbleCache.h
include/lastfm%%QTVER_SUFFIX%%/ScrobblePoint.h
include/lastfm%%QTVER_SUFFIX%%/Tag.h
include/lastfm%%QTVER_SUFFIX%%/Tasteometer.h
include/lastfm%%QTVER_SUFFIX%%/Track.h
include/lastfm%%QTVER_SUFFIX%%/Url.h
include/lastfm%%QTVER_SUFFIX%%/UrlBuilder.h
include/lastfm%%QTVER_SUFFIX%%/User.h
include/lastfm%%QTVER_SUFFIX%%/XmlQuery.h
include/lastfm%%QTVER_SUFFIX%%/Xspf.h
include/lastfm%%QTVER_SUFFIX%%/global.h
include/lastfm%%QTVER_SUFFIX%%/misc.h
include/lastfm%%QTVER_SUFFIX%%/ws.h
lib/liblastfm%%QTVER_SUFFIX%%.so
lib/liblastfm%%QTVER_SUFFIX%%.so.1
lib/liblastfm%%QTVER_SUFFIX%%.so.1.1.0
%%FINGERPRINT%%lib/liblastfm_fingerprint%%QTVER_SUFFIX%%.so
%%FINGERPRINT%%lib/liblastfm_fingerprint%%QTVER_SUFFIX%%.so.1
%%FINGERPRINT%%lib/liblastfm_fingerprint%%QTVER_SUFFIX%%.so.1.1.0

View file

@ -1,45 +1,35 @@
PORTNAME= liblastfm PORTNAME= liblastfm
DISTVERSION= 1.0.9-5 DISTVERSION= 1.1.0-46
DISTVERSIONSUFFIX= -g4433165 DISTVERSIONSUFFIX= -g2e8e40d
PORTREVISION= 3
CATEGORIES= audio CATEGORIES= audio
PKGNAMESUFFIX= -qt5 PKGNAMESUFFIX= -qt6
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${PORTNAME}/commit/
PATCHFILES+= d51ad3e759331d7d79c6675c5d22541280bf9a70.patch:-p1 #Remove dynamic exception specs
MAINTAINER= jhale@FreeBSD.org MAINTAINER= jhale@FreeBSD.org
COMMENT= Qt C++ library for the Last.fm webservices COMMENT= Qt C++ library for the Last.fm webservices
WWW= https://github.com/lastfm/liblastfm WWW= https://github.com/drfiemost/liblastfm
LICENSE= GPLv3+ LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING LICENSE_FILE= ${WRKSRC}/COPYING
USES= cmake compiler:c++11-lang pkgconfig qt:5 USES= cmake:testing compiler:c++17-lang pkgconfig qt:6
USE_GITHUB= yes USE_GITHUB= yes
GH_ACCOUNT= lastfm GH_ACCOUNT= lastfm
USE_LDCONFIG= yes USE_LDCONFIG= yes
USE_QT= core dbus network sql xml \ USE_QT= base tools:build
buildtools:build qmake:build
CMAKE_OFF= BUILD_WITH_QT4
QTVER_SUFFIX= 5
PLIST_SUB= QTVER_SUFFIX="${QTVER_SUFFIX}" CMAKE_OFF= BUILD_TESTS
CMAKE_TESTING_ON= BUILD_TESTS
OPTIONS_DEFINE= FINGERPRINT TEST OPTIONS_DEFINE= FINGERPRINT
OPTIONS_DEFAULT= FINGERPRINT OPTIONS_DEFAULT= FINGERPRINT
OPTIONS_SUB= yes OPTIONS_SUB= yes
FINGERPRINT_DESC= Build the lastfm-fingerprint library FINGERPRINT_DESC= Build the lastfm-fingerprint library
# We only need fftw3.h from math/fftw3; no need to install
FINGERPRINT_BUILD_DEPENDS= ${NONEXISTENT}:math/fftw3:patch
FINGERPRINT_LIB_DEPENDS=libsamplerate.so:audio/libsamplerate \ FINGERPRINT_LIB_DEPENDS=libsamplerate.so:audio/libsamplerate \
libfftw3f.so:math/fftw3-float libfftw3f.so:math/fftw3-float
FINGERPRINT_CMAKE_BOOL= BUILD_FINGERPRINT 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 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 <bsd.port.mk> .include <bsd.port.mk>

3
audio/liblastfm/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1738744095
SHA256 (lastfm-liblastfm-1.1.0-46-g2e8e40d_GH0.tar.gz) = 010cba3baa12513c825f5bbde454da842ff2ec3692a5a0811147c7f128ac1556
SIZE (lastfm-liblastfm-1.1.0-46-g2e8e40d_GH0.tar.gz) = 119115

View file

@ -1,18 +1,19 @@
- Avoid needless CMake < 3.10 deprecation warnings
- Support symbol visibility with Clang - Support symbol visibility with Clang
- Don't put linker flags in CXXFLAGS - Don't put linker flags in CXXFLAGS
--- CMakeLists.txt.orig 2014-10-02 14:05:46 UTC --- CMakeLists.txt.orig 2024-11-24 17:34:23 UTC
+++ CMakeLists.txt +++ CMakeLists.txt
@@ -1,4 +1,5 @@ @@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.8.6) -cmake_minimum_required(VERSION 3.6)
+cmake_policy(SET CMP0043 OLD) +cmake_minimum_required(VERSION 3.10)
project(liblastfm) project(liblastfm)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) # general settings
@@ -62,11 +63,11 @@ else() @@ -68,11 +68,11 @@ endif()
add_feature_info(FFTW3F FFTW3F_FOUND "Required for lastfm-fingerprint library")
endif() endif()
-if(CMAKE_COMPILER_IS_GNUCXX) -if(CMAKE_COMPILER_IS_GNUCXX)
+if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_definitions("-fno-operator-names -fvisibility-inlines-hidden -fvisibility=hidden") add_definitions("-fno-operator-names -fvisibility-inlines-hidden -fvisibility=hidden")

View file

@ -0,0 +1,13 @@
mobilize():
- Mobile website 301 redirects to main website, so just return the url as-is
--- src/UrlBuilder.cpp.orig 2024-11-24 17:34:23 UTC
+++ src/UrlBuilder.cpp
@@ -118,7 +118,6 @@ lastfm::UrlBuilder::mobilize( QUrl url )
QUrl //static
lastfm::UrlBuilder::mobilize( QUrl url )
{
- url.setHost( url.host().replace( QRegularExpression("^(www.)?last"), "m.last" ) );
return url;
}

View file

@ -0,0 +1,16 @@
Mark mobilize() as deprecated. It doesn't do anything useful.
--- src/UrlBuilder.h.orig 2024-11-24 17:34:23 UTC
+++ src/UrlBuilder.h
@@ -46,8 +46,9 @@ namespace lastfm
/** www.last.fm becomes the local version, eg www.lastfm.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 301
+ * 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

View file

@ -0,0 +1,10 @@
Include fftw3.h from math/fftw3. LIBFFTW3_INCLUDE_DIR is set in the port
Makefile.
--- src/fingerprint/CMakeLists.txt.orig 2024-11-24 17:34:23 UTC
+++ src/fingerprint/CMakeLists.txt
@@ -1,3 +1,4 @@
+include_directories(${LIBFFTW3_INCLUDE_DIR})
include_directories(${CMAKE_CURRENT_LIST_DIR}/..)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/..)

40
audio/liblastfm/pkg-plist Normal file
View file

@ -0,0 +1,40 @@
include/lastfm6/AbstractType.h
include/lastfm6/Album.h
include/lastfm6/Artist.h
include/lastfm6/Audioscrobbler.h
include/lastfm6/Auth.h
include/lastfm6/Chart.h
%%FINGERPRINT%%include/lastfm6/Fingerprint.h
include/lastfm6/FingerprintId.h
%%FINGERPRINT%%include/lastfm6/FingerprintableSource.h
include/lastfm6/InternetConnectionMonitor.h
include/lastfm6/Library.h
include/lastfm6/Mbid.h
include/lastfm6/NetworkAccessManager.h
include/lastfm6/NetworkConnectionMonitor.h
include/lastfm6/Playlist.h
include/lastfm6/RadioStation.h
include/lastfm6/RadioTuner.h
include/lastfm6/ScrobbleCache.h
include/lastfm6/ScrobblePoint.h
include/lastfm6/Tag.h
include/lastfm6/Tasteometer.h
include/lastfm6/Track.h
include/lastfm6/Url.h
include/lastfm6/UrlBuilder.h
include/lastfm6/User.h
include/lastfm6/XmlQuery.h
include/lastfm6/Xspf.h
include/lastfm6/global.h
include/lastfm6/misc.h
include/lastfm6/ws.h
lib/cmake/lastfm6/lastfm6Config-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/lastfm6/lastfm6Config.cmake
%%FINGERPRINT%%lib/cmake/lastfm6/lastfm_fingerprint6Config-%%CMAKE_BUILD_TYPE%%.cmake
%%FINGERPRINT%%lib/cmake/lastfm6/lastfm_fingerprint6Config.cmake
lib/liblastfm6.so
lib/liblastfm6.so.1
lib/liblastfm6.so.1.1.0
%%FINGERPRINT%%lib/liblastfm_fingerprint6.so
%%FINGERPRINT%%lib/liblastfm_fingerprint6.so.1
%%FINGERPRINT%%lib/liblastfm_fingerprint6.so.1.1.0