diff mbox

gnu: move freedesktop stuff to "freedesktop.scm", gtk stuff to "gtk.scm", gnome stuff to "gnome.scm"

Message ID 20160816231405.18812-1-dannym@scratchpost.org
State New
Headers show

Commit Message

Danny Milosavljevic Aug. 16, 2016, 11:14 p.m. UTC
gnu: move freedesktop stuff to "freedesktop.scm", gtk stuff  to "gtk.scm", gnome stuff to "gnome.scm"

* gnu/packages/gnome.scm (libcroco, json-glib, libxklavier): Move variables from here...
* gnu/packages/glib.scm (libcroco, json-glib, libxklavier): ... to here.

* gnu/packages/gnome.scm (desktop-file-utils, shared-mime-info, hicolor-icon-theme, upower): Move variables from here...
* gnu/packages/freedesktop.scm (desktop-file-utils, shared-mime-info, hicolor-icon-theme, upower): ... to here.

* gnu/packages/gnome.scm (librsvg, libglade, gtkglext, glade3, vala, libgsf, libnotify, libwnck, libwnck-2, vte, vte-0.36, vte/gtk+-2): Move variables from here...
* gnu/packages/gtk.scm (librsvg, libglade, gtkglext, glade3, vala, libgsf, libnotify, libwnck, libwnck-2, vte, vte-0.36, vte/gtk+-2): ... to here.

* gnu/packages/gtk.scm (guile-gnome): Move variables from here...
* gnu/packages/gnome.scm (guile-gnome): ... to here.

* gnu/packages/gnome.scm (libgudev): Move variables from here...
* gnu/packages/linux.scm (libgudev): ... to here.

* gnu/packages/engineering.scm: Remove gnome import, add freedesktop import.
* gnu/packages/games.scm: Remove gnome import.

* gnu/packages/fvwm.scm: Use gtk instead of gnome import.
* gnu/packages/game-development.scm: Use freedesktop instead of gnome import.
* gnu/packages/games.scm: Remove gnome import.
* gnu/packages/maths.scm: Add freedesktop import.
* gnu/packages/mail.scm: Add freedesktop import.
* gnu/packages/wv.scm: Use gtk instead of gnome import.
* gnu/packages/xfce.scm: Use freedesktop import instead of gnome import.
* gnu/packages/gnome.scm: Add freedesktop import.
* gnu/packages/freedesktop.scm (upower): Use gnu-build-system instead of glib-or-gtk-build-system.
* gnu/packages/freedesktop.scm: Add (gnu packages) import. Add (gnu packages libusb) import.
* gnu/packages/gnustep.scm: Add (gnu packages freedesktop) import.
* gnu/packages/gtk.scm: Add (gnu packages tls) import. Add (gnu packages ncurses) import.
* gnu/packages/gtk.scm: Add (gnu packages iso-codes) import.
* gnu/packages/wicd.scm: Add (gnu packages freedesktop) import. Remove gnome import.
* gnu/packages/linux.scm: Add (gnu packages iso-codes) import.
* gnu/packages/xfce.scm (xfce): Remove gnome-icon-theme propagated input.
---
 gnu/packages/engineering.scm      |   2 +-
 gnu/packages/freedesktop.scm      | 142 ++++++++
 gnu/packages/fvwm.scm             |   2 +-
 gnu/packages/game-development.scm |   2 +-
 gnu/packages/games.scm            |   1 -
 gnu/packages/glib.scm             | 107 ++++++
 gnu/packages/gnome.scm            | 720 +++-----------------------------------
 gnu/packages/gnustep.scm          |   1 +
 gnu/packages/gtk.scm              | 452 +++++++++++++++++++++---
 gnu/packages/linux.scm            |  28 ++
 gnu/packages/mail.scm             |   1 +
 gnu/packages/maths.scm            |   1 +
 gnu/packages/wicd.scm             |   2 +-
 gnu/packages/wv.scm               |   2 +-
 gnu/packages/xfce.scm             |   2 +-
 15 files changed, 739 insertions(+), 726 deletions(-)
diff mbox

Patch

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index f6c3d5f..af5c7e6 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -37,12 +37,12 @@ 
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gd)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages linux)               ;FIXME: for pcb
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 0262d0a..dcabc45 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -29,9 +29,11 @@ 
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages python)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages gettext)
@@ -625,3 +627,143 @@  different sorts of messages in different formats.")
 useful for both applications which need colour management and applications that
 wish to perform colour calibration.")
     (license license:lgpl2.1+)))
