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

Reply via email to