I've attached an updated patch making the modifications you suggested.

In addition, I also wrapped GI_TYPELIB_PATH, which is required in order for
plugins (like cd burning and libre.fm integration) to work.

Thanks,
David

On Fri, Jul 10, 2015 at 12:17 AM, Mark H Weaver <m...@netris.org> wrote:

> David Hashe <david.ha...@dhashe.com> writes:
>
> > From c3ec7cf01a6c1bf9013a2819c2c5ec7181724947 Mon Sep 17 00:00:00 2001
> > From: David Hashe <david.ha...@dhashe.com>
> > Date: Tue, 7 Jul 2015 23:40:01 -0500
> > Subject: [PATCH] gnu: Add rhythmbox.
> >
> > * gnu/packages/gnome.scm (rhythmbox): New variable.
> > ---
> >  gnu/packages/gnome.scm | 74
> ++++++++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 74 insertions(+)
> >
> > diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> > index 0ec5ea2..6d238af 100644
> > --- a/gnu/packages/gnome.scm
> > +++ b/gnu/packages/gnome.scm
> > @@ -56,6 +56,7 @@
> >    #:use-module (gnu packages libcanberra)
> >    #:use-module (gnu packages linux)
> >    #:use-module (gnu packages libusb)
> > +  #:use-module (gnu packages lirc)
> >    #:use-module (gnu packages image)
> >    #:use-module (gnu packages perl)
> >    #:use-module (gnu packages pkg-config)
>
> I've since added (gnu packages lirc) here as part of the Totem patch, so
> this hunk should be removed.
>
> > @@ -2718,3 +2719,76 @@ the patterned block to the area bordered by green
> markers.  To do so, you will
> >  need to slide other blocks out of the way.  Complete each puzzle in as
> few moves
> >  as possible!")
> >      (license license:gpl2+)))
> > +
> > +(define-public rhythmbox
> > + (package
> > +   (name "rhythmbox")
> > +   (version "3.2.1")
> > +   (source (origin
> > +            (method url-fetch)
> > +            (uri (string-append "mirror://gnome/sources/" name "/"
> > +                                (version-major+minor version) "/"
> > +                                name "-" version ".tar.xz"))
> > +            (sha256
> > +             (base32
> > +              "0f3radhlji7rxl760yl2vm49fvfslympxrpm8497acbmbd7wlhxz"))))
> > +   (build-system glib-or-gtk-build-system)
> > +   (arguments
> > +    `(#:configure-flags
> > +      (list "--enable-lirc"
> > +            "--enable-python"
> > +            "--enable-vala"
> > +            "--with-brasero"
> > +            "--with-gudev"
> > +            "--with-libsecret")))
> > +   (propagated-inputs
> > +    `(("dconf" ,dconf)
> > +      ("gobject-introspection" ,gobject-introspection)
> > +      ("gst-libav" ,gst-libav)
> > +      ("gst-plugins-base" ,gst-plugins-base)
> > +      ("gst-plugins-good" ,gst-plugins-good)
> > +      ("gst-plugins-ugly" ,gst-plugins-ugly)
> > +      ("totem-pl-parser" ,totem-pl-parser)))
>
> I agree that 'dconf' should be a propagated-input.
>
> 'gobject-introspection' should be moved to 'native-inputs'.
>
> 'gst-libav' and 'gst-plugins-ugly' should be removed entirely.  Users
> can add them to their profile if they wish.
>
> As for 'gst-plugins-base' and 'gst-plugins-good': I think it would be
> better to make them normal inputs, and add a wrapper for rhythmbox that
> adds a prefix to GST_PLUGIN_SYSTEM_PATH, similar to what we do in the
> Totem package.
>
> What about 'totem-pl-parser'?  Does that need to be a propagated-input?
> If so, why?
>
> > +   (native-inputs
> > +    `(("intltool" ,intltool)
> > +      ("glib" ,glib "bin")
> > +      ("desktop-file-utils" ,desktop-file-utils)
> > +      ("pkg-config" ,pkg-config)))
> > +   (inputs
> > +    `(("json-glib" ,json-glib)
> > +      ("tdb" ,tdb)
> > +      ("gnome-desktop" ,gnome-desktop)
> > +      ("python" ,python)
> > +      ("python-pygobject" ,python2-pygobject)
> > +      ("vala" ,vala)
> > +      ("gmime" ,gmime)
> > +      ("nettle" ,nettle)
> > +      ("itstool" ,itstool)
> > +      ("adwaita-icon-theme" ,adwaita-icon-theme)
> > +      ("gstreamer" ,gstreamer)
> > +      ("gudev" ,eudev)
>
> Does 'eudev' provide 'gudev'?  This seems mismatched, but perhaps I'm
> mistaken.
>
> > +      ;("libmtp" ,libmtp) FIXME Not detected
>
> Please use two semicolons here.  In general, use one semicolon for
> margin comments (on the right), and two semicolons for comments that are
> in the same column as the surrounding code.  Emacs decides how to
> auto-indent Lisp/Scheme comments based on the number of semicolons.
>
> > +      ("libsecret" ,libsecret)
> > +      ("libsoup" ,libsoup)
> > +      ("libnotify" ,libnotify)
> > +      ("libpeas" ,libpeas)
> > +      ("lirc" ,lirc)
> > +      ; TODO Unused without mx
>
> Two semicolons, and it's not clear which input the comment above refers
> to.  Please make it more clear.
>
> > +      ;("clutter" ,clutter)
> > +      ;("clutter-gtk" ,clutter-gtk)
> > +      ;("clutter-gst" ,clutter-gst)
>
> Two semicolons.
>
> > +      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
> > +      ("atk" ,atk)
> > +      ("pango" ,pango)
> > +      ("gtk+" ,gtk+)
> > +      ;; TODO:
> > +      ;;  * grilo
>
> We have grilo now.  You should probably add both 'grilo' and
> 'grilo-plugins' as inputs and then set GRL_PLUGIN_PATH in the wrapper,
> like we do in the Totem package.
>
> > +      ;;  * libgpod
> > +      ;;  * mx
> > +      ;;  * webkit
> > +      ("brasero" ,brasero)))
> > +   (home-page "https://wiki.gnome.org/Apps/Rhythmbox";)
> > +   (synopsis "Music player for GNOME")
> > +   (description "Rhythmbox is a music playing application for GNOME.  It
> > +supports playlists, song ratings, and any codecs installed through
> gstreamer.")
> > +   (license license:gpl2+)))
>
> Can you send an updated patch?
>
>      Thanks,
>        Mark
>
From 3ddd7b8d0744e3d7a105e6ea613df269c8c587a6 Mon Sep 17 00:00:00 2001
From: David Hashe <david.ha...@dhashe.com>
Date: Thu, 9 Jul 2015 23:43:56 -0500
Subject: [PATCH] gnu: Add rhythmbox.

* gnu/packages/gnome.scm (rhythmbox): New variable.
---
 gnu/packages/gnome.scm | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3142506..64c078e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2902,3 +2902,89 @@ which can read a large number of file formats.")
     ;; to be used and distributed together with GStreamer and Totem.  See
     ;; file://COPYING in the source distribution for details.
     (license license:gpl2+)))