+
+(define-public desktop-file-utils
+  (package
+    (name "desktop-file-utils")
+    (version "0.22")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.freedesktop.org/software/" name
+                                  "/releases/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1ianvr2a69yjv4rpyv30w7yjsmnsb23crrka5ndqxycj4rkk4dc4"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)))
+    (home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/")
+    (synopsis "Utilities for working with desktop entries")
+    (description
+     "This package contains a few command line utilities for working with
+desktop entries:
+
+desktop-file-validate: validates a desktop file and prints warnings/errors
+                       about desktop entry specification violations.
+
+desktop-file-install: installs a desktop file to the applications directory,
+                      optionally munging it a bit in transit.
+
+update-desktop-database: updates the database containing a cache of MIME types
+                         handled by desktop files.")
+    (license license:gpl2+)))
+
+(define-public shared-mime-info
+  (package
+    (name "shared-mime-info")
+    (version "1.6")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://freedesktop.org/~hadess/"
+                                 "shared-mime-info-" version ".tar.xz"))
+             (sha256
+              (base32
+               "0k637g047gci8g69bg4g19akylpfraxm40hd30j3i4v7cidziy5j"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; The build system appears not to be parallel-safe.
+     '(#:parallel-build? #f))
+    (inputs
+     `(("glib" ,glib)
+       ("libxml2" ,libxml2)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "http://freedesktop.org/wiki/Software/shared-mime-info")
+    (synopsis "Database of common MIME types")
+    (description
+     "The shared-mime-info package contains the core database of common types
+and the update-mime-database command used to extend it.  It requires glib2 to
+be installed for building the update command.  Additionally, it uses intltool
+for translations, though this is only a dependency for the maintainers.  This
+database is translated at Transifex.")
+    (license license:gpl2+)))
+
+(define-public hicolor-icon-theme
+  (package
+    (name "hicolor-icon-theme")
+    (version "0.12")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://icon-theme.freedesktop.org/releases/"
+                          "hicolor-icon-theme-" version ".tar.gz"))
+      (sha256
+       (base32
+        "0wzc7g4ldb2l8zc0x2785ck808c03i857jji942ikakyc68adp4y"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f)) ; no check target
+    (home-page "http://icon-theme.freedesktop.org/releases/")
+    (synopsis
+     "Freedesktop icon theme")
+    (description
+     "Freedesktop icon theme.")
+    (license license:gpl2)))
+
+(define-public upower
+  (package
+    (name "upower")
+    (version "0.99.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://upower.freedesktop.org/releases/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9"))
+              (patches (search-patches "upower-builddir.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     '( ;; The tests want to contact the system bus, which can't be done in the
+       ;; build environment.  The integration test can run, but the last of
+       ;; the up-self-tests doesn't.  Disable tests for now.
+       #:tests? #f
+       #:configure-flags (list "--localstatedir=/var"
+                               (string-append "--with-udevrulesdir="
+                                              (assoc-ref %outputs "out")
+                                              "/lib/udev/rules.d"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-/bin/true
+                     (lambda _
+                       (substitute* "configure"
+                         (("/bin/true") (which "true")))))
+         (add-before 'configure 'patch-integration-test
+                     (lambda _
+                       (substitute* "src/linux/integration-test"
+                         (("/usr/bin/python3") (which "python3"))))))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("python" ,python)
+
+       ;; For man pages.
+       ("libxslt" ,libxslt)                       ;for 'xsltproc'
+       ("libxml2" ,libxml2)                       ;for 'XML_CATALOG_FILES'
+       ("docbook-xsl" ,docbook-xsl)))
+    (inputs
+     `(("dbus-glib" ,dbus-glib)
+       ("libgudev" ,libgudev)
+       ("libusb" ,libusb)))
+    (home-page "http://upower.freedesktop.org/")
+    (synopsis "System daemon for managing power devices")
+    (description
+     "UPower is an abstraction for enumerating power devices,
+listening to device events and querying history and statistics.  Any
+application or service on the system can access the org.freedesktop.UPower
+service via the system message bus.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/fvwm.scm b/gnu/packages/fvwm.scm
index 933820e..a177979 100644
--- a/gnu/packages/fvwm.scm
+++ b/gnu/packages/fvwm.scm
@@ -23,7 +23,7 @@ 
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages fribidi)
-  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 0bfd0c5..1c62f5f 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -57,7 +57,7 @@ 
   #:use-module (gnu packages image)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages pulseaudio)
-  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 96aefbc..31e5d57 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -63,7 +63,6 @@ 
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index a85a565..808a093 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -35,6 +35,7 @@ 
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -659,3 +660,109 @@  many applications simultaneously.
 
 This package provides the library for GLib applications.")
     (license license:lgpl2.1+)))
