GNU bug report logs - #32431
[PATCH] gnu: clementine: Drop dependency on qtwebkit.

Previous Next

Package: guix-patches;

Reported by: Pierre Langlois <pierre.langlois <at> gmx.com>

Date: Mon, 13 Aug 2018 19:27:02 UTC

Severity: normal

Tags: patch

Done: Leo Famulari <leo <at> famulari.name>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 32431 in the body.
You can then email your comments to 32431 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Mon, 13 Aug 2018 19:27:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Pierre Langlois <pierre.langlois <at> gmx.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 13 Aug 2018 19:27:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: guix-patches <at> gnu.org
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>
Subject: [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Mon, 13 Aug 2018 20:26:21 +0100
[Message part 1 (text/plain, inline)]
Hello guix!

I realised clementine wasn't building because qtwebkit isn't building
either. But, it turns out that while it's an optional dependency
according to CMakeList.txt, it isn't actually used anywhere in the
code. Here's a patch that removes qtwebkit from its inputs.

[0001-gnu-clementine-Drop-dependency-on-qtwebkit.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
Thanks!
Pierre


Information forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Mon, 13 Aug 2018 21:00:02 GMT) Full text and rfc822 format available.

Message #8 received at 32431 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Pierre Langlois <pierre.langlois <at> gmx.com>
Cc: 32431 <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Mon, 13 Aug 2018 16:58:57 -0400
[Message part 1 (text/plain, inline)]
On Mon, Aug 13, 2018 at 08:26:21PM +0100, Pierre Langlois wrote:
> Hello guix!
> 
> I realised clementine wasn't building because qtwebkit isn't building
> either. But, it turns out that while it's an optional dependency
> according to CMakeList.txt, it isn't actually used anywhere in the
> code. Here's a patch that removes qtwebkit from its inputs.
> 

> From c32d30001676d80bc9c80ece3ee8c31ec9b72592 Mon Sep 17 00:00:00 2001
> From: Pierre Langlois <pierre.langlois <at> gmx.com>
> Date: Mon, 13 Aug 2018 09:05:17 +0100
> Subject: [PATCH] gnu: clementine: Drop dependency on qtwebkit.
> 
> QtWebkit is optionally included in CMakeList.txt but isn't actually used
> anywhere in the code.
> 
> * gnu/packages/music.scm (clementine)[inputs]: Remove qtwebkit.

Thanks!

Does clementine work for you with this change? For me, it fails like
this:


$ clementine
16:58:17.043 INFO  main:315                         Clementine-qt5 1.3.1
16:58:17.065 WARN  Database:275                     Couldn't register FTS3 tokenizer :  QSqlError("1", "Unable to fetch row", "fts3tokenize disabled")
16:58:17.066 DEBUG Database:449                     Applying database schema update 13 from ":/schema/schema-13.sql"
16:58:17.066 ERROR Database:577                     db error:  QSqlError("1", "Unable to fetch row", "unknown tokenizer: unicode")
16:58:17.066 ERROR Database:578                     faulty query:  "CREATE VIRTUAL TABLE songs_fts USING fts3(\n  ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsgenre, ftscomment,\n  tokenize=unicode\n)"
16:58:17.066 ERROR Database:579                     bound values:  QMap()
__logging_message__16:58:17.066 ERROR unknown                          Unable to update music library database
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Mon, 13 Aug 2018 21:13:01 GMT) Full text and rfc822 format available.

Message #11 received at 32431 <at> debbugs.gnu.org (full text, mbox):

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>, 32431 <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Mon, 13 Aug 2018 22:12:14 +0100
Hi Leo,

Leo Famulari writes:

> On Mon, Aug 13, 2018 at 08:26:21PM +0100, Pierre Langlois wrote:
>> Hello guix!
>> 
>> I realised clementine wasn't building because qtwebkit isn't building
>> either. But, it turns out that while it's an optional dependency
>> according to CMakeList.txt, it isn't actually used anywhere in the
>> code. Here's a patch that removes qtwebkit from its inputs.
>> 
>
>> From c32d30001676d80bc9c80ece3ee8c31ec9b72592 Mon Sep 17 00:00:00 2001
>> From: Pierre Langlois <pierre.langlois <at> gmx.com>
>> Date: Mon, 13 Aug 2018 09:05:17 +0100
>> Subject: [PATCH] gnu: clementine: Drop dependency on qtwebkit.
>> 
>> QtWebkit is optionally included in CMakeList.txt but isn't actually used
>> anywhere in the code.
>> 
>> * gnu/packages/music.scm (clementine)[inputs]: Remove qtwebkit.
>
> Thanks!
>
> Does clementine work for you with this change? For me, it fails like
> this:
>
>
> $ clementine
> 16:58:17.043 INFO  main:315                         Clementine-qt5 1.3.1
> 16:58:17.065 WARN  Database:275                     Couldn't register FTS3 tokenizer :  QSqlError("1", "Unable to fetch row", "fts3tokenize disabled")
> 16:58:17.066 DEBUG Database:449                     Applying database schema update 13 from ":/schema/schema-13.sql"
> 16:58:17.066 ERROR Database:577                     db error:  QSqlError("1", "Unable to fetch row", "unknown tokenizer: unicode")
> 16:58:17.066 ERROR Database:578                     faulty query:  "CREATE VIRTUAL TABLE songs_fts USING fts3(\n  ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsgenre, ftscomment,\n  tokenize=unicode\n)"
> 16:58:17.066 ERROR Database:579                     bound values:  QMap()
> __logging_message__16:58:17.066 ERROR unknown                          Unable to update music library database

