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