Download raw body.
audio/clementine: fix and update to 1.4.1
ports@,
I'd like to fix audio/clementine and update it to 1.4.1
This is tested on -current/amd64 and it builds and works.
Keep in mind that it requires https://marc.info/?l=openbsd-ports&m=174325337225325&w=2
Ok?
Index: audio/clementine/Makefile
===================================================================
RCS file: /home/cvs/ports/audio/clementine/Makefile,v
diff -u -p -r1.61 Makefile
--- audio/clementine/Makefile 24 Jan 2025 09:39:13 -0000 1.61
+++ audio/clementine/Makefile 29 Mar 2025 13:41:03 -0000
@@ -1,12 +1,10 @@
-BROKEN = needs fixing for newer protobuf
COMMENT = music player
GH_ACCOUNT = clementine-player
GH_PROJECT = Clementine
-GH_TAGNAME = 1.4.0rc2
+GH_TAGNAME = 1.4.1
EPOCH = 0
PKGNAME = clementine-${GH_TAGNAME}
-REVISION = 3
CATEGORIES = audio x11
@@ -22,6 +20,10 @@ WANTLIB += execinfo fftw3 gio-2.0 glib-2
WANTLIB += gpod gstapp-1.0 gstaudio-1.0 gstbase-1.0 gstpbutils-1.0
WANTLIB += gstreamer-1.0 gsttag-1.0 gstvideo-1.0 iconv intl lastfm5
WANTLIB += m mtp mygpo-qt5 protobuf pulse sqlite3 tag z
+
+# C++17
+COMPILER = base-clang ports-gcc
+COMPILER_LANGS = c++
MODULES = devel/cmake \
x11/qt5
Index: audio/clementine/distinfo
===================================================================
RCS file: /home/cvs/ports/audio/clementine/distinfo,v
diff -u -p -r1.8 distinfo
--- audio/clementine/distinfo 27 Jan 2023 11:47:31 -0000 1.8
+++ audio/clementine/distinfo 28 Mar 2025 22:06:22 -0000
@@ -1,2 +1,2 @@
-SHA256 (Clementine-1.4.0rc2.tar.gz) = I5Xv3vATqmXsi4Uh1Um/dtveT5M4Z745U/MVUxAerWM=
-SIZE (Clementine-1.4.0rc2.tar.gz) = 9073685
+SHA256 (Clementine-1.4.1.tar.gz) = 5EBRBkLZz9Ek4957i57kFpZ01vHetGLWWx3eBQaKAFQ=
+SIZE (Clementine-1.4.1.tar.gz) = 7594196
Index: audio/clementine/patches/patch-cmake_Version_cmake
===================================================================
RCS file: audio/clementine/patches/patch-cmake_Version_cmake
diff -N audio/clementine/patches/patch-cmake_Version_cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/clementine/patches/patch-cmake_Version_cmake 28 Mar 2025 22:18:18 -0000
@@ -0,0 +1,83 @@
+https://github.com/clementine-player/Clementine/pull/7356
+
+Index: cmake/Version.cmake
+--- cmake/Version.cmake.orig
++++ cmake/Version.cmake
+@@ -7,7 +7,7 @@ set(CLEMENTINE_VERSION_PATCH 0)
+ set(CLEMENTINE_VERSION_PRERELEASE rc2)
+
+ # This should be set to OFF in a release branch
+-set(INCLUDE_GIT_REVISION ON)
++set(INCLUDE_GIT_REVISION OFF)
+
+ # Rules about version number comparison on different platforms:
+ # Debian:
+@@ -119,39 +119,41 @@ else(CLEMENTINE_VERSION_PRERELEASE)
+ endif(CLEMENTINE_VERSION_PRERELEASE)
+
+ # Add git revision
+-if(FORCE_GIT_REVISION)
+- set(GIT_REV ${FORCE_GIT_REVISION})
+- set(GIT_INFO_RESULT 0)
+-else(FORCE_GIT_REVISION)
+- find_program(GIT_EXECUTABLE git)
+- message(STATUS "Found git: ${GIT_EXECUTABLE}")
++if(INCLUDE_GIT_REVISION)
++ if(FORCE_GIT_REVISION)
++ set(GIT_REV ${FORCE_GIT_REVISION})
++ set(GIT_INFO_RESULT 0)
++ else(FORCE_GIT_REVISION)
++ find_program(GIT_EXECUTABLE git)
++ message(STATUS "Found git: ${GIT_EXECUTABLE}")
+
+- if(NOT GIT_EXECUTABLE-NOTFOUND)
+- execute_process(COMMAND ${GIT_EXECUTABLE} describe
+- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+- RESULT_VARIABLE GIT_INFO_RESULT
+- OUTPUT_VARIABLE GIT_REV
+- OUTPUT_STRIP_TRAILING_WHITESPACE)
+- if(NOT ${GIT_INFO_RESULT} EQUAL 0)
+- message(SEND_ERROR "git describe failed with code ${GIT_INFO_RESULT}: ${GIT_REV}")
++ if(NOT GIT_EXECUTABLE-NOTFOUND)
++ execute_process(COMMAND ${GIT_EXECUTABLE} describe
++ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
++ RESULT_VARIABLE GIT_INFO_RESULT
++ OUTPUT_VARIABLE GIT_REV
++ OUTPUT_STRIP_TRAILING_WHITESPACE)
++ if(NOT ${GIT_INFO_RESULT} EQUAL 0)
++ message(SEND_ERROR "git describe failed with code ${GIT_INFO_RESULT}: ${GIT_REV}")
++ endif()
+ endif()
+ endif()
+-endif()
+
+-string(REGEX REPLACE "^(.+)-([0-9]+)-(g[a-f0-9]+)$" "\\1;\\2;\\3"
+- GIT_PARTS ${GIT_REV})
++ string(REGEX REPLACE "^(.+)-([0-9]+)-(g[a-f0-9]+)$" "\\1;\\2;\\3"
++ GIT_PARTS ${GIT_REV})
+
+-if(NOT GIT_PARTS)
+- message(FATAL_ERROR "Failed to parse git revision string '${GIT_REV}'")
+-endif(NOT GIT_PARTS)
++ if(NOT GIT_PARTS)
++ message(FATAL_ERROR "Failed to parse git revision string '${GIT_REV}'")
++ endif(NOT GIT_PARTS)
+
+-list(LENGTH GIT_PARTS GIT_PARTS_LENGTH)
+-if(GIT_PARTS_LENGTH EQUAL 3)
+- list(GET GIT_PARTS 0 GIT_TAGNAME)
+- list(GET GIT_PARTS 1 GIT_COMMITCOUNT)
+- list(GET GIT_PARTS 2 GIT_SHA1)
+- set(HAS_GIT_REVISION ON)
+-endif(GIT_PARTS_LENGTH EQUAL 3)
++ list(LENGTH GIT_PARTS GIT_PARTS_LENGTH)
++ if(GIT_PARTS_LENGTH EQUAL 3)
++ list(GET GIT_PARTS 0 GIT_TAGNAME)
++ list(GET GIT_PARTS 1 GIT_COMMITCOUNT)
++ list(GET GIT_PARTS 2 GIT_SHA1)
++ set(HAS_GIT_REVISION ON)
++ endif(GIT_PARTS_LENGTH EQUAL 3)
++endif()
+
+ if(INCLUDE_GIT_REVISION AND HAS_GIT_REVISION)
+ set(CLEMENTINE_VERSION_DISPLAY "${GIT_REV}")
Index: audio/clementine/patches/patch-ext_libclementine-remote_CMakeLists_txt
===================================================================
RCS file: audio/clementine/patches/patch-ext_libclementine-remote_CMakeLists_txt
diff -N audio/clementine/patches/patch-ext_libclementine-remote_CMakeLists_txt
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/clementine/patches/patch-ext_libclementine-remote_CMakeLists_txt 28 Mar 2025 23:04:15 -0000
@@ -0,0 +1,13 @@
+abseil-cpp requires at least C++14
+
+Index: ext/libclementine-remote/CMakeLists.txt
+--- ext/libclementine-remote/CMakeLists.txt.orig
++++ ext/libclementine-remote/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ include_directories(${PROTOBUF_INCLUDE_DIRS})
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++17")
+
+ set(MESSAGES
+ remotecontrolmessages.proto
Index: audio/clementine/patches/patch-ext_libclementine-tagreader_CMakeLists_txt
===================================================================
RCS file: audio/clementine/patches/patch-ext_libclementine-tagreader_CMakeLists_txt
diff -N audio/clementine/patches/patch-ext_libclementine-tagreader_CMakeLists_txt
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/clementine/patches/patch-ext_libclementine-tagreader_CMakeLists_txt 28 Mar 2025 22:56:40 -0000
@@ -0,0 +1,14 @@
+abseil-cpp requires at least C++14
+
+Index: ext/libclementine-tagreader/CMakeLists.txt
+--- ext/libclementine-tagreader/CMakeLists.txt.orig
++++ ext/libclementine-tagreader/CMakeLists.txt
+@@ -3,7 +3,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-common)
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++17")
+
+ set(MESSAGES
+ tagreadermessages.proto
Index: audio/clementine/patches/patch-src_covers_musicbrainzcoverprovider_cpp
===================================================================
RCS file: audio/clementine/patches/patch-src_covers_musicbrainzcoverprovider_cpp
diff -N audio/clementine/patches/patch-src_covers_musicbrainzcoverprovider_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/clementine/patches/patch-src_covers_musicbrainzcoverprovider_cpp 28 Mar 2025 23:54:13 -0000
@@ -0,0 +1,23 @@
+std::mem_fun is removed since C++17, use std::mem_fn
+
+Index: src/covers/musicbrainzcoverprovider.cpp
+--- src/covers/musicbrainzcoverprovider.cpp.orig
++++ src/covers/musicbrainzcoverprovider.cpp
+@@ -26,7 +26,7 @@
+ #include "core/closure.h"
+ #include "core/network.h"
+
+-using std::mem_fun;
++using std::mem_fn;
+
+ namespace {
+
+@@ -89,7 +89,7 @@ void MusicbrainzCoverProvider::ReleaseSearchFinished(Q
+ void MusicbrainzCoverProvider::ImageCheckFinished(int id) {
+ QList<QNetworkReply*> replies = image_checks_.values(id);
+ int finished_count = std::count_if(replies.constBegin(), replies.constEnd(),
+- mem_fun(&QNetworkReply::isFinished));
++ mem_fn(&QNetworkReply::isFinished));
+ if (finished_count == replies.size()) {
+ QString cover_name = cover_names_.take(id);
+ QList<CoverSearchResult> results;
Index: audio/clementine/patches/patch-src_globalsearch_globalsearch_cpp
===================================================================
RCS file: audio/clementine/patches/patch-src_globalsearch_globalsearch_cpp
diff -N audio/clementine/patches/patch-src_globalsearch_globalsearch_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/clementine/patches/patch-src_globalsearch_globalsearch_cpp 29 Mar 2025 12:46:48 -0000
@@ -0,0 +1,32 @@
+std::random_shuffle is removed since C++17, use std::shuffle
+
+Index: src/globalsearch/globalsearch.cpp
+--- src/globalsearch/globalsearch.cpp.orig
++++ src/globalsearch/globalsearch.cpp
+@@ -22,6 +22,7 @@
+ #include <QTimerEvent>
+ #include <QUrl>
+ #include <algorithm>
++#include <random>
+
+ #include "core/application.h"
+ #include "core/logging.h"
+@@ -357,6 +358,9 @@ void GlobalSearch::SaveProvidersSettings() {
+ QStringList GlobalSearch::GetSuggestions(int count) {
+ QStringList ret;
+
++ std::random_device rd;
++ std::mt19937 g(rd());
++
+ // Get count suggestions from each provider
+ for (SearchProvider* provider : providers_.keys()) {
+ if (is_provider_enabled(provider) && provider->can_give_suggestions()) {
+@@ -371,7 +375,7 @@ QStringList GlobalSearch::GetSuggestions(int count) {
+ }
+
+ // Randomize the suggestions
+- std::random_shuffle(ret.begin(), ret.end());
++ std::shuffle(ret.begin(), ret.end(), g);
+
+ // Only return the first count
+ while (ret.length() > count) {
Index: audio/clementine/patches/patch-src_playlist_playlist_cpp
===================================================================
RCS file: audio/clementine/patches/patch-src_playlist_playlist_cpp
diff -N audio/clementine/patches/patch-src_playlist_playlist_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ audio/clementine/patches/patch-src_playlist_playlist_cpp 29 Mar 2025 12:58:10 -0000
@@ -0,0 +1,44 @@
+std::random_shuffle is removed since C++17, use std::shuffle
+
+Index: src/playlist/playlist.cpp
+--- src/playlist/playlist.cpp.orig
++++ src/playlist/playlist.cpp
+@@ -33,6 +33,7 @@
+ #include <functional>
+ #include <memory>
+ #include <unordered_map>
++#include <random>
+
+ #if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
+ #include <QRandomGenerator>
+@@ -2074,6 +2075,10 @@ void Playlist::ReshuffleIndices() {
+ // only shuffle items that haven't been played yet.
+ QList<int>::iterator begin = virtual_items_.begin();
+ QList<int>::iterator end = virtual_items_.end();
++
++ std::random_device rd;
++ std::mt19937 g(rd());
++
+ if (current_virtual_index_ != -1)
+ std::advance(begin, current_virtual_index_ + 1);
+
+@@ -2084,7 +2089,7 @@ void Playlist::ReshuffleIndices() {
+
+ case PlaylistSequence::Shuffle_All:
+ case PlaylistSequence::Shuffle_InsideAlbum:
+- std::random_shuffle(begin, end);
++ std::shuffle(begin, end, g);
+ break;
+
+ case PlaylistSequence::Shuffle_Albums: {
+@@ -2101,8 +2106,8 @@ void Playlist::ReshuffleIndices() {
+
+ // Shuffle them
+ QStringList shuffled_album_keys = album_key_set.values();
+- std::random_shuffle(shuffled_album_keys.begin(),
+- shuffled_album_keys.end());
++ std::shuffle(shuffled_album_keys.begin(),
++ shuffled_album_keys.end(), g);
+
+ // If the user is currently playing a song, force its album to be first
+ // Or if the song was not playing but it was selected, force its album
audio/clementine: fix and update to 1.4.1