That's strange, it works OK for me. I'm on master, which branch are you
on? IIRC this was the error I was getting when sqlite wasn't built with
FTS3 support, hence the sqlite-with-fts3 package (although I'm not sure
what it is).

Thanks,
Pierre





Information forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Tue, 14 Aug 2018 02:33:02 GMT) Full text and rfc822 format available.

Message #14 received at 32431 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Pierre Langlois <pierre.langlois <at> gmx.com>
Cc: 32431 <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Mon, 13 Aug 2018 22:31:58 -0400
[Message part 1 (text/plain, inline)]
On Mon, Aug 13, 2018 at 10:12:14PM +0100, Pierre Langlois wrote:
> That's strange, it works OK for me. I'm on master, which branch are you
> on? IIRC this was the error I was getting when sqlite wasn't built with
> FTS3 support, hence the sqlite-with-fts3 package (although I'm not sure
> what it is).

I'm also working on the master branch, Guix on Debian. I can reproduce
the error on commit 9285f8bbae9d71139873430c71b7ca7634bda31b like this:

------
$ ./pre-inst-env guix environment --pure --ad-hoc clementine -- clementine
22:30:46.067 INFO  main:315                         Clementine-qt5 1.3.1                     
__logging_message__22:30:46.071 WARN  unknown                          QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-leo'
__logging_message__22:30:46.083 WARN  unknown                          QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-leo'
22:30:46.091 WARN  Database:275                     Couldn't register FTS3 tokenizer :  QSqlError("1", "Unable to fetch row", "fts3tokenize disabled")
22:30:46.092 DEBUG Database:449                     Applying database schema update 13 from ":/schema/schema-13.sql"
22:30:46.092 ERROR Database:577                     db error:  QSqlError("1", "Unable to fetch row", "unknown tokenizer: unicode")
22:30:46.092 ERROR Database:578                     faulty query:  "CREATE VIRTUAL TABLE songs_fts USING fts3(\n  ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsgenre, ftscomment,\n  tokenize=unicode\n)"
22:30:46.092 ERROR Database:579                     bound values:  QMap()
__logging_message__22:30:46.092 ERROR unknown                          Unable to update music library database
------

If it works for you on GuixSD or another distro, we should go ahead and
push the patch, and find out why it doesn't work for me later.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Tue, 14 Aug 2018 09:25:01 GMT) Full text and rfc822 format available.

Message #17 received at 32431 <at> debbugs.gnu.org (full text, mbox):

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>, 32431 <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Tue, 14 Aug 2018 10:24:17 +0100
Leo Famulari writes:

> On Mon, Aug 13, 2018 at 10:12:14PM +0100, Pierre Langlois wrote:
>> That's strange, it works OK for me. I'm on master, which branch are you
>> on? IIRC this was the error I was getting when sqlite wasn't built with
>> FTS3 support, hence the sqlite-with-fts3 package (although I'm not sure
>> what it is).
>
> I'm also working on the master branch, Guix on Debian. I can reproduce
> the error on commit 9285f8bbae9d71139873430c71b7ca7634bda31b like this:
>
> ------
> $ ./pre-inst-env guix environment --pure --ad-hoc clementine -- clementine
> 22:30:46.067 INFO  main:315                         Clementine-qt5 1.3.1                     
> __logging_message__22:30:46.071 WARN  unknown                          QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-leo'
> __logging_message__22:30:46.083 WARN  unknown                          QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-leo'
> 22:30:46.091 WARN  Database:275                     Couldn't register FTS3 tokenizer :  QSqlError("1", "Unable to fetch row", "fts3tokenize disabled")
> 22:30:46.092 DEBUG Database:449                     Applying database schema update 13 from ":/schema/schema-13.sql"
> 22:30:46.092 ERROR Database:577                     db error:  QSqlError("1", "Unable to fetch row", "unknown tokenizer: unicode")
> 22:30:46.092 ERROR Database:578                     faulty query:  "CREATE VIRTUAL TABLE songs_fts USING fts3(\n  ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsgenre, ftscomment,\n  tokenize=unicode\n)"
> 22:30:46.092 ERROR Database:579                     bound values:  QMap()
> __logging_message__22:30:46.092 ERROR unknown                          Unable to update music library database
> ------
>
> If it works for you on GuixSD or another distro, we should go ahead and
> push the patch, and find out why it doesn't work for me later.

