unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#44436] [PATCH] Add Cantata
@ 2020-11-04 10:24 Simon Streit
  2020-11-04 19:55 ` bug#44436: " Leo Famulari
  0 siblings, 1 reply; 2+ messages in thread
From: Simon Streit @ 2020-11-04 10:24 UTC (permalink / raw)
  To: 44436


	modified:   mpd.scm
---
 gnu/packages/mpd.scm | 57 ++++++++++++++++++++++++++++++++++++++------
 1 file changed, 50 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 77666de7b2..87bdb61298 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
+;;; Copyright © 2020 Simon Streit <simon@netpanic.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,29 +36,36 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
-  #:use-module (gnu packages gettext)
-  #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gtk)
-  #:use-module (gnu packages icu4c)
-  #:use-module (gnu packages readline)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages video)
@@ -416,3 +424,38 @@ other MPD frontends.")
 support")
     (home-page "https://github.com/eonpatapon/mpDris2")
     (license license:gpl3+)))
+
+(define-public cantata
+  (package
+    (name "cantata")
+    (version "2.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/CDrummond/"
+                                  name "/releases/download/v" version "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256 (base32 "10pcrpmb4n1mkgr21xd580nrbmh57q7s72cbs1zay847hc65vliy"))))
+    (build-system cmake-build-system)
+    (native-inputs `(("cmake" ,cmake)
+                     ("ffmpeg" ,ffmpeg)
+                     ("libebur128" ,libebur128)
+                     ("qttools" ,qttools)))
+    (inputs `(("libmtp" ,libmtp)
+              ("qtbase" ,qtbase)
+              ("libmusicbrainz" ,libmusicbrainz)
+              ("mpg123" ,mpg123)
+              ("qtmultimedia" ,qtmultimedia)
+              ("qtsvg" ,qtsvg)
+              ("taglib" ,taglib)
+              ("libcdio-paranoia" ,libcdio-paranoia)
+              ("udisks" ,udisks)
+              ("eudev", eudev)))
+    (arguments `(#:tests? #f))
+    (synopsis "Qt5 Graphical MPD Client")
+    (description "Cantata is a graphical client using the Qt5 toolkit
+for the Music Player Daemon (MPD).  Its user interface is highly
+costumisable, supports multiple collections, ratings, and dynamic
+playlists.  A local cache of the music album will be created to
+provide a hierarchy of albums and artists alongside with albumart. ")
+    (home-page "https://github.com/cdrummond/cantata")
+    (license gpl3+)))
--
2.29.1




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* bug#44436: [PATCH] Add Cantata
  2020-11-04 10:24 [bug#44436] [PATCH] Add Cantata Simon Streit
@ 2020-11-04 19:55 ` Leo Famulari
  0 siblings, 0 replies; 2+ messages in thread
From: Leo Famulari @ 2020-11-04 19:55 UTC (permalink / raw)
  To: Simon Streit; +Cc: 44436-done

On Wed, Nov 04, 2020 at 11:24:01AM +0100, Simon Streit wrote:
> +(define-public cantata

Thanks! I use MPD every day so I'm always glad to have another client
available. Pushed as 79e9168aa6ebe3eee83e852ba96f46dda8ec0490 with the
changes described below...

First, I tried building it, but that failed for two reasons:

> +    (build-system cmake-build-system)

The build system was not available — I needed to add '#:use-module (guix
build-system cmake)' to mpd.scm's module imports.

> +    (license gpl3+)))

The license needs to be "prefixed" like the other licenses in this file.
That is: '(license license:gpl3+)'. If you look in mpd.scm's module
imports, you'll see that we import the license module with a "prefix":

#:use-module ((guix licenses) #:prefix license:)

This is to work around the fact there are both packages and licenses
named 'zlib' and 'expat', and the namespaces would otherwise collide
when importing the license module and either of those packages.

After that, I looked more closely at the inputs and native-inputs. In
general, native-inputs are things that are used *only* while building
the package. There were some unused inputs, and some were
miscategorized. I fixed that by 1) reading the output of CMake's
'configure' phase, 2) intuition and 3) checking which inputs the built
Cantata refers to:

------
$ guix gc --references $(./pre-inst-env guix build cantata)
/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib
/gnu/store/3bp88g40ay0zca3azdk7wf4nyrwrdjjx-qtsvg-5.14.2
/gnu/store/9z2412yyy95bcq7brfhdjlh8im2lxkpc-ffmpeg-4.3.1
/gnu/store/af00wnjldgbbyzb17bjkkw2mn0b1gr4d-qtbase-5.14.2
/gnu/store/b12szz8wy7wxvfv2jfj5ygqkgqar03ih-taglib-1.12-beta-1
/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31
/gnu/store/gklxpq6zmalxspwvj9md140skfpayrah-libmtp-1.1.18
/gnu/store/irsg92y6hnz1agsqvl6mwqxz32lkmi8v-cantata-2.4.2
/gnu/store/n1azzzjsq99n05r5xl0hcljvpvw5arxn-qtmultimedia-5.14.2
/gnu/store/ngv0dqjz88cn5553ys8w19ydwc55lvky-mpg123-1.26.3
/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16
/gnu/store/rykm237xkmq7rl1p0nwass01p090p88x-zlib-1.2.11
/gnu/store/v52179lrpvl6cdqr7li45zd8zafc6156-libebur128-1.2.4
/gnu/store/z1ngxz9rc1vqpbwvvlm8l37fa0q6ga5x-eudev-3.2.9
------

Anything not listed there is either used only while building, not
used at all, or the relevant software is copied into Cantata.

Note that libcdio-paranoia is not listed — it is registered by the CMake
configure phase, so either something is broken in the build scripts or
it has been copied into Cantata. I left it in, just in case it works...
somebody with an optical drive will find out.

Also, libmusicbrainz is not listed. If libcdio-paranoia is not included,
CMake doesn't complain about the missing libmusicbrainz. No matter what,
CMake fails to find libmusicbrainz, so I removed it from Cantata's
inputs.

It's not unusual for older CMake projects that are no longer being
actively developed to have this kind of inconsistency with their build
scripts.  Follow-up patches that address this are quite welcome! Are you
able to test those features?

Finally, I made some stylistic or grammatical changes to the synopsis,
description, and source URI, added a comment about why we skip the
tests, and pushed. Thanks again!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-11-04 19:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-04 10:24 [bug#44436] [PATCH] Add Cantata Simon Streit
2020-11-04 19:55 ` bug#44436: " Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).