+
+(define-public libcroco
+  (package
+    (name "libcroco")
+    (version "0.6.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("libxml2" ,libxml2)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/GNOME/libcroco")
+    (synopsis "CSS2 parsing and manipulation library")
+    (description
+     "Libcroco is a standalone CSS2 parsing and manipulation library.
+The parser provides a low level event driven SAC-like API and a CSS object
+model like API.  Libcroco provides a CSS2 selection engine and an experimental
+XML/CSS rendering engine.")
+
+    ;; LGPLv2.1-only.
+    (license license:lgpl2.1)))
+
+(define-public json-glib
+  (package
+    (name "json-glib")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1lx7p1c7cl21byvfgw92n8dhm09vi6qxrs0zkx9dg3y096zdzmlr"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Don't duplicate test names.
+               ;; <https://bugzilla.gnome.org/show_bug.cgi?id=755977>.
+               '(substitute* "json-glib/tests/builder.c"
+                  (("\"/builder/complex\", test_builder_empty")
+                   "\"/builder/empty\", test_builder_empty")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib" ,glib "bin")              ;for glib-mkenums and glib-genmarshal
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib)))                         ;according to json-glib-1.0.pc
+    (home-page "https://wiki.gnome.org/Projects/JsonGlib")
+    (synopsis "Compiler for the GObject type system")
+    (description
+     "JSON-GLib is a C library based on GLib providing serialization and
+deserialization support for the JavaScript Object Notation (JSON) format
+described by RFC 4627.  It provides parser and generator GObject classes and
+various wrappers for the complex data types employed by JSON, such as arrays
+and objects.")
+    (license license:lgpl2.1+)))
+
+(define-public libxklavier
+  (package
+    (name "libxklavier")
+    (version "5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  version "/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "016lpdv35z0qsw1cprdc2k5qzkdi5waj6qmr0a2q6ljn9g2kpv7b"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       (list (string-append "--with-xkb-base="
+                            (assoc-ref %build-inputs "xkeyboard-config")
+                            "/share/X11/xkb"))))
+    (native-inputs
+     `(("glib:bin"              ,glib "bin") ; for glib-mkenums, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config"            ,pkg-config)))
+    (propagated-inputs
+     ;; Required by libxklavier.pc.
+     `(("glib"    ,glib)
+       ("libxml2" ,libxml2)))
+    (inputs
+     `(("iso-codes"        ,iso-codes)
+       ("libxi"            ,libxi)
+       ("libxkbfile"       ,libxkbfile)
+       ("xkbcomp"          ,xkbcomp)
+       ("xkeyboard-config" ,xkeyboard-config)))
+    (home-page "http://www.freedesktop.org/wiki/Software/LibXklavier/")
+    (synopsis "High-level API for X Keyboard Extension")
+    (description
+     "LibXklavier is a library providing high-level API for X Keyboard
+Extension known as XKB.  This library is intended to support XFree86 and other
+commercial X servers.  It is useful for creating XKB-related software (layout
+indicators etc).")
+    (license license:lgpl2.0+)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4a0be01..111404b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -64,6 +64,7 @@ 
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -116,6 +117,7 @@ 
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages fonts)
   #:use-module (srfi srfi-1))
 
@@ -591,38 +593,6 @@  Specification, the icon naming utility maps the icon names used by the
 GNOME and KDE desktops to the icon names proposed in the specification.")
     (license license:lgpl2.1+)))
 
-(define-public desktop-file-utils
-  (package
-    (name "desktop-file-utils")
-    (version "0.22")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.freedesktop.org/software/" name
-                                  "/releases/" name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1ianvr2a69yjv4rpyv30w7yjsmnsb23crrka5ndqxycj4rkk4dc4"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("glib" ,glib)))
-    (home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/")
-    (synopsis "Utilities for working with desktop entries")
-    (description
-     "This package contains a few command line utilities for working with
-desktop entries:
-
-desktop-file-validate: validates a desktop file and prints warnings/errors
-                       about desktop entry specification violations.
-
-desktop-file-install: installs a desktop file to the applications directory,
-                      optionally munging it a bit in transit.
-
-update-desktop-database: updates the database containing a cache of MIME types
-                         handled by desktop files.")
-    (license license:gpl2+)))
-
 (define-public gnome-icon-theme
   (package
     (name "gnome-icon-theme")
@@ -663,92 +633,6 @@  update-desktop-database: updates the database containing a cache of MIME types
                (base32
                 "0ddfwwqx8s63qbqimmbb015lqsab4s0rvy1j81jdsh7k95rqh2ks"))))))
 
-(define-public shared-mime-info
-  (package
-    (name "shared-mime-info")
-    (version "1.6")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "https://freedesktop.org/~hadess/"
-                                 "shared-mime-info-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0k637g047gci8g69bg4g19akylpfraxm40hd30j3i4v7cidziy5j"))))
-    (build-system gnu-build-system)
-    (arguments
-     ;; The build system appears not to be parallel-safe.
-     '(#:parallel-build? #f))
-    (inputs
-     `(("glib" ,glib)
-       ("libxml2" ,libxml2)))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
-    (home-page "http://freedesktop.org/wiki/Software/shared-mime-info")
-    (synopsis "Database of common MIME types")
-    (description
-     "The shared-mime-info package contains the core database of common types
-and the update-mime-database command used to extend it.  It requires glib2 to
-be installed for building the update command.  Additionally, it uses intltool
-for translations, though this is only a dependency for the maintainers.  This
-database is translated at Transifex.")
-    (license license:gpl2+)))
-
-(define-public hicolor-icon-theme
-  (package
-    (name "hicolor-icon-theme")
-    (version "0.12")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "https://icon-theme.freedesktop.org/releases/"
-                          "hicolor-icon-theme-" version ".tar.gz"))
-      (sha256
-       (base32
-        "0wzc7g4ldb2l8zc0x2785ck808c03i857jji942ikakyc68adp4y"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f)) ; no check target
-    (home-page "http://icon-theme.freedesktop.org/releases/")
-    (synopsis
-     "Freedesktop icon theme")
-    (description
-     "Freedesktop icon theme.")
-    (license license:gpl2)))
-
-(define-public libnotify
-  (package
-    (name "libnotify")
-    (version "0.7.6")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "0dyq8zgjnnzcah31axnx6afb21kl7bks1gvrg4hjh3nk02j1rxhf"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("libpng" ,libpng)))
-    (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("glib" ,glib "bin")
-        ("gobject-introspection" ,gobject-introspection)))
-    (home-page "https://developer-next.gnome.org/libnotify/")
-    (synopsis
-     "GNOME desktop notification library")
-    (description
-     "Libnotify is a library that sends desktop notifications to a
-notification daemon, as defined in the Desktop Notifications spec.  These
-notifications can be used to inform the user about an event or display
-some form of information without getting in the user's way.")
-    (license license:lgpl2.1+)))
-
 (define-public libpeas
   (package
     (name "libpeas")
@@ -784,192 +668,6 @@  demand (lazy) programming language support for C, Python and JS; simplicity of
 the API.")
     (license license:lgpl2.0+)))
 
