gnu: linux-libre: Update to 4.1.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
index 34658e1..3882a7a 100644 (file)
@@ -8,6 +8,7 @@
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +39,7 @@
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages djvu)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages qt)  ; for libxkbcommon
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages texlive)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages mail)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages nettle)
@@ -171,6 +176,7 @@ The gnome-about program helps find which version of GNOME is installed.")
     (native-inputs
      `(("intltool" ,intltool)
        ("docbook-xml" ,docbook-xml-4.4)
+       ("python2-libxml2" ,python2-libxml2)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("pkg-config" ,pkg-config)
@@ -329,7 +335,7 @@ forgotten when the session ends.")
 (define-public evince
   (package
     (name "evince")
-    (version "3.6.1")
+    (version "3.16.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -337,7 +343,7 @@ forgotten when the session ends.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv"))))
+               "0c31pwfzfm5x036f018q31k33vl8xb96nbs0iiccsc1abc37bzq6"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags '("--disable-nautilus")
@@ -348,12 +354,18 @@ forgotten when the session ends.")
        #:tests? #f))
     (inputs
      `(("libspectre" ,libspectre)
-       ;; ("djvulibre" ,djvulibre)
+       ("djvulibre" ,djvulibre)
        ("ghostscript" ,ghostscript)
        ("poppler" ,poppler)
+       ("libtiff" ,libtiff)
+       ;; TODO:
+       ;;   Add libgxps for XPS support.
+       ;;   Build libkpathsea as a shared library for DVI support.
+       ;; ("libkpathsea" ,texlive-bin)
+       ("gnome-desktop" ,gnome-desktop)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("libgnome-keyring" ,libgnome-keyring)
-       ("gnome-icon-theme" ,gnome-icon-theme)
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
        ("itstool" ,itstool)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("atk" ,atk)
@@ -366,6 +378,7 @@ forgotten when the session ends.")
        ("shared-mime-info" ,shared-mime-info)
        ("dconf" ,dconf)
        ("libcanberra" ,libcanberra)
+       ("libsecret" ,libsecret)
 
        ;; For tests.
        ("dogtail" ,python2-dogtail)))
@@ -1845,6 +1858,40 @@ library.")
 library.")
     (license license:lgpl2.0+)))
 
