gnu: harfbuzz: Update to 1.7.6.
[jackhill/guix/guix.git] / gnu / packages / glib.scm
CommitLineData
3889a82e 1;;; GNU Guix --- Functional package management for GNU
00f2bf34 2;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
7873318d 3;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
d6b8cb5c 4;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
2b95aed4 5;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
22b0caa3 6;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
89eb7581 7;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
a372c4da
P
8;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
9;;; Copyright © 2017 Petter <petter@mykolab.ch>
318bc429 10;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
3889a82e
NK
11;;;
12;;; This file is part of GNU Guix.
13;;;
14;;; GNU Guix is free software; you can redistribute it and/or modify it
15;;; under the terms of the GNU General Public License as published by
16;;; the Free Software Foundation; either version 3 of the License, or (at
17;;; your option) any later version.
18;;;
19;;; GNU Guix is distributed in the hope that it will be useful, but
20;;; WITHOUT ANY WARRANTY; without even the implied warranty of
21;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22;;; GNU General Public License for more details.
23;;;
24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26
943f33a3 27(define-module (gnu packages glib)
943f33a3 28 #:use-module (gnu packages)
7b83b695 29 #:use-module (gnu packages backup)
08a1e906
TGR
30 #:use-module (gnu packages base)
31 #:use-module (gnu packages bash)
9ceb630c 32 #:use-module (gnu packages bison)
943f33a3 33 #:use-module (gnu packages compression)
89eb7581 34 #:use-module (gnu packages enlightenment)
08a1e906 35 #:use-module (gnu packages file)
9ceb630c 36 #:use-module (gnu packages flex)
1dba6407 37 #:use-module (gnu packages gettext)
c73d4c59 38 #:use-module (gnu packages gnome)
318bc429 39 #:use-module (gnu packages gperf)
9ceb630c 40 #:use-module (gnu packages gtk)
943f33a3 41 #:use-module (gnu packages libffi)
2b95aed4 42 #:use-module (gnu packages linux)
08a1e906 43 #:use-module (gnu packages m4)
7b83b695 44 #:use-module (gnu packages nettle)
6983ba56 45 #:use-module (gnu packages pcre)
318bc429 46 #:use-module (gnu packages package-management)
d6b8cb5c 47 #:use-module (gnu packages perl)
5ccde207 48 #:use-module (gnu packages perl-check)
943f33a3
LC
49 #:use-module (gnu packages pkg-config)
50 #:use-module (gnu packages python)
318bc429 51 #:use-module (gnu packages web)
7bc5cc2b 52 #:use-module (gnu packages xml)
80370441 53 #:use-module (gnu packages xorg)
08a1e906 54 #:use-module (guix build-system gnu)
318bc429 55 #:use-module (guix build-system meson)
08a1e906
TGR
56 #:use-module (guix build-system perl)
57 #:use-module (guix build-system python)
58 #:use-module (guix download)
59 #:use-module ((guix licenses) #:prefix license:)
60 #:use-module (guix packages)
61 #:use-module (guix utils)
943f33a3 62
80370441
LC
63 ;; Export variables up-front to allow circular dependency with the 'xorg'
64 ;; module.
65 #:export (dbus
66 glib
6ac6a6b9 67 gobject-introspection
80370441
LC
68 dbus-glib
69 intltool
a5a7d374
LC
70 itstool
71 libsigc++
7873318d 72 glibmm
a372c4da 73 telepathy-glib
fc4083c5
P
74 perl-net-dbus
75 perl-net-dbus-glib))
80370441
LC
76
77(define dbus
943f33a3
LC
78 (package
79 (name "dbus")
797278df 80 (version "1.12.4")
943f33a3 81 (source (origin
25087f60
SB
82 (method url-fetch)
83 (uri (string-append
7fb51d97 84 "https://dbus.freedesktop.org/releases/dbus/dbus-"
25087f60
SB
85 version ".tar.gz"))
86 (sha256
87 (base32
797278df 88 "1ir18a4xg96mfim1z81ljmpb0k0bwhg1kwgwvbi5l1k8xil6nxgr"))
fc1adab1 89 (patches (search-patches "dbus-helper-search-path.patch"))))
943f33a3 90 (build-system gnu-build-system)
8eaa8a3b 91 (arguments
25087f60
SB
92 '(#:configure-flags
93 (list
94 ;; Install the system bus socket under /var.
95 "--localstatedir=/var"
8eaa8a3b 96
25087f60
SB
97 ;; Install the session bus socket under /tmp.
98 "--with-session-socket-dir=/tmp"
8eaa8a3b 99
25087f60
SB
100 ;; Use /etc/dbus-1 for system-wide config.
101 ;; Look for configuration file under
102 ;; /etc/dbus-1. This is notably required by
103 ;; 'dbus-daemon-launch-helper', which looks for
104 ;; the 'system.conf' file in that place,
105 ;; regardless of what '--config-file' was
106 ;; passed to 'dbus-daemon' on the command line;
107 ;; see <https://bugs.freedesktop.org/show_bug.cgi?id=92458>.
108 "--sysconfdir=/etc")
109 #:phases
110 (modify-phases %standard-phases
111 (replace 'install
112 (lambda _
113 ;; Don't try to create /var and /etc.
114 (system* "make"
115 "localstatedir=/tmp/dummy"
116 "sysconfdir=/tmp/dummy"
117 "install"))))))
708be46b
LC
118 (native-inputs
119 `(("pkg-config" ,pkg-config)))
943f33a3 120 (inputs
d6b8cb5c 121 `(("expat" ,expat)
80370441
LC
122
123 ;; Add a dependency on libx11 so that 'dbus-launch' has support for
124 ;; '--autolaunch'.
125 ("libx11" ,libx11)))
126
943f33a3
LC
127 (home-page "http://dbus.freedesktop.org/")
128 (synopsis "Message bus for inter-process communication (IPC)")
129 (description
130 "D-Bus is a message bus system, a simple way for applications to
35b9e423 131talk to one another. In addition to interprocess communication, D-Bus
943f33a3
LC
132helps coordinate process lifecycle; it makes it simple and reliable to
133code a \"single instance\" application or daemon, and to launch
134applications and daemons on demand when their services are needed.
135
136D-Bus supplies both a system daemon (for events such as \"new hardware
137device added\" or \"printer queue changed\") and a
138per-user-login-session daemon (for general IPC needs among user
35b9e423 139applications). Also, the message bus is built on top of a general
943f33a3
LC
140one-to-one message passing framework, which can be used by any two apps
141to communicate directly (without going through the message bus
35b9e423 142daemon). Currently the communicating applications are on one computer,
943f33a3
LC
143or through unencrypted TCP/IP suitable for use behind a firewall with
144shared NFS home directories.")
d6b8cb5c 145 (license license:gpl2+))) ; or Academic Free License 2.1
3889a82e 146
80370441 147(define glib
3889a82e
NK
148 (package
149 (name "glib")
ab1ac4a5 150 (version "2.54.3")
3889a82e
NK
151 (source (origin
152 (method url-fetch)
785db4d8 153 (uri (string-append "mirror://gnome/sources/"
d274f499 154 name "/" (string-take version 4) "/"
943f33a3 155 name "-" version ".tar.xz"))
3889a82e 156 (sha256
f47f6761 157 (base32
ab1ac4a5 158 "1a60p9m493mvm42rskg8ifr0jmsbr8arzyqx73jshgfwhmkdqgwn"))
c60ecc35
MB
159 (patches (search-patches "glib-respect-datadir.patch"
160 "glib-tests-timer.patch"))))
3889a82e 161 (build-system gnu-build-system)
426adbe8
LC
162 (outputs '("out" ; everything
163 "bin" ; glib-mkenums, gtester, etc.; depends on Python
164 "doc")) ; 20 MiB of GTK-Doc reference
6983ba56
SB
165 (propagated-inputs
166 `(("pcre" ,pcre))) ; in the Requires.private field of glib-2.0.pc
3889a82e
NK
167 (inputs
168 `(("coreutils" ,coreutils)
2b95aed4 169 ("util-linux" ,util-linux) ; for libmount
3889a82e 170 ("libffi" ,libffi)
3ffaec13 171 ("zlib" ,zlib)))
c4c4cc05 172 (native-inputs
b94a6ca0 173 `(("gettext" ,gettext-minimal)
c4c4cc05 174 ("dbus" ,dbus) ; for GDBus tests
3889a82e 175 ("pkg-config" ,pkg-config)
ee3e314b 176 ("python" ,python-wrapper)
943f33a3 177 ("perl" ,perl) ; needed by GIO tests
3ffaec13 178 ("bash" ,bash)
f9c3bd2e 179 ("tzdata" ,tzdata-for-tests))) ; for tests/gdatetime.c
943f33a3 180 (arguments
f9c3bd2e 181 `(#:disallowed-references (,tzdata-for-tests)
3ffaec13 182 #:phases
6983ba56
SB
183 (modify-phases %standard-phases
184 (add-before 'build 'pre-build
185 (lambda* (#:key inputs outputs #:allow-other-keys)
186 ;; For tests/gdatetime.c.
187 (setenv "TZDIR"
188 (string-append (assoc-ref inputs "tzdata")
189 "/share/zoneinfo"))
190
191 ;; Some tests want write access there.
192 (setenv "HOME" (getcwd))
193 (setenv "XDG_CACHE_HOME" (getcwd))
194
195 (substitute* '("glib/gspawn.c"
196 "glib/tests/utils.c"
197 "tests/spawn-test.c")
198 (("/bin/sh")
199 (string-append (assoc-ref inputs "bash") "/bin/sh")))))
200 (add-before 'check 'disable-failing-tests
201 (lambda _
202 (let ((disable
203 (lambda (test-file test-paths)
204 (define pattern+procs
205 (map (lambda (test-path)
206 (cons
207 ;; XXX: only works for single line statements.
208 (format #f "g_test_add_func.*\"~a\".*" test-path)
209 (const "")))
210 test-paths))
211 (substitute test-file pattern+procs)))
212 (failing-tests
213 '(("glib/tests/thread.c"
214 (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
215 ;; as found on hydra.gnu.org, and strace(1) doesn't
216 ;; recognize it.
217 "/thread/thread4"))
218
219 ("glib/tests/timer.c"
220 (;; fails if compiler optimizations are enabled, which they
221 ;; are by default.
222 "/timer/stop"))
223
224 ("gio/tests/gapplication.c"
225 (;; XXX: proven to be unreliable. See:
226 ;; <https://bugs.debian.org/756273>
227 ;; <http://bugs.gnu.org/18445>
228 "/gapplication/quit"
229
230 ;; XXX: fails randomly for unknown reason. See:
231 ;; <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html>
232 "/gapplication/local-actions"))
233
234 ("gio/tests/contenttype.c"
235 (;; XXX: requires shared-mime-info.
236 "/contenttype/guess"
237 "/contenttype/subtype"
238 "/contenttype/list"
239 "/contenttype/icon"
240 "/contenttype/symbolic-icon"
241 "/contenttype/tree"))
242
243 ("gio/tests/appinfo.c"
244 (;; XXX: requires update-desktop-database.
245 "/appinfo/associations"))
246
247 ("gio/tests/desktop-app-info.c"
248 (;; XXX: requires update-desktop-database.
249 "/desktop-app-info/delete"
250 "/desktop-app-info/default"
251 "/desktop-app-info/fallback"
252 "/desktop-app-info/lastused"
253 "/desktop-app-info/search"))
254
255 ("gio/tests/gdbus-peer.c"
256 (;; Requires /etc/machine-id.
257 "/gdbus/codegen-peer-to-peer"))
258
259 ("gio/tests/gdbus-unix-addresses.c"
260 (;; Requires /etc/machine-id.
c60ecc35 261 "/gdbus/x11-autolaunch")))))
6983ba56 262 (and-map (lambda (x) (apply disable x)) failing-tests)))))
943f33a3
LC
263
264 ;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
265 #:configure-flags (list (string-append "--with-html-dir="
266 (assoc-ref %outputs "doc")
b2a80c78 267 "/share/gtk-doc/html"))
00585a55
LC
268
269 ;; In 'gio/tests', 'gdbus-test-codegen-generated.h' is #included in a
270 ;; file that gets compiled possibly before it has been fully generated.
271 #:parallel-tests? #f))
ce2df078
LC
272
273 (native-search-paths
274 ;; This variable is not really "owned" by GLib, but several related
275 ;; packages refer to it: gobject-introspection's tools use it as a search
276 ;; path for .gir files, and it's also a search path for schemas produced
277 ;; by 'glib-compile-schemas'.
278 (list (search-path-specification
279 (variable "XDG_DATA_DIRS")
1b85e57f
SB
280 (files '("share")))
281 ;; To load extra gio modules from glib-networking, etc.
282 (search-path-specification
283 (variable "GIO_EXTRA_MODULES")
284 (files '("lib/gio/modules")))))
ce2df078
LC
285 (search-paths native-search-paths)
286
f50d2669 287 (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
3889a82e
NK
288 (description
289 "GLib provides data structure handling for C, portability wrappers,
290and interfaces for such runtime functionality as an event loop, threads,
291dynamic loading, and an object system.")
f032d0be 292 (home-page "https://developer.gnome.org/glib/")
c60ecc35 293 (license license:lgpl2.1+)))
71eb5c10 294
6ac6a6b9 295(define gobject-introspection
9ceb630c
CR
296 (package
297 (name "gobject-introspection")
aac1c47f 298 (version "1.54.1")
9ceb630c
CR
299 (source (origin
300 (method url-fetch)
cc84b08c 301 (uri (string-append "mirror://gnome/sources/"
2474b81d
FB
302 "gobject-introspection/" (version-major+minor version)
303 "/gobject-introspection-" version ".tar.xz"))
9ceb630c 304 (sha256
aac1c47f 305 (base32 "0zl7pfkzkm07733391b4f3cwjbnvb1nwvpmajf5bajh6bxgfv3dq"))
ed89d901
SB
306 (modules '((guix build utils)))
307 (snippet
308 '(substitute* "tools/g-ir-tool-template.in"
309 (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@")))
fc1adab1
AK
310 (patches (search-patches
311 "gobject-introspection-cc.patch"
312 "gobject-introspection-girepository.patch"
313 "gobject-introspection-absolute-shlib-path.patch"))))
9ceb630c
CR
314 (build-system gnu-build-system)
315 (inputs
316 `(("bison" ,bison)
9ceb630c
CR
317 ("flex" ,flex)
318 ("glib" ,glib)
9ceb630c 319 ("python-2" ,python-2)))
426adbe8 320 (native-inputs
d7e92b87
ML
321 `(("glib" ,glib "bin")
322 ("pkg-config" ,pkg-config)))
af949e8e
CR
323 (propagated-inputs
324 `(;; In practice, GIR users will need libffi when using
325 ;; gobject-introspection.
326 ("libffi" ,libffi)))
5a4753a6
FB
327 (native-search-paths
328 (list (search-path-specification
329 (variable "GI_TYPELIB_PATH")
af070955 330 (files '("lib/girepository-1.0")))))
5a4753a6 331 (search-paths native-search-paths)
9ceb630c 332 (arguments
2474b81d
FB
333 `(;; The patch 'gobject-introspection-absolute-shlib-path.patch' causes
334 ;; some tests to fail.
cc84b08c 335 #:tests? #f))
9ceb630c
CR
336 (home-page "https://wiki.gnome.org/GObjectIntrospection")
337 (synopsis "Generate interface introspection data for GObject libraries")
338 (description
339 "GObject introspection is a middleware layer between C libraries (using
340GObject) and language bindings. The C library can be scanned at compile time
341and generate a metadata file, in addition to the actual native C library. Then
342at runtime, language bindings can read this metadata and automatically provide
343bindings to call into the C library.")
344 ; Some bits are distributed under the LGPL2+, others under the GPL2+
345 (license license:gpl2+)))
346
80370441 347(define intltool
71eb5c10
LC
348 (package
349 (name "intltool")
fa09ebfa 350 (version "0.51.0")
71eb5c10
LC
351 (source (origin
352 (method url-fetch)
d6b8cb5c
AE
353 (uri (string-append "https://launchpad.net/intltool/trunk/"
354 version "/+download/intltool-"
355 version ".tar.gz"))
92cb946b 356 (patches (search-patches "intltool-perl-compatibility.patch"))
71eb5c10
LC
357 (sha256
358 (base32
fa09ebfa 359 "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7"))))
71eb5c10 360 (build-system gnu-build-system)
93882f0e
EB
361 (inputs
362 `(("file" ,file)))
71eb5c10 363 (propagated-inputs
107b415e
LC
364 `(;; Propagate gettext because users expect it to be there, and so does
365 ;; the `intltool-update' script.
b94a6ca0 366 ("gettext" ,gettext-minimal)
107b415e 367
e33d9d6f 368 ("perl-xml-parser" ,perl-xml-parser)
107b415e 369 ("perl" ,perl)))
93882f0e 370 (arguments
e0f71c80
TGR
371 `(#:phases
372 (modify-phases %standard-phases
373 (add-after 'unpack 'patch-file-references
374 (lambda* (#:key inputs #:allow-other-keys)
375 (let ((file (assoc-ref inputs "file")))
376 (substitute* "intltool-update.in"
377 (("`file") (string-append "`" file "/bin/file")))
378 #t))))))
d6b8cb5c
AE
379 (home-page "https://launchpad.net/intltool/+download")
380 (synopsis "Tools to centralise translations of different file formats")
71eb5c10 381 (description
35b9e423 382 "Intltool is a set of tools to centralise translations of many different
71eb5c10
LC
383file formats using GNU gettext-compatible PO files.
384
385The intltool collection can be used to do these things:
386
387 Extract translatable strings from various source files (.xml.in,
388 glade, .desktop.in, .server.in, .oaf.in).
389
390 Collect the extracted strings together with messages from traditional
391 source files (.c, .h) in po/$(PACKAGE).pot.
392
393 Merge back the translations from .po files into .xml, .desktop and
35b9e423 394 oaf files. This merge step will happen at build resp. installation time.")
d6b8cb5c 395 (license license:gpl2+)))
24b5c463 396
80370441 397(define itstool
20a26ff5
CR
398 (package
399 (name "itstool")
ada53b1d 400 (version "2.0.2")
20a26ff5
CR
401 (source (origin
402 (method url-fetch)
403 (uri (string-append "http://files.itstool.org/itstool/itstool-"
404 version ".tar.bz2"))
405 (sha256
406 (base32
ada53b1d 407 "0fh34wi52i0qikgvlmrcpf1vx6gc1xqdad4539l4d9hikfsrz45z"))))
20a26ff5 408 (build-system gnu-build-system)
4b58d88b 409 (inputs
f922fc42 410 `(("libxml2" ,libxml2)
ada53b1d
MB
411 ("python2-libxml2" ,python2-libxml2)
412 ("python-2" ,python-2)))
4b58d88b
SB
413 (arguments
414 '(#:phases
415 (modify-phases %standard-phases
13fbd174
KK
416 (add-after 'install 'wrap-program
417 (lambda* (#:key outputs #:allow-other-keys)
418 (let ((prog (string-append (assoc-ref outputs "out")
419 "/bin/itstool")))
420 (wrap-program prog
421 `("PYTHONPATH" = (,(getenv "PYTHONPATH"))))))))))
20a26ff5
CR
422 (home-page "http://www.itstool.org")
423 (synopsis "Tool to translate XML documents with PO files")
424 (description
425 "ITS Tool allows you to translate your XML documents with PO files, using
426rules from the W3C Internationalization Tag Set (ITS) to determine what to
427translate and how to separate it into PO file messages.
428
429PO files are the standard translation format for GNU and other Unix-like
430systems. They present translatable information as discrete messages, allowing
431each message to be translated independently. In contrast to whole-page
432translation, translating with a message-based format like PO means you can
433easily track changes to the source document down to the paragraph. When new
434strings are added or existing strings are modified, you only need to update the
435corresponding messages.
436
437ITS Tool is designed to make XML documents translatable through PO files by
438applying standard ITS rules, as well as extension rules specific to ITS Tool.
439ITS also provides an industry standard way for authors to override translation
440information in their documents, such as whether a particular element should be
441translated.")
a129e0d8 442 (license license:gpl3+)))
20a26ff5 443
80370441 444(define dbus-glib
24b5c463
AE
445 (package
446 (name "dbus-glib")
919fc6aa 447 (version "0.108")
24b5c463
AE
448 (source (origin
449 (method url-fetch)
450 (uri
5cc3096c 451 (string-append "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-"
24b5c463
AE
452 version ".tar.gz"))
453 (sha256
454 (base32
919fc6aa 455 "0b307hw9j41npzr6niw1bs6ryp87m5yafg492gqwvsaj4dz0qd4z"))))
24b5c463 456 (build-system gnu-build-system)
2e88d113 457 (propagated-inputs ; according to dbus-glib-1.pc
24b5c463 458 `(("dbus" ,dbus)
44add1ce 459 ("glib" ,glib)))
2e88d113
AE
460 (inputs
461 `(("expat" ,expat)))
44add1ce
LC
462 (native-inputs
463 `(("glib" ,glib "bin")
24b5c463
AE
464 ("pkg-config" ,pkg-config)))
465 (home-page "http://dbus.freedesktop.org/doc/dbus-glib/")
466 (synopsis "D-Bus GLib bindings")
467 (description
468 "GLib bindings for D-Bus. The package is obsolete and superseded
469by GDBus included in Glib.")
470 (license license:gpl2))) ; or Academic Free License 2.1
a5a7d374
LC
471
472(define libsigc++
473 (package
474 (name "libsigc++")
000c5a11 475 (version "2.10.0")
a5a7d374
LC
476 (source (origin
477 (method url-fetch)
e7a720e6
SB
478 (uri (string-append "mirror://gnome/sources/libsigc++/"
479 (version-major+minor version) "/"
480 name "-" version ".tar.xz"))
a5a7d374
LC
481 (sha256
482 (base32
000c5a11 483 "10cd54l4zihss9qxfhd2iip2k7mr292k37i54r2cpgv0c8sdchzq"))))
a5a7d374 484 (build-system gnu-build-system)
41eb1198
LC
485 (native-inputs `(("pkg-config" ,pkg-config)
486 ("m4" ,m4)))
a5a7d374
LC
487 (home-page "http://libsigc.sourceforge.net/")
488 (synopsis "Type-safe callback system for standard C++")
489 (description
35b9e423 490 "Libsigc++ implements a type-safe callback system for standard C++. It
a5a7d374
LC
491allows you to define signals and to connect those signals to any callback
492function, either global or a member function, regardless of whether it is
493static or virtual.
494
495It also contains adaptor classes for connection of dissimilar callbacks and
496has an ease of use unmatched by other C++ callback libraries.")
497 (license license:lgpl2.1+)))
498
499(define glibmm
500 (package
501 (name "glibmm")
db167f82 502 (version "2.50.1")
a5a7d374
LC
503 (source (origin
504 (method url-fetch)
3d6befa4
MW
505 (uri (string-append "mirror://gnome/sources/glibmm/"
506 (version-major+minor version)
507 "/glibmm-" version ".tar.xz"))
a5a7d374
LC
508 (sha256
509 (base32
db167f82 510 "1926b3adx903hzvdp8glblsgjyadzqnwgkj8hg605d4wv98m1n0z"))))
a5a7d374
LC
511 (build-system gnu-build-system)
512 (arguments
dc1d3cde
KK
513 `(#:phases
514 (modify-phases %standard-phases
515 (add-before 'build 'pre-build
516 (lambda _
517 ;; This test uses /etc/fstab as an example file to read
518 ;; from; choose a better example.
519 (substitute* "tests/giomm_simple/main.cc"
520 (("/etc/fstab")
521 (string-append (getcwd)
522 "/tests/giomm_simple/main.cc")))
523
524 ;; This test does a DNS lookup, and then expects to be able
525 ;; to open a TLS session; just skip it.
526 (substitute* "tests/giomm_tls_client/main.cc"
527 (("Gio::init.*$")
528 "return 77;\n"))
529 #t)))))
41eb1198
LC
530 (native-inputs `(("pkg-config" ,pkg-config)
531 ("glib" ,glib "bin")))
a5a7d374
LC
532 (propagated-inputs
533 `(("libsigc++" ,libsigc++)
534 ("glib" ,glib)))
535 (home-page "http://gtkmm.org/")
536 (synopsis "C++ interface to the GLib library")
537 (description
35b9e423 538 "Glibmm provides a C++ programming interface to the part of GLib that are
a5a7d374
LC
539useful for C++.")
540 (license license:lgpl2.1+)))
a1de06b6
EB
541
542(define-public python2-pygobject-2
543 (package
544 (name "python2-pygobject")
545 ;; This was the last version to declare the 2.0 platform number, i.e. its
546 ;; pkg-config files were named pygobject-2.0.pc
547 (version "2.28.6")
548 (source
549 (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/pygobject/"
552 (version-major+minor version)
553 "/pygobject-" version ".tar.xz"))
554 (sha256
555 (base32
556 "1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv"))
fc1adab1
AK
557 (patches (search-patches
558 "python2-pygobject-2-gi-info-type-error-domain.patch"))))
a1de06b6
EB
559 (build-system gnu-build-system)
560 (native-inputs
561 `(("which" ,which)
562 ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas
563 ("pkg-config" ,pkg-config)
564 ("dbus" ,dbus))) ;for tests
565 (inputs
566 `(("python" ,python-2)
567 ("glib" ,glib)
7ca0dbc3 568 ("python2-pycairo" ,python2-pycairo)
a1de06b6
EB
569 ("gobject-introspection" ,gobject-introspection)))
570 (propagated-inputs
571 `(("libffi" ,libffi))) ;mentioned in pygobject-2.0.pc
572 (arguments
573 `(#:tests? #f ;segfaults during tests
574 #:configure-flags '("LIBS=-lcairo-gobject")))
575 (home-page "https://pypi.python.org/pypi/PyGObject")
576 (synopsis "Python bindings for GObject")
577 (description
578 "Python bindings for GLib, GObject, and GIO.")
579 (license license:lgpl2.1+)))
580
581(define-public python-pygobject
582 (package
583 (name "python-pygobject")
ae40e02c 584 (version "3.24.1")
a1de06b6
EB
585 (source
586 (origin
587 (method url-fetch)
588 (uri (string-append "mirror://gnome/sources/pygobject/"
589 (version-major+minor version)
590 "/pygobject-" version ".tar.xz"))
591 (sha256
592 (base32
ae40e02c 593 "1zdzznrj2s1gsrv2z4r0n88fzba8zjc1n2r313xi77lhl1daja56"))))
a1de06b6
EB
594 (build-system gnu-build-system)
595 (native-inputs
596 `(("which" ,which)
ae40e02c
KK
597 ;for tests: dbus-run-session and glib-compile-schemas
598 ("dbus" ,dbus)
599 ("glib-bin" ,glib "bin")
a1de06b6
EB
600 ("pkg-config" ,pkg-config)))
601 (inputs
602 `(("python" ,python)
a1de06b6 603 ("python-pycairo" ,python-pycairo)
fa7cf82e
SB
604 ("gobject-introspection" ,gobject-introspection)))
605 (propagated-inputs
606 ;; pygobject-3.0.pc refers to all these.
607 `(("glib" ,glib)
a1de06b6 608 ("libffi" ,libffi)))
e28f95a9
SB
609 ;; For finding typelib files, since gobject-introscpetion isn't propagated.
610 (native-search-paths (package-native-search-paths gobject-introspection))
594a362b 611 (home-page "https://live.gnome.org/PyGObject")
a1de06b6
EB
612 (synopsis "Python bindings for GObject")
613 (description
614 "Python bindings for GLib, GObject, and GIO.")
00f2bf34
LC
615 (license license:lgpl2.1+)
616 (properties `((python2-variant . ,(delay python2-pygobject))))))
7873318d 617
0f49d7ba 618(define-public python2-pygobject
00f2bf34 619 (package (inherit (strip-python2-variant python-pygobject))
0f49d7ba
RW
620 (name "python2-pygobject")
621 (inputs
622 `(("python" ,python-2)
0f49d7ba 623 ("python-pycairo" ,python2-pycairo)
fa7cf82e 624 ("gobject-introspection" ,gobject-introspection)))))
0f49d7ba 625
7873318d
AE
626(define telepathy-glib
627 (package
628 (name "telepathy-glib")
629 (version "0.24.1")
630 (source
631 (origin
632 (method url-fetch)
633 (uri
634 (string-append
5cc3096c 635 "https://telepathy.freedesktop.org/releases/telepathy-glib/"
7873318d
AE
636 "telepathy-glib-" version ".tar.gz"))
637 (sha256
638 (base32
7f48be41
SB
639 "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy"))
640 (patches
641 (list
642 ;; Don't use the same test name for multiple tests.
643 ;; <https://bugs.freedesktop.org/show_bug.cgi?id=92245>
644 (origin
645 (method url-fetch)
646 (uri "https://bugs.freedesktop.org/attachment.cgi?id=118608")
647 (file-name (string-append "telepathy-glib-duplicate-tests.patch"))
648 (sha256
649 (base32
650 "0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3")))))))
7873318d 651 (build-system gnu-build-system)
c73d4c59
LF
652 (arguments
653 '(#:configure-flags '("--enable-vala-bindings")))
7873318d
AE
654 (native-inputs
655 `(("glib" ,glib "bin") ; uses glib-mkenums
d2ab0e90 656 ("gobject-introspection" ,gobject-introspection)
7873318d 657 ("pkg-config" ,pkg-config)
d2ab0e90 658 ("python" ,python-2)
c73d4c59 659 ("vala" ,vala)
d2ab0e90
SB
660 ("xsltproc" ,libxslt)))
661 (propagated-inputs
662 ;; There are all in the Requires.private field of telepathy-glib.pc.
7873318d
AE
663 `(("dbus" ,dbus)
664 ("dbus-glib" ,dbus-glib)
d2ab0e90 665 ("glib" ,glib)))
7873318d
AE
666 (home-page "http://telepathy.freedesktop.org/wiki/")
667 (synopsis "GLib Real-time communications framework over D-Bus")
668 (description "Telepathy is a flexible, modular communications framework
669that enables real-time communication over D-Bus via pluggable protocol
670backends. Telepathy is a communications service that can be accessed by
671many applications simultaneously.
672
673This package provides the library for GLib applications.")
674 (license license:lgpl2.1+)))
89eb7581 675
89eb7581
LG
676(define-public dbus-c++
677 (package
678 (name "dbus-c++")
679 (version "0.9.0")
680 (source (origin
681 (method url-fetch)
682 (uri
683 (string-append
684 "mirror://sourceforge/dbus-cplusplus/dbus-c%2B%2B/"
685 version "/libdbus-c%2B%2B-" version ".tar.gz"))
686 (file-name (string-append name "-" version ".tar.gz"))
687 (sha256
688 (base32
689 "0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw"))))
690 (build-system gnu-build-system)
691 (propagated-inputs
692 `(("dbus" ,dbus))) ;mentioned in the pkg-config file
693 (inputs
694 `(("efl" ,efl)
695 ("expat" ,expat)
696 ("glib" ,glib)))
697 (native-inputs
698 `(("pkg-config" ,pkg-config)))
699 (arguments
700 `(;; The 'configure' machinery fails to detect that it needs -lpthread.
701 #:configure-flags (list "LDFLAGS=-lpthread")
702 #:phases
703 (modify-phases %standard-phases
704 (add-before 'configure 'add-missing-header
705 (lambda _
706 (substitute* "include/dbus-c++/eventloop-integration.h"
707 (("#include <errno.h>")
708 "#include <errno.h>\n#include <unistd.h>")))))))
709 (synopsis "D-Bus API for C++")
710 (description "This package provides D-Bus client API bindings for the C++
711programming langauage. It also contains the utility
712@command{dbuscxx-xml2cpp}.")
713 (home-page "https://sourceforge.net/projects/dbus-cplusplus/")
d06ce046 714 (license license:lgpl2.1+)))
7b83b695
DC
715
716(define-public appstream-glib
717 (package
718 (name "appstream-glib")
b1de6129 719 (version "0.7.5")
7b83b695
DC
720 (source (origin
721 (method url-fetch)
722 (uri (string-append "https://people.freedesktop.org/~hughsient/"
723 "appstream-glib/releases/"
724 "appstream-glib-" version ".tar.xz"))
725 (sha256
726 (base32
b1de6129 727 "0ps80cbqnf3q86rvz3ajqjssdgkjc9kmynqf0wxqfir7ayc9y9ag"))))
318bc429 728 (build-system meson-build-system)
7b83b695 729 (native-inputs
318bc429
TGR
730 `(("gettext" ,gettext-minimal)
731 ("glib:bin" ,glib "bin") ; for glib-compile-resources
732 ("pkg-config" ,pkg-config)))
a48b877e
DM
733 (propagated-inputs
734 `(("gcab" ,gcab) ; for .pc file
735 ("gdk-pixbuf" ,gdk-pixbuf) ; for .pc file
736 ("util-linux" ,util-linux))) ; for .pc file
7b83b695 737 (inputs
a48b877e 738 `(("glib" ,glib)
318bc429 739 ("gperf" ,gperf)
7b83b695
DC
740 ("gtk+" ,gtk+)
741 ("json-glib" ,json-glib)
742 ("libarchive" ,libarchive)
743 ("libsoup" ,libsoup)
a48b877e 744 ("libyaml" ,libyaml)))
7b83b695
DC
745 (arguments
746 `(#:configure-flags
b1de6129
TGR
747 (list "-Ddep11=false"
748 "-Dintrospection=false" ; avoid g-ir-scanner dependency
749 "-Drpm=false"
750 "-Dstemmer=false")
7b83b695
DC
751 #:phases
752 (modify-phases %standard-phases
753 (add-after 'unpack 'patch-tests
754 (lambda _
755 (substitute* "libappstream-glib/as-self-test.c"
318bc429 756 (("g_test_add_func.*as_test_store_local_appdata_func);") ""))
7b83b695
DC
757 #t)))))
758 (home-page "https://github.com/hughsie/appstream-glib")
759 (synopsis "Library for reading and writing AppStream metadata")
760 (description "This library provides objects and helper methods to help
761reading and writing @uref{https://www.freedesktop.org/wiki/Distributions/AppStream,AppStream}
762metadata.")
763 (license license:lgpl2.1+)))
a372c4da
P
764
765(define perl-net-dbus
766 (package
767 (name "perl-net-dbus")
768 (version "1.1.0")
769 (source
770 (origin
771 (method url-fetch)
772 (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-"
773 version ".tar.gz"))
774 (sha256
775 (base32
776 "0sg2w147b9r9ykfzjs7y9qxry73xkjnhnk4qf95kfv79p5nnk4c3"))))
777 (build-system perl-build-system)
778 (native-inputs
779 `(("pkg-config" ,pkg-config)
780 ("perl-test-pod" ,perl-test-pod)
781 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
782 (inputs
783 `(("dbus" ,dbus)))
784 (propagated-inputs
785 `(("perl-xml-twig" ,perl-xml-twig)))
786 (home-page "http://search.cpan.org/dist/Net-DBus/")
787 (synopsis "Extension for the DBus bindings")
788 (description "@code{Net::DBus} provides a Perl XS API to the DBus
789inter-application messaging system. The Perl API covers the core base level
790of the DBus APIs, not concerning itself yet with the GLib or QT wrappers.")
791 (license license:perl-license)))
fc4083c5
P
792
793(define perl-net-dbus-glib
794 (package
795 (name "perl-net-dbus-glib")
796 (version "0.33.0")
797 (source
798 (origin
799 (method url-fetch)
800 (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/"
801 "Net-DBus-GLib-" version ".tar.gz"))
802 (sha256
803 (base32
804 "1z4mbv8z0rad604xahijpg5szzi8qak07hbahh230z4jf96fkxvj"))))
805 (build-system perl-build-system)
806 (native-inputs
807 `(("pkg-config" ,pkg-config)))
808 (inputs
809 `(("dbus-glib" ,dbus-glib)))
810 (home-page "http://search.cpan.org/~danberr/Net-DBus-GLib-0.33.0/")
811 (synopsis "Perl extension for the DBus GLib bindings")
812 (description "This package provides an extension to the @code{Net::DBus}
813module allowing integration with the GLib mainloop. To integrate with the
814main loop, simply get a connection to the bus via the methods in
815@code{Net::DBus::GLib} rather than the usual @code{Net::DBus} module. Every
816other API remains the same.")
817 (license license:gpl2+)))