From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cyril Roelandt Subject: [PATCH 2/6 v3] gnu: gtk+: enable introspection. Date: Wed, 11 Dec 2013 00:43:11 +0100 Message-ID: <1386718991-695-1-git-send-email-tipecaml@gmail.com> References: <87r49myk5s.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33199) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VqWwX-0007iD-FL for guix-devel@gnu.org; Tue, 10 Dec 2013 18:42:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VqWwS-000224-WB for guix-devel@gnu.org; Tue, 10 Dec 2013 18:42:21 -0500 Received: from mail-wg0-x231.google.com ([2a00:1450:400c:c00::231]:43885) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VqWwS-00021w-MY for guix-devel@gnu.org; Tue, 10 Dec 2013 18:42:16 -0500 Received: by mail-wg0-f49.google.com with SMTP id x12so5579884wgg.28 for ; Tue, 10 Dec 2013 15:42:14 -0800 (PST) In-Reply-To: <87r49myk5s.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org * gnu/packages/gtk.scm (atk, gdk-pixbuf, gtk+, pango): enable introspection * guix/build/gnome.scm: New file. --- Makefile.am | 1 + gnu/packages/glib.scm | 5 ++++- gnu/packages/gtk.scm | 43 +++++++++++++++++++++++++++++++++++++++---- guix/build/gnome.scm | 31 +++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 guix/build/gnome.scm diff --git a/Makefile.am b/Makefile.am index a99f8c1..13088ff 100644 --- a/Makefile.am +++ b/Makefile.am @@ -52,6 +52,7 @@ MODULES = \ guix/ui.scm \ guix/build/download.scm \ guix/build/cmake-build-system.scm \ + guix/build/gnome.scm \ guix/build/gnu-build-system.scm \ guix/build/gnu-dist.scm \ guix/build/linux-initrd.scm \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 1ff873d..185b11a 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -184,9 +184,12 @@ dynamic loading, and an object system.") ("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 diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5aa95fe..f701122 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -54,6 +54,7 @@ "1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) + ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config))) (synopsis "GNOME accessibility toolkit") (description @@ -153,7 +154,8 @@ affine transformation (scale, rotation, shear, etc.)") `(("cairo" ,cairo) ("harfbuzz" ,harfbuzz))) (inputs - `(("pkg-config" ,pkg-config) + `(("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (synopsis "GNOME text and font handling library") (description @@ -231,6 +233,7 @@ printing and other features typical of a source code editor.") (build-system gnu-build-system) (inputs `(("glib" ,glib) + ("gobject-introspection", gobject-introspection) ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libtiff" ,libtiff) @@ -359,16 +362,23 @@ application suites.") ("libxinerama" ,libxinerama) ("pango" ,pango))) (inputs - `(("libxml2" ,libxml2) + `(("gobject-introspection" ,gobject-introspection) + ("libxml2" ,libxml2) ("perl" ,perl) ("pkg-config" ,pkg-config) ("python-wrapper" ,python-wrapper) ("xorg-server" ,xorg-server))) (arguments - `(#:phases + `(#:modules ((guix build gnome) + (guix build gnu-build-system) + (guix build utils)) + #:imported-modules ((guix build gnome) + (guix build gnu-build-system) + (guix build utils)) + #:phases (alist-replace 'configure - (lambda* (#:key #:allow-other-keys #:rest args) + (lambda* (#:key inputs #:allow-other-keys #:rest args) (let ((configure (assoc-ref %standard-phases 'configure))) ;; Disable most tests, failing in the chroot with the message: ;; D-Bus library appears to be incorrectly set up; failed to read @@ -377,6 +387,31 @@ application suites.") ;; See the manual page for dbus-uuidgen to correct this issue. (substitute* "testsuite/Makefile.in" (("SUBDIRS = gdk gtk a11y css reftests") "SUBDIRS = gdk")) + + ;; We need to tell GIR where it can find some of the required .gir + ;; files. + (substitute* "gdk/Makefile.in" + (("--add-include-path=../gdk") + (string-append + "--add-include-path=../gdk" + " --add-include-path=" (gir-directory inputs "gdk-pixbuf") + " --add-include-path=" (gir-directory inputs "pango"))) + (("--includedir=\\.") + (string-append "--includedir=." + " --includedir=" (gir-directory inputs "gdk-pixbuf") + " --includedir=" (gir-directory inputs "pango")))) + + (substitute* "gtk/Makefile.in" + (("--add-include-path=../gdk") + (string-append "--add-include-path=../gdk" + " --add-include-path=" (gir-directory inputs "atk") + " --add-include-path=" (gir-directory inputs "gdk-pixbuf") + " --add-include-path=" (gir-directory inputs "pango"))) + (("--includedir=../gdk") + (string-append "--includedir=../gdk" + " --includedir=" (gir-directory inputs "atk") + " --includedir=" (gir-directory inputs "gdk-pixbuf") + " --includedir=" (gir-directory inputs "pango")))) (apply configure args))) %standard-phases))))) diff --git a/guix/build/gnome.scm b/guix/build/gnome.scm new file mode 100644 index 0000000..cac4de8 --- /dev/null +++ b/guix/build/gnome.scm @@ -0,0 +1,31 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Cyril Roelandt +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build gnome) + #:export (gir-directory)) + +;;; Commentary: +;;; +;;; Tools commonly used when building GNOME programs. +;;; +;;; Code: + +(define (gir-directory inputs pkg-name) + "Return the GIR directory name for PKG-NAME found from INPUTS." + (string-append (assoc-ref inputs pkg-name) + "/share/gir-1.0")) -- 1.8.4.rc3