Subject: Re: bug#25787: [PATCH 0/6] Add Clementine music player.

From: Marius Bakke <[email-masked]>
Date: Wed, 22 Feb 2017 16:28:23 +0100

Pierre Langlois <[email-masked]> writes:

> Hello guix!
>
> Here are patches to add the Clementine music player [1] and its dependencies.
> First of all, thanks all of you for Guix{,SD}!  It's a lot of fun to play
> with.

Hi Pierre!

Thanks a lot for packaging this!

> I have a couple of questions about this series:
>
> * cryptopp
>
> I believe this *should* be an optional dependency but I wasn't able to disable
> it.  It seems to be used for spotify support:
>
> ~~~(CMakeLists.txt)
> 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()
> ~~~
>
> What do you think?  Should we patch the above file to disable spotify support
> or should we package cryptopp?  I've done the latter in this series.

I don't see any reason not to use crypto++ here.

> * sqlite/nss
>
> I ran into complications with this package when I realized Clementine needed
> the FTS3 extension enabled in sqlite [2].  I've been able to test this but it
> took an entire day to rebuild all packages depending on sqlite in my profile
> :-P.  By the way, the fact I can do this is great!

I wonder why FTS3 is not enabled by default in sqlite, as it seems
useful. Any idea? If there are performance or compatibility problems, we
could probably ship it as a separate package.

> As a result, the nss package was rebuilt and I consistently got 6 failures,
> all due to a PayPal certificate.  I had no idea how to fix this so I updated
> the nss package to the latest release and the tests passed.

Yes, this is a known problem.

https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00828.html

We also tried updating to 3.28 recently, but it also fails to build on
ARM platforms, so we're currently "stuck" on 3.27.1.

https://lists.gnu.org/archive/html/guix-devel/2017-01/msg01982.html

> So I suppose this series should probably go in a branch as it will require a
> lot of rebuilding.

For now, you can define a separate sqlite package with FTS enabled. See
e.g. "gd-for-php" in php.scm for an example of inheriting a package, and
grep around for 'substitute-keyword-arguments' to see how to override
inherited configure flags.

I will comment on the other patches individually. Thank you!