+
+(define-public rhythmbox
+ (package
+   (name "rhythmbox")
+   (version "3.2.1")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "mirror://gnome/sources/" name "/"
+                                (version-major+minor version) "/"
+                                name "-" version ".tar.xz"))
+            (sha256
+             (base32
+              "0f3radhlji7rxl760yl2vm49fvfslympxrpm8497acbmbd7wlhxz"))))
+   (build-system glib-or-gtk-build-system)
+   (arguments
+    `(#:configure-flags
+      (list "--enable-lirc"
+            "--enable-python"
+            "--enable-vala"
+            "--with-brasero"
+            "--with-gudev"
+            "--with-libsecret")
+      #:phases
+      (modify-phases %standard-phases
+        (add-after
+         'install 'wrap-rhythmbox
+         (lambda* (#:key inputs outputs #:allow-other-keys)
+           (let ((out               (assoc-ref outputs "out"))
+                 (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                 (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                 (grl-plugin-path   (getenv "GRL_PLUGIN_PATH")))
+             (wrap-program (string-append out "/bin/rhythmbox")
+               `("GI_TYPELIB_PATH"        ":" prefix (,gi-typelib-path))
+               `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+               `("GRL_PLUGIN_PATH"        ":" prefix (,grl-plugin-path))))
+           #t)))))
+   (propagated-inputs
+    `(("dconf" ,dconf)))
+   (native-inputs
+    `(("intltool" ,intltool)
+      ("glib" ,glib "bin")
+      ("gobject-introspection" ,gobject-introspection)
+      ("desktop-file-utils" ,desktop-file-utils)
+      ("pkg-config" ,pkg-config)))
+   (inputs
+    `(("json-glib" ,json-glib)
+      ("tdb" ,tdb)
+      ("gnome-desktop" ,gnome-desktop)
+      ("python" ,python)
+      ("python-pygobject" ,python2-pygobject)
+      ("vala" ,vala)
+      ("gmime" ,gmime)
+      ("nettle" ,nettle)
+      ("itstool" ,itstool)
+      ("adwaita-icon-theme" ,adwaita-icon-theme)
+      ("grilo" ,grilo)
+      ("grilo-plugins" ,grilo-plugins)
+      ("gstreamer" ,gstreamer)
+      ("gst-plugins-base" ,gst-plugins-base)
+      ("gst-plugins-good" ,gst-plugins-good)
+      ("eudev" ,eudev)
+      ("totem-pl-parser" ,totem-pl-parser)
+      ;;("libmtp" ,libmtp) FIXME: Not detected
+      ("libsecret" ,libsecret)
+      ("libsoup" ,libsoup)
+      ("libnotify" ,libnotify)
+      ("libpeas" ,libpeas)
+      ("lirc" ,lirc)
+      ;; TODO: clutter* only used by visualizer plugin, which also requires mx
+      ;;("clutter" ,clutter)
+      ;;("clutter-gtk" ,clutter-gtk)
+      ;;("clutter-gst" ,clutter-gst)
+      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+      ("atk" ,atk)
+      ("pango" ,pango)
+      ("gtk+" ,gtk+)
+      ;; TODO:
+      ;;  * libgpod
+      ;;  * mx
+      ;;  * webkit
+      ("brasero" ,brasero)))
+   (home-page "https://wiki.gnome.org/Apps/Rhythmbox";)
+   (synopsis "Music player for GNOME")
+   (description "Rhythmbox is a music playing application for GNOME.  It
+supports playlists, song ratings, and any codecs installed through gstreamer.")
+   (license license:gpl2+)))
-- 
1.9.1

Reply via email to