~ruther/guix-local

5ade90ba6976a5ce8715de07344985c70c0eda8b — Mark H Weaver 11 years ago 06aac93 + 94987eb
Merge branch 'wip-gobject-introspection'
M gnu/packages/glib.scm => gnu/packages/glib.scm +14 -8
@@ 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 _

M gnu/packages/gnome.scm => gnu/packages/gnome.scm +26 -8
@@ 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

M gnu/packages/gtk.scm => gnu/packages/gtk.scm +14 -12
@@ 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

M gnu/packages/linux.scm => gnu/packages/linux.scm +15 -3
@@ 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

A gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch => gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch +30 -0
@@ 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):

A gnu/packages/patches/gobject-introspection-girepository.patch => gnu/packages/patches/gobject-introspection-girepository.patch +25 -0
@@ 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)
             {

M gnu/packages/python.scm => gnu/packages/python.scm +5 -28
@@ 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)

M gnu/packages/xorg.scm => gnu/packages/xorg.scm +2 -1
@@ 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")