gnu: tbb: Update to 2020.2.
[jackhill/guix/guix.git] / gnu / packages / glib.scm
CommitLineData
3889a82e 1;;; GNU Guix --- Functional package management for GNU
df09e1d6 2;;; Copyright © 2013, 2014, 2015, 2016, 2019 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>
95346874 5;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
186f99f0 6;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
89eb7581 7;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
2c6ebeb7 8;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
a372c4da 9;;; Copyright © 2017 Petter <petter@mykolab.ch>
93394133 10;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
451f6e30 11;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
cff1927f 12;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
19d0554f 13;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
cc9c83c5 14;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
3889a82e
NK
15;;;
16;;; This file is part of GNU Guix.
17;;;
18;;; GNU Guix is free software; you can redistribute it and/or modify it
19;;; under the terms of the GNU General Public License as published by
20;;; the Free Software Foundation; either version 3 of the License, or (at
21;;; your option) any later version.
22;;;
23;;; GNU Guix is distributed in the hope that it will be useful, but
24;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26;;; GNU General Public License for more details.
27;;;
28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30
943f33a3 31(define-module (gnu packages glib)
943f33a3 32 #:use-module (gnu packages)
7b83b695 33 #:use-module (gnu packages backup)
08a1e906 34 #:use-module (gnu packages base)
9ceb630c 35 #:use-module (gnu packages bison)
59f6dfe5 36 #:use-module (gnu packages check)
943f33a3 37 #:use-module (gnu packages compression)
cff1927f
MC
38 #:use-module (gnu packages docbook)
39 #:use-module (gnu packages documentation)
89eb7581 40 #:use-module (gnu packages enlightenment)
08a1e906 41 #:use-module (gnu packages file)
9ceb630c 42 #:use-module (gnu packages flex)
1dba6407 43 #:use-module (gnu packages gettext)
c73d4c59 44 #:use-module (gnu packages gnome)
318bc429 45 #:use-module (gnu packages gperf)
9ceb630c 46 #:use-module (gnu packages gtk)
943f33a3 47 #:use-module (gnu packages libffi)
2b95aed4 48 #:use-module (gnu packages linux)
08a1e906 49 #:use-module (gnu packages m4)
7b83b695 50 #:use-module (gnu packages nettle)
6983ba56 51 #:use-module (gnu packages pcre)
318bc429 52 #:use-module (gnu packages package-management)
d6b8cb5c 53 #:use-module (gnu packages perl)
5ccde207 54 #:use-module (gnu packages perl-check)
943f33a3
LC
55 #:use-module (gnu packages pkg-config)
56 #:use-module (gnu packages python)
6c237a2d 57 #:use-module (gnu packages selinux)
318bc429 58 #:use-module (gnu packages web)
7bc5cc2b 59 #:use-module (gnu packages xml)
80370441 60 #:use-module (gnu packages xorg)
08a1e906 61 #:use-module (guix build-system gnu)
318bc429 62 #:use-module (guix build-system meson)
08a1e906
TGR
63 #:use-module (guix build-system perl)
64 #:use-module (guix build-system python)
65 #:use-module (guix download)
66 #:use-module ((guix licenses) #:prefix license:)
67 #:use-module (guix packages)
68 #:use-module (guix utils)
3a2efbc8 69 #:use-module (srfi srfi-1)
943f33a3 70
80370441
LC
71 ;; Export variables up-front to allow circular dependency with the 'xorg'
72 ;; module.
73 #:export (dbus
74 glib
6ac6a6b9 75 gobject-introspection
80370441
LC
76 dbus-glib
77 intltool
a5a7d374
LC
78 itstool
79 libsigc++
7873318d 80 glibmm
a372c4da 81 telepathy-glib
fc4083c5
P
82 perl-net-dbus
83 perl-net-dbus-glib))
80370441
LC
84
85(define dbus
943f33a3
LC
86 (package
87 (name "dbus")
a9a78d8b 88 (version "1.12.16")
943f33a3 89 (source (origin
25087f60
SB
90 (method url-fetch)
91 (uri (string-append
7fb51d97 92 "https://dbus.freedesktop.org/releases/dbus/dbus-"
25087f60
SB
93 version ".tar.gz"))
94 (sha256
95 (base32
a9a78d8b 96 "107ckxaff1cv4q6kmfdi2fb1nlsv03312a7kf6lb4biglhpjv8jl"))
fc1adab1 97 (patches (search-patches "dbus-helper-search-path.patch"))))
943f33a3 98 (build-system gnu-build-system)
8eaa8a3b 99 (arguments
25087f60
SB
100 '(#:configure-flags
101 (list
102 ;; Install the system bus socket under /var.
103 "--localstatedir=/var"
8eaa8a3b 104
25087f60
SB
105 ;; Install the session bus socket under /tmp.
106 "--with-session-socket-dir=/tmp"
8eaa8a3b 107
9092e3e9
MB
108 ;; Build shared libraries only.
109 "--disable-static"
110
25087f60
SB
111 ;; Use /etc/dbus-1 for system-wide config.
112 ;; Look for configuration file under
113 ;; /etc/dbus-1. This is notably required by
114 ;; 'dbus-daemon-launch-helper', which looks for
115 ;; the 'system.conf' file in that place,
116 ;; regardless of what '--config-file' was
117 ;; passed to 'dbus-daemon' on the command line;
118 ;; see <https://bugs.freedesktop.org/show_bug.cgi?id=92458>.
119 "--sysconfdir=/etc")
120 #:phases
121 (modify-phases %standard-phases
122 (replace 'install
123 (lambda _
124 ;; Don't try to create /var and /etc.
d009c44a
MW
125 (invoke "make"
126 "localstatedir=/tmp/dummy"
127 "sysconfdir=/tmp/dummy"
128 "install"))))))
708be46b 129 (native-inputs
cff1927f
MC
130 `(("pkg-config" ,pkg-config)
131 ;; Dependencies to generate the doc.
132 ("docbook-xml" ,docbook-xml-4.4)
133 ("docbook-xsl" ,docbook-xsl)
134 ("doxygen" ,doxygen)
135 ("xmlto" ,xmlto)
136 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
137 ("libxslt" ,libxslt)
138 ("yelp-tools" ,yelp-tools)))
943f33a3 139 (inputs
d6b8cb5c 140 `(("expat" ,expat)
80370441
LC
141 ;; Add a dependency on libx11 so that 'dbus-launch' has support for
142 ;; '--autolaunch'.
143 ("libx11" ,libx11)))
cff1927f 144 (outputs '("out" "doc")) ;22 MiB of HTML doc
57e7d748 145 (home-page "https://www.freedesktop.org/wiki/Software/dbus/")
943f33a3
LC
146 (synopsis "Message bus for inter-process communication (IPC)")
147 (description
148 "D-Bus is a message bus system, a simple way for applications to
35b9e423 149talk to one another. In addition to interprocess communication, D-Bus
943f33a3
LC
150helps coordinate process lifecycle; it makes it simple and reliable to
151code a \"single instance\" application or daemon, and to launch
152applications and daemons on demand when their services are needed.
153
154D-Bus supplies both a system daemon (for events such as \"new hardware
155device added\" or \"printer queue changed\") and a
156per-user-login-session daemon (for general IPC needs among user
35b9e423 157applications). Also, the message bus is built on top of a general
943f33a3
LC
158one-to-one message passing framework, which can be used by any two apps
159to communicate directly (without going through the message bus
35b9e423 160daemon). Currently the communicating applications are on one computer,
943f33a3
LC
161or through unencrypted TCP/IP suitable for use behind a firewall with
162shared NFS home directories.")
d6b8cb5c 163 (license license:gpl2+))) ; or Academic Free License 2.1
3889a82e 164
80370441 165(define glib
3889a82e
NK
166 (package
167 (name "glib")
235a4d61 168 (version "2.62.6")
3889a82e
NK
169 (source (origin
170 (method url-fetch)
785db4d8 171 (uri (string-append "mirror://gnome/sources/"
d274f499 172 name "/" (string-take version 4) "/"
943f33a3 173 name "-" version ".tar.xz"))
3889a82e 174 (sha256
f47f6761 175 (base32
235a4d61 176 "174bsmbmcvaw69ff9g60q5sx0fn23rkhqcwqz17h5s7sprps4kqh"))
f9f72d35 177 (patches (search-patches "glib-tests-timer.patch"))
6898f5b4
MB
178 (modules '((guix build utils)))
179 (snippet
180 '(begin
181 (substitute* "tests/spawn-test.c"
182 (("/bin/sh") "sh"))
183 #t))))
6c237a2d 184 (build-system meson-build-system)
426adbe8 185 (outputs '("out" ; everything
6c237a2d 186 "bin")) ; glib-mkenums, gtester, etc.; depends on Python
6983ba56 187 (propagated-inputs
6c237a2d
RW
188 `(("pcre" ,pcre) ; in the Requires.private field of glib-2.0.pc
189 ("libffi" ,libffi) ; in the Requires.private field of gobject-2.0.pc
190 ;; These are in the Requires.private field of gio-2.0.pc
bb93042c 191 ("util-linux" ,util-linux "lib") ;for libmount
6c237a2d 192 ("libselinux" ,libselinux)
3ffaec13 193 ("zlib" ,zlib)))
c4c4cc05 194 (native-inputs
b94a6ca0 195 `(("gettext" ,gettext-minimal)
220bcf6f 196 ("m4" ,m4) ; for installing m4 macros
c4c4cc05 197 ("dbus" ,dbus) ; for GDBus tests
3889a82e 198 ("pkg-config" ,pkg-config)
ee3e314b 199 ("python" ,python-wrapper)
943f33a3 200 ("perl" ,perl) ; needed by GIO tests
f9c3bd2e 201 ("tzdata" ,tzdata-for-tests))) ; for tests/gdatetime.c
943f33a3 202 (arguments
922ed1db 203 `(#:disallowed-references (,tzdata-for-tests)
d12eaa68 204 #:phases
6983ba56 205 (modify-phases %standard-phases
7da3e81a
MC
206 (add-after 'unpack 'patch-dbus-launch-path
207 (lambda* (#:key inputs #:allow-other-keys)
208 (let ((dbus (assoc-ref inputs "dbus")))
209 (substitute* "gio/gdbusaddress.c"
210 (("command_line = g_strdup_printf \\(\"dbus-launch")
211 (string-append "command_line = g_strdup_printf (\""
212 dbus "/bin/dbus-launch")))
213 #t)))
0bcc1b14
DM
214 (add-after 'unpack 'patch-gio-launch-desktop
215 (lambda* (#:key outputs #:allow-other-keys)
216 (let ((out (assoc-ref outputs "out")))
217 ;; See also <https://gitlab.gnome.org/GNOME/glib/issues/1633>
218 ;; for another future fix.
219 (substitute* "gio/gdesktopappinfo.c"
220 (("gio-launch-desktop")
221 (string-append out "/libexec/gio-launch-desktop")))
222 #t)))
6983ba56
SB
223 (add-before 'build 'pre-build
224 (lambda* (#:key inputs outputs #:allow-other-keys)
225 ;; For tests/gdatetime.c.
226 (setenv "TZDIR"
227 (string-append (assoc-ref inputs "tzdata")
228 "/share/zoneinfo"))
229
230 ;; Some tests want write access there.
231 (setenv "HOME" (getcwd))
232 (setenv "XDG_CACHE_HOME" (getcwd))
81f6bf2d 233 #t))
6c237a2d 234 (add-after 'unpack 'disable-failing-tests
6983ba56
SB
235 (lambda _
236 (let ((disable
237 (lambda (test-file test-paths)
238 (define pattern+procs
239 (map (lambda (test-path)
240 (cons
241 ;; XXX: only works for single line statements.
242 (format #f "g_test_add_func.*\"~a\".*" test-path)
243 (const "")))
244 test-paths))
245 (substitute test-file pattern+procs)))
246 (failing-tests
247 '(("glib/tests/thread.c"
248 (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
249 ;; as found on hydra.gnu.org, and strace(1) doesn't
250 ;; recognize it.
251 "/thread/thread4"))
252
6c237a2d
RW
253 ;; This tries to find programs in FHS directories.
254 ("glib/tests/utils.c"
255 ("/utils/find-program"))
256
257 ;; This fails because "glib/tests/echo-script" cannot be
258 ;; found.
259 ("glib/tests/spawn-singlethread.c"
260 ("/gthread/spawn-script"))
261
6983ba56
SB
262 ("glib/tests/timer.c"
263 (;; fails if compiler optimizations are enabled, which they
264 ;; are by default.
265 "/timer/stop"))
266
267 ("gio/tests/gapplication.c"
268 (;; XXX: proven to be unreliable. See:
269 ;; <https://bugs.debian.org/756273>
270 ;; <http://bugs.gnu.org/18445>
271 "/gapplication/quit"
272
273 ;; XXX: fails randomly for unknown reason. See:
274 ;; <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html>
275 "/gapplication/local-actions"))
276
277 ("gio/tests/contenttype.c"
278 (;; XXX: requires shared-mime-info.
279 "/contenttype/guess"
2f437b22 280 "/contenttype/guess_svg_from_data"
6983ba56
SB
281 "/contenttype/subtype"
282 "/contenttype/list"
283 "/contenttype/icon"
284 "/contenttype/symbolic-icon"
285 "/contenttype/tree"))
286
287 ("gio/tests/appinfo.c"
288 (;; XXX: requires update-desktop-database.
289 "/appinfo/associations"))
290
291 ("gio/tests/desktop-app-info.c"
292 (;; XXX: requires update-desktop-database.
293 "/desktop-app-info/delete"
294 "/desktop-app-info/default"
295 "/desktop-app-info/fallback"
296 "/desktop-app-info/lastused"
297 "/desktop-app-info/search"))
298
299 ("gio/tests/gdbus-peer.c"
300 (;; Requires /etc/machine-id.
301 "/gdbus/codegen-peer-to-peer"))
302
23572ded 303 ("gio/tests/gdbus-address-get-session.c"
6983ba56 304 (;; Requires /etc/machine-id.
6898f5b4
MB
305 "/gdbus/x11-autolaunch"))
306
307 ("gio/tests/gsocketclient-slow.c"
308 (;; These tests tries to resolve "localhost", and fails.
309 "/socket-client/happy-eyeballs/slow"
310 "/socket-client/happy-eyeballs/cancellation/delayed"))
311
312 )))
81f6bf2d 313 (for-each (lambda (x) (apply disable x)) failing-tests)
6c237a2d 314 #t)))
6898f5b4
MB
315 (replace 'check
316 (lambda _
317 (setenv "MESON_TESTTHREADS"
318 (number->string (parallel-job-count)))
319 ;; Do not run tests marked as "flaky".
320 (invoke "meson" "test" "--no-suite" "flaky")))
6c237a2d
RW
321 ;; TODO: meson does not permit the bindir to be outside of prefix.
322 ;; See https://github.com/mesonbuild/meson/issues/2561
323 ;; We can remove this once meson is patched.
324 (add-after 'install 'move-executables
325 (lambda* (#:key outputs #:allow-other-keys)
326 (let ((out (assoc-ref outputs "out"))
327 (bin (assoc-ref outputs "bin")))
328 (mkdir-p bin)
329 (rename-file (string-append out "/bin")
330 (string-append bin "/bin"))
0bcc1b14
DM
331 ;; This one is an implementation detail of glib.
332 ;; It is wrong that that's in "/bin" in the first place,
333 ;; but that's what upstream is doing right now.
334 ;; See <https://gitlab.gnome.org/GNOME/glib/issues/1633>.
335 (mkdir (string-append out "/libexec"))
336 (rename-file (string-append bin "/bin/gio-launch-desktop")
337 (string-append out "/libexec/gio-launch-desktop"))
6c237a2d
RW
338 ;; Do not refer to "bindir", which points to "${prefix}/bin".
339 ;; We don't patch "bindir" to point to "$bin/bin", because that
340 ;; would create a reference cycle between the "out" and "bin"
341 ;; outputs.
342 (substitute* (list (string-append out "/lib/pkgconfig/gio-2.0.pc")
343 (string-append out "/lib/pkgconfig/glib-2.0.pc"))
344 (("bindir=\\$\\{prefix\\}/bin") "")
345 (("=\\$\\{bindir\\}/") "="))
6898f5b4 346 #t))))))
6c237a2d
RW
347 ;; TODO: see above for explanation.
348 ;; #:configure-flags (list (string-append "--bindir="
349 ;; (assoc-ref %outputs "bin")
350 ;; "/bin"))
00585a55 351
ce2df078
LC
352 (native-search-paths
353 ;; This variable is not really "owned" by GLib, but several related
354 ;; packages refer to it: gobject-introspection's tools use it as a search
355 ;; path for .gir files, and it's also a search path for schemas produced
356 ;; by 'glib-compile-schemas'.
357 (list (search-path-specification
358 (variable "XDG_DATA_DIRS")
1b85e57f
SB
359 (files '("share")))
360 ;; To load extra gio modules from glib-networking, etc.
361 (search-path-specification
362 (variable "GIO_EXTRA_MODULES")
363 (files '("lib/gio/modules")))))
ce2df078 364 (search-paths native-search-paths)
f678cc9c 365 (properties '((hidden? . #t)))
ce2df078 366
f50d2669 367 (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
3889a82e
NK
368 (description
369 "GLib provides data structure handling for C, portability wrappers,
370and interfaces for such runtime functionality as an event loop, threads,
371dynamic loading, and an object system.")
f032d0be 372 (home-page "https://developer.gnome.org/glib/")
c60ecc35 373 (license license:lgpl2.1+)))
71eb5c10 374
f678cc9c
PN
375(define-public glib-with-documentation
376 ;; glib's doc must be built in a separate package since it requires gtk-doc,
377 ;; which in turn depends on glib.
378 (package
379 (inherit glib)
380 (properties (alist-delete 'hidden? (package-properties glib)))
381 (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
382 (native-inputs
383 `(("gtk-doc" ,gtk-doc) ; for the doc
384 ("docbook-xml" ,docbook-xml)
385 ("libxml2" ,libxml2)
386 ,@(package-native-inputs glib)))
387 (arguments
388 (substitute-keyword-arguments (package-arguments glib)
389 ((#:configure-flags flags ''())
390 `(cons "-Dgtk_doc=true" ,flags))
391 ((#:phases phases)
392 `(modify-phases ,phases
393 (add-after 'install 'move-doc
394 (lambda* (#:key outputs #:allow-other-keys)
395 (let ((out (assoc-ref outputs "out"))
396 (doc (assoc-ref outputs "doc"))
397 (html (string-append "/share/gtk-doc")))
398 (copy-recursively (string-append out html)
399 (string-append doc html))
400 (delete-file-recursively (string-append out html))
401 #t)))))))))
402
6ac6a6b9 403(define gobject-introspection
9ceb630c
CR
404 (package
405 (name "gobject-introspection")
49d71673 406 (version "1.62.0")
9ceb630c
CR
407 (source (origin
408 (method url-fetch)
cc84b08c 409 (uri (string-append "mirror://gnome/sources/"
2474b81d
FB
410 "gobject-introspection/" (version-major+minor version)
411 "/gobject-introspection-" version ".tar.xz"))
9ceb630c 412 (sha256
49d71673 413 (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi"))
fc1adab1
AK
414 (patches (search-patches
415 "gobject-introspection-cc.patch"
416 "gobject-introspection-girepository.patch"
417 "gobject-introspection-absolute-shlib-path.patch"))))
f2a0f03b 418 (build-system meson-build-system)
036c86be 419 (arguments
f2a0f03b 420 `(#:phases
036c86be
RW
421 (modify-phases %standard-phases
422 (add-after 'unpack 'do-not-use-/usr/bin/env
423 (lambda _
424 (substitute* "tools/g-ir-tool-template.in"
425 (("#!@PYTHON_CMD@")
426 (string-append "#!" (which "python3"))))
427 #t)))))
9ceb630c
CR
428 (inputs
429 `(("bison" ,bison)
9ceb630c
CR
430 ("flex" ,flex)
431 ("glib" ,glib)
036c86be
RW
432 ("python" ,python-wrapper)
433 ("zlib" ,zlib)))
426adbe8 434 (native-inputs
f2a0f03b 435 `(("glib" ,glib "bin")
d7e92b87 436 ("pkg-config" ,pkg-config)))
af949e8e
CR
437 (propagated-inputs
438 `(;; In practice, GIR users will need libffi when using
439 ;; gobject-introspection.
440 ("libffi" ,libffi)))
5a4753a6
FB
441 (native-search-paths
442 (list (search-path-specification
443 (variable "GI_TYPELIB_PATH")
af070955 444 (files '("lib/girepository-1.0")))))
5a4753a6 445 (search-paths native-search-paths)
9ceb630c
CR
446 (home-page "https://wiki.gnome.org/GObjectIntrospection")
447 (synopsis "Generate interface introspection data for GObject libraries")
448 (description
449 "GObject introspection is a middleware layer between C libraries (using
450GObject) and language bindings. The C library can be scanned at compile time
451and generate a metadata file, in addition to the actual native C library. Then
452at runtime, language bindings can read this metadata and automatically provide
453bindings to call into the C library.")
454 ; Some bits are distributed under the LGPL2+, others under the GPL2+
455 (license license:gpl2+)))
456
80370441 457(define intltool
71eb5c10
LC
458 (package
459 (name "intltool")
fa09ebfa 460 (version "0.51.0")
71eb5c10
LC
461 (source (origin
462 (method url-fetch)
d6b8cb5c
AE
463 (uri (string-append "https://launchpad.net/intltool/trunk/"
464 version "/+download/intltool-"
465 version ".tar.gz"))
92cb946b 466 (patches (search-patches "intltool-perl-compatibility.patch"))
71eb5c10
LC
467 (sha256
468 (base32
fa09ebfa 469 "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7"))))
71eb5c10 470 (build-system gnu-build-system)
93882f0e
EB
471 (inputs
472 `(("file" ,file)))
71eb5c10 473 (propagated-inputs
107b415e
LC
474 `(;; Propagate gettext because users expect it to be there, and so does
475 ;; the `intltool-update' script.
b94a6ca0 476 ("gettext" ,gettext-minimal)
107b415e 477
e33d9d6f 478 ("perl-xml-parser" ,perl-xml-parser)
107b415e 479 ("perl" ,perl)))
93882f0e 480 (arguments
e0f71c80
TGR
481 `(#:phases
482 (modify-phases %standard-phases
483 (add-after 'unpack 'patch-file-references
484 (lambda* (#:key inputs #:allow-other-keys)
485 (let ((file (assoc-ref inputs "file")))
486 (substitute* "intltool-update.in"
487 (("`file") (string-append "`" file "/bin/file")))
488 #t))))))
d6b8cb5c
AE
489 (home-page "https://launchpad.net/intltool/+download")
490 (synopsis "Tools to centralise translations of different file formats")
71eb5c10 491 (description
35b9e423 492 "Intltool is a set of tools to centralise translations of many different
71eb5c10
LC
493file formats using GNU gettext-compatible PO files.
494
495The intltool collection can be used to do these things:
496
497 Extract translatable strings from various source files (.xml.in,
498 glade, .desktop.in, .server.in, .oaf.in).
499
500 Collect the extracted strings together with messages from traditional
501 source files (.c, .h) in po/$(PACKAGE).pot.
502
503 Merge back the translations from .po files into .xml, .desktop and
35b9e423 504 oaf files. This merge step will happen at build resp. installation time.")
d6b8cb5c 505 (license license:gpl2+)))
24b5c463 506
80370441 507(define itstool
20a26ff5
CR
508 (package
509 (name "itstool")
d7b63ba9 510 (version "2.0.6")
20a26ff5
CR
511 (source (origin
512 (method url-fetch)
513 (uri (string-append "http://files.itstool.org/itstool/itstool-"
514 version ".tar.bz2"))
515 (sha256
516 (base32
d7b63ba9 517 "1acjgf8zlyk7qckdk19iqaca4jcmywd7vxjbcs1mm6kaf8icqcv2"))))
20a26ff5 518 (build-system gnu-build-system)
4b58d88b 519 (inputs
f922fc42 520 `(("libxml2" ,libxml2)
d7b63ba9
MB
521 ("python-libxml2" ,python-libxml2)
522 ("python" ,python)))
4b58d88b
SB
523 (arguments
524 '(#:phases
525 (modify-phases %standard-phases
13fbd174
KK
526 (add-after 'install 'wrap-program
527 (lambda* (#:key outputs #:allow-other-keys)
528 (let ((prog (string-append (assoc-ref outputs "out")
529 "/bin/itstool")))
530 (wrap-program prog
bca24131
MW
531 `("PYTHONPATH" = (,(getenv "PYTHONPATH"))))
532 #t))))))
20a26ff5
CR
533 (home-page "http://www.itstool.org")
534 (synopsis "Tool to translate XML documents with PO files")
535 (description
536 "ITS Tool allows you to translate your XML documents with PO files, using
537rules from the W3C Internationalization Tag Set (ITS) to determine what to
538translate and how to separate it into PO file messages.
539
540PO files are the standard translation format for GNU and other Unix-like
541systems. They present translatable information as discrete messages, allowing
542each message to be translated independently. In contrast to whole-page
543translation, translating with a message-based format like PO means you can
544easily track changes to the source document down to the paragraph. When new
545strings are added or existing strings are modified, you only need to update the
546corresponding messages.
547
548ITS Tool is designed to make XML documents translatable through PO files by
549applying standard ITS rules, as well as extension rules specific to ITS Tool.
550ITS also provides an industry standard way for authors to override translation
551information in their documents, such as whether a particular element should be
552translated.")
a129e0d8 553 (license license:gpl3+)))
20a26ff5 554
80370441 555(define dbus-glib
24b5c463
AE
556 (package
557 (name "dbus-glib")
a645a5a3 558 (version "0.110")
24b5c463
AE
559 (source (origin
560 (method url-fetch)
561 (uri
5cc3096c 562 (string-append "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-"
24b5c463
AE
563 version ".tar.gz"))
564 (sha256
565 (base32
a645a5a3 566 "09g8swvc95bk1z6j8sw463p2v0dqmgm2zjfndf7i8sbcyq67dr3w"))))
24b5c463 567 (build-system gnu-build-system)
2e88d113 568 (propagated-inputs ; according to dbus-glib-1.pc
24b5c463 569 `(("dbus" ,dbus)
44add1ce 570 ("glib" ,glib)))
2e88d113
AE
571 (inputs
572 `(("expat" ,expat)))
44add1ce
LC
573 (native-inputs
574 `(("glib" ,glib "bin")
24b5c463 575 ("pkg-config" ,pkg-config)))
57e7d748 576 (home-page "https://dbus.freedesktop.org/doc/dbus-glib/")
24b5c463
AE
577 (synopsis "D-Bus GLib bindings")
578 (description
579 "GLib bindings for D-Bus. The package is obsolete and superseded
580by GDBus included in Glib.")
581 (license license:gpl2))) ; or Academic Free License 2.1
a5a7d374
LC
582
583(define libsigc++
584 (package
585 (name "libsigc++")
0eb56ccb 586 (version "2.10.3")
a5a7d374
LC
587 (source (origin
588 (method url-fetch)
e7a720e6
SB
589 (uri (string-append "mirror://gnome/sources/libsigc++/"
590 (version-major+minor version) "/"
591 name "-" version ".tar.xz"))
a5a7d374
LC
592 (sha256
593 (base32
0eb56ccb 594 "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))
a5a7d374 595 (build-system gnu-build-system)
41eb1198
LC
596 (native-inputs `(("pkg-config" ,pkg-config)
597 ("m4" ,m4)))
e0dcd84d 598 (home-page "https://libsigcplusplus.github.io/libsigcplusplus/")
a5a7d374
LC
599 (synopsis "Type-safe callback system for standard C++")
600 (description
35b9e423 601 "Libsigc++ implements a type-safe callback system for standard C++. It
a5a7d374
LC
602allows you to define signals and to connect those signals to any callback
603function, either global or a member function, regardless of whether it is
604static or virtual.
605
606It also contains adaptor classes for connection of dissimilar callbacks and
607has an ease of use unmatched by other C++ callback libraries.")
608 (license license:lgpl2.1+)))
609
610(define glibmm
611 (package
612 (name "glibmm")
c8257208 613 (version "2.62.0")
a5a7d374
LC
614 (source (origin
615 (method url-fetch)
3d6befa4
MW
616 (uri (string-append "mirror://gnome/sources/glibmm/"
617 (version-major+minor version)
618 "/glibmm-" version ".tar.xz"))
a5a7d374
LC
619 (sha256
620 (base32
c8257208 621 "1ziwx6r7k7wbvg4qq1rgrv8zninapgrmhn1hs6926a3krh9ryr9n"))))
a5a7d374
LC
622 (build-system gnu-build-system)
623 (arguments
d93dab5d 624 `(#:phases
dc1d3cde
KK
625 (modify-phases %standard-phases
626 (add-before 'build 'pre-build
627 (lambda _
628 ;; This test uses /etc/fstab as an example file to read
629 ;; from; choose a better example.
630 (substitute* "tests/giomm_simple/main.cc"
631 (("/etc/fstab")
632 (string-append (getcwd)
633 "/tests/giomm_simple/main.cc")))
634
635 ;; This test does a DNS lookup, and then expects to be able
636 ;; to open a TLS session; just skip it.
637 (substitute* "tests/giomm_tls_client/main.cc"
638 (("Gio::init.*$")
639 "return 77;\n"))
640 #t)))))
41eb1198
LC
641 (native-inputs `(("pkg-config" ,pkg-config)
642 ("glib" ,glib "bin")))
a5a7d374
LC
643 (propagated-inputs
644 `(("libsigc++" ,libsigc++)
645 ("glib" ,glib)))
8e933cb3 646 (home-page "https://gtkmm.org/")
a5a7d374
LC
647 (synopsis "C++ interface to the GLib library")
648 (description
35b9e423 649 "Glibmm provides a C++ programming interface to the part of GLib that are
a5a7d374
LC
650useful for C++.")
651 (license license:lgpl2.1+)))
a1de06b6
EB
652
653(define-public python2-pygobject-2
654 (package
655 (name "python2-pygobject")
656 ;; This was the last version to declare the 2.0 platform number, i.e. its
657 ;; pkg-config files were named pygobject-2.0.pc
30e43e81 658 (version "2.28.7")
a1de06b6
EB
659 (source
660 (origin
661 (method url-fetch)
662 (uri (string-append "mirror://gnome/sources/pygobject/"
663 (version-major+minor version)
664 "/pygobject-" version ".tar.xz"))
665 (sha256
666 (base32
30e43e81 667 "0nkam61rsn7y3wik3vw46wk5q2cjfh2iph57hl9m39rc8jijb7dv"))
fc1adab1
AK
668 (patches (search-patches
669 "python2-pygobject-2-gi-info-type-error-domain.patch"))))
a1de06b6
EB
670 (build-system gnu-build-system)
671 (native-inputs
672 `(("which" ,which)
673 ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas
674 ("pkg-config" ,pkg-config)
675 ("dbus" ,dbus))) ;for tests
676 (inputs
677 `(("python" ,python-2)
678 ("glib" ,glib)
7ca0dbc3 679 ("python2-pycairo" ,python2-pycairo)
a1de06b6
EB
680 ("gobject-introspection" ,gobject-introspection)))
681 (propagated-inputs
682 `(("libffi" ,libffi))) ;mentioned in pygobject-2.0.pc
683 (arguments
684 `(#:tests? #f ;segfaults during tests
685 #:configure-flags '("LIBS=-lcairo-gobject")))
e85af137 686 (home-page "https://pypi.org/project/PyGObject/")
a1de06b6
EB
687 (synopsis "Python bindings for GObject")
688 (description
689 "Python bindings for GLib, GObject, and GIO.")
690 (license license:lgpl2.1+)))
691
692(define-public python-pygobject
693 (package
694 (name "python-pygobject")
cc9c83c5 695 (version "3.34.0")
a1de06b6
EB
696 (source
697 (origin
698 (method url-fetch)
699 (uri (string-append "mirror://gnome/sources/pygobject/"
700 (version-major+minor version)
701 "/pygobject-" version ".tar.xz"))
702 (sha256
703 (base32
cc9c83c5
MB
704 "06i7ynnbvgpz0gw09zsjbvhgcp5qz4yzdifw27qjwdazg2mckql7"))
705 (modules '((guix build utils)))
706 (snippet
707 '(begin
708 ;; We disable these tests in a snippet so that they are inherited
709 ;; by the Python 2 variant which is built differently.
710 (with-directory-excursion "tests"
711 ;; FIXME: These tests require Gdk and/or Gtk 4.
712 (for-each delete-file
713 '("test_atoms.py" "test_overrides_gtk.py"))
d2e1da18 714 #t)))))
cc9c83c5 715 (build-system meson-build-system)
a1de06b6 716 (native-inputs
cc9c83c5 717 `(("glib-bin" ,glib "bin")
59f6dfe5
RW
718 ("pkg-config" ,pkg-config)
719 ("python-pytest" ,python-pytest)))
a1de06b6
EB
720 (inputs
721 `(("python" ,python)
a1de06b6 722 ("python-pycairo" ,python-pycairo)
fa7cf82e
SB
723 ("gobject-introspection" ,gobject-introspection)))
724 (propagated-inputs
725 ;; pygobject-3.0.pc refers to all these.
726 `(("glib" ,glib)
a1de06b6 727 ("libffi" ,libffi)))
e28f95a9
SB
728 ;; For finding typelib files, since gobject-introscpetion isn't propagated.
729 (native-search-paths (package-native-search-paths gobject-introspection))
594a362b 730 (home-page "https://live.gnome.org/PyGObject")
a1de06b6
EB
731 (synopsis "Python bindings for GObject")
732 (description
733 "Python bindings for GLib, GObject, and GIO.")
00f2bf34
LC
734 (license license:lgpl2.1+)
735 (properties `((python2-variant . ,(delay python2-pygobject))))))
7873318d 736
0f49d7ba 737(define-public python2-pygobject
00f2bf34 738 (package (inherit (strip-python2-variant python-pygobject))
0f49d7ba 739 (name "python2-pygobject")
cc9c83c5
MB
740
741 ;; Note: We use python-build-system here, because Meson only supports
742 ;; Python 3, and needs PYTHONPATH etc set up correctly, which makes it
743 ;; difficult to use for Python 2 projects.
744 (build-system python-build-system)
745 (arguments
746 `(#:python ,python-2
747 #:phases
748 (modify-phases %standard-phases
749 (add-after 'unpack 'delete-broken-tests
750 (lambda _
751 ;; FIXME: this test freezes and times out.
752 (delete-file "tests/test_mainloop.py")
753 ;; FIXME: this test fails with this kind of error:
754 ;; AssertionError: <Handlers.SIG_IGN: 1> != <built-in function default_int_handler
755 (delete-file "tests/test_ossig.py")
756 #t)))))
0f49d7ba 757 (inputs
cc9c83c5 758 `(("python-pycairo" ,python2-pycairo)
1b043aeb
RW
759 ("gobject-introspection" ,gobject-introspection)))
760 (native-inputs
cc9c83c5 761 `(("glib-bin" ,glib "bin")
1b043aeb
RW
762 ("pkg-config" ,pkg-config)
763 ("python-pytest" ,python2-pytest)))))
0f49d7ba 764
451f6e30
AV
765(define-public perl-glib
766 (package
767 (name "perl-glib")
186f99f0 768 (version "1.3292")
451f6e30
AV
769 (source (origin
770 (method url-fetch)
771 (uri (string-append
772 "mirror://cpan/authors/id/X/XA/XAOC/Glib-"
773 version ".tar.gz"))
774 (sha256
775 (base32
186f99f0 776 "1q5075d6v2g5sm675hyzrcpxsrh09z83crfci8b0wl3jwmnz0frg"))))
451f6e30
AV
777 (build-system perl-build-system)
778 (native-inputs
779 `(("perl-extutils-depends" ,perl-extutils-depends)
780 ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
781 (inputs
782 `(("glib" ,glib)))
9aba9b12 783 (home-page "https://metacpan.org/release/Glib")
451f6e30
AV
784 (synopsis "Perl wrappers for the GLib utility and Object libraries")
785 (description "This module provides perl access to GLib and GLib's GObject
786libraries. GLib is a portability and utility library; GObject provides a
787generic type system with inheritance and a powerful signal system. Together
788these libraries are used as the foundation for many of the libraries that make
789up the Gnome environment, and are used in many unrelated projects.")
790 (license license:lgpl2.1+)))
791
7873318d
AE
792(define telepathy-glib
793 (package
794 (name "telepathy-glib")
795 (version "0.24.1")
796 (source
797 (origin
798 (method url-fetch)
799 (uri
800 (string-append
5cc3096c 801 "https://telepathy.freedesktop.org/releases/telepathy-glib/"
7873318d
AE
802 "telepathy-glib-" version ".tar.gz"))
803 (sha256
804 (base32
7f48be41
SB
805 "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy"))
806 (patches
807 (list
6457ae13 808 (search-patch "telepathy-glib-channel-memory-leak.patch")
7f48be41
SB
809 ;; Don't use the same test name for multiple tests.
810 ;; <https://bugs.freedesktop.org/show_bug.cgi?id=92245>
811 (origin
812 (method url-fetch)
813 (uri "https://bugs.freedesktop.org/attachment.cgi?id=118608")
814 (file-name (string-append "telepathy-glib-duplicate-tests.patch"))
815 (sha256
816 (base32
817 "0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3")))))))
7873318d 818 (build-system gnu-build-system)
c73d4c59 819 (arguments
df09e1d6
LC
820 '(#:configure-flags '("--enable-vala-bindings")
821
822 ;; '../tools/glib-*.py' generate files but the target dependencies are
823 ;; (presumably) not fully specified in the makefile, leading to
824 ;; parallel build errors like:
825 ;;
826 ;; EOFError: EOF read where object expected
827 ;; make[2]: *** [Makefile:1906: _gen/register-dbus-glib-marshallers-body.h] Error 1
9064cde1
KK
828 #:parallel-build? #f
829 #:phases
830 (modify-phases %standard-phases
831 (add-after 'unpack 'disable-failing-tests
832 (lambda _
833 ;; None of the tests below are able to find the org.gtk.vfs.Daemon
834 ;; service file provided by gvfs.
835 (substitute* "tests/dbus/Makefile.in"
836 (("test-contacts\\$\\(EXEEXT\\)") "")
837 (("test-file-transfer-channel\\$\\(EXEEXT\\)") "")
838 (("test-stream-tube\\$\\(EXEEXT\\)") ""))
839 #t)))))
7873318d
AE
840 (native-inputs
841 `(("glib" ,glib "bin") ; uses glib-mkenums
d2ab0e90 842 ("gobject-introspection" ,gobject-introspection)
7873318d 843 ("pkg-config" ,pkg-config)
d2ab0e90 844 ("python" ,python-2)
c73d4c59 845 ("vala" ,vala)
d2ab0e90
SB
846 ("xsltproc" ,libxslt)))
847 (propagated-inputs
848 ;; There are all in the Requires.private field of telepathy-glib.pc.
7873318d
AE
849 `(("dbus" ,dbus)
850 ("dbus-glib" ,dbus-glib)
d2ab0e90 851 ("glib" ,glib)))
57e7d748 852 (home-page "https://telepathy.freedesktop.org/wiki/")
7873318d
AE
853 (synopsis "GLib Real-time communications framework over D-Bus")
854 (description "Telepathy is a flexible, modular communications framework
855that enables real-time communication over D-Bus via pluggable protocol
856backends. Telepathy is a communications service that can be accessed by
857many applications simultaneously.
858
859This package provides the library for GLib applications.")
860 (license license:lgpl2.1+)))
89eb7581 861
89eb7581
LG
862(define-public dbus-c++
863 (package
864 (name "dbus-c++")
865 (version "0.9.0")
866 (source (origin
867 (method url-fetch)
868 (uri
869 (string-append
870 "mirror://sourceforge/dbus-cplusplus/dbus-c%2B%2B/"
871 version "/libdbus-c%2B%2B-" version ".tar.gz"))
872 (file-name (string-append name "-" version ".tar.gz"))
497b2d39
MB
873 (patches (search-patches "dbus-c++-gcc-compat.patch"
874 "dbus-c++-threading-mutex.patch"))
89eb7581
LG
875 (sha256
876 (base32
877 "0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw"))))
878 (build-system gnu-build-system)
879 (propagated-inputs
880 `(("dbus" ,dbus))) ;mentioned in the pkg-config file
881 (inputs
882 `(("efl" ,efl)
883 ("expat" ,expat)
884 ("glib" ,glib)))
885 (native-inputs
886 `(("pkg-config" ,pkg-config)))
887 (arguments
888 `(;; The 'configure' machinery fails to detect that it needs -lpthread.
889 #:configure-flags (list "LDFLAGS=-lpthread")
890 #:phases
891 (modify-phases %standard-phases
892 (add-before 'configure 'add-missing-header
893 (lambda _
894 (substitute* "include/dbus-c++/eventloop-integration.h"
895 (("#include <errno.h>")
497b2d39
MB
896 "#include <errno.h>\n#include <unistd.h>"))
897 #t)))))
89eb7581
LG
898 (synopsis "D-Bus API for C++")
899 (description "This package provides D-Bus client API bindings for the C++
add43093 900programming language. It also contains the utility
89eb7581
LG
901@command{dbuscxx-xml2cpp}.")
902 (home-page "https://sourceforge.net/projects/dbus-cplusplus/")
d06ce046 903 (license license:lgpl2.1+)))
7b83b695
DC
904
905(define-public appstream-glib
906 (package
907 (name "appstream-glib")
c1a86b66 908 (version "0.7.17")
7b83b695
DC
909 (source (origin
910 (method url-fetch)
911 (uri (string-append "https://people.freedesktop.org/~hughsient/"
912 "appstream-glib/releases/"
913 "appstream-glib-" version ".tar.xz"))
914 (sha256
915 (base32
c1a86b66 916 "0jg58m1p5xfrh8zkpqhhg00nqs727z5i1qy6sb0a3vyc98fyk9vw"))))
318bc429 917 (build-system meson-build-system)
7b83b695 918 (native-inputs
318bc429
TGR
919 `(("gettext" ,gettext-minimal)
920 ("glib:bin" ,glib "bin") ; for glib-compile-resources
921 ("pkg-config" ,pkg-config)))
a48b877e
DM
922 (propagated-inputs
923 `(("gcab" ,gcab) ; for .pc file
924 ("gdk-pixbuf" ,gdk-pixbuf) ; for .pc file
bb93042c 925 ("libuuid" ,util-linux "lib"))) ; for .pc file
7b83b695 926 (inputs
a48b877e 927 `(("glib" ,glib)
318bc429 928 ("gperf" ,gperf)
7b83b695
DC
929 ("gtk+" ,gtk+)
930 ("json-glib" ,json-glib)
931 ("libarchive" ,libarchive)
932 ("libsoup" ,libsoup)
a48b877e 933 ("libyaml" ,libyaml)))
7b83b695
DC
934 (arguments
935 `(#:configure-flags
b1de6129
TGR
936 (list "-Ddep11=false"
937 "-Dintrospection=false" ; avoid g-ir-scanner dependency
938 "-Drpm=false"
939 "-Dstemmer=false")
7b83b695
DC
940 #:phases
941 (modify-phases %standard-phases
942 (add-after 'unpack 'patch-tests
943 (lambda _
944 (substitute* "libappstream-glib/as-self-test.c"
318bc429 945 (("g_test_add_func.*as_test_store_local_appdata_func);") ""))
7b83b695
DC
946 #t)))))
947 (home-page "https://github.com/hughsie/appstream-glib")
948 (synopsis "Library for reading and writing AppStream metadata")
949 (description "This library provides objects and helper methods to help
950reading and writing @uref{https://www.freedesktop.org/wiki/Distributions/AppStream,AppStream}
951metadata.")
952 (license license:lgpl2.1+)))
a372c4da
P
953
954(define perl-net-dbus
955 (package
956 (name "perl-net-dbus")
957 (version "1.1.0")
958 (source
959 (origin
960 (method url-fetch)
961 (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-"
962 version ".tar.gz"))
963 (sha256
964 (base32
965 "0sg2w147b9r9ykfzjs7y9qxry73xkjnhnk4qf95kfv79p5nnk4c3"))))
966 (build-system perl-build-system)
967 (native-inputs
968 `(("pkg-config" ,pkg-config)
969 ("perl-test-pod" ,perl-test-pod)
970 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
971 (inputs
972 `(("dbus" ,dbus)))
973 (propagated-inputs
974 `(("perl-xml-twig" ,perl-xml-twig)))
9aba9b12 975 (home-page "https://metacpan.org/release/Net-DBus")
a372c4da
P
976 (synopsis "Extension for the DBus bindings")
977 (description "@code{Net::DBus} provides a Perl XS API to the DBus
978inter-application messaging system. The Perl API covers the core base level
979of the DBus APIs, not concerning itself yet with the GLib or QT wrappers.")
980 (license license:perl-license)))
fc4083c5
P
981
982(define perl-net-dbus-glib
983 (package
984 (name "perl-net-dbus-glib")
985 (version "0.33.0")
986 (source
987 (origin
988 (method url-fetch)
989 (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/"
990 "Net-DBus-GLib-" version ".tar.gz"))
991 (sha256
992 (base32
993 "1z4mbv8z0rad604xahijpg5szzi8qak07hbahh230z4jf96fkxvj"))))
994 (build-system perl-build-system)
995 (native-inputs
996 `(("pkg-config" ,pkg-config)))
997 (inputs
998 `(("dbus-glib" ,dbus-glib)))
9aba9b12 999 (home-page "https://metacpan.org/release/Net-DBus-GLib")
fc4083c5
P
1000 (synopsis "Perl extension for the DBus GLib bindings")
1001 (description "This package provides an extension to the @code{Net::DBus}
1002module allowing integration with the GLib mainloop. To integrate with the
1003main loop, simply get a connection to the bus via the methods in
1004@code{Net::DBus::GLib} rather than the usual @code{Net::DBus} module. Every
1005other API remains the same.")
1006 (license license:gpl2+)))
19d0554f
GL
1007
1008(define-public template-glib
1009 (package
1010 (name "template-glib")
1011 (version "3.32.0")
1012 (source (origin
1013 (method url-fetch)
1014 (uri (string-append "mirror://gnome/sources/" name "/"
1015 (version-major+minor version) "/"
1016 name "-" version ".tar.xz"))
1017 (sha256
1018 (base32
1019 "1g0zx0sxpw8kqp7p3sgl9kngaqrg9xl6cir24nrahks0vgsk98rr"))))
1020 (build-system meson-build-system)
1021 (arguments
1022 `(#:configure-flags '("-D" "enable_gtk_doc=true")))
1023 (inputs
1024 `(("gettext" ,gettext-minimal)
1025 ("glib" ,glib)
1026 ("gobject-introspection" ,gobject-introspection)))
1027 (native-inputs
1028 `(("bison" ,bison)
1029 ("flex" ,flex)
1030 ("glib:bin" ,glib "bin") ;; For glib-mkenums
1031 ("gtk-doc" ,gtk-doc)
1032 ("pkg-config" ,pkg-config)
1033 ("vala" ,vala)))
1034 (home-page "https://gitlab.gnome.org/GNOME/template-glib")
1035 (synopsis "Library for template expansion")
1036 (description
1037 "Template-GLib is a library to help you generate text based on a template and
1038user defined state. Template-GLib does not use a language runtime, so it is
1039safe to use from any GObject-Introspectable language.
1040
1041Template-GLib allows you to access properties on GObjects as well as call
1042simple methods via GObject-Introspection.")
1043 (license license:lgpl2.1+)))
9e0cb9d7
MB
1044
1045(define-public xdg-dbus-proxy
1046 (package
1047 (name "xdg-dbus-proxy")
1048 (version "0.1.2")
1049 (source (origin
1050 (method url-fetch)
1051 (uri (string-append "https://github.com/flatpak/xdg-dbus-proxy"
1052 "/releases/download/" version
1053 "/xdg-dbus-proxy-" version ".tar.xz"))
1054 (sha256
1055 (base32
1056 "03sj1h0c2l08xa8phw013fnxr4fgav7l2mkjhzf9xk3dykwxcj8p"))))
1057 (build-system gnu-build-system)
1058 (native-inputs
1059 `(("pkg-config" ,pkg-config)
1060
1061 ;; For tests.
1062 ("dbus" ,dbus)
1063
1064 ;; These are required to build the manual.
1065 ("docbook-xml" ,docbook-xml-4.3)
1066 ("docbook-xsl" ,docbook-xsl)
1067 ("libxml2" ,libxml2)
1068 ("xsltproc" ,libxslt)))
1069 (inputs
1070 `(("glib" ,glib)))
1071 (home-page "https://github.com/flatpak/xdg-dbus-proxy")
1072 (synopsis "D-Bus connection proxy")
1073 (description
1074 "xdg-dbus-proxy is a filtering proxy for D-Bus connections. It can be
1075used to create D-Bus sockets inside a Linux container that forwards requests
1076to the host system, optionally with filters applied.")
1077 (license license:lgpl2.1+)))