diff mbox

gnu: Add sonata

Message ID 20160910113133.29711-2-mail@cbaines.net
State New
Headers show

Commit Message

Christopher Baines Sept. 10, 2016, 11:31 a.m. UTC
* gnu/packages/mpd.scm (sonata): New variable.
 gnu/packages/mpd.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)


Leo Famulari Sept. 10, 2016, 6:08 p.m. UTC | #1
On Sat, Sep 10, 2016 at 12:31:33PM +0100, Christopher Baines wrote:
> * gnu/packages/mpd.scm (sonata): New variable.

Wow, I'm very happy to see this package fixed up :)

> +    (inputs
> +     `(("gettext" ,gnu-gettext)

All looks good to me except for the gettext issue discussed earlier.

$ guix gc --references $(./pre-inst-env guix build sonata)
substitute: warning: failed to install locale: Invalid argument

The built package does not refer to gettext. 

I altered the package to use gettext as a native-input, and then ran
sonata in a '--pure' environment, and it worked. Using strace, I
confirmed that sonata was not finding gettext on its own. I did not use
a container environment, since I couldn't figure out how to make the
graphical display work.

So, should we make gettext a native-input and add the package? :)
Christopher Baines Sept. 11, 2016, 10 a.m. UTC | #2
Yep, obviously didn't re-read the previous feedback thoroughly enough. gettext
is indeed only used at build time. I've attached an updated patch (with just
that change).
diff mbox


diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 279ec68..cc9d583 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -27,10 +27,14 @@ 
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
+  #:use-module ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages compression)
@@ -263,3 +267,51 @@  interface for the Music Player Daemon.")
     (package (inherit mpd2)
       (native-inputs `(("python2-setuptools" ,python2-setuptools)
                        ,@(package-native-inputs mpd2))))))
+(define-public sonata
+  (package
+    (name "sonata")
+    (version "1.7b1")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://github.com/multani/sonata/archive/v"
+                              version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07gq2nxqwxs0qyxjbay7k5j25zd386bn7wdr2dl1gk53diwnn7s0"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build python-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build python-build-system)
+                           (guix build glib-or-gtk-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+         (add-after 'install 'wrap-sonata
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out               (assoc-ref outputs "out"))
+                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+               (wrap-program (string-append out "/bin/sonata")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+             #t)))))
+    (inputs
+     `(("gettext" ,gnu-gettext)
+       ("python-mpd2" ,python-mpd2)
+       ("gtk+" ,gtk+)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gobject-introspection" ,gobject-introspection)
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("python-pygobject" ,python-pygobject)))
+    (synopsis "Elegant client for the Music Player Daemon")
+    (description "Sonata is an elegant graphical client for the Music Player
+Daemon (MPD).  It supports playlists, multiple profiles (connecting to different
+MPD servers, search and multimedia key support.")
+    (home-page "http://www.nongnu.org/sonata/")
+    (license license:gpl3+)))