summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-01-25 21:15:13 -0500
committerMark H Weaver <mhw@netris.org>2015-01-25 21:15:13 -0500
commit5ade90ba6976a5ce8715de07344985c70c0eda8b (patch)
tree7d42618d87ebd8888223e2aa1d0cd5375b3a7712
parent06aac933e1cc97781db0d28eb86b5d984099a30e (diff)
parent94987ebe136569dfe0180277384d7c04e18ab78c (diff)
downloadguix-5ade90ba6976a5ce8715de07344985c70c0eda8b.tar.gz
Merge branch 'wip-gobject-introspection'
-rw-r--r--gnu/packages/glib.scm22
-rw-r--r--gnu/packages/gnome.scm34
-rw-r--r--gnu/packages/gtk.scm26
-rw-r--r--gnu/packages/linux.scm18
-rw-r--r--gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch30
-rw-r--r--gnu/packages/patches/gobject-introspection-girepository.patch25
-rw-r--r--gnu/packages/python.scm33
-rw-r--r--gnu/packages/xorg.scm3
8 files changed, 131 insertions, 60 deletions
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index edf7945d63..bbb57335a5 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -204,17 +204,20 @@ dynamic loading, and an object system.")
 (define gobject-introspection
   (package
     (name "gobject-introspection")
-    (version "1.38.0")
+    (version "1.42.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://ftp.gnome.org/pub/GNOME/sources/"
-                   "gobject-introspection/"
-                   (substring version 0 (string-rindex version #\.))
-                   "/gobject-introspection-"
-                   version ".tar.xz"))
+                   "gobject-introspection/" (version-major+minor version)
+                   "/gobject-introspection-" version ".tar.xz"))
              (sha256
-              (base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))
-             (patches (list (search-patch "gobject-introspection-cc.patch")))))
+              (base32 "1xwm7wmr9r9wp6xljb3bckx3a4siybavaq39w46ly7gpskxfv8iv"))
+             (patches (list 
+                       (search-patch "gobject-introspection-cc.patch")
+                       (search-patch
+                        "gobject-introspection-girepository.patch")
+                       (search-patch 
+                        "gobject-introspection-absolute-shlib-path.patch")))))
     (build-system gnu-build-system)
     (inputs
      `(("bison" ,bison)
@@ -235,7 +238,10 @@ dynamic loading, and an object system.")
             (files '("lib/girepository-1.0")))))
     (search-paths native-search-paths)
     (arguments
-     `(#:phases
+     `(;; The patch 'gobject-introspection-absolute-shlib-path.patch' causes
+       ;; some tests to fail.
+       #:tests? #f
+       #:phases
         (alist-cons-before
          'configure 'patch-paths
          (lambda _
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0a6c1d4d73..535913bcf1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -427,7 +428,7 @@ some form of information without getting in the user's way.")
 (define-public libpeas
   (package
     (name "libpeas")
-    (version "1.9.0")
+    (version "1.12.1")
     (source
      (origin
       (method url-fetch)
@@ -436,7 +437,7 @@ some form of information without getting in the user's way.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "13fzyzv6c0cfdj83z1s16lv8k997wpnzyzr0wfwcfkcmvz64g1q0"))))
+        "1mjjjjwphc83bjznmbsm7x0jg7ql261nys6qnl7mi0nkr4qvw476"))))
     (build-system gnu-build-system)
     (inputs
      `(("atk" ,atk)
@@ -449,6 +450,13 @@ some form of information without getting in the user's way.")
        ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)))