-(define-public gtkglext
-  (package
-    (name "gtkglext")
-    (version "1.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
-                                  version "/gtkglext-" version ".tar.gz"))
-              (sha256
-               (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
-              (patches (search-patches
-                        "gtkglext-disable-disable-deprecated.patch"))))
-    (build-system gnu-build-system)
-    (inputs `(("gtk+" ,gtk+-2)
-              ("mesa" ,mesa)
-              ("glu" ,glu)
-              ("libx11" ,libx11)
-              ("libxt" ,libxt)))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("glib" ,glib "bin")))
-    (propagated-inputs `(("pangox-compat" ,pangox-compat)))
-    (home-page "https://projects.gnome.org/gtkglext")
-    (synopsis "OpenGL extension to GTK+")
-    (description "GtkGLExt is an OpenGL extension to GTK+.  It provides
-additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
-API add-ons to make GTK+ widgets OpenGL-capable.")
-    (license license:lgpl2.1+)))
-
-(define-public glade3
-  (package
-    (name "glade")
-    (version "3.20.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1zhqvhagy0m85p54jfiayfl0v9af7g0lj7glw8sfwh7cbp56vnc2"))))
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     `(#:tests? #f ; needs X, GL, and software rendering
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'fix-docbook
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "man/Makefile.in"
-               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
-                (string-append (assoc-ref inputs "docbook-xsl")
-                               "/xml/xsl/docbook-xsl-"
-                               ,(package-version docbook-xsl)
-                               "/manpages/docbook.xsl")))
-             #t)))))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("libxml2" ,libxml2)))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("libxslt" ,libxslt) ;for xsltproc
-       ("docbook-xml" ,docbook-xml-4.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("python" ,python-2)
-       ("pkg-config" ,pkg-config)))
-    (home-page "https://glade.gnome.org")
-    (synopsis "GTK+ rapid application development tool")
-    (description "Glade is a rapid application development (RAD) tool to
-enable quick & easy development of user interfaces for the GTK+ toolkit and
-the GNOME desktop environment.")
-    (license license:lgpl2.0+)))
-
-(define-public libcroco
-  (package
-    (name "libcroco")
-    (version "0.6.11")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("glib" ,glib)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
-    (home-page "https://github.com/GNOME/libcroco")
-    (synopsis "CSS2 parsing and manipulation library")
-    (description
-     "Libcroco is a standalone CSS2 parsing and manipulation library.
-The parser provides a low level event driven SAC-like API and a CSS object
-model like API.  Libcroco provides a CSS2 selection engine and an experimental
-XML/CSS rendering engine.")
-
-    ;; LGPLv2.1-only.
-    (license license:lgpl2.1)))
-
-(define-public libgsf
-  (package
-    (name "libgsf")
-    (version "1.14.36")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0h19ssxzz0cmznwga2xy55kjibm24mwxqarnpd0w7xy0hrzm1dvi"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("python" ,python)
-       ("zlib" ,zlib)
-       ("bzip2" ,bzip2)))
-    (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("libxml2" ,libxml2)))
-    (home-page "http://www.gnome.org/projects/libgsf")
-    (synopsis "GNOME's Structured File Library")
-    (description
-     "Libgsf aims to provide an efficient extensible I/O abstraction for
-dealing with different structured file formats.")
-
-    ;; LGPLv2.1-only.
-    (license license:lgpl2.1)))
-
-(define-public librsvg
-  (package
-    (name "librsvg")
-    (version "2.40.15")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1x05vd2llpmskq3prkp7kbpmshmpp9whj4kfl99ybipf4fhw9jnr"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (alist-cons-before
-        'configure 'pre-configure
-        (lambda* (#:key inputs #:allow-other-keys)
-          (substitute* "gdk-pixbuf-loader/Makefile.in"
-            ;; By default the gdk-pixbuf loader is installed under
-            ;; gdk-pixbuf's prefix.  Work around that.
-            (("gdk_pixbuf_moduledir = .*$")
-             (string-append "gdk_pixbuf_moduledir = "
-                            "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
-                             "loaders\n"))
-            ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
-            (("gdk_pixbuf_cache_file = .*$")
-             "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n")))
-        %standard-phases)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
-    (inputs
-     `(("pango" ,pango)
-       ("libcroco" ,libcroco)
-       ("bzip2" ,bzip2)
-       ("libgsf" ,libgsf)
-       ("libxml2" ,libxml2)))
-    (propagated-inputs
-     ;; librsvg-2.0.pc refers to all of that.
-     `(("cairo" ,cairo)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)))
-    (home-page "https://wiki.gnome.org/LibRsvg")
-    (synopsis "Render SVG files using Cairo")
-    (description
-     "Librsvg is a C library to render SVG files using the Cairo 2D graphics
-library.")
-    (license license:lgpl2.0+)))
-
 (define-public libidl
   (package
     (name "libidl")
@@ -1340,33 +1038,6 @@  applications.  Many of the widgets from libgnomeui have already been
 ported to GTK+.")
     (license license:lgpl2.0+)))
 
-(define-public libglade
-  (package
-    (name "libglade")
-    (version "2.6.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("python" ,python))) ;; needed for the optional libglade-convert program
-    (propagated-inputs
-     `(("gtk+-2" ,gtk+-2)
-       ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "https://developer.gnome.org/libglade")
-    (synopsis "Load glade interfaces and access the glade built widgets")
-    (description "Libglade is a library that provides interfaces for loading
-graphical interfaces described in glade files and for accessing the
-widgets built in the loading process.")
-    (license license:gpl2+))) ; This is correct.  GPL not LGPL
-
 (define-public libgnomeprint
   ;; This library has been deprecated since 2006; see
   ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
@@ -1474,52 +1145,6 @@  since ca. 2006, when GTK+ itself incorporated printing support.")
 controls using the Bonobo component framework.")
     (license license:lgpl2.0+)))
 
