gnu: intltool: Propagate gettext.
[jackhill/guix/guix.git] / gnu / packages / glib.scm
CommitLineData
3889a82e 1;;; GNU Guix --- Functional package management for GNU
943f33a3 2;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
d6b8cb5c
AE
3;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
4;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
3889a82e
NK
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
943f33a3 21(define-module (gnu packages glib)
d6b8cb5c
AE
22 #:use-module ((guix licenses)
23 #:renamer (symbol-prefix-proc 'license:))
3889a82e
NK
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix build-system gnu)
943f33a3
LC
27 #:use-module (gnu packages)
28 #:use-module (gnu packages base)
29 #:use-module (gnu packages compression)
30 #:use-module ((gnu packages gettext)
3889a82e 31 #:renamer (symbol-prefix-proc 'guix:))
943f33a3 32 #:use-module (gnu packages libffi)
d6b8cb5c 33 #:use-module (gnu packages perl)
943f33a3
LC
34 #:use-module (gnu packages pkg-config)
35 #:use-module (gnu packages python)
d6b8cb5c 36 #:use-module (gnu packages xml))
943f33a3
LC
37
38(define-public dbus
39 (package
40 (name "dbus")
41 (version "1.6.4")
42 (source (origin
43 (method url-fetch)
44 (uri
45 (string-append "http://dbus.freedesktop.org/releases/dbus/dbus-"
46 version ".tar.gz"))
47 (sha256
48 (base32
49 "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz"))))
50 (build-system gnu-build-system)
51 (inputs
d6b8cb5c 52 `(("expat" ,expat)
943f33a3
LC
53 ("pkg-config" ,pkg-config)))
54 (home-page "http://dbus.freedesktop.org/")
55 (synopsis "Message bus for inter-process communication (IPC)")
56 (description
57 "D-Bus is a message bus system, a simple way for applications to
58talk to one another. In addition to interprocess communication, D-Bus
59helps coordinate process lifecycle; it makes it simple and reliable to
60code a \"single instance\" application or daemon, and to launch
61applications and daemons on demand when their services are needed.
62
63D-Bus supplies both a system daemon (for events such as \"new hardware
64device added\" or \"printer queue changed\") and a
65per-user-login-session daemon (for general IPC needs among user
66applications). Also, the message bus is built on top of a general
67one-to-one message passing framework, which can be used by any two apps
68to communicate directly (without going through the message bus
69daemon). Currently the communicating applications are on one computer,
70or through unencrypted TCP/IP suitable for use behind a firewall with
71shared NFS home directories.")
d6b8cb5c 72 (license license:gpl2+))) ; or Academic Free License 2.1
3889a82e
NK
73
74(define-public glib
75 (package
76 (name "glib")
943f33a3 77 (version "2.34.3")
3889a82e
NK
78 (source (origin
79 (method url-fetch)
785db4d8 80 (uri (string-append "mirror://gnome/sources/"
943f33a3
LC
81 name "/2.34/"
82 name "-" version ".tar.xz"))
3889a82e
NK
83 (sha256
84 (base32 "19sq4rhl2vr8ikjvl8qh51vr38yqfhbkb3imi2s6ac5rgkwcnpw5"))))
85 (build-system gnu-build-system)
943f33a3
LC
86 (outputs '("out" ; everything
87 "doc")) ; 20 MiB of GTK-Doc reference
3889a82e
NK
88 (inputs
89 `(("coreutils" ,coreutils)
90 ("gettext" ,guix:gettext)
91 ("libffi" ,libffi)
92 ("pkg-config" ,pkg-config)
93 ("python" ,python)
943f33a3
LC
94 ("zlib" ,zlib)
95 ("perl" ,perl) ; needed by GIO tests
96 ("dbus" ,dbus) ; for GDBus tests
97
98 ("patch/tests-tzdata"
99 ,(search-patch "glib-tests-timezone.patch"))
100 ("patch/tests-homedir"
101 ,(search-patch "glib-tests-homedir.patch"))
102 ("patch/tests-desktop"
785db4d8
LC
103 ,(search-patch "glib-tests-desktop.patch"))
104 ("patch/tests-prlimit"
105 ,(search-patch "glib-tests-prlimit.patch"))))
943f33a3
LC
106 (arguments
107 '(#:patches (list (assoc-ref %build-inputs "patch/tests-tzdata")
108 (assoc-ref %build-inputs "patch/tests-homedir")
785db4d8
LC
109 (assoc-ref %build-inputs "patch/tests-desktop")
110 (assoc-ref %build-inputs "patch/tests-prlimit"))
943f33a3
LC
111 #:phases (alist-cons-before
112 'build 'pre-build
113 (lambda* (#:key inputs outputs #:allow-other-keys)
114 (substitute* '("glib/gspawn.c"
115 "glib/tests/utils.c"
116 "tests/spawn-test.c")
117 (("/bin/sh") (which "sh"))))
118 %standard-phases)
119
120 ;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
121 #:configure-flags (list (string-append "--with-html-dir="
122 (assoc-ref %outputs "doc")
123 "/share/gtk-doc"))))
124 (synopsis "C library that provides core application building blocks")
3889a82e
NK
125 (description
126 "GLib provides data structure handling for C, portability wrappers,
127and interfaces for such runtime functionality as an event loop, threads,
128dynamic loading, and an object system.")
129 (home-page "http://developer.gnome.org/glib/")
d6b8cb5c 130 (license license:lgpl2.0+))) ; some files are under lgpl2.1+
71eb5c10
LC
131
132(define-public intltool
133 (package
134 (name "intltool")
d6b8cb5c 135 (version "0.50.2")
71eb5c10
LC
136 (source (origin
137 (method url-fetch)
d6b8cb5c
AE
138 (uri (string-append "https://launchpad.net/intltool/trunk/"
139 version "/+download/intltool-"
140 version ".tar.gz"))
71eb5c10
LC
141 (sha256
142 (base32
d6b8cb5c 143 "01j4yd7i84n9nk4ccs6yifg84pp68nr9by57jdbhj7dpdxf5rwk7"))))
71eb5c10 144 (build-system gnu-build-system)
71eb5c10 145 (propagated-inputs
107b415e
LC
146 `(;; Propagate gettext because users expect it to be there, and so does
147 ;; the `intltool-update' script.
148 ("gettext" ,guix:gettext)
149
150 ("perl-xml-parser" ,xml:perl-xml-parser)
151 ("perl" ,perl)))
d6b8cb5c
AE
152 (home-page "https://launchpad.net/intltool/+download")
153 (synopsis "Tools to centralise translations of different file formats")
71eb5c10 154 (description
d6b8cb5c 155 "intltool is a set of tools to centralise translations of many different
71eb5c10
LC
156file formats using GNU gettext-compatible PO files.
157
158The intltool collection can be used to do these things:
159
160 Extract translatable strings from various source files (.xml.in,
161 glade, .desktop.in, .server.in, .oaf.in).
162
163 Collect the extracted strings together with messages from traditional
164 source files (.c, .h) in po/$(PACKAGE).pot.
165
166 Merge back the translations from .po files into .xml, .desktop and
167 oaf files. This merge step will happen at build resp. installation time.")
d6b8cb5c 168 (license license:gpl2+)))