unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCHES] Add totem
@ 2015-06-21  4:21 Mark H Weaver
  2015-06-22 19:24 ` Ludovic Courtès
  0 siblings, 1 reply; 27+ messages in thread
From: Mark H Weaver @ 2015-06-21  4:21 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 721 bytes --]

Hello Guix,

These patches add totem, a.k.a. GNOME Videos, and its prerequisites
grilo and grilo-plugins.  This patch set also depends on the 'clutter'
and 'gom' patch sets which I posted recently.

A few caveats: in order for totem to work properly, you must have
several other packages installed in your profile.  I'm not entirely sure
of the full set needed, but I guess it includes:

  grilo
  grilo-plugins
  gstreamer
  gst-plugins-base
  gst-plugins-good
  dconf

You will also need to set the GRL_PLUGIN_PATH and GST_PLUGIN_SYSTEM_PATH
environment variables as advised by "guix package --search-paths".

Obviously it would be nice for this to work more seamlessly.  Comments
and suggestions welcome.

      Mark


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: [PATCH 1/3] gnu: Add grilo --]
[-- Type: text/x-patch, Size: 2820 bytes --]

From 4bdac7f9e1ffeec6e3a2b26d366bfe8d71cd5ae2 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Sat, 20 Jun 2015 19:34:50 -0400
Subject: [PATCH 1/3] gnu: Add grilo.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3342ed6..9dcfc17 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2686,3 +2686,54 @@ presentations, kiosk style applications and so on.")
 write applications that need to store structured data as well as make complex
 queries upon that data.")
     (license license:lgpl2.1+)))
+
+(define-public grilo
+  (package
+    (name "grilo")
+    (version "0.2.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "11bvc7rsrjjwz8hp67p3fn8zmywrpawrcbi3vgw8b0dwa0sndd2m"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")         ; for glib-mkenums and glib-genmarshal
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)
+       ;; XXX TODO: Add oauth
+       ("libsoup" ,libsoup)
+       ("totem-pl-parser" ,totem-pl-parser)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-introspection-install-dir
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (substitute* '("src/Makefile.in"
+                                       "libs/pls/Makefile.in"
+                                       "libs/net/Makefile.in")
+                          (("@INTROSPECTION_GIRDIR@")
+                           (string-append out "/share/gir-1.0/"))
+                          (("@INTROSPECTION_TYPELIBDIR@")
+                           (string-append out "/lib/girepository-1.0/")))))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "GRL_PLUGIN_PATH")
+            (files (list (string-append "lib/grilo-"
+                                        (version-major+minor version)))))))
+    (home-page "http://live.gnome.org/Grilo")
+    (synopsis "Framework for discovering and browsing media")
+    (description
+     "Grilo is a framework focused on making media discovery and browsing easy
+for application developers.")
+    (license license:lgpl2.1+)))
-- 
2.4.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: [PATCH 2/3] gnu: Add grilo-plugins --]
[-- Type: text/x-patch, Size: 3281 bytes --]

From ba786fa3d1d7896336dca3b364bb630142c30fa1 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Sat, 20 Jun 2015 21:09:54 -0400
Subject: [PATCH 2/3] gnu: Add grilo-plugins.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9dcfc17..fa24e83 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -34,6 +34,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cups)
@@ -57,6 +58,7 @@
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -2737,3 +2739,56 @@ queries upon that data.")
      "Grilo is a framework focused on making media discovery and browsing easy
 for application developers.")
     (license license:lgpl2.1+)))
+
+(define-public grilo-plugins
+  (package
+    (name "grilo-plugins")
+    (version "0.2.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1aykhc679pwn2qxsg19g8nh9hffpsqkgxcbqq7lcfn2hcwb83wfh"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")     ; for glib-mkenums and glib-genmarshal
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("grilo" ,grilo)
+       ("glib" ,glib)
+       ("libxml2" ,libxml2)
+       ("sqlite" ,sqlite)
+       ("gom" ,gom)
+       ;; XXX TODO: Add oauth
+       ;; XXX TODO: Add goa
+       ;; XXX TODO: Add gdata (e.g. needed for youtube plugin)
+       ;; XXX TODO: Add lua (needs help finding it)
+       ("json-glib" ,json-glib)
+       ("avahi" ,avahi)
+       ("gmime" ,gmime)
+       ("libsoup" ,libsoup)
+       ("libarchive" ,libarchive)
+       ("totem-pl-parser" ,totem-pl-parser)))
+    (arguments
+     `(#:make-flags (list (string-append "GRL_PLUGINS_DIR="
+                                         %output
+                                         "/lib/grilo-"
+                                         ,(version-major+minor version)))
+       ;; XXX FIXME: Investigate test failure:
+       ;;   TEST: test_apple_trailers... (pid=8718)
+       ;;     /apple-trailers/browse/count:
+       ;;   ERROR:test_apple_trailers.c:88:test_browse_count: assertion failed: (source)
+       ;;   FAIL
+       #:tests? #f))
+    (home-page "http://live.gnome.org/Grilo")
+    (synopsis "Framework for discovering and browsing media - Plugins")
+    (description
+     "Grilo is a framework focused on making media discovery and browsing easy
+for application developers.")
+    (license license:lgpl2.1+)))
-- 
2.4.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: [PATCH 3/3] gnu: Add totem --]
[-- Type: text/x-patch, Size: 3369 bytes --]

