summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/music.scm72
-rw-r--r--gnu/packages/patches/clementine-fix-sqlite.patch23
-rw-r--r--gnu/packages/patches/clementine-remove-crypto++-dependency.patch19
-rw-r--r--gnu/packages/patches/clementine-use-openssl.patch67
5 files changed, 34 insertions, 150 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index b9b4b664e4..ae64a483b5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -894,9 +894,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch	\
   %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch	\
   %D%/packages/patches/classpath-aarch64-support.patch		\
-  %D%/packages/patches/clementine-fix-sqlite.patch		\
-  %D%/packages/patches/clementine-remove-crypto++-dependency.patch	\
-  %D%/packages/patches/clementine-use-openssl.patch		\
   %D%/packages/patches/clucene-pkgconfig.patch			\
   %D%/packages/patches/cmake-curl-certificates.patch		\
   %D%/packages/patches/coda-use-system-libs.patch		\
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7d2958685b..a39f9fc3d9 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2017 nikita <nikita@n0.is>
 ;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
 ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2017, 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2018, 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
@@ -337,53 +337,48 @@ and play MIDI files with a few clicks in a user-friendly interface offering
 score, keyboard, guitar, drum and controller views.")
     (license license:gpl3+)))
 
-;; We don't use the latest release because it depends on Qt4.  Instead we
-;; download the sources from the tip of the "qt5" branch.
 (define-public clementine
-  (let ((commit "4619a4c1ab3b17b13d4b2327ad477912917eaf36")
-        (revision "2"))
+  (let ((version "1.4.0rc1-450-g2725ef99d"))
     (package
       (name "clementine")
-      (version (git-version "1.3.1" revision commit))
+      (version version)
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/clementine-player/Clementine")
-                      (commit commit)))
+                      (commit version)))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1hximk3q0p8nw8is5w7215xgkb7k4flnfyr0pdz9svfwvcm05w1i"))
-                (modules '((guix build utils)))
+                  "1pcwwi9b2qcfjn748577gqx6d1hgg7cisw2dn43npwafdvvkdb90"))
+                (modules '((guix build utils)
+                           (ice-9 regex)))
                 (snippet
                  '(begin
+                    (use-modules ((ice-9 regex)))
                     (for-each
                      (lambda (dir)
-                       (delete-file-recursively
-                        (string-append "3rdparty/" dir)))
-                     (list
-                      ;; TODO: The following dependencies are still bundled:
-                      ;; - "qxt": Appears to be unmaintained upstream.
-                      ;; - "qsqlite"
-                      ;; - "qtsingleapplication"
-                      ;; - "qocoa"
-                      ;; - "qtiocompressor"
-                      ;; - "gmock": The tests crash when using our googletest
-                      ;;   package instead of the bundled gmock.
-                      "SPMediaKeyTap"
-                      "fancytabwidget"
-                      "google-breakpad"
-                      "libmygpo-qt"
-                      "libmygpo-qt5"
-                      "libprojectm"
-                      "qtwin"
-                      "sha2" ;; Replaced by openssl.
-                      "taglib"
-                      "tinysvcmdns"))
-                    #t))
-                (patches (search-patches "clementine-use-openssl.patch"
-                                         "clementine-remove-crypto++-dependency.patch"
-                                         "clementine-fix-sqlite.patch"))))
+                       ;; TODO: The following dependencies are still bundled:
+                       ;; - "qxt": Appears to be unmaintained upstream.
+                       ;; - "qsqlite"
+                       ;; - "qtsingleapplication"
+                       ;; - "qocoa"
+                       ;; - "qtiocompressor"
+                       (let ((bundled '("qsqlite"
+                                        "qtsingleapplication"
+                                        "qxt"
+                                        "qocoa"
+                                        "qtiocompressor")))
+                         (if (not
+                              (string-match
+                                (string-append ".?*(" (string-join bundled "|") ")")
+                                dir))
+                             (delete-file-recursively dir))))
+                     (find-files "3rdparty"
+                                 (lambda (file stat)
+                                   (string-match "^3rdparty/[^/]*$" file))
+                                 #:directories? #t))
+                    #t))))
       (build-system cmake-build-system)
       (arguments
        '(#:test-target "clementine_test"
@@ -394,7 +389,10 @@ score, keyboard, guitar, drum and controller views.")
                ;; TODO In an origin snippet, remove the code that performs the
                ;; download.
                "-DHAVE_SPOTIFY_DOWNLOADER=FALSE"
-               "-DUSE_SYSTEM_SHA2=TRUE")
+               ;; Clementine checks that the taglib version is higher than 1.11,
+               ;; because of https://github.com/taglib/taglib/issues/864. Remove
+               ;; this flag when 1.12 is released.
+               "-DUSE_SYSTEM_TAGLIB=TRUE")
          #:phases
          (modify-phases %standard-phases
            (add-after 'install 'wrap-program
@@ -406,6 +404,7 @@ score, keyboard, guitar, drum and controller views.")
                  #t))))))
       (native-inputs
        `(("gettext" ,gettext-minimal)
+         ("googletest" ,googletest)
          ("pkg-config" ,pkg-config)
          ("qtlinguist" ,qttools)))
       (inputs
@@ -423,7 +422,6 @@ score, keyboard, guitar, drum and controller views.")
          ;; TODO: Package libgpod.
          ("libmtp" ,libmtp)
          ("libxml2" ,libxml2)
-         ("openssl" ,openssl)
          ("protobuf" ,protobuf)
          ("pulseaudio" ,pulseaudio)
          ("qtbase" ,qtbase)
@@ -439,8 +437,6 @@ playing your music.")
       (license (list
                  ;; clementine and qtiocompressor are under GPLv3.
                  license:gpl3+
-                 ;; gmock is under BSD-3.
-                 license:bsd-3
                  ;; qxt is under CPL1.0.
                  license:cpl1.0
                  ;; qsqlite and qtsingleapplication are under LGPL2.1+.
diff --git a/gnu/packages/patches/clementine-fix-sqlite.patch b/gnu/packages/patches/clementine-fix-sqlite.patch
deleted file mode 100644
index f9d44f9074..0000000000
--- a/gnu/packages/patches/clementine-fix-sqlite.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch downloaded from https://github.com/clementine-player/Clementine/pull/5669 .
-
-diff -ruN clementine-1.3.1.565.gd20c2244a.orig/src/core/database.cpp clementine-1.3.1.565.gd20c2244a/src/core/database.cpp
---- clementine-1.3.1.565.gd20c2244a.orig/src/core/database.cpp	2018-07-07 23:59:24.018540126 +0200
-+++ clementine-1.3.1.565.gd20c2244a/src/core/database.cpp	2018-07-08 00:04:47.991551728 +0200
-@@ -265,6 +265,17 @@
-   StaticInit();
- 
-   {
-+
-+#ifdef SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
-+    // In case sqlite>=3.12 is compiled without -DSQLITE_ENABLE_FTS3_TOKENIZER
-+    // (generally a good idea  due to security reasons) the fts3 support should be enabled explicitly.
-+    QVariant v = db.driver()->handle();
-+    if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
-+      sqlite3 *handle = *static_cast<sqlite3**>(v.data());
-+      if (handle) sqlite3_db_config(handle, SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, NULL);
-+    }
-+#endif
-+
-     QSqlQuery set_fts_tokenizer(db);
-     set_fts_tokenizer.prepare("SELECT fts3_tokenizer(:name, :pointer)");
-     set_fts_tokenizer.bindValue(":name", "unicode");
diff --git a/gnu/packages/patches/clementine-remove-crypto++-dependency.patch b/gnu/packages/patches/clementine-remove-crypto++-dependency.patch
deleted file mode 100644
index e7cf80ddee..0000000000
--- a/gnu/packages/patches/clementine-remove-crypto++-dependency.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3202b8b..473ecb9 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -279,14 +279,6 @@ optional_component(LIBPULSE ON "Pulse audio integration"
- 
- optional_component(VISUALISATIONS ON "Visualisations")
- 
--if(NOT HAVE_SPOTIFY_BLOB AND NOT CRYPTOPP_FOUND)
--  message(FATAL_ERROR "Either crypto++ must be available or the non-GPL Spotify "
--          "code must be compiled in")
--elseif(CRYPTOPP_FOUND)
--  set(HAVE_CRYPTOPP ON)
--  set(HAVE_SPOTIFY_DOWNLOADER ON)
--endif()
--
- # Find DBus if it's enabled
- if (HAVE_DBUS)
-   find_package(Qt5 COMPONENTS DBus)
diff --git a/gnu/packages/patches/clementine-use-openssl.patch b/gnu/packages/patches/clementine-use-openssl.patch
deleted file mode 100644
index 1fbf3d2b8a..0000000000
--- a/gnu/packages/patches/clementine-use-openssl.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4022c383b..3202b8b69 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -83,6 +83,7 @@ pkg_check_modules(LIBPULSE libpulse)
- pkg_check_modules(LIBXML libxml-2.0)
- pkg_check_modules(SPOTIFY libspotify>=12.1.45)
- pkg_check_modules(TAGLIB REQUIRED taglib>=1.6)
-+pkg_check_modules(OPENSSL REQUIRED openssl)
- 
- if (WIN32)
-   find_package(ZLIB REQUIRED)
-@@ -381,20 +382,6 @@ if(GMOCK_INCLUDE_DIRS)
-   endif(GTEST_INCLUDE_DIRS)
- endif(GMOCK_INCLUDE_DIRS)
- 
--# Use the system's sha2 if it's available.
--find_path(SHA2_INCLUDE_DIRS sha2.h)
--find_library(SHA2_LIBRARIES sha2)
--if(SHA2_LIBRARIES AND SHA2_INCLUDE_DIRS)
--  message(STATUS "Using system sha2 library")
--  set(USE_SYSTEM_SHA2 ON)
--else()
--  message(STATUS "Using builtin sha2 library")
--  set(USE_SYSTEM_SHA2 OFF)
--  add_subdirectory(3rdparty/sha2)
--  set(SHA2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/sha2)
--  set(SHA2_LIBRARIES sha2)
--endif()
--
- # Use the system libmygpo-qt5 if a recent enough version was found
- if(LIBMYGPO_QT5_FOUND)
-   set(MYGPOQT5_LIBRARIES ${LIBMYGPO_QT5_LIBRARIES})
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 6e24c9726..104d044d9 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -29,7 +29,6 @@ include_directories(${LIBPROJECTM_INCLUDE_DIRS})
- include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIRS})
- include_directories(${QTIOCOMPRESSOR_INCLUDE_DIRS})
- include_directories(${QXT_INCLUDE_DIRS})
--include_directories(${SHA2_INCLUDE_DIRS})
- include_directories(${CHROMAPRINT_INCLUDE_DIRS})
- include_directories(${MYGPOQT5_INCLUDE_DIRS})
- 
-@@ -1223,7 +1222,7 @@ target_link_libraries(clementine_lib
-   libclementine-common
-   libclementine-tagreader
-   libclementine-remote
--  ${SHA2_LIBRARIES}
-+  ${OPENSSL_LIBRARIES}
-   ${TAGLIB_LIBRARIES}
-   ${MYGPOQT5_LIBRARIES}
-   ${CHROMAPRINT_LIBRARIES}
-diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp
-index ce76f22da..80bf623fb 100644
---- a/src/core/utilities.cpp
-+++ b/src/core/utilities.cpp
-@@ -52,7 +52,7 @@
- #include "config.h"
- #include "timeconstants.h"
- 
--#include "sha2.h"
-+#include <openssl/sha.h>
- 
- #if defined(Q_OS_UNIX)
- #include <sys/statvfs.h>