-(define-public libwnck
-  (package
-    (name "libwnck")
-    (version "3.14.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32 "1ymya8gkjygvg0i901wr3q6ihfqxx5yf4g4pb6fag2iw8af3qr5v"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
-    (propagated-inputs
-     `(("gtk+" ,gtk+)
-       ("libxres" ,libxres)
-       ("startup-notification" ,startup-notification)))
-    (home-page "https://developer.gnome.org/libwnck/")
-    (synopsis "Window Navigator Construction Kit")
-    (description
-     "Libwnck is the Window Navigator Construction Kit, a library for use in
-writing pagers, tasklists, and more generally applications that are dealing
-with window management.  It tries hard to respect the Extended Window Manager
-Hints specification (EWMH).")
-    (license license:lgpl2.0+)))
-
-;; stable version for gtk2, required by xfwm4.
-(define-public libwnck-2
-  (package (inherit libwnck)
-    (name "libwnck")
-    (version "2.30.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
-    (propagated-inputs
-     `(("gtk+" ,gtk+-2)
-       ("libxres" ,libxres)
-       ("startup-notification" ,startup-notification)))))
-
 (define-public goffice
   (package
     (name "goffice")
@@ -1710,88 +1335,6 @@  engineering.")
 passwords in the GNOME keyring.")
     (license license:gpl2+)))
 
-(define-public vala
-  (package
-    (name "vala")
-    (version "0.32.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0vpvq403vdd25irvgk7zibz3nw4x4i17m0dgnns8j1q4vr7am8h7"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'pre-check
-                     (lambda _
-                       (setenv "CC" "gcc")
-                       ;; For missing '/etc/machine-id'.
-                       (setenv "DBUS_FATAL_WARNINGS" "0")
-                       #t)))
-       ;; Build the Vala API generator
-       #:configure-flags '("--enable-vapigen")))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("flex" ,flex)
-       ("bison" ,bison)
-       ("xsltproc" ,libxslt)
-       ("dbus" ,dbus)                                     ; for dbus tests
-       ("gobject-introspection" ,gobject-introspection))) ; for gir tests
-    (propagated-inputs
-     `(("glib" ,glib))) ; required by libvala-0.26.pc
-    (home-page "http://live.gnome.org/Vala/")
-    (synopsis "Compiler for the GObject type system")
-    (description
-     "Vala is a programming language that aims to bring modern programming
-language features to GNOME developers without imposing any additional runtime
-requirements and without using a different ABI compared to applications and
-libraries written in C.")
-    (license license:lgpl2.1+)))
-
-(define-public vte
-  (package
-    (name "vte")
-    (version "0.44.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0kjxzqcwqxky0l7bl8ydn9hl6fm1f0k2pl91wbbhyq4z6d4dabbi"))))
-    (build-system gnu-build-system)
-    (arguments
-     ;; XXX: fails to compile tests with the default flags.
-     ;; vteconv.cc:774:40:
-     ;;    error: missing sentinel in function call [-Werror=format=]
-     ;;    g_test_init (&argc, &argv, NULL);
-     ;;
-     ;; cc1plus: some warnings being treated as errors
-     '(#:configure-flags '("CXXFLAGS=-Wformat=0")))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("vala" ,vala)
-       ("gobject-introspection" ,gobject-introspection)
-       ("glib" ,glib "bin") ; for glib-genmarshal, etc.
-       ("xmllint" ,libxml2)))
-    (propagated-inputs
-     `(("gtk+" ,gtk+)                             ;required by vte-2.91.pc
-       ("gnutls" ,gnutls)))                       ;ditto
-    (home-page "http://www.gnome.org/")
-    (synopsis "Virtual Terminal Emulator")
-    (description
-     "VTE is a library (libvte) implementing a terminal emulator widget for
-GTK+, and a minimal sample application (vte) using that.  Vte is mainly used in
-gnome-terminal, but can also be used to embed a console/terminal in games,
-editors, IDEs, etc.")
-    (license license:lgpl2.1+)))
-
 (define-public vte-ng
   (package
     (inherit vte)
@@ -1825,53 +1368,6 @@  editors, IDEs, etc.")
 GTK+, this fork provides additional functions exposed for keyboard text
 selection and URL hints.")))
 
-;; provides vte 2.90, required for some terminal emulators
-;; tilda bug: https://github.com/lanoxx/tilda/issues/94
-;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
-;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
-;; pantheon-terminal, roxterm are not currently packaged
-(define-public vte-0.36
-  (package (inherit vte)
-    (name "vte")
-    (version "0.36.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
-    (propagated-inputs
-     `(("gtk" ,gtk+)
-       ("ncurses" ,ncurses)))))
-
-;; stable version for gtk2, required by xfce4-terminal.
-(define-public vte/gtk+-2
-  (package (inherit vte)
-    (name "vte")
-    (version "0.28.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
-              (patches (search-patches
-                         "vte-CVE-2012-2738-pt1.patch"
-                         "vte-CVE-2012-2738-pt2.patch"))))
-    (arguments
-     '(#:configure-flags '("--disable-python")))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("glib" ,glib "bin")))   ; for glib-genmarshal, etc.
-    (propagated-inputs
-     `(("gtk+" ,gtk+-2)         ; required by libvte.pc
-       ("ncurses" ,ncurses))))) ; required by libvte.la
-
 (define-public dconf
   (package
     (name "dconf")
@@ -1926,82 +1422,6 @@  is to provide a backend to GSettings on platforms that don't already have
 configuration storage systems.")
     (license license:lgpl2.1)))
 
-(define-public json-glib
-  (package
-    (name "json-glib")
-    (version "1.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1lx7p1c7cl21byvfgw92n8dhm09vi6qxrs0zkx9dg3y096zdzmlr"))
-              (modules '((guix build utils)))
-              (snippet
-               ;; Don't duplicate test names.
-               ;; <https://bugzilla.gnome.org/show_bug.cgi?id=755977>.
-               '(substitute* "json-glib/tests/builder.c"
-                  (("\"/builder/complex\", test_builder_empty")
-                   "\"/builder/empty\", test_builder_empty")))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("glib" ,glib "bin")              ;for glib-mkenums and glib-genmarshal
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     `(("glib" ,glib)))                         ;according to json-glib-1.0.pc
-    (home-page "https://wiki.gnome.org/Projects/JsonGlib")
-    (synopsis "Compiler for the GObject type system")
-    (description
-     "JSON-GLib is a C library based on GLib providing serialization and
-deserialization support for the JavaScript Object Notation (JSON) format
-described by RFC 4627.  It provides parser and generator GObject classes and
-various wrappers for the complex data types employed by JSON, such as arrays
-and objects.")
-    (license license:lgpl2.1+)))
-
-(define-public libxklavier
-  (package
-    (name "libxklavier")
-    (version "5.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  version "/" name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "016lpdv35z0qsw1cprdc2k5qzkdi5waj6qmr0a2q6ljn9g2kpv7b"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:configure-flags
-       (list (string-append "--with-xkb-base="
-                            (assoc-ref %build-inputs "xkeyboard-config")
-                            "/share/X11/xkb"))))
-    (native-inputs
-     `(("glib:bin"              ,glib "bin") ; for glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config"            ,pkg-config)))
-    (propagated-inputs
-     ;; Required by libxklavier.pc.
-     `(("glib"    ,glib)
-       ("libxml2" ,libxml2)))
-    (inputs
-     `(("iso-codes"        ,iso-codes)
-       ("libxi"            ,libxi)
-       ("libxkbfile"       ,libxkbfile)
-       ("xkbcomp"          ,xkbcomp)
-       ("xkeyboard-config" ,xkeyboard-config)))
-    (home-page "http://www.freedesktop.org/wiki/Software/LibXklavier/")
-    (synopsis "High-level API for X Keyboard Extension")
-    (description
-     "LibXklavier is a library providing high-level API for X Keyboard
-Extension known as XKB.  This library is intended to support XFree86 and other
-commercial X servers.  It is useful for creating XKB-related software (layout
-indicators etc).")
-    (license license:lgpl2.0+)))
-
 (define-public python2-rsvg
   ;; XXX: This is actually a subset of gnome-python-desktop.
   (package
@@ -2501,61 +1921,6 @@  coordinates) using the Nominatim service.  geocode-glib caches requests for
 faster results and to avoid unnecessary server load.")
     (license license:lgpl2.0+)))
 
-(define-public upower
-  (package
-    (name "upower")
-    (version "0.99.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://upower.freedesktop.org/releases/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9"))
-              (patches (search-patches "upower-builddir.patch"))))
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     '( ;; The tests want to contact the system bus, which can't be done in the
-       ;; build environment.  The integration test can run, but the last of
-       ;; the up-self-tests doesn't.  Disable tests for now.
-       #:tests? #f
-       #:configure-flags (list "--localstatedir=/var"
-                               (string-append "--with-udevrulesdir="
-                                              (assoc-ref %outputs "out")
-                                              "/lib/udev/rules.d"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-/bin/true
-                     (lambda _
-                       (substitute* "configure"
-                         (("/bin/true") (which "true")))))
-         (add-before 'configure 'patch-integration-test
-                     (lambda _
-                       (substitute* "src/linux/integration-test"
-                         (("/usr/bin/python3") (which "python3"))))))))
-    (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)
-       ("python" ,python)
-
-       ;; For man pages.
-       ("libxslt" ,libxslt)                       ;for 'xsltproc'
-       ("libxml2" ,libxml2)                       ;for 'XML_CATALOG_FILES'
-       ("docbook-xsl" ,docbook-xsl)))
-    (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("libgudev" ,libgudev)
-       ("libusb" ,libusb)))
-    (home-page "http://upower.freedesktop.org/")
-    (synopsis "System daemon for managing power devices")
-    (description
-     "UPower is an abstraction for enumerating power devices,
-listening to device events and querying history and statistics.  Any
-application or service on the system can access the org.freedesktop.UPower
-service via the system message bus.")
-    (license license:gpl2+)))
-
 (define-public libgweather
   (package
     (name "libgweather")
@@ -3398,33 +2763,6 @@  supports playlists, song ratings, and any codecs installed through gstreamer.")
 supports image conversion, rotation, and slideshows.")
    (license license:gpl2+)))
 
