diff options
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r-- | gnu/packages/gnome.scm | 2921 |
1 files changed, 1695 insertions, 1226 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 387d08819b..40f49a44db 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -39,7 +39,7 @@ ;;; Copyright © 2019 Giacomo Leidi <[email protected]> ;;; Copyright © 2019 Jelle Licht <[email protected]> ;;; Copyright © 2019 Jonathan Frederickson <[email protected]> -;;; Copyright © 2019, 2020 Maxim Cournoyer <[email protected]> +;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <[email protected]> ;;; Copyright © 2019, 2020 Martin Becze <[email protected]> ;;; Copyright © 2019 David Wilson <[email protected]> ;;; Copyright © 2019, 2020 Raghav Gururajan <[email protected]> @@ -60,6 +60,10 @@ ;;; Copyright © 2020, 2021 Sébastien Lerique <[email protected]> ;;; Copyright © 2021 Trevor Hass <[email protected]> ;;; Copyright © 2021 Solene Rapenne <[email protected]> +;;; Copyright © 2021 Guillaume Le Vaillant <[email protected]> +;;; Copyright © 2021 Felix Gruber <[email protected]> +;;; Copyright © 2021 Maxime Devos <[email protected]> +;;; Copyright © 2021 Josselin Poiret <[email protected]> ;;; Copyright © 2021 Mathieu Othacehe <[email protected]> ;;; ;;; This file is part of GNU Guix. @@ -106,6 +110,7 @@ #:use-module (gnu packages djvu) #:use-module (gnu packages dns) #:use-module (gnu packages docbook) + #:use-module (gnu packages docker) #:use-module (gnu packages documentation) #:use-module (gnu packages enchant) #:use-module (gnu packages flex) @@ -136,6 +141,7 @@ #:use-module (gnu packages inkscape) #:use-module (gnu packages iso-codes) #:use-module (gnu packages kerberos) + #:use-module (gnu packages language) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libffi) #:use-module (gnu packages libunistring) @@ -143,8 +149,11 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages lirc) + #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages mail) + #:use-module (gnu packages man) + #:use-module (gnu packages markup) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages music) @@ -248,6 +257,11 @@ (string-append (assoc-ref inputs "docbook-xml-4.1.2") "/xml/dtd/docbook/")))) #t)) + (add-before 'check 'set-home + (lambda _ + ;; A test using GIO expects ~/.config/glib-2.0/settings to be + ;; writable. + (setenv "HOME" (getcwd)))) (add-after 'install 'move-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -333,41 +347,28 @@ Desktop. It is designed to be as simple as possible and has some unique features to enable users to create their discs easily and quickly.") (license license:gpl2+))) -(define-public libcloudproviders +;;; Minimal variant, used to break a cycle with Inkscape. +(define-public libcloudproviders-minimal (package - (name "libcloudproviders") + (name "libcloudproviders-minimal") (version "0.3.1") (source (origin (method url-fetch) (uri - (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) + (string-append "mirror://gnome/sources/libcloudproviders/" + (version-major+minor version) + "/libcloudproviders-" version ".tar.xz")) (sha256 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7")))) (build-system meson-build-system) - (outputs '("out" "doc")) (arguments - `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas - #:configure-flags - (list - "-Denable-gtk-doc=true") - #:phases - (modify-phases %standard-phases - (add-after 'install 'move-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share")) - (rename-file - (string-append out "/share/gtk-doc") - (string-append doc "/share/gtk-doc")) - #t)))))) + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:configure-flags (list "-Dintrospection=false" + "-Denable-gtk-doc=false" + "-Dvapigen=false"))) (native-inputs `(("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) ("pkg-config" ,pkg-config) ("vala" ,vala))) (inputs @@ -381,6 +382,31 @@ services.") (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/") (license license:lgpl3+))) +(define-public libcloudproviders + (package/inherit libcloudproviders-minimal + (name "libcloudproviders") + (version "0.3.1") + (outputs (cons "doc" (package-outputs libcloudproviders-minimal))) + (arguments + (substitute-keyword-arguments (package-arguments libcloudproviders-minimal) + ((#:configure-flags _) + '(list "-Denable-gtk-doc=true")) ;false by default + ((#:phases phases '%standard-phases) + `(modify-phases %standard-phases + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc"))))))))) + (native-inputs + (append + `(("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc/stable)) + (package-native-inputs libcloudproviders-minimal))))) + (define-public libgrss (package (name "libgrss") @@ -585,7 +611,7 @@ in JavaScript.") ("vala" ,vala))) (inputs `(("avahi" ,avahi) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("librsvg" ,librsvg) ("gee" ,libgee) ("gst-plugins-base" ,gst-plugins-base) ("gtk+" ,gtk+))) @@ -593,7 +619,7 @@ in JavaScript.") `(("glib" ,glib) ("glib-networking" ,glib-networking) ("gstreamer" ,gstreamer) - ("libsoup" ,libsoup))) + ("libsoup-minimal" ,libsoup-minimal-2))) (synopsis "Media management library") (description "Libdmapsharing is a library which allows programs to access, share and control the playback of media content using DMAP (DAAP, DPAP & DACP). @@ -862,20 +888,21 @@ tomorrow, the rest of the week and for special occasions.") (define-public gnome-photos (package (name "gnome-photos") - (version "3.34.2") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w")))) + "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:configure-flags (list "-Ddogtail=false" ; Not available ;; Required for RUNPATH validation. @@ -888,8 +915,8 @@ tomorrow, the rest of the week and for special occasions.") (let* ((out (assoc-ref outputs "out"))) (wrap-program (string-append out "/bin/gnome-photos") - `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH"))))) - #t))))) + `("GRL_PLUGIN_PATH" = + (,(getenv "GRL_PLUGIN_PATH")))))))))) (native-inputs `(("dbus" ,dbus) ("desktop-file-utils" ,desktop-file-utils) @@ -904,7 +931,7 @@ tomorrow, the rest of the week and for special occasions.") (inputs `(("babl" ,babl) ("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("librsvg" ,librsvg) ("gegl" ,gegl) ("geocode-glib" ,geocode-glib) ("gexiv2" ,gexiv2) @@ -916,6 +943,7 @@ tomorrow, the rest of the week and for special occasions.") ("libdazzle" ,libdazzle) ("libgdata" ,libgdata) ("libgfbgraph" ,gfbgraph) + ("libhandy" ,libhandy) ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) ("librest" ,rest) @@ -932,20 +960,21 @@ cloud integration is offered through GNOME Online Accounts.") (define-public gnome-music (package (name "gnome-music") - (version "3.34.5") + (version "40.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy")))) + "0lcdal4qdhclr8961p57xf010y92l6wwmkw86lyi9wy224z6gjr0")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'install 'wrap-gnome-music @@ -957,11 +986,14 @@ cloud integration is offered through GNOME Online Accounts.") (package-version python)) "/site-packages"))) (wrap-program (string-append out "/bin/gnome-music") - `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))) - `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH"))) - `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH"))) - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)))) - #t))))) + `("GI_TYPELIB_PATH" = + (,(getenv "GI_TYPELIB_PATH"))) + `("GST_PLUGIN_SYSTEM_PATH" = + (,(getenv "GST_PLUGIN_SYSTEM_PATH"))) + `("GRL_PLUGIN_PATH" = + (,(getenv "GRL_PLUGIN_PATH"))) + `("GUIX_PYTHONPATH" = + (,(getenv "GUIX_PYTHONPATH") ,pylib))))))))) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) ("gettext" ,gettext-minimal) @@ -975,11 +1007,13 @@ cloud integration is offered through GNOME Online Accounts.") ("grilo" ,grilo) ("grilo-plugins" ,grilo-plugins) ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) ("gstreamer" ,gstreamer) ("gvfs" ,gvfs) + ("json-glib" ,json-glib) ("libdazzle" ,libdazzle) ("libmediaart" ,libmediaart) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("pycairo" ,python-pycairo) ("pygobject" ,python-pygobject) ("tracker" ,tracker) @@ -1019,7 +1053,7 @@ between different kinds of computer systems.") (define-public tepl (package (name "tepl") - (version "4.4.0") + (version "6.00.0") (source (origin (method url-fetch) @@ -1029,12 +1063,14 @@ between different kinds of computer systems.") name "-" version ".tar.xz")) (sha256 (base32 - "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6")))) - (build-system glib-or-gtk-build-system) + "0qvs7s86gqyyrzi0r5fbrj8zczlgv8xhdjswgbgc1afwjnl9fqx8")))) + (build-system meson-build-system) (arguments - `(#:tests? #f)) ; FIX-ME: Requires gvfs + `(#:glib-or-gtk? #t + #:tests? #f)) ; FIX-ME: Requires gvfs (native-inputs - `(("gobject-introspection" ,gobject-introspection) + `(("glib" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config))) (inputs `(("amtk" ,amtk) @@ -1049,6 +1085,22 @@ GtkSourceView-based text editors and IDEs.") (home-page "https://wiki.gnome.org/Projects/Tepl") (license license:lgpl2.1+))) +(define-public tepl-5 + (package + (inherit tepl) + (name "tepl") + (version "5.0.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0118j64s4fb350phbgda2rk6sv19rfgglxc7nf248llzc1klj9xi")))))) + (define-public krb5-auth-dialog (package (name "krb5-auth-dialog") @@ -1124,21 +1176,15 @@ freedesktop.org desktop notification specification.") "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.55 - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch (lambda* (#:key inputs #:allow-other-keys) (substitute* "util/mm-common-prepare.in" - (("ln") (string-append (assoc-ref inputs "coreutils") - "/bin/ln")) - (("cp") (string-append (assoc-ref inputs "coreutils") - "/bin/cp")) - (("sed") (string-append (assoc-ref inputs "sed") - "/bin/sed")) - (("cat") (string-append (assoc-ref inputs "coreutils") - "/bin/cat"))) - #t))))) + (("ln") (search-input-file inputs "/bin/ln")) + (("cp") (search-input-file inputs "/bin/cp")) + (("sed") (search-input-file inputs "/bin/sed")) + (("cat") (search-input-file inputs "/bin/cat")))))))) (native-inputs `(("coreutils" ,coreutils) ("gettext" ,gettext-minimal) @@ -1204,7 +1250,7 @@ in particular in the GNOME desktop.") (define-public gnome-color-manager (package (name "gnome-color-manager") - (version "3.32.0") + (version "3.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1212,7 +1258,7 @@ in particular in the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w")))) + "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -1265,13 +1311,30 @@ in the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44")))) + "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44")) + (patches + (search-patches + "gnome-online-miners-tracker-3.patch")))) (build-system glib-or-gtk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-configure + (lambda _ + (substitute* "configure.ac" + (("AX_CHECK_ENABLE_DEBUG.*") + "")))) + (add-after 'fix-configure 'autoreconf + (lambda _ + (invoke "autoreconf" "-vif")))))) (native-inputs - `(("gettext" ,gettext-minimal) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gtk+:bin" ,gtk+ "bin") + ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs `(("gnome-online-accounts" ,gnome-online-accounts) @@ -1310,8 +1373,10 @@ It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.") ("pkg-config" ,pkg-config) ("vala" ,vala))) (inputs - `(("gtk+" ,gtk+) - ("libsoup" ,libsoup))) + `(("gtk+" ,gtk+))) + (propagated-inputs + ;; The .pc file "Requires" libsoup-2.4. + `(("libsoup" ,libsoup-minimal-2))) (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery Protocol} for GNOME") (description "This package provides a library to handle resource discovery @@ -1333,6 +1398,13 @@ a debugging tool, @command{gssdp-device-sniffer}.") (base32 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p")))) (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a writable HOME. + (setenv "HOME" (getcwd))))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -1407,7 +1479,8 @@ given profile, etc. DLNA is a subset of UPnP A/V.") ("gobject-introspection" ,gobject-introspection) ("gtk-doc" ,gtk-doc/stable) ("libxml" ,libxml2) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) (inputs `(("gtk+" ,gtk+) ("gupnp" ,gupnp))) @@ -1430,8 +1503,6 @@ and implementation of UPnP A/V profiles.") (base32 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7")))) (build-system meson-build-system) - (arguments - `(#:meson ,meson-next)) (native-inputs `(("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) @@ -1451,18 +1522,19 @@ extraction, and lookup for applications on the desktop.") (define-public gnome-initial-setup (package (name "gnome-initial-setup") - (version "3.32.1") + (version "40.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-initial-setup/" - (version-major+minor version) + (version-major version) "/gnome-initial-setup-" version ".tar.xz")) (sha256 (base32 - "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry")))) + "06q3p4f8g9zr7a4mw3qr556mi0dg9qzrj8n46ybdz93fxs26aaj1")))) (build-system meson-build-system) (arguments - '(#:configure-flags '(;; Enable camera support for user selfie. + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:configure-flags '(;; Enable camera support for user selfie. "-Dcheese=auto" "-Dsystemd=false") #:phases (modify-phases %standard-phases @@ -1485,10 +1557,10 @@ extraction, and lookup for applications on the desktop.") (inputs `(("accountsservice" ,accountsservice) ;("adwaita-icon-theme" ,adwaita-icon-theme) + ("elogind" ,elogind) ("gdm" ,gdm) ("geoclue" ,geoclue) ("gnome-desktop" ,gnome-desktop) - ("gnome-getting-started-docs" ,gnome-getting-started-docs) ("gnome-online-accounts" ,gnome-online-accounts) ("gnome-online-accounts:lib" ,gnome-online-accounts "lib") ("gstreamer" ,gstreamer) @@ -1504,7 +1576,7 @@ extraction, and lookup for applications on the desktop.") ("pwquality" ,libpwquality) ("rest" ,rest) ("upower" ,upower) - ("webkitgtk" ,webkitgtk) + ("webkitgtk" ,webkitgtk-with-libsoup2) ("libgnomekbd" ,libgnomekbd))) (synopsis "Initial setup wizard for GNOME desktop") (description "This package provides a set-up wizard when a @@ -1516,7 +1588,7 @@ tour of all gnome components and allows the user to set them up.") (define-public gnome-user-share (package (name "gnome-user-share") - (version "3.33.1") + (version "3.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1524,12 +1596,13 @@ tour of all gnome components and allows the user to set them up.") name "-" version ".tar.xz")) (sha256 (base32 - "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7")))) + "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:configure-flags - `("-Dsystemd=false" + `("-Dsystemduserunitdir=/tmp/empty" ;; Enable nautilus extension for file sharing. "-Dnautilus_extension=true"))) (native-inputs @@ -1556,7 +1629,7 @@ sharing to the masses.") (define-public sushi (package (name "sushi") - (version "3.32.1") + (version "3.38.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1564,7 +1637,7 @@ sharing to the masses.") name "-" version ".tar.xz")) (sha256 (base32 - "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj")))) + "1sc8i0vrw6bn43rklnwp2fl1gq0r0xfd3bszcqxd0a2mh46d3rpk")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -1574,11 +1647,11 @@ sharing to the masses.") (lambda* (#:key outputs #:allow-other-keys) (let ((prog (string-append (assoc-ref outputs "out") "/bin/sushi"))) - ;; Put existing typelibs before sushi's deps, so as to correctly - ;; infer gdk-pixbuf + ;; Put existing typelibs before sushi's deps, so as to + ;; correctly infer gdk-pixbuf. (wrap-program prog - `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH")))) - #t)))))) + `("GI_TYPELIB_PATH" suffix + (,(getenv "GI_TYPELIB_PATH")))))))))) (native-inputs `(("glib:bin" ,glib "bin") ("gettext" ,gettext-minimal) @@ -1594,23 +1667,23 @@ sharing to the masses.") ("gjs" ,gjs) ("gst-plugins-base" ,gst-plugins-base) ("gstreamer" ,gstreamer) - ("gtksourceview" ,gtksourceview-3) + ("gtksourceview" ,gtksourceview) ("harfbuzz" ,harfbuzz) ("libepoxy" ,libepoxy) ("libmusicbrainz" ,libmusicbrainz) ("libxml2" ,libxml2) ("neon" ,neon) - ("webkitgtk" ,webkitgtk))) + ("webkitgtk" ,webkitgtk-with-libsoup2))) (synopsis "File previewer for the GNOME desktop") - (description "Sushi is a DBus-activated service that allows applications to -preview files on the GNOME desktop.") + (description "Sushi is a DBus-activated service that allows applications +to preview files on the GNOME desktop.") (home-page "https://gitlab.gnome.org/GNOME/sushi") (license license:gpl2+))) (define-public rygel (package (name "rygel") - (version "0.38.3") + (version "0.40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1618,23 +1691,34 @@ preview files on the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8")))) - (build-system gnu-build-system) + "0bd3d2swa8lq47b9r04x8xwdr9nhjnrwqi6scygd134wb5vxfh22")))) + (build-system meson-build-system) + (arguments + ;; Disable the tracker plugin. + '(#:configure-flags + (list "-Dplugins=external,gst-launch,lms,media-export, +mpris,playbin,ruih,tracker3"))) (native-inputs `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("gobject-introspection" ,gobject-introspection) ("gtk-doc" ,gtk-doc/stable) ("pkg-config" ,pkg-config) - ("vala" ,vala))) + ("vala" ,vala) + ("docbook-xml" ,docbook-xml) + ("dockbook-xsl" ,docbook-xsl) + ("xsltproc" ,libxslt))) (inputs `(("gdk-pixbuf" ,gdk-pixbuf) ("gssdp" ,gssdp) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) + ("gst-editing-services" ,gst-editing-services) ("gtk+" ,gtk+) ("gupnp" ,gupnp) ("gupnp-av" ,gupnp-av) ("gupnp-dlna" ,gupnp-dlna) + ("json-glib" ,json-glib) ("libgee" ,libgee) ("libmediaart" ,libmediaart) ("libsoup" ,libsoup) @@ -1707,7 +1791,7 @@ project.") (define-public gnome-menus (package (name "gnome-menus") - (version "3.32.0") + (version "3.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-menus/" @@ -1715,7 +1799,7 @@ project.") name "-" version ".tar.xz")) (sha256 (base32 - "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68")))) + "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1730,14 +1814,14 @@ configuration files for the GNOME menu, as well as a simple menu editor.") (define-public deja-dup (package (name "deja-dup") - (version "40.6") + (version "42.8") (source (origin (method url-fetch) (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/" version "/deja-dup-" version ".tar.bz2")) (sha256 (base32 - "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0")))) + "0d1jnlxpk52x56aqxz1g2xb4y4sm24h08p2di8mc1k8n8b52rpi4")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -1790,7 +1874,8 @@ configuration files for the GNOME menu, as well as a simple menu editor.") ("libgpg-error" ,libgpg-error) ("libnotify" ,libnotify) ("libsecret" ,libsecret) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) + ("libhandy" ,libhandy) ("packagekit" ,packagekit) ("python" ,python) ("python-pygobject" ,python-pygobject))) @@ -1826,7 +1911,6 @@ either on a local, or remote machine via a number of methods.") (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) - ("gcc" ,gcc-8) ;required for -Wcast-function-type ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) @@ -1852,15 +1936,15 @@ and running smart commands.") (define-public gnome-user-docs (package (name "gnome-user-docs") - (version "3.32.3") + (version "40.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-user-docs/" - (version-major+minor version) + (version-major version) "/gnome-user-docs-" version ".tar.xz")) (sha256 - (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig")))) + (base32 "0p6ysdqlfc7vvzsrcanl9bhsc7666sv42xxzpbgsf5j55z3yrkpr")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1875,34 +1959,6 @@ and system administrators.") (home-page "https://live.gnome.org/DocumentationProject") (license license:cc-by3.0))) -(define-public gnome-getting-started-docs - (package - (name "gnome-getting-started-docs") - (version "3.32.2") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/" - (version-major+minor version) - "/gnome-getting-started-docs-" version ".tar.xz")) - (sha256 - (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq")))) - (build-system gnu-build-system) - (native-inputs - `(("gettext" ,gettext-minimal) - ("itstool" ,itstool) - ("pkg-config" ,pkg-config) - ("xmllint" ,libxml2))) - (synopsis "Help to get new users started with the GNOME desktop") - (description - "The GNOME Getting Started Documentation contains GNOME's intuitive -\"Getting Started\" tour, with video guides, that can be viewed with Yelp. - -It is normally used together with @command{gnome-initial-setup}, but is also -useful as a tutorial and users' guide for new or less experienced users.") - (home-page "https://live.gnome.org/DocumentationProject") - (license license:cc-by-sa3.0))) - (define-public dia ;; This version from GNOME's repository includes fixes for compiling with ;; recent versions of the build tools. The latest activity on the @@ -1946,12 +2002,10 @@ relationship modeling, and network diagrams. The program supports various file formats like PNG, SVG, PDF and EPS.") (license license:gpl2+)))) -;; This is the unstable release, but it is required for the current stable -;; release of gvfs (1.38.1). (define-public libgdata (package (name "libgdata") - (version "0.17.9") + (version "0.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1959,34 +2013,32 @@ formats like PNG, SVG, PDF and EPS.") name "-" version ".tar.xz")) (sha256 (base32 - "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45")))) - (build-system gnu-build-system) + "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx")))) + (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'disable-failing-tests + (add-before 'check 'set-home-for-tests (lambda _ - ;; The PicasaWeb API tests fail with [email protected]. - ;; They have been removed in libgdata 0.17.6, so just do the same. - (substitute* "gdata/tests/Makefile" - (("picasaweb\\$\\(EXEEXT\\) ") "")) - #t))))) + (setenv "HOME" "/tmp")))))) (native-inputs `(("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("uhttpmock" ,uhttpmock))) (inputs `(("cyrus-sasl" ,cyrus-sasl) - ("glib-networking" ,glib-networking))) + ("glib-networking" ,glib-networking) + ("vala" ,vala))) (propagated-inputs `(("gcr" ,gcr) ("glib" ,glib) ("gnome-online-accounts:lib" ,gnome-online-accounts "lib") ("json-glib" ,json-glib) ("liboauth" ,liboauth) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("libxml2" ,libxml2))) (home-page "https://wiki.gnome.org/Projects/libgdata") (synopsis "Library for accessing online service APIs") @@ -2033,19 +2085,20 @@ to other formats.") (define-public gnome-characters (package (name "gnome-characters") - (version "3.30.0") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" - "gnome-characters/" (version-major+minor version) + "gnome-characters/" (version-major version) "/gnome-characters-" version ".tar.xz")) (sha256 (base32 - "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp")))) + "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'install 'wrap (lambda* (#:key outputs #:allow-other-keys) @@ -2054,8 +2107,7 @@ to other formats.") (wrap-program (string-append (assoc-ref outputs "out") "/bin/gnome-characters") `("GI_TYPELIB_PATH" ":" prefix - (,(getenv "GI_TYPELIB_PATH")))) - #t))))) + (,(getenv "GI_TYPELIB_PATH"))))))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -2065,6 +2117,7 @@ to other formats.") (inputs `(("gjs" ,gjs) ("gtk+" ,gtk+) + ("libhandy" ,libhandy) ("libunistring" ,libunistring) ("gnome-desktop" ,gnome-desktop))) (home-page "https://wiki.gnome.org/Apps/CharacterMap") @@ -2099,18 +2152,18 @@ commonly used macros.") (define-public gnome-contacts (package (name "gnome-contacts") - (version "3.34") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-contacts/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r")))) + "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9")))) (build-system meson-build-system) (arguments - `(#:configure-flags '("-Dcheese=false") + `(#:configure-flags '("-Dcheese=disabled") #:phases (modify-phases %standard-phases (add-after 'unpack 'generate-vapis @@ -2121,16 +2174,16 @@ commonly used macros.") (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0" "--library=goa-1.0" - (string-append goa "/share/gir-1.0/Goa-1.0.gir")) - #t)) + (string-append goa "/share/gir-1.0/Goa-1.0.gir")))) (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "build-aux/meson_post_install.py" - (("gtk-update-icon-cache") "true")) - #t))))) + (("gtk-update-icon-cache") "true"))))))) (native-inputs - `(("glib:bin" ,glib "bin") + `(("docbook-xml" ,docbook-xml-4.2) + ("docbook-xsl" ,docbook-xsl) + ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (inputs `(("docbook-xml" ,docbook-xml) @@ -2143,6 +2196,7 @@ commonly used macros.") ("gst-plugins-base" ,gst-plugins-base) ("gtk+" ,gtk+) ("libgee" ,libgee) + ("libhandy" ,libhandy) ("libxslt" ,libxslt) ("telepathy-glib" ,telepathy-glib) ("vala" ,vala))) @@ -2159,16 +2213,16 @@ offline sources, providing a centralized place for managing your contacts.") (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.34.2") + (version "40.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0")))) + "1vs5knn2yj6a449p9bn5w5407i1yvxfxg8xv844qgl70hpsrdbl8")))) (build-system meson-build-system) (arguments '(#:phases @@ -2198,10 +2252,11 @@ offline sources, providing a centralized place for managing your contacts.") ;; Tests require a running X server and locales. (system "Xvfb :1 &") (setenv "DISPLAY" ":1") + (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache") + (setenv "XDG_CONFIG_HOME" "/tmp") (setenv "GUIX_LOCPATH" - (string-append (assoc-ref inputs "glibc-locales") - "/lib/locale")) - #t))))) + (search-input-directory inputs + "lib/locale"))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen ("glibc-locales" ,glibc-locales) ; for tests @@ -2273,18 +2328,19 @@ and keep up to date translations of documentation.") (define-public gnome-disk-utility (package (name "gnome-disk-utility") - (version "3.34.0") + (version "40.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y")))) + "1rr1ypb89p51b6428yqvczmpmylwjfnhnkgx78hzm3vxm3m15lff")))) (build-system meson-build-system) (arguments - '(#:configure-flags '("-Dlogind=libelogind") + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:configure-flags '("-Dlogind=libelogind") #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache @@ -2309,6 +2365,7 @@ and keep up to date translations of documentation.") ("gtk+" ,gtk+) ("libcanberra" ,libcanberra) ("libdvdread" ,libdvdread) + ("libhandy" ,libhandy) ("libnotify" ,libnotify) ("libpwquality" ,libpwquality) ("libsecret" ,libsecret) @@ -2321,18 +2378,19 @@ and keep up to date translations of documentation.") (define-public gnome-font-viewer (package (name "gnome-font-viewer") - (version "3.30.0") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-font-viewer/" - (version-major+minor version) + (version-major version) "/gnome-font-viewer-" version ".tar.xz")) (sha256 (base32 - "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5")))) + "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j")))) (build-system meson-build-system) (arguments - '(#:phases + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-post-install-script (lambda _ @@ -2356,7 +2414,9 @@ and keep up to date translations of documentation.") (inputs `(("glib" ,glib) ("gnome-desktop" ,gnome-desktop) - ("gtk+" ,gtk+))) + ("gtk+" ,gtk+) + ("libhandy" ,libhandy) + ("libxml2" ,libxml2))) (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer") (synopsis "GNOME Fonts") (description "Application to show you the fonts installed on your computer @@ -2367,7 +2427,7 @@ the font would look under various sizes.") (define-public gcr (package (name "gcr") - (version "3.34.0") + (version "3.41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2375,8 +2435,8 @@ the font would look under various sizes.") name "-" version ".tar.xz")) (sha256 (base32 - "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9")))) - (build-system gnu-build-system) + "00fsf82ycac8qi0kkiq759p6jrn63pyz4ksn4wnq7m4ax94zq289")))) + (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -2384,10 +2444,21 @@ the font would look under various sizes.") ;; build environment. (add-after 'unpack 'disable-failing-tests (lambda _ - (substitute* "Makefile.in" - (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)") + (substitute* "gcr/meson.build" + (("[[:blank:]]+'system-prompt',") "")) #t)) + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "meson_post_install.py" + (("gtk-update-icon-cache") "true")) + #t)) + (add-after 'unpack 'fix-systemd-detection + (lambda _ + (substitute* "gcr/gcr-ssh-agent-service.c" + (("#ifdef WITH_SYSTEMD") + "#if (WITH_SYSTEMD)")))) (add-before 'check 'pre-check (lambda _ ;; Some tests expect to write to $HOME. @@ -2396,11 +2467,17 @@ the font would look under various sizes.") (inputs `(("dbus" ,dbus) ("gnupg" ,gnupg) ;called as a child process during tests - ("libgcrypt" ,libgcrypt))) + ("libgcrypt" ,libgcrypt) + ("libsecret" ,libsecret))) (native-inputs `(("python" ,python-wrapper) ;for tests + ("openssh" ,openssh) ;for tests ("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("gtk-doc" ,gtk-doc) ("glib" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("libxml2" ,libxml2) @@ -2509,15 +2586,15 @@ GNOME Desktop.") (define-public gnome-keyring (package (name "gnome-keyring") - (version "3.34.0") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9")))) + "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does @@ -2568,7 +2645,7 @@ GNOME Desktop.") ("autoconf" ,autoconf) ("automake" ,automake) ("libxslt" ,libxslt) ;for documentation - ("docbook-xml" ,docbook-xml-4.2) + ("docbook-xml" ,docbook-xml-4.3) ("docbook-xsl" ,docbook-xsl))) (propagated-inputs `(("gcr" ,gcr))) @@ -2587,24 +2664,31 @@ forgotten when the session ends.") (define-public evince (package (name "evince") - (version "3.36.5") + (version "40.2") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/evince/" - (version-major+minor version) "/" - "evince-" version ".tar.xz")) - (sha256 - (base32 - "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg")))) - (build-system glib-or-gtk-build-system) + (method url-fetch) + (uri "mirror://gnome/sources/evince/40/evince-40.2.tar.xz") + (sha256 + (base32 + "0xrwls1bhvny8vvd7mfjy9p26zjch0pd6x6j9jn9g2ka6xwyrxqg")))) + (build-system meson-build-system) (arguments - `(#:configure-flags '("--disable-nautilus" "--enable-introspection") + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t + #:build-type "release" + #:configure-flags + '("-Dnautilus=false" + "-Dintrospection=true" + ;; XXX: Generating the documentation fails because the + ;; libevdocument.devhelp document cannot be created. This seems to be + ;; caused by a problem during the XSL transformation. + "-Dgtk_doc=false") #:phases (modify-phases %standard-phases - (add-before 'install 'skip-gtk-update-icon-cache + (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ - (substitute* "data/Makefile" + (substitute* "meson_post_install.py" (("gtk-update-icon-cache") "true")) #t))))) (inputs @@ -2633,9 +2717,7 @@ forgotten when the session ends.") ("dconf" ,dconf) ("libcanberra" ,libcanberra) ("libsecret" ,libsecret) - - ;; For tests. - ("dogtail" ,python2-dogtail))) + ("libhandy" ,libhandy))) (native-inputs `(("itstool" ,itstool) ("intltool" ,intltool) @@ -2655,16 +2737,16 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.34.0") + (version "41.0") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8")))) + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p")))) (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -2673,27 +2755,24 @@ on the GNOME Desktop with a single simple application.") (let ((theme (assoc-ref inputs "gnome-backgrounds"))) (substitute* (find-files "schemas" "\\.gschema\\.xml\\.in$") - ;; Provide the correct file name of the default GNOME - ;; background, 'adwaita-timed.xml'. + ;; Provide the correct file name of the default + ;; GNOME background, 'adwaita-timed.xml'. (("@datadir@/backgrounds/gnome") (string-append theme "/share/backgrounds/gnome")) ;; Do not reference fonts, that may not exist. - (("'Source Code Pro 10'") "'Monospace 11'")) - #t)))))) + (("'Source Code Pro 10'") "'Monospace 11'")))))))) (inputs `(("glib" ,glib) ("gnome-backgrounds" ,gnome-backgrounds))) (native-inputs - `(("intltool" ,intltool) - ("glib" ,glib "bin") ; glib-compile-schemas, etc. + `(("gettext" ,gettext-minimal) + ("glib" ,glib "bin") ; glib-compile-schemas, etc. ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config))) (home-page "https://launchpad.net/gsettings-desktop-schemas") - (synopsis - "GNOME settings for various desktop components") - (description - "Gsettings-desktop-schemas contains a collection of GSettings schemas -for settings shared by various components of the GNOME desktop.") + (synopsis "GNOME settings for various desktop components") + (description "Gsettings-desktop-schemas contains a collection of GSettings +schemas for settings shared by various components of the GNOME desktop.") (license license:lgpl2.1+))) (define-public python-liblarch @@ -2765,7 +2844,7 @@ and how they are displayed (View).") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) #t)))))) (native-inputs @@ -2776,7 +2855,7 @@ and how they are displayed (View).") ("gtk+:bin" ,gtk+ "bin") ("pkg-config" ,pkg-config))) (inputs - `(("gdk-pixbuf" ,gdk-pixbuf+svg) + `(("librsvg" ,librsvg) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+) ("pango" ,pango) @@ -2867,15 +2946,15 @@ GNOME and KDE desktops to the icon names proposed in the specification.") (define-public adwaita-icon-theme (package (inherit gnome-icon-theme) (name "adwaita-icon-theme") - (version "3.34.3") + (version "40.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7")))) + "1xpqa1rgmixlp953938d08xvf7kv36h747ysial8g65dsrp46v0b")))) (native-inputs `(("gtk-encode-symbolic-svg" ,gtk+ "bin"))))) @@ -3098,7 +3177,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.28.0") + (version "1.30.0") (source (origin (method url-fetch) @@ -3107,7 +3186,7 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2")))) + "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b")))) (build-system meson-build-system) (arguments '(#:phases @@ -3117,6 +3196,8 @@ some form of information without getting in the user's way.") (let ((xorg-server (assoc-ref inputs "xorg-server")) (disp ":1")) (setenv "DISPLAY" disp) + (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache") + (setenv "XDG_CONFIG_HOME" "/tmp") ;; Tests require a running X server. (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)) #t)))))) @@ -3185,7 +3266,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (define-public glade3 (package (name "glade") - (version "3.36.0") + (version "3.38.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3193,27 +3274,35 @@ API add-ons to make GTK+ widgets OpenGL-capable.") name "-" version ".tar.xz")) (sha256 (base32 - "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r")))) - (build-system glib-or-gtk-build-system) + "1dxsiz9ahqkxg2a1dw9sbd8jg59y5pdz4c1gvnbmql48gmj8gz4q")) + (patches (search-patches + "glade-gls-set-script-name.patch" + "glade-test-widget-null-icon.patch")))) + (build-system meson-build-system) (arguments - `(#:phases + `(#:meson ,meson-0.59 + #:phases (modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "meson_post_install.py" + (("gtk-update-icon-cache") "true")))) (add-before 'configure 'fix-docbook (lambda* (#:key inputs #:allow-other-keys) - (substitute* "man/Makefile.in" - (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl") + (substitute* "man/meson.build" + (("http://docbook.sourceforge.net/release/xsl/\ +current/manpages/docbook.xsl") (string-append (assoc-ref inputs "docbook-xsl") "/xml/xsl/docbook-xsl-" ,(package-version docbook-xsl) - "/manpages/docbook.xsl"))) - #t)) + "/manpages/docbook.xsl"))))) (add-before 'check 'pre-check (lambda _ (setenv "HOME" "/tmp") ;; Tests require a running X server. (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - #t))))) + (setenv "DISPLAY" ":1")))))) (inputs `(("gtk+" ,gtk+) ("libxml2" ,libxml2))) @@ -3224,7 +3313,10 @@ API add-ons to make GTK+ widgets OpenGL-capable.") ("libxslt" ,libxslt) ;for xsltproc ("docbook-xml" ,docbook-xml-4.2) ("docbook-xsl" ,docbook-xsl) - ("python" ,python-2) + ("glib:bin" ,glib "bin") + ("python-pygobject" ,python-pygobject) + ("gobject-introspection" ,gobject-introspection) + ("gjs" ,gjs) ("pkg-config" ,pkg-config) ("xorg-server" ,xorg-server-for-tests))) (home-page "https://glade.gnome.org") @@ -3283,104 +3375,70 @@ XML/CSS rendering engine.") (sha256 (base32 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i")))) - (build-system gnu-build-system) - (arguments - '(#:configure-flags '("--disable-static"))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("gettext" ,gettext-minimal) - - ;; For tests. - ("perl" ,perl) - ("perl-xml-parser" ,perl-xml-parser))) - (inputs - `(("zlib" ,zlib) - ("bzip2" ,bzip2))) - (propagated-inputs - `(("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) - ("libxml2" ,libxml2))) - (home-page "https://www.gnome.org/projects/libgsf") - (synopsis "GNOME's Structured File Library") - (description - "Libgsf aims to provide an efficient extensible I/O abstraction for -dealing with different structured file formats.") - - ;; LGPLv2.1-only. - (license license:lgpl2.1))) - -(define-public librsvg - (package - (name "librsvg") - (version "2.40.21") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) + (outputs '("out" "bin" "doc")) (arguments `(#:configure-flags - (list "--disable-static" - "--enable-vala") ; needed for e.g. gnome-mines + (list + "--disable-static" + "--enable-introspection" + (string-append "--with-gir-dir=" + (assoc-ref %outputs "out") + "/share/gir-" + ,(version-major + (package-version gobject-introspection)) + ".0") + (string-append "--with-typelib-dir=" + (assoc-ref %outputs "out") + "/lib/girepository-" + ,(version-major + (package-version gobject-introspection)) + ".0") + (string-append "--with-html-dir=" + (assoc-ref %outputs "doc") + "/share/gtk-doc/html") + "--with-zlib" + "--with-bz2") #:phases (modify-phases %standard-phases - (add-before 'configure 'pre-configure + (add-after 'unpack 'patch-docbook-xml (lambda* (#:key inputs #:allow-other-keys) - (substitute* "gdk-pixbuf-loader/Makefile.in" - ;; By default the gdk-pixbuf loader is installed under - ;; gdk-pixbuf's prefix. Work around that. - (("gdk_pixbuf_moduledir = .*$") - (string-append "gdk_pixbuf_moduledir = " - "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/" - "loaders\n")) - ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg. - (("gdk_pixbuf_cache_file = .*$") - "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n")) - #t)) - (add-before 'check 'remove-failing-tests - (lambda _ - (with-directory-excursion "tests/fixtures/reftests" - (for-each delete-file - '(;; This test fails on i686: - "svg1.1/masking-path-04-b.svg" - ;; This test fails on armhf: - "svg1.1/masking-mask-01-b.svg" - ;; This test fails on aarch64: - "bugs/777834-empty-text-children.svg"))) + (with-directory-excursion "doc" + (substitute* "gsf-docs.xml" + (("http://www.oasis-open.org/docbook/xml/4.5/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/")))) #t))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("vala" ,vala) - ("glib" ,glib "bin") ; glib-mkenums, etc. - ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc. + `(("docbook-xml" ,docbook-xml) + ("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection) + ("perl" ,perl) + ("perl-xml-parser" ,perl-xml-parser) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) (inputs - `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for - ;; this ancient version of librsvg. - ("pango" ,pango-1.42) - ("libcroco" ,libcroco) - ("bzip2" ,bzip2) - ("libgsf" ,libgsf) - ("libxml2" ,libxml2))) - (propagated-inputs - ;; librsvg-2.0.pc refers to all of that. - `(("cairo" ,cairo) + `(("bzip2" ,bzip2) ("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib))) - (home-page "https://wiki.gnome.org/LibRsvg") - (synopsis "Render SVG files using Cairo") - (description - "Librsvg is a C library to render SVG files using the Cairo 2D graphics -library.") - (license license:lgpl2.0+))) + ("zlib" ,zlib))) + (propagated-inputs + `(("glib" ,glib) + ("libxml2" ,libxml2))) + (synopsis "G Structured File Library") + (description "Libgsf aims to provide an efficient extensible I/O abstraction +for dealing with different structured file formats.") + (home-page "https://gitlab.gnome.org/GNOME/libgsf") + (license + (list + ;; Library + license:lgpl2.1+ + ;; Others + license:lgpl2.0+)))) -(define-public librsvg-next +(define-public librsvg (package (name "librsvg") - (version "2.50.3") + (version "2.50.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/librsvg/" @@ -3388,13 +3446,12 @@ library.") "librsvg-" version ".tar.xz")) (sha256 (base32 - "0n79i4wj9hm0d3bbn4xvknq5ylhqs16pvhaqr1rxspx9wfc8lad4")) + "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz")) (modules '((guix build utils))) (snippet - '(begin (delete-file-recursively "vendor") - #t)))) + '(begin (delete-file-recursively "vendor"))))) (build-system cargo-build-system) - (outputs '("out" "doc")) + (outputs '("out" "doc" "debug")) (arguments `(#:install-source? #f #:modules @@ -3456,8 +3513,7 @@ library.") (substitute* "rsvg-docs.xml" (("http://www.oasis-open.org/docbook/xml/4.3/") (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/")))) - #t)) + "/xml/dtd/docbook/")))))) (add-after 'unpack 'prepare-for-build (lambda _ ;; In lieu of #:make-flags @@ -3465,39 +3521,37 @@ library.") ;; Something about the build environment resists building ;; successfully with the '--locked' flag. (substitute* '("Makefile.am" "Makefile.in") - (("--locked") "")) - #t)) + (("--locked") "")))) (add-before 'configure 'pre-configure - (lambda _ + (lambda* (#:key outputs #:allow-other-keys) (substitute* "gdk-pixbuf-loader/Makefile.in" ;; By default the gdk-pixbuf loader is installed under ;; gdk-pixbuf's prefix. Work around that. (("gdk_pixbuf_moduledir = .*$") (string-append "gdk_pixbuf_moduledir = " - "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/" - "loaders\n")) - ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg. - (("gdk_pixbuf_cache_file = .*$") - "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n")) - #t)) + "$(prefix)/" + ,(dirname %gdk-pixbuf-loaders-cache-file) "/" + "loaders\n"))) + (substitute* "configure" + (("gdk_pixbuf_cache_file=.*") + (string-append "gdk_pixbuf_cache_file=" + (assoc-ref outputs "out") "/" + ,%gdk-pixbuf-loaders-cache-file "\n"))))) (add-after 'configure 'gnu-configure - (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) - ((assoc-ref gnu:%standard-phases 'configure) - #:native-inputs native-inputs - #:inputs inputs - #:outputs outputs - #:configure-flags - (list "--disable-static" - "--enable-vala" - (string-append "--with-html-dir=" - (assoc-ref %outputs "doc") - "/share/gtk-doc/html"))))) + (lambda* (#:key outputs #:allow-other-keys #:rest args) + (apply (assoc-ref gnu:%standard-phases 'configure) + #:configure-flags + (list "--disable-static" + "--enable-vala" + (string-append "--with-html-dir=" + (assoc-ref outputs "doc") + "/share/gtk-doc/html")) + args))) (add-after 'configure 'dont-vendor-self (lambda* (#:key vendor-dir #:allow-other-keys) ;; Don't keep the whole tarball in the vendor directory (delete-file-recursively - (string-append vendor-dir "/" ,name "-" ,version ".tar.xz")) - #t)) + (string-append vendor-dir "/" ,name "-" ,version ".tar.xz")))) (replace 'build (assoc-ref gnu:%standard-phases 'build)) (add-before 'check 'ignore-failing-tests @@ -3523,8 +3577,7 @@ library.") (("fn multiple_input_files_not_allowed_for_png_output" all) (string-append "#[ignore] " all)) (("fn stylesheet_option_error" all) - (string-append "#[ignore] " all))) - #t)) + (string-append "#[ignore] " all))))) (replace 'check (lambda* args ((assoc-ref gnu:%standard-phases 'check) @@ -3617,11 +3670,19 @@ functionality was designed to be as reusable and portable as possible.") ;; ... which they then completly ignore !! #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-parallel-build + ;; Parallel build fails because of a failed dependency, + ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274 + (lambda _ + (substitute* "src/services/name/Makefile.am" + (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h") + "orbit_name_server_2_DEPENDENCIES = \ +$(DEPS) CosNaming.h libname-server-2.a")))) (add-before 'configure 'ignore-deprecations (lambda _ (substitute* "linc2/src/Makefile.in" - (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")) - #t))))) + (("-DG_DISABLE_DEPRECATED") + "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))))))) (inputs `(("glib" ,glib) ("libidl" ,libidl))) (native-inputs @@ -4233,7 +4294,7 @@ engineering.") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) @@ -4243,7 +4304,7 @@ engineering.") ("gtk+:bin" ,gtk+ "bin") ("pkg-config" ,pkg-config))) (inputs - `(("gdk-pixbuf" ,gdk-pixbuf+svg) + `(("librsvg" ,librsvg) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+) ("pango" ,pango) @@ -4294,15 +4355,15 @@ engineering.") (define-public seahorse (package (name "seahorse") - (version "3.36.2") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" name "-" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5")))) + (base32 "1x99i7kdvd8hbxcs5rfrq7nw6r9bfzaw263zaigjjj04h6gc1vp6")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t @@ -4313,7 +4374,11 @@ engineering.") (lambda _ (substitute* "build-aux/meson_post_install.py" (("gtk-update-icon-cache") "true")) - #t))))) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a writable HOME. + (setenv "HOME" (getcwd))))))) (inputs `(("gtk+" ,gtk+) ("gcr" ,gcr) @@ -4322,10 +4387,10 @@ engineering.") ("openldap" ,openldap) ("openssh" ,openssh) ("avahi" ,avahi) - ("libhandy" ,libhandy-0.0) + ("libhandy" ,libhandy) ("libpwquality" ,libpwquality) ("libsecret" ,libsecret) - ("libsoup" ,libsoup))) + ("libsoup" ,libsoup-minimal-2))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -4343,52 +4408,61 @@ passwords in the GNOME keyring.") (define-public vala (package (name "vala") - (version "0.46.5") + (version "0.54.2") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" + (uri (string-append "mirror://gnome/sources/vala/" (version-major+minor version) "/" - name "-" version ".tar.xz")) + "vala-" version ".tar.xz")) (sha256 (base32 - "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s")))) - (build-system gnu-build-system) + "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8")))) + (build-system glib-or-gtk-build-system) (arguments - '(#:phases + '(#:configure-flags '("--enable-coverage") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "doc/manual" + (substitute* '("manual.xml" "version.xml.in") + (("http://www.oasis-open.org/docbook/xml/4.4/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/")))))) (add-before 'check 'pre-check - (lambda _ - (setenv "CC" "gcc") - (substitute* "valadoc/tests/testrunner.sh" - (("export PKG_CONFIG_PATH=" m) - (string-append m "$PKG_CONFIG_PATH:"))) - ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (lambda _ + (setenv "CC" "gcc") + (substitute* "valadoc/tests/libvaladoc\ +/tests-extra-environment.sh" + (("export PKG_CONFIG_PATH=" m) + (string-append m "$PKG_CONFIG_PATH:")))))))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("bison" ,bison) + ("dbus" ,dbus) ; for dbus tests + ("docbook-xml" ,docbook-xml-4.4) + ("docbook-xsl" ,docbook-xsl) ("flex" ,flex) - ("bison" ,bison) - ("xsltproc" ,libxslt) - ("dbus" ,dbus) ; for dbus tests - ("gobject-introspection" ,gobject-introspection))) ; for gir tests - (inputs - `(("graphviz" ,graphviz))) + ("gobject-introspection" ,gobject-introspection) ; for gir tests + ("help2man" ,help2man) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("xsltproc" ,libxslt))) (propagated-inputs - `(("glib" ,glib))) ; required by libvala-0.40.pc + `(("glib" ,glib) ; required by libvala-0.40.pc + ("libgvc" ,graphviz))) (home-page "https://wiki.gnome.org/Projects/Vala/") - (synopsis "Compiler for the GObject type system") - (description - "Vala is a programming language that aims to bring modern programming -language features to GNOME developers without imposing any additional runtime -requirements and without using a different ABI compared to applications and -libraries written in C.") + (synopsis "Compiler using the GObject type system") + (description "Vala is a programming language using modern high level +abstractions without imposing additional runtime requirements and without using +a different ABI compared to applications and libraries written in C. Vala uses +the GObject type system and has additional code generation routines that make +targeting the GNOME stack simple.") (license license:lgpl2.1+))) -(define-public vala-0.50 - (package - (inherit vala) - (version "0.50.2") +;;; An older variant kept to build libsoup-minimal-2. +(define-public vala-0.52 + (package/inherit vala + (version "0.52.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/vala/" @@ -4396,12 +4470,12 @@ libraries written in C.") "vala-" version ".tar.xz")) (sha256 (base32 - "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c")))))) + "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx")))))) (define-public vte (package (name "vte") - (version "0.60.3") + (version "0.64.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/vte/" @@ -4409,7 +4483,7 @@ libraries written in C.") "vte-" version ".tar.xz")) (sha256 (base32 - "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy")))) + "063ys3330cvhbz1dln9irhciavb2prw098lvhpcc2rx6cl5q4g1b")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -4506,7 +4580,8 @@ selection and URL hints."))) (arguments ;; Disable -Werror and such, to avoid build failures on compilation ;; warnings. - '(#:configure-flags '("--enable-compile-warnings=minimum") + '(#:configure-flags '("--enable-compile-warnings=minimum" + "CFLAGS=-fcommon") #:phases (modify-phases %standard-phases (add-before 'install 'skip-gtk-update-icon-cache @@ -4544,7 +4619,7 @@ and RDP protocols.") (define-public dconf (package (name "dconf") - (version "0.36.0") + (version "0.40.0") (source (origin (method url-fetch) (uri (string-append @@ -4553,7 +4628,7 @@ and RDP protocols.") name "-" version ".tar.xz")) (sha256 (base32 - "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz")))) + "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg")))) (build-system meson-build-system) (propagated-inputs ;; In Requires of dconf.pc. @@ -4573,7 +4648,7 @@ and RDP protocols.") ("vala" ,vala))) (arguments `(#:glib-or-gtk? #t - #:configure-flags '("-Denable-gtk-doc=true") + #:configure-flags '("-Dgtk_doc=true") #:phases (modify-phases %standard-phases (add-after 'unpack 'increase-test-timeout (lambda _ @@ -4589,36 +4664,91 @@ is to provide a backend to GSettings on platforms that don't already have configuration storage systems.") (license license:lgpl2.1+))) -(define-public json-glib +(define-public json-glib-minimal (package - (name "json-glib") - (version "1.4.4") + (name "json-glib-minimal") + (version "1.6.2") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) + (uri (string-append "mirror://gnome/sources/json-glib/" + (version-major+minor version) + "/json-glib-" version ".tar.xz")) (sha256 (base32 - "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j")))) + "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3")))) (build-system meson-build-system) + (arguments + `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas (native-inputs `(("gettext" ,gettext-minimal) - ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal - ("gobject-introspection" ,gobject-introspection) + ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal ("pkg-config" ,pkg-config))) + (inputs + `(("bash-minimal" ,bash-minimal))) (propagated-inputs - `(("glib" ,glib))) ;according to json-glib-1.0.pc + `(("glib" ,glib))) ;according to json-glib-1.0.pc (home-page "https://wiki.gnome.org/Projects/JsonGlib") - (synopsis "Compiler for the GObject type system") - (description - "JSON-GLib is a C library based on GLib providing serialization and -deserialization support for the JavaScript Object Notation (JSON) format -described by RFC 4627. It provides parser and generator GObject classes and -various wrappers for the complex data types employed by JSON, such as arrays -and objects.") + (synopsis "Glib and GObject implementation of JSON") + (description "JSON-GLib is a library providing serialization and +described by RFC 4627. It implements a full JSON parser and generator using +GLib and GObject, and integrates JSON with GLib data types.") (license license:lgpl2.1+))) +(define-public json-glib + (package/inherit json-glib-minimal + (name "json-glib") + (outputs (cons "doc" (package-outputs json-glib-minimal))) + (arguments + (substitute-keyword-arguments (package-arguments json-glib-minimal) + ((#:configure-flags _) + `(list "-Ddocs=true" + "-Dman=true" + ,@(if (%current-target-system) + ;; If enabled, gtkdoc-scangobj will try to execute a + ;; cross-compiled binary. + '("-Dgtk_doc=disabled" + ;; Trying to build introspection data when cross-compiling + ;; causes errors during linking. + "-Dintrospection=disabled") + '()))) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-docbook + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (with-directory-excursion "doc" + (substitute* (find-files "." "\\.xml$") + (("http://www.oasis-open.org/docbook/xml/4\\.3/") + (string-append (assoc-ref (or native-inputs inputs) + "docbook-xml") + "/xml/dtd/docbook/"))) + (substitute* "meson.build" + (("http://docbook.sourceforge.net/release/xsl/current/") + (string-append (assoc-ref (or native-inputs inputs) + "docbook-xsl") + "/xml/xsl/docbook-xsl-1.79.2/")))))) + ;; When cross-compiling, there are no docs to move. + ,(if (%current-target-system) + '(add-after 'install 'stub-docs + (lambda* (#:key outputs #:allow-other-keys) + ;; The daemon doesn't like empty output paths. + (mkdir (assoc-ref outputs "doc")))) + '(add-after 'install 'move-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc")))))))))) + (native-inputs + (append + `(("docbook-xml" ,docbook-xml-4.3) + ("docbook-xsl" ,docbook-xsl) + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc) + ("xsltproc" ,libxslt)) + (package-native-inputs json-glib-minimal))))) + (define-public libxklavier (package (name "libxklavier") @@ -4703,7 +4833,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.62.2") + (version "2.70.rc") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -4711,23 +4841,28 @@ library.") "glib-networking-" version ".tar.xz")) (sha256 (base32 - "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06")))) + "1ymq0mr78kfq3n5nczf9v6pqijxk73i63k4zzsn6nfxbldrnbs8z")) + (patches + (search-patches "glib-networking-gnutls-binding.patch")))) (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlibproxy_support=false"))) (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) + ("gettext" ,gettext-minimal))) (inputs `(("glib" ,glib) ("gnutls" ,gnutls) - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) - (home-page "https://www.gnome.org") - (synopsis "Network-related GIO modules") - (description - "This package contains various network related extensions for the GIO -library.") - (license license:lgpl2.0+))) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("libproxy" ,libproxy))) + (home-page "https://wiki.gnome.org/Projects/GLib") + (synopsis "Network extensions for GLib") + (description + "Glib-networking contains the implementations of certain GLib networking +features that cannot be implemented directly in GLib itself because of their +dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of +GTlsBackend, a libproxy-based implementation of GProxyResolver, +GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information +from the GSettings schemas in gsettings-desktop-schemas.") + (license license:lgpl2.1+))) (define-public rest (package @@ -4753,7 +4888,7 @@ library.") (propagated-inputs ;; rest-0.7.pc refers to all these. `(("glib" ,glib) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("libxml2" ,libxml2))) (home-page "https://www.gtk.org/") (synopsis "RESTful web api query library") @@ -4763,10 +4898,11 @@ claim to be \"RESTful\". It includes convenience wrappers for libsoup and libxml to ease remote use of the RESTful API.") (license license:lgpl2.1+))) -(define-public libsoup +;;; A minimal version of libsoup used to prevent a cycle with Inkscape. +(define-public libsoup-minimal (package - (name "libsoup") - (version "2.72.0") + (name "libsoup-minimal") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -4774,25 +4910,12 @@ libxml to ease remote use of the RESTful API.") "libsoup-" version ".tar.xz")) (sha256 (base32 - "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p")))) + "0ixwj6d0ryvana6lq1fmbbbin0f2wd5n9iv4ynb8nigq21nk233g")))) (build-system meson-build-system) - (outputs '("out" "doc")) (arguments - `(#:modules ((guix build utils) - (guix build meson-build-system) - (ice-9 popen)) - - #:configure-flags '("-Dgtk_doc=true") + `(#:configure-flags '("-Dgtk_doc=false") #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-docbook-xml - (lambda* (#:key inputs #:allow-other-keys) - (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook"))) - (substitute* (find-files "docs/reference") - (("http://.*/docbookx\\.dtd") - (string-append xmldoc "/docbookx.dtd"))) - #t))) (add-after 'unpack 'adjust-tests (lambda _ ;; This test fails due to missing /etc/nsswitch.conf @@ -4808,86 +4931,32 @@ libxml to ease remote use of the RESTful API.") ((".*/hsts/superdomain.*") "") ((".*/hsts/utf8-address.*") "")) (substitute* "tests/hsts-db-test.c" - ((".*/hsts-db/subdomains.*") "")) - - ;; Generate a self-signed certificate that has "localhost" as its - ;; 'dnsName'. Failing to do that, and starting with GnuTLS - ;; 3.5.12, tests such as "ssl-tests" fail: - ;; - ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK) - ;; - ;; 'certtool' is interactive so we have to pipe it the answers. - ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>. - (let ((pipe (open-output-pipe "certtool --generate-self-signed \ - --load-privkey tests/test-key.pem --outfile tests/test-cert.pem"))) - (for-each (lambda (line) - (display line pipe) - (newline pipe)) - '("" ;Common name - "" ;UID - "Guix" ;Organizational unit name - "GNU" ;Organization name - "" ;Locality name - "" ;State or province - "" ;Country - "" ;subject's domain component (DC) - "" ;E-mail - "" ;serial number - "-1" ;expiration time - "N" ;belong to authority? - "N" ;web client certificate? - "N" ;IPsec IKE? - "Y" ;web server certificate? - "localhost" ;dnsName of subject - "" ;dnsName of subject (end) - "" ;URI of subject - "127.0.0.1" ;IP address of subject - "" ;signing? - "" ;encryption (RSA)? - "" ;data encryption? - "" ;sign OCSP requests? - "" ;sign code? - "" ;time stamping? - "" ;email protection? - "" ;URI of the CRL distribution point - "y" ;above info OK? - )) - (close-pipe pipe)) - #t)) - (add-after 'install 'move-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share")) - (copy-recursively (string-append out "/share/gtk-doc") - (string-append doc "/share/gtk-doc")) - (delete-file-recursively (string-append out "/share/gtk-doc")) - #t)))))) + ((".*/hsts-db/subdomains.*") ""))))))) (native-inputs - `(("docbook-xml" ,docbook-xml-4.1.2) - ("glib:bin" ,glib "bin") ; for glib-mkenums + `(("glib:bin" ,glib "bin") ;for glib-mkenums ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("python" ,python-wrapper) ("vala" ,vala) ("php" ,php) ("curl" ,curl) - ("gnutls" ,gnutls) ;for 'certtool' + ("gnutls" ,gnutls) ;for 'certtool' ("httpd" ,httpd))) (propagated-inputs - ;; libsoup-2.4.pc refers to all of these (except where otherwise noted) + ;; libsoup-3.0.pc refers to all of these (except where otherwise noted) `(("brotli" ,brotli) ("glib" ,glib) - ("glib-networking" ,glib-networking) ; for GIO runtime modules + ("glib-networking" ,glib-networking) ; for GIO runtime modules ("libpsl" ,libpsl) + ("nghttp2" ,nghttp2) ;for pkg-config + ("nghttp2:lib" ,nghttp2 "lib") ("libxml2" ,libxml2) ("sqlite" ,sqlite) ("zlib" ,zlib))) (inputs `(("mit-krb5" ,mit-krb5) - ("ntlm_auth" ,samba))) ; For ntlm_auth support + ("ntlm_auth" ,samba/fixed))) ; For ntlm_auth support (home-page "https://wiki.gnome.org/Projects/libsoup") (synopsis "GLib-based HTTP Library") (description @@ -4895,20 +4964,62 @@ libxml to ease remote use of the RESTful API.") and the GLib main loop, to integrate well with GNOME applications.") (license license:lgpl2.0+))) +;;; An older variant kept to build the 'rest' package. +(define-public libsoup-minimal-2 + (package/inherit libsoup-minimal + (version "2.72.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/libsoup/" + (version-major+minor version) "/" + "libsoup-" version ".tar.xz")) + (sha256 + (base32 + "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p")))) + (arguments + (substitute-keyword-arguments (package-arguments libsoup-minimal) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + ;; Disable the SSL test, failing since 2.68 and resolved in + ;; libsoup 3. + (substitute* "tests/meson.build" + (("[ \t]*\\['ssl', true, \\[\\]\\],") "")))))))) + (native-inputs + (cons `("vala" ,vala-0.52) + (delete "vala" (package-native-inputs libsoup-minimal)))))) -;;; A minimal version of libsoup used to prevent a cycle with Inkscape. -(define-public libsoup-minimal - (package/inherit libsoup - (name "libsoup-minimal") - (outputs (delete "doc" (package-outputs libsoup))) +(define-public libsoup + (package/inherit libsoup-minimal + (name "libsoup") + (outputs (cons "doc" (package-outputs libsoup-minimal))) (arguments - (substitute-keyword-arguments (package-arguments libsoup) + (substitute-keyword-arguments (package-arguments libsoup-minimal) ((#:configure-flags configure-flags) - `(delete "-Dgtk_doc=true" ,configure-flags)) + `(cons "-Dgtk_doc=true" + (delete "-Dgtk_doc=false" ,configure-flags))) ((#:phases phases) `(modify-phases ,phases - (delete 'move-doc))))) - (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup))))) + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook"))) + (substitute* (find-files "docs/reference") + (("http://.*/docbookx\\.dtd") + (string-append xmldoc "/docbookx.dtd")))))) + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (copy-recursively (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc")) + (delete-file-recursively + (string-append out "/share/gtk-doc"))))))))) + (native-inputs (append `(("docbook-xml" ,docbook-xml-4.1.2) + ("gtk-doc" ,gtk-doc)) + (package-native-inputs libsoup-minimal))))) (define-public libsecret (package @@ -5006,25 +5117,25 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") (define-public gnome-mines (package (name "gnome-mines") - (version "3.36.1") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i")))) + (base32 "0sf6kdvhr4pr3hddnj6ql9larz2wy108sri31id6x9g459nbly8z")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:glib-or-gtk? #t + #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache (lambda _ (substitute* "build-aux/meson_post_install.py" - (("gtk-update-icon-cache") (which "true"))) - #t))))) + (("gtk-update-icon-cache") (which "true")))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-resources ("pkg-config" ,pkg-config) @@ -5089,26 +5200,26 @@ once.") (define-public gnome-sudoku (package (name "gnome-sudoku") - (version "3.34.1") + (version "40.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b")))) + "18slsxifad5cjz4fqi818i66jc9b7kzgn01qxa0ra4y7wcqha4in")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:glib-or-gtk? #t + #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache (lambda _ (substitute* "build-aux/post_install.py" - (("gtk-update-icon-cache") (which "true"))) - #t))))) + (("gtk-update-icon-cache") (which "true")))))))) (native-inputs `(("pkg-config" ,pkg-config) ("desktop-file-utils" ,desktop-file-utils) @@ -5135,7 +5246,7 @@ more fun.") (define-public gnome-terminal (package (name "gnome-terminal") - (version "3.34.2") + (version "3.40.3") (source (origin (method url-fetch) @@ -5144,7 +5255,7 @@ more fun.") name "-" version ".tar.xz")) (sha256 (base32 - "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv")))) + "08hsic7sn32xw12i3j0ard2bhfhp8gmzqm0pa8xzl5l1jhzsmsfb")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -5153,14 +5264,16 @@ more fun.") #:phases (modify-phases %standard-phases (add-before 'configure 'patch-/bin/true - (lambda _ - (substitute* "configure" - (("/bin/true") (which "true")))))))) + (lambda _ + (substitute* "configure" + (("/bin/true") (which "true")))))))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("docbook-xsl" ,docbook-xsl) + ("pkg-config" ,pkg-config) ("desktop-file-utils" ,desktop-file-utils) ("intltool" ,intltool) ("itstool" ,itstool) + ("libxslt" ,libxslt) ("xmllint" ,libxml2))) (propagated-inputs `(("dconf" ,dconf))) @@ -5182,9 +5295,9 @@ It supports several profiles, multiple tabs and implements several keyboard shortcuts.") (license license:gpl3+))) -(define-public colord +(define-public colord-minimal (package - (name "colord") + (name "colord-minimal") (version "1.4.5") (source (origin @@ -5195,33 +5308,27 @@ keyboard shortcuts.") (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p")))) (build-system meson-build-system) (arguments - '(;; FIXME: One test fails: + '( ;; FIXME: One test fails: ;; /colord/icc-store (in lib/colord/colord-self-test-private): ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got ;; application/x-zerosize #:tests? #f #:glib-or-gtk? #t - #:configure-flags (list "-Dlocalstatedir=/var" - ;; No dep on systemd. - "-Dsystemd=false" - ;; Wants to install to global completion dir; - ;; punt. + #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread "-Dbash_completion=false" "-Ddaemon_user=colord" + "-Ddocs=false" + "-Dlocalstatedir=/var" + "-Dman=false" "-Dsane=true" - "-Dvapi=true" - ;; Requires spotread. - "-Dargyllcms_sensor=false" - ;; TODO: Requires docbook2x. - "-Dman=false") + "-Dsystemd=false") ;no systemd #:phases (modify-phases %standard-phases (add-before 'configure 'patch-build-system (lambda* (#:key outputs #:allow-other-keys) (substitute* "rules/meson.build" (("udev.get_pkgconfig_variable\\('udevdir'\\)") - (string-append "'" (assoc-ref outputs "out") "/lib/udev'"))) - #t)) + (string-append "'" (assoc-ref outputs "out") "/lib/udev'"))))) (add-before 'configure 'set-sqlite3-file-name (lambda* (#:key inputs #:allow-other-keys) ;; "colormgr dump" works by invoking the "sqlite3" command. @@ -5229,13 +5336,10 @@ keyboard shortcuts.") (let ((sqlite (assoc-ref inputs "sqlite"))) (substitute* "client/cd-util.c" (("\"sqlite3\"") - (string-append "\"" sqlite "/bin/sqlite3\""))) - #t)))))) + (string-append "\"" sqlite "/bin/sqlite3\""))))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc. ("gettext" ,gettext-minimal) - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) ("pkg-config" ,pkg-config) ("vala" ,vala))) (propagated-inputs @@ -5245,7 +5349,8 @@ keyboard shortcuts.") ("udev" ,eudev))) (inputs `(("dbus-glib" ,dbus-glib) - ("gusb" ,gusb) + ("gobject-introspection" ,gobject-introspection) + ("gusb" ,gusb-minimal) ("libgudev" ,libgudev) ("libusb" ,libusb) ("polkit" ,polkit) @@ -5259,6 +5364,41 @@ install and generate color profiles to accurately color manage input and output devices.") (license license:gpl2+))) +(define-public colord + (package/inherit colord-minimal + (name "colord") + (arguments + (substitute-keyword-arguments + (package-arguments colord-minimal) + ((#:configure-flags flags) + `(begin + (use-modules (srfi srfi-1)) + (append '("-Dbash_completion=true" + "-Ddocs=true" + "-Dman=true" + "-Dvapi=true") + (fold delete ,flags '("-Dbash_completion=false" + "-Ddocs=false" + "-Dman=false"))))) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'fix-bash-completion-dir + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "data/meson.build" + (("bash_completion.get_pkgconfig_variable\ +\\('completionsdir'\\)") + (string-append "'" (assoc-ref outputs "out") + "/etc/bash_completion.d'"))))))))) + (native-inputs + (append + `(("bash-completion" ,bash-completion) + ("docbook-xsl-ns" ,docbook-xsl-ns) + ("gtk-doc" ,gtk-doc/stable) + ("libxml2" ,libxml2) ;for XML_CATALOG_FILES + ("libxslt" ,libxslt) + ("vala" ,vala)) ;for VAPI, needed by simple-scan + (package-native-inputs colord-minimal))))) + (define-public geoclue (package (name "geoclue") @@ -5274,7 +5414,7 @@ output devices.") (patches (search-patches "geoclue-config.patch")))) (build-system meson-build-system) (arguments - '(#:configure-flags (list "-Dbus-srv-user=geoclue"))) + '(#:configure-flags (list "-Ddbus-srv-user=geoclue"))) (native-inputs `(("pkg-config" ,pkg-config) ("gobject-introspection" ,gobject-introspection) @@ -5287,7 +5427,7 @@ output devices.") ("glib:bin" ,glib "bin") ("glib-networking" ,glib-networking) ("json-glib" ,json-glib) - ("libsoup" ,libsoup))) + ("libsoup" ,libsoup-minimal-2))) (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home") (synopsis "Geolocation service") (description "Geoclue is a D-Bus service that provides location @@ -5317,9 +5457,7 @@ permission from user.") (add-before 'check 'set-locales (lambda* (#:key inputs #:allow-other-keys) (setenv "GUIX_LOCPATH" - (string-append (assoc-ref inputs "glibc-locales") - "/lib/locale")) - #t))))) + (search-input-directory inputs "lib/locale"))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("glibc-locales" ,glibc-locales) ; for tests @@ -5332,7 +5470,7 @@ permission from user.") ;; geocode-glib-1.0.pc refers to GIO. `(("glib" ,glib))) (inputs - `(("libsoup" ,libsoup))) + `(("libsoup" ,libsoup-minimal-2))) (home-page "https://github.com/GNOME/geocode-glib/") (synopsis "Geocoding and reverse-geocoding library") (description @@ -5426,15 +5564,15 @@ service via the system message bus.") (define-public libgweather (package (name "libgweather") - (version "3.34.0") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902")))) + "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna")))) (build-system meson-build-system) (arguments `(#:tests? #f ; one of two tests requires network access @@ -5447,14 +5585,15 @@ service via the system message bus.") ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) ("vala" ,vala) - ("intltool" ,intltool))) + ("intltool" ,intltool) + ("python-pygobject" ,python-pygobject))) (propagated-inputs ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and ;; libsoup. `(("gtk+" ,gtk+) ("gdk-pixbuf" ,gdk-pixbuf) ("libxml2" ,libxml2) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("geocode-glib" ,geocode-glib))) (inputs `(("tzdata" ,tzdata))) @@ -5468,20 +5607,21 @@ services for numerous locations.") (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.34.1") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr")) + "111qcvlqjpasnswdniy5n53wyrs1y7a91qx1w4nsppnizdhn7jp6")) (patches (search-patches "gnome-settings-daemon-gc.patch")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 + #:glib-or-gtk? #t #:configure-flags (list (string-append "-Dudev_dir=" (assoc-ref %outputs "out") @@ -5503,8 +5643,7 @@ services for numerous locations.") (substitute* "plugins/housekeeping/gsd-disk-space.c" (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)") (string-append "g_strdup (\"" baobab - "/bin/baobab\")"))) - #t)))) + "/bin/baobab\")"))))))) ;; Color management test can't reach the colord system service. #:tests? #f)) @@ -5626,7 +5765,7 @@ which are easy to play with the aid of a mouse.") (define-public amtk (package (name "amtk") - (version "5.0.2") + (version "5.3.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/amtk/" @@ -5634,10 +5773,8 @@ which are easy to play with the aid of a mouse.") "amtk-" version ".tar.xz")) (sha256 (base32 - "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i")))) - (build-system gnu-build-system) - (arguments - '(#:configure-flags '("--enable-gtk-doc"))) + "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm")))) + (build-system meson-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) ("glib:bin" ,glib "bin") ; for glib-mkenums @@ -5657,26 +5794,33 @@ both a traditional UI or a modern UI with a GtkHeaderBar.") (define-public devhelp (package (name "devhelp") - (version "3.34.0") + (version "41.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg")))) + "1lk0gycjvs6gibhy0zs3ffkrkzrkyl5nkp7n60hgpa6syjq91apc")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:glib-or-gtk? #t + #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ - (substitute* "meson_post_install.py" - (("gtk-update-icon-cache") "true")) - #t))))) + (substitute* "build-aux/meson/meson_post_install.py" + (("gtk-update-icon-cache") "true")))) + (add-after 'unpack 'fix-devhelp-gir-inputs + ;; It still mentions webkitgtk 4.0 + (lambda _ + (substitute* "devhelp/meson.build" + (("'WebKit2-4.0'") "'WebKit2-4.1'"))))))) + (propagated-inputs + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) (native-inputs `(("intltool" ,intltool) ("itstool" ,itstool) @@ -5895,7 +6039,7 @@ OpenGL-based interactive canvas library.") (define-public libchamplain (package (name "libchamplain") - (version "0.12.16") + (version "0.12.20") (source (origin (method url-fetch) (uri (string-append @@ -5903,15 +6047,14 @@ OpenGL-based interactive canvas library.") version ".tar.xz")) (sha256 (base32 - "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja")))) - (build-system gnu-build-system) - (arguments '(#:configure-flags '("--enable-vala"))) + "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2")))) + (build-system meson-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) ("vala" ,vala))) (propagated-inputs - `(("libsoup" ,libsoup) + `(("libsoup" ,libsoup-minimal-2) ("sqlite" ,sqlite) ("clutter" ,clutter) ("clutter-gtk" ,clutter-gtk) @@ -6044,7 +6187,7 @@ as possible!") (define-public grilo (package (name "grilo") - (version "0.3.12") + (version "0.3.13") (source (origin (method url-fetch) @@ -6052,7 +6195,7 @@ as possible!") (version-major+minor version) "/" "grilo-" version ".tar.xz")) (sha256 - (base32 "0w8sq5g6g1rg85h53vbll8va70fcp6082mlpmy98aa03444ddyyv")))) + (base32 "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i")))) (build-system meson-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal @@ -6067,7 +6210,7 @@ as possible!") ("gtk+" ,gtk+) ("libxml2" ,libxml2) ("liboauth" ,liboauth) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("totem-pl-parser" ,totem-pl-parser))) (native-search-paths (list (search-path-specification @@ -6084,7 +6227,7 @@ for application developers.") (define-public grilo-plugins (package (name "grilo-plugins") - (version "0.3.11") + (version "0.3.13") (source (origin (method url-fetch) @@ -6092,7 +6235,7 @@ for application developers.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "0wyd3n5mn7b77hxylkc3f62v01mlavh96901pz342hwrn42ydqnx")))) + (base32 "1y10nnd711qxwgpz6spzp1rnk50fyf11kk1n71a31ab4fgb0ahqw")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -6115,12 +6258,24 @@ for application developers.") ("libmediaart" ,libmediaart) ;("librest" ,rest) ; unused ("libsoup" ,libsoup) + ("python-pygobject" ,python-pygobject) ("totam-pl-parser" ,totem-pl-parser) - ("tracker" ,tracker))) ; unused because it's too old + ("tracker" ,tracker) + ("tracker-miners" ,tracker-miners))) (arguments `(#:glib-or-gtk? #t ;;Disable lua-factory as it needs missing dependencies - #:configure-flags '("-Denable-lua-factory=no"))) + #:configure-flags '("-Denable-lua-factory=no") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-shell + (lambda _ + (setenv "SHELL" (which "bash")))) + ;; Disable the tracker test that requires the UPower daemon. + (add-before 'configure 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tests/tracker3/meson.build" + (("'test_tracker3'.*") ""))))))) (home-page "https://live.gnome.org/Grilo") (synopsis "Plugins for the Grilo media discovery library") (description @@ -6184,7 +6339,8 @@ discovery protocols.") ("grilo-plugins" ,grilo-plugins) ("vala" ,vala))) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t ;; Disable automatic GStreamer plugin installation via PackageKit and ;; all that. @@ -6264,12 +6420,12 @@ which can read a large number of file formats.") (gi-typelib-path (getenv "GI_TYPELIB_PATH")) (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) (grl-plugin-path (getenv "GRL_PLUGIN_PATH")) - (python-path (getenv "PYTHONPATH"))) + (python-path (getenv "GUIX_PYTHONPATH"))) (wrap-program (string-append out "/bin/rhythmbox") `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)) - `("PYTHONPATH" ":" prefix (,python-path)))) + `("GUIX_PYTHONPATH" ":" prefix (,python-path)))) #t))))) (propagated-inputs `(("dconf" ,dconf))) @@ -6324,18 +6480,19 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") (define-public eog (package (name "eog") - (version "3.34.1") + (version "40.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x")))) + "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8")))) (build-system meson-build-system) (arguments - `(#:configure-flags + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:configure-flags ;; Otherwise, the RUNPATH will lack the final 'eog' path component. (list (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib/eog")) @@ -6345,15 +6502,13 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "meson_post_install.py" - (("gtk-update-icon-cache") "true")) - #t)) + (("gtk-update-icon-cache") "true")))) (add-after 'install 'wrap-eog (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (wrap-program (string-append out "/bin/eog") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - #t))))) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))))))) (propagated-inputs `(("dconf" ,dconf))) (native-inputs @@ -6371,8 +6526,9 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") ("lcms" ,lcms) ("libexif" ,libexif) ("libpeas" ,libpeas) + ("libportal" ,libportal) ("libjpeg" ,libjpeg-turbo) - ("librsvg" ,librsvg-next) + ("librsvg" ,librsvg) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+))) (home-page "https://wiki.gnome.org/Apps/EyeOfGnome") @@ -6388,7 +6544,7 @@ supports image conversion, rotation, and slideshows.") ;; 'XDG_DATA_DIRS' appropriately set. (package (name "eog-plugins") - (version "3.26.4") + (version "3.26.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/eog-plugins/" @@ -6396,7 +6552,7 @@ supports image conversion, rotation, and slideshows.") "eog-plugins-" version ".tar.xz")) (sha256 (base32 - "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx")))) + "0gbvl54hjawcrj2cbkvsw5jx11p6jv1xkc58c8ikwwpb56gc3ric")))) (build-system gnu-build-system) (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins") (synopsis "Extensions for the Eye of GNOME image viewer") @@ -6457,7 +6613,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") (define-public gvfs (package (name "gvfs") - (version "1.40.2") + (version "1.48.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gvfs/" @@ -6465,13 +6621,11 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") "gvfs-" version ".tar.xz")) (sha256 (base32 - "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx")) - ;; This patch may be removed when upgrading to version 1.46.x. - (patches - (search-patches "gvfs-add-support-for-libplist-2.2.patch")))) + "1hlxl6368h6nyqp1888szxs9hnpcw98k3h23dgqi29xd38klzsmj")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 + #:glib-or-gtk? #t #:configure-flags (list "-Dsystemduserunitdir=no" "-Dtmpfilesdir=no" @@ -6479,7 +6633,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib/gvfs")))) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. + `(("glib:bin" ,glib "bin") ;for glib-genmarshal, etc. ("gettext" ,gettext-minimal) ("gtk-doc" ,gtk-doc/stable) ("pkg-config" ,pkg-config) @@ -6490,10 +6644,11 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") ("docbook-xsl" ,docbook-xsl) ("dbus" ,dbus) ("elogind" ,elogind) - ("fuse" ,fuse) + ("fuse" ,fuse-3) ("gcr" ,gcr) ("glib" ,glib) ("gnome-online-accounts" ,gnome-online-accounts) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("libarchive" ,libarchive) ("libbluray" ,libbluray) ("libcap" ,libcap) @@ -6512,47 +6667,50 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") ("openssh" ,openssh) ("polkit" ,polkit) ("udisks" ,udisks))) - ;; CVE-2019-{12447,12448,12449} are fixed in the 1.40.2 release. - (properties '((lint-hidden-cve . ("CVE-2019-12447" - "CVE-2019-12448" - "CVE-2019-12449")))) (home-page "https://wiki.gnome.org/gvfs/") (synopsis "Userspace virtual file system for GIO") (description "GVFS is a userspace virtual file system designed to work with the I/O -abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support -to all applications using the GIO API. It also supports exposing the GVFS -mounts to non-GIO applications using FUSE. +abstraction of GIO. It contains a GIO module that seamlessly adds GVFS +support to all applications using the GIO API. It also supports exposing the +GVFS mounts to non-GIO applications using FUSE. GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP, DAV, and others.") (license license:lgpl2.0+))) -(define-public gusb +(define-public gusb-minimal (package - (name "gusb") + (name "gusb-minimal") (version "0.3.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/hughsie/libgusb") - (commit version))) + (url "https://github.com/hughsie/libgusb") + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8")))) (build-system meson-build-system) + (arguments + `(#:tests? #f ;libusb fails to initialize. Wonder what that is. + #:configure-flags + (cons "-Ddocs=false" + (if ,(%current-target-system) + ;; Introspection data cannot currently be cross-compiled. + '("-Dintrospection=false" + ;; Requires introspection data. + "-Dvapi=false") + '())))) (native-inputs `(("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) - ("vala" ,vala) - ("gtk-doc" ,gtk-doc/stable))) + ("vala" ,vala))) (propagated-inputs ;; Both of these are required by gusb.pc. `(("glib" ,glib) ("libusb" ,libusb))) - (arguments - `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is. (home-page "https://github.com/hughsie/libgusb") (synopsis "GLib binding for libusb1") (description @@ -6562,22 +6720,35 @@ and integration into a mainloop. This makes it easy to integrate low level USB transfers with your high-level application or system daemon.") (license license:lgpl2.1+))) +(define-public gusb + (package/inherit gusb-minimal + (name "gusb") + (arguments + (substitute-keyword-arguments (package-arguments gusb-minimal) + ((#:configure-flags flags) + `(cons "-Ddocs=true" + (delete "-Ddocs=false" ,flags))))) + (native-inputs + (cons `("gtk-doc" ,gtk-doc/stable) + (package-native-inputs gusb-minimal))))) + (define-public simple-scan (package (name "simple-scan") - (version "3.38.2") + (version "40.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/simple-scan/" - (version-major+minor version) "/" + (version-major version) "/" "simple-scan-" version ".tar.xz")) (sha256 - (base32 "02sdkhxgr6i7iy481h4xavgaqd0a5dlsipzwrm4qd242jrr813d8")))) + (base32 "195rh8zj5n497gj42rd77mvkdl15hk0i08ll5h4hb9kcrgj7jlzb")))) (build-system meson-build-system) ;; TODO: Fix icons in home screen, About dialogue, and scan menu. (arguments - '(#:glib-or-gtk? #t)) + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t)) (inputs `(("gtk" ,gtk+) ("zlib" ,zlib) @@ -6585,6 +6756,7 @@ USB transfers with your high-level application or system daemon.") ("colord" ,colord) ("gdk-pixbuf" ,gdk-pixbuf) ("gusb" ,gusb) + ("libhandy" ,libhandy) ("libsane" ,sane-backends))) (native-inputs `(("gettext" ,gettext-minimal) @@ -6638,7 +6810,7 @@ almost all of them.") ":"))) (wrap-program (string-append out "/bin/eolie") `("LD_LIBRARY_PATH" ":" prefix (,path)) - `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))) + `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))) #t))))) (native-inputs @@ -6675,42 +6847,40 @@ a secret password store, an adblocker, and a modern UI.") (define-public epiphany (package (name "epiphany") - (version "3.34.4") + (version "40.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/epiphany/" - (version-major+minor version) "/" + (version-major version) "/" "epiphany-" version ".tar.xz")) (sha256 (base32 - "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0")))) + "0r7m34xzz3shdfxf2abxb069izak3yv3ijlg29qy4pfmyawkilfs")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:glib-or-gtk? #t + #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "post_install.py" - (("gtk-update-icon-cache") "true")) - #t)) + (("gtk-update-icon-cache") "true")))) (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "tests/meson.build" - ;; embed_shell fails, because webkitgtk apparently no longer supports - ;; overriding the ftp schema - ;; web_app_utils fails due to missing network access + ;; embed_shell fails, because webkitgtk apparently no longer + ;; supports overriding the ftp schema web_app_utils fails due + ;; to missing network access. (("(embed_shell|web_app_utils)_test,") - "find_program('sh'), args: ['-c', 'exit 77'],")) - #t)) + "find_program('sh'), args: ['-c', 'exit 77'],")))) (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - #t))) + (setenv "DISPLAY" ":1")))) #:configure-flags ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component. (list (string-append "-Dc_link_args=-Wl,-rpath=" @@ -6728,19 +6898,22 @@ a secret password store, an adblocker, and a modern UI.") (inputs `(("avahi" ,avahi) ("gcr" ,gcr) - ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files + ("librsvg" ,librsvg) ; for loading SVG files ("glib-networking" ,glib-networking) ("gnome-desktop" ,gnome-desktop) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("json-glib" ,json-glib) ("iso-codes" ,iso-codes) + ("libarchive" ,libarchive) ("libdazzle" ,libdazzle) + ("libhandy" ,libhandy) ("libnotify" ,libnotify) + ("libportal" ,libportal) ("libsecret" ,libsecret) ("libxslt" ,libxslt) ("nettle" ,nettle) ; for hogweed ("sqlite" ,sqlite) - ("webkitgtk" ,webkitgtk))) + ("webkitgtk" ,webkitgtk-with-libsoup2))) (home-page "https://wiki.gnome.org/Apps/Web") (synopsis "GNOME web browser") (description @@ -6784,7 +6957,7 @@ principles are simplicity and standards compliance.") (let ((prog (string-append (assoc-ref outputs "out") "/bin/d-feet"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH"))) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH"))) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) #t)))))) (native-inputs @@ -6810,21 +6983,28 @@ of running programs and invoke methods on those interfaces.") (define-public yelp-xsl (package (name "yelp-xsl") - (version "3.34.2") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc")))) + (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list + "--enable-doc"))) (native-inputs - `(("gettext-minimal" ,gettext-minimal) + `(("ducktype" ,mallard-ducktype) + ("gettext" ,gettext-minimal) + ("intltool" ,intltool) ("itstool" ,itstool) - ("xmllint" ,libxml2))) + ("xmllint" ,libxml2) + ("xsltproc" ,libxslt))) (synopsis "XSL stylesheets for Yelp") (description "Yelp-XSL is a collection of programs and data files to help you build, maintain, and distribute documentation. It provides XSLT stylesheets @@ -6845,15 +7025,15 @@ jQuery.Syntax JavaScript libraries.") (define-public yelp (package (name "yelp") - (version "3.32.2") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f")))) + "11shrqass8ak8m10nayqssa6sbrrxa13ffpamvqi1c0yzkxdk9r5")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. @@ -7035,7 +7215,7 @@ share them with others via social networking and more.") (define-public file-roller (package (name "file-roller") - (version "3.38.0") + (version "3.40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/file-roller/" @@ -7043,7 +7223,7 @@ share them with others via social networking and more.") "file-roller-" version ".tar.xz")) (sha256 (base32 - "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj")))) + "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a")))) (build-system meson-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database @@ -7071,44 +7251,35 @@ such as gzip tarballs.") (define-public gnome-session (package (name "gnome-session") - (version "3.34.2") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) + (patches (search-patches "gnome-session-support-elogind.patch")) (sha256 (base32 - "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb")))) + "02z0xr6sv9ibl7awbw9j4y05hf4jk1zgvsbbmh7n27hhjvsvc8pl")))) (arguments - '(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 + #:glib-or-gtk? #t #:phases (modify-phases %standard-phases - (add-before 'configure 'pre-configure - (lambda* (#:key outputs #:allow-other-keys) - ;; Use elogind instead of systemd. - (substitute* "meson.build" - (("libsystemd-login") "libelogind") - (("and libsystemd_daemon_dep.found.*") ",")) - (substitute* "gnome-session/gsm-systemd.c" - (("#include <systemd/sd-login.h>") - "#include <elogind/sd-login.h>")) - ;; Remove uses of the systemd daemon. - (substitute* "gnome-session/gsm-autostart-app.c" - (("#ifdef HAVE_SYSTEMD") "#if 0")) - #t)) (add-after 'install 'wrap-gnome-session (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make sure 'gnome-session' finds the 'gsettings' program. (let ((glib (assoc-ref inputs "glib:bin")) (out (assoc-ref outputs "out"))) (wrap-program (string-append out "/bin/gnome-session") - `("PATH" ":" prefix (,(string-append glib "/bin")))) - #t)))) + `("PATH" ":" prefix (,(string-append glib "/bin")))))))) #:configure-flags '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error "-Dman=false" ; FIXME: disabled because of docbook validation error + "-Delogind=true" + "-Dsystemd=false" + "-Dsystemd_session=disable" "-Dsystemd_journal=false"))) (build-system meson-build-system) (native-inputs @@ -7142,7 +7313,7 @@ configuration program to choose applications starting on login.") (define-public gjs (package (name "gjs") - (version "1.58.3") + (version "1.70.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7150,30 +7321,26 @@ configuration program to choose applications starting on login.") name "-" version ".tar.xz")) (sha256 (base32 - "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya")))) - (build-system gnu-build-system) + "0pqwhq0znprs0h5ixz396912acwzk9zvjfhi9qvh52ii38s2j1jb")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "installed-tests/scripts/testCommandLine.sh" + (("Valentín") "") + (("☭") "")))))) + (build-system meson-build-system) (arguments - '(#:phases + '(#:configure-flags '("-Dinstalled_tests=false") + #:phases (modify-phases %standard-phases - (add-before - 'check 'pre-check - (lambda _ - ;; The test suite requires a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - - ;; For the missing /etc/machine-id. - (setenv "DBUS_FATAL_WARNINGS" "0") + (add-before 'check 'pre-check + (lambda _ + ;; The test suite requires a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") - ;; Our mozjs-38 package does not compile the required Intl API - ;; support for these failing tests. - (substitute* "installed-tests/js/testLocale.js" - ((".*toBeDefined.*") "") - ((".*expect\\(datestr\\).*") "")) - (substitute* "installed-tests/scripts/testCommandLine.sh" - (("Valentín") "") - (("☭") "")) - #t))))) + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-resources ("pkg-config" ,pkg-config) @@ -7187,7 +7354,7 @@ configuration program to choose applications starting on login.") ;; These are all in the Requires.private field of gjs-1.0.pc. `(("cairo" ,cairo) ("gobject-introspection" ,gobject-introspection) - ("mozjs" ,mozjs-60))) + ("mozjs" ,mozjs-78))) (inputs `(("gtk+" ,gtk+) ("readline" ,readline))) @@ -7201,18 +7368,19 @@ javascript engine and the GObject introspection framework.") (define-public gedit (package (name "gedit") - (version "3.34.1") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb")))) + "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:configure-flags ;; Otherwise, the RUNPATH will lack the final path component. (list (string-append "-Dc_link_args=-Wl,-rpath=" @@ -7243,11 +7411,11 @@ javascript engine and the GObject introspection framework.") (let ((out (assoc-ref outputs "out")) (gtksourceview (assoc-ref inputs "gtksourceview")) (gi-typelib-path (getenv "GI_TYPELIB_PATH")) - (python-path (getenv "PYTHONPATH"))) + (python-path (getenv "GUIX_PYTHONPATH"))) (wrap-program (string-append out "/bin/gedit") ;; For plugins. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) - `("PYTHONPATH" ":" prefix (,python-path)) + `("GUIX_PYTHONPATH" ":" prefix (,python-path)) ;; For language-specs. `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview "/share"))))) @@ -7271,7 +7439,8 @@ javascript engine and the GObject introspection framework.") (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs")))) ("pkg-config" ,pkg-config))) (inputs - `(("glib" ,glib) + `(("amtk" ,amtk) + ("glib" ,glib) ("gspell" ,gspell) ("gtk+" ,gtk+) ("gtksourceview" ,gtksourceview) @@ -7280,6 +7449,7 @@ javascript engine and the GObject introspection framework.") ("iso-codes" ,iso-codes) ("python-pygobject" ,python-pygobject) ("python" ,python) + ("tepl" ,tepl) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("libx11" ,libx11) ("vala" ,vala) @@ -7322,69 +7492,143 @@ to display dialog boxes from the commandline and shell scripts.") (define-public mutter (package (name "mutter") - (version "3.34.2") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd")))) + "17pqrm48kddqrc3fl96n5knhaxyn0crg0zv7zpmqhk848jks307s")))) ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked ;; versions of cogl and clutter. As a result, many of the inputs, ;; propagated-inputs, and configure flags used in cogl and clutter are ;; needed here as well. (build-system meson-build-system) (arguments - '(;; XXX: All mutter tests fail with the following error: - ;; Settings schema 'org.gnome.mutter' is not installed - #:tests? #f + `(#:imported-modules (,@%meson-build-system-modules + (guix build syscalls)) + #:modules ((guix build meson-build-system) + (guix build syscalls) + (guix build utils) + (ice-9 match)) #:glib-or-gtk? #t #:configure-flags - ;; TODO: Enable profiler when Sysprof is packaged. - (list "-Dprofiler=false" - ;; Otherwise, the RUNPATH will lack the final path component. - (string-append "-Dc_link_args=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib/mutter-5") - - ;; The following flags are needed for the bundled clutter - (string-append "-Dxwayland_path=" - (assoc-ref %build-inputs "xorg-server-xwayland") - "/bin/Xwayland") - - ;; the remaining flags are needed for the bundled cogl - (string-append "-Dopengl_libname=" - (assoc-ref %build-inputs "mesa") - "/lib/libGL.so")) - #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-build-with-mesa-20 - (lambda _ - ;; Mimic upstream commit a444a4c5f58ea516ad for - ;; compatibility with Mesa 20. Remove for 3.36. - (substitute* '("src/backends/meta-egl-ext.h" - "src/backends/meta-egl.c" - "src/backends/meta-egl.h") - (("#include <EGL/eglext\\.h>" all) - (string-append all "\n#include <EGL/eglmesaext.h>"))) - (substitute* "cogl/cogl/meson.build" - (("#include <EGL/eglext\\.h>" all) - (string-append all "\\n#include <EGL/eglmesaext.h>"))) - #t))))) + (list + ;; Otherwise, the RUNPATH will lack the final path component. + (string-append "-Dc_link_args=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib:" + (assoc-ref %outputs "out") "/lib/mutter-9") + ;; Disable systemd support. + "-Dsystemd=false" + ;; The following flags are needed for the bundled clutter + (string-append "-Dxwayland_path=" + (assoc-ref %build-inputs "xorg-server-xwayland") + "/bin/Xwayland") + ;; the remaining flags are needed for the bundled cogl + (string-append "-Dopengl_libname=" + (assoc-ref %build-inputs "mesa") + "/lib/libGL.so") + (string-append "-Dgles2_libname=" + (assoc-ref %build-inputs "mesa") + "/lib/libGLESv2.so") + "-Degl_device=true" ;false by default + "-Dwayland_eglstream=true") ;false by default + #:test-options + (list "--verbose") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-dlopen-calls + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/wayland/meta-wayland-egl-stream.c" + (("libnvidia-egl-wayland.so.1") + (string-append (assoc-ref inputs "egl-wayland") + "/lib/libnvidia-egl-wayland.so.1"))))) + (add-before 'configure 'set-udev-dir + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "PKG_CONFIG_UDEV_UDEVDIR" + (string-append (assoc-ref outputs "out") + "/lib/udev")))) + (add-after 'unpack 'disable-problematic-tests + (lambda _ + ;; The native-headless test hangs due to attempting to use audio, + ;; unavailable in the container. + ;; Note: the following sed expression deletes the whole test(...) + ;; expression paragraph. For an explanation, see: info '(sed) + ;; Multiline techniques'. + (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//" + "-i" "src/tests/meson.build"))) + (replace 'check + (lambda* (#:key tests? test-options parallel-tests? + #:allow-other-keys) + (when tests? + ;; Setup (see the 'test-mutter' CI target at + ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml). + (setenv "XDG_RUNTIME_DIR" "runtime-dir") + (setenv "GSETTINGS_SCHEMA_DIR" "data") + (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "[email protected]") + (setenv "PIPEWIRE_DEBUG" "2") + (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log") + (setenv "XVFB_SERVER_ARGS" "+iglx -noreset") + (setenv "G_SLICE" "always-malloc") + (setenv "MALLOC_CHECK" "3") + (setenv "NO_AT_BRIDGE" "1") + ;; This is needed, otherwise the "mutter:core+mutter/unit / + ;; anonymous-file" test would fail (see: + ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017). + (setenv "CI_JOB_ID" "1") + + (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR")) + (mkdir-p (getenv "XDG_RUNTIME_DIR")) + (chmod (getenv "XDG_RUNTIME_DIR") #o755) + (invoke "pipewire" "--version") ;check for pipewire + (system "pipewire &") ;always returns 0 due to forking + + (setenv "MESON_TESTTHREADS" + (if parallel-tests? + (number->string (parallel-job-count)) + "1")) + (match (primitive-fork) + (0 ;child process + (set-child-subreaper!) + ;; Use tini so that signals are properly handled and + ;; doubly-forked processes get reaped; otherwise, + ;; python-dbusmock would waste time polling for the dbus + ;; processes it spawns to be reaped, in vain. + (apply execlp "tini" "--" + "dbus-run-session" "--" + "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS") + "meson" "test" "-t" "0" "--print-errorlogs" + test-options)) + (pid + (match (waitpid pid) + ((_ . status) + (unless (zero? status) + (error "`meson test' exited with status" + status)))))))))))) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database - ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server-for-tests) + ("xvfb-run" ,xvfb-run) ;; For git build ("autoconf" ,autoconf) ("automake" ,automake) - ("libtool" ,libtool))) + ("libtool" ,libtool) + ;; For tests. + ;; Warnings are configured to be fatal during the tests; add an icon + ;; theme to please libxcursor. + ("adwaita-icon-theme" ,adwaita-icon-theme) + ("libxcursor" ,libxcursor) ;for XCURSOR_PATH + ("pipewire" ,pipewire-0.3) + ("python-dbus" ,python-dbus) + ("python-dbusmock" ,python-dbusmock) + ("tini" ,tini))) ;acting as init (zombie reaper) (propagated-inputs - `(;; libmutter.pc refers to these: + `( ;; libmutter.pc refers to these: ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+) ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these: @@ -7396,19 +7640,23 @@ to display dialog boxes from the commandline and shell scripts.") ("libinput" ,libinput) ("libx11" ,libx11) ("libxcomposite" ,libxcomposite) + ("libxcvt" ,libxcvt) ("libxdamage" ,libxdamage) ("libxext" ,libxext) ("libxfixes" ,libxfixes) ("libxkbcommon" ,libxkbcommon) + ("libxml2" ,libxml2) ("libxrandr" ,libxrandr) ("mesa" ,mesa) ("pango" ,pango) ("udev" ,eudev) ("xinput" ,xinput))) (inputs - `(("elogind" ,elogind) + `(("egl-wayland" ,egl-wayland) ;for wayland-eglstream-protocols + ("elogind" ,elogind) ("gnome-desktop" ,gnome-desktop) ("gnome-settings-daemon" ,gnome-settings-daemon) + ("graphene" ,graphene) ("libcanberra-gtk" ,libcanberra) ("libgudev" ,libgudev) ("libice" ,libice) @@ -7417,8 +7665,9 @@ to display dialog boxes from the commandline and shell scripts.") ("libxkbfile" ,libxkbfile) ("libxrandr" ,libxrandr) ("libxtst" ,libxtst) - ("pipewire" ,pipewire) + ("pipewire" ,pipewire-0.3) ("startup-notification" ,startup-notification) + ("sysprof" ,sysprof) ("upower-glib" ,upower) ("xkeyboard-config" ,xkeyboard-config) ("xorg-server-xwayland" ,xorg-server-xwayland) @@ -7435,7 +7684,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.36.0") + (version "3.43.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7443,7 +7692,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw")))) + "1s5pmy3hx6hhnyi40r7b773py9kn2qbkxnpxv6149z9fl5ikdjrv")))) (outputs '("out" "lib")) (build-system glib-or-gtk-build-system) (arguments @@ -7462,8 +7711,7 @@ window manager.") (("@datadir@") (string-append lib "/share"))) ;; Make sure gobject-introspection knows about the output ;; too (see <https://bugs.gnu.org/36535>). - (setenv "outputs" "out lib") - #t)))))) + (setenv "outputs" "out lib"))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("gobject-introspection" ,gobject-introspection) @@ -7479,32 +7727,30 @@ window manager.") ("json-glib" ,json-glib) ("libsecret" ,libsecret) ("rest" ,rest) - ("webkitgtk" ,webkitgtk))) + ;; WebKitGtk propagates libsoup 3, which causes the build to fail; so + ;; use a special variant. + ("webkitgtk" ,webkitgtk-with-libsoup2))) (synopsis "Single sign-on framework for GNOME") (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts") (description "GNOME Online Accounts provides interfaces so that applications and -libraries in GNOME can access the user's online accounts. It has providers for -Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft -Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") +libraries in GNOME can access the user's online accounts. It has providers +for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, +Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (license license:lgpl2.0+))) (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.34.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (patches (search-patches "evolution-data-server-locales.patch" - "evolution-data-server-libical-compat.patch" - "evolution-data-server-CVE-2020-14928.patch" - "evolution-data-server-CVE-2020-16117.patch")) - (sha256 - (base32 - "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y")))) + (version "3.42.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "0a7my8spwcaf2i2fz8ndddi1drv6l9gxq0qblmnkxzyhfwm7zrp6")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -7524,33 +7770,36 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings #:phases (modify-phases %standard-phases + (add-after 'unpack 'adjust-webkitgtk-version + (lambda _ + (substitute* "CMakeLists.txt" + (("webkit2gtk-4.0") + "webkit2gtk-4.1")))) (add-after 'unpack 'disable-failing-tests (lambda _ ;; tests/book-migration/test-migration.c:160:test_fetch_contacts: ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20) (delete-file-recursively "tests/book-migration") (substitute* "tests/CMakeLists.txt" - (("add_subdirectory\\(book-migration\\)") "")) - #t)) + (("add_subdirectory\\(book-migration\\)") "")))) (add-after 'unpack 'patch-paths (lambda _ (substitute* '("tests/test-server-utils/e-test-server-utils.c" "tests/libedata-book/data-test-utils.c" "tests/libedata-book/test-book-cache-utils.c" "tests/libedata-cal/test-cal-cache-utils.c") - (("/bin/rm") (which "rm"))) - #t)) + (("/bin/rm") (which "rm"))))) (add-before 'configure 'dont-override-rpath (lambda _ (substitute* "CMakeLists.txt" ;; CMakeLists.txt hard-codes runpath to just the libdir. ;; Remove it so the configure flag is respected. - (("SET\\(CMAKE_INSTALL_RPATH .*") "")) - #t))))) + (("SET\\(CMAKE_INSTALL_RPATH .*") ""))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. ("gobject-introspection" ,gobject-introspection) ("gperf" ,gperf) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("vala" ,vala) @@ -7560,7 +7809,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") `(("gtk+" ,gtk+) ("libical" ,libical) ("libsecret" ,libsecret) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("nss" ,nss) ("sqlite" ,sqlite))) (inputs @@ -7610,12 +7859,12 @@ Evolution (hence the name), but is now used by other packages as well.") (add-after 'install 'wrap-programs (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (python-path (getenv "PYTHONPATH")) + (python-path (getenv "GUIX_PYTHONPATH")) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (for-each (lambda (prog) (wrap-program prog - `("PYTHONPATH" ":" prefix (,python-path)) + `("GUIX_PYTHONPATH" ":" prefix (,python-path)) `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) (list (string-append out "/bin/caribou-preferences") (string-append out "/libexec/antler-keyboard")))) @@ -7649,30 +7898,24 @@ users.") (define-public network-manager (package (name "network-manager") - (version "1.24.0") + (version "1.32.12") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/NetworkManager/" (version-major+minor version) "/" "NetworkManager-" version ".tar.xz")) - (patches (search-patches "network-manager-plugin-path.patch")) + (patches (search-patches "network-manager-plugin-path.patch" + "network-manager-meson.patch")) (sha256 (base32 - "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "src/devices/wwan/nm-modem-manager.c" - (("systemd") "elogind")) - #t)))) + "0jzmz0zw64dgvdn2g7pppr7bkywpbxcbdb1viv6p7zh2lnh3dax8")))) (build-system meson-build-system) (outputs '("out" - "doc")) ; 8 MiB of gtk-doc HTML + "doc")) ; 8 MiB of gtk-doc HTML (arguments `(#:configure-flags (let ((out (assoc-ref %outputs "out")) - (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp") - "/sbin/dhclient"))) + (dhclient (search-input-file %build-inputs "/sbin/dhclient"))) (list ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path ;; component. @@ -7708,33 +7951,38 @@ users.") ;; cope with being already in the Guix build jail as that jail ;; lacks some features that they would like to proxy over (like ;; a /sys mount). - (substitute* "src/platform/tests/meson.build" + (substitute* "src/core/tests/meson.build" + ((".*test-l3cfg.*") "")) + (substitute* "src/core/devices/tests/meson.build" + ((".*test-acd.*") "") + ((".*test-lldp.*") "")) + (substitute* "src/core/platform/tests/meson.build" ((".*test-address-linux.*") "") ((".*test-cleanup-linux.*") "") ((".*test-link-linux.*") "") - ((".*test-route-linux.*") "")) - (substitute* "src/devices/tests/meson.build" - ((".*test-acd.*") "") - ((".*test-lldp.*") "")) - #t)) + ((".*test-lldp.*") "") + ((".*test-route-linux.*") "") + ((".*test-tc-linux.*") "")) + ;; FIXME: The jansson check fails (see: + ;; https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/837 + (substitute* "src/libnm-core-impl/tests/test-setting.c" + (("g_assert\\(nm_json_vt\\(\\)\\);") + "return TRUE;")))) (add-after 'unpack 'patch-docbook-xml (lambda* (#:key inputs #:allow-other-keys) (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml") "/xml/dtd/docbook"))) (substitute* (find-files "." ".*\\.(xsl|xml)") (("http://.*/docbookx\\.dtd") - (string-append xmldoc "/docbookx.dtd"))) - #t))) + (string-append xmldoc "/docbookx.dtd")))))) (add-before 'check 'pre-check (lambda _ ;; For the missing /etc/machine-id. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t)) + (setenv "DBUS_FATAL_WARNINGS" "0"))) (add-before 'install 'no-polkit-magic ;; Meson ‘magically’ invokes pkexec, which fails (not setuid). (lambda _ - (setenv "PKEXEC_UID" "something") - #t)) + (setenv "PKEXEC_UID" "something"))) (add-after 'install 'move-doc (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -7745,8 +7993,7 @@ users.") (string-append doc directory)) (delete-file-recursively (string-append out directory))) - '("/share/doc" "/share/gtk-doc")) - #t)))))) + '("/share/doc" "/share/gtk-doc")))))))) (propagated-inputs `(("glib" ,glib))) (native-inputs @@ -7780,11 +8027,12 @@ users.") ("libgudev" ,libgudev) ("libndp" ,libndp) ("libnl" ,libnl) + ("libselinux" ,libselinux) ("libsoup" ,libsoup) ("mobile-broadband-provider-info" ,mobile-broadband-provider-info) ("modem-manager" ,modem-manager) - ("newt" ,newt) ;for the 'nmtui' console interface - ("openresolv" ,openresolv) ; alternative resolv.conf manager + ("newt" ,newt) ;for the 'nmtui' console interface + ("openresolv" ,openresolv) ; alternative resolv.conf manager ("polkit" ,polkit) ("ppp" ,ppp) ("readline" ,readline) @@ -7825,10 +8073,8 @@ services.") (modify-phases %standard-phases (add-after 'configure 'patch-path (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) - (let* ((ovpn (string-append (assoc-ref inputs "openvpn") - "/sbin/openvpn")) - (modprobe (string-append (assoc-ref inputs "kmod") - "/bin/modprobe")) + (let* ((ovpn (search-input-file inputs "/sbin/openvpn")) + (modprobe (search-input-file inputs "/bin/modprobe")) (pretty-ovpn (string-append "\"" ovpn "\""))) (for-each (lambda (file) @@ -7881,10 +8127,8 @@ to virtual private networks (VPNs) via OpenVPN.") (modify-phases %standard-phases (add-after 'configure 'patch-path (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) - (let* ((vpnc (string-append (assoc-ref inputs "vpnc") - "/sbin/vpnc")) - (modprobe (string-append (assoc-ref inputs "kmod") - "/bin/modprobe")) + (let* ((vpnc (search-input-file inputs "/sbin/vpnc")) + (modprobe (search-input-file inputs "/bin/modprobe")) (pretty-ovpn (string-append "\"" vpnc "\""))) (substitute* "src/nm-vpnc-service.c" (("\"/usr/local/sbin/vpnc\"") pretty-ovpn) @@ -7930,10 +8174,9 @@ Compatible with Cisco VPN concentrators configured to use IPsec.") (modify-phases %standard-phases (add-after 'configure 'patch-path (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) - (let* ((openconnect (string-append (assoc-ref inputs "openconnect") - "/sbin/openconnect")) - (modprobe (string-append (assoc-ref inputs "kmod") - "/bin/modprobe")) + (let* ((openconnect (search-input-file inputs + "/sbin/openconnect")) + (modprobe (search-input-file inputs "/bin/modprobe")) (pretty-ovpn (string-append "\"" openconnect "\""))) (substitute* "src/nm-openconnect-service.c" (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn) @@ -8001,7 +8244,8 @@ Cisco's AnyConnect SSL VPN.") "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 + #:glib-or-gtk? #t #:configure-flags '("-Dappindicator=yes"))) (native-inputs @@ -8068,7 +8312,7 @@ the available networks and allows users to easily switch between them.") (string-append xsldoc "/html/chunk.xsl"))))))))) (propagated-inputs ;; libxml++-3.0.pc refers to all these. - `(("glibmm" ,glibmm) + `(("glibmm" ,glibmm-2.64) ("libxml2" ,libxml2))) (native-inputs `(("autoconf" ,autoconf) @@ -8109,128 +8353,150 @@ library.") (define-public gdm (package (name "gdm") - (version "3.34.1") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8")) - (patches (search-patches "gdm-default-session.patch")))) - (build-system glib-or-gtk-build-system) + "1zbks7bwbys1pn7sk0aq0dbn09adx51amb441z4z4j28cvma3f5b")) + (patches + (search-patches + "gdm-default-session.patch" + "gdm-elogind-support.patch" + "gdm-remove-hardcoded-xwayland-path.patch" + "gdm-wayland-session-wrapper-from-env.patch")))) + (build-system meson-build-system) (arguments - '(#:configure-flags - `("--without-plymouth" - "--disable-systemd-journal" - - ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1, - ;; instead of having to replace it (i.e., stopping the mingetty - ;; service for TTY 1 before starting GDM). - "--with-initial-vt=7" - - ;; Use '/etc/environment' for locale settings instead of the - ;; systemd-specific '/etc/locale.conf'. - "--with-lang-file=/etc/environment" - - ,(string-append "--with-udevdir=" - (assoc-ref %outputs "out") "/lib/udev") - - "--localstatedir=/var" - ,(string-append "--with-default-path=" - (string-join '("/run/setuid-programs" - "/run/current-system/profile/bin" - "/run/current-system/profile/sbin") - ":")) - ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the - ;; XDG_DATA_DIRS so that it finds its schemas. - "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin")) + `(#:glib-or-gtk? #t + #:configure-flags + ,#~(list + "-Dplymouth=disabled" + "-Dsystemd-journal=false" + + ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1, + ;; instead of having to replace it (i.e., stopping the mingetty + ;; service for TTY 1 before starting GDM). + "-Dinitial-vt=7" + + ;; Use elogind instead of systemd. + "-Dlogind-provider=elogind" + "-Dsystemdsystemunitdir=no" + "-Dsystemduserunitdir=no" + + ;; Use '/etc/environment' for locale settings instead of the + ;; systemd-specific '/etc/locale.conf'. + "-Dlang-file=/etc/environment" + + (string-append "-Dudev-dir=" #$output "/lib/udev") + + "--localstatedir=/var" + (string-append "-Ddefault-path=" + (string-join '("/run/setuid-programs" + "/run/current-system/profile/bin" + "/run/current-system/profile/sbin") + ":")) + ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the + ;; XDG_DATA_DIRS so that it finds its schemas. + "--sbindir" (string-append #$output "/bin")) #:phases (modify-phases %standard-phases (add-before - 'configure 'pre-configure - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; We don't have <systemd/sd-daemon.h>. - (substitute* '("common/gdm-log.c" - "daemon/gdm-server.c" - "daemon/gdm-session-worker.c" - "daemon/gdm-session-worker-job.c") - (("#include <systemd/sd-daemon\\.h>") "")) - ;; Use elogind for sd-login. - (substitute* '("common/gdm-common.c" - "daemon/gdm-local-display-factory.c" - "daemon/gdm-manager.c" - "libgdm/gdm-user-switching.c") - (("#include <systemd/sd-login\\.h>") - "#include <elogind/sd-login.h>")) - ;; Check for elogind. - (substitute* '("configure") - (("libsystemd") - "libelogind")) - ;; Look for system-installed sessions in - ;; /run/current-system/profile/share. - (substitute* '("libgdm/gdm-sessions.c" - "daemon/gdm-session.c" - "daemon/gdm-display.c" - "daemon/gdm-launch-environment.c") - (("DATADIR \"/x") - "\"/run/current-system/profile/share/x") - (("DATADIR \"/wayland") - "\"/run/current-system/profile/share/wayland") - (("DATADIR \"/gnome") - "\"/run/current-system/profile/share/gnome")) - (let ((propagate '("GDM_CUSTOM_CONF" - "GDM_DBUS_DAEMON" - "GDM_X_SERVER" - "GDM_X_SESSION" - ;; XXX: Remove this once GNOME Shell is - ;; a dependency of GDM. - "XDG_DATA_DIRS"))) - (substitute* "daemon/gdm-session.c" - (("set_up_session_environment \\(self\\);") - (apply string-append - "set_up_session_environment (self);\n" - (map (lambda (name) - (string-append - "gdm_session_set_environment_variable " - "(self, \"" name "\"," - "g_getenv (\"" name "\"));\n")) - propagate))))) - ;; Find the configuration file using an environment variable. - (substitute* '("common/gdm-settings.c") - (("GDM_CUSTOM_CONF") - (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL" - " ? g_getenv(\"GDM_CUSTOM_CONF\")" - " : GDM_CUSTOM_CONF)"))) - ;; Use service-supplied path to X. - (substitute* '("daemon/gdm-server.c") - (("\\(X_SERVER X_SERVER_ARG_FORMAT") - "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")")) - (substitute* '("daemon/gdm-wayland-session.c" - "daemon/gdm-x-session.c") - (("\"dbus-daemon\"") - "g_getenv (\"GDM_DBUS_DAEMON\")") - (("X_SERVER") - "g_getenv (\"GDM_X_SERVER\")") - (("GDMCONFDIR \"/Xsession\"") - "g_getenv (\"GDM_X_SESSION\")")) - ;; Use an absolute path for GNOME Session. - (substitute* "daemon/gdm-launch-environment.c" - (("\"gnome-session\"") - (string-append "\"" (assoc-ref inputs "gnome-session") - "/bin/gnome-session\""))) - ;; Do not automatically select the placeholder session. - (substitute* "daemon/gdm-session.c" - (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]") - (string-append "!g_str_has_suffix (base_name, \".desktop\") || " - "(g_strcmp0(search_dirs[i], \"" - (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/" - "\") == 0 && " - "g_strcmp0(base_name, \"fail.desktop\") == 0)")) - (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];") - "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }")) - #t)) + 'configure 'pre-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; We don't have <systemd/sd-daemon.h>. + (substitute* '("common/gdm-log.c" + "daemon/gdm-server.c" + "daemon/gdm-session-worker.c" + "daemon/gdm-session-worker-job.c") + (("#include <systemd/sd-daemon\\.h>") "")) + ;; Use elogind for sd-login. + (substitute* '("common/gdm-common.c" + "daemon/gdm-local-display-factory.c" + "daemon/gdm-manager.c" + "libgdm/gdm-user-switching.c") + (("#include <systemd/sd-login\\.h>") + "#include <elogind/sd-login.h>")) + ;; Look for system-installed sessions in + ;; /run/current-system/profile/share. + (substitute* '("libgdm/gdm-sessions.c" + "daemon/gdm-session.c" + "daemon/gdm-display.c" + "daemon/gdm-launch-environment.c") + (("DATADIR \"/x") + "\"/run/current-system/profile/share/x") + (("DATADIR \"/wayland") + "\"/run/current-system/profile/share/wayland") + (("DATADIR \"/gnome") + "\"/run/current-system/profile/share/gnome")) + (let ((propagate '("GDM_CUSTOM_CONF" + "GDM_DBUS_DAEMON" + "GDM_X_SERVER" + "GDM_X_SESSION" + ;; XXX: Remove this once GNOME Shell is + ;; a dependency of GDM. + "XDG_DATA_DIRS"))) + (substitute* "daemon/gdm-session.c" + (("set_up_session_environment \\(self\\);") + (apply string-append + "set_up_session_environment (self);\n" + (map (lambda (name) + (string-append + "gdm_session_set_environment_variable " + "(self, \"" name "\"," + "g_getenv (\"" name "\"));\n")) + propagate))))) + ;; Find the configuration file using an environment variable. + (substitute* '("common/gdm-settings.c") + (("GDM_CUSTOM_CONF") + (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL" + " ? g_getenv(\"GDM_CUSTOM_CONF\")" + " : GDM_CUSTOM_CONF)"))) + ;; Use service-supplied path to X. + (substitute* '("daemon/gdm-server.c") + (("\\(X_SERVER X_SERVER_ARG_FORMAT") + "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")")) + (substitute* '("daemon/gdm-wayland-session.c" + "daemon/gdm-x-session.c") + (("\"dbus-daemon\"") + "g_getenv (\"GDM_DBUS_DAEMON\")") + (("X_SERVER") + "g_getenv (\"GDM_X_SERVER\")") + (("GDMCONFDIR \"/Xsession\"") + "g_getenv (\"GDM_X_SESSION\")")) + ;; Use an absolute path for GNOME Session. + (substitute* "daemon/gdm-launch-environment.c" + (("\"gnome-session\"") + (string-append "\"" (assoc-ref inputs "gnome-session") + "/bin/gnome-session\""))) + ;; Do not automatically select the placeholder session. + (substitute* "daemon/gdm-session.c" + (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]") + (string-append "!g_str_has_suffix (base_name, \".desktop\") || " + "(g_strcmp0(search_dirs[i], \"" + (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/" + "\") == 0 && " + "g_strcmp0(base_name, \"fail.desktop\") == 0)")) + (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];") + "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }")))) + (add-before 'install 'install-logo + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (guix-icons (assoc-ref inputs "guix-icons")) + (icon + (string-append guix-icons "/share/icons/hicolor/\ +scalable/apps/guix-white-icon.svg")) + (schema + (string-append out "/share/glib-2.0/schemas/\ +org.gnome.login-screen.gschema.override"))) + (mkdir-p (dirname schema)) + (with-output-to-file schema + (lambda () + (format #t "\ +[org.gnome.login-screen] +logo='~a'~%" icon)))))) ;; GDM requires that there be at least one desktop entry ;; file. This phase installs a hidden one that simply ;; fails. This enables users to use GDM with a @@ -8252,8 +8518,7 @@ library.") "Name=Fail\n" "Comment=This session fails immediately.\n" "NoDisplay=true\n" - "Exec=false\n")))) - #t))) + "Exec=false\n"))))))) ;; GDM needs GNOME Session to run these applications. We link ;; their autostart files in `share/gdm/greeter/autostart' ;; because GDM explicitly tells GNOME Session to look there. @@ -8270,12 +8535,13 @@ library.") (with-directory-excursion autostart (for-each (lambda (desktop) (symlink desktop (basename desktop))) - (find-files (string-append settings "/etc/xdg")))) - #t)))))) + (find-files + (string-append settings "/etc/xdg")))))))))) (native-inputs `(("dconf" ,dconf) ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("gobject-introspection" ,gobject-introspection) + ("guix-icons" ,guix-icons) ("intltool" ,intltool) ("itstool" ,itstool) ("pkg-config" ,pkg-config) @@ -8284,6 +8550,7 @@ library.") `(("accountsservice" ,accountsservice) ("check" ,check-0.14) ;for testing ("elogind" ,elogind) + ("eudev" ,eudev) ("gnome-session" ,gnome-session) ("gnome-settings-daemon" ,gnome-settings-daemon) ("gtk+" ,gtk+) @@ -8337,6 +8604,7 @@ usage and information about running processes.") (base32 "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c")))) (build-system meson-build-system) + (arguments `(#:meson ,meson-0.59)) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache @@ -8353,7 +8621,8 @@ usage and information about running processes.") (inputs `(("eudev" ,eudev) ("libcanberra" ,libcanberra) - ("libnotify" ,libnotify))) + ("libnotify" ,libnotify) + ("python-dbus" ,python-dbus))) (synopsis "GNOME Bluetooth subsystem") (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth") (description @@ -8364,18 +8633,19 @@ devices using the GNOME desktop.") (define-public gnome-control-center (package (name "gnome-control-center") - (version "3.34.2") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8")))) + "0rr4d5m2a72vrb31jgyx49dp0s2pwgyxsrk4hyw5ym66wq63c3v1")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:configure-flags (list "-Dcheese=false" (string-append "-Dgnome_session_libexecdir=" @@ -8400,8 +8670,8 @@ devices using the GNOME desktop.") (("\"gkbd-keyboard-display") (string-append "\"" libgnomekbd "/bin/gkbd-keyboard-display"))) - (substitute* '("panels/network/net-device-wifi.c" - "panels/network/net-device.c" + (substitute* '("panels/network/net-device-bluetooth.c" + "panels/network/net-device-mobile.c" "panels/network/connection-editor/net-connection-editor.c") (("\"nm-connection-editor") (string-append "\"" nm-applet @@ -8409,17 +8679,15 @@ devices using the GNOME desktop.") (substitute* '("panels/user-accounts/run-passwd.c") (("/usr/bin/passwd") "/run/setuid-programs/passwd")) - (substitute* "panels/info/cc-info-overview-panel.c" + (substitute* "panels/info-overview/cc-info-overview-panel.c" (("DATADIR \"/gnome/gnome-version.xml\"") (string-append "\"" gnome-desktop - "/share/gnome/gnome-version.xml\""))) - #t))) + "/share/gnome/gnome-version.xml\"")))))) (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "build-aux/meson/meson_post_install.py" - (("gtk-update-icon-cache") (which "true"))) - #t))))) + (("gtk-update-icon-cache") (which "true")))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. ("intltool" ,intltool) @@ -8453,7 +8721,7 @@ devices using the GNOME desktop.") ("libnma" ,libnma) ("libpwquality" ,libpwquality) ("libsecret" ,libsecret) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("libxml2" ,libxml2) ("libwacom" ,libwacom) ("mesa" ,mesa) @@ -8478,35 +8746,22 @@ properties, screen resolution, and other GNOME parameters.") (define-public gnome-shell (package (name "gnome-shell") - (version "3.34.5") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj")) - (patches (search-patches "gnome-shell-CVE-2020-17489.patch" - "gnome-shell-theme.patch" - "gnome-shell-disable-test.patch")) - (modules '((guix build utils))) - (snippet - #~(begin - ;; Copy images for use on the GDM log-in screen. - (copy-file #$(file-append %artwork-repository - "/slim/0.x/background.png") - "data/theme/guix-background.png") - (copy-file #$(file-append %artwork-repository - "/logo/Guix-horizontal-white.svg") - "data/theme/guix-logo.svg") - #t)))) + "0ragmcln210zvzhc2br33yprbkj9drjzd7inp5sdxra0a7l73yaj")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t - #:disallowed-references ((,glib "bin") - ,inkscape ,libxslt - ,ruby-sass) + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t + #:disallowed-references ,(list (gexp-input glib "bin") + (gexp-input libxslt) + (gexp-input ruby-sass)) #:configure-flags (list "-Dsystemd=false" ;; Otherwise, the RUNPATH will lack the final path component. @@ -8527,13 +8782,12 @@ properties, screen resolution, and other GNOME parameters.") out "/share/gnome-control-center/keybindings"))) (substitute* "meson.build" (("keysdir =.*") - (string-append "keysdir = '" keysdir "'\n"))) - #t))) - (add-before 'configure 'convert-logo-to-png - (lambda* (#:key inputs #:allow-other-keys) - ;; Convert the logo from SVG to PNG. - (invoke "inkscape" "--export-png=data/theme/guix-logo.png" - "data/theme/guix-logo.svg"))) + (string-append "keysdir = '" keysdir "'\n")))))) + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "meson/postinstall.py" + (("gtk-update-icon-cache") "true")))) (add-before 'configure 'record-absolute-file-names (lambda* (#:key inputs #:allow-other-keys) (substitute* "js/misc/ibusManager.js" @@ -8543,19 +8797,18 @@ properties, screen resolution, and other GNOME parameters.") (substitute* "js/ui/status/keyboard.js" (("'gkbd-keyboard-display'") (string-append "'" (assoc-ref inputs "libgnomekbd") - "/bin/gkbd-keyboard-display'"))) - #t)) + "/bin/gkbd-keyboard-display'"))))) (add-before 'check 'pre-check (lambda* (#:key inputs #:allow-other-keys) ;; Tests require a running X server. (system "Xvfb :1 &") (setenv "DISPLAY" ":1") - #t)) + (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings (add-after 'install 'wrap-programs (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (gi-typelib-path (getenv "GI_TYPELIB_PATH")) - (python-path (getenv "PYTHONPATH"))) + (python-path (getenv "GUIX_PYTHONPATH"))) (wrap-program (string-append out "/bin/gnome-shell") `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) ;; FIXME: gnome-shell loads these libraries with unqualified @@ -8569,25 +8822,24 @@ properties, screen resolution, and other GNOME parameters.") (for-each (lambda (prog) (wrap-program (string-append out "/bin/" prog) - `("PYTHONPATH" ":" prefix (,python-path)) + `("GUIX_PYTHONPATH" ":" prefix (,python-path)) `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - '("gnome-shell-extension-tool" "gnome-shell-perf-tool")) - #t))) + '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))))) (replace 'glib-or-gtk-wrap (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap))) (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest) - ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS + ;; By default intltool et al. would end up in the XDG_DATA_DIRS ;; settings of the wrappers created by the 'glib-or-gtk-wrap' ;; phase. Fix that since we don't need these. (wrap #:inputs (fold alist-delete inputs - '("inkscape" "intltool" "glib:bin")) + '("intltool" "glib:bin")) #:outputs outputs))))))) (native-inputs `(("asciidoc" ,asciidoc) ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database ("gobject-introspection" ,gobject-introspection) - ("inkscape" ,inkscape) + ("hicolor-icon-theme" ,hicolor-icon-theme) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("python" ,python) @@ -8603,12 +8855,14 @@ properties, screen resolution, and other GNOME parameters.") ("evolution-data-server" ,evolution-data-server) ("gcr" ,gcr) ("gdm" ,gdm) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("librsvg" ,librsvg) ("gjs" ,gjs) + ("gtk" ,gtk) ("gnome-autoar" ,gnome-autoar) ("gnome-bluetooth" ,gnome-bluetooth) ("gnome-desktop" ,gnome-desktop) ("gnome-settings-daemon" ,gnome-settings-daemon) + ("graphene" ,graphene) ("gst-plugins-base" ,gst-plugins-base) ("ibus" ,ibus) ("libcanberra" ,libcanberra) @@ -8630,9 +8884,6 @@ properties, screen resolution, and other GNOME parameters.") ;; Missing propagation? See also: <https://bugs.gnu.org/27264> ("librsvg" ,librsvg) ("geoclue" ,geoclue))) - ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream - ;; commit f0a7395b3006360905ccdc642982f9fc67378927. - (properties '((lint-hidden-cve . ("CVE-2019-3820")))) (synopsis "Desktop shell for GNOME") (home-page "https://wiki.gnome.org/Projects/GnomeShell") (description @@ -8668,7 +8919,7 @@ like switching to windows and launching applications.") ("vala" ,vala))) (inputs `(("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("librsvg" ,librsvg) ("glib" ,glib) ("gnutls" ,gnutls) ("libgcrypt" ,libgcrypt) @@ -8689,7 +8940,7 @@ core C library, and bindings for Python (PyGTK).") (define-public gnome-autoar (package (name "gnome-autoar") - (version "0.3.3") + (version "0.4.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -8697,10 +8948,11 @@ core C library, and bindings for Python (PyGTK).") name "-" version ".tar.xz")) (sha256 (base32 - "012w7rhhpxvlrnnhqy01vwzg1wxqpy8jbqgizn47wnip7bvh0917")))) - (build-system glib-or-gtk-build-system) + "03hmm7cjgjvyxlflghfa89s1amj16qapl2c9pv0r2bfrp87dasv4")))) + (build-system meson-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) + ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (propagated-inputs `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc @@ -8716,7 +8968,7 @@ easy, safe, and automatic.") (define-public tracker (package (name "tracker") - (version "2.3.5") + (version "3.1.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/tracker/" @@ -8724,7 +8976,7 @@ easy, safe, and automatic.") "tracker-" version ".tar.xz")) (sha256 (base32 - "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223")))) + "13zcc07wd51sz7kglk3xbjrsq7d835cxfr7iwjr7nn2xcri8jdns")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -8732,19 +8984,41 @@ easy, safe, and automatic.") ;; Otherwise, the RUNPATH will lack the final path component. (list (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib/tracker-2.0")) + (assoc-ref %outputs "out") "/lib/tracker-3.0") + "-Ddocs=false" + "-Dsystemd_user_services=false") #:phases (modify-phases %standard-phases - (add-before 'check 'pre-check + (add-before 'configure 'set-shell (lambda _ - ;; Some tests expect to write to $HOME. - (setenv "HOME" "/tmp") - #t))))) + (setenv "SHELL" (which "bash")))) + (add-before 'configure 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl") + (file (search-input-file inputs manpage))) + (substitute* "docs/manpages/meson.build" + (("/etc/asciidoc[^']+") + file))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Some tests expect to write to $HOME. + (setenv "HOME" "/tmp") + (invoke "dbus-run-session" "--" "meson" "test" + "--print-errorlogs"))))))) (native-inputs `(("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml-4.5" ,docbook-xml) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("asciidoc" ,asciidoc) + ("xsltproc" ,libxslt) + ("cmake-minimal" ,cmake-minimal) ("python-pygobject" ,python-pygobject) + ("gtk-doc" ,gtk-doc/stable) ("intltool" ,intltool) + ("dbus" ,dbus) ("pkg-config" ,pkg-config) ("vala" ,vala))) (inputs @@ -8753,7 +9027,7 @@ easy, safe, and automatic.") ("libxml2" ,libxml2) ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail. ("json-glib" ,json-glib) - ("libsoup" ,libsoup))) + ("libsoup" ,libsoup-minimal-2))) ; tracker-miners requires the same version. (synopsis "Metadata database, indexer and search tool") (home-page "https://wiki.gnome.org/Projects/Tracker") (description @@ -8786,7 +9060,7 @@ endpoint and it understands SPARQL. ") (define-public tracker-miners (package (name "tracker-miners") - (version "2.3.4") + (version "3.1.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/tracker-miners/" @@ -8794,7 +9068,7 @@ endpoint and it understands SPARQL. ") "/tracker-miners-" version ".tar.xz")) (sha256 (base32 - "10wy8d8ski52k809p7s6lbw72qmg05bbmhnl00vx4qrbzqyxvc0b")))) + "0fpd69lgm8cckbamcf9c2q57glxf0s3jcfwkq8p3s4lfsvdclmd0")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -8803,16 +9077,54 @@ endpoint and it understands SPARQL. ") ;; Ensure the RUNPATH contains all installed library locations. (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") - "/lib/tracker-miners-2.0") + "/lib/tracker-miners-3.0") ;; TODO: Enable functional tests. Currently, the following error ;; appears: ;; Exception: The functional tests require DConf to be the default ;; GSettings backend. Got GKeyfileSettingsBackend instead. - "-Dfunctional_tests=false"))) + "-Dfunctional_tests=false" + "-Dsystemd_user_services=false") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-shell + (lambda _ + (setenv "SHELL" (which "bash")))) + (add-before 'configure 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl") + (file (search-input-file inputs manpage))) + (substitute* "docs/manpages/meson.build" + (("/etc/asciidoc[^']+") + file))))) + (add-before 'configure 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + ;; Disable those tests that require the functional_tests option + ;; to be true and the UPower daemon to be started. + (substitute* "examples/python/meson.build" + (("foreach example_name:.*") + "foreach example_name: []")) + ;; Disable this test that is failing randomly: + ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170. + (substitute* "tests/libtracker-miner/meson.build" + (("'miner-fs'.*") + "")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Some tests expect to write to $HOME. + (setenv "HOME" "/tmp") + (setenv "LANG" "en_US.UTF-8") + (invoke "dbus-run-session" "--" "meson" "test" + "--print-errorlogs"))))))) (native-inputs `(("dbus" ,dbus) ("intltool" ,intltool) ("glib:bin" ,glib "bin") + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml-4.5" ,docbook-xml) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("asciidoc" ,asciidoc) + ("xsltproc" ,libxslt) ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) ("python-pygobject" ,python-pygobject))) @@ -8824,6 +9136,7 @@ endpoint and it understands SPARQL. ") ("glib" ,glib) ("gstreamer" ,gstreamer) ("icu4c" ,icu4c) + ("json-glib" ,json-glib) ("libcue" ,libcue) ("libexif" ,libexif) ("libgsf" ,libgsf) @@ -8833,10 +9146,12 @@ endpoint and it understands SPARQL. ") ("libosinfo" ,libosinfo) ("libpng" ,libpng) ("libseccomp" ,libseccomp) + ("libsoup" ,libsoup-minimal-2) ; because tracker requires this version. ("libtiff" ,libtiff) ("libvorbis" ,libvorbis) ("libxml2" ,libxml2) ("poppler" ,poppler) + ("shared-mime-info" ,shared-mime-info) ("taglib" ,taglib) ("totem-pl-parser" ,totem-pl-parser) ("tracker" ,tracker) @@ -8857,26 +9172,26 @@ shared object databases, search tools and indexing.") (define-public nautilus (package (name "nautilus") - (version "3.34.2") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv")))) + "1rd1a0wjh2sc7mzw6m61rryvgxpi2lin4xj0x9khqw04q6nl3fgr")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:glib-or-gtk? #t + #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "build-aux/meson/postinstall.py" - (("gtk-update-icon-cache") "true")) - #t))) + (("gtk-update-icon-cache") "true"))))) ;; XXX: FAIL: check-nautilus ;; Settings schema 'org.gnome.nautilus.preferences' is not installed #:tests? #f)) @@ -8894,8 +9209,12 @@ shared object databases, search tools and indexing.") ("gnome-desktop" ,gnome-desktop) ("gnome-autoar" ,gnome-autoar) ("gst-plugins-base" ,gst-plugins-base) + ("json-glib" ,json-glib) + ("libhandy" ,libhandy) + ("libportal" ,libportal) ("libseccomp" ,libseccomp) ("libselinux" ,libselinux) + ("libsoup" ,libsoup-minimal-2) ; to satisfy tracker dependencies ("tracker" ,tracker) ("tracker-miners" ,tracker-miners) ;; XXX: gtk+ is required by libnautilus-extension.pc @@ -8917,16 +9236,16 @@ files.") (define-public baobab (package (name "baobab") - (version "3.38.0") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104")))) + "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t)) @@ -8940,7 +9259,8 @@ files.") ("glib" ,glib "bin") ("vala" ,vala))) (inputs - `(("gtk+" ,gtk+))) + `(("gtk+" ,gtk+) + ("libhandy" ,libhandy))) (synopsis "Disk usage analyzer for GNOME") (description "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk @@ -8953,19 +9273,19 @@ is complete it provides a graphical representation of each selected folder.") (define-public gnome-backgrounds (package (name "gnome-backgrounds") - (version "3.34.0") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2")))) + "03m7ldfk00cly9igrq0qizq1y0f45vijmm23f1dl5kh1lc6qmpv0")))) (build-system meson-build-system) (native-inputs - `(("intltool" ,intltool))) + `(("gettext" ,gettext-minimal))) (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds") (synopsis "Background images for the GNOME desktop") (description @@ -8981,16 +9301,18 @@ can add your own files to the collection.") (define-public gnome-screenshot (package (name "gnome-screenshot") - (version "3.34.0") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8")))) + "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n")) + (patches + (search-patches "gnome-screenshot-meson-0.60.patch")))) (build-system meson-build-system) (arguments '(#:phases @@ -9010,6 +9332,7 @@ can add your own files to the collection.") (inputs `(("gtk+" ,gtk+) ("libcanberra" ,libcanberra) + ("libhandy" ,libhandy) ("libx11" ,libx11) ("libxext" ,libxext))) (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot") @@ -9023,7 +9346,7 @@ beautifying border effects.") (define-public dconf-editor (package (name "dconf-editor") - (version "3.34.2") + (version "3.38.3") (source (origin (method url-fetch) @@ -9032,7 +9355,7 @@ beautifying border effects.") name "-" version ".tar.xz")) (sha256 (base32 - "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f")))) + "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp")))) (build-system meson-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0. @@ -9044,6 +9367,8 @@ beautifying border effects.") `(("dconf" ,dconf) ("gtk+" ,gtk+) ("libxml2" ,libxml2))) + (arguments + `(#:meson ,meson-0.59)) (home-page "https://gitlab.gnome.org/GNOME/dconf-editor") (synopsis "Graphical editor for GNOME's dconf configuration system") (description @@ -9117,15 +9442,15 @@ associations for GNOME.") (define-public gnome-weather (package (name "gnome-weather") - (version "3.34.0") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4")))) + "0k9wnyinvx6433r07kvjyahgqc605g7gbpf3d0h6vi4p8x61849x")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -9134,34 +9459,39 @@ associations for GNOME.") ("gtk+:bin" ,gtk+ "bin") ("pkg-config" ,pkg-config))) (inputs - `( ;("adwaita-icon-theme" ,adwaita-icon-theme) - ("appstream-glib" ,appstream-glib) + `(("appstream-glib" ,appstream-glib) ("geoclue" ,geoclue) - ("gdk-pixbuf" ,gdk-pixbuf) ("gjs" ,gjs) ("gnome-desktop" ,gnome-desktop) - ("libgweather" ,libgweather))) + ("libgweather" ,libgweather) + ("libhandy" ,libhandy))) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:phases - (modify-phases %standard-phases - (add-after 'install 'fix-desktop-file - ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason. - ;; See https://issues.guix.gnu.org/issue/39324. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (applications (string-append out "/share/applications"))) - (substitute* (string-append applications "/org.gnome.Weather.desktop") - (("Exec=.*") "Exec=gnome-weather\n")) - #t))) - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) - ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime. - (wrap-program (string-append out "/bin/gnome-weather") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))) - #t)))))) + ,#~(modify-phases %standard-phases + (add-after 'unpack 'fix-service-file + (lambda _ + (substitute* "data/org.gnome.Weather.service.in" + (("Exec=[[:graph:]]+") + (string-append "Exec=" #$output + "/bin/gnome-weather"))))) + (add-after 'install 'fix-desktop-file + ;; FIXME: "gapplication launch org.gnome.Weather" fails for some + ;; reason. See https://issues.guix.gnu.org/issue/39324. + (lambda _ + (let ((applications + (string-append #$output "/share/applications"))) + (substitute* (string-append applications + "/org.gnome.Weather.desktop") + (("Exec=.*") "Exec=gnome-weather\n"))))) + (add-after 'install 'wrap + (lambda _ + (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + ;; GNOME Weather needs the typelib files of GTK+, Pango etc + ;; at runtime. + (wrap-program (string-append #$output "/bin/gnome-weather") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))))))) (synopsis "Weather monitoring for GNOME desktop") (description "GNOME Weather is a small application that allows you to monitor the current weather conditions for your city, or anywhere in the @@ -9177,15 +9507,12 @@ world.") (build-system trivial-build-system) (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs - ;; TODO: Add or remove packages according to: - ;; <https://calc.disroot.org/2nu6mpf88ynq.html>. - `( - ;; GNOME-Core-OS-Services + `(;; GNOME-Core-OS-Services ("accountsservice" ,accountsservice) ("network-manager" ,network-manager) ("packagekit" ,packagekit) ("upower" ,upower) - ;; GNOME-Core-Shell + ;; GNOME-Core-Shell ("adwaita-icon-theme" ,adwaita-icon-theme) ("gdm" ,gdm) ("glib-networking" ,glib-networking) @@ -9194,7 +9521,6 @@ world.") ("gnome-color-manager" ,gnome-color-manager) ("gnome-control-center" ,gnome-control-center) ("gnome-desktop" ,gnome-desktop) - ("gnome-getting-started-docs" ,gnome-getting-started-docs) ("gnome-initial-setup" ,gnome-initial-setup) ("gnome-keyring" ,gnome-keyring) ("gnome-menus" ,gnome-menus) @@ -9211,7 +9537,7 @@ world.") ("orca" ,orca) ("rygel" ,rygel) ("sushi" ,sushi) - ;; GNOME-Core-Utilities + ;; GNOME-Core-Utilities ("baobab" ,baobab) ("cheese" ,cheese) ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently @@ -9232,8 +9558,8 @@ world.") ("gnome-disk-utility" ,gnome-disk-utility) ("gnome-font-viewer" ,gnome-font-viewer) ("gnome-maps" ,gnome-maps) - ; TODO: ("gnome-music" ,gnome-music) - ; TODO: ("gnome-photos" ,gnome-photos) + ("gnome-music" ,gnome-music) + ("gnome-photos" ,gnome-photos) ("gnome-screenshot" ,gnome-screenshot) ("gnome-system-monitor" ,gnome-system-monitor) ("gnome-terminal" ,gnome-terminal) @@ -9241,8 +9567,9 @@ world.") ("nautilus" ,nautilus) ("simple-scan" ,simple-scan) ("totem" ,totem) + ("tracker-miners" ,tracker-miners) ("yelp" ,yelp) - ;; Others + ;; Others ("hicolor-icon-theme" ,hicolor-icon-theme) ("gnome-online-accounts" ,gnome-online-accounts) @@ -9251,7 +9578,7 @@ world.") ;; XXX: Find out exactly which ones are needed and why. ("font-abattis-cantarell" ,font-abattis-cantarell) ("font-dejavu" ,font-dejavu) - ("at-spi2-core" ,at-spi2-core) + ("at-spi2-core" ,at-spi2-core-minimal) ("dbus" ,dbus) ("dconf" ,dconf) ("desktop-file-utils" ,desktop-file-utils) @@ -9353,7 +9680,7 @@ specified duration and save it as a GIF encoded animated image file.") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) #t)))))) (native-inputs @@ -9452,15 +9779,15 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") (define-public gnome-clocks (package (name "gnome-clocks") - (version "3.34.0") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1")))) + "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t @@ -9470,8 +9797,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "build-aux/post-install.py" - (("gtk-update-icon-cache") "true")) - #t))))) + (("gtk-update-icon-cache") "true"))))))) (native-inputs `(("vala" ,vala) ("pkg-config" ,pkg-config) @@ -9486,6 +9812,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") ("geoclue" ,geoclue) ("geocode-glib" ,geocode-glib) ("libgweather" ,libgweather) + ("libhandy" ,libhandy) ("gnome-desktop" ,gnome-desktop))) (home-page "https://wiki.gnome.org/Apps/Clocks") (synopsis "GNOME's clock application") @@ -9497,18 +9824,19 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") (define-public gnome-calendar (package (name "gnome-calendar") - (version "3.34.2") + (version "40.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw")))) + "0czasxnmbw2zm21lmxam8qixacagciq3f815s809hn0f9byh2dwy")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:glib-or-gtk? #t + #:meson ,meson-0.59 ;; gnome-calendar has to be installed before the tests can be run ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224 #:tests? #f @@ -9530,6 +9858,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") ("libdazzle" ,libdazzle) ("libedataserverui" ,evolution-data-server) ("libgweather" ,libgweather) + ("libhandy" ,libhandy) ("geoclue" ,geoclue))) (propagated-inputs `(("evolution-data-server" ,evolution-data-server))) @@ -9543,46 +9872,43 @@ desktop. It supports multiple calendars, month, week and year view.") (define-public gnome-todo (package (name "gnome-todo") - (version "3.28.1") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7")) - (patches - (search-patches "gnome-todo-delete-esource-duplicate.patch")))) + "1r1fb3zgjvkhx93by24j8cg1w1g3zvwr49vqkscjn261vqs44jq3")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t - #:phases (modify-phases %standard-phases - (add-after - 'install 'wrap-gnome-todo - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (gi-typelib-path (getenv "GI_TYPELIB_PATH")) - (python-path (getenv "PYTHONPATH"))) - (wrap-program (string-append out "/bin/gnome-todo") - ;; XXX: gi plugins are broken. - ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212 - ;; For plugins. - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) - `("PYTHONPATH" ":" prefix (,python-path)))) - #t))))) + `(#:glib-or-gtk? #t + ;; XXX: Some tests fail with the following error: + ;; Settings schema 'org.gnome.todo' is not installed. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "build-aux/meson/meson_post_install.py" + (("gtk-update-icon-cache") "true"))))))) (native-inputs `(("gettext" ,gettext-minimal) ("gobject-introspection" ,gobject-introspection) ("glib:bin" ,glib "bin") ; For glib-compile-resources - ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache + ("gtk-bin" ,gtk "bin") ; For gtk-update-icon-cache ("pkg-config" ,pkg-config))) (inputs `(("rest" ,rest) ; For Todoist plugin + ("gtk" ,gtk) ("json-glib" ,json-glib) ; For Todoist plugin + ("libadwaita" ,libadwaita) ("libedataserverui" ,evolution-data-server) ("libical" ,libical) ("libpeas" ,libpeas) + ("libportal" ,libportal) ("python-pygobject" ,python-pygobject) ("evolution-data-server" ,evolution-data-server) ("gnome-online-accounts:lib" ,gnome-online-accounts "lib") @@ -9597,26 +9923,25 @@ fit the GNOME desktop.") (define-public gnome-dictionary (package (name "gnome-dictionary") - (version "3.26.1") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n")))) + "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f")))) (build-system meson-build-system) - (arguments '(#:glib-or-gtk? #t - #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-install-script - (lambda _ - ;; This script attempts to compile glib schemas - ;; and create an empty MIME database. We do - ;; that elsewhere, so prevent it from running. - (substitute* "build-aux/post-install.sh" - (("\\[ -z \"\\$DESTDIR\" \\]") "false")) - #t))))) + (arguments + '(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "build-aux/meson/post-install.py" + (("gtk-update-icon-cache") "true"))))))) (native-inputs `(("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) @@ -9637,20 +9962,21 @@ existing databases over the internet.") (define-public gnome-tweaks (package (name "gnome-tweaks") - (version "3.34.1") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-tweaks/" - (version-major+minor version) "/" + (version-major version) "/" "gnome-tweaks-" version ".tar.xz")) (patches (list (search-patch "gnome-tweaks-search-paths.patch"))) (sha256 (base32 - "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq")))) + "0sn3xsjhnini0f2dyi1ymrr3fb8mi7w5j5lsyw11rc5h67h3ypzr")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t + #:meson ,meson-0.59 #:configure-flags '("-Dlocalstatedir=/tmp" "-Dsysconfdir=/tmp") #:imported-modules ((guix build python-build-system) @@ -9661,26 +9987,32 @@ existing databases over the internet.") ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "meson-postinstall.py" - (("gtk-update-icon-cache") "true")) - #t)) + (("gtk-update-icon-cache") "true")))) (add-after 'install 'wrap (@@ (guix build python-build-system) wrap)) - (add-after 'wrap 'wrap-gi-typelib + (add-after 'wrap 'wrap-gi-typelib-and-python (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) - (wrap-program (string-append out "/bin/gnome-tweaks") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - #t))))) - (native-inputs - `(("intltool" ,intltool) + (let ((python-path + (string-append out "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages"))) + (wrap-program (string-append out "/bin/gnome-tweaks") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + `("GUIX_PYTHONPATH" ":" prefix (,python-path)))))))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc. + ("intltool" ,intltool) ("pkg-config" ,pkg-config))) (inputs - `(("gnome-desktop" ,gnome-desktop) + `(("bash-minimal" ,bash-minimal) ; to execute the wrapper program + ("gnome-desktop" ,gnome-desktop) ("gtk+" ,gtk+) ("gobject-introspection" ,gobject-introspection) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("libhandy" ,libhandy-0.0) + ("libhandy" ,libhandy) ("libnotify" ,libnotify) ("libsoup" ,libsoup) ("nautilus" ,nautilus) @@ -9698,15 +10030,15 @@ GNOME Shell appearance and extension, etc.") (define-public gnome-shell-extensions (package (name "gnome-shell-extensions") - (version "3.34.2") + (version "40.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1")))) + "0yfd1bcwf72dmr1hfh7g8s5cb7snyiyg86575hqx1frbq914q7gm")))) (build-system meson-build-system) (arguments '(#:configure-flags '("-Dextension_set=all"))) @@ -9725,7 +10057,7 @@ functionality and behavior.") (define-public folks (package (name "folks") - (version "0.13.1") + (version "0.15.3") (source (origin (method url-fetch) (uri (string-append @@ -9734,7 +10066,7 @@ functionality and behavior.") "folks-" version ".tar.xz")) (sha256 (base32 - "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x")))) + "19a4qp9ry8y24jx1v5456qn9lnw843571vkkah3bxx4ky3x3gmr1")))) (build-system meson-build-system) (arguments '(#:phases @@ -9756,6 +10088,7 @@ functionality and behavior.") (native-inputs `(("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) + ("python-dbusmock" ,python-dbusmock) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("vala" ,vala))) @@ -9879,18 +10212,25 @@ handling the startup notification side.") (define-public gnome-calculator (package (name "gnome-calculator") - (version "3.34.1") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd")))) + "1xkazxbkpn1z5pfphhps7fc5q4yc8lp7f6b222n8bx5iyxhwbrkz")))) (build-system meson-build-system) - (arguments '(#:glib-or-gtk? #t)) + (arguments + '(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a writable HOME. + (setenv "HOME" (getcwd))))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0. @@ -9902,7 +10242,8 @@ handling the startup notification side.") `(("glib" ,glib) ("gtksourceview" ,gtksourceview) ("libgee" ,libgee) - ("libsoup" ,libsoup) + ("libhandy" ,libhandy) + ("libsoup" ,libsoup-minimal-2) ("libxml2" ,libxml2) ("mpc" ,mpc) ("mpfr" ,mpfr))) @@ -10083,16 +10424,16 @@ Bluefish supports many programming and markup languages.") (define-public gnome-system-monitor (package (name "gnome-system-monitor") - (version "3.32.1") + (version "40.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8")))) + "06hxd4igxas2kyind5jwfq5qbfkknykpdfy2sy3anylhcx1hzczx")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t @@ -10108,7 +10449,8 @@ Bluefish supports many programming and markup languages.") (inputs `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files. ("gtk+" ,gtk+) - ("gtkmm" ,gtkmm) + ("gtkmm" ,gtkmm-3) + ("libhandy" ,libhandy) ("librsvg" ,librsvg) ("libxml2" ,libxml2) ("libwnck" ,libwnck))) @@ -10173,16 +10515,16 @@ accessibility infrastructure.") (define-public orca (package (name "orca") - (version "3.34.1") + (version "40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4")))) + "0hq0zdcn80ficpcffbk667907v6m7dih3dhyc7ss01mrj3iyw000")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -10203,8 +10545,8 @@ accessibility infrastructure.") (,(getenv "GI_TYPELIB_PATH"))) `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,(getenv "GST_PLUGIN_SYSTEM_PATH"))) - `("PYTHONPATH" ":" prefix - (,(getenv "PYTHONPATH"))))) + `("GUIX_PYTHONPATH" ":" prefix + (,(getenv "GUIX_PYTHONPATH"))))) #t))))) (native-inputs `(("intltool" ,intltool) @@ -10262,9 +10604,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).") ;; Allow Enchant and its Aspell backend to find the en_US ;; dictionary. (setenv "ASPELL_DICT_DIR" - (string-append (assoc-ref inputs "aspell-dict-en") - "/lib/aspell")) - #t))))) + (search-input-directory inputs "/lib/aspell"))))))) (inputs `(("iso-codes" ,iso-codes))) (native-inputs @@ -10444,9 +10784,11 @@ photo-booth-like software, such as Cheese.") version ".tar.xz")) (sha256 (base32 - "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8")))) + "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8")) + (patches (search-patches "cheese-vala-update.patch")))) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t ;; Tests require GDK. #:tests? #f #:phases @@ -10538,7 +10880,7 @@ apply fancy special effects and lets you share the fun with others.") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) #t)))))) (native-inputs @@ -10681,7 +11023,7 @@ configurable file renaming. ") (inputs `(("glib" ,glib) ("gtk+" ,gtk+) ("gdk-pixbuf" ,gdk-pixbuf) - ("gtkmm" ,gtkmm) + ("gtkmm" ,gtkmm-3) ("glibmm" ,glibmm) ("libx11" ,libx11) ("libxtst" ,libxtst) @@ -10792,7 +11134,7 @@ generic enough to work for everyone.") (define-public evolution (package (name "evolution") - (version "3.34.2") + (version "3.42.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/evolution/" @@ -10800,8 +11142,7 @@ generic enough to work for everyone.") "evolution-" version ".tar.xz")) (sha256 (base32 - "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c")) - (patches (search-patches "evolution-CVE-2020-11879.patch")))) + "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6")))) (build-system cmake-build-system) (arguments `(#:imported-modules (,@%cmake-build-system-modules @@ -10815,6 +11156,11 @@ generic enough to work for everyone.") ; in four years and cannot be built. #:phases (modify-phases %standard-phases + (add-after 'unpack 'adjust-webkitgtk-version + (lambda _ + (substitute* '("CMakeLists.txt" "evolution-shell.pc.in") + (("webkit2gtk-4.0") + "webkit2gtk-4.1")))) ;; The build system attempts to install user interface modules to the ;; output directory of the "evolution-data-server" package. This ;; change redirects that change. @@ -10823,8 +11169,7 @@ generic enough to work for everyone.") (substitute* "src/modules/alarm-notify/CMakeLists.txt" (("\\$\\{edsuimoduledir\\}") (string-append (assoc-ref outputs "out") - "/lib/evolution-data-server/ui-modules"))) - #t)) + "/lib/evolution-data-server/ui-modules"))))) (add-after 'install 'glib-or-gtk-compile-schemas (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (add-after 'install 'glib-or-gtk-wrap @@ -10876,6 +11221,11 @@ functionality.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t + + ;; See + ;; <https://github.com/mesonbuild/meson/issues/9492#issuecomment-973117289>. + #:meson ,meson-0.59 + #:configure-flags ;; Ensure the RUNPATH contains all installed library locations. (list (string-append "-Dc_link_args=-Wl,-rpath=" @@ -10963,8 +11313,7 @@ advanced image management tool") ;; python-dbus cannot be found but it's really there. See ;; https://github.com/SpotlightKid/jack-select/issues/2 (substitute* "setup.py" - (("'dbus-python',") "")) - #t)) + (("'dbus-python',") "")))) (add-after 'install 'wrap-program (lambda* (#:key outputs #:allow-other-keys) (let ((prog (string-append (assoc-ref outputs "out") @@ -10975,9 +11324,8 @@ advanced image management tool") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) - `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) - #t))) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) + `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))) (add-after 'wrap-program 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (home-page "https://gnome-terminator.org/") @@ -10990,7 +11338,7 @@ tabs, and it supports drag and drop re-ordering of terminals.") (define-public libhandy (package (name "libhandy") - (version "1.2.2") + (version "1.2.3") (source (origin (method git-fetch) @@ -10999,14 +11347,26 @@ tabs, and it supports drag and drop re-ordering of terminals.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0345x7gif6yjm95y62lww71lj84wfwsr2p32r3iww8shavb8scyk")))) + (base32 "1ng2607cp4dfl169rj7zi8q5p6fzxy3a4l0glm7mj75yd1a603rz")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dglade_catalog=enabled" - "-Dgtk_doc=true") + ;; XXX: Generating the documentation fails because the + ;; libhandy.devhelp2 document cannot be created. This seems to be + ;; caused by a problem during the XSL transformation. + "-Dgtk_doc=false") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (for-each + (lambda (file) + (substitute* file + (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd") + (search-input-file inputs + "/xml/dtd/docbook/docbookx.dtd")))) + (find-files "doc" "\\.xml")))) (add-before 'check 'pre-check (lambda _ ;; Tests require a running X server. @@ -11015,12 +11375,15 @@ tabs, and it supports drag and drop re-ordering of terminals.") #t))))) (inputs `(("gtk+" ,gtk+) - ("glade" ,glade3) - ("libxml2" ,libxml2))) + ("glade" ,glade3))) (native-inputs `(("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner ("vala" ,vala) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml" ,docbook-xml-4.3) ("gtk-doc" ,gtk-doc/stable) ("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) @@ -11168,6 +11531,13 @@ repository and commit your work.") (arguments `(#:phases (modify-phases %standard-phases + ;; The 'config.sub' is too old to recognise aarch64. + ,@(if (and=> (%current-target-system) target-aarch64?) + `((add-after 'unpack 'replace-config.sub + (lambda _ + (delete-file "config.sub") + (symlink (which "config.sub") "config.sub")))) + '()) (add-after 'unpack 'remove-deprecated-macro (lambda _ (substitute* '("server/gam_node.c" @@ -11175,12 +11545,38 @@ repository and commit your work.") "server/gam_node.h" "server/gam_subscription.c") (("G_CONST_RETURN") "const")) - #t))))) + #t)) + ;; The configure script runs a test program unconditionally, + ;; without an option to manually set the test result. + ;; Override this test anyway. + ,@(if (%current-target-system) + `((add-after 'bootstrap 'set-have-abstract-sockets + (lambda _ + (define in-abstract-sockets-test? #f) + (substitute* "configure" + (("^#### Abstract sockets\n$") + (set! in-abstract-sockets-test? #t) + "#### Abstract sockets\n") + (("^have_abstract_sockets=no\n$") + (set! in-abstract-sockets-test? #f) + ;; ‘Abstract sockets’ appear to be Linux-only. + (string-append "have_abstract_sockets=" + ,(if (target-linux?) + "yes" + "no") + "\nif false; then\nif false; then :\n")) + (("^(.*\n)$" line) + (if in-abstract-sockets-test? + "" ; delete + line)))))) + '())))) (inputs `(("glib" ,glib))) (native-inputs - `(("intltool" ,intltool) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ,@(if (and=> (%current-target-system) target-aarch64?) + `(("config" ,config)) + '()))) (home-page "https://people.gnome.org/~veillard/gamin/") (synopsis "File alteration monitor") (description @@ -11267,15 +11663,15 @@ index files needed for Adwaita to be used outside of GNOME.") (define-public gnote (package (name "gnote") - (version "3.38.1") + (version "40.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" "gnote-" version ".tar.xz")) (sha256 - (base32 "1adjfjhmsm2d33999khjyzvli6kiz1jlzavn77jhd49kfzhxa9y4")))) + (base32 "01fqdfgcl32cf40jw9q0h7f5bghl1lvf89vln1lh41ncrk0iw6vy")))) (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) @@ -11290,7 +11686,7 @@ index files needed for Adwaita to be used outside of GNOME.") ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gspell" ,gspell) ("gtk+" ,gtk+) - ("gtkmm" ,gtkmm) + ("gtkmm" ,gtkmm-3) ("libsecret" ,libsecret) ("libuuid" ,util-linux "lib") ("libxml2" ,libxml2) @@ -11360,26 +11756,27 @@ integrate seamlessly with the GNOME desktop.") (define-public gnome-boxes (package (name "gnome-boxes") - (version "3.36.6") + (version "41.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-boxes/" - (version-major+minor version) "/" + (version-major version) "/" "gnome-boxes-" version ".tar.xz")) (sha256 - (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg")))) + (base32 "1wzhm8n485cqhbai4qshgrwl05ix881g8gjshilrj6vg8p1li79h")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #t #:configure-flags (list "-Drdp=false" (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib/gnome-boxes")))) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-compile-resources - ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache - ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database + `(("glib:bin" ,glib "bin") ;for glib-compile-resources + ("gtk+:bin" ,gtk+ "bin") ;for gtk-update-icon-cache + ("desktop-file-utils" ,desktop-file-utils) ;for update-desktop-database ("itstool" ,itstool) ("intltool" ,intltool) ("vala" ,vala) @@ -11390,9 +11787,12 @@ integrate seamlessly with the GNOME desktop.") ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk" ,gtk+) ("gtk-vnc" ,gtk-vnc) + ("gtksourceview" ,gtksourceview) + ("json-glib" ,json-glib) + ("libhandy" ,libhandy) ("libosinfo" ,libosinfo) ("libsecret" ,libsecret) - ("libsoup" ,libsoup) + ("libsoup" ,libsoup-minimal-2) ("libusb" ,libusb) ("libvirt" ,libvirt) ("libvirt-glib" ,libvirt-glib) @@ -11400,7 +11800,7 @@ integrate seamlessly with the GNOME desktop.") ("spice-gtk" ,spice-gtk) ("sparql-query" ,sparql-query) ("vte" ,vte) - ("webkitgtk" ,webkitgtk) + ("webkitgtk" ,webkitgtk-with-libsoup2) ;for webkit2gtk-4.0 ("tracker" ,tracker) ("libgudev" ,libgudev))) (home-page "https://wiki.gnome.org/Apps/Boxes") @@ -11419,34 +11819,46 @@ these services on the Guix System.") (define-public geary (package (name "geary") - (version "3.34.1") + (version "40.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.gnome.org/GNOME/geary") - (commit version))) + (url "https://gitlab.gnome.org/GNOME/geary.git") + (commit (string-append "gnome-" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7")) - (patches (search-patches "geary-CVE-2020-24661.patch")))) + "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t + #:configure-flags + '("-Dprofile=release") #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests (lambda _ - (substitute* "test/meson.build" - (("test\\('client-tests', geary_test_client_bin\\)") - "")) - #t)) + (substitute* "test/test-client.vala" + (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);") + "")))) + (add-after 'unpack 'generate-vapis + (lambda* (#:key inputs #:allow-other-keys) + ;; It’s not possible to generate the GMime vapi, because + ;; there’s custom metadata that gmime didn’t + ;; install. Thus, the vapi should be built and installed + ;; with gmime. + (define gmime + (assoc-ref inputs "gmime")) + (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi") + "bindings/vapi/gmime-3.0.vapi"))) (add-after 'unpack 'disable-postinstall-script (lambda _ - (substitute* "meson.build" - (("meson.add_install_script\\(\ -join_paths\\('build-aux', 'post_install.py'\\)\\)") - "")) - #t)) + (substitute* "build-aux/post_install.py" + (("gtk-update-icon-cache") + "true")))) + (add-before 'check 'setup-home + (lambda _ + ;; Tests require a writable HOME. + (setenv "HOME" (getcwd)))) (add-before 'check 'setup-xvfb (lambda _ (system "Xvfb :1 &") @@ -11457,28 +11869,33 @@ join_paths\\('build-aux', 'post_install.py'\\)\\)") ("folks" ,folks) ("gcr" ,gcr) ("glib" ,glib) - ("gmime" ,gmime-2.6) + ("gmime" ,gmime) ("gnome-online-accounts:lib" ,gnome-online-accounts "lib") + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gspell" ,gspell) + ("gsound" ,gsound) ("gtk+" ,gtk+) ("iso-codes" ,iso-codes) ("json-glib" ,json-glib) ("libcanberra" ,libcanberra) ("libgee" ,libgee) - ("libhandy" ,libhandy-0.0) + ("libhandy" ,libhandy) ("libpeas" ,libpeas) ("libsecret" ,libsecret) + ("libstemmer" ,libstemmer) ("libunwind" ,libunwind) ("sqlite" ,sqlite) - ("webkitgtk" ,webkitgtk) + ("webkitgtk" ,webkitgtk-with-libsoup2) ("ytnef" ,ytnef))) (native-inputs `(("appstream-glib" ,appstream-glib) ("cmake-minimal" ,cmake-minimal) ("desktop-file-utils" ,desktop-file-utils) ("gettext" ,gettext-minimal) + ("glib" ,glib) ("glib:bin" ,glib "bin") + ("gmime" ,gmime) ("gobject-introspection" ,gobject-introspection) ("itstool" ,itstool) ("libarchive" ,libarchive) @@ -11530,6 +11947,8 @@ to.") `(("gtk+" ,gtk+) ("librsvg" ,librsvg) ("libxml2" ,libxml2))) + (arguments + `(#:configure-flags '("CFLAGS=-fcommon"))) (home-page "https://glabels.org/") (synopsis "Program for creating labels and business cards") (description @@ -11538,11 +11957,10 @@ designed to work with various laser/ink-jet peel-off label and business card sheets that you’ll find at most office supply stores.") (license license:gpl3+))) -;; Version 3.38.0 is out but requires tepl>=5 which requires glib>=2.64. (define-public gnome-latex (package (name "gnome-latex") - (version "3.36.0") + (version "3.38.0") (source (origin (method url-fetch) @@ -11550,7 +11968,7 @@ card sheets that you’ll find at most office supply stores.") (version-major+minor version) "/" "gnome-latex-" version ".tar.xz")) (sha256 - (base32 "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn")))) + (base32 "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -11570,7 +11988,7 @@ card sheets that you’ll find at most office supply stores.") ("gtk+" ,gtk+) ("gtksourceview" ,gtksourceview) ("libgee" ,libgee) - ("tepl" ,tepl) + ("tepl" ,tepl-5) ("uchardet" ,uchardet))) (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX") (synopsis "LaTeX editor for the GNOME desktop") @@ -11609,7 +12027,7 @@ and toolbars.") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) #t)))))) (native-inputs @@ -11671,11 +12089,11 @@ GTK+. It integrates well with the GNOME desktop environment.") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))) - `("PATH" prefix (,(string-append (assoc-ref inputs "pandoc") - "/bin")))) - #t)))))) + `("PATH" prefix (,(dirname + (search-input-file inputs + "/bin/pandoc"))))))))))) (inputs `(("glib" ,glib) ("gobject-introspection" ,gobject-introspection) @@ -11734,7 +12152,7 @@ It uses pandoc as back-end for parsing Markdown.") (pygo (string-append (assoc-ref inputs "python-pygobject") site)) (python-wrap - `("PYTHONPATH" = (,evdev ,pygo)))) + `("GUIX_PYTHONPATH" = (,evdev ,pygo)))) (wrap-program (string-append out "/bin/" "ratbagctl") python-wrap) #t)))))) @@ -11958,7 +12376,7 @@ GObject introspection bindings.") (define-public sysprof (package (name "sysprof") - (version "3.36.0") + (version "3.42.1") (source (origin (method url-fetch) @@ -11966,7 +12384,7 @@ GObject introspection bindings.") (version-major+minor version) "/" "sysprof-" version ".tar.xz")) (sha256 - (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46")))) + (base32 "0090986ar3lz9m9fy7l5y9ibzzmgsx54cm6gp8ggsxgf0habi5hp")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -11982,9 +12400,12 @@ GObject introspection bindings.") (("gtk-update-icon-cache") "true") (("update-desktop-database") "true")) #t))))) + (propagated-inputs + `(("polkit" ,polkit))) (inputs `(("glib" ,glib) ("gtk+" ,gtk+) + ("json-glib" ,json-glib) ("libdazzle" ,libdazzle) ("polkit" ,polkit))) (native-inputs @@ -12009,25 +12430,22 @@ libraries. Applications do not need to be recompiled--or even restarted.") (define-public gnome-builder (package (name "gnome-builder") - (version "3.36.1") + (version "41.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" + (version-major version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2")))) + "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan")))) (build-system meson-build-system) (arguments - `(#:configure-flags (list "-Dnetwork_tests=false" + `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas + #:configure-flags (list "-Dnetwork_tests=false" ;; TODO: Enable all plugins... - "-Dplugin_clang=false" + ;; Flatpak plugin wants libsoup 2 "-Dplugin_flatpak=false" - "-Dplugin_glade=false" - ;; XXX: This one has been shown not to work in - ;; <https://issues.guix.gnu.org/45272> - "-Dplugin_jedi=false" ;; ... except this one. "-Dplugin_update_manager=false") #:phases @@ -12041,6 +12459,8 @@ libraries. Applications do not need to be recompiled--or even restarted.") (("/usr/lib") (string-append (assoc-ref inputs "python-pygobject") "/lib"))) + (substitute* "meson.build" + (("webkit2gtk-4.0") "webkit2gtk-4.1")) #t)) (add-after 'configure 'fix-ninja (lambda _ @@ -12055,7 +12475,10 @@ libraries. Applications do not need to be recompiled--or even restarted.") (setenv "DISPLAY" ":1") #t))))) (inputs - `(("devhelp" ,devhelp) + `(("cmark" ,cmark) + ("clang" ,clang) + ("devhelp" ,devhelp) + ("glade" ,glade3) ("gspell" ,gspell) ("gtk+" ,gtk+) ("json-glib" ,json-glib) @@ -12063,6 +12486,9 @@ libraries. Applications do not need to be recompiled--or even restarted.") ("libdazzle" ,libdazzle) ("libgit2-glib" ,libgit2-glib) ("libpeas" ,libpeas) + ("libportal" ,libportal) + ("libsoup" ,libsoup-minimal-2) + ("llvm" ,llvm) ("python-pygobject" ,python-pygobject) ("sysprof" ,sysprof) ("template-glib" ,template-glib) @@ -12121,7 +12547,7 @@ integrated profiler via Sysprof, debugging support, and more.") (let ((prog (string-append (assoc-ref outputs "out") "/bin/komikku"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH"))) + `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH"))) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) #t)))))) (inputs @@ -12313,7 +12739,7 @@ world.") (package-version python)) "/site-packages"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib)) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) #t)))))) (native-inputs @@ -12349,6 +12775,49 @@ world.") Document Analysis and Recognition program.") (license license:gpl3+))) +(define-public libadwaita + (let ((commit "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe") + (revision "1")) + (package + (name "libadwaita") + (version (git-version "0.0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/GNOME/libadwaita.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1")))))) + (native-inputs + `(("sassc" ,sassc) + ("glib:bin" ,glib "bin") + ("gtk-doc" ,gtk-doc/stable) + ("pkg-config" ,pkg-config) + ("vala" ,vala) + ("xvfb" ,xorg-server-for-tests))) + (inputs + `(("gtk" ,gtk) + ("gobject-introspection" ,gobject-introspection) + ("libportal" ,libportal))) + (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/") + (synopsis "Building blocks for GNOME applications") + (description + "@code{libadwaita} offers widgets and objects to build GNOME +applications scaling from desktop workstations to mobile phones. It is the +successor of @code{libhandy} for GTK4.") + (license license:lgpl2.1+)))) + (define-public gnome-power-manager (package (name "gnome-power-manager") |