;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;;
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
- #:use-module ((gnu packages gettext)
- #:renamer (symbol-prefix-proc 'guix:))
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libffi)
#:use-module (gnu packages perl)
#:use-module (gnu packages bash)
#:use-module (gnu packages file)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages m4)
;; Export variables up-front to allow circular dependency with the 'xorg'
;; module.
gobject-introspection
dbus-glib
intltool
- itstool))
+ itstool
+ libsigc++
+ glibmm))
(define dbus
(package
version ".tar.gz"))
(sha256
(base32
- "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz"))))
+ "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz"))
+ (patches (list (search-patch "dbus-localstatedir.patch")))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list ;; Install the system bus socket under /var.
;; config.
;; "--sysconfdir=/etc"
- "--with-session-socket-dir=/tmp")
- #:patches (list (assoc-ref %build-inputs "patch/localstatedir"))))
+ "--with-session-socket-dir=/tmp")))
(inputs
`(("expat" ,expat)
("pkg-config" ,pkg-config)
- ("patch/localstatedir"
- ,(search-patch "dbus-localstatedir.patch"))
;; Add a dependency on libx11 so that 'dbus-launch' has support for
;; '--autolaunch'.
(define glib
(package
(name "glib")
- (version "2.38.0")
+ (version "2.39.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
name "/" (string-take version 4) "/"
name "-" version ".tar.xz"))
(sha256
- (base32 "0cpzqadqk6z6bmb79p04pykxc8x57rvshh33414cnk41bvgaf4vm"))))
+ (base32 "0lqi6z47068vgh91fm59jn0kq969wf3g2q8k4m33jsb0amprg36h"))
+ (patches (list (search-patch "glib-tests-homedir.patch")
+ (search-patch "glib-tests-desktop.patch")
+ (search-patch "glib-tests-prlimit.patch")
+ (search-patch "glib-tests-newnet.patch")))))
(build-system gnu-build-system)
(outputs '("out" ; everything
"doc")) ; 20 MiB of GTK-Doc reference
(inputs
`(("coreutils" ,coreutils)
- ("gettext" ,guix:gettext)
("libffi" ,libffi)
+ ("zlib" ,zlib)
+ ("tzdata" ,tzdata))) ; for tests/gdatetime.c
+ (native-inputs
+ `(("gettext" ,gnu-gettext)
+ ("dbus" ,dbus) ; for GDBus tests
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
- ("zlib" ,zlib)
("perl" ,perl) ; needed by GIO tests
- ("dbus" ,dbus) ; for GDBus tests
- ("bash" ,bash)
- ("tzdata" ,tzdata) ; for tests/gdatetime.c
-
- ("patch/tests-homedir"
- ,(search-patch "glib-tests-homedir.patch"))
- ("patch/tests-desktop"
- ,(search-patch "glib-tests-desktop.patch"))
- ("patch/tests-prlimit"
- ,(search-patch "glib-tests-prlimit.patch"))))
+ ("bash" ,bash)))
(arguments
- '(#:patches (list (assoc-ref %build-inputs "patch/tests-homedir")
- (assoc-ref %build-inputs "patch/tests-desktop")
- (assoc-ref %build-inputs "patch/tests-prlimit"))
- #:phases (alist-cons-before
+ '(#:phases (alist-cons-before
'build 'pre-build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; For tests/gdatetime.c.
;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
#:configure-flags (list (string-append "--with-html-dir="
(assoc-ref %outputs "doc")
- "/share/gtk-doc"))))
+ "/share/gtk-doc"))
+
+ ;; In 'gio/tests', 'gdbus-test-codegen-generated.h' is #included in a
+ ;; file that gets compiled possibly before it has been fully generated.
+ #:parallel-tests? #f))
(synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
(description
"GLib provides data structure handling for C, portability wrappers,
"/gobject-introspection-"
version ".tar.xz"))
(sha256
- (base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))))
+ (base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))
+ (patches (list (search-patch "gobject-introspection-cc.patch")))))
(build-system gnu-build-system)
(inputs
`(("bison" ,bison)
("cairo" ,cairo)
("flex" ,flex)
("glib" ,glib)
- ("libffi" ,libffi)
("pkg-config" ,pkg-config)
("python-2" ,python-2)))
+ (propagated-inputs
+ `(;; In practice, GIR users will need libffi when using
+ ;; gobject-introspection.
+ ("libffi" ,libffi)))
(arguments
`(#:phases
(alist-replace
'configure
(lambda* (#:key #:allow-other-keys #:rest args)
(let ((configure (assoc-ref %standard-phases 'configure)))
- ;; giscanner/sourcescanner.py looks for 'CC', let's set it here.
- (setenv "CC" "gcc")
+ (substitute* "giscanner/sourcescanner.py"
+ (("GUIX_GCC_PATH") (which "gcc")))
(apply configure args)))
%standard-phases)))
(home-page "https://wiki.gnome.org/GObjectIntrospection")
(propagated-inputs
`(;; Propagate gettext because users expect it to be there, and so does
;; the `intltool-update' script.
- ("gettext" ,guix:gettext)
+ ("gettext" ,gnu-gettext)
;; `file' is used by `intltool-update' too.
("file" ,file)
"GLib bindings for D-Bus. The package is obsolete and superseded
by GDBus included in Glib.")
(license license:gpl2))) ; or Academic Free License 2.1
+
+(define libsigc++
+ (package
+ (name "libsigc++")
+ (version "2.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/libsigc++/2.3/libsigc++-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "14q3sq6d43f6wfcmwhw4v1aal4ba0h5x9v6wkxy2dnqznd95il37"))))
+ (build-system gnu-build-system)
+ (inputs `(("pkg-config" ,pkg-config)))
+ (native-inputs `(("m4" ,m4)))
+ (home-page "http://libsigc.sourceforge.net/")
+ (synopsis "Type-safe callback system for standard C++")
+ (description
+ "libsigc++ implements a type-safe callback system for standard C++. It
+allows you to define signals and to connect those signals to any callback
+function, either global or a member function, regardless of whether it is
+static or virtual.
+
+It also contains adaptor classes for connection of dissimilar callbacks and
+has an ease of use unmatched by other C++ callback libraries.")
+ (license license:lgpl2.1+)))
+
+(define glibmm
+ (package
+ (name "glibmm")
+ (version "2.37.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/glibmm/2.37/glibmm-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0mms4yl5izsya1135772z4jkb184ss86x0wlg6dm7yvwxvb6bjlw"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (alist-cons-before
+ 'build 'pre-build
+ (lambda _
+ ;; This test uses /etc/fstab as an example file to read
+ ;; from; choose a better example.
+ (substitute* "tests/giomm_simple/main.cc"
+ (("/etc/fstab")
+ (string-append (getcwd)
+ "/tests/giomm_simple/main.cc")))
+
+ ;; This test does a DNS lookup, and then expects to be able
+ ;; to open a TLS session; just skip it.
+ (substitute* "tests/giomm_tls_client/main.cc"
+ (("Gio::init.*$")
+ "return 77;\n")))
+ %standard-phases)))
+ (inputs `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("libsigc++" ,libsigc++)
+ ("glib" ,glib)))
+ (home-page "http://gtkmm.org/")
+ (synopsis "C++ interface to the GLib library")
+ (description
+ "glibmm provides a C++ programming interface to the part of GLib that are
+useful for C++.")
+ (license license:lgpl2.1+)))