Actually, now I can reproduce the error. I already had a database
created in my home directory by the previous working installation so I
didn't see the error. If I remove '.config/Clementine' it crashes the
same way. I don't think it's because of this patch though, which means
the problem has probably been there a while :-(, I'll investigate when I
get the time tonight!

Thanks for finding that bug!
Pierre





Information forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Tue, 14 Aug 2018 21:33:02 GMT) Full text and rfc822 format available.

Message #20 received at 32431 <at> debbugs.gnu.org (full text, mbox):

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>, 32431 <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Tue, 14 Aug 2018 22:32:11 +0100
[Message part 1 (text/plain, inline)]
Hi Leo,

Pierre Langlois writes:

> Leo Famulari writes:
>
>> On Mon, Aug 13, 2018 at 10:12:14PM +0100, Pierre Langlois wrote:
>>> That's strange, it works OK for me. I'm on master, which branch are you
>>> on? IIRC this was the error I was getting when sqlite wasn't built with
>>> FTS3 support, hence the sqlite-with-fts3 package (although I'm not sure
>>> what it is).
>>
>> I'm also working on the master branch, Guix on Debian. I can reproduce
>> the error on commit 9285f8bbae9d71139873430c71b7ca7634bda31b like this:
>>
>> ------
>> $ ./pre-inst-env guix environment --pure --ad-hoc clementine -- clementine
>> 22:30:46.067 INFO  main:315                         Clementine-qt5 1.3.1                     
>> __logging_message__22:30:46.071 WARN  unknown                          QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-leo'
>> __logging_message__22:30:46.083 WARN  unknown                          QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-leo'
>> 22:30:46.091 WARN  Database:275                     Couldn't register FTS3 tokenizer :  QSqlError("1", "Unable to fetch row", "fts3tokenize disabled")
>> 22:30:46.092 DEBUG Database:449                     Applying database schema update 13 from ":/schema/schema-13.sql"
>> 22:30:46.092 ERROR Database:577                     db error:  QSqlError("1", "Unable to fetch row", "unknown tokenizer: unicode")
>> 22:30:46.092 ERROR Database:578                     faulty query:  "CREATE VIRTUAL TABLE songs_fts USING fts3(\n  ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsgenre, ftscomment,\n  tokenize=unicode\n)"
>> 22:30:46.092 ERROR Database:579                     bound values:  QMap()
>> __logging_message__22:30:46.092 ERROR unknown                          Unable to update music library database
>> ------
>>
>> If it works for you on GuixSD or another distro, we should go ahead and
>> push the patch, and find out why it doesn't work for me later.
>
> Actually, now I can reproduce the error. I already had a database
> created in my home directory by the previous working installation so I
> didn't see the error. If I remove '.config/Clementine' it crashes the
> same way. I don't think it's because of this patch though, which means
> the problem has probably been there a while :-(, I'll investigate when I
> get the time tonight!

OK, it's working now :-). It was indeed unrelated to qtwebkit so here is
a follow-up patch that fixes the issue. I'm not sure of the details, but
there is a pull request [0] that allows us to patch clementine to fix
this, and on top of this, it allows us to use the generic sqlite! It
seems OpenSUSE have also patched clementine this way.

WDYT?

Thanks,
Pierre

[0]: https://github.com/clementine-player/Clementine/pull/5669

[0001-gnu-clementine-Fix-creating-initial-database.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Wed, 15 Aug 2018 00:43:02 GMT) Full text and rfc822 format available.

Message #23 received at 32431 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Pierre Langlois <pierre.langlois <at> gmx.com>
Cc: 32431 <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Tue, 14 Aug 2018 20:42:06 -0400
[Message part 1 (text/plain, inline)]
On Tue, Aug 14, 2018 at 10:32:11PM +0100, Pierre Langlois wrote:
> * gnu/packages/databases.scm (sqlite-with-fts3): Remove.
> * gnu/packages/music.scm (clementine)[inputs]: Replace sqlite-with-fts3 with
> sqlite.
> [source][patches]: Add clementine-fix-sqlite.patch.
> * gnu/packages/patches/clementine-fix-sqlite.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.

Thanks!

With this, I could start Clementine but I couldn't actually play
any MP3 or FLAC files. It would fail with a dialog that said:

"GStreamer could not create the element: autoaudiosink. Please make sure
that you have installed all necessary GStreamer plugins (e.g. OGG and
MP3)"

But, when I rebuilt Clementine with the missing plugins (as attached),
it works.

If that change looks good to you I'll push it along with your patches.
[clementine.diff (text/plain, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#32431; Package guix-patches. (Wed, 15 Aug 2018 06:58:02 GMT) Full text and rfc822 format available.

Message #26 received at 32431 <at> debbugs.gnu.org (full text, mbox):

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: Leo Famulari <leo <at> famulari.name>
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>, 32431 <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Wed, 15 Aug 2018 07:57:07 +0100
Leo Famulari writes:

> On Tue, Aug 14, 2018 at 10:32:11PM +0100, Pierre Langlois wrote:
>> * gnu/packages/databases.scm (sqlite-with-fts3): Remove.
>> * gnu/packages/music.scm (clementine)[inputs]: Replace sqlite-with-fts3 with
>> sqlite.
>> [source][patches]: Add clementine-fix-sqlite.patch.
>> * gnu/packages/patches/clementine-fix-sqlite.patch: New file.
>> * gnu/local.mk (dist_patch_DATA): Add it.
>
> Thanks!
>
> With this, I could start Clementine but I couldn't actually play
> any MP3 or FLAC files. It would fail with a dialog that said:
>
> "GStreamer could not create the element: autoaudiosink. Please make sure
> that you have installed all necessary GStreamer plugins (e.g. OGG and
> MP3)"

Ah yes, that's expected. when packaging this we agreed not to add any of
the gst-plugins-{good,bad,ugly} to the inputs and let the user install
what they want instead [0]. Although, while we defenetely shouldn't add
'bad' and 'ugly', I don't see any reason not to add 'good' to make sure
it all works out of the box. But then, the dialog hints the user should
install them so that's not so bad as it is.

Basically, I don't mind either way :-).

Thanks for testing!

Pierre

[0]: https://lists.gnu.org/archive/html/guix-patches/2017-02/msg00192.html

>
> But, when I rebuilt Clementine with the missing plugins (as attached),
> it works.
>
> If that change looks good to you I'll push it along with your patches.
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index 7d4aeff99..2b8ff451b 100644
> --- a/gnu/packages/music.scm
> +++ b/gnu/packages/music.scm
> @@ -272,6 +272,8 @@ score, keyboard, guitar, drum and controller views.")
>           ("glu" ,glu)
>           ("gstreamer" ,gstreamer)
>           ("gst-plugins-base" ,gst-plugins-base)
> +         ("gst-plugins-good" ,gst-plugins-good)
> +         ("gst-libav" ,gst-libav)
>           ("libcdio" ,libcdio)
>           ("libmygpo-qt" ,libmygpo-qt)
>           ;; TODO: Package libgpod.





Reply sent to Leo Famulari <leo <at> famulari.name>:
You have taken responsibility. (Wed, 15 Aug 2018 18:36:01 GMT) Full text and rfc822 format available.

Notification sent to Pierre Langlois <pierre.langlois <at> gmx.com>:
bug acknowledged by developer. (Wed, 15 Aug 2018 18:36:02 GMT) Full text and rfc822 format available.

Message #31 received at 32431-done <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Pierre Langlois <pierre.langlois <at> gmx.com>
Cc: 32431-done <at> debbugs.gnu.org
Subject: Re: [bug#32431] [PATCH] gnu: clementine: Drop dependency on qtwebkit.
Date: Wed, 15 Aug 2018 14:35:26 -0400
[Message part 1 (text/plain, inline)]
On Wed, Aug 15, 2018 at 07:57:07AM +0100, Pierre Langlois wrote:
> Ah yes, that's expected. when packaging this we agreed not to add any of
> the gst-plugins-{good,bad,ugly} to the inputs and let the user install
> what they want instead [0]. Although, while we defenetely shouldn't add
> 'bad' and 'ugly', I don't see any reason not to add 'good' to make sure
> it all works out of the box. But then, the dialog hints the user should
> install them so that's not so bad as it is.
> 
> Basically, I don't mind either way :-).

Previously, MP3 decoding in GStreamer was in gst-plugins-ugly because
MP3 was patented, but the patents expired and now gst-plugins-good
includes MP3.

I think the package should work as-is for its primary use case (music
playback), so I pushed your patches and also added gst-plugins-good and
gst-libav, ending with commit 8473f8024ceb8e7249702289b206782de7d4c71c.
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 13 Sep 2018 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 337 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.