X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/893c2df00daa4e6dd6a7ff3813d7df5329877f9e..b91dcefda1507df61b5ebfa821cbf1ea8a47b5f9:/gnu/packages/glib.scm diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 3e17330447..12ba6e939b 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -3,13 +3,16 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2020 Efraim Flashner ;;; Copyright © 2016 Lukas Gradl -;;; Copyright © 2017, 2018 Ricardo Wurmus +;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus ;;; Copyright © 2017 Petter ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Alex Vong ;;; Copyright © 2019 Maxim Cournoyer +;;; Copyright © 2019 Giacomo Leidi +;;; Copyright © 2019, 2020 Marius Bakke +;;; Copyright © 2020 Nicolò Balzarotti ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,6 +55,7 @@ #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages selinux) #:use-module (gnu packages web) #:use-module (gnu packages xml) @@ -64,6 +68,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) + #:use-module (srfi srfi-1) ;; Export variables up-front to allow circular dependency with the 'xorg' ;; module. @@ -102,6 +107,9 @@ ;; Install the session bus socket under /tmp. "--with-session-socket-dir=/tmp" + ;; Build shared libraries only. + "--disable-static" + ;; Use /etc/dbus-1 for system-wide config. ;; Look for configuration file under ;; /etc/dbus-1. This is notably required by @@ -159,7 +167,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.60.6") + (version "2.62.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -167,7 +175,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "0v7vpx2md1gn0wwiirn7g4bhf2csfvcr03y96q2zv97ain6sp3zz")) + "174bsmbmcvaw69ff9g60q5sx0fn23rkhqcwqz17h5s7sprps4kqh")) (patches (search-patches "glib-tests-timer.patch")) (modules '((guix build utils))) (snippet @@ -182,11 +190,9 @@ shared NFS home directories.") `(("pcre" ,pcre) ; in the Requires.private field of glib-2.0.pc ("libffi" ,libffi) ; in the Requires.private field of gobject-2.0.pc ;; These are in the Requires.private field of gio-2.0.pc - ("util-linux" ,util-linux) ; for libmount + ("util-linux" ,util-linux "lib") ;for libmount ("libselinux" ,libselinux) ("zlib" ,zlib))) - (inputs - `(("coreutils" ,coreutils))) (native-inputs `(("gettext" ,gettext-minimal) ("m4" ,m4) ; for installing m4 macros @@ -196,8 +202,26 @@ shared NFS home directories.") ("perl" ,perl) ; needed by GIO tests ("tzdata" ,tzdata-for-tests))) ; for tests/gdatetime.c (arguments - `(#:phases + `(#:disallowed-references (,tzdata-for-tests) + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-dbus-launch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((dbus (assoc-ref inputs "dbus"))) + (substitute* "gio/gdbusaddress.c" + (("command_line = g_strdup_printf \\(\"dbus-launch") + (string-append "command_line = g_strdup_printf (\"" + dbus "/bin/dbus-launch"))) + #t))) + (add-after 'unpack 'patch-gio-launch-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; See also + ;; for another future fix. + (substitute* "gio/gdesktopappinfo.c" + (("gio-launch-desktop") + (string-append out "/libexec/gio-launch-desktop"))) + #t))) (add-before 'build 'pre-build (lambda* (#:key inputs outputs #:allow-other-keys) ;; For tests/gdatetime.c. @@ -278,7 +302,7 @@ shared NFS home directories.") (;; Requires /etc/machine-id. "/gdbus/codegen-peer-to-peer")) - ("gio/tests/gdbus-unix-addresses.c" + ("gio/tests/gdbus-address-get-session.c" (;; Requires /etc/machine-id. "/gdbus/x11-autolaunch")) @@ -306,6 +330,13 @@ shared NFS home directories.") (mkdir-p bin) (rename-file (string-append out "/bin") (string-append bin "/bin")) + ;; This one is an implementation detail of glib. + ;; It is wrong that that's in "/bin" in the first place, + ;; but that's what upstream is doing right now. + ;; See . + (mkdir (string-append out "/libexec")) + (rename-file (string-append bin "/bin/gio-launch-desktop") + (string-append out "/libexec/gio-launch-desktop")) ;; Do not refer to "bindir", which points to "${prefix}/bin". ;; We don't patch "bindir" to point to "$bin/bin", because that ;; would create a reference cycle between the "out" and "bin" @@ -333,6 +364,7 @@ shared NFS home directories.") (variable "GIO_EXTRA_MODULES") (files '("lib/gio/modules"))))) (search-paths native-search-paths) + (properties '((hidden? . #t))) (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME") (description @@ -342,17 +374,45 @@ dynamic loading, and an object system.") (home-page "https://developer.gnome.org/glib/") (license license:lgpl2.1+))) +(define-public glib-with-documentation + ;; glib's doc must be built in a separate package since it requires gtk-doc, + ;; which in turn depends on glib. + (package + (inherit glib) + (properties (alist-delete 'hidden? (package-properties glib))) + (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference + (native-inputs + `(("gtk-doc" ,gtk-doc) ; for the doc + ("docbook-xml" ,docbook-xml) + ("libxml2" ,libxml2) + ,@(package-native-inputs glib))) + (arguments + (substitute-keyword-arguments (package-arguments glib) + ((#:configure-flags flags ''()) + `(cons "-Dgtk_doc=true" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (html (string-append "/share/gtk-doc"))) + (copy-recursively (string-append out html) + (string-append doc html)) + (delete-file-recursively (string-append out html)) + #t))))))))) + (define gobject-introspection (package (name "gobject-introspection") - (version "1.60.2") + (version "1.62.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "172ymc1vbg2rclq1rszx4y32vm900nn1mc4qg1a4mqxjiwvf5pzz")) + (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi")) (patches (search-patches "gobject-introspection-cc.patch" "gobject-introspection-girepository.patch" @@ -497,7 +557,7 @@ translated.") (define dbus-glib (package (name "dbus-glib") - (version "0.108") + (version "0.110") (source (origin (method url-fetch) (uri @@ -505,7 +565,7 @@ translated.") version ".tar.gz")) (sha256 (base32 - "0b307hw9j41npzr6niw1bs6ryp87m5yafg492gqwvsaj4dz0qd4z")))) + "09g8swvc95bk1z6j8sw463p2v0dqmgm2zjfndf7i8sbcyq67dr3w")))) (build-system gnu-build-system) (propagated-inputs ; according to dbus-glib-1.pc `(("dbus" ,dbus) @@ -525,7 +585,7 @@ by GDBus included in Glib.") (define libsigc++ (package (name "libsigc++") - (version "2.10.2") + (version "2.10.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -533,11 +593,11 @@ by GDBus included in Glib.") name "-" version ".tar.xz")) (sha256 (base32 - "163s14d1rqp82gc1vsm3q0wzsbdicb9q6307kz0zk5lm6x9h5jmi")))) + "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("m4" ,m4))) - (home-page "http://libsigc.sourceforge.net/") + (home-page "https://libsigcplusplus.github.io/libsigcplusplus/") (synopsis "Type-safe callback system for standard C++") (description "Libsigc++ implements a type-safe callback system for standard C++. It @@ -552,7 +612,7 @@ has an ease of use unmatched by other C++ callback libraries.") (define glibmm (package (name "glibmm") - (version "2.60.0") + (version "2.62.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -560,7 +620,7 @@ has an ease of use unmatched by other C++ callback libraries.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "1g7jxqd270dv2d83r7pf5893mwpz7d5xib0q01na2yalh34v38d3")))) + "1ziwx6r7k7wbvg4qq1rgrv8zninapgrmhn1hs6926a3krh9ryr9n")))) (build-system gnu-build-system) (arguments `(#:phases @@ -625,7 +685,7 @@ useful for C++.") (arguments `(#:tests? #f ;segfaults during tests #:configure-flags '("LIBS=-lcairo-gobject"))) - (home-page "https://pypi.python.org/pypi/PyGObject") + (home-page "https://pypi.org/project/PyGObject/") (synopsis "Python bindings for GObject") (description "Python bindings for GLib, GObject, and GIO.") @@ -634,7 +694,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.28.3") + (version "3.34.0") (source (origin (method url-fetch) @@ -643,24 +703,20 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "1c6h3brzlyvzbpdsammnd957azmp6cbzqrd65r400vnh2l8f5lrx")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-broken-tests - (lambda _ - ;; FIXME: this test freezes and times out. - (delete-file "tests/test_mainloop.py") - ;; FIXME: this test fails with this kind of error: - ;; AssertionError: != != (origin @@ -757,7 +827,18 @@ up the Gnome environment, and are used in many unrelated projects.") ;; ;; EOFError: EOF read where object expected ;; make[2]: *** [Makefile:1906: _gen/register-dbus-glib-marshallers-body.h] Error 1 - #:parallel-build? #f)) + #:parallel-build? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + ;; None of the tests below are able to find the org.gtk.vfs.Daemon + ;; service file provided by gvfs. + (substitute* "tests/dbus/Makefile.in" + (("test-contacts\\$\\(EXEEXT\\)") "") + (("test-file-transfer-channel\\$\\(EXEEXT\\)") "") + (("test-stream-tube\\$\\(EXEEXT\\)") "")) + #t))))) (native-inputs `(("glib" ,glib "bin") ; uses glib-mkenums ("gobject-introspection" ,gobject-introspection) @@ -826,7 +907,7 @@ programming language. It also contains the utility (define-public appstream-glib (package (name "appstream-glib") - (version "0.7.15") + (version "0.7.17") (source (origin (method url-fetch) (uri (string-append "https://people.freedesktop.org/~hughsient/" @@ -834,7 +915,7 @@ programming language. It also contains the utility "appstream-glib-" version ".tar.xz")) (sha256 (base32 - "17ram4j3cvs78si0gi1labarr91pw68zn8kam41cqbvlwdyr89vy")))) + "0jg58m1p5xfrh8zkpqhhg00nqs727z5i1qy6sb0a3vyc98fyk9vw")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -843,15 +924,14 @@ programming language. It also contains the utility (propagated-inputs `(("gcab" ,gcab) ; for .pc file ("gdk-pixbuf" ,gdk-pixbuf) ; for .pc file - ("util-linux" ,util-linux))) ; for .pc file + ("libuuid" ,util-linux "lib"))) ; for .pc file (inputs `(("glib" ,glib) ("gperf" ,gperf) ("gtk+" ,gtk+) ("json-glib" ,json-glib) ("libarchive" ,libarchive) - ("libsoup" ,libsoup) - ("libyaml" ,libyaml))) + ("libsoup" ,libsoup))) (arguments `(#:configure-flags (list "-Ddep11=false" @@ -925,3 +1005,120 @@ main loop, simply get a connection to the bus via the methods in @code{Net::DBus::GLib} rather than the usual @code{Net::DBus} module. Every other API remains the same.") (license license:gpl2+))) + +(define-public template-glib + (package + (name "template-glib") + (version "3.32.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1g0zx0sxpw8kqp7p3sgl9kngaqrg9xl6cir24nrahks0vgsk98rr")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-D" "enable_gtk_doc=true"))) + (inputs + `(("gettext" ,gettext-minimal) + ("glib" ,glib) + ("gobject-introspection" ,gobject-introspection))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("glib:bin" ,glib "bin") ;; For glib-mkenums + ("gtk-doc" ,gtk-doc) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) + (home-page "https://gitlab.gnome.org/GNOME/template-glib") + (synopsis "Library for template expansion") + (description + "Template-GLib is a library to help you generate text based on a template and +user defined state. Template-GLib does not use a language runtime, so it is +safe to use from any GObject-Introspectable language. + +Template-GLib allows you to access properties on GObjects as well as call +simple methods via GObject-Introspection.") + (license license:lgpl2.1+))) + +(define-public xdg-dbus-proxy + (package + (name "xdg-dbus-proxy") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/flatpak/xdg-dbus-proxy" + "/releases/download/" version + "/xdg-dbus-proxy-" version ".tar.xz")) + (sha256 + (base32 + "03sj1h0c2l08xa8phw013fnxr4fgav7l2mkjhzf9xk3dykwxcj8p")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + + ;; For tests. + ("dbus" ,dbus) + + ;; These are required to build the manual. + ("docbook-xml" ,docbook-xml-4.3) + ("docbook-xsl" ,docbook-xsl) + ("libxml2" ,libxml2) + ("xsltproc" ,libxslt))) + (inputs + `(("glib" ,glib))) + (home-page "https://github.com/flatpak/xdg-dbus-proxy") + (synopsis "D-Bus connection proxy") + (description + "xdg-dbus-proxy is a filtering proxy for D-Bus connections. It can be +used to create D-Bus sockets inside a Linux container that forwards requests +to the host system, optionally with filters applied.") + (license license:lgpl2.1+))) + +(define-public dbus-test-runner + (package + (name "dbus-test-runner") + (version "19.04.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://launchpad.net/dbus-test-runner/" + (version-major+minor version) "/" version + "/+download/dbus-test-runner-" version ".tar.gz")) + (sha256 + (base32 + "0xnbay58xn0hav208mdsg8dd176w57dcpw1q2k0g5fh9v7xk4nk4")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-test-paths + ;; add missing space + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile.in" + (("#!/bin/bash") (string-append "#!" (which "bash")))) + (substitute* "tests/Makefile.in" + (("/bin/sh") (which "sh")) + (("#!/bin/bash") (string-append "#!" (which "bash"))) + (("echo cat") (string-append "echo " (which "cat"))) + (("/bin/true") (which "true"))) + #t))))) + (inputs + `(("gtk+" ,gtk+) + ("glib" ,glib) + ("dbus-glib" ,dbus-glib))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ;; following used for tests + ("python" ,python) + ("python-dbusmock" ,python-dbusmock) + ("xvfb" ,xorg-server-for-tests))) + (home-page "https://launchpad.net/dbus-test-runner") + (synopsis "Run a executables under a new DBus session for testing") + (description "A small little utility to run a couple of executables under a +new DBus session for testing.") + (license license:gpl3)))