From 2bbcefc85149fa4d6b8513de26fc4ba749e4111b Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Sat, 20 Jun 2015 18:26:34 -0400
Subject: [PATCH 3/3] gnu: Add totem.

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

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fa24e83..308a7e2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -58,6 +58,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 lua)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
@@ -2792,3 +2793,66 @@ for application developers.")
      "Grilo is a framework focused on making media discovery and browsing easy
 for application developers.")
     (license license:lgpl2.1+)))
+
+(define-public totem
+  (package
+    (name "totem")
+    (version "3.16.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1nkm2i271ivq40hryrl6px39gbbvhmlx4vmvwvw4h3z8xh3013f9"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("desktop-file-utils" ,desktop-file-utils)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("atk" ,atk)
+       ("cairo" ,cairo)
+       ("dbus-glib" ,dbus-glib)
+       ("clutter" ,clutter)
+       ("clutter-gtk" ,clutter-gtk)
+       ("clutter-gst" ,clutter-gst)
+       ("xproto" ,xproto)
+       ("libxxf86vm" ,libxxf86vm)
+       ("libxtst" ,libxtst)
+       ("libxrandr" ,libxrandr)
+       ("libxml2" ,libxml2)
+       ("libsoup" ,libsoup)
+       ("libpeas" ,libpeas)
+       ("librsvg" ,librsvg)
+       ("lirc" ,lirc)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("dconf" ,dconf)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ;; XXX We use python-2 because libxml2 because itstool (which needs
+       ;; libxml) currently uses python-2.
+       ("python" ,python-2)
+       ("python-pygobject" ,python2-pygobject)
+       ;; XXX TODO pylint needed for python support
+       ("totem-pl-parser" ,totem-pl-parser)
+       ("grilo" ,grilo)
+       ("nettle" ,nettle)
+       ("vala" ,vala)))
+    (home-page "https://wiki.gnome.org/Apps/Videos")
+    (synopsis "Simple media player for GNOME based on GStreamer")
+    (description "Totem is a simple yet featureful media player for GNOME
+which can read a large number of file formats.")
+    ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
+    ;; to be used and distributed together with GStreamer and Totem.  See
+    ;; file://COPYING in the source distribution for details.
+    (license license:gpl2+)))
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 27+ messages in thread
* Re: How to handle required plugins and dbus services for GNOME Programs?
@ 2015-06-25  7:28 Federico Beffa
  2015-06-25 11:49 ` Ludovic Courtès
  0 siblings, 1 reply; 27+ messages in thread
From: Federico Beffa @ 2015-06-25  7:28 UTC (permalink / raw)
  To: ludo; +Cc: Guix-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Mark H Weaver <mhw@netris.org> skribis:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
>
> [...]
>
>> 'dconf' apparently needs to be in the profile for both GNOME Terminal
>> and Totem because of the session dbus service(s) it provides.  Without
>> it, modern GNOME programs behave quite badly.  They have no way to
>> access or change their own configuration settings, e.g. if you go into
>> their preferences, you see checkboxes that do not change their state
>> when clicked.
>
> Really?  In Evince, I can change the state of various things (such as
> whether or not to view documents continuously), but those changes are
> lost across restarts.  However, changes made via dconf-editor are not
> lost.  Weird no?

'dconf' is responsible for handling the program configuration. For
writes, it contacts D-Bus, for read it doesn't need D-Bus.

https://developer.gnome.org/dconf/0.22/dconf-overview.html

If 'dconf' is not available, the program reverts to a 'memory' back-end
and configuration is lost upon exit.

For this reason 'dconf' should be available to all GLib programs
(implicit input to 'glib-or-gtk-build-system'?).

Regards,
Fede

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

end of thread, other threads:[~2015-07-27 20:13 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-21  4:21 [PATCHES] Add totem Mark H Weaver
2015-06-22 19:24 ` Ludovic Courtès
2015-06-24  5:58   ` How to handle required plugins and dbus services for GNOME Programs? Mark H Weaver
2015-06-24 15:45     ` 宋文武
2015-06-25  4:07       ` Mark H Weaver
2015-06-25  7:42         ` 宋文武
2015-06-24 20:47     ` Ludovic Courtès
2015-06-25  5:00     ` David Hashe
2015-07-09  6:30     ` Mark H Weaver
2015-07-09 13:00       ` 宋文武
2015-07-10 21:24       ` Ludovic Courtès
2015-06-24  6:06   ` [PATCHES] Add totem Mark H Weaver
2015-06-24 20:21     ` Ludovic Courtès
  -- strict thread matches above, loose matches on Subject: below --
2015-06-25  7:28 How to handle required plugins and dbus services for GNOME Programs? Federico Beffa
2015-06-25 11:49 ` Ludovic Courtès
2015-06-25 12:16   ` Federico Beffa
2015-06-29 11:35     ` Ludovic Courtès
2015-06-30  6:52       ` Federico Beffa
2015-06-30 16:01         ` Mark H Weaver
2015-06-30 18:05           ` Federico Beffa
2015-06-30 19:28             ` Ludovic Courtès
2015-07-01 18:11               ` Federico Beffa
2015-07-23 18:16         ` Cook, Malcolm
2015-07-23 19:33           ` Federico Beffa
2015-07-24 18:41             ` Cook, Malcolm
2015-07-27 20:13               ` Federico Beffa
2015-06-25 14:34   ` Mark H Weaver

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).