-(define-public libgudev
-  (package
-    (name "libgudev")
-    (version "230")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  version "/" name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "063w6j35n0i0ssmv58kivc1mw4070z6fzb83hi4xfrhcxnn7zrx2"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     `(("glib" ,glib))) ; required by gudev-1.0.pc
-    (inputs
-     `(("udev" ,eudev)))
-    (home-page "https://wiki.gnome.org/Projects/libgudev")
-    (synopsis "GObject bindings for libudev")
-    (description
-     "This library provides GObject bindings for libudev.  It was originally
-part of udev-extras, then udev, then systemd.  It's now a project on its own.")
-    (license license:lgpl2.1+)))
-
 (define-public gvfs
   (package
     (name "gvfs")
@@ -5420,3 +4758,57 @@  GLib/GObject code.")
      "Libgnomekbd is a keyboard configuration library for the GNOME desktop
 environment, which can notably display keyboard layouts.")
     (license license:lgpl2.0+)))
+
+(define-public guile-gnome
+   (package
+    (name "guile-gnome")
+    (version "2.16.4")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "mirror://gnu/" name
+                              "/guile-gnome-platform/guile-gnome-platform-"
+                              version ".tar.gz"))
+             (sha256
+              (base32
+               "1hqnqbb2lmr3hgbcv9kds1himn3av6h0lkk0zll8agcrsn7d9axd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("atk" ,atk)
+       ;;("corba" ,corba) ; not packaged yet
+       ("gconf" ,gconf)
+       ("gobject-introspection" ,gobject-introspection)
+       ;;("gthread" ,gthread) ; not packaged yet
+       ("gnome-vfs" ,gnome-vfs)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gtk+" ,gtk+-2)
+       ("libglade" ,libglade)
+       ("libgnome" ,libgnome)
+       ("libgnomecanvas" ,libgnomecanvas)
+       ("libgnomeui" ,libgnomeui)
+       ("pango" ,pango)
+       ("libffi" ,libffi)
+       ("glib" ,glib)))
+    (inputs `(("guile" ,guile-2.0)))
+    (propagated-inputs
+     `(("guile-cairo" ,guile-cairo)
+       ("g-wrap" ,g-wrap)
+       ("guile-lib" ,guile-lib)))
+    (arguments
+      `(#:tests? #f                               ;FIXME
+        #:phases (modify-phases %standard-phases
+                   (add-before 'configure 'pre-configure
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (let ((out (assoc-ref outputs "out")))
+                         (substitute* (find-files "." "^Makefile.in$")
+                           (("guilesite :=.*guile/site" all)
+                            (string-append all "/2.0")))
+                         #t))))))
+    (outputs '("out" "debug"))
+    (synopsis "Guile interface for GTK+ programming for GNOME")
+    (description
+     "Includes guile-clutter, guile-gnome-gstreamer,
+guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
+    (home-page "http://www.gnu.org/software/guile-gnome/")
+    (license license:gpl2+)))
diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm
index 6c52286..08a9db6 100644
--- a/gnu/packages/gnustep.scm
+++ b/gnu/packages/gnustep.scm
@@ -29,6 +29,7 @@ 
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config))
 
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 8feac11..74bc9bd 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -37,28 +37,33 @@ 
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system waf)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnome)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages xml)
@@ -341,6 +346,48 @@  printing and other features typical of a source code editor.")
     (license license:lgpl2.0+)
     (home-page "https://developer.gnome.org/gtksourceview/")))
 
+(define-public vala
+  (package
+    (name "vala")
+    (version "0.32.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0vpvq403vdd25irvgk7zibz3nw4x4i17m0dgnns8j1q4vr7am8h7"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+                     (lambda _
+                       (setenv "CC" "gcc")
+                       ;; For missing '/etc/machine-id'.
+                       (setenv "DBUS_FATAL_WARNINGS" "0")
+                       #t)))
+       ;; Build the Vala API generator
+       #:configure-flags '("--enable-vapigen")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("flex" ,flex)
+       ("bison" ,bison)
+       ("xsltproc" ,libxslt)
+       ("dbus" ,dbus)                                     ; for dbus tests
+       ("gobject-introspection" ,gobject-introspection))) ; for gir tests
+    (propagated-inputs
+     `(("glib" ,glib))) ; required by libvala-0.26.pc
+    (home-page "http://live.gnome.org/Vala/")
+    (synopsis "Compiler for the GObject type system")
+    (description
+     "Vala is a programming language that aims to bring modern programming
+language features to GNOME developers without imposing any additional runtime
+requirements and without using a different ABI compared to applications and
+libraries written in C.")
+    (license license:lgpl2.1+)))
+
 (define-public gtksourceview
  (package
    (name "gtksourceview")
@@ -441,6 +488,90 @@  in the GNOME project.")
    (license license:lgpl2.0+)
    (home-page "https://developer.gnome.org/gdk-pixbuf/")))
 
