From d60e1e1e5aa1deea70dda3f031a63b5ad8550723 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Tue, 2 Feb 2021 08:16:22 +0000 Subject: [PATCH 1/2] gnu: clementine: Update to 1.4.0rc1-450. * gnu/packages/music.scm (clementine): Update to 1.4.0rc1-450. [source]: Adapt snippet to list bundled directories to keep rather than ones to delete. Unbundled gmock. Remove patches no longer needed. [arguments]: Set -DUSE_SYSTEM_TAGLIB=TRUE. [native-inputs]: Add googletest. [inputs]: Remove openssl. [license]: Remove gmock license. * gnu/packages/patches/clementine-fix-sqlite.patch: Remove. * gnu/packages/patches/clementine-remove-crypto++-dependency.patch: Remvoe * gnu/packages/patches/clementine-use-openssl.patch: Remove. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 3 - gnu/packages/music.scm | 72 +++++++++---------- .../patches/clementine-fix-sqlite.patch | 23 ------ ...lementine-remove-crypto++-dependency.patch | 19 ----- .../patches/clementine-use-openssl.patch | 67 ----------------- 5 files changed, 34 insertions(+), 150 deletions(-) delete mode 100644 gnu/packages/patches/clementine-fix-sqlite.patch delete mode 100644 gnu/packages/patches/clementine-remove-crypto++-dependency.patch delete mode 100644 gnu/packages/patches/clementine-use-openssl.patch diff --git a/gnu/local.mk b/gnu/local.mk index d53ed440f9..40d48f83d5 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 f8b93ae41a..6d298746e8 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2017 nikita ;;; Copyright © 2017 Rodger Fox ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou -;;; Copyright © 2017, 2018, 2019 Pierre Langlois +;;; Copyright © 2017, 2018, 2019, 2021 Pierre Langlois ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 nee @@ -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(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 - - #if defined(Q_OS_UNIX) - #include -- 2.30.0