summaryrefslogtreecommitdiff
path: root/audio/liblastfm
diff options
context:
space:
mode:
Diffstat (limited to 'audio/liblastfm')
-rw-r--r--audio/liblastfm/Makefile35
-rw-r--r--audio/liblastfm/distinfo3
-rw-r--r--audio/liblastfm/files/patch-CMakeLists.txt26
-rw-r--r--audio/liblastfm/files/patch-src_UrlBuilder.cpp13
-rw-r--r--audio/liblastfm/files/patch-src_UrlBuilder.h16
-rw-r--r--audio/liblastfm/files/patch-src_fingerprint_CMakeLists.txt10
-rw-r--r--audio/liblastfm/files/patch-src_mbid__mp3.c15
-rw-r--r--audio/liblastfm/pkg-descr3
-rw-r--r--audio/liblastfm/pkg-plist40
9 files changed, 161 insertions, 0 deletions
diff --git a/audio/liblastfm/Makefile b/audio/liblastfm/Makefile
new file mode 100644
index 000000000000..d63885f6dc71
--- /dev/null
+++ b/audio/liblastfm/Makefile
@@ -0,0 +1,35 @@
+PORTNAME= liblastfm
+DISTVERSION= 1.1.0-46
+DISTVERSIONSUFFIX= -g2e8e40d
+CATEGORIES= audio
+PKGNAMESUFFIX= -qt6
+
+MAINTAINER= jhale@FreeBSD.org
+COMMENT= Qt C++ library for the Last.fm webservices
+WWW= https://github.com/drfiemost/liblastfm
+
+LICENSE= GPLv3+
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+USES= cmake:testing compiler:c++17-lang pkgconfig qt:6
+USE_GITHUB= yes
+GH_ACCOUNT= lastfm
+USE_LDCONFIG= yes
+USE_QT= base tools:build
+
+CMAKE_OFF= BUILD_TESTS
+CMAKE_TESTING_ON= BUILD_TESTS
+
+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
+FINGERPRINT_CMAKE_ON= -DLIBFFTW3_INCLUDE_DIR:PATH=`${MAKE} -C ${PORTSDIR}/math/fftw3 -VWRKSRC`/api
+
+.include <bsd.port.mk>
diff --git a/audio/liblastfm/distinfo b/audio/liblastfm/distinfo
new file mode 100644
index 000000000000..ddab73b6be29
--- /dev/null
+++ b/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
diff --git a/audio/liblastfm/files/patch-CMakeLists.txt b/audio/liblastfm/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..a6e3465d2543
--- /dev/null
+++ b/audio/liblastfm/files/patch-CMakeLists.txt
@@ -0,0 +1,26 @@
+- Avoid needless CMake < 3.10 deprecation warnings
+- Support symbol visibility with Clang
+- Don't put linker flags in CXXFLAGS
+
+--- CMakeLists.txt.orig 2024-11-24 17:34:23 UTC
++++ CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 3.6)
++cmake_minimum_required(VERSION 3.10)
+ project(liblastfm)
+
+ # 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")
+ 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)
diff --git a/audio/liblastfm/files/patch-src_UrlBuilder.cpp b/audio/liblastfm/files/patch-src_UrlBuilder.cpp
new file mode 100644
index 000000000000..8a5613545865
--- /dev/null
+++ b/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;
+ }
+
diff --git a/audio/liblastfm/files/patch-src_UrlBuilder.h b/audio/liblastfm/files/patch-src_UrlBuilder.h
new file mode 100644
index 000000000000..32fd3cfdd8a6
--- /dev/null
+++ b/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
diff --git a/audio/liblastfm/files/patch-src_fingerprint_CMakeLists.txt b/audio/liblastfm/files/patch-src_fingerprint_CMakeLists.txt
new file mode 100644
index 000000000000..f03c45e33de1
--- /dev/null
+++ b/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}/..)
+
diff --git a/audio/liblastfm/files/patch-src_mbid__mp3.c b/audio/liblastfm/files/patch-src_mbid__mp3.c
new file mode 100644
index 000000000000..a56a6974f2cb
--- /dev/null
+++ b/audio/liblastfm/files/patch-src_mbid__mp3.c
@@ -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;
+ }
diff --git a/audio/liblastfm/pkg-descr b/audio/liblastfm/pkg-descr
new file mode 100644
index 000000000000..f5ad8905c0a5
--- /dev/null
+++ b/audio/liblastfm/pkg-descr
@@ -0,0 +1,3 @@
+liblastfm is a collection of libraries to help you integrate Last.fm services
+into your rich desktop software. It is officially supported software developed
+by Last.fm staff.
diff --git a/audio/liblastfm/pkg-plist b/audio/liblastfm/pkg-plist
new file mode 100644
index 000000000000..a2ad05d1f663
--- /dev/null
+++ b/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