diff --git a/audio/strawberry/Makefile b/audio/strawberry/Makefile index 30b955d91c8b..1d05e30f3916 100644 --- a/audio/strawberry/Makefile +++ b/audio/strawberry/Makefile @@ -1,93 +1,102 @@ PORTNAME= strawberry -DISTVERSION= 1.0.7 -PORTREVISION= 1 +DISTVERSION= 1.0.9 CATEGORIES= audio MASTER_SITES= https://github.com/strawberrymusicplayer/${PORTNAME}/releases/download/${DISTVERSION}/ \ https://files.jkvinge.net/packages/strawberry/ +PKGNAMESUFFIX= -${FLAVOR} MAINTAINER= jhale@FreeBSD.org -COMMENT= Fork of clementine with many features +COMMENT= Music player and collection organizer WWW= https://www.strawberrymusicplayer.org/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= boost-libs>0:devel/boost-libs LIB_DEPENDS= libgnutls.so:security/gnutls \ libprotobuf.so:devel/protobuf \ libtag.so:audio/taglib -TEST_DEPENDS= googletest>=0:devel/googletest -USES= cmake compiler:c++11-lang desktop-file-utils gettext-runtime \ - gettext-tools gnome gstreamer iconv:translit pkgconfig qt:5 \ - sqlite tar:xz xorg +FLAVORS= qt5 qt6 +FLAVOR?= ${FLAVORS:[1]} +qt5_CONFLICTS_INSTALL= strawberry strawberry-qt6 +qt6_CONFLICTS_INSTALL= strawberry strawberry-qt5 + +USES= cmake compiler:c++17-lang desktop-file-utils gettext-runtime \ + gnome pkgconfig qt:${FLAVOR:S/qt//} sqlite tar:xz xorg USE_GNOME= glib20 -USE_QT= concurrent core dbus gui linguisttools network sql sql-sqlite3 \ - widgets x11extras buildtools:build qmake:build testlib:build +_USE_QT5= concurrent core dbus gui network sql sql-sqlite3 widgets \ + x11extras buildtools:build linguisttools:build qmake:build +_USE_QT6= base tools:build +USE_QT= ${_USE_QT${FLAVOR:S/qt//}} USE_XORG= ice sm x11 xcb xext -CMAKE_ARGS= -DENABLE_GSTREAMER:BOOL=true \ - -DENABLE_TRANSLATIONS:BOOL=true \ - -DENABLE_UDISKS2=OFF \ - -DUSE_SYSTEM_TAGLIB=ON - -TEST_TARGET= strawberry_test +CMAKE_ON= BUILD_WITH_${FLAVOR:tu} +CMAKE_OFF= ENABLE_UDISKS2 SUB_FILES= pkg-message -# NLS is not optional, as of 0.6.11, -# src/core/utilities.cpp always includes iconv.h and calls iconv_*(). - -# GSTREAMER is not optional, as of 0.6.11, disabling it kills the build on -# src/core/mainwindow.cpp:229:7: -# error: member initializer 'transcode_dialog_' does not name a non-static data member or base class -# transcode_dialog_([=]() { - -OPTIONS_DEFINE= AUDIOCD IPOD MOODBAR MTPDEV MUSICBRAINZ SUBSONIC TIDAL VLC - -OPTIONS_DEFAULT= ALSA MOODBAR - -OPTIONS_MULTI= SOUND +OPTIONS_MULTI= BACKEND SOUND +OPTIONS_MULTI_BACKEND= GSTREAMER VLC OPTIONS_MULTI_SOUND= ALSA PULSEAUDIO - -AUDIOCD_DESC= Enable support for Audio CDs -IPOD_DESC= Enable support for iPod Classic -MOODBAR_DESC= Enable moodbar -MTPDEV_DESC= Enable support for Media Transport Protocol -MUSICBRAINZ_DESC= Enable tag fetching from MusicBrainz -SUBSONIC_DESC= Enable support for Subsonic music streamer -TIDAL_DESC= Enable support for TIDAL music service +OPTIONS_SINGLE= UNICODE +OPTIONS_SINGLE_UNICODE= ICONV ICU +OPTIONS_DEFINE= CDIO IPOD MOODBAR MTP MUSICBRAINZ NLS TEST +OPTIONS_DEFAULT= ALSA GSTREAMER ICU MOODBAR MUSICBRAINZ +OPTIONS_SUB= yes + +BACKEND_DESC= Playback engine +IPOD_DESC= iPod Classic support +MOODBAR_DESC= Moodbar support +MUSICBRAINZ_DESC= Tagging/fingerprinting from MusicBrainz VLC_DESC= Multimedia support via (lib)vlc -ALSA_CMAKE_BOOL= ENABLE_ALSA ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib +ALSA_CMAKE_BOOL= ENABLE_ALSA -AUDIOCD_CMAKE_BOOL= ENABLE_AUDIOCD -AUDIOCD_LIB_DEPENDS= libcdio.so:sysutils/libcdio +CDIO_LIB_DEPENDS= libcdio.so:sysutils/libcdio +CDIO_CMAKE_BOOL= ENABLE_AUDIOCD +CDIO_IMPLIES= GSTREAMER + +GSTREAMER_USES= gstreamer +GSTREAMER_CMAKE_BOOL= ENABLE_GSTREAMER + +ICONV_USES= iconv:translit + +ICU_LIB_DEPENDS= libicui18n.so:devel/icu +ICU_CMAKE_BOOL= USE_ICU -IPOD_CMAKE_BOOL= ENABLE_LIBGPOD IPOD_LIB_DEPENDS= libgpod.so:audio/libgpod \ libimobiledevice-1.0.so:comms/libimobiledevice \ libplist-2.0.so:devel/libplist +IPOD_CMAKE_BOOL= ENABLE_LIBGPOD -MTPDEV_CMAKE_BOOL= ENABLE_LIBMTP -MTPDEV_LIB_DEPENDS= libmtp.so:multimedia/libmtp - -MOODBAR_CMAKE_BOOL= ENABLE_MOODBAR MOODBAR_LIB_DEPENDS= libfftw3.so:math/fftw3 +MOODBAR_CMAKE_BOOL= ENABLE_MOODBAR +MOODBAR_IMPLIES= GSTREAMER -MUSICBRAINZ_CMAKE_BOOL= ENABLE_CHROMAPRINT -MUSICBRAINZ_LIB_DEPENDS= libchromaprint.so:audio/chromaprint +MTP_LIB_DEPENDS= libmtp.so:multimedia/libmtp +MTP_CMAKE_BOOL= ENABLE_LIBMTP -PULSEAUDIO_CMAKE_BOOL= ENABLE_LIBPULSE -PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio +MUSICBRAINZ_LIB_DEPENDS= libchromaprint.so:audio/chromaprint +MUSICBRAINZ_CMAKE_BOOL= ENABLE_MUSICBRAINZ \ + ENABLE_SONGFINGERPRINTING +MUSICBRAINZ_IMPLIES= GSTREAMER -SUBSONIC_CMAKE_BOOL= ENABLE_SUBSONIC +NLS_USES= gettext-tools +NLS_CMAKE_BOOL= ENABLE_TRANSLATIONS -TIDAL_CMAKE_BOOL= ENABLE_TIDAL +PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio +PULSEAUDIO_CMAKE_BOOL= ENABLE_LIBPULSE -VLC_CMAKE_BOOL= ENABLE_VLC VLC_LIB_DEPENDS= libvlc.so:multimedia/vlc +VLC_CMAKE_BOOL= ENABLE_VLC + +TEST_BUILD_DEPENDS= googletest>=0:devel/googletest +.if ${FLAVOR:U} == qt5 +TEST_USE= QT=testlib:build +.endif +TEST_TEST_TARGET= strawberry_tests .include diff --git a/audio/strawberry/distinfo b/audio/strawberry/distinfo index 42419e78ec1d..870fab5cc9b8 100644 --- a/audio/strawberry/distinfo +++ b/audio/strawberry/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1659140950 -SHA256 (strawberry-1.0.7.tar.xz) = c2d242f091eaeb5bf6c83e8b3b0405e3c5ea89a23845843541726fc81643bd06 -SIZE (strawberry-1.0.7.tar.xz) = 11216436 +TIMESTAMP = 1663524917 +SHA256 (strawberry-1.0.9.tar.xz) = d69396e1df321003ab0e4f9374ea8c5c34fdfbc7fb6c68882d477215224b8cdf +SIZE (strawberry-1.0.9.tar.xz) = 11226840 diff --git a/audio/strawberry/files/patch-CMakeLists.txt b/audio/strawberry/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..80e0cb6b7adf --- /dev/null +++ b/audio/strawberry/files/patch-CMakeLists.txt @@ -0,0 +1,16 @@ +Find OPTIONAL_COMPONENTS seperately. When the REQUIRED keyword is used, +Qt5Config.cmake handles all components as required causing failure if +optional components are missing. + +--- CMakeLists.txt.orig 2022-09-18 23:50:52 UTC ++++ CMakeLists.txt +@@ -207,7 +207,8 @@ endif() + list(APPEND QT_OPTIONAL_COMPONENTS X11Extras) + endif() + +-find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} REQUIRED COMPONENTS ${QT_COMPONENTS} OPTIONAL_COMPONENTS ${QT_OPTIONAL_COMPONENTS}) ++find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} REQUIRED COMPONENTS ${QT_COMPONENTS}) ++find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} OPTIONAL_COMPONENTS ${QT_OPTIONAL_COMPONENTS}) + + set(QtCore_LIBRARIES Qt${QT_VERSION_MAJOR}::Core) + set(QtConcurrent_LIBRARIES Qt${QT_VERSION_MAJOR}::Concurrent) diff --git a/audio/strawberry/pkg-descr b/audio/strawberry/pkg-descr index c142faf2dd8b..71a856469f34 100644 --- a/audio/strawberry/pkg-descr +++ b/audio/strawberry/pkg-descr @@ -1 +1,11 @@ -Strawberry is a fork of clementine with many features. +Strawberry is a music player and music collection organizer forked +from Clementine in 2018. It is aimed at music collectors and +audiophiles. + +Features include: +* Smart and dynamic playlists +* Tag editing +* Streaming support +* Audio CD playback +* Song lyrics +* Scrobbler with support for Last.fm, Libre.fm and ListenBrainz