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.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
This commit is contained in:
Pierre Langlois 2021-02-02 08:16:22 +00:00 committed by Guillaume Le Vaillant
parent a31b72655d
commit 7b207e0849
No known key found for this signature in database
GPG key ID: 6BE8208ADF21FE3F
5 changed files with 34 additions and 150 deletions

View file

@ -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 \

View file

@ -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 © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 nee <nee.git@hidamari.blue>
@ -337,53 +337,48 @@ (define-public aria-maestosa
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 @@ (define-public clementine
;; 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 @@ (define-public clementine
#t))))))
(native-inputs
`(("gettext" ,gettext-minimal)
("googletest" ,googletest)
("pkg-config" ,pkg-config)
("qtlinguist" ,qttools)))
(inputs
@ -423,7 +422,6 @@ (define-public clementine
;; TODO: Package libgpod.
("libmtp" ,libmtp)
("libxml2" ,libxml2)
("openssl" ,openssl)
("protobuf" ,protobuf)
("pulseaudio" ,pulseaudio)
("qtbase" ,qtbase)
@ -439,8 +437,6 @@ (define-public clementine
(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+.

View file

@ -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");

View file

@ -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)

View file

@ -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>