guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: gnu: clementine: Fix creating initial database.


From: Leo Famulari
Subject: 02/03: gnu: clementine: Fix creating initial database.
Date: Wed, 15 Aug 2018 14:31:37 -0400 (EDT)

lfam pushed a commit to branch master
in repository guix.

commit 7bcc34050b2e1dc4bc3aa832b08ec123129d71be
Author: Pierre Langlois <address@hidden>
Date:   Tue Aug 14 22:17:24 2018 +0100

    gnu: clementine: Fix creating initial database.
    
    It seems a recent version of sqlite broke Clementine's first startup. It 
turns
    out we can patch clementine to fix the problem instead of providing a 
different
    sqlite package:
    <https://github.com/clementine-player/Clementine/pull/5669>
    
    * gnu/packages/databases.scm (sqlite-with-fts3): Remove.
    * gnu/packages/music.scm (clementine)[inputs]: Replace sqlite-with-fts3 with
    sqlite.
    [source]: Add clementine-fix-sqlite.patch.
    * gnu/packages/patches/clementine-fix-sqlite.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
    
    Signed-off-by: Leo Famulari <address@hidden>
---
 gnu/local.mk                                     |  1 +
 gnu/packages/databases.scm                       | 16 +---------------
 gnu/packages/music.scm                           |  5 +++--
 gnu/packages/patches/clementine-fix-sqlite.patch | 23 +++++++++++++++++++++++
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index e8f1dbe..e14657c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -611,6 +611,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/clang-runtime-asan-build-fixes.patch    \
   %D%/packages/patches/clang-runtime-esan-build-fixes.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/clisp-glibc-2.26.patch                  \
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 04b9085..dc2c85b 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -27,7 +27,7 @@
 ;;; Copyright © 2017 Alex Vong <address@hidden>
 ;;; Copyright © 2017, 2018 Ben Woodcroft <address@hidden>
 ;;; Copyright © 2017 Rutger Helling <address@hidden>
-;;; Copyright © 2017 Pierre Langlois <address@hidden>
+;;; Copyright © 2017, 2018 Pierre Langlois <address@hidden>
 ;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <address@hidden>
 ;;; Copyright © 2017 Kristofer Buffington <address@hidden>
 ;;; Copyright © 2018 Amirouche Boubekki <address@hidden>
@@ -1069,20 +1069,6 @@ is in the public domain.")
        ((#:configure-flags flags)
         `(cons "--enable-fts5" ,flags))))))
 
-;; This is used by Clementine.
-(define-public sqlite-with-fts3
-  (package (inherit sqlite)
-    (name "sqlite-with-fts3")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sqlite)
-       ((#:configure-flags flags)
-        `(list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE "
-                              "-DSQLITE_ENABLE_UNLOCK_NOTIFY "
-                              "-DSQLITE_ENABLE_DBSTAT_VTAB "
-                              "-DSQLITE_ENABLE_FTS3 "
-                              "-DSQLITE_ENABLE_FTS3_PARENTHESIS "
-                              "-DSQLITE_ENABLE_FTS3_TOKENIZER")))))))
-
 (define-public tdb
   (package
     (name "tdb")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index cf1e0f8..7d4aeff 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -238,7 +238,8 @@ score, keyboard, guitar, drum and controller views.")
                       "tinysvcmdns"))
                     #t))
                 (patches (search-patches "clementine-use-openssl.patch"
-                                         
"clementine-remove-crypto++-dependency.patch"))))
+                                         
"clementine-remove-crypto++-dependency.patch"
+                                         "clementine-fix-sqlite.patch"))))
       (build-system cmake-build-system)
       (arguments
        '(#:test-target "clementine_test"
@@ -281,7 +282,7 @@ score, keyboard, guitar, drum and controller views.")
          ("pulseaudio" ,pulseaudio)
          ("qtbase" ,qtbase)
          ("qtx11extras" ,qtx11extras)
-         ("sqlite" ,sqlite-with-fts3)
+         ("sqlite" ,sqlite)
          ("sparsehash" ,sparsehash)
          ("taglib" ,taglib)))
       (home-page "http://clementine-player.org";)
diff --git a/gnu/packages/patches/clementine-fix-sqlite.patch 
b/gnu/packages/patches/clementine-fix-sqlite.patch
new file mode 100644
index 0000000..f9d44f9
--- /dev/null
+++ b/gnu/packages/patches/clementine-fix-sqlite.patch
@@ -0,0 +1,23 @@
+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");



reply via email to

[Prev in Thread] Current Thread [Next in Thread]