Merge branch 'wip-gobject-introspection'

This commit is contained in:
Mark H Weaver 2015-01-25 21:15:13 -05:00
commit 5ade90ba69
8 changed files with 131 additions and 60 deletions

View File

@ -204,17 +204,20 @@ dynamic loading, and an object system.")
(define gobject-introspection (define gobject-introspection
(package (package
(name "gobject-introspection") (name "gobject-introspection")
(version "1.38.0") (version "1.42.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://ftp.gnome.org/pub/GNOME/sources/" (uri (string-append "http://ftp.gnome.org/pub/GNOME/sources/"
"gobject-introspection/" "gobject-introspection/" (version-major+minor version)
(substring version 0 (string-rindex version #\.)) "/gobject-introspection-" version ".tar.xz"))
"/gobject-introspection-"
version ".tar.xz"))
(sha256 (sha256
(base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m")) (base32 "1xwm7wmr9r9wp6xljb3bckx3a4siybavaq39w46ly7gpskxfv8iv"))
(patches (list (search-patch "gobject-introspection-cc.patch"))))) (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) (build-system gnu-build-system)
(inputs (inputs
`(("bison" ,bison) `(("bison" ,bison)
@ -235,7 +238,10 @@ dynamic loading, and an object system.")
(files '("lib/girepository-1.0"))))) (files '("lib/girepository-1.0")))))
(search-paths native-search-paths) (search-paths native-search-paths)
(arguments (arguments
`(#:phases `(;; The patch 'gobject-introspection-absolute-shlib-path.patch' causes
;; some tests to fail.
#:tests? #f
#:phases
(alist-cons-before (alist-cons-before
'configure 'patch-paths 'configure 'patch-paths
(lambda _ (lambda _

View File

@ -3,6 +3,7 @@
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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 (define-public libpeas
(package (package
(name "libpeas") (name "libpeas")
(version "1.9.0") (version "1.12.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -436,7 +437,7 @@ some form of information without getting in the user's way.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"13fzyzv6c0cfdj83z1s16lv8k997wpnzyzr0wfwcfkcmvz64g1q0")))) "1mjjjjwphc83bjznmbsm7x0jg7ql261nys6qnl7mi0nkr4qvw476"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("atk" ,atk) `(("atk" ,atk)
@ -449,6 +450,13 @@ some form of information without getting in the user's way.")
("glib:bin" ,glib "bin") ("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)
("intltool" ,intltool))) ("intltool" ,intltool)))
(arguments
`(#:phases
(alist-cons-before
'build 'pre-build
(lambda* _
(setenv "CC" "gcc"))
%standard-phases)))
(home-page "https://wiki.gnome.org/Libpeas") (home-page "https://wiki.gnome.org/Libpeas")
(synopsis "GObject plugin system") (synopsis "GObject plugin system")
(description (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 set of features including, but not limited to: multiple extension points; on
demand (lazy) programming language support for C, Python and JS; simplicity of demand (lazy) programming language support for C, Python and JS; simplicity of
the API") the API")
(license license:lgpl2.0+))) (license license:lgpl2.0+)))
(define-public gtkglext (define-public gtkglext
@ -580,7 +587,7 @@ dealing with different structured file formats.")
(define-public librsvg (define-public librsvg
(package (package
(name "librsvg") (name "librsvg")
(version "2.40.2") (version "2.40.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -588,7 +595,7 @@ dealing with different structured file formats.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"071959yjb2i1bja7ciy4bmpnd6fn2is9jjqsvvvnsqwl69j9n128")))) "01jgb11779080b80k2ncrhdphgillqrrnszal6vh8yv787r4kwwa"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -600,7 +607,7 @@ dealing with different structured file formats.")
;; gdk-pixbuf's prefix. Work around that. ;; gdk-pixbuf's prefix. Work around that.
(("gdk_pixbuf_moduledir = .*$") (("gdk_pixbuf_moduledir = .*$")
(string-append "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")) "loaders\n"))
;; Likewise, create a separate 'loaders.cache' file. ;; Likewise, create a separate 'loaders.cache' file.
(("gdk_pixbuf_cache_file = .*$") (("gdk_pixbuf_cache_file = .*$")
@ -610,7 +617,7 @@ dealing with different structured file formats.")
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((loaders-directory (let ((loaders-directory
(string-append (assoc-ref outputs "out") (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? (zero?
(system (system
(string-append (string-append
@ -619,7 +626,11 @@ dealing with different structured file formats.")
(string-join (find-files (assoc-ref inputs "gdk-pixbuf") (string-join (find-files (assoc-ref inputs "gdk-pixbuf")
"libpixbufloader-.*\\.so") " ") "libpixbufloader-.*\\.so") " ")
"> " loaders-directory ".cache"))))) "> " loaders-directory ".cache")))))
%standard-phases)))) (alist-cons-before
'build 'pre-build
(lambda* _
(setenv "CC" "gcc"))
%standard-phases)))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("glib" ,glib "bin") ; glib-mkenums, etc. ("glib" ,glib "bin") ; glib-mkenums, etc.
@ -1344,6 +1355,13 @@ libraries written in C.")
("xmllint" ,libxml2))) ("xmllint" ,libxml2)))
(propagated-inputs (propagated-inputs
`(("gtk+" ,gtk+))) ; required by libvte-2.91.pc `(("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/") (home-page "http://www.gnome.org/")
(synopsis "Virtual Terminal Emulator") (synopsis "Virtual Terminal Emulator")
(description (description

View File

@ -3,6 +3,7 @@
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -46,7 +47,7 @@
(define-public atk (define-public atk
(package (package
(name "atk") (name "atk")
(version "2.10.0") (version "2.15.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -54,7 +55,7 @@
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3")))) "177a9x6lz2im0mfgxv2crv0l740wy7rg5vlnb8wyyf4fmnh0q19f")))) ; 2.15.3
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("glib" ,glib))) (inputs `(("glib" ,glib)))
(native-inputs (native-inputs
@ -151,14 +152,15 @@ affine transformation (scale, rotation, shear, etc.)")
(define-public pango (define-public pango
(package (package
(name "pango") (name "pango")
(version "1.34.1") (version "1.36.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/pango/1.34/pango-" (uri (string-append "mirror://gnome/sources/pango/"
version ".tar.xz")) (version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0k7662qix7zzh7mf6ikdj594n8jpbfm25z8swz64zbm86kgk1shs")))) "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("cairo" ,cairo) `(("cairo" ,cairo)
@ -265,7 +267,7 @@ printing and other features typical of a source code editor.")
(define-public gdk-pixbuf (define-public gdk-pixbuf
(package (package
(name "gdk-pixbuf") (name "gdk-pixbuf")
(version "2.28.2") (version "2.31.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (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")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"05s6ksvy1yan6h6zny9n3bmvygcnzma6ljl6i0z9cci2xg116c8q")))) "1kajvfckn88bzcdnl73b933gmjhwjm3dhsj1yrpixhfsc4y5x9r5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs ; required by gdk-pixbuf-2.0.pc (propagated-inputs ; required by gdk-pixbuf-2.0.pc
`(("glib" ,glib) `(("glib" ,glib)
@ -394,7 +396,7 @@ application suites.")
(define-public gtk+ (define-public gtk+
(package (inherit gtk+-2) (package (inherit gtk+-2)
(name "gtk+") (name "gtk+")
(version "3.10.1") (version "3.14.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -402,7 +404,7 @@ application suites.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1f3a7r3z7i9xh5imlfpfcgyydzkj2fnd0v6ylvqxij0yzfbnhbn1")))) "0vm40n6nf0w3vv54wqy67jcxddka7hplksi093xim3119yq196gv"))))
(propagated-inputs (propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk) `(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk) ("atk" ,atk)
@ -584,7 +586,7 @@ toolkit.")
(define-public gtkmm (define-public gtkmm
(package (package
(name "gtkmm") (name "gtkmm")
(version "3.9.16") (version "3.14.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -592,7 +594,7 @@ toolkit.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0yf8wwv4w02p70nrxsbs0nhm0w4gkn2wggdjygd8vif062anf1rs")))) "12z4g2in82nk92nfjs2hmrdcwbav8v3laz1813x2dhkf5jk2ixfr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(propagated-inputs (propagated-inputs

View File

@ -3,6 +3,7 @@
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1437,7 +1438,7 @@ from the module-init-tools project.")
;; The post-systemd fork, maintained by Gentoo. ;; The post-systemd fork, maintained by Gentoo.
(package (package
(name "eudev") (name "eudev")
(version "1.10") (version "2.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1445,7 +1446,7 @@ from the module-init-tools project.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1l907bvz6dcykvaq8d4iklvfpb9fyrnh1a29g3c28gkx2hlyn7j0")) "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva"))
(patches (list (search-patch "eudev-rules-directory.patch"))) (patches (list (search-patch "eudev-rules-directory.patch")))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
@ -1482,7 +1483,18 @@ from the module-init-tools project.")
;; Work around undefined reference to ;; Work around undefined reference to
;; 'mq_getattr' in sc-daemon.c. ;; '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/") (home-page "http://www.gentoo.org/proj/en/eudev/")
(synopsis "Userspace device management") (synopsis "Userspace device management")
(description "Udev is a daemon which dynamically creates and removes (description "Udev is a daemon which dynamically creates and removes

View File

@ -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):

View File

@ -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)
{

View File

@ -4,7 +4,7 @@
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.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. ;;; 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: ;; at run-time the user must set this variable as follows:
;; ;;
;; export GI_TYPELIB_PATH=~/.guix-profile/lib/girepository-1.0 ;; 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+) ("gtk+" ,gtk+)
;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context' ;; '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) ("freetype" ,freetype)
("cairo" ,cairo) ("cairo" ,cairo)
("glib" ,glib) ("glib" ,glib)
("python-pillow" ,python-pillow) ;("python-pillow" ,python-pillow)
;; FIXME: Add backends when available. ;; FIXME: Add backends when available.
;("python-wxpython" ,python-wxpython) ;("python-wxpython" ,python-wxpython)
;("python-pyqt" ,python-pyqt) ;("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+"))) (gtk+ (assoc-ref inputs "gtk+")))
;; Setting these directories in the 'basedirlist' of 'setup.cfg' ;; Setting these directories in the 'basedirlist' of 'setup.cfg'
;; has not effect. ;; 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" (setenv "LD_LIBRARY_PATH"
(string-append cairo "/lib:" gtk+ "/lib")) (string-append cairo "/lib:" gtk+ "/lib"))
(setenv "HOME" (getcwd)) (setenv "HOME" (getcwd))
@ -2282,30 +2271,18 @@ toolkits.")
,@(alist-delete "python-numpydoc" ,@(alist-delete "python-numpydoc"
(package-inputs matplotlib))))))) (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 (define-public python-scipy
(package (package
(name "python-scipy") (name "python-scipy")
(version "0.14.0") (version "0.15.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/scipy" (uri (string-append "mirror://sourceforge/scipy"
"/scipy-" version ".tar.gz")) "/scipy-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"053bmz4qmnk4dmxvspfak8r10rpmy6mzwfzgy33z338ppzka6hab")))) "0fsqi05s035d7p6s8h3h2pvk1axias16chy17rw9l1bxvrfhmncf"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("python-numpy" ,python-numpy) `(("python-numpy" ,python-numpy)

View File

@ -4463,7 +4463,8 @@ kernel mode setting (KMS).")
`(("python" ,python-wrapper) `(("python" ,python-wrapper)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(arguments (arguments
`(#:configure-flags `(#:parallel-tests? #f
#:configure-flags
(list (string-append "--with-xkb-path=" (list (string-append "--with-xkb-path="
(assoc-ref %build-inputs "xkeyboard-config") (assoc-ref %build-inputs "xkeyboard-config")
"/share/X11/xkb") "/share/X11/xkb")