+(define-public libgsf
+  (package
+    (name "libgsf")
+    (version "1.14.36")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0h19ssxzz0cmznwga2xy55kjibm24mwxqarnpd0w7xy0hrzm1dvi"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python" ,python)
+       ("zlib" ,zlib)
+       ("bzip2" ,bzip2)))
+    (propagated-inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)
+       ("libxml2" ,libxml2)))
+    (home-page "http://www.gnome.org/projects/libgsf")
+    (synopsis "GNOME's Structured File Library")
+    (description
+     "Libgsf aims to provide an efficient extensible I/O abstraction for
+dealing with different structured file formats.")
+
+    ;; LGPLv2.1-only.
+    (license license:lgpl2.1)))
+
+(define-public librsvg
+  (package
+    (name "librsvg")
+    (version "2.40.15")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1x05vd2llpmskq3prkp7kbpmshmpp9whj4kfl99ybipf4fhw9jnr"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'configure 'pre-configure
+        (lambda* (#:key inputs #:allow-other-keys)
+          (substitute* "gdk-pixbuf-loader/Makefile.in"
+            ;; By default the gdk-pixbuf loader is installed under
+            ;; gdk-pixbuf's prefix.  Work around that.
+            (("gdk_pixbuf_moduledir = .*$")
+             (string-append "gdk_pixbuf_moduledir = "
+                            "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
+                             "loaders\n"))
+            ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
+            (("gdk_pixbuf_cache_file = .*$")
+             "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n")))
+        %standard-phases)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
+       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
+    (inputs
+     `(("pango" ,pango)
+       ("libcroco" ,libcroco)
+       ("bzip2" ,bzip2)
+       ("libgsf" ,libgsf)
+       ("libxml2" ,libxml2)))
+    (propagated-inputs
+     ;; librsvg-2.0.pc refers to all of that.
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)))
+    (home-page "https://wiki.gnome.org/LibRsvg")
+    (synopsis "Render SVG files using Cairo")
+    (description
+     "Librsvg is a C library to render SVG files using the Cairo 2D graphics
+library.")
+    (license license:lgpl2.0+)))
+
 ;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
 ;; on gdk-pixbuf, so this new varibale.  Also, librsvg adds 90MiB to the
 ;; closure size.
@@ -825,60 +956,6 @@  includes a tools to generate PDF presentations out of Org mode and Texinfo
 documents.")
     (license license:lgpl3+)))
 
-(define-public guile-gnome
-   (package
-    (name "guile-gnome")
-    (version "2.16.4")
-    (source (origin
-              (method url-fetch)
-              (uri
-               (string-append "mirror://gnu/" name
-                              "/guile-gnome-platform/guile-gnome-platform-"
-                              version ".tar.gz"))
-             (sha256
-              (base32
-               "1hqnqbb2lmr3hgbcv9kds1himn3av6h0lkk0zll8agcrsn7d9axd"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("atk" ,atk)
-       ;;("corba" ,corba) ; not packaged yet
-       ("gconf" ,gconf)
-       ("gobject-introspection" ,gobject-introspection)
-       ;;("gthread" ,gthread) ; not packaged yet
-       ("gnome-vfs" ,gnome-vfs)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gtk+" ,gtk+-2)
-       ("libglade" ,libglade)
-       ("libgnome" ,libgnome)
-       ("libgnomecanvas" ,libgnomecanvas)
-       ("libgnomeui" ,libgnomeui)
-       ("pango" ,pango)
-       ("libffi" ,libffi)
-       ("glib" ,glib)))
-    (inputs `(("guile" ,guile-2.0)))
-    (propagated-inputs
-     `(("guile-cairo" ,guile-cairo)
-       ("g-wrap" ,g-wrap)
-       ("guile-lib" ,guile-lib)))
-    (arguments
-      `(#:tests? #f                               ;FIXME
-        #:phases (modify-phases %standard-phases
-                   (add-before 'configure 'pre-configure
-                     (lambda* (#:key outputs #:allow-other-keys)
-                       (let ((out (assoc-ref outputs "out")))
-                         (substitute* (find-files "." "^Makefile.in$")
-                           (("guilesite :=.*guile/site" all)
-                            (string-append all "/2.0")))
-                         #t))))))
-    (outputs '("out" "debug"))
-    (synopsis "Guile interface for GTK+ programming for GNOME")
-    (description
-     "Includes guile-clutter, guile-gnome-gstreamer,
-guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
-    (home-page "http://www.gnu.org/software/guile-gnome/")
-    (license license:gpl2+)))
-
 ;;;
 ;;; C++ bindings.
 ;;;
@@ -1086,6 +1163,33 @@  extensive documentation, including API reference and a tutorial.")
     ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
     (license (list license:lgpl2.1 license:mpl1.1))))
 
+(define-public libglade
+  (package
+    (name "libglade")
+    (version "2.6.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("python" ,python))) ;; needed for the optional libglade-convert program
+    (propagated-inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://developer.gnome.org/libglade")
+    (synopsis "Load glade interfaces and access the glade built widgets")
+    (description "Libglade is a library that provides interfaces for loading
+graphical interfaces described in glade files and for accessing the
+widgets built in the loading process.")
+    (license license:gpl2+))) ; This is correct.  GPL not LGPL
+
 (define-public python2-pygtk
   (package
     (name "python2-pygtk")
@@ -1331,3 +1435,241 @@  glass artworks done by Venicians glass blowers.")
      "GtkSpell provides word-processor-style highlighting and replacement of
 misspelled words in a GtkTextView widget.")
     (license license:gpl2+)))
+
+(define-public gtkglext
+  (package
+    (name "gtkglext")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
+                                  version "/gtkglext-" version ".tar.gz"))
+              (sha256
+               (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
+              (patches (search-patches
+                        "gtkglext-disable-disable-deprecated.patch"))))
+    (build-system gnu-build-system)
+    (inputs `(("gtk+" ,gtk+-2)
+              ("mesa" ,mesa)
+              ("glu" ,glu)
+              ("libx11" ,libx11)
+              ("libxt" ,libxt)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("glib" ,glib "bin")))
+    (propagated-inputs `(("pangox-compat" ,pangox-compat)))
+    (home-page "https://projects.gnome.org/gtkglext")
+    (synopsis "OpenGL extension to GTK+")
+    (description "GtkGLExt is an OpenGL extension to GTK+.  It provides
+additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
+API add-ons to make GTK+ widgets OpenGL-capable.")
+    (license license:lgpl2.1+)))
+
+(define-public glade3
+  (package
+    (name "glade")
+    (version "3.20.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1zhqvhagy0m85p54jfiayfl0v9af7g0lj7glw8sfwh7cbp56vnc2"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f ; needs X, GL, and software rendering
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "man/Makefile.in"
+               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/manpages/docbook.xsl")))
+             #t)))))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("libxslt" ,libxslt) ;for xsltproc
+       ("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("python" ,python-2)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://glade.gnome.org")
+    (synopsis "GTK+ rapid application development tool")
+    (description "Glade is a rapid application development (RAD) tool to
+enable quick & easy development of user interfaces for the GTK+ toolkit and
+the GNOME desktop environment.")
+    (license license:lgpl2.0+)))
+
+(define-public libnotify
+  (package
+    (name "libnotify")
+    (version "0.7.6")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnome/sources/" name "/"
+                          (version-major+minor version)  "/"
+                          name "-" version ".tar.xz"))
+      (sha256
+       (base32
+        "0dyq8zgjnnzcah31axnx6afb21kl7bks1gvrg4hjh3nk02j1rxhf"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libpng" ,libpng)))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)
+        ("glib" ,glib "bin")
+        ("gobject-introspection" ,gobject-introspection)))
+    (home-page "https://developer-next.gnome.org/libnotify/")
+    (synopsis
+     "GNOME desktop notification library")
+    (description
+     "Libnotify is a library that sends desktop notifications to a
+notification daemon, as defined in the Desktop Notifications spec.  These
+notifications can be used to inform the user about an event or display
+some form of information without getting in the user's way.")
+    (license license:lgpl2.1+)))
+
+(define-public libwnck
+  (package
+    (name "libwnck")
+    (version "3.14.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32 "1ymya8gkjygvg0i901wr3q6ihfqxx5yf4g4pb6fag2iw8af3qr5v"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)
+       ("libxres" ,libxres)
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://developer.gnome.org/libwnck/")
+    (synopsis "Window Navigator Construction Kit")
+    (description
+     "Libwnck is the Window Navigator Construction Kit, a library for use in
+writing pagers, tasklists, and more generally applications that are dealing
+with window management.  It tries hard to respect the Extended Window Manager
+Hints specification (EWMH).")
+    (license license:lgpl2.0+)))
+
+;; stable version for gtk2, required by xfwm4.
+(define-public libwnck-2
+  (package (inherit libwnck)
+    (name "libwnck")
+    (version "2.30.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
+    (propagated-inputs
+     `(("gtk+" ,gtk+-2)
+       ("libxres" ,libxres)
+       ("startup-notification" ,startup-notification)))))
+
+(define-public vte
+  (package
+    (name "vte")
+    (version "0.44.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0kjxzqcwqxky0l7bl8ydn9hl6fm1f0k2pl91wbbhyq4z6d4dabbi"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; XXX: fails to compile tests with the default flags.
+     ;; vteconv.cc:774:40:
+     ;;    error: missing sentinel in function call [-Werror=format=]
+     ;;    g_test_init (&argc, &argv, NULL);
+     ;;
+     ;; cc1plus: some warnings being treated as errors
+     '(#:configure-flags '("CXXFLAGS=-Wformat=0")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("vala" ,vala)
+       ("gobject-introspection" ,gobject-introspection)
+       ("glib" ,glib "bin") ; for glib-genmarshal, etc.
+       ("xmllint" ,libxml2)))
+    (propagated-inputs
+     `(("gtk+" ,gtk+)                             ;required by vte-2.91.pc
+       ("gnutls" ,gnutls)))                       ;ditto
+    (home-page "http://www.gnome.org/")
+    (synopsis "Virtual Terminal Emulator")
+    (description
+     "VTE is a library (libvte) implementing a terminal emulator widget for
+GTK+, and a minimal sample application (vte) using that.  Vte is mainly used in
+gnome-terminal, but can also be used to embed a console/terminal in games,
+editors, IDEs, etc.")
+    (license license:lgpl2.1+)))
+
+;; provides vte 2.90, required for some terminal emulators
+;; tilda bug: https://github.com/lanoxx/tilda/issues/94
+;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
+;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
+;; pantheon-terminal, roxterm are not currently packaged
+(define-public vte-0.36
+  (package (inherit vte)
+    (name "vte")
+    (version "0.36.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
+    (propagated-inputs
+     `(("gtk" ,gtk+)
+       ("ncurses" ,ncurses)))))
+
+;; stable version for gtk2, required by xfce4-terminal.
+(define-public vte/gtk+-2
+  (package (inherit vte)
+    (name "vte")
+    (version "0.28.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
+              (patches (search-patches
+                         "vte-CVE-2012-2738-pt1.patch"
+                         "vte-CVE-2012-2738-pt2.patch"))))
+    (arguments
+     '(#:configure-flags '("--disable-python")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("glib" ,glib "bin")))   ; for glib-genmarshal, etc.
+    (propagated-inputs
+     `(("gtk+" ,gtk+-2)         ; required by libvte.pc
+       ("ncurses" ,ncurses))))) ; required by libvte.la
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index f4dc3e7..eec3826 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -52,6 +52,7 @@ 
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages ncurses)
@@ -1649,6 +1650,33 @@  device nodes from /dev/, handles hotplug events and loads drivers at boot
 time.")
     (license license:gpl2+)))
 
+(define-public libgudev
+  (package
+    (name "libgudev")
+    (version "230")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  version "/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "063w6j35n0i0ssmv58kivc1mw4070z6fzb83hi4xfrhcxnn7zrx2"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("glib" ,glib))) ; required by gudev-1.0.pc
+    (inputs
+     `(("udev" ,eudev)))
+    (home-page "https://wiki.gnome.org/Projects/libgudev")
+    (synopsis "GObject bindings for libudev")
+    (description
+     "This library provides GObject bindings for libudev.  It was originally
+part of udev-extras, then udev, then systemd.  It's now a project on its own.")
+    (license license:lgpl2.1+)))
+
 (define-public lvm2
   (package
     (name "lvm2")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 49bf8f7..0b9bd98 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -45,6 +45,7 @@ 
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index fcea0bc..b183b90 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -54,6 +54,7 @@ 
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gd)
diff --git a/gnu/packages/wicd.scm b/gnu/packages/wicd.scm
index f9aa657..869c93f 100644
--- a/gnu/packages/wicd.scm
+++ b/gnu/packages/wicd.scm
@@ -26,9 +26,9 @@ 
   #:use-module (guix licenses)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages admin)
diff --git a/gnu/packages/wv.scm b/gnu/packages/wv.scm
index a7f2944..8dd905a 100644
--- a/gnu/packages/wv.scm
+++ b/gnu/packages/wv.scm
@@ -20,7 +20,7 @@ 
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
   #:use-module (guix packages)
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 5639f1d..051039b 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -36,8 +36,8 @@ 
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages web)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages gnome)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages gstreamer)