+(define-public librest
+  (package
+    (name "librest")
+    (version "0.7.93")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/rest/"
+                                  (version-major+minor version)  "/"
+                                  "rest-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; tests require internet connection
+       #:configure-flags
+       '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
+    (native-inputs
+     `(("glib-mkenums" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     ;; rest-0.7.pc refers to all these.
+     `(("glib"    ,glib)
+       ("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)))
+    (home-page "http://www.gtk.org/")
+    (synopsis "RESTful web api query library")
+    (description
+     "This library was designed to make it easier to access web services that
+claim to be \"RESTful\".  It includes convenience wrappers for libsoup and
+libxml to ease remote use of the RESTful API.")
+    (license license:lgpl2.1+)))
+
 (define-public libsoup
   (package
     (name "libsoup")
@@ -2110,7 +2157,7 @@ output devices.")
 (define-public geoclue
   (package
     (name "geoclue")
-    (version "2.1.10")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
@@ -2119,7 +2166,7 @@ output devices.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0s0ws2bx5g1cbjamxmm448r4n4crha2fwpzm8zbx6cq6qslygmzi"))
+         "0inlqx0zar498fhi9hh92p2g4kp8qy3zdl4z3vw6bjwp9w6xx454"))
        (patches (list (search-patch "geoclue-config.patch")))))
     (build-system glib-or-gtk-build-system)
     (arguments
@@ -2358,15 +2405,17 @@ settings, themes, mouse settings, and startup of other daemons.")
    (native-inputs
     `(("intltool" ,intltool)
       ("glib" ,glib "bin")
+      ("gobject-introspection" ,gobject-introspection)
       ("pkg-config" ,pkg-config)))
-   (inputs
+   (propagated-inputs
     `(("glib" ,glib)
       ("gmime" ,gmime)
-      ("libarchive" ,libarchive)
+      ("libxml2" ,libxml2)))
+   (inputs
+    `(("libarchive" ,libarchive)
       ("libgcrypt" ,libgcrypt)
       ("nettle" ,nettle)
-      ("libsoup" ,libsoup)
-      ("libxml2" ,libxml2)))
+      ("libsoup" ,libsoup)))
    (home-page "https://projects.gnome.org/totem")
    (synopsis "Library to parse and save media playlists for GNOME")
    (description "Totem-pl-parser is a GObjects-based library to parse and save
@@ -2435,3 +2484,237 @@ which are easy to play with the aid of a mouse.")
 natively with GTK-Doc (the API reference system developed for GTK+ and used
 throughout GNOME for API documentation).")
     (license license:gpl2+)))
+
+(define-public cogl
+  (package
+    (name "cogl")
+    (version "1.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0aqrj7gc0x7v536vdycgn2i23fj3nx3qwdd3mwgx7rr9b14kb7kj"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")     ; for glib-mkenums
+       ("gobject-introspection" ,gobject-introspection)
+       ;;("xorg-server" ,xorg-server) ; for the test suite
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxfixes" ,libxfixes)
+       ("libxdamage" ,libxdamage)
+       ("libxcomposite" ,libxcomposite)
+       ("libxrandr" ,libxrandr)))
+    (inputs
+     `(("mesa" ,mesa)
+       ("cairo" ,cairo)
+       ("pango" ,pango)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (arguments
+     `(#:configure-flags (list "--enable-cogl-gst"
+                               ;; Arrange to pass an absolute file name to
+                               ;; dlopen for libGL.so.
+                               (string-append "--with-gl-libname="
+                                              (assoc-ref %build-inputs "mesa")
+                                              "/lib/libGL.so"))
+       ;; XXX FIXME: All tests fail, with many warnings printed like this:
+       ;;   _FontTransOpen: Unable to Parse address
+       ;;   ${prefix}/share/fonts/X11/misc/
+       #:tests? #f
+       #; #:phases
+       #;
+       (modify-phases %standard-phases
+         (add-before 'check 'start-xorg-server
+                     (lambda* (#:key inputs #:allow-other-keys)
+                       ;; The test suite requires a running X server.
+                       (system (format #f "~a/bin/Xvfb :1 &"
+                                       (assoc-ref inputs "xorg-server")))
+                       (setenv "DISPLAY" ":1")
+                       #t)))))
+    (home-page "http://www.cogl3d.org")
+    (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
+    (description
+     "Cogl is a small library for using 3D graphics hardware to draw pretty
+pictures.  The API departs from the flat state machine style of OpenGL and is
+designed to make it easy to write orthogonal components that can render
+without stepping on each others toes.")
+    (license (list license:expat       ; most of the code
+                   license:bsd-3       ; cogl/cogl-point-in-poly.c
+                   license:sgifreeb2.0 ; cogl-path/tesselator/
+                   license:asl2.0))))  ; examples/android/
+
+(define-public clutter
+  (package
+    (name "clutter")
+    (version "1.22.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")     ; for glib-genmarshal
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
+    (propagated-inputs
+     `(("cogl" ,cogl)
+       ("cairo" ,cairo)
+       ("atk" ,atk)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("glib" ,glib)
+       ("libxcomposite" ,libxcomposite)
+       ("libxdamage" ,libxdamage)
+       ("libxext" ,libxext)
+       ("xinput" ,xinput)))
+    (inputs
+     `(("libxkbcommon" ,libxkbcommon)
+       ("udev" ,eudev)))
+    (arguments
+     `(#:configure-flags '("--enable-x11-backend=yes")
+       ;; XXX FIXME: Get test suite working.  It would probably fail in the
+       ;; same way the cogl tests fail, since clutter is based on cogl.
+       #:tests? #f))
+    (home-page "http://www.clutter-project.org")
+    (synopsis "Open GL based interactive canvas library")
+    (description
+     "Clutter is an Open GL based interactive canvas library, designed for
+creating fast, mainly 2D single window applications such as media box UIs,
+presentations, kiosk style applications and so on.")
+    (license license:lgpl2.0+)))
+
+(define-public clutter-gtk
+  (package
+    (name "clutter-gtk")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0k93hbf5d1970hs7vjddr3nnngygc7mxqbj474r3cdm0fjsm0dc8"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("clutter" ,clutter)
+       ("gtk+" ,gtk+)))
+    (home-page "http://www.clutter-project.org")
+    (synopsis "Open GL based interactive canvas library GTK+ widget")
+    (description
+     "Clutter is an Open GL based interactive canvas library, designed for
+creating fast, mainly 2D single window applications such as media box UIs,
+presentations, kiosk style applications and so on.")
+    (license license:lgpl2.0+)))
+
+(define-public clutter-gst
+  (package
+    (name "clutter-gst")
+    (version "3.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0xnzfdzawl1kdx715gp31nwjp7a1kib094s7xvg7bhbwwlx4kmfn"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin")     ; for glib-mkenums
+       ("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("clutter" ,clutter)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (home-page "http://www.clutter-project.org")
+    (synopsis "Integration library for using GStreamer with Clutter")
+    (description
+     "Clutter-Gst is an integration library for using GStreamer with Clutter.
+It provides a GStreamer sink to upload frames to GL and an actor that
+implements the ClutterGstPlayer interface using playbin.  Clutter is an Open
+GL based interactive canvas library.")
+    (license license:lgpl2.0+)))
+
+(define-public gom
+  (package
+    (name "gom")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1x9qgviszzh59d009jd13k0pdxzv9w4dmwp3wszbsk3qxr3fnlbr"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("glib" ,glib)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("sqlite" ,sqlite)))
+    ;; XXX TODO: Figure out how to run the test suite.
+    (arguments `(#:tests? #f))
+    (home-page "https://wiki.gnome.org/Projects/Gom")
+    (synopsis "Object mapper from GObjects to SQLite")
+    (description
+     "Gom provides an object mapper from GObjects to SQLite.  It helps you
+write applications that need to store structured data as well as make complex
+queries upon that data.")
+    (license license:lgpl2.1+)))
+
+(define-public gnome-klotski
+  (package
+    (name "gnome-klotski")
+    (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
+                "0a64935c7pp51jhaf29q9zlx3lamj7zrhyff7clvv0w8v1w6gpax"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("librsvg" ,librsvg)))
+    (home-page "https://wiki.gnome.org/Apps/Klotski")
+    (synopsis "Sliding block puzzles")
+    (description
+     "GNOME Klotski is a set of block sliding puzzles.  The objective is to move
+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+)))