+    (arguments
+     `(#:phases 
+       (alist-cons-before
+        'build 'pre-build
+        (lambda* _
+          (setenv "CC" "gcc"))
+        %standard-phases)))
     (home-page "https://wiki.gnome.org/Libpeas")
     (synopsis "GObject plugin system")
     (description
@@ -457,7 +465,6 @@ every application the chance to assume its own extensibility.  It also has a
 set of features including, but not limited to: multiple extension points; on
 demand (lazy) programming language support for C, Python and JS; simplicity of
 the API")
-
     (license license:lgpl2.0+)))
 
 (define-public gtkglext
@@ -580,7 +587,7 @@ dealing with different structured file formats.")
 (define-public librsvg
   (package
     (name "librsvg")
-    (version "2.40.2")
+    (version "2.40.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -588,7 +595,7 @@ dealing with different structured file formats.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "071959yjb2i1bja7ciy4bmpnd6fn2is9jjqsvvvnsqwl69j9n128"))))
+                "01jgb11779080b80k2ncrhdphgillqrrnszal6vh8yv787r4kwwa"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -600,7 +607,7 @@ dealing with different structured file formats.")
             ;; gdk-pixbuf's prefix.  Work around that.
             (("gdk_pixbuf_moduledir = .*$")
              (string-append "gdk_pixbuf_moduledir = "
-                            "$(prefix)/lib/gdk-pixbuf-2.0/2.0.10/"
+                            "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
                              "loaders\n"))
             ;; Likewise, create a separate 'loaders.cache' file.
             (("gdk_pixbuf_cache_file = .*$")
@@ -610,7 +617,7 @@ dealing with different structured file formats.")
          (lambda* (#:key inputs outputs #:allow-other-keys)
            (let ((loaders-directory 
                   (string-append (assoc-ref outputs "out")
-                                 "/lib/gdk-pixbuf-2.0/2.0.10/loaders")))
+                                 "/lib/gdk-pixbuf-2.0/2.10.0/loaders")))
              (zero?
               (system 
                (string-append 
@@ -619,7 +626,11 @@ dealing with different structured file formats.")
                 (string-join (find-files (assoc-ref inputs "gdk-pixbuf") 
                                          "libpixbufloader-.*\\.so") " ")
                 "> " loaders-directory ".cache")))))
-         %standard-phases))))
+         (alist-cons-before
+          'build 'pre-build
+          (lambda* _
+            (setenv "CC" "gcc"))
+          %standard-phases)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")                               ; glib-mkenums, etc.
@@ -1344,6 +1355,13 @@ libraries written in C.")
        ("xmllint" ,libxml2)))
     (propagated-inputs
      `(("gtk+" ,gtk+))) ; required by libvte-2.91.pc
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'build 'pre-build
+        (lambda* _
+          (setenv "CC" "gcc"))
+        %standard-phases)))
     (home-page "http://www.gnome.org/")
     (synopsis "Virtual Terminal Emulator")
     (description
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index b03cf76182..6bd4e3665a 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,7 +47,7 @@
 (define-public atk
   (package
    (name "atk")
-   (version "2.10.0")
+   (version "2.15.3")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -54,7 +55,7 @@
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3"))))
+              "177a9x6lz2im0mfgxv2crv0l740wy7rg5vlnb8wyyf4fmnh0q19f")))) ; 2.15.3
    (build-system gnu-build-system)
    (inputs `(("glib" ,glib)))
    (native-inputs
@@ -151,14 +152,15 @@ affine transformation (scale, rotation, shear, etc.)")
 (define-public pango
   (package
    (name "pango")
-   (version "1.34.1")
+   (version "1.36.8")
    (source (origin
             (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/pango/1.34/pango-"
-                                version ".tar.xz"))
+            (uri (string-append "mirror://gnome/sources/pango/"
+                                (version-major+minor version) "/"
+                                name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0k7662qix7zzh7mf6ikdj594n8jpbfm25z8swz64zbm86kgk1shs"))))
+              "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"))))
    (build-system gnu-build-system)
    (propagated-inputs
     `(("cairo" ,cairo)
@@ -265,7 +267,7 @@ printing and other features typical of a source code editor.")
 (define-public gdk-pixbuf
   (package
    (name "gdk-pixbuf")
-   (version "2.28.2")
+   (version "2.31.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -273,7 +275,7 @@ printing and other features typical of a source code editor.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "05s6ksvy1yan6h6zny9n3bmvygcnzma6ljl6i0z9cci2xg116c8q"))))
+              "1kajvfckn88bzcdnl73b933gmjhwjm3dhsj1yrpixhfsc4y5x9r5"))))
    (build-system gnu-build-system)
    (propagated-inputs ; required by gdk-pixbuf-2.0.pc
     `(("glib" ,glib)
@@ -394,7 +396,7 @@ application suites.")
 (define-public gtk+
   (package (inherit gtk+-2)
    (name "gtk+")
-   (version "3.10.1")
+   (version "3.14.7")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -402,7 +404,7 @@ application suites.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1f3a7r3z7i9xh5imlfpfcgyydzkj2fnd0v6ylvqxij0yzfbnhbn1"))))
+              "0vm40n6nf0w3vv54wqy67jcxddka7hplksi093xim3119yq196gv"))))
    (propagated-inputs
     `(("at-spi2-atk" ,at-spi2-atk)
       ("atk" ,atk)
@@ -584,7 +586,7 @@ toolkit.")
 (define-public gtkmm
   (package
     (name "gtkmm")
-    (version "3.9.16")
+    (version "3.14.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -592,7 +594,7 @@ toolkit.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "0yf8wwv4w02p70nrxsbs0nhm0w4gkn2wggdjygd8vif062anf1rs"))))
+               "12z4g2in82nk92nfjs2hmrdcwbav8v3laz1813x2dhkf5jk2ixfr"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (propagated-inputs
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3d677f2208..50e90f0da3 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1437,7 +1438,7 @@ from the module-init-tools project.")
   ;; The post-systemd fork, maintained by Gentoo.
   (package
     (name "eudev")
-    (version "1.10")
+    (version "2.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1445,7 +1446,7 @@ from the module-init-tools project.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1l907bvz6dcykvaq8d4iklvfpb9fyrnh1a29g3c28gkx2hlyn7j0"))
+                "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva"))
               (patches (list (search-patch "eudev-rules-directory.patch")))
               (modules '((guix build utils)))
               (snippet
@@ -1482,7 +1483,18 @@ from the module-init-tools project.")
 
                                ;; Work around undefined reference to
                                ;; 'mq_getattr' in sc-daemon.c.
-                               "LDFLAGS=-lrt")))
+                               "LDFLAGS=-lrt")
+       #:phases 
+       (alist-cons-before
+        'build 'pre-build
+        ;; The program 'g-ir-scanner' (part of the package
+        ;; 'gobject-introspection'), to generate .gir files, makes some
+        ;; library pre-processing.  During that phase it looks for the C
+        ;; compiler as either 'cc' or as defined by the environment variable
+        ;; 'CC' (with code in 'giscanner/dumper.py').
+        (lambda* _
+          (setenv "CC" "gcc"))
+        %standard-phases)))
     (home-page "http://www.gentoo.org/proj/en/eudev/")
     (synopsis "Userspace device management")
     (description "Udev is a daemon which dynamically creates and removes
diff --git a/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
new file mode 100644
index 0000000000..d00cc5a420
--- /dev/null
+++ b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
@@ -0,0 +1,30 @@
+# Names of libraries included in typelib files are opened by dlopen.  Here we 
+# add the full path.
+#
+# This patch was provided by Luca Bruno <lucabru@src.gnome.org>  for 
+# 'gobject-introspection' 1.40.0 in Nix. 
+--- ./giscanner/utils.py.orig	2014-08-14 22:05:05.055334080 +0200
++++ ./giscanner/utils.py	2014-08-14 22:05:24.687497334 +0200
+@@ -110,17 +110,11 @@
+     if dlname is None:
+         return None
+ 
+-    # Darwin uses absolute paths where possible; since the libtool files never
+-    # contain absolute paths, use the libdir field
+-    if platform.system() == 'Darwin':
+-        dlbasename = os.path.basename(dlname)
+-        libdir = _extract_libdir_field(la_file)
+-        if libdir is None:
+-            return dlbasename
+-        return libdir + '/' + dlbasename
+-    # From the comments in extract_libtool(), older libtools had
+-    # a path rather than the raw dlname
+-    return os.path.basename(dlname)
++    dlbasename = os.path.basename(dlname)
++    libdir = _extract_libdir_field(la_file)
++    if libdir is None:
++        return dlbasename
++    return libdir + '/' + dlbasename
+ 
+ 
+ def extract_libtool(la_file):
diff --git a/gnu/packages/patches/gobject-introspection-girepository.patch b/gnu/packages/patches/gobject-introspection-girepository.patch
new file mode 100644
index 0000000000..380617f27f
--- /dev/null
+++ b/gnu/packages/patches/gobject-introspection-girepository.patch
@@ -0,0 +1,25 @@
+--- a/girepository/gitypelib.c.orig
++++ b/girepository/gitypelib.c
+@@ -2296,7 +2296,22 @@ _g_typelib_do_dlopen (GITypelib *typelib)
+         {
+           GModule *module;
+ 
++          /* 'gobject-introspection' doesn't store the path of shared
++             libraries into '.typelib' and '.gir' files.  Shared
++             libraries are searched for in the dynamic linker search
++             path.  In Guix we patch 'gobject-introspection' such that
++             it stores the absolute path of shared libraries in
++             '.typelib' and '.gir' files.  Here, in order to minimize
++             side effects, we make sure that if the library is not
++             found at the indicated path location, we try with just
++             the basename and the system dynamic library
++             infrastructure, as per default behaviour of the
++             library. */
+           module = load_one_shared_library (shlibs[i]);
++          if (module == NULL && g_path_is_absolute (shlibs[i]))
++            {
++              module = load_one_shared_library (g_basename(shlibs[i]));
++            }
+ 
+           if (module == NULL)
+             {
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5555acfbfa..4b306952c1 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2170,13 +2170,6 @@ that client code uses to construct the grammar directly in Python code.")
        ;; at run-time the user must set this variable as follows:
        ;;
        ;; export GI_TYPELIB_PATH=~/.guix-profile/lib/girepository-1.0
-       ;;
-       ;; 'typelib' files include references to dynamic libraries. Currently
-       ;; the references do not include the full path to the libraries. For
-       ;; this reason the user must set the LD_LIBRARY_PATH to the location of 
-       ;; 'libgtk-3.so.0', 'libgdk-3.so.0' and 'libatk-1.0.so.0':
-       ;;
-       ;; export LD_LIBRARY_PATH=~/.guix-profile/lib
        ("gtk+" ,gtk+)
        ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
        ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
@@ -2199,7 +2192,7 @@ that client code uses to construct the grammar directly in Python code.")
        ("freetype" ,freetype)
        ("cairo" ,cairo)
        ("glib" ,glib)
-       ("python-pillow" ,python-pillow)
+       ;("python-pillow" ,python-pillow)
        ;; FIXME: Add backends when available.
        ;("python-wxpython" ,python-wxpython)
        ;("python-pyqt" ,python-pyqt)
@@ -2217,10 +2210,6 @@ that client code uses to construct the grammar directly in Python code.")
                 (gtk+ (assoc-ref inputs "gtk+")))
             ;; Setting these directories in the 'basedirlist' of 'setup.cfg'
             ;; has not effect.
-            ;;
-            ;; FIXME: setting LD_LIBRARY_PATH should be removed once we patch
-            ;; gobject-introspection to include the full path of shared
-            ;; libraries in 'typelib' files.
             (setenv "LD_LIBRARY_PATH"
                     (string-append cairo "/lib:" gtk+ "/lib"))
             (setenv "HOME" (getcwd))
@@ -2282,30 +2271,18 @@ toolkits.")
          ,@(alist-delete "python-numpydoc" 
                          (package-inputs matplotlib)))))))
 
-;; Scipy 0.14.0 with Numpy 0.19.X fails several tests.  This is known and
-;; planned to be fixed in 0.14.1.  It is claimed that the failures can safely
-;; be ignored:
-;; http://mail.scipy.org/pipermail/scipy-dev/2014-September/020043.html
-;; https://github.com/scipy/scipy/issues/3853 
-;;
-;; The main test suite procedure prints the summary message:
-;;
-;; Ran 16412 tests in 245.033s
-;; FAILED (KNOWNFAIL=277, SKIP=921, errors=327, failures=42)
-;; 
-;; However, it still does return normally.
 (define-public python-scipy
   (package
     (name "python-scipy")
-    (version "0.14.0")
+    (version "0.15.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/scipy"
-                           "/scipy-" version ".tar.gz"))
+                           "/scipy-" version ".tar.xz"))
        (sha256
         (base32
-         "053bmz4qmnk4dmxvspfak8r10rpmy6mzwfzgy33z338ppzka6hab"))))
+         "0fsqi05s035d7p6s8h3h2pvk1axias16chy17rw9l1bxvrfhmncf"))))
     (build-system python-build-system)
     (inputs
      `(("python-numpy" ,python-numpy)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index ff4488b8ef..b636918139 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -4463,7 +4463,8 @@ kernel mode setting (KMS).")
        `(("python" ,python-wrapper)
          ("pkg-config" ,pkg-config)))
     (arguments
-     `(#:configure-flags
+     `(#:parallel-tests? #f
+       #:configure-flags
        (list (string-append "--with-xkb-path="
                             (assoc-ref %build-inputs "xkeyboard-config")
                             "/share/X11/xkb")