;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
-;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2020 Arthur Margerit <ruhtra.mar@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
+ #:use-module (gnu packages popt)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages selinux)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
- #:use-module (srfi srfi-1)
+ #:use-module ((srfi srfi-1) #:hide (zip))
;; Export variables up-front to allow circular dependency with the 'xorg'
;; module.
(sha256
(base32
"107ckxaff1cv4q6kmfdi2fb1nlsv03312a7kf6lb4biglhpjv8jl"))
- (patches (search-patches "dbus-helper-search-path.patch"))))
+ (patches (search-patches "dbus-CVE-2020-12049.patch"
+ "dbus-helper-search-path.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
(define glib
(package
(name "glib")
- (version "2.62.4")
+ (version "2.62.6")
+ (replacement glib/fixed)
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1g2vj9lyh032kcwij7avx5d6a99rcsnkd07sbl9i55zsfw6h712c"))
- (patches (search-patches "glib-tests-timer.patch"))
+ "174bsmbmcvaw69ff9g60q5sx0fn23rkhqcwqz17h5s7sprps4kqh"))
+ (patches (search-patches "glib-appinfo-watch.patch"
+ "glib-tests-timer.patch"))
(modules '((guix build utils)))
(snippet
'(begin
(("gio-launch-desktop")
(string-append out "/libexec/gio-launch-desktop")))
#t)))
+ ;; TODO: Remove the conditional in the next core-updates cycle.
+ ;; Needed to build glib on slower ARM nodes.
+ ,@(if (string-prefix? "arm" (%current-system))
+ `((add-after 'unpack 'increase-test-timeout
+ (lambda _
+ (substitute* "meson.build"
+ (("test_timeout = 60")
+ "test_timeout = 120")
+ (("test_timeout_slow = 120")
+ "test_timeout_slow = 180")))))
+ '())
(add-before 'build 'pre-build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; For tests/gdatetime.c.
(home-page "https://developer.gnome.org/glib/")
(license license:lgpl2.1+)))
+(define glib/fixed
+ (package
+ (inherit glib)
+ (source (origin
+ (inherit (package-source glib))
+ (patches
+ (append (search-patches "glib-CVE-2021-27218.patch"
+ "glib-CVE-2021-27219-01.patch"
+ "glib-CVE-2021-27219-02.patch"
+ "glib-CVE-2021-27219-03.patch"
+ "glib-CVE-2021-27219-04.patch"
+ "glib-CVE-2021-27219-05.patch"
+ "glib-CVE-2021-27219-06.patch"
+ "glib-CVE-2021-27219-07.patch"
+ "glib-CVE-2021-27219-08.patch"
+ "glib-CVE-2021-27219-09.patch"
+ "glib-CVE-2021-27219-10.patch"
+ "glib-CVE-2021-27219-11.patch"
+ "glib-CVE-2021-27219-12.patch"
+ "glib-CVE-2021-27219-13.patch"
+ "glib-CVE-2021-27219-14.patch"
+ "glib-CVE-2021-27219-15.patch"
+ "glib-CVE-2021-27219-16.patch"
+ "glib-CVE-2021-27219-17.patch"
+ "glib-CVE-2021-27219-18.patch"
+ "glib-CVE-2021-28153.patch")
+ (origin-patches (package-source glib))))))))
+
(define-public glib-with-documentation
;; glib's doc must be built in a separate package since it requires gtk-doc,
;; which in turn depends on glib.
- (package
- (inherit glib)
+ (package/inherit glib
(properties (alist-delete 'hidden? (package-properties glib)))
(outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
(native-inputs
(delete-file-recursively (string-append out html))
#t)))))))))
+;;; TODO: Merge into glib as a 'static' output on core-updates.
+(define-public glib-static
+ (hidden-package
+ (package
+ (inherit glib)
+ (name "glib-static")
+ (outputs '("out"))
+ (arguments
+ (substitute-keyword-arguments (package-arguments glib)
+ ((#:configure-flags flags ''())
+ `(cons* "--default-library=static"
+ "-Dselinux=disabled"
+ "-Dman=false"
+ "-Dgtk_doc=false"
+ "-Dinternal_pcre=false"
+ ,flags))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (delete 'move-executables)
+ (replace 'install
+ ;; Only install the static libraries.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (for-each (lambda (f)
+ (install-file f lib))
+ (find-files "." "\\.a$"))))))))))))
+
(define gobject-introspection
(package
(name "gobject-introspection")
(version "1.62.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/"
- "gobject-introspection/" (version-major+minor version)
- "/gobject-introspection-" version ".tar.xz"))
- (sha256
- (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi"))
- (patches (search-patches
- "gobject-introspection-cc.patch"
- "gobject-introspection-girepository.patch"
- "gobject-introspection-absolute-shlib-path.patch"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://gnome/sources/"
+ "gobject-introspection/" (version-major+minor version)
+ "/gobject-introspection-" version ".tar.xz"))
+ (sha256
+ (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi"))
+ (patches
+ (search-patches
+ "gobject-introspection-cc.patch"
+ "gobject-introspection-girepository.patch"
+ "gobject-introspection-absolute-shlib-path.patch"))))
(build-system meson-build-system)
(arguments
`(#:phases
(("#!@PYTHON_CMD@")
(string-append "#!" (which "python3"))))
#t)))))
+ (native-inputs
+ `(("glib" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
(inputs
`(("bison" ,bison)
("flex" ,flex)
("glib" ,glib)
("python" ,python-wrapper)
("zlib" ,zlib)))
- (native-inputs
- `(("glib" ,glib "bin")
- ("pkg-config" ,pkg-config)))
(propagated-inputs
`(;; In practice, GIR users will need libffi when using
;; gobject-introspection.
("libffi" ,libffi)))
(native-search-paths
- (list (search-path-specification
- (variable "GI_TYPELIB_PATH")
- (files '("lib/girepository-1.0")))))
+ (list
+ (search-path-specification
+ (variable "GI_TYPELIB_PATH")
+ (files '("lib/girepository-1.0")))))
(search-paths native-search-paths)
- (home-page "https://wiki.gnome.org/GObjectIntrospection")
- (synopsis "Generate interface introspection data for GObject libraries")
- (description
- "GObject introspection is a middleware layer between C libraries (using
-GObject) and language bindings. The C library can be scanned at compile time
-and generate a metadata file, in addition to the actual native C library. Then
-at runtime, language bindings can read this metadata and automatically provide
-bindings to call into the C library.")
- ; Some bits are distributed under the LGPL2+, others under the GPL2+
- (license license:gpl2+)))
+ (synopsis "GObject introspection tools and libraries")
+ (description "GObject introspection is a middleware layer between
+C libraries (using GObject) and language bindings. The C library can be scanned
+at compile time and generate metadata files, in addition to the actual native
+C library. Then language bindings can read this metadata and automatically
+provide bindings to call into the C library.")
+ (home-page "https://wiki.gnome.org/Projects/GObjectIntrospection")
+ (license
+ (list
+ ;; For library.
+ license:lgpl2.0+
+ ;; For tools.
+ license:gpl2+))))
(define intltool
(package
(define dbus-glib
(package
(name "dbus-glib")
- (version "0.108")
+ (version "0.110")
(source (origin
(method url-fetch)
(uri
version ".tar.gz"))
(sha256
(base32
- "0b307hw9j41npzr6niw1bs6ryp87m5yafg492gqwvsaj4dz0qd4z"))))
+ "09g8swvc95bk1z6j8sw463p2v0dqmgm2zjfndf7i8sbcyq67dr3w"))))
(build-system gnu-build-system)
(propagated-inputs ; according to dbus-glib-1.pc
`(("dbus" ,dbus)
(define libsigc++
(package
(name "libsigc++")
- (version "2.10.2")
+ (version "2.10.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsigc++/"
name "-" version ".tar.xz"))
(sha256
(base32
- "163s14d1rqp82gc1vsm3q0wzsbdicb9q6307kz0zk5lm6x9h5jmi"))))
+ "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("m4" ,m4)))
useful for C++.")
(license license:lgpl2.1+)))
+ (define-public glibmm-2.64
+ (package
+ (inherit glibmm)
+ (name "glibmm")
+ (version "2.64.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://gnome/sources/glibmm/"
+ (version-major+minor version)
+ "/glibmm-" version ".tar.xz"))
+ (sha256
+ (base32 "1v6lp23fr2qh4zshcnm28sn29j3nzgsvcqj2nhmrnvamipjq4lm7"))))
+ (propagated-inputs
+ `(("libsigc++" ,libsigc++)
+ ("glib" ,glib)))))
+
(define-public python2-pygobject-2
(package
(name "python2-pygobject")
(sha256
(base32
"0nkam61rsn7y3wik3vw46wk5q2cjfh2iph57hl9m39rc8jijb7dv"))
- (patches (search-patches
- "python2-pygobject-2-gi-info-type-error-domain.patch"))))
+ (patches (search-patches "python2-pygobject-2-deprecation.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)
(arguments
`(#:tests? #f ;segfaults during tests
#:configure-flags '("LIBS=-lcairo-gobject")))
- (home-page "https://pypi.python.org/pypi/PyGObject")
+ (home-page "https://pypi.org/project/PyGObject/")
(synopsis "Python bindings for GObject")
(description
"Python bindings for GLib, GObject, and GIO.")
(define-public python-pygobject
(package
(name "python-pygobject")
- (version "3.28.3")
+ (version "3.34.0")
(source
(origin
(method url-fetch)
"/pygobject-" version ".tar.xz"))
(sha256
(base32
- "1c6h3brzlyvzbpdsammnd957azmp6cbzqrd65r400vnh2l8f5lrx"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-broken-tests
- (lambda _
- ;; FIXME: this test freezes and times out.
- (delete-file "tests/test_mainloop.py")
- ;; FIXME: this test fails with this kind of error:
- ;; AssertionError: <Handlers.SIG_IGN: 1> != <built-in function default_int_handler
- (delete-file "tests/test_ossig.py")
+ "06i7ynnbvgpz0gw09zsjbvhgcp5qz4yzdifw27qjwdazg2mckql7"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; We disable these tests in a snippet so that they are inherited
+ ;; by the Python 2 variant which is built differently.
+ (with-directory-excursion "tests"
+ ;; FIXME: These tests require Gdk and/or Gtk 4.
+ (for-each delete-file
+ '("test_atoms.py" "test_overrides_gtk.py"))
#t)))))
+ (build-system meson-build-system)
(native-inputs
- `(("which" ,which)
- ;for tests: dbus-run-session and glib-compile-schemas
- ("dbus" ,dbus)
- ("glib-bin" ,glib "bin")
+ `(("glib-bin" ,glib "bin")
("pkg-config" ,pkg-config)
("python-pytest" ,python-pytest)))
(inputs
(properties `((python2-variant . ,(delay python2-pygobject))))))
(define-public python2-pygobject
- (package (inherit (strip-python2-variant python-pygobject))
- (name "python2-pygobject")
- (inputs
- `(("python" ,python-2)
- ("python-pycairo" ,python2-pycairo)
- ("gobject-introspection" ,gobject-introspection)))
- (native-inputs
- `(("which" ,which)
- ;for tests: dbus-run-session and glib-compile-schemas
- ("dbus" ,dbus)
- ("glib-bin" ,glib "bin")
- ("pkg-config" ,pkg-config)
- ("python-pytest" ,python2-pytest)))))
+ (let ((base (strip-python2-variant python-pygobject)))
+ (package/inherit base
+ (name "python2-pygobject")
-;; Newer version of this core-updates package, for Lollypop.
-(define-public python-pygobject-3.34
- (package/inherit
- python-pygobject
- (version "3.34.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://gnome/sources/pygobject/"
- (version-major+minor version)
- "/pygobject-" version ".tar.xz"))
- (sha256
- (base32 "06i7ynnbvgpz0gw09zsjbvhgcp5qz4yzdifw27qjwdazg2mckql7"))))
- (build-system meson-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-broken-tests
- (lambda _
- (with-directory-excursion "tests"
- (for-each
- delete-file
- ;; FIXME: these tests require Gdk and/or Gtk 4.
- '("test_atoms.py"
- "test_overrides_gtk.py")))
- #t)))))))
+ ;; Note: We use python-build-system here, because Meson only supports
+ ;; Python 3, and needs PYTHONPATH etc set up correctly, which makes it
+ ;; difficult to use for Python 2 projects.
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'delete-broken-tests
+ (lambda _
+ ;; FIXME: this test freezes and times out.
+ (delete-file "tests/test_mainloop.py")
+ ;; FIXME: this test fails with this kind of error:
+ ;; AssertionError: <Handlers.SIG_IGN: 1> != <built-in function default_int_handler
+ (delete-file "tests/test_ossig.py")
+ #t)))))
+ (inputs
+ `(("python-pycairo" ,python2-pycairo)
+ ("gobject-introspection" ,gobject-introspection)))
+ (native-inputs
+ `(("glib-bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)
+ ("python-pytest" ,python2-pytest))))))
(define-public perl-glib
(package
(name "perl-glib")
- (version "1.3291")
+ (version "1.3292")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "0whz5f87wvzq8zsva85h06mkfqim2ciq845ixlvmafwxggccv0xr"))))
+ "1q5075d6v2g5sm675hyzrcpxsrh09z83crfci8b0wl3jwmnz0frg"))))
(build-system perl-build-system)
(native-inputs
`(("perl-extutils-depends" ,perl-extutils-depends)
"1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy"))
(patches
(list
+ (search-patch "telepathy-glib-channel-memory-leak.patch")
;; Don't use the same test name for multiple tests.
;; <https://bugs.freedesktop.org/show_bug.cgi?id=92245>
(origin
;;
;; EOFError: EOF read where object expected
;; make[2]: *** [Makefile:1906: _gen/register-dbus-glib-marshallers-body.h] Error 1
- #:parallel-build? #f))
+ #:parallel-build? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ ;; None of the tests below are able to find the org.gtk.vfs.Daemon
+ ;; service file provided by gvfs.
+ (substitute* "tests/dbus/Makefile.in"
+ (("test-contacts\\$\\(EXEEXT\\)") "")
+ (("test-file-transfer-channel\\$\\(EXEEXT\\)") "")
+ (("test-stream-tube\\$\\(EXEEXT\\)") ""))
+ #t)))))
(native-inputs
`(("glib" ,glib "bin") ; uses glib-mkenums
("gobject-introspection" ,gobject-introspection)
#t)))))
(synopsis "D-Bus API for C++")
(description "This package provides D-Bus client API bindings for the C++
-programming language. It also contains the utility
-@command{dbuscxx-xml2cpp}.")
+programming language. It also provides the @command{dbusxx-xml2cpp} and
+@command{dbusxx-introspect} commands.")
(home-page "https://sourceforge.net/projects/dbus-cplusplus/")
(license license:lgpl2.1+)))
+(define-public dbus-cxx
+ (package
+ (name "dbus-cxx")
+ (version "0.12.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/dbus-cxx/dbus-cxx/"
+ version "/dbus-cxx-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1acsgpkd9v7b9jdc79ijmh9dbdfrzgkwkaff518i3zpk7y6g5mzw"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DENABLE_TESTS=ON"
+ "-DENABLE_TOOLS=ON"
+ "-DENABLE_GLIBMM=ON")))
+ (inputs `(("dbus" ,dbus)
+ ("libsigc++" ,libsigc++)
+ ("glibmm" ,glibmm)
+ ("python" ,python)
+ ("popt" ,popt)
+ ("expat" ,expat)))
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("m4" ,m4)))
+ (synopsis "C++ wrapper for dbus")
+ (description "Dbus-cxx is a C++ wrapper for dbus.\n
+It exposes the C API to allow direct manipulation and
+relies on sigc++ to provide an Oriented Object interface.\n
+This package provide 2 utils:
+@enumerate
+@item @command{dbus-cxx-xml2cpp} to generate proxy and adapter
+@item @command{dbus-cxx-introspect} to introspect a dbus interface
+@end enumerate
+
+Some codes examples can be find at:
+@url{https://dbus-cxx.github.io/examples.html}")
+ (home-page "https://dbus-cxx.github.io/")
+ (license license:gpl3)))
+
(define-public appstream-glib
(package
(name "appstream-glib")
- (version "0.7.16")
+ (version "0.7.18")
(source (origin
(method url-fetch)
(uri (string-append "https://people.freedesktop.org/~hughsient/"
"appstream-glib/releases/"
"appstream-glib-" version ".tar.xz"))
- (patches (search-patches "appstream-glib-2020.patch"))
(sha256
(base32
- "14jr1psx5kxywdprgbqn79w309yz8lrqlsq7288hfrf87gbr1wh4"))))
+ "00j0kkgf224nzmrha72g8pd72mymhph7vaisj35i4ffy7cpd47na"))))
(build-system meson-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("gtk+" ,gtk+)
("json-glib" ,json-glib)
("libarchive" ,libarchive)
- ("libsoup" ,libsoup)
- ("libyaml" ,libyaml)))
+ ("libsoup" ,libsoup)))
(arguments
`(#:configure-flags
(list "-Ddep11=false"
(define-public template-glib
(package
(name "template-glib")
- (version "3.32.0")
+ (version "3.34.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1g0zx0sxpw8kqp7p3sgl9kngaqrg9xl6cir24nrahks0vgsk98rr"))))
+ "1z9xkin5fyfh071ma9y045jcw83hgx33dfbjraw6cxk0qdmfysr1"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-D" "enable_gtk_doc=true")))
`(("bison" ,bison)
("flex" ,flex)
("glib:bin" ,glib "bin") ;; For glib-mkenums
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(home-page "https://gitlab.gnome.org/GNOME/template-glib")
used to create D-Bus sockets inside a Linux container that forwards requests
to the host system, optionally with filters applied.")
(license license:lgpl2.1+)))
+
+(define-public dbus-test-runner
+ (package
+ (name "dbus-test-runner")
+ (version "19.04.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://launchpad.net/dbus-test-runner/"
+ (version-major+minor version) "/" version
+ "/+download/dbus-test-runner-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xnbay58xn0hav208mdsg8dd176w57dcpw1q2k0g5fh9v7xk4nk4"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-test-paths
+ ;; add missing space
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile.in"
+ (("#!/bin/bash") (string-append "#!" (which "bash"))))
+ (substitute* "tests/Makefile.in"
+ (("/bin/sh") (which "sh"))
+ (("#!/bin/bash") (string-append "#!" (which "bash")))
+ (("echo cat") (string-append "echo " (which "cat")))
+ (("/bin/true") (which "true")))
+ #t)))))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("glib" ,glib)
+ ("dbus-glib" ,dbus-glib)))
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)
+ ;; following used for tests
+ ("python" ,python)
+ ("python-dbusmock" ,python-dbusmock)
+ ("xvfb" ,xorg-server-for-tests)))
+ (home-page "https://launchpad.net/dbus-test-runner")
+ (synopsis "Run a executables under a new DBus session for testing")
+ (description "A small little utility to run a couple of executables under a
+new DBus session for testing.")
+ (license license:gpl3)))