Browse Source

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.
overlay
Jason E. Hale 5 months ago
parent
commit
a177c72d31
  1. 1
      MOVED
  2. 2
      audio/Makefile
  3. 5
      audio/liblastfm-qt5/distinfo
  4. 123
      audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp
  5. 33
      audio/liblastfm-qt5/files/patch-src_UrlBuilder.h
  6. 13
      audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h
  7. 36
      audio/liblastfm-qt5/pkg-plist
  8. 32
      audio/liblastfm/Makefile
  9. 3
      audio/liblastfm/distinfo
  10. 15
      audio/liblastfm/files/patch-CMakeLists.txt
  11. 13
      audio/liblastfm/files/patch-src_UrlBuilder.cpp
  12. 16
      audio/liblastfm/files/patch-src_UrlBuilder.h
  13. 10
      audio/liblastfm/files/patch-src_fingerprint_CMakeLists.txt
  14. 0
      audio/liblastfm/files/patch-src_mbid__mp3.c
  15. 0
      audio/liblastfm/pkg-descr
  16. 40
      audio/liblastfm/pkg-plist

1
MOVED

@ -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/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/liblastfm-qt5||2025-02-05|No ports depend on this. New ports should used Qt6-based audio/liblastfm

2
audio/Makefile

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

5
audio/liblastfm-qt5/distinfo

@ -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

123
audio/liblastfm-qt5/files/patch-src_UrlBuilder.cpp

@ -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;
}

33
audio/liblastfm-qt5/files/patch-src_UrlBuilder.h

@ -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 */

13
audio/liblastfm-qt5/files/patch-tests_TestUrlBuilder.h

@ -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 );
}
};

36
audio/liblastfm-qt5/pkg-plist

@ -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

32
audio/liblastfm-qt5/Makefile → audio/liblastfm/Makefile

@ -1,45 +1,35 @@
PORTNAME= liblastfm
DISTVERSION= 1.0.9-5
DISTVERSIONSUFFIX= -g4433165
PORTREVISION= 3
DISTVERSION= 1.1.0-46
DISTVERSIONSUFFIX= -g2e8e40d
CATEGORIES= audio
PKGNAMESUFFIX= -qt5
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${PORTNAME}/commit/
PATCHFILES+= d51ad3e759331d7d79c6675c5d22541280bf9a70.patch:-p1 #Remove dynamic exception specs
PKGNAMESUFFIX= -qt6
MAINTAINER= jhale@FreeBSD.org
COMMENT= Qt C++ library for the Last.fm webservices
WWW= https://github.com/lastfm/liblastfm
WWW= https://github.com/drfiemost/liblastfm
LICENSE= GPLv3+
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
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
USE_QT= base tools:build
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_SUB= yes
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 \
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 <bsd.port.mk>

3
audio/liblastfm/distinfo

@ -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

15
audio/liblastfm-qt5/files/patch-CMakeLists.txt → audio/liblastfm/files/patch-CMakeLists.txt

@ -1,18 +1,19 @@
- Avoid needless CMake < 3.10 deprecation warnings
- Support symbol visibility with Clang
- 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
@@ -1,4 +1,5 @@
cmake_minimum_required(VERSION 2.8.6)
+cmake_policy(SET CMP0043 OLD)
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.6)
+cmake_minimum_required(VERSION 3.10)
project(liblastfm)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
@@ -62,11 +63,11 @@ else()
# general settings
@@ -68,11 +68,11 @@ endif()
add_feature_info(FFTW3F FFTW3F_FOUND "Required for lastfm-fingerprint library")
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")

13
audio/liblastfm/files/patch-src_UrlBuilder.cpp

@ -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;
}

16
audio/liblastfm/files/patch-src_UrlBuilder.h

@ -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

10
audio/liblastfm/files/patch-src_fingerprint_CMakeLists.txt

@ -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}/..)

0
audio/liblastfm-qt5/files/patch-src_mbid__mp3.c → audio/liblastfm/files/patch-src_mbid__mp3.c

0
audio/liblastfm-qt5/pkg-descr → audio/liblastfm/pkg-descr

40
audio/liblastfm/pkg-plist

@ -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
Loading…
Cancel
Save