diff options
57 files changed, 1997 insertions, 964 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 94903fb5e2..b0a71584ed 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19404,9 +19404,23 @@ Type of the service that runs udev, a service which populates the @file{/dev} directory dynamically, whose value is a @code{<udev-configuration>} object. -This service type can be @emph{extended} using procedures -@code{udev-rules-service} along with @code{file->udev-rule} or -@code{udev-rule} which simplify the process of writing udev rules. +Since the file names for udev rules and hardware description files +matter, the configuration items for rules and hardware cannot simply be +plain file-like objects with the rules content, because the name would +be ignored. Instead, they are directory file-like objects that contain +optional rules in @file{lib/udev/rules.d} and optional hardware files in +@file{lib/udev/hwdb.d}. This way, the service can be configured with +whole packages from which to take rules and hwdb files. + +The @code{udev-service-type} can be @emph{extended} with file-like +directories that respect this hierarchy. For convenience, the +@code{udev-rule} and @code{file->udev-rule} can be used to construct +udev rules, while @code{udev-hardware} and @code{file->udev-hardware} +can be used to construct hardware description files. + +In an @code{operating-system} declaration, this service type can be +@emph{extended} using procedures @code{udev-rules-service} and +@code{udev-hardware-service}. @end defvar @deftp {Data Type} udev-configuration @@ -19414,10 +19428,17 @@ Data type representing the configuration of udev. @table @asis @item @code{udev} (default: @code{eudev}) (type: file-like) -Package object of the udev service. +Package object of the udev service. This package is used at run-time, +when compiled for the target system. In order to generate the +@file{hwdb.bin} hardware index, it is also used when generating the +system definition, compiled for the current system. @item @code{rules} (default: @var{'()}) (type: list-of-file-like) -List of file-like objects denoting udev-rule files. +List of file-like objects denoting udev rule files under a sub-directory. + +@item @code{hardware} (default: @var{'()}) (type: list-of-file-like) +List of file-like objects denoting udev hardware description files under +a sub-directory. @end table @end deftp @@ -19440,6 +19461,11 @@ upon detecting a USB device with a given product identifier. @end lisp @end deffn +@deffn {Procedure} udev-hardware @var{file-name} @var{contents} +Return a udev hardware description file named @var{file-name} containing +the hardware information @var{contents}. +@end deffn + @deffn {Procedure} udev-rules-service @var{name} @var{rules} [#:groups '()] Return a service that extends @code{udev-service-type} with @var{rules} and @code{account-service-type} with @var{groups} as system groups. @@ -19459,6 +19485,11 @@ with the previously defined rule @code{%example-udev-rule}. @end lisp @end deffn +@deffn {Procedure} udev-hardware-service @var{name} @var{hardware} +Return a service that extends @code{udev-service-type} with +@var{hardware}. The service name is @code{@var{name}-udev-hardware}. +@end deffn + @deffn {Procedure} file->udev-rule @var{file-name} @var{file} Return a udev-rule file named @var{file-name} containing the rules defined within @var{file}, a file-like object. @@ -19483,12 +19514,16 @@ The following example showcases how we can use an existing rule file. @end lisp @end deffn -Additionally, Guix package definitions can be included in @var{rules} in -order to extend the udev rules with the definitions found under their -@file{lib/udev/rules.d} sub-directory. In lieu of the previous -@var{file->udev-rule} example, we could have used the -@var{android-udev-rules} package which exists in Guix in the @code{(gnu -packages android)} module. +Since guix package definitions can be included in @var{rules} in order +to use all their rules under the @file{lib/udev/rules.d} sub-directory, +then in lieu of the previous @var{file->udev-rule} example, we could +have used the @var{android-udev-rules} package which exists in Guix in +the @code{(gnu packages android)} module. + +@deffn {Procedure} file->udev-hardware @var{file-name} @var{file} +Return a udev hardware description file named @var{file-name} containing +the rules defined within @var{file}, a file-like object. +@end deffn The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices diff --git a/gnu/local.mk b/gnu/local.mk index fcd9024ce3..a939b9be8d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -60,6 +60,7 @@ # Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com> # Copyright © 2023 Andy Tai <atai@atai.org> # Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com> +# Copyright © 2023 Bruno Victal <mirai@makinata.eu> # Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> # # This file is part of GNU Guix. @@ -990,6 +991,8 @@ dist_patch_DATA = \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-remove-test-sqlite.patch \ %D%/packages/patches/calibre-remove-test-unrar.patch \ + %D%/packages/patches/calls-disable-application-test.patch \ + %D%/packages/patches/calls-disable-sip-test.patch \ %D%/packages/patches/camlboot-dynamically-allocate-stack-signal.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ %D%/packages/patches/ccextractor-add-missing-header.patch \ @@ -1035,6 +1038,7 @@ dist_patch_DATA = \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/cmake-curl-certificates-3.24.patch \ %D%/packages/patches/coda-use-system-libs.patch \ + %D%/packages/patches/cogl-fix-double-free.patch \ %D%/packages/patches/collectd-5.11.0-noinstallvar.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-io-fix.patch \ @@ -1156,6 +1160,7 @@ dist_patch_DATA = \ %D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/fbreader-curl-7.62.patch \ %D%/packages/patches/fbreader-fix-icon.patch \ + %D%/packages/patches/feedbackd-use-system-gmobile.patch \ %D%/packages/patches/fenics-dolfin-algorithm.patch \ %D%/packages/patches/fenics-dolfin-demo-init.patch \ %D%/packages/patches/fenics-dolfin-boost.patch \ @@ -1259,6 +1264,7 @@ dist_patch_DATA = \ %D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch \ %D%/packages/patches/gdm-wayland-session-wrapper-from-env.patch \ %D%/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch \ + %D%/packages/patches/gegl-compatibility-old-librsvg.patch \ %D%/packages/patches/gemmi-fix-pegtl-usage.patch \ %D%/packages/patches/gemmi-fix-sajson-types.patch \ %D%/packages/patches/genimage-mke2fs-test.patch \ @@ -1278,7 +1284,6 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ - %D%/packages/patches/gitg-fix-positional-argument.patch \ %D%/packages/patches/gklib-suitesparse.patch \ %D%/packages/patches/glib-appinfo-watch.patch \ %D%/packages/patches/glib-networking-gnutls-binding.patch \ @@ -1319,10 +1324,12 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-2.29-supported-locales.patch \ %D%/packages/patches/glibc-supported-locales.patch \ %D%/packages/patches/glslang-install-static-libs.patch \ + %D%/packages/patches/gmobile-make-it-installable.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gnash-fix-giflib-version.patch \ %D%/packages/patches/gnome-2048-fix-positional-argument.patch \ + %D%/packages/patches/gnome-control-center-firmware-security.patch \ %D%/packages/patches/gnome-control-center-libexecdir.patch \ %D%/packages/patches/gnome-dictionary-meson-i18n.patch \ %D%/packages/patches/gnome-online-miners-tracker-3.patch \ @@ -1380,6 +1387,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-emacs-fix-configure.patch \ %D%/packages/patches/gtk2-fix-builder-test.patch \ + %D%/packages/patches/gtk2-harden-list-store.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ @@ -1473,6 +1481,7 @@ dist_patch_DATA = \ %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \ %D%/packages/patches/julia-Use-MPFR-4.2.patch \ + %D%/packages/patches/libcall-ui-make-it-installable.patch \ %D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch \ %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch \ %D%/packages/patches/libobjc2-unbundle-robin-map.patch \ @@ -1986,6 +1995,7 @@ dist_patch_DATA = \ %D%/packages/patches/libsequoia-remove-store.patch \ %D%/packages/patches/serf-python3.patch \ %D%/packages/patches/shakespeare-spl-fix-grammar.patch \ + %D%/packages/patches/shared-mime-info-xdgmime-path.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ %D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-config.patch \ diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 991995daf7..9586e463c2 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -123,7 +123,7 @@ the <tz.h> library for handling time zones and leap seconds.") (define-public libical (package (name "libical") - (version "3.0.16") + (version "3.0.17") (source (origin (method url-fetch) (uri (string-append @@ -131,7 +131,7 @@ the <tz.h> library for handling time zones and leap seconds.") version "/libical-" version ".tar.gz")) (sha256 (base32 - "0cqc1wpalxmxjx8dmcaga9w8kd5l7944hqmidz43hifaf7fhaixl")))) + "06vqbxg4f3i03087grjncfy9pbvmlhg4v1ajhwr400l7nrnrmnmw")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 648ebad408..0aeeadf5a3 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2023 Alex Devaure <ajadevaure@gmail.com> +;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -138,7 +139,7 @@ (define-public appstream (package (name "appstream") - (version "0.15.6") + (version "0.16.4") (source (origin (method url-fetch) @@ -147,11 +148,12 @@ "appstream/releases/" "AppStream-" version ".tar.xz")) (sha256 - (base32 "03pirmc5r4izl6mzff879g7pk1nxq03kgpr2yvnnqnlb6r0ckmi3")))) + (base32 "1val1b3dggn9g33q2r9q7wsl75a64x4lcvswvkcjjbvakkbj5xyl")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t + #:configure-flags #~(list "-Dsystemd=false") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-libstemmer @@ -164,7 +166,7 @@ (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "tests/test-pool.c" - (("[ \t]*g_test_add_func \\(\"/AppStream/PoolRead?.*;") + (("[ \t]*g_test_add_func \\(\"/AppStream/Stemming.*;") "")))) (add-before 'check 'check-setup (lambda _ @@ -481,6 +483,115 @@ method framework.") display servers. It supports many different languages and emoji.") (license license:gpl3+))) +;; Private package used by shared-mime-info. +(define xdgmime + ;; No public release, match commit to the one used in the + ;; shared-mime-info release. + (let ((commit "179296748e92bd91bf531656632a1056307fb7b7") + (revision "2")) + (package + (name "xdgmime") + (version (git-version "0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/xdg/xdgmime.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04bpbqlkmwi2pqx1lj3awa9f9gwp4n91fpnz8hbbd0hl8x41przm")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; no tests + #:make-flags #~(list (string-append "DESTDIR=" #$output) + #$(string-append "CC=" (cc-for-target))) + #:imported-modules `((guix build copy-build-system) + ,@%gnu-build-system-modules) + #:modules `((guix build gnu-build-system) + ((guix build copy-build-system) #:prefix copy:) + (guix build utils)) + #:phases + #~(modify-phases %standard-phases + ;; Package uses a hand-crafted Makefile. + (delete 'configure) + (replace 'install + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + '(("src" "bin/" #:include ("print-mime-data" + "test-mime-data" + "test-mime"))) + args)))))) + (home-page "https://gitlab.freedesktop.org/xdg/xdgmime/") + (synopsis "Module that parses the freedesktop.org MIME spec") + (description "This module is used for shared-mime-info package tests.") + (license (list license:lgpl2.1+ license:artistic2.0))))) + +;; Note: when updating shared-mime-info, don't forget to update xdgmime's commit +;; to the one used in the release. +(define-public shared-mime-info + (package + (name "shared-mime-info") + (version "2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/xdg/shared-mime-info.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0w8sbhz00sk6k8pyiykfig4rm22jyibalj7g22j9qf3d2nfy8ivh")) + (patches (search-patches "shared-mime-info-xdgmime-path.patch")))) + (build-system meson-build-system) + (arguments + (list + #:configure-flags + #~(list (string-append + "-Dxdgmime-path=" + (dirname + (search-input-file %build-inputs "/bin/test-mime"))) + "-Dupdate-mimedb=true") + #:phases + #~(modify-phases %standard-phases + ;; Don't patch shebangs for the test files. + (replace 'patch-source-shebangs + (lambda _ + (let ((pred (lambda (file stat) + (and (eq? 'regular (stat:type stat)) + (not (string-prefix? "./tests/mime-detection" + file)))))) + (for-each patch-shebang + (find-files "." pred #:stat lstat))))) + ;; The docs have no install rule. + (add-after 'install 'install-doc + (lambda* (#:key source #:allow-other-keys) + (let ((dest (string-append #$output:doc "/share/doc"))) + (with-directory-excursion "data/shared-mime-info-spec-html" + (install-file "shared-mime-info-spec.html" + (string-append dest "/html"))) + (install-file (string-append source + "/data/shared-mime-info-spec.xml") + dest))))))) + (inputs + (list glib libxml2)) + (native-inputs + (list gettext-minimal pkg-config python xdgmime + ;; For 'doc' output. + docbook-xml-4.1.2 docbook-xsl xmlto)) + (outputs (list "out" "doc")) + (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info") + (synopsis "Database of common MIME types") + (description + "The shared-mime-info package contains the core database of common types +and the update-mime-database command used to extend it. It requires glib2 to +be installed for building the update command. Additionally, it uses intltool +for translations, though this is only a dependency for the maintainers. This +database is translated at Transifex.") + (license license:gpl2+))) + (define-public xdg-utils (package (name "xdg-utils") diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index dbc8440141..f84fd12d86 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -529,7 +529,7 @@ topology functions.") libsoup libxml2 rest-next - webkitgtk)) + webkitgtk-for-gtk3)) (synopsis "Graphical map viewer and wayfinding program") (description "GNOME Maps is a graphical map viewer. It uses map data from the OpenStreetMap project. It can provide directions for walking, bicycling, diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index b1ff08d652..9c8100dc7b 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -215,7 +215,7 @@ provided, as well as a framework to add new color models and data types.") (define-public gegl (package (name "gegl") - (version "0.4.42") + (version "0.4.46") (source (origin (method url-fetch) @@ -228,8 +228,10 @@ provided, as well as a framework to add new color models and data types.") (string-append "ftp://ftp.gtk.org/pub/gegl/" (version-major+minor version) "/gegl-" version ".tar.xz"))) + (patches + (search-patches "gegl-compatibility-old-librsvg.patch")) (sha256 - (base32 "0bg0vlmj4n9x1291b9fsjqxsal192zlg48pa57f6xid6p863ma5b")))) + (base32 "14p8n6vily0yp6gqafl2xy7d2rh1j48pcj0a7mglqxy83d4b5cyh")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -253,23 +255,23 @@ provided, as well as a framework to add new color models and data types.") (list babl glib json-glib)) (inputs ;; All inputs except libjpeg and libpng are optional. - `(("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gexiv2" ,gexiv2) - ("jasper" ,jasper) - ("libjpeg" ,libjpeg-turbo) - ("libnsgif" ,libnsgif) - ("libpng" ,libpng) - ("libraw" ,libraw) - ("librsvg" ,(librsvg-for-system)) - ("libspiro" ,libspiro) - ("libtiff" ,libtiff) - ("libwebp" ,libwebp) - ("maxflow" ,maxflow) - ("openexr" ,openexr-2) - ("pango" ,pango) - ("poppler" ,poppler) - ("sdl2" ,sdl2))) + (list cairo + gdk-pixbuf + gexiv2 + jasper + libjpeg-turbo + libnsgif + libpng + libraw + (librsvg-for-system) + libspiro + libtiff + libwebp + maxflow + openexr-2 + pango + poppler + sdl2)) (native-inputs (list `(,glib "bin") ; for gtester gobject-introspection @@ -285,10 +287,31 @@ buffers.") ;; application and GUI binary gegl is licensed under GPL. (license (list license:lgpl3+ license:gpl3+)))) +;; gnome-photos does not build against gegl 0.4.46 yet. +;; See also <https://gitlab.gnome.org/GNOME/gnome-photos/-/issues/214>. +(define-public gegl-0.4.44 + (package + (inherit gegl) + (version "0.4.44") + (source + (origin + (method url-fetch) + (uri (list (string-append "https://download.gimp.org/pub/gegl/" + (string-take version 3) + "/gegl-" version ".tar.xz") + (string-append "https://ftp.gtk.org/pub/gegl/" + (version-major+minor version) + "/gegl-" version ".tar.xz") + (string-append "ftp://ftp.gtk.org/pub/gegl/" + (version-major+minor version) + "/gegl-" version ".tar.xz"))) + (sha256 + (base32 "09k1sn4h0bakgmq2hgd1iamprngpr81ky3fd9446lh2ycd0xnk0a")))))) + (define-public gimp (package (name "gimp") - (version "2.10.32") + (version "2.10.34") (source (origin (method url-fetch) @@ -296,7 +319,7 @@ buffers.") (version-major+minor version) "/gimp-" version ".tar.bz2")) (sha256 - (base32 "09csp2d8bzf012n7hvbbwngwr9phv3rnip768qdwqpdgah2wf59z")))) + (base32 "18vscmy293q6wq78almv0m7r8jh4j8szvmrw56j9icsisd14c044")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 9 MiB of gtk-doc HTML diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index b5eb4602da..ee44f8f403 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -37,6 +37,7 @@ (define-module (gnu packages glib) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bash) @@ -45,6 +46,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) + #:use-module (gnu packages curl) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) @@ -105,7 +107,7 @@ (define dbus (package (name "dbus") - (version "1.14.0") + (version "1.15.8") (source (origin (method url-fetch) (uri (string-append @@ -113,49 +115,57 @@ version ".tar.xz")) (sha256 (base32 - "1m7bibavml4gx9d67j403l0kzd1a4z8lhrpxb2as3q4nfpiwrmyc")) + "016j3rqc8m62bg0h7z4rpvbvm5bg0hbjrld733f0aby8drz5kz44")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments - '(#:configure-flags - (list - ;; Install the system bus socket under /var. - "--localstatedir=/var" + (list + #:configure-flags + #~(list + ;; Install the system bus socket under /var. + "--localstatedir=/var" - ;; Install the session bus socket under /tmp. - "--with-session-socket-dir=/tmp" + ;; Install the session bus socket under /tmp. + "--with-session-socket-dir=/tmp" - ;; Build shared libraries only. - "--disable-static" + ;; Build shared libraries only. + "--disable-static" - ;; Use /etc/dbus-1 for system-wide config. - ;; Look for configuration file under - ;; /etc/dbus-1. This is notably required by - ;; 'dbus-daemon-launch-helper', which looks for - ;; the 'system.conf' file in that place, - ;; regardless of what '--config-file' was - ;; passed to 'dbus-daemon' on the command line; - ;; see <https://bugs.freedesktop.org/show_bug.cgi?id=92458>. - "--sysconfdir=/etc") - #:phases - (modify-phases %standard-phases - (replace 'install - (lambda _ - ;; Don't try to create /var and /etc. - (invoke "make" - "localstatedir=/tmp/dummy" - "sysconfdir=/tmp/dummy" - "install")))))) + ;; Use /etc/dbus-1 for system-wide config. + ;; Look for configuration file under + ;; /etc/dbus-1. This is notably required by + ;; 'dbus-daemon-launch-helper', which looks for + ;; the 'system.conf' file in that place, + ;; regardless of what '--config-file' was + ;; passed to 'dbus-daemon' on the command line; + ;; see <https://bugs.freedesktop.org/show_bug.cgi?id=92458>. + "--sysconfdir=/etc") + #:phases + #~(modify-phases %standard-phases + (replace 'install + (lambda _ + ;; Don't try to create /var and /etc. + (invoke "make" + "localstatedir=/tmp/dummy" + "sysconfdir=/tmp/dummy" + "install")))))) (native-inputs - (list pkg-config - ;; Dependencies to generate the doc. + ;; Some dependencies are required to generate the documentation. Also, + ;; quoting NEWS for 1.15.8: “Autotools-generated files are no longer + ;; included in the tarball release.” + (list autoconf + autoconf-archive + automake docbook-xml-4.4 docbook-xsl doxygen - xmlto + libtool libxml2 ;for XML_CATALOG_FILES libxslt - yelp-tools)) + which + xmlto + yelp-tools + pkg-config)) (inputs (list expat ;; Add a dependency on libx11 so that 'dbus-launch' has support for @@ -217,7 +227,7 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) (define glib (package (name "glib") - (version "2.72.3") + (version "2.78.0") (source (origin (method url-fetch) @@ -226,14 +236,14 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) name "/" (string-take version 4) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1w25sf2wxkkah2p2w189q58mza3zv8z1fh2q1m82sldq4kva4faa")) + (base32 "0c3vagxl77wma85qinbj974jvw96n5bvch2m7hqcwxq8fa5spsj4")) (patches (search-patches "glib-appinfo-watch.patch" "glib-skip-failing-test.patch")) (modules '((guix build utils))) (snippet '(begin - (substitute* "tests/spawn-test.c" + (substitute* "glib/tests/spawn-test.c" (("/bin/sh") "sh")))))) (build-system meson-build-system) (outputs '("out" ;libraries, locales, etc @@ -258,6 +268,9 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) #$output:bin "/bin")) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-G_TEST_SRCDIR + (lambda _ + (setenv "G_TEST_SRCDIR" (string-append (getcwd) "/gio/tests")))) ;; Needed to pass the test phase on slower ARM and i686 machines. (add-after 'unpack 'increase-test-timeout (lambda _ @@ -273,9 +286,19 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) (substitute* '("unix.c" "utils.c") (("[ \t]*g_test_add_func.*;") ""))) (with-directory-excursion "gio/tests" - (substitute* '("contenttype.c" "gdbus-address-get-session.c" - "gdbus-peer.c" "appinfo.c" "desktop-app-info.c") - (("[ \t]*g_test_add_func.*;") ""))) + (substitute* '("contenttype.c" + "gdbus-address-get-session.c" + "gdbus-server-auth.c" + "gdbus-peer.c" + "appinfo.c" + "desktop-app-info.c") + (("[ \t]*g_test_add_func.*;") "")) + (unless (which "update-desktop-database") + (substitute* "file.c" + (("[ \t]*g_test_add_func.*query-default-handler.*;") ""))) + (substitute* '("portal-support-snap.c") + (("g_test_init .*") + "return EXIT_SUCCESS;"))) #$@(if (target-x86-32?) ;; Comment out parts of timer.c that fail on i686 due to @@ -325,7 +348,7 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) (substitute* '("appmonitor.c" "async-splice-output-stream.c" "autoptr.c" - "contexts.c" + "contexts.c" "converter-stream.c" "file.c" "g-file-info.c" @@ -334,13 +357,13 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) "gapplication.c" "gdbus-connection-flush.c" "gdbus-connection.c" - "gdbus-names.c" + "gdbus-names.c" "gdbus-server-auth.c" "gsocketclient-slow.c" "gsubprocess.c" "io-stream.c" "live-g-file.c" - "memory-monitor.c" + "memory-monitor.c" "mimeapps.c" "network-monitor-race.c" "network-monitor.c" @@ -455,10 +478,10 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) python python-wrapper)) (propagated-inputs - (list libffi ;in the Requires.private field of gobject-2.0.pc - pcre ;in the Requires.private field of glib-2.0.pc - `(,util-linux "lib") ;for libmount - zlib)) ;in the Requires.private field of glib-2.0.pc + (list libffi ; in the Requires.private field of gobject-2.0.pc + pcre2 ; in the Requires.private field of glib-2.0.pc + `(,util-linux "lib") ;for libmount + zlib)) ; in the Requires.private field of glib-2.0.pc (native-search-paths ;; This variable is not really "owned" by GLib, but several related ;; packages refer to it: gobject-introspection's tools use it as a search @@ -482,106 +505,47 @@ functions for strings and common data structures.") (license license:lgpl2.1+) (properties '((hidden? . #t))))) -(define-public glib-next - (package - (inherit glib) - (name "glib") - (version "2.73.3") - (source - (origin - (inherit (package-source glib)) - (uri - (string-append "mirror://gnome/sources/" - name "/" (string-take version 4) "/" - name "-" version ".tar.xz")) - (snippet - '(substitute* "glib/tests/spawn-test.c" - (("/bin/sh") "sh"))) - (sha256 - (base32 "1bgfch7zj1pq4rkqcibfky1470ijljyrx5pn5s5v9mk72s22n6nz")))) - (arguments - (substitute-keyword-arguments (package-arguments glib) - ((#:test-options test-options ''()) - ;; Skip flaky or slow tests. - `(cons* "--no-suite=slow" "--no-suite=flaky" ,test-options)) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (replace 'disable-failing-tests - (lambda _ - (with-directory-excursion "glib/tests" - (substitute* '("unix.c" "utils.c") - (("[ \t]*g_test_add_func.*;") ""))) - ;; The "glib:gio / file" test fails with the error "No - ;; application is registered as handling this file" (see: - ;; https://gitlab.gnome.org/GNOME/glib/-/issues/2742). - (with-directory-excursion "gio/tests" - (substitute* '("appinfo.c" - "contenttype.c" - "desktop-app-info.c" - "file.c" - "gdbus-address-get-session.c" - "gdbus-peer.c") - (("[ \t]*g_test_add_func.*;") ""))) - - #$@(if (target-x86-32?) - ;; Comment out parts of timer.c that fail on i686 due to - ;; excess precision when building with GCC 10: - ;; <https://gitlab.gnome.org/GNOME/glib/-/issues/820>. - '((substitute* "glib/tests/timer.c" - (("^ g_assert_cmpuint \\(micros.*" all) - (string-append "//" all "\n")) - (("^ g_assert_cmpfloat \\(elapsed, ==.*" all) - (string-append "//" all "\n")))) - '()) - #$@(if (system-hurd?) - '((with-directory-excursion "gio/tests" - ;; FAIL - (substitute* '("appmonitor.c" - "gdbus-server-auth.c" - "live-g-file.c" - "socket.c") - (("return (g_test_run|session_bus_run)" all call) - (string-append "return 0;// " call)) - ((" (ret|rtv|result) = (g_test_run|session_bus_run)" - all var call) - (string-append " " var " = 0;// " call)) - (("[ \t]*g_test_add_func.*;") "")))) - '()))))))) - (native-inputs - (modify-inputs (package-native-inputs glib) - (append desktop-file-utils))) - (propagated-inputs - (modify-inputs (package-propagated-inputs glib) - (replace "pcre" pcre2))))) - (define-public glib-with-documentation ;; glib's doc must be built in a separate package since it requires gtk-doc, ;; which in turn depends on glib. - (package/inherit glib - (properties (alist-delete 'hidden? (package-properties glib))) - (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference - (native-inputs - (modify-inputs (package-native-inputs glib) - (prepend docbook-xml-4.2 - docbook-xml - docbook-xsl - gtk-doc - libxml2 - libxslt))) - (arguments - (substitute-keyword-arguments (package-arguments glib) - ((#:configure-flags flags ''()) - #~(cons "-Dgtk_doc=true" - (delete "-Dman=false" #$flags))) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'install 'move-doc - (lambda _ - (let ((html "/share/gtk-doc")) - (mkdir-p (string-append #$output:doc "/share")) - (rename-file - (string-append #$output html) - (string-append #$output:doc html))))))))))) + (let ((base glib)) + (package/inherit base + (properties (alist-delete 'hidden? (package-properties base))) + (outputs (cons "doc" (package-outputs base))) ; 20 MiB of GTK-Doc reference + (native-inputs + `(("docbook-xml-4.2" ,docbook-xml-4.2) + ("docbook-xml-4.5" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("gtk-doc" ,gtk-doc) + ("libxml2" ,libxml2) + ("xsltproc" ,libxslt) + ,@(package-native-inputs base))) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:configure-flags flags ''()) + #~(cons "-Dgtk_doc=true" + (delete "-Dman=false" #$flags))) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs" + (substitute* (find-files "." "\\.xml$") + (("http://www.oasis-open.org/docbook/xml/4\\.5/") + (string-append (assoc-ref inputs "docbook-xml-4.5") + "/xml/dtd/docbook/")) + (("http://www.oasis-open.org/docbook/xml/4\\.2/") + (string-append (assoc-ref inputs "docbook-xml-4.2") + "/xml/dtd/docbook/")))))) + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (html (string-append "/share/gtk-doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out html) + (string-append doc html)))))))))))) (define (python-extension-suffix python triplet) "Determine the suffix for C extensions for PYTHON when compiled @@ -622,14 +586,14 @@ be used when cross-compiling." (define gobject-introspection (package (name "gobject-introspection") - (version "1.72.0") + (version "1.78.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "1g5aps3b20ck96ahy7fjl4nhp9nabkd9rlqd0s1qzn3111cqxzh2")) + (base32 "1d0vhi83q0xc7kg3zn32wy7n16f3dd5blicyh5v8w9gpkbcsnyxx")) (patches (search-patches "gobject-introspection-cc.patch" "gobject-introspection-girepository.patch" @@ -723,10 +687,7 @@ provide bindings to call into the C library.") (patches (search-patches "gobject-introspection-cc-1.72.patch" "gobject-introspection-girepository.patch" - "gobject-introspection-absolute-shlib-path-1.72.patch")))) - (propagated-inputs - (modify-inputs (package-propagated-inputs gobject-introspection) - (replace "glib" glib-next))))) + "gobject-introspection-absolute-shlib-path-1.72.patch")))))) (define intltool (package @@ -825,7 +786,7 @@ translated.") (define dbus-glib (package (name "dbus-glib") - (version "0.110") + (version "0.112") (source (origin (method url-fetch) (uri @@ -833,7 +794,7 @@ translated.") version ".tar.gz")) (sha256 (base32 - "09g8swvc95bk1z6j8sw463p2v0dqmgm2zjfndf7i8sbcyq67dr3w")))) + "0fhlkdqyzbh89bdslwsfc5fbdvkiv6g840ami4rnwa6dvz60smbx")))) (build-system gnu-build-system) (arguments (if (%current-target-system) @@ -861,7 +822,7 @@ by GDBus included in Glib.") (define-public libaccounts-glib (package (name "libaccounts-glib") - (version "1.25") + (version "1.26") (source (origin (method git-fetch) (uri (git-reference @@ -870,7 +831,7 @@ by GDBus included in Glib.") (file-name (git-file-name name version)) (sha256 (base32 - "19rhk9f97m736d5ia26vfcbjp5kgi454558yhf9mrwm4iw5d9pk4")))) + "1fdvvzbz23q5c0jnzryinkmcymd0zcs2pdn4fvibg34pvybb4li9")))) (build-system meson-build-system) (native-inputs (list dbus `(,glib "bin") @@ -914,7 +875,7 @@ credentials and service-specific settings.") (define libsigc++ (package (name "libsigc++") - (version "3.0.6") + (version "3.6.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -922,7 +883,7 @@ credentials and service-specific settings.") name "-" version ".tar.xz")) (sha256 (base32 - "1kn57b039lg20182lnchl1ys27vf34brn43f895cal8nc7sdq3mp")))) + "05qf10lp5vxsi5fbzdphqhbzmys12mxvg4gh14p9zqynvwvkpln3")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments @@ -985,7 +946,7 @@ libraries.") (define glibmm (package (name "glibmm") - (version "2.72.1") + (version "2.78.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -993,7 +954,7 @@ libraries.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "1n2w2pcpbxjbsxynmar3i5ibr7src6gnrdxb9nn57p5miai4jxia")))) + "0l7gld1ghynlxdm55l8dn3w4lfbwgrkw7flbdnh04vwrchjqfbjx")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments @@ -1034,23 +995,6 @@ libraries.") useful for C++.") (license license:lgpl2.1+))) -(define-public glibmm-next - (package - (inherit glibmm) - (version "2.76.0") - (name "glibmm") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/glibmm/" - (version-major+minor version) - "/glibmm-" version ".tar.xz")) - (sha256 - (base32 - "1cia8vrpwzn8zwalws42mga5hi965840m5s8dvfzv55xx86dhdw6")))) - (propagated-inputs - (modify-inputs (package-propagated-inputs glibmm) - (replace "glib" glib-next))))) - (define-public glibmm-2.64 (package (inherit glibmm) @@ -1072,7 +1016,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.42.2") + (version "3.46.0") (source (origin (method url-fetch) @@ -1080,32 +1024,31 @@ useful for C++.") (version-major+minor version) "/pygobject-" version ".tar.xz")) (sha256 - (base32 - "0my95gjnps093inzznbipkhf25cffbc32v9is2fq8wvh59g6ks5d")) + (base32 "1z6aagb46fhhdd0bb3zk6dfdw3s4y2fva0vv3jpwjj6mvar0hq22")) (modules '((guix build utils))) (snippet - '(begin - ;; We disable these tests in a snippet so that they are inherited - ;; by the Python 2 variant which is built differently. - (with-directory-excursion "tests" - ;; FIXME: These tests require Gdk and/or Gtk 4. - (for-each delete-file - '("test_atoms.py" "test_overrides_gtk.py")) - #t))))) + ;; We disable these tests in a snippet so that they are inherited + ;; by the Python 2 variant which is built differently. + #~(with-directory-excursion "tests" + ;; FIXME: These tests require Gdk and/or Gtk 4. + (for-each delete-file + '("test_atoms.py" "test_overrides_gtk.py" + "test_overrides_gdk.py")))))) (build-system meson-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; The default 90 seconds can be too low on slower machines. - (invoke "meson" "test" "--timeout-multiplier" "5"))))))) + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; The default 90 seconds can be too low on slower machines. + (invoke "meson" "test" "--timeout-multiplier" "5"))))))) (native-inputs - `(("glib-bin" ,glib "bin") - ("pkg-config" ,pkg-config) - ("python-pytest" ,python-pytest) - ("python-wrapper" ,python-wrapper))) ; For patching shebangs + (list `(,glib "bin") + pkg-config + python-pytest + python-wrapper)) ; For patching shebangs (inputs (list python python-pycairo gobject-introspection)) (propagated-inputs @@ -1124,7 +1067,7 @@ useful for C++.") (define-public perl-glib (package (name "perl-glib") - (version "1.3293") + (version "1.3294") (source (origin (method url-fetch) (uri (string-append @@ -1132,7 +1075,7 @@ useful for C++.") version ".tar.gz")) (sha256 (base32 - "005m3inz12xcsd5sr056cm1kbhmxsx2ly88ifbdv6p6cwz0s05kk")))) + "1fsw9sjfz1irlhnsk5n1xpb181vvq1dsxrw5vrsp066cdflga5fp")))) (build-system perl-build-system) (native-inputs (list perl-extutils-depends perl-extutils-pkgconfig)) @@ -1150,14 +1093,14 @@ up the Gnome environment, and are used in many unrelated projects.") (define-public perl-glib-object-introspection (package (name "perl-glib-object-introspection") - (version "0.049") + (version "0.051") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/" "Glib-Object-Introspection-" version ".tar.gz")) (sha256 - (base32 "0mxg6pz8qfyipw0ypr54alij0c4adzg94f62702b2a6hkp5jhij6")))) + (base32 "12802l87mx65lswiwlc394fkb74cmsqn88n2qy119b40rhfn2sb5")))) (build-system perl-build-system) (native-inputs (list perl-extutils-depends perl-extutils-pkgconfig)) @@ -1195,6 +1138,11 @@ libraries. Examples include gtk+, webkit, libsoup and many more.") ;; EOFError: EOF read where object expected ;; make[2]: *** [Makefile:1906: _gen/register-dbus-glib-marshallers-body.h] Error 1 #:parallel-build? #f + ;; When spawned in parallel, the dbus daemons may fail to shut down + ;; cleanly. This issue appears to have been closed upstream due to low + ;; information, but still continues to haunt folks. See also + ;; <https://gitlab.freedesktop.org/telepathy/telepathy-glib/-/issues/134>. + #:parallel-tests? #f #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests @@ -1321,7 +1269,7 @@ Some codes examples can be find at: ;; file. (package (name "sdbus-c++") - (version "1.3.0") + (version "1.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -1330,7 +1278,7 @@ Some codes examples can be find at: (file-name (git-file-name name version)) (sha256 (base32 - "03maivi3nj4g5wcydk9ih703ivmqkc93yip47wlyjni6dhikzzsb")))) + "111l2rl0pg9r5cdrhqpac4v22cnq41skxxfk3cng81l0n05v1sh0")))) (build-system cmake-build-system) (arguments (list @@ -1359,7 +1307,7 @@ of abstraction on top of @code{sd-bus}, the C D-Bus implementation by systemd.") (define-public appstream-glib (package (name "appstream-glib") - (version "0.7.18") + (version "0.8.2") (source (origin (method url-fetch) (uri (string-append "https://people.freedesktop.org/~hughsient/" @@ -1367,45 +1315,47 @@ of abstraction on top of @code{sd-bus}, the C D-Bus implementation by systemd.") "appstream-glib-" version ".tar.xz")) (sha256 (base32 - "00j0kkgf224nzmrha72g8pd72mymhph7vaisj35i4ffy7cpd47na")))) + "15lbrmyx94cf6p6svq02yiskh31xidq092c711pqs16mml06a9bi")))) (build-system meson-build-system) (native-inputs - `(("gettext" ,gettext-minimal) - ("gsettings" ,gsettings-desktop-schemas) ; for ‘org.gnome.system.proxy’ - ("glib:bin" ,glib "bin") ; for glib-compile-resources - ("pkg-config" ,pkg-config))) + (list gettext-minimal + `(,glib "bin") ;for glib-compile-resources + gsettings-desktop-schemas ;for ‘org.gnome.system.proxy’ + pkg-config)) (propagated-inputs - `(("gcab" ,gcab) ; for .pc file - ("gdk-pixbuf" ,gdk-pixbuf) ; for .pc file - ("libuuid" ,util-linux "lib"))) ; for .pc file + (list gcab ;for .pc file + gdk-pixbuf ;same + `(,util-linux "lib"))) ;libuuid, for .pc file (inputs - `(("glib" ,glib) - ("gperf" ,gperf) - ("gtk+" ,gtk+) - ("json-glib" ,json-glib) - ("libarchive" ,libarchive) - ("libsoup" ,libsoup-minimal-2))) + (list curl + gperf + gtk+ + json-glib + libarchive + glib)) (arguments - `(#:configure-flags - (list "-Ddep11=false" - "-Dintrospection=false" ; avoid g-ir-scanner dependency - "-Drpm=false" - "-Dstemmer=false") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-tests - (lambda _ - (substitute* "libappstream-glib/as-self-test.c" - (("g_test_add_func.*as_test_store_local_appdata_func);") "")) - #t)) - (add-before 'check 'set-home - (lambda _ - ;; Some tests want write access there. - (setenv "HOME" "/tmp")))))) + (list + #:configure-flags + #~(list "-Ddep11=false" + "-Dintrospection=false" ; avoid g-ir-scanner dependency + "-Drpm=false" + "-Dstemmer=false") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "libappstream-glib/as-self-test.c" + (("g_test_add_func.*as_test_store_local_appdata_func);") "")))) + (add-before 'check 'set-home + (lambda _ + ;; Some tests want write access there. + (setenv "HOME" "/tmp")))))) (home-page "https://github.com/hughsie/appstream-glib") (synopsis "Library for reading and writing AppStream metadata") - (description "This library provides objects and helper methods to help -reading and writing @uref{https://www.freedesktop.org/wiki/Distributions/AppStream,AppStream} + (description + "This library provides objects and helper methods to help +reading and writing +@uref{https://www.freedesktop.org/wiki/Distributions/AppStream,AppStream} metadata.") (license license:lgpl2.1+))) @@ -1464,7 +1414,7 @@ other API remains the same.") (define-public template-glib (package (name "template-glib") - (version "3.34.0") + (version "3.36.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1472,21 +1422,18 @@ other API remains the same.") name "-" version ".tar.xz")) (sha256 (base32 - "1z9xkin5fyfh071ma9y045jcw83hgx33dfbjraw6cxk0qdmfysr1")))) + "00x5yq1yidxxv6hmlvblpp2k0vf60s0xzyi0psplbmss70bpl5iv")))) (build-system meson-build-system) (arguments - `(#:configure-flags '("-D" "enable_gtk_doc=true"))) - (inputs - `(("gettext" ,gettext-minimal) - ("glib" ,glib) - ("gobject-introspection" ,gobject-introspection))) + (list #:configure-flags #~'("-D" "gtk_doc=true"))) + (inputs (list gettext-minimal glib gobject-introspection)) (native-inputs - `(("bison" ,bison) - ("flex" ,flex) - ("glib:bin" ,glib "bin") ;; For glib-mkenums - ("gtk-doc" ,gtk-doc/stable) - ("pkg-config" ,pkg-config) - ("vala" ,vala))) + (list bison + flex + `(,glib "bin") ;for glib-mkenums + gtk-doc/stable + pkg-config + vala)) (home-page "https://gitlab.gnome.org/GNOME/template-glib") (synopsis "Library for template expansion") (description @@ -1501,7 +1448,7 @@ simple methods via GObject-Introspection.") (define-public xdg-dbus-proxy (package (name "xdg-dbus-proxy") - (version "0.1.2") + (version "0.1.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/flatpak/xdg-dbus-proxy" @@ -1509,7 +1456,7 @@ simple methods via GObject-Introspection.") "/xdg-dbus-proxy-" version ".tar.xz")) (sha256 (base32 - "03sj1h0c2l08xa8phw013fnxr4fgav7l2mkjhzf9xk3dykwxcj8p")))) + "1yv10v7gpv5z0iii7p3rs2h9wx6sigldycjlkpyyal06iapwy786")))) (build-system gnu-build-system) (native-inputs (list pkg-config diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 6b66658215..100018a2dc 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -1090,7 +1090,7 @@ dark, switch backgrounds and run custom commands at sunset and sunrise.") (search-patches "gpaste-fix-paths.patch")))) (build-system meson-build-system) (native-inputs - (list gcr + (list gcr-3 gettext-minimal gobject-introspection (list glib "bin") ; for glib-compile-resources diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index ac3035e07d..ab485cffb1 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -212,6 +212,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) #:use-module (gnu packages swig) + #:use-module (gnu packages telephony) #:use-module (gnu packages tex) #:use-module (gnu packages time) #:use-module (gnu packages tls) @@ -812,7 +813,7 @@ tomorrow, the rest of the week and for special occasions.") (define-public gnome-photos (package (name "gnome-photos") - (version "43.beta") ;for geocode-glib 2 support + (version "43.1") (source (origin (method url-fetch) @@ -822,7 +823,7 @@ tomorrow, the rest of the week and for special occasions.") name "-" version ".tar.xz")) (sha256 (base32 - "1pry45dy4sjw8y63vxw2b499brcxzpkd4hmg2vbqy538r79ah2g9")))) + "1axhabxrrmf4r2xw2hvrzwj62inkckpmrc0gfbjcrwic04d6gqgk")))) (build-system meson-build-system) (arguments (list @@ -856,7 +857,7 @@ tomorrow, the rest of the week and for special occasions.") (inputs (list babl cairo - gegl + gegl-0.4.44 geocode-glib gexiv2 gfbgraph @@ -1525,7 +1526,7 @@ extraction, and lookup for applications on the desktop.") (define-public gnome-initial-setup (package (name "gnome-initial-setup") - (version "42.2") + (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-initial-setup/" @@ -1533,7 +1534,7 @@ extraction, and lookup for applications on the desktop.") "/gnome-initial-setup-" version ".tar.xz")) (sha256 (base32 - "0yxy39a7d2whphd0jskvra5q8zy4v7m7lziy5fxibgls4j5xk0sd")))) + "1zxv0i6lwcnjs4m0ny08wxbfz25ygnwkbh4l3dkrhapqr1nzqg2r")))) (build-system meson-build-system) (arguments (list @@ -1557,28 +1558,27 @@ extraction, and lookup for applications on the desktop.") pkg-config)) (inputs (list accountsservice - cheese elogind gdm geoclue gnome-desktop - gnome-online-accounts-3.44 + gnome-online-accounts gstreamer ibus json-glib mit-krb5 + libadwaita libgnomekbd - libgweather4-with-libsoup2 - libhandy + libgweather4 libnma libpwquality libsecret network-manager packagekit polkit - rest + rest-next upower - webkitgtk-with-libsoup2)) + webkitgtk)) (synopsis "Initial setup wizard for GNOME desktop") (description "This package provides a set-up wizard when a user logs into GNOME for the first time. It typically provides a @@ -1666,7 +1666,7 @@ sharing to the masses.") libmusicbrainz libxml2 neon - webkitgtk)) + webkitgtk-for-gtk3)) (synopsis "File previewer for the GNOME desktop") (description "Sushi is a DBus-activated service that allows applications to preview files on the GNOME desktop.") @@ -1776,7 +1776,7 @@ client devices can handle.") pkg-config vala)) (inputs - (list gcr + (list gcr-3 (if (supported-package? gtk) gtk gtk+) iso-codes mobile-broadband-provider-info @@ -2022,7 +2022,7 @@ formats like PNG, SVG, PDF and EPS.") (inputs (list cyrus-sasl glib-networking vala)) (propagated-inputs - `(("gcr" ,gcr) + `(("gcr" ,gcr-3) ("glib" ,glib) ("gnome-online-accounts" ,gnome-online-accounts) ("json-glib" ,json-glib) @@ -2192,7 +2192,7 @@ offline sources, providing a centralized place for managing your contacts.") (define-public gnome-desktop (package (name "gnome-desktop") - (version "42.4") + (version "44.0") (source (origin (method url-fetch) @@ -2201,7 +2201,7 @@ offline sources, providing a centralized place for managing your contacts.") name "-" version ".tar.xz")) (sha256 (base32 - "09ddr5fzhh02fcn7xl1wy18qfsdqryd5msl2nbhdnsbr0vawkqhw")))) + "0hlxqprraiwnccf98dykbhx80j31c3scdi7i3jy19fl4bms77is2")))) (build-system meson-build-system) (arguments '(#:phases @@ -2245,7 +2245,7 @@ offline sources, providing a centralized place for managing your contacts.") xorg-server-for-tests)) (propagated-inputs ;; Required by gnome-desktop-3.0.pc. - (list gsettings-desktop-schemas-next + (list gsettings-desktop-schemas gtk gtk+ iso-codes @@ -2374,7 +2374,7 @@ the font would look under various sizes.") (define-public gcr (package (name "gcr") - (version "3.41.1") + (version "4.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2382,7 +2382,7 @@ the font would look under various sizes.") name "-" version ".tar.xz")) (sha256 (base32 - "0kx2pv272p0qc0nq1287gciyn34d95yxg41vq3lzxfzyqaijhwdv")))) + "0z7cviri25qy2v042hw6x731bj1azpx8plrd7ssbmrqf9y95an64")))) (build-system meson-build-system) (arguments (list @@ -2395,11 +2395,11 @@ the font would look under various sizes.") (substitute* (find-files "." "^meson\\.build$") ((".*'--fatal-warnings',.*") "")))) (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 'check 'pre-check + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false")))) + (add-before 'check 'pre-check (lambda _ ;; Some tests expect to write to $HOME. (setenv "HOME" "/tmp"))) @@ -2433,11 +2433,9 @@ the font would look under various sizes.") pkg-config python-wrapper vala)) - ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc - (propagated-inputs - (list glib - gtk+ - p11-kit)) + ;; GLib and p11-kit are mentioned in gck.pc and gcr.pc + ;; GTK is kept for symmetry with gcr-3, which propagates gtk+. + (propagated-inputs (list glib gtk p11-kit)) (home-page "https://www.gnome.org") (synopsis "Libraries for displaying certificates and accessing key stores") (description @@ -2446,6 +2444,31 @@ accessing key stores. It also provides the viewer for crypto files on the GNOME Desktop.") (license license:lgpl2.1+))) +(define-public gcr-3 + (package + (inherit gcr) + (name "gcr") + (version "3.41.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0kx2pv272p0qc0nq1287gciyn34d95yxg41vq3lzxfzyqaijhwdv")))) + (arguments + (substitute-keyword-arguments (package-arguments gcr) + ((#:phases phases) + #~(modify-phases #$phases + (replace 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "meson_post_install.py" + (("gtk-update-icon-cache") "true")))))))) + ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc + (propagated-inputs (list glib gtk+ p11-kit)))) + (define-public gdl (package (name "gdl") @@ -2571,7 +2594,7 @@ GNOME Desktop.") "1")))))))) (inputs (list dbus - gcr + gcr-3 libgcrypt linux-pam openssh)) @@ -2588,7 +2611,7 @@ GNOME Desktop.") pkg-config python-wrapper)) ;for tests (propagated-inputs - (list gcr)) + (list gcr-3)) ;; XXX: There are concerning test failures on i686-linux and other 32-bit ;; platforms: <https://gitlab.gnome.org/GNOME/gnome-keyring/-/issues/124>. @@ -2680,7 +2703,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "42.0") + (version "44.0") (source (origin (method url-fetch) @@ -2689,7 +2712,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6")))) + "03pc3wlfmf07586x89h63fr42pdpvqx64ak4ks298nchmmff8bgb")))) (build-system meson-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -2716,21 +2739,6 @@ on the GNOME Desktop with a single simple application.") schemas for settings shared by various components of the GNOME desktop.") (license license:lgpl2.1+))) -(define-public gsettings-desktop-schemas-next - (package - (inherit gsettings-desktop-schemas) - (name "gsettings-desktop-schemas-next") ;to avoid propagation conflicts - (version "42.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6")))))) - (define-public python-liblarch (package (name "python-liblarch") @@ -2868,7 +2876,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.") (define-public adwaita-icon-theme (package (name "adwaita-icon-theme") - (version "43") + (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2876,7 +2884,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.") name "-" version ".tar.xz")) (sha256 (base32 - "1iiflc6rfpshipl23mszlv2lzm8d1a7pxwsx2ma5bam669ywffif")))) + "0k3638gkdpjcr9pbsmpfj7vdqdm9s04j4d5sh1fx5v5z3dhcb2a8")))) (build-system gnu-build-system) (arguments (list #:make-flags @@ -2916,39 +2924,6 @@ GNOME and KDE desktops to the icon names proposed in the specification.") guidelines.") (license license:public-domain))) -(define-public shared-mime-info - (package - (name "shared-mime-info") - (version "1.15") - (source (origin - (method url-fetch) - (uri (string-append - "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/" - "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version - ".tar.xz")) - (sha256 - (base32 - "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl")))) - (build-system gnu-build-system) - (arguments - ;; The build system appears not to be parallel-safe. - '(#:parallel-build? #f)) - (inputs - (list glib libxml2)) - (native-inputs - `(("gettext" ,gettext-minimal) - ("itstool" ,itstool) - ("pkg-config" ,pkg-config))) - (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info") - (synopsis "Database of common MIME types") - (description - "The shared-mime-info package contains the core database of common types -and the update-mime-database command used to extend it. It requires glib2 to -be installed for building the update command. Additionally, it uses intltool -for translations, though this is only a dependency for the maintainers. This -database is translated at Transifex.") - (license license:gpl2+))) - (define-public system-config-printer (package (name "system-config-printer") @@ -3395,7 +3370,7 @@ compiles to GTKBuilder XML.") python-pygobject python-lxml webkitgtk - webkitgtk-next)) + webkitgtk)) (native-inputs (list `(,glib "bin") gobject-introspection @@ -4423,7 +4398,7 @@ engineering.") (setenv "HOME" (getcwd))))))) (inputs (list gtk+ - gcr + gcr-3 gnupg gpgme openldap @@ -4451,7 +4426,7 @@ passwords in the GNOME keyring.") (define-public vala (package (name "vala") - (version "0.56.3") + (version "0.56.13") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/vala/" @@ -4459,7 +4434,7 @@ passwords in the GNOME keyring.") "vala-" version ".tar.xz")) (sha256 (base32 - "1gwrnr0d0bqkh6m4bgz39mh3pcswcj43hyijlwgwp2bvpwhn41p1")))) + "01xfarnhpp30wmv9mwayw8751glwppl0sva79j3y9qf76qq25229")))) (build-system glib-or-gtk-build-system) (arguments (list @@ -4519,7 +4494,7 @@ targeting the GNOME stack simple.") (define-public vte (package (name "vte") - (version "0.70.2") + (version "0.72.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/vte/" @@ -4527,7 +4502,7 @@ targeting the GNOME stack simple.") "vte-" version ".tar.xz")) (sha256 (base32 - "102d6cd9f96czlq01ixhymfp0z20khw0dl5bgvan9xg31lwb85ad")))) + "17hwfkb0vakjgf1gbmjma54hdrppzqfbfqj1jr9iz656hp8nz5pp")))) (build-system meson-build-system) (arguments (list #:configure-flags #~(list "-Dvapi=true" @@ -4970,7 +4945,7 @@ libxml to ease remote use of the RESTful API.") (define-public libshumate (package (name "libshumate") - (version "1.0.0.beta") ;no stable release yet + (version "1.0.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4978,25 +4953,35 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "13xrc07fm0967gzbqab8k0l3dnknh00p0a6f2dm7k0aa56q41sda")))) + "0v4m07vxm3m4a2vqkp2wfsc3zsf92fpigc1k8yq49vkpj7gxikx8")))) (build-system meson-build-system) - (arguments (list #:configure-flags #~(list "-Dlibsoup3=true") - #:phases #~(modify-phases %standard-phases - (add-before 'check 'pre-check - (lambda _ - ;; The 'coordinate' test requires a - ;; writable HOME. - (setenv "HOME" "/tmp") + (arguments + (list #:configure-flags #~(list "-Dlibsoup3=true") + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? test-options #:allow-other-keys) + (when tests? + ;; Some tests expect to write to $HOME. + (setenv "HOME" "/tmp") + (setenv "XDG_RUNTIME_DIR" "/tmp/run") + (setenv "XDG_CACHE_HOME" "/tmp/cache") + + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") - ;; Tests require a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1")))))) + (apply invoke "dbus-run-session" "--" "meson" "test" + "--print-errorlogs" test-options))))))) (native-inputs (list gi-docgen `(,glib "bin") gobject-introspection pkg-config - xorg-server-for-tests)) + ;; For tests: + xorg-server-for-tests + dbus + at-spi2-core)) (propagated-inputs ;; All the libraries are listed as "Requires' in the .pc file. (list cairo @@ -5078,7 +5063,7 @@ and the GLib main loop, to integrate well with GNOME applications.") (define-public libsoup-minimal-2 (package (inherit libsoup-minimal) - (version "2.74.2") + (version "2.74.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -5086,7 +5071,7 @@ and the GLib main loop, to integrate well with GNOME applications.") "libsoup-" version ".tar.xz")) (sha256 (base32 - "0n8is108n0dn4dw7nm2wq9rydcm1vy47w40wywfrxqazdrjjg97h")))) + "04rgv6hkyhgi7lak9865yxgbgky6gc635p7w6nhcbj64rx0prdz4")))) (arguments (substitute-keyword-arguments (package-arguments libsoup-minimal) ((#:phases phases) @@ -5402,7 +5387,7 @@ more fun.") (define-public gnome-console (package (name "gnome-console") - (version "42.2") + (version "44.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-console/" @@ -5410,28 +5395,20 @@ more fun.") "gnome-console-" version ".tar.xz")) (sha256 (base32 - "0jbh8g3hmc35fy5fbscqf0831xpg1kv66ci9hykpbia4hz0yc9kx")))) + "13asis4fabsm0wy3m6bk4k3bmnh6a9c9bwwpv6b3why0lvll87xr")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t - #:configure-flags #~(list "-Dtests=true" - "-Dnautilus=enabled") - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'patch-nautilus-extension-path - (lambda _ - (substitute* "nautilus/meson.build" - (("'extensions-[0-9.]*'") - "'site-extensions'"))))))) + #:configure-flags #~(list "-Dtests=true"))) (native-inputs (list `(,glib "bin") gettext-minimal sassc pkg-config `(,gtk+ "bin") desktop-file-utils)) - (inputs (list gtk+ - libhandy - nautilus - vte + (inputs (list gtk + libadwaita + vte-with-gtk-4 libgtop gsettings-desktop-schemas)) (home-page "https://gitlab.gnome.org/GNOME/console") @@ -5506,7 +5483,7 @@ keyboard shortcuts.") (define-public gnome-text-editor (package (name "gnome-text-editor") - (version "42.2") + (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-text-editor/" @@ -5514,7 +5491,7 @@ keyboard shortcuts.") "gnome-text-editor-" version ".tar.xz")) (sha256 (base32 - "1nn53iv2a82kkqkg5jy0bqh2b2wzg7g4a6w8q3qsis5wvj64lvg5")))) + "1jii59hw31baira2psl1kx2lxljmnnkxmif4zhasizrl0xwc6yzn")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t)) @@ -5526,7 +5503,12 @@ keyboard shortcuts.") `(,glib "bin") `(,gtk "bin") itstool)) - (inputs (list gtk gtksourceview libadwaita enchant)) + (inputs (list gtk gtksourceview libadwaita enchant pcre2 + ;; cyclic module dependency + (module-ref + (resolve-interface + '(gnu packages text-editors)) + 'editorconfig-core-c))) (home-page "https://gitlab.gnome.org/GNOME/gnome-text-editor") (synopsis "GNOME text editor") (description @@ -5746,7 +5728,7 @@ faster results and to avoid unnecessary server load.") (define-public upower (package (name "upower") - (version "1.90.0") + (version "1.90.2") (source (origin (method git-fetch) @@ -5755,7 +5737,7 @@ faster results and to avoid unnecessary server load.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1g17rm91p8vfpjyb0k2shylrs55nccn3fa890vlk4n9s71sghbzq")) + (base32 "13xp423ycv8imf2cmgf6lii9f01p7x2v19cny7acrmczkc0cqv7d")) (modules '((guix build utils))) (snippet ;; Upstream commit <https://cgit.freedesktop.org/upower/commit/ @@ -5778,19 +5760,25 @@ faster results and to avoid unnecessary server load.") ;; If not specified, udev will try putting history information ;; in /gnu/store. "-Dhistorydir=/var/lib/upower" - (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d")) - #:phases (if (target-x86-32?) - #~(modify-phases %standard-phases - (add-after 'unpack 'adjust-test-for-excess-precision - (lambda _ - ;; Address test failure caused by excess precision - ;; on i686: - ;; <https://gitlab.freedesktop.org/upower/upower/-/issues/214>. - (substitute* "src/linux/integration-test.py" - (("assertEqual(.*)40\\.0" _ middle) - (string-append - "assertAlmostEqual" middle "40.0")))))) - #~%standard-phases))) + (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d") + (string-append "-Dudevhwdbdir=" #$output "/lib/udev/hwdb.d")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-test-suite + (lambda _ + ;; This test calls an unimplemented bluez dbus method. + (substitute* "src/linux/integration-test.py" + (("test_bluetooth_hidpp_mouse") + "disabled_test_bluetooth_hidpp_mouse")) + #$@(if (target-x86-32?) + ;; Address test failure caused by excess precision + ;; on i686: + ;; <https://gitlab.freedesktop.org/upower/upower/-/issues/214>. + '((substitute* "src/linux/integration-test.py" + (("assertEqual(.*)40\\.0" _ middle) + (string-append + "assertAlmostEqual" middle "40.0")))) + '())))))) (native-inputs (list `(,glib "bin") ; for gdbus-codegen gobject-introspection @@ -5804,12 +5792,13 @@ faster results and to avoid unnecessary server load.") python-packaging python-pygobject umockdev + dbus ;; For man pages. docbook-xsl libxslt ; for 'xsltproc' libxml2)) ; for 'XML_CATALOG_FILES' (inputs - (list dbus-glib libgudev libusb)) + (list libgudev libusb)) (propagated-inputs ;; In Requires of upower-glib.pc. (list glib)) @@ -5934,22 +5923,10 @@ services for numerous locations.") libsoup libxml2)))) -(define-public libgweather4-with-libsoup2 - (package - (inherit libgweather4) - (name "libgweather4-with-libsoup2") - (arguments (substitute-keyword-arguments (package-arguments libgweather4) - ((#:configure-flags flags) - #~(cons "-Dsoup2=true" #$flags)))) - (propagated-inputs - (modify-inputs (package-propagated-inputs libgweather4) - (replace "geocode-glib" geocode-glib-with-libsoup2) - (replace "libsoup" libsoup-minimal-2))))) - (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "42.2") + (version "44.1") (source (origin (method url-fetch) @@ -5958,7 +5935,7 @@ services for numerous locations.") name "-" version ".tar.xz")) (sha256 (base32 - "005b1dvrfcyr6n4srl6c0lzr95c18prps4xm1lf2ghcfm8a9fi4w")) + "129rjhr2kvfd37fingz8737brh8a874hlw3xlh01658zv1r3nr8j")) (patches (search-patches "gnome-settings-daemon-gc.patch")))) (build-system meson-build-system) (arguments @@ -6003,13 +5980,13 @@ services for numerous locations.") cups gcr geoclue - geocode-glib-with-libsoup2 + geocode-glib gnome-desktop - gsettings-desktop-schemas-next + gsettings-desktop-schemas lcms libcanberra libgudev - libgweather4-with-libsoup2 + libgweather4 libnotify (librsvg-for-system) libwacom @@ -6154,7 +6131,7 @@ both a traditional UI or a modern UI with a GtkHeaderBar.") pkg-config)) (inputs (list amtk - webkitgtk)) + webkitgtk-for-gtk3)) (home-page "https://wiki.gnome.org/Apps/Devhelp") (synopsis "API documentation browser for GNOME") (description @@ -6167,7 +6144,7 @@ throughout GNOME for API documentation).") (hidden-package (package/inherit devhelp (inputs (modify-inputs (package-inputs devhelp) - (replace "webkitgtk" webkitgtk-with-libsoup2)))))) + (replace "webkitgtk-for-gtk3" webkitgtk-with-libsoup2)))))) (define-public cogl (package @@ -6180,7 +6157,9 @@ throughout GNOME for API documentation).") (version-major+minor version) "/" "cogl-" version ".tar.xz")) (sha256 - (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8")))) + (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8")) + (patches + (search-patches "cogl-fix-double-free.patch")))) ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to ;; cogl, corresponding changes may be appropriate in mutter as well. (build-system gnu-build-system) @@ -6265,8 +6244,6 @@ without stepping on each others toes.") (sha256 (base32 "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b")))) - ;; NOTE: mutter exports a bundled fork of clutter, so when making changes - ;; to clutter, corresponding changes may be appropriate in mutter as well. (build-system gnu-build-system) (outputs '("out" "doc")) ;9 MiB of gtk-doc HTML pages @@ -6639,7 +6616,7 @@ discovery protocols.") (define-public totem (package (name "totem") - (version "42.0") + (version "43.0") (source (origin (method url-fetch) @@ -6647,7 +6624,7 @@ discovery protocols.") (version-major version) "/" "totem-" version ".tar.xz")) (sha256 - (base32 "1az6ay7zhz2naqrzcfldx1yv2ylw1yjx76g3mqrqppwmvcflkw2a")))) + (base32 "07m4jiry78m85sqcx7f9r7dkfvfnd8xzhfad5939cn4bj9akcvdk")))) (build-system meson-build-system) (native-inputs (list pkg-config @@ -6701,8 +6678,9 @@ discovery protocols.") (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")))) + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false")))) (add-before 'install 'disable-cache-generation (lambda _ (setenv "DESTDIR" "/"))) @@ -6929,14 +6907,14 @@ side panel; (define-public libgudev (package (name "libgudev") - (version "236") + (version "238") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5")))) + "1laxgdkgmr30aw44sm4rgpsdybwxx5rszcm8c2y3vmy9myqnl9k1")))) (build-system meson-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. @@ -6988,7 +6966,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") dbus elogind fuse - gcr + gcr-3 glib gnome-online-accounts gsettings-desktop-schemas @@ -7117,7 +7095,7 @@ almost all of them.") (define-public epiphany (package (name "epiphany") - (version "42.4") + (version "42.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/epiphany/" @@ -7125,7 +7103,7 @@ almost all of them.") "epiphany-" version ".tar.xz")) (sha256 (base32 - "0q08ixzgp341g5pq6rfy5q75m9bvddvl8na3qa5v5vi056nkh29p")))) + "0mln4iym0fqkri959650cccdhq3r4d4kfn8yld0vvdmzskmak4a6")))) (build-system meson-build-system) (arguments (list @@ -7166,7 +7144,7 @@ almost all of them.") xorg-server-for-tests)) (inputs (list avahi - gcr + gcr-3 glib-networking gnome-desktop gsettings-desktop-schemas @@ -7183,7 +7161,7 @@ almost all of them.") libxslt nettle ; for hogweed sqlite - webkitgtk)) + webkitgtk-for-gtk3)) (home-page "https://wiki.gnome.org/Apps/Web") (synopsis "GNOME web browser") (description @@ -7453,7 +7431,7 @@ classes for commonly used data structures.") (define-public gexiv2 (package (name "gexiv2") - (version "0.14.0") + (version "0.14.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7461,7 +7439,7 @@ classes for commonly used data structures.") name "-" version ".tar.xz")) (sha256 (base32 - "17nnsslj2wpizpx742w5lxdzcz5mx6jmsqcrli7zddi0zyk7k0p5")))) + "1gp07klqixpxjqiv84i2gmkb1pcf1gagyrl800sk92xyizs9q31a")))) (build-system meson-build-system) (arguments (list @@ -7469,14 +7447,11 @@ classes for commonly used data structures.") (guix build python-build-system)) #:modules '((guix build meson-build-system) ((guix build python-build-system) #:prefix python:) - (guix build utils)) - #:configure-flags - #~(list (string-append "-Dpython3_girdir=" - (python:site-packages %build-inputs %outputs) - "/gi/overrides")))) + (guix build utils)))) (native-inputs - (list gcr + (list gcr-3 `(,glib "bin") + gobject-introspection pkg-config python python-pygobject @@ -7485,8 +7460,7 @@ classes for commonly used data structures.") ;; Listed in "Requires" section of gexiv2.pc (list exiv2)) (inputs - (list glib - gobject-introspection)) + (list glib)) (home-page "https://wiki.gnome.org/Projects/gexiv2") (synopsis "GObject wrapper around the Exiv2 photo metadata library") (description @@ -7527,7 +7501,7 @@ metadata in photo and video files of various formats.") python vala)) (inputs - (list gcr + (list gcr-3 gexiv2 gst-plugins-base gstreamer @@ -7596,7 +7570,7 @@ such as gzip tarballs.") (define-public gnome-session (package (name "gnome-session") - (version "42.0") + (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7605,7 +7579,7 @@ such as gzip tarballs.") (patches (search-patches "gnome-session-support-elogind.patch")) (sha256 (base32 - "1alwjqr36rd0s132qs2clwnxgilcbylps6lm41lr50mn782hdjiw")))) + "1ipjvcjabifqgmrz65m3vwmhk99nbm8jcxcikyg5w4r6cnljky6c")))) (arguments `(#:glib-or-gtk? #t #:phases @@ -7656,8 +7630,7 @@ configuration program to choose applications starting on login.") (define-public gjs (package (name "gjs") - ;; Note: We use a pre-release for compatibility with recent LibFFI. - (version "1.73.2") + (version "1.76.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7665,7 +7638,7 @@ configuration program to choose applications starting on login.") name "-" version ".tar.xz")) (sha256 (base32 - "0xfspsc1q4xm7p500lmy17b9csyaqps1kilylq8wjjd0fjqq8ayg")) + "1m15qscx2z862gfkb9pxg30bz8ka0h774l2azs5dfvzaagbckn7p")) (modules '((guix build utils))) (snippet '(begin @@ -7812,7 +7785,7 @@ to display dialog boxes from the commandline and shell scripts.") (define-public mutter (package (name "mutter") - (version "42.4") + (version "44.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7820,7 +7793,7 @@ to display dialog boxes from the commandline and shell scripts.") name "-" version ".tar.xz")) (sha256 (base32 - "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62")) + "0l85qyn6x5hyaaclzcbqd44xpd582gdindqfam8f9lsh46zvwp0q")) ;; TODO: Remove on update as this was merged upstream. See ;; <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>. (patches (search-patches "mutter-fix-inverted-test.patch")))) @@ -7840,7 +7813,7 @@ to display dialog boxes from the commandline and shell scripts.") ;; Otherwise, the RUNPATH will lack the final path component. (string-append "-Dc_link_args=-Wl,-rpath=" #$output "/lib,-rpath=" - #$output "/lib/mutter-10") + #$output "/lib/mutter-12") ;; Disable systemd support. "-Dsystemd=false" ;; Don't install tests. @@ -7963,7 +7936,7 @@ to display dialog boxes from the commandline and shell scripts.") python-dbus python-dbusmock)) (propagated-inputs - (list gsettings-desktop-schemas-next ;required by libmutter.pc + (list gsettings-desktop-schemas ;required by libmutter.pc gtk+ ;required by libmutter.pc ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these: at-spi2-core @@ -7986,7 +7959,8 @@ to display dialog boxes from the commandline and shell scripts.") pango xinput)) (inputs - (list egl-wayland ;for wayland-eglstream-protocols + (list colord + egl-wayland ;for wayland-eglstream-protocols elogind gnome-desktop gnome-settings-daemon @@ -8018,7 +7992,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.45.2") + (version "3.48.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -8026,16 +8000,18 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "15zzzndbfba8a497vxb6cmy1y22l3lfn4sx9s9r59kwzd83i6fxn")))) + "1gvmc4k5vm4qd97yfkd5a4sixz0pfq9nblss42c2mmyvzzybk2s1")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t #:phases #~(modify-phases %standard-phases - (add-before 'install 'disable-gtk-update-icon-cache + (add-after 'unpack 'disable-gtk-update-icon-cache (lambda _ - (setenv "DESTDIR" "/")))))) + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false"))))))) (native-inputs (list gettext-minimal `(,glib "bin") ; for glib-compile-schemas, etc. @@ -8048,12 +8024,12 @@ window manager.") gtk+)) ; required by goa-backend-1.0.pc (inputs (list docbook-xsl - gcr + gcr-3 json-glib libsecret mit-krb5 rest-next - webkitgtk)) + webkitgtk-for-gtk3)) (synopsis "Single sign-on framework for GNOME") (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts") (description @@ -8086,12 +8062,12 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (delete 'disable-gtk-update-icon-cache))))) (inputs (modify-inputs (package-inputs gnome-online-accounts) (replace "rest" rest) - (replace "webkitgtk" webkitgtk-with-libsoup2))))) + (replace "webkitgtk-for-gtk3" webkitgtk-with-libsoup2))))) (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.46.4") + (version "3.48.4") (source (origin (method url-fetch) @@ -8099,7 +8075,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1j0c7kwmjng7spkqz6vfd8gyvw65invjsf5mqzbsr7y58m0jb6x5")))) + (base32 "0q3d5masw20sr6xm2rg3170a4pxsh23ywyq1rkzhmyvyn69kyzlr")))) (build-system cmake-build-system) (arguments (list @@ -8164,7 +8140,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (inputs (list bdb boost - gcr + gcr-3 gnome-online-accounts json-glib libcanberra @@ -8172,7 +8148,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") libphonenumber mit-krb5 openldap - webkitgtk)) + webkitgtk-for-gtk3)) (synopsis "Store address books and calendars") (home-page "https://wiki.gnome.org/Apps/Evolution") (description @@ -8199,7 +8175,7 @@ Evolution (hence the name), but is now used by other packages as well.") (modify-inputs (package-inputs evolution-data-server) (replace "gnome-online-accounts" gnome-online-accounts-3.44) (replace "libgweather4" libgweather) - (replace "webkitgtk" webkitgtk-with-libsoup2))) + (replace "webkitgtk-for-gtk3" webkitgtk-with-libsoup2))) (propagated-inputs (modify-inputs (package-propagated-inputs evolution-data-server) (delete "gtk") @@ -8564,7 +8540,7 @@ Compatible with Cisco VPN concentrators configured to use IPsec.") libnma pkg-config)) (inputs - (list gcr + (list gcr-3 gtk gtk+ kmod @@ -8695,7 +8671,7 @@ to virtual private networks (VPNs) via Fortinet SSLVPN.") ;; nm-applet need by org.gnome.nm-applet.gschema.xml libnma)) (inputs - (list gcr + (list gcr-3 libappindicator libgudev libsecret @@ -8766,7 +8742,7 @@ library.") (define-public gdm (package (name "gdm") - (version "42.0") + (version "44.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -8774,7 +8750,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53")) + "03avvkrm2jd0731ggh9cjnkhrfysqp4slrq0km3gqa3xpqx6n9k8")) (patches (search-patches "gdm-default-session.patch" @@ -8967,6 +8943,7 @@ logo='~a'~%" icon)))))) (list accountsservice check ;for testing dbus + egl-wayland elogind eudev gnome-session @@ -9010,7 +8987,7 @@ usage and information about running processes.") (define-public gnome-bluetooth (package (name "gnome-bluetooth") - (version "42.4") + (version "42.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-bluetooth/" @@ -9018,7 +8995,7 @@ usage and information about running processes.") "gnome-bluetooth-" version ".tar.xz")) (sha256 (base32 - "1p5wq3rh9p7fhka57qcds6lvphd26yyc18ilncx95jbcvcfcyvqx")))) + "1l2rp8nwsn9mbdj3gv3z4ks0q0jrbavh28mn4vdib1vi3rpzwr2q")))) (build-system meson-build-system) (native-inputs (list gettext-minimal @@ -9049,7 +9026,7 @@ devices using the GNOME desktop.") (define-public gnome-control-center (package (name "gnome-control-center") - (version "42.4") + (version "44.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -9057,7 +9034,10 @@ devices using the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1ln5rch6zbfh3vl2nnnmw39bylgg38rin6xp7ra0ra4ay3wv3gvs")))) + "0yhcm0c0ghkfqswqlkwcln3jpaz6jzvqaph2c3lgmv635w2nash6")) + (patches + (search-patches + "gnome-control-center-firmware-security.patch")))) (build-system meson-build-system) (arguments (list @@ -9081,19 +9061,32 @@ devices using the GNOME desktop.") "panels/network/connection-editor/net-connection-editor.c") (("\"nm-connection-editor") (string-append "\"" (search-input-file - inputs "bin/nm-connection-editor")))) - (substitute* "panels/user-accounts/run-passwd.c" - (("/usr/bin/passwd") - "/run/setuid-programs/passwd")) - (substitute* "panels/info-overview/cc-info-overview-panel.c" - (("DATADIR \"/gnome/gnome-version.xml\"") - (format #f "~s" (search-input-file - inputs "share/gnome/gnome-version.xml")))))) + inputs "bin/nm-connection-editor")))))) (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")))))))) + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false")))) + (replace 'check + (lambda* (#:key parallel-tests? tests? #:allow-other-keys) + (when tests? + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + ;; For the missing /var/lib/dbus/machine-id + (setenv "DBUS_FATAL_WARNINGS" "0") + (setenv "NO_AT_BRIDGE" "1") + (setenv "HOME" "/tmp") + (setenv "XDG_RUNTIME_DIR" (string-append (getcwd) "/runtime-dir")) + (mkdir (getenv "XDG_RUNTIME_DIR")) + (chmod (getenv "XDG_RUNTIME_DIR") #o700) + (setenv "MESON_TESTTHREADS" + (if parallel-tests? + (number->string (parallel-job-count)) + "1")) + (invoke "dbus-run-session" "--" + "meson" "test" "-t" "0"))))))) (native-inputs (list docbook-xsl gettext-minimal @@ -9102,13 +9095,14 @@ devices using the GNOME desktop.") pkg-config python python-dbusmock - xorg-server-for-tests)) + xorg-server-for-tests + setxkbmap)) (inputs (list accountsservice colord-gtk cups dconf - gcr + gcr-3 gnome-bluetooth gnome-desktop gnome-online-accounts @@ -9150,7 +9144,7 @@ properties, screen resolution, and other GNOME parameters.") (define-public gnome-shell (package (name "gnome-shell") - (version "42.4") + (version "44.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -9158,7 +9152,7 @@ properties, screen resolution, and other GNOME parameters.") name "-" version ".tar.xz")) (sha256 (base32 - "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7")))) + "1grizh3fbks5dgizaj38300cz97ay81q0hlk1pvawkpfq9qlnsam")))) (build-system meson-build-system) (arguments (let ((disallowed-references @@ -9196,6 +9190,12 @@ properties, screen resolution, and other GNOME parameters.") (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false")))) + (add-after 'unpack 'unbreak-perf-tests + (lambda _ + ;; Lest non-fatal dbus warnings be made fatal again… + (substitute* "tests/meson.build" + (("perf_testenv\\.set\\('G_DEBUG'" all) + (string-append "# " all))))) (add-before 'configure 'record-absolute-file-names (lambda* (#:key inputs #:allow-other-keys) (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon")) @@ -9212,7 +9212,13 @@ properties, screen resolution, and other GNOME parameters.") ;; Tests require a running X server. (system "Xvfb :1 &") (setenv "DISPLAY" ":1") - (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings + ;; For the missing /var/lib/dbus/machine-id + (setenv "DBUS_FATAL_WARNINGS" "0") + (setenv "NO_AT_BRIDGE" "1") + (setenv "HOME" "/tmp") + (setenv "XDG_RUNTIME_DIR" (string-append (getcwd) "/runtime-dir")) + (mkdir (getenv "XDG_RUNTIME_DIR")) + (chmod (getenv "XDG_RUNTIME_DIR") #o700))) (add-after 'install 'wrap-programs (lambda* (#:key inputs #:allow-other-keys) (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")) @@ -9278,13 +9284,14 @@ printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \ perl pkg-config python + python-dbus + python-dbusmock ruby-sass sassc ;; For tests xorg-server-for-tests)) (inputs (list accountsservice - caribou docbook-xsl evolution-data-server gcr @@ -9381,7 +9388,7 @@ core C library, and bindings for Python (PyGTK).") (define-public gnome-autoar (package (name "gnome-autoar") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -9389,7 +9396,7 @@ core C library, and bindings for Python (PyGTK).") name "-" version ".tar.xz")) (sha256 (base32 - "124y4j3wgb6axgfzw9f00865r033fg7b0qy9qgfsp5ilan4hgpvv")))) + "1hn3rzd6z2g2xvnx8icifybq26vvxk44qmqz392b2g6g7crvxby0")))) (build-system meson-build-system) (native-inputs (list gobject-introspection `(,glib "bin") pkg-config)) @@ -9407,7 +9414,7 @@ easy, safe, and automatic.") (define-public tracker (package (name "tracker") - (version "3.4.2") + (version "3.6.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/tracker/" @@ -9415,7 +9422,7 @@ easy, safe, and automatic.") "tracker-" version ".tar.xz")) (sha256 (base32 - "0c8ppm03b9r6lyxalama8sjmw3km4jibbswqra7qf17pli1g2vaf")))) + "1whdqidxmagsc35pmz9kcc5vs3bmvbkmnis7prnx3zxs37z2qnaj")))) (build-system meson-build-system) (arguments (list @@ -9437,6 +9444,22 @@ easy, safe, and automatic.") (substitute* "utils/trackertestutils/__main__.py" (("/bin/bash") (search-input-file inputs "bin/bash"))))) + (add-after 'unpack 'disable-failing-tests + (lambda _ + #$@(if (target-x86-32?) + ;; On 32-bit systems, the far away dates are incorrect, + ;; and the floats are not parsed exactly. + '((substitute* + "tests/libtracker-sparql/tracker-statement-test.c" + (("g_assert_cmpfloat *\\((.*), ==, ([0-9.e-]+)\\);" + total actual expected) + (string-append "g_assert_cmpfloat_with_epsilon (" + actual ", " expected ", 1e-12);"))) + (substitute* "tests/core/tracker-sparql-test.c" + (("\\{ \"datetime/direct-1\", .* \\},") + "/* datetime test disabled */"))) + '()) + *unspecified*)) (add-before 'configure 'set-shell (lambda _ (setenv "SHELL" (which "bash")))) @@ -9525,7 +9548,7 @@ endpoint and it understands SPARQL.") (define-public tracker-miners (package (name "tracker-miners") - (version "3.3.2") + (version "3.6.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/tracker-miners/" @@ -9533,7 +9556,7 @@ endpoint and it understands SPARQL.") "/tracker-miners-" version ".tar.xz")) (sha256 (base32 - "1izg2xhlr64gd9pw7apa9nkf0ffyz74f22ml1ng7q60bxf0dl0yl")))) + "13ljx0birrav728ik3bnlwzgas8q6rbhjbvxp7zzwy6ambafiw7f")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -9567,12 +9590,7 @@ endpoint and it understands SPARQL.") ;; 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'.*") - "")))) + "foreach example_name: []")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -9604,6 +9622,7 @@ endpoint and it understands SPARQL.") giflib glib gstreamer + gst-plugins-base icu4c json-glib libcue @@ -9647,7 +9666,7 @@ shared object databases, search tools and indexing.") (define-public nautilus (package (name "nautilus") - (version "42.2") + (version "44.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -9655,7 +9674,7 @@ shared object databases, search tools and indexing.") name "-" version ".tar.xz")) (sha256 (base32 - "1cncyiyh79w1id6a6s2f0rxmgwl65lp4ml4afa0z35jrnwp2s8cr")) + "0k0yyh7sqan68c8n0ahwlw0xyiq25f57inm5qrpsgxr78w12zinr")) (patches (search-patches "nautilus-extension-search-path.patch")))) (build-system meson-build-system) @@ -9664,6 +9683,13 @@ shared object databases, search tools and indexing.") #:glib-or-gtk? #t #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-tracker3-command + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/nautilus-tag-manager.c" + (("\"tracker3\"") + (string-append "\"" + (search-input-file inputs "/bin/tracker3") + "\""))))) (add-after 'unpack 'disable-tracker-tests ;; The tracker test hangs in the build container (see: ;; https://gitlab.gnome.org/GNOME/nautilus/-/issues/2486). @@ -9674,8 +9700,9 @@ shared object databases, search tools and indexing.") (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")))) + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false")))) (delete 'check) (add-after 'install 'check (assoc-ref %standard-phases 'check)) @@ -9702,18 +9729,18 @@ shared object databases, search tools and indexing.") gnome-autoar gst-plugins-base json-glib - libhandy + libadwaita libportal libseccomp libselinux tracker tracker-miners - ;; XXX: gtk+ is required by libnautilus-extension.pc + ;; XXX: gtk is required by libnautilus-extension.pc ;; - ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta + ;; Don't propagate it to reduce "profile pollution" of the 'gnome' meta ;; package. See: ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>. - gtk+ + gtk libexif libxml2)) (native-search-paths @@ -9731,7 +9758,7 @@ files.") (define-public baobab (package (name "baobab") - (version "42.0") + (version "44.0") (source (origin (method url-fetch) (uri (string-append @@ -9740,24 +9767,28 @@ files.") name "-" version ".tar.xz")) (sha256 (base32 - "1p2hg8qxbvdfax9z4qjhdsxia93zrsdq58krx8zjnn5ipbkan6jb")))) + "1h5zl7pvpp8yryi7j0cjzy1k89vlphdmfv0jr1l4bmr3j6xn6nw4")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t)) + '(#: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* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false"))))))) (native-inputs (list desktop-file-utils ;for update-desktop-database gettext-minimal `(,glib "bin") - `(,gtk+ "bin") ;for gtk-update-icon-cache itstool libxml2 pkg-config python vala)) - (inputs - (list gtk - libadwaita - libhandy)) + (inputs (list gtk libadwaita)) (synopsis "Disk usage analyzer for GNOME") (description "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk @@ -9999,7 +10030,7 @@ associations for GNOME.") bash-minimal geoclue gjs - gsettings-desktop-schemas-next + gsettings-desktop-schemas gtk libadwaita libgweather4)) @@ -10285,7 +10316,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") (define-public gnome-clocks (package (name "gnome-clocks") - (version "42.0") + (version "44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -10293,7 +10324,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") name "-" version ".tar.xz")) (sha256 (base32 - "1q3gvniwd4dkr1ghqpp05zr7qswdhaxqrn8j6bm3qbh39bdihw8f")))) + "0f1q9wxixjnhwypp6zaplxzj2lrk3x8gfy0x7811m3ybcmrskmqp")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t @@ -10314,13 +10345,13 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") vala)) (inputs (list geoclue - geocode-glib-with-libsoup2 + geocode-glib glib gnome-desktop gsound gtk libadwaita - libgweather4-with-libsoup2)) + libgweather4)) (home-page "https://wiki.gnome.org/Apps/Clocks") (synopsis "GNOME's clock application") (description @@ -10331,7 +10362,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") (define-public gnome-calendar (package (name "gnome-calendar") - (version "42.2") + (version "44.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -10339,7 +10370,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") name "-" version ".tar.xz")) (sha256 (base32 - "1ggvnl2jnc24nzpkjvsk57vpckjzb14a7mmnk6jjm84nmqxccz5f")))) + "0zmpyd5qgryrxflgcapfp6jxph3z31qycs148r715gbhnqwbg89h")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -10356,16 +10387,14 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") `(,glib "bin") ; For glib-compile-schemas pkg-config)) (inputs - ;; Note: not propagating evolution-data-server-3.44 to keep profiles - ;; clean from libsoup2. - (list evolution-data-server-3.44 + (list evolution-data-server geoclue - geocode-glib-with-libsoup2 - gnome-online-accounts-3.44 + geocode-glib + gnome-online-accounts gsettings-desktop-schemas libadwaita libdazzle - libgweather4-with-libsoup2)) + libgweather4)) (home-page "https://wiki.gnome.org/Apps/Calendar") (synopsis "GNOME's calendar application") (description @@ -10434,9 +10463,6 @@ desktop. It supports multiple calendars, month, week and year view.") to perfectly fit the GNOME desktop.") (license license:gpl3+))) -(define-public gnome-todo - (deprecated-package "gnome-todo" endeavour)) - (define-public dialect (package (name "dialect") @@ -10771,7 +10797,7 @@ handling the startup notification side.") (define-public gnome-calculator (package (name "gnome-calculator") - (version "42.2") + (version "44.0") (source (origin (method url-fetch) @@ -10780,21 +10806,22 @@ handling the startup notification side.") name "-" version ".tar.xz")) (sha256 (base32 - "1866qn0r9xp7b7j1436kry2k3bdh9ikhz2wm41jxcn1nljyb3nik")))) + "0hqhnwaw7zam0r7b61ir68710hxmc5rxb0172mz9lc48kwr67rql")))) (build-system meson-build-system) (arguments - '(#:glib-or-gtk? #t - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'skip-gtk-update-icon-cache - (lambda _ - (substitute* "meson.build" - (("gtk_update_icon_cache: true") - "gtk_update_icon_cache: false")))) - (add-before 'check 'pre-check - (lambda _ - ;; Tests require a writable HOME. - (setenv "HOME" (getcwd))))))) + (list + #:glib-or-gtk? #t + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + (lambda _ + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false")))) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a writable HOME. + (setenv "HOME" (getcwd))))))) (native-inputs (list gettext-minimal `(,glib "bin") ;for glib-compile-schemas, gio-2.0. @@ -10803,15 +10830,17 @@ handling the startup notification side.") python vala)) (inputs - (list gsettings-desktop-schemas-next + (list gsettings-desktop-schemas gtksourceview libadwaita libgee - libhandy - libsoup-minimal-2 + libsoup libxml2 mpc mpfr)) + (propagated-inputs + ;; Marked as requires.private in either .pc + (list libgee glib gtk)) (home-page "https://wiki.gnome.org/Apps/Calculator") (synopsis "Desktop calculator") (description @@ -10953,14 +10982,14 @@ supports both X and Wayland display servers.") (define-public bluefish (package (name "bluefish") - (version "2.2.12") + (version "2.2.14") (source (origin (method url-fetch) (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/" "bluefish-" version ".tar.gz")) (sha256 - (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl")))) + (base32 "0427xihrr7l1475qr3n40hz2xz6bqmfdbdg9pn8q7rvhvajyvjx7")))) (build-system gnu-build-system) (native-inputs (list desktop-file-utils intltool pkg-config)) @@ -11059,7 +11088,7 @@ accessibility infrastructure.") (define-public orca (package (name "orca") - (version "42.3") + (version "44.2") (source (origin (method url-fetch) (uri (string-append @@ -11068,17 +11097,25 @@ accessibility infrastructure.") name "-" version ".tar.xz")) (sha256 (base32 - "097pyav3z5ssic8vwd7v1s7vynpycdpyfr324rr6c7mfzq5vmp7s")))) + "11jn925ga970y74did96ms78pc3lshkd9rd8v82i6zdzigxa7yvd")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'qualify-xkbcomp + (add-before 'configure 'qualify-programs (lambda* (#:key inputs #:allow-other-keys) (let ((xkbcomp (string-append - (assoc-ref inputs "xkbcomp") "/bin/xkbcomp"))) + (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")) + (pgrep (string-append + (assoc-ref inputs "procps") "/bin/pgrep"))) (substitute* "src/orca/orca.py" - (("'xkbcomp'") (format #f "'~a'" xkbcomp)))))) + (("'xkbcomp'") (format #f "'~a'" xkbcomp))) + (substitute* "src/orca/debug.py" + (("'pgrep %s'") + (format #f "'~a %s'" pgrep))) + (substitute* "src/orca/orca_bin.py.in" + (("'pgrep -u %s -x orca'") + (format #f "'~a -u %s -x orca'" pgrep)))))) (add-after 'install 'wrap-orca (lambda* (#:key outputs #:allow-other-keys) (wrap-program (search-input-file outputs "bin/orca") @@ -11094,13 +11131,14 @@ accessibility infrastructure.") pkg-config libxml2)) (inputs - (list at-spi2-atk + (list at-spi2-core bash-minimal gsettings-desktop-schemas gstreamer gst-plugins-base gst-plugins-good gtk+ + procps ; for pgrep python python-pygobject python-pyatspi @@ -11118,7 +11156,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).") (define-public gspell (package (name "gspell") - (version "1.11.1") + (version "1.12.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -11126,7 +11164,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).") name "-" version ".tar.xz")) (sha256 (base32 - "14h2w0yzqwaw5dykmhh21sy2c96g17waahg2lxc52xqiyzis8spg")))) + "0f91vl42i6fz5yrbw31biffbxqzwa24mw6qbfxmfnk3yhayr7sdl")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags (list "--enable-vala") @@ -11276,7 +11314,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.") python-pygobject python-pylast totem-pl-parser - webkitgtk)) + webkitgtk-for-gtk3)) (propagated-inputs (list gst-plugins-good ;required to start lollypop gst-plugins-ugly)) ;required for streaming @@ -11558,7 +11596,7 @@ configurable file renaming.") (define-public workrave (package (name "workrave") - (version "1.10.50") + (version "1.10.52") (source (origin (method git-fetch) @@ -11569,7 +11607,7 @@ configurable file renaming.") version))))) (file-name (git-file-name name version)) (sha256 - (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx")))) + (base32 "1rp6v9a8xmhjy75wmh7pnd092dn9nrb6wd4gcgr3c866qnpp6zsk")))) (build-system glib-or-gtk-build-system) (arguments ;; The only tests are maintainer tests (in po/), which fail. @@ -11585,17 +11623,17 @@ configurable file renaming.") libice libsm libxscrnsaver)) - (native-inputs `(("boost" ,boost) - ("pkg-config" ,pkg-config) - ("gettext" ,gettext-minimal) - ("autoconf" ,autoconf) - ("autoconf-archive" , autoconf-archive) - ("automake" ,automake) - ("libtool" ,libtool) - ("intltool" ,intltool) - ("gobject-introspection" ,gobject-introspection) - ("python3" ,python-3) - ("python-jinja2" ,python-jinja2))) + (native-inputs (list boost + pkg-config + gettext-minimal + autoconf + autoconf-archive + automake + libtool + intltool + gobject-introspection + python-3 + python-jinja2)) (synopsis "Tool to help prevent repetitive strain injury (RSI)") (description "Workrave is a program that assists in the recovery and prevention of @@ -11686,7 +11724,7 @@ generic enough to work for everyone.") (define-public evolution (package (name "evolution") - (version "3.46.4") + (version "3.48.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/evolution/" @@ -11694,7 +11732,7 @@ generic enough to work for everyone.") "evolution-" version ".tar.xz")) (sha256 (base32 - "0gbvd460hsha0gss9rjjpyisq336fwxd8y1xf55s6ifjrqql423s")))) + "1dwbwy67xg1fypxj0qyhhvy608hbw19gqhvxqkr739shl3mrjbx0")))) (build-system cmake-build-system) (arguments (list @@ -11733,7 +11771,7 @@ generic enough to work for everyone.") (list cmark enchant evolution-data-server ;must be the same version - gcr + gcr-3 gsettings-desktop-schemas gnome-autoar gnome-desktop @@ -11745,7 +11783,7 @@ generic enough to work for everyone.") libsoup nss openldap - webkitgtk + webkitgtk-for-gtk3 ytnef)) (home-page "https://gitlab.gnome.org/GNOME/evolution") (synopsis "Manage your email, contacts and schedule") @@ -11760,7 +11798,7 @@ functionality.") (define-public gthumb (package (name "gthumb") - (version "3.12.2") + (version "3.12.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gthumb/" @@ -11768,7 +11806,7 @@ functionality.") "gthumb-" version ".tar.xz")) (sha256 (base32 - "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p")))) + "1s4lqy883s296mbh4fywd1l3z79811ia00xs57c316pb1an97mmd")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -11781,28 +11819,28 @@ functionality.") (assoc-ref %outputs "out") "/lib/gthumb/extensions")))) (native-inputs - `(("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 - ("intltool" ,intltool) - ("itstool" ,itstool) - ("pkg-config" ,pkg-config) - ("python" ,python))) + (list desktop-file-utils ; for update-desktop-database + `(,glib "bin") ; for glib-compile-resources + `(,gtk+ "bin") ; for gtk-update-icon-cache + intltool + itstool + pkg-config + python)) (inputs - `(("clutter" ,clutter) - ("clutter-gst" ,clutter-gst) - ("clutter-gtk" ,clutter-gtk) - ("colord" ,colord) - ("exiv2" ,exiv2) - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("gstreamer" ,gstreamer) - ("gtk" ,gtk+) - ("libheif" ,libheif) - ("libjpeg" ,libjpeg-turbo) - ("libraw" ,libraw) - ("librsvg" ,(librsvg-for-system)) - ("libtiff" ,libtiff) - ("libwebp" ,libwebp))) + (list clutter + clutter-gst + clutter-gtk + colord + exiv2 + gsettings-desktop-schemas + gstreamer + gtk+ + libheif + libjpeg-turbo + libraw + (librsvg-for-system) + libtiff + libwebp)) (home-page "https://wiki.gnome.org/Apps/Gthumb") (synopsis "GNOME image viewer and browser") (description "GThumb is an image viewer, browser, organizer, editor and @@ -11885,7 +11923,7 @@ tabs, and it supports drag and drop re-ordering of terminals.") (define-public libhandy (package (name "libhandy") - (version "1.7.90") + (version "1.8.2") (source (origin (method git-fetch) @@ -11894,7 +11932,7 @@ tabs, and it supports drag and drop re-ordering of terminals.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1")))) + (base32 "031bmrxc62p86fpk1x8kg4zljxf5bd2cgq8bsm7nrk5yipha2xvy")))) (build-system meson-build-system) (arguments (list #:configure-flags @@ -11954,7 +11992,7 @@ for usage on small and big screens.") (define-public libgit2-glib (package (name "libgit2-glib") - (version "1.1.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -11962,7 +12000,7 @@ for usage on small and big screens.") name "-" version ".tar.xz")) (sha256 (base32 - "1wqypx0xv20vk0zfh20c474z6rdgbxbklcr2wkhl30dgbmbxg3f3")))) + "1441w7gzn6m3adhx4g6wcbkmscka2929si963dciyklghgddlc8k")))) (build-system meson-build-system) (native-inputs (list `(,glib "bin") ;; For glib-mkenums @@ -11985,7 +12023,7 @@ higher level porcelain stuff.") (define-public gitg (package (name "gitg") - (version "41") + (version "44") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -11993,8 +12031,7 @@ higher level porcelain stuff.") name "-" version ".tar.xz")) (sha256 (base32 - "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz")) - (patches (search-patches "gitg-fix-positional-argument.patch")))) + "0m135v2qm5kaa2jki0y2lbh0wa69bqfh9a4cm7db153v7smrj3jv")))) (build-system meson-build-system) (arguments (list @@ -12018,6 +12055,7 @@ higher level porcelain stuff.") `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))) (inputs (list glib + gpgme gsettings-desktop-schemas gspell gtk+ @@ -12026,6 +12064,7 @@ higher level porcelain stuff.") libdazzle libgee libgit2-glib + libhandy libpeas libsecret libsoup-minimal-2 @@ -12118,44 +12157,40 @@ library which detects when a file or a directory has been modified.") (license license:gpl2+))) (define-public gnome-mahjongg - ;; There hasn't been a GNOME Mahjongg release in a long time, and the last - ;; release doesn't build with a recent Meson, so use the latest commit. - (let ((commit "e9e73e5165e5968ff897e568f8eba10fc1eb207b") - (revision "0")) - (package - (name "gnome-mahjongg") - (version (git-version "3.38.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1cj0c076h7qfz77wpz8ypli60inj37fgw0cl9cc39b1kjfqcy3mb")))) - (build-system meson-build-system) - (arguments (list #:glib-or-gtk? #t)) - (native-inputs - (list appstream-glib - gettext-minimal - `(,glib "bin") ;for glib-compile-resources - `(,gtk "bin") ;for gtk-update-icon-cache - itstool - pkg-config - vala)) - (propagated-inputs - (list dconf)) - (inputs - (list glib - gtk - libadwaita)) - (synopsis "Mahjongg tile-matching game") - (description "GNOME Mahjongg is a game based on the classic Chinese + (package + (name "gnome-mahjongg") + (version "3.40.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yj41lj2vancjzwjcm5cdv48983jq05i6sw8p4nggyqwij3xpllj")))) + (build-system meson-build-system) + (arguments (list #:glib-or-gtk? #t)) + (native-inputs + (list appstream-glib + gettext-minimal + `(,glib "bin") ;for glib-compile-resources + `(,gtk "bin") ;for gtk-update-icon-cache + itstool + pkg-config + vala)) + (propagated-inputs + (list dconf)) + (inputs + (list glib + gtk + libadwaita)) + (synopsis "Mahjongg tile-matching game") + (description "GNOME Mahjongg is a game based on the classic Chinese tile-matching game Mahjongg. It features multiple board layouts, tile themes, and a high score table.") - (home-page "https://wiki.gnome.org/Apps/Mahjongg") - (license license:gpl2+)))) + (home-page "https://wiki.gnome.org/Apps/Mahjongg") + (license license:gpl2+))) (define-public gnome-themes-extra (package @@ -12364,7 +12399,7 @@ integrate seamlessly with the GNOME desktop.") spice-gtk tracker vte - webkitgtk)) + webkitgtk-for-gtk3)) (home-page "https://wiki.gnome.org/Apps/Boxes") (synopsis "View, access, and manage remote and virtual systems") (description "GNOME Boxes is a simple application to view, access, and @@ -12420,7 +12455,7 @@ non-privileged user.") (inputs (list enchant folks - gcr + gcr-3 glib gmime gnome-online-accounts @@ -12438,7 +12473,7 @@ non-privileged user.") libstemmer libunwind sqlite - webkitgtk + webkitgtk-for-gtk3 ytnef)) (native-inputs (list appstream-glib @@ -12889,10 +12924,37 @@ both peers support it. You might want that when communicating on a single host to avoid parser overhead and memory-allocator fragmentation.") (license license:lgpl2.1+))) +(define-public gmobile + (package + (name "gmobile") + (version "0.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/guidog/gmobile") + (commit (string-append "v" version)))) + (file-name (git-file-name "gmobile" version)) + (sha256 + (base32 + "0lr22nj4ypzxbjim1a7ay07nh4vx3dqc895qql437gda6x0rvn2p")) + (patches + (search-patches "gmobile-make-it-installable.patch")))) + (build-system meson-build-system) + (native-inputs + (list `(,glib "bin") ; for glib-compile-resources + pkg-config)) + (propagated-inputs + (list glib json-glib)) + (synopsis "Functions useful in mobile related, glib based projects") + (description "This package provides functions for mobiles.") + (home-page "https://gitlab.gnome.org/guidog/gmobile") + (license license:lgpl2.1+))) + (define-public feedbackd (package (name "feedbackd") - (version "0.0.0+git20200527") + (version "0.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -12901,12 +12963,18 @@ host to avoid parser overhead and memory-allocator fragmentation.") (file-name (git-file-name name version)) (sha256 (base32 - "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y")))) + "1acwpb8cgzyvzriphrb42k3d7njwcn88j66i5wz75yx2sbfaf93q")) + (patches + (search-patches "feedbackd-use-system-gmobile.patch")) + (snippet + #~(begin + (use-modules (guix build utils)) + (delete-file-recursively "subprojects"))))) (build-system meson-build-system) (native-inputs (list `(,glib "bin") gobject-introspection pkg-config vala)) (inputs - (list dbus gsound json-glib libgudev)) + (list dbus gmobile gsound json-glib libgudev)) (propagated-inputs (list glib)) ; in Requires of libfeedback-0.0.pc (synopsis "Haptic/visual/audio feedback via DBus") @@ -12946,7 +13014,7 @@ GObject introspection bindings.") (propagated-inputs (list polkit)) (inputs - (list glib-next + (list glib gtk json-glib libadwaita @@ -12955,7 +13023,7 @@ GObject introspection bindings.") polkit)) (native-inputs (list gettext-minimal - `(,glib-next "bin") ;for gdbus-codegen, etc. + `(,glib "bin") ;for gdbus-codegen, etc. itstool libxml2 pkg-config)) @@ -13137,7 +13205,7 @@ profiler via Sysprof, debugging support, and more.") python-rarfile python-requests python-unidecode - webkitgtk-next)) + webkitgtk)) (native-inputs (list desktop-file-utils gettext-minimal @@ -13223,7 +13291,7 @@ your data.") (substitute* "build-aux/meson/meson_post_install.py" (("gtk-update-icon-cache") (which "true")))))))) (native-inputs - (list `(,glib-next "bin") + (list `(,glib "bin") gettext-minimal itstool pkg-config)) @@ -13231,7 +13299,7 @@ your data.") (list json-glib jsonrpc-glib gettext-minimal - glib-next + glib gsettings-desktop-schemas gspell libgda @@ -13315,7 +13383,7 @@ Document Analysis and Recognition program.") (define-public libadwaita (package (name "libadwaita") - (version "1.2.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libadwaita/" @@ -13323,7 +13391,7 @@ Document Analysis and Recognition program.") "libadwaita-" version ".tar.xz")) (sha256 (base32 - "0326qs0zhfi6zv52p90axnicmv0qb2l2hwpyv60pk9lvwcdkwbrj")))) + "1hj7kxza6263x662v4ffndlz8dhfx19cz3y4iwhnhdflaj50j6p5")))) (build-system meson-build-system) (arguments `(#:phases @@ -13343,7 +13411,7 @@ Document Analysis and Recognition program.") vala xorg-server-for-tests)) (propagated-inputs - (list gtk)) ;libadwaita-1.pc 'Requires' it + (list appstream gtk)) ;libadwaita-1.pc 'Requires' it (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/") (synopsis "Building blocks for GNOME applications") (description @@ -13420,3 +13488,106 @@ historical battery usage and related statistics.") (home-page "http://xffm.org/") (license license:gpl3+) (properties '((upstream-name . "xffm"))))) + +(define-public libcall-ui + (package + (name "libcall-ui") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/World/Phosh/libcall-ui") + (commit "6798b38d4d66d069751151b3e9a202c6de8d7f3c"))) + (file-name (git-file-name "libcall-ui" version)) + (sha256 + (base32 + "0zfrxh77ag8garqj319amnxjcdyp3ig12dkxfkl6wbwn1mvyrwx8")) + (patches (search-patches "libcall-ui-make-it-installable.patch")))) + (build-system meson-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1")))))) + (propagated-inputs ; All these in call-ui.pc. + (list glib + gtk+ + libcallaudio + libhandy)) + (native-inputs + (list `(,glib "bin") ; glib-mkenums + pkg-config + xorg-server-for-tests)) + (synopsis "Common User Interfaces for call handling") + (description "This package provides common user interfaces to make and +receive calls.") + (home-page "https://gitlab.gnome.org/World/Phosh/libcall-ui") + (license license:lgpl2.1+))) + +(define-public calls + (package + (name "calls") + (version "45.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1mvnrm5wbl69xbcjg8nxd6l6nj2fd3whbyh70axlm75c7l7d5j5r")) + (patches + (search-patches "calls-disable-application-test.patch" + "calls-disable-sip-test.patch")))) + (build-system meson-build-system) + (arguments + (list + #:glib-or-gtk? #t + #:configure-flags #~'("-Dgtk_doc=true") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1")))))) + (inputs + (list evolution-data-server + feedbackd + folks + glib + gom + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gtk+ + libcall-ui + libgee + libpeas + libhandy + modem-manager + sofia-sip)) + (native-inputs + (list desktop-file-utils ;update-desktop-database + gettext-minimal + `(,glib "bin") ;glib-mkenums + gtk-doc ;gtkdoc-scan + `(,gtk+ "bin") ;gtk-update-icon-cache + pkg-config + python-docutils ;rst2man + vala + xorg-server-for-tests)) + (home-page "https://gitlab.gnome.org/GNOME/calls") + (synopsis "Phone dialer and call handler") + (description "Calls can make and answer phone calls using different +backends, such as ModemManager for phones and @acronym{SIP, Session Initiation +Protocol} for @acronym{VoIP, Voice over @acronym{IP, Internet Protocol}}.") + (license license:gpl3+))) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index a5b8587a14..00307ec270 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -866,7 +866,7 @@ passphrase when @code{gpg} is run and needs it."))) (name "pinentry-gnome3") (inputs (modify-inputs (package-inputs pinentry-tty) - (prepend gtk+-2 gcr glib))) + (prepend gtk+-2 gcr-3 glib))) (arguments `(#:configure-flags '("--enable-pinentry-gnome3" "--enable-fallback-curses"))) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 6a93ab933e..f0dd5c7f3e 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages databases) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 00e273b853..e5a26ecc6d 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -885,9 +885,9 @@ exception-handling library.") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.com/inkscape/lib2geom.git") + (url "https://gitlab.com/inkscape/lib2geom") (commit version))) - (file-name (git-file-name name version)) + (file-name (git-file-name "lib2geom" version)) (sha256 (base32 "0dq981g894hmvhd6rmfl1w32mksg9hpvpjs1qvfxrnz87rhkknj8")))) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 71f8e3453a..bcbed68715 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -461,7 +461,7 @@ the GStreamer multimedia framework.") (define-public gstreamer (package (name "gstreamer") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -470,7 +470,7 @@ the GStreamer multimedia framework.") version ".tar.xz")) (sha256 (base32 - "08cfz2vkf494rsg0bn75px26fxs3syvxnsc9lj5n074j0cvfgbxj")))) + "0x2rdl6vfpbr7wnh1nk0rllw28cgx0js4g9vxfank7rz0naspzlz")))) (build-system meson-build-system) (arguments (list #:disallowed-references (list python) @@ -542,7 +542,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -550,7 +550,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "0jcxcx4mgfjvfb3ixibwhx8j330mq3ap469w7hapm6z79q614rgb")))) + "1ww9xx6c4mwvgn9k56d1xfnd3i1jm4v8rfiy4f07686ll24n4n8w")))) (build-system meson-build-system) (propagated-inputs (list glib ;required by gstreamer-sdp-1.0.pc @@ -641,7 +641,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -650,7 +650,7 @@ for the GStreamer multimedia library.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1p8cpkk4dynglw0xswqyf57xl5fnxmb3xld71kv35cpj4nacb33w")))) + (base32 "0wq2f5q395vs7hnwjqpc2gysdvkgd4jmyfdszv9g9wrf795ib0dg")))) (build-system meson-build-system) (arguments (list @@ -760,14 +760,14 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "03rd09wsrf9xjianpnnvamb4n3lndhd4x31srqsqab20wcfaz3rx")) + "1n116sphawmlqyjp1b8sv07vz4rjk1zn07286w37y4l65pp8yyg1")) (modules '((guix build utils))) (snippet '(begin @@ -809,13 +809,6 @@ model to base your own plug-in on, here it is.") "'elements/viewfinderbin.c'], true, ],")) '()) - ;; This substitution is no longer effective and can be removed. - #$@(if (member (%current-system) - '("i686-linux" "aarch64-linux" "riscv64-linux")) - `((("'elements/camerabin\\.c'\\]\\],") - "'elements/camerabin.c'], true, ],")) - '()) - ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412 ((".*elements/dtls\\.c.*") "")) (substitute* "tests/check/elements/zxing.c" @@ -956,7 +949,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -964,7 +957,7 @@ par compared to the rest.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1486x08bwasq6l7kc75nph5az61siq9mbgkgpw4kf1mxn16z8c4g")))) + (base32 "0q53snvh7kr8g7qqxy4v5ska0d78kgc5bkp6qjrnhcr9qbaqxj9x")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -1013,7 +1006,7 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -1022,7 +1015,7 @@ think twice about shipping them.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1zfg7giwampmjxkqr5pqy66vck42b0akmwby661brwz8iy3zkapw")))) + (base32 "08x929yhjd2wpy05146fnqv6p2hw58ha079bwfkp2hwbh02wii9f")))) (build-system meson-build-system) (native-inputs (list perl pkg-config python-wrapper ruby)) (inputs (list ffmpeg)) @@ -1036,7 +1029,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) (uri (string-append @@ -1044,7 +1037,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "1gyfw11ns2la1cm6gvvvv5qj3q5gcvcypc3wk8kdwmrqzij18fs5")))) + "18nfq3av5ksz17048l2b4r4zbh11yd0yq2asx0jy3c894pkbr98m")))) (build-system meson-build-system) (arguments (list @@ -1104,7 +1097,7 @@ binary, but none of the actual plugins."))) (define-public python-gst (package (name "python-gst") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) (uri (string-append @@ -1112,7 +1105,7 @@ binary, but none of the actual plugins."))) "gst-python-" version ".tar.xz")) (sha256 (base32 - "1bak46bj92gyz613m99mnl0yw0qhbhq5dfxifnvldgp45kcb7wmy")))) + "073kii36ncgsyq0b5njbsvprrg1k3kmydr3dxwiccjv3pvxd7gkh")))) (build-system meson-build-system) (arguments (list diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 47d4c1808f..67611efaae 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -106,6 +106,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages gstreamer) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) @@ -361,7 +362,7 @@ applications.") (define-public pango (package (name "pango") - (version "1.50.10") + (version "1.50.14") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -370,7 +371,7 @@ applications.") (patches (search-patches "pango-skip-libthai-test.patch")) (sha256 (base32 - "0rj9sszflckk8gj47ppirpndpp3mzsx97l64lalj8kc580g2ypby")))) + "1s41sprfgkc944fva36zjmkmdpv8hn1bdpyg55xc4663pw2z4rqx")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -614,6 +615,11 @@ printing and other features typical of a source code editor.") ;; Tests require a running X server. (system (string-append Xvfb " :1 &")) (setenv "DISPLAY" ":1") + ;; Use an X11 setup to find the display. + (setenv "GDK_BACKEND" "x11") + ;; Avoid spawning (and failing to connect to) the accessiblity + ;; bus. + (setenv "GTK_A11Y" "none") ;; For the missing /etc/machine-id. (setenv "DBUS_FATAL_WARNINGS" "0"))))))) (native-inputs @@ -630,7 +636,7 @@ printing and other features typical of a source code editor.") ;; gtksourceview-5.pc refers to all these. (list fontconfig fribidi - glib-next + glib gtk libxml2 pango @@ -787,7 +793,7 @@ ever use this library.") (hidden-package (package (name "at-spi2-core") - (version "2.45.90") + (version "2.48.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -795,7 +801,7 @@ ever use this library.") name "-" version ".tar.xz")) (sha256 (base32 - "03dba3c6m3sfapkkbbgzvbi1qcmrrlppydxjjs1m8ds9qb9hl1g9")))) + "05d5azffbglnvqzwk8ngg61jksm3brrwhmfpymsrccz8j8lv3v19")))) (build-system meson-build-system) (arguments (list @@ -811,10 +817,15 @@ ever use this library.") (lambda _ ;; xfconfd requires a writable HOME (setenv "HOME" (getenv "TMPDIR")) - ;; Run test-suite under a dbus session. - (setenv "XDG_DATA_DIRS" ;for finding org.xfce.Xfconf.service - (string-append #$output "/share:" - (getenv "XDG_DATA_DIRS"))) + ;; dbus-run-session may crash if XDG_DATA_DIRS has too + ;; many entries, maybe related to + ;; https://gitlab.freedesktop.org/dbus/dbus/-/issues/481. + (setenv "XDG_DATA_DIRS" + (string-append + #$output "/share:" + #$(this-package-native-input + "gsettings-desktop-schemas") + "/share")) ;; Don't fail on missing '/etc/machine-id'. (setenv "DBUS_FATAL_WARNINGS" "0") (with-directory-excursion (string-append "../at-spi2-core-" @@ -832,7 +843,8 @@ ever use this library.") ;; atspi-2.pc refers to all these. (list dbus glib libx11 libxi libxtst)) (native-inputs - (list gettext-minimal + (list findutils + gettext-minimal `(,glib "bin") gobject-introspection gsettings-desktop-schemas @@ -862,25 +874,13 @@ is part of the GNOME accessibility project.") (add-after 'unpack 'set-documentation-path (lambda _ ;; Ensure that the cross-references point to the "doc" output. - (substitute* "doc/libatspi/meson.build" - (("docpath =.*") - (string-append "docpath = '" #$output:doc - "/share/gtk-doc/html'\n"))))) - (add-before 'install 'prepare-doc-directory - (lambda _ - (mkdir-p (string-append #$output:doc "/share")))) - #$@(if (%current-target-system) - #~() - #~((add-after 'install 'move-documentation - (lambda _ - (copy-recursively - (string-append #$output "/share/gtk-doc") - (string-append #$output:doc "/share/gtk-doc")) - (delete-file-recursively - (string-append #$output "/share/gtk-doc")))))))))) + (substitute* "doc/meson.build" + (("docs_dir =.*") + (string-append "docs_dir = '" #$output:doc + "/share/doc'\n"))))))))) (native-inputs (modify-inputs (package-native-inputs at-spi2-core) - (append docbook-xml-4.3 gtk-doc/stable))) + (append gi-docgen python python-sphinx))) (properties (alist-delete 'hidden? (package-properties at-spi2-core))))) @@ -904,6 +904,7 @@ is part of the GNOME accessibility project.") "1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc")) (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch" "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch" + "gtk2-harden-list-store.patch" "gtk2-theme-paths.patch" "gtk2-fix-builder-test.patch")))) (build-system gnu-build-system) @@ -1113,7 +1114,7 @@ application suites.") (define-public gtk (package (name "gtk") - (version "4.8.1") + (version "4.12.3") (source (origin (method url-fetch) @@ -1121,9 +1122,10 @@ application suites.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1za2nyqqs2lrbss61gfw17qba2f0w6a119m1xk4d0fx2k3gdis2w")) + (base32 "128ahzsj016vz8brd8kplhfkxg2q7wy7kndibx2qfr68yrif530l")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")) + (modules '((guix build utils))))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1147,6 +1149,9 @@ application suites.") ;; Use the same test options as upstream uses for ;; their CI. "--suite=gtk" + "--no-suite=failing" + "--no-suite=flaky" + "--no-suite=headless" ; requires mutter… "--no-suite=gsk-compare-broadway") #:phases #~(modify-phases %standard-phases @@ -1169,6 +1174,9 @@ application suites.") (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false")) + (substitute* (find-files "testsuite/gsk/nodeparser/" + "^text-color.*\\.node$") + (("Noto Sans") "DejaVu Sans")) ;; Disable failing tests. (substitute* (find-files "testsuite" "meson.build") (("[ \t]*'empty-text.node',") "") @@ -1253,6 +1261,7 @@ application suites.") cups ;for CUPS print-backend ffmpeg ;for ffmpeg media-backend fribidi + gi-docgen gstreamer ;for gstreamer media-backend gst-plugins-bad ;provides gstreamer-player gst-plugins-base ;provides gstreamer-gl @@ -2938,11 +2947,11 @@ Unix desktop environment under X11 as well as Wayland.") (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false"))))))) - (native-inputs (list `(,glib-next "bin") + (native-inputs (list `(,glib "bin") gobject-introspection pkg-config vala)) - (inputs (list glib-next gtk libadwaita)) + (inputs (list glib gtk libadwaita)) (home-page "https://gitlab.gnome.org/GNOME/libpanel") (synopsis "Dock and panel library for GTK 4") (description "Libpanel provides a library to create IDE-like applications diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index af032db680..7e93de5505 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2348,7 +2348,7 @@ capabilities.") (setenv "DISPLAY" ":1") #t))))) (inputs - (list guile-3.0 guile-lib glib-next)) + (list guile-3.0 guile-lib glib)) (native-inputs (list autoconf automake @@ -3379,7 +3379,7 @@ list of components. This module takes care of that for you.") (guix build utils) (ice-9 popen) (ice-9 rdelim)) - #:disallowed-references ,(list gtk+ webkitgtk) + #:disallowed-references ,(list gtk+ webkitgtk-for-gtk3) #:phases (modify-phases %standard-phases (add-after 'unpack 'remove-dotted-circle-from-combining-character @@ -3425,7 +3425,7 @@ list of components. This module takes care of that for you.") (propagated-inputs (list gobject-introspection)) (inputs (list guile-3.0 glib ;; For tests, only relevant when compiling natively - gtk+ webkitgtk)) + gtk+ webkitgtk-for-gtk3)) (home-page "https://github.com/spk121/guile-gi") (synopsis "GObject bindings for Guile") (description @@ -3964,7 +3964,7 @@ processing filters.") ("glib-networking" ,glib-networking) ("gtk+" ,gtk+) ("gtk+:bin" ,gtk+ "bin") - ("webkitgtk" ,webkitgtk) + ("webkitgtk" ,webkitgtk-for-gtk3) ("gtksourceview" ,gtksourceview-4) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("vte" ,vte) diff --git a/gnu/packages/kde-games.scm b/gnu/packages/kde-games.scm index dc3e81170c..e40fb3bef8 100644 --- a/gnu/packages/kde-games.scm +++ b/gnu/packages/kde-games.scm @@ -32,7 +32,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages gl) - #:use-module ((gnu packages gnome) #:select (shared-mime-info)) + #:use-module ((gnu packages freedesktop) #:select (shared-mime-info)) #:use-module (gnu packages kde) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages perl) diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm index cc12a72a59..655ae39277 100644 --- a/gnu/packages/kde-multimedia.scm +++ b/gnu/packages/kde-multimedia.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cdrom) #:use-module (gnu packages docbook) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages gnome) diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm index e95eac4e2f..09552f33f4 100644 --- a/gnu/packages/kde-pim.scm +++ b/gnu/packages/kde-pim.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm index 4e665da599..6735bf2aea 100644 --- a/gnu/packages/kde-utils.scm +++ b/gnu/packages/kde-utils.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages cups) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) ; dbus for tests #:use-module (gnu packages gnome) #:use-module (gnu packages gstreamer) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2024163a08..e0ab937dbd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4328,10 +4328,9 @@ to the in-kernel OOM killer.") (license license:expat))) (define-public eudev - ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2.11") + (version "3.2.14") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/gentoo/eudev") @@ -4339,8 +4338,9 @@ to the in-kernel OOM killer.") (file-name (git-file-name name version)) (sha256 (base32 - "0dzaqwjnl55f69ird57wb6skahc6l7zs1slsrzqqfhww33icp6av")) - (patches (search-patches "eudev-rules-directory.patch")))) + "1f6lz57igi7iw2ls3fpzgw42bfznam4nf9368h7x8yf1mb737yxz")) + (patches (search-patches "eudev-rules-directory.patch")) + (modules '((guix build utils))))) (build-system gnu-build-system) (arguments (list @@ -4351,6 +4351,31 @@ to the in-kernel OOM killer.") (substitute* "man/make.sh" (("/usr/bin/xsltproc") (search-input-file (or native-inputs inputs) "/bin/xsltproc"))))) + (add-before 'bootstrap 'install-in-lib + (lambda _ + ;; When the udev-service-type instantiates /etc, it collects + ;; hardware files from the <package>/lib/udev/hwdb.d directories + ;; of different packages. Since we set sysconfdir to /etc, the + ;; only package-dependent location we can install hwdb files is + ;; in <package>/lib/udev/hwdb.d. Eudev is configured to install + ;; these files in sysconfdir, but they should be placed into + ;; udevlibexecdir. + (copy-file "hwdb/Makefile.am" "hwdb/files.am") + (call-with-output-file "hwdb/Makefile.am" + (lambda (port) + (format port "hardwarelibdir = $(udevlibexecdir)/hwdb.d\n") + (format port "include ./files.am"))) + (substitute* "hwdb/files.am" + (("dist_udevhwdb_DATA =") + "dist_hardwarelib_DATA =")) + ;; Do not install the empty udev.conf template. + (substitute* "src/udev/Makefile.am" + (("dist_udevconf_DATA =") + "dist_noinst_DATA =")) + ;; Do not ensure that /etc/udev/rules.d exists. + (substitute* "rules/Makefile.am" + (("\\$\\(MKDIR_P\\) \\$\\(DESTDIR\\)\\$\\(udevconfdir\\)/rules\\.d") + "true")))) (add-after 'install 'move-static-library (lambda _ (let ((source (string-append #$output "/lib/libudev.a")) @@ -4362,19 +4387,17 @@ to the in-kernel OOM killer.") ;; such that Libtool looks for it in the usual places. (substitute* (string-append #$output "/lib/libudev.la") (("old_library=.*") - "old_library=''\n"))))) - (add-after 'install 'build-hwdb - (lambda _ - ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and - ;; similar tools to display product names. - ;; - ;; XXX: This can't be done when cross-compiling. Find another way - ;; to generate hwdb.bin for cross-built systems. - #$@(if (%current-target-system) - #~(#t) - #~((invoke (string-append #$output "/bin/udevadm") - "hwdb" "--update")))))) - #:configure-flags #~(list "--enable-manpages"))) + "old_library=''\n")))))) + #:configure-flags + #~(list "--enable-manpages" + ;; By default, autoconf uses $prefix/etc. The udev-service-type + ;; makes sure /etc is set up with rules and hardware file + ;; descriptions. + "--sysconfdir=/etc"))) + (native-search-paths + (list (search-path-specification + (variable "UDEV_HWDB_PATH") + (files '("lib/udev/hwdb.d"))))) (native-inputs (list autoconf automake diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 0a918dffd1..1c7957c3d7 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -5056,7 +5056,7 @@ is a library for creating graphical user interfaces.") (inputs `(("cffi" ,sbcl-cffi) ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk) - ("webkitgtk" ,webkitgtk))) + ("webkitgtk" ,webkitgtk-for-gtk3))) (native-inputs `(;; Tests seem to need Xorg. ;; ("xorg-server" ,xorg-server-for-tests) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 256bd4b03a..e57e3ac07c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -3924,7 +3924,7 @@ tools and applications: libsecret openldap sqlite - webkitgtk)) + webkitgtk-for-gtk3)) (native-inputs (list compface `(,glib "bin") intltool pkg-config yelp-tools)) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 5c3b4a265e..5a6c6b5b64 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -775,7 +775,7 @@ infamous 'Wanda the Fish'.") ;; Build libkpathsea as a shared library for DVI support. ;; ("libkpathsea" ,texlive-bin) ("poppler" ,poppler) - ("webkitgtk" ,webkitgtk))) + ("webkitgtk" ,webkitgtk-for-gtk3))) (home-page "https://mate-desktop.org") (synopsis "Document viewer for Mate") (description diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 34710fc65c..80941ac10a 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -124,6 +124,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 7ede16f4bb..85f45d3271 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -40,6 +40,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gnome) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index b5f7d882e4..55edecb649 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -538,7 +538,7 @@ list(APPEND ctrlrLibs \"iberty\")"))))) freetype libiberty libx11 - webkitgtk)) + webkitgtk-for-gtk3)) (native-inputs (list pkg-config)) (home-page "https://ctrlr.org/") diff --git a/gnu/packages/patches/calls-disable-application-test.patch b/gnu/packages/patches/calls-disable-application-test.patch new file mode 100644 index 0000000000..f06f747487 --- /dev/null +++ b/gnu/packages/patches/calls-disable-application-test.patch @@ -0,0 +1,72 @@ +From e0fdae20840ffe3aeca7190eb8b1bcae70f0c93b Mon Sep 17 00:00:00 2001 +From: Vivien Kraus <vivien@planete-kraus.eu> +Date: Sun, 29 Oct 2023 21:03:27 +0100 +Subject: [PATCH] Disable the application test. + +The application test does not work in a Guix container, because an actual +sound card is required to run this integration test. + +* tests/meson.build: Disable test-application. +--- + tests/meson.build | 38 +++++++++++++++++++------------------- + 1 file changed, 19 insertions(+), 19 deletions(-) + +diff --git a/tests/meson.build b/tests/meson.build +index c9bdc3d..65f9b93 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -165,24 +165,24 @@ test('dbus', t, env: test_env) + + dbus_run_session = find_program('dbus-run-session') + +-if dbus_run_session.found () +- test_sources = [ 'test-application.c' ] +- t = executable('application', test_sources, calls_resources, +- c_args : test_cflags, +- link_args: test_link_args, +- pie: true, +- link_with : [calls_vala, libcalls], +- dependencies: calls_deps, +- include_directories : [ +- calls_includes, +- ] +- ) +- test('application', +- dbus_run_session, +- args: t.full_path(), +- env: test_env, +- timeout : 300 +- ) +-endif ++# if dbus_run_session.found () ++# test_sources = [ 'test-application.c' ] ++# t = executable('application', test_sources, calls_resources, ++# c_args : test_cflags, ++# link_args: test_link_args, ++# pie: true, ++# link_with : [calls_vala, libcalls], ++# dependencies: calls_deps, ++# include_directories : [ ++# calls_includes, ++# ] ++# ) ++# test('application', ++# dbus_run_session, ++# args: t.full_path(), ++# env: test_env, ++# timeout : 300 ++# ) ++# endif + + endif + +base-commit: 936d36287324163b958c6ea0c4297c7a607ee18c +prerequisite-patch-id: 20f8a81da35ce1797635eb310e1f85ac5ff814f6 +prerequisite-patch-id: 96768617d0a8ee8c66faa00220a1612e0f527292 +prerequisite-patch-id: 444c1ee57c24ba4b8165497b0a5885844110c59b +prerequisite-patch-id: 9415b848ca9ee277bccbad7c3fff23230d5016f1 +prerequisite-patch-id: 3ca2a45be430041875b21f6c8dfac0bc17916abf +prerequisite-patch-id: e8302846f4650dba9e0072c18be3459ce903fe2e +-- +2.41.0 + diff --git a/gnu/packages/patches/calls-disable-sip-test.patch b/gnu/packages/patches/calls-disable-sip-test.patch new file mode 100644 index 0000000000..75e9294fc0 --- /dev/null +++ b/gnu/packages/patches/calls-disable-sip-test.patch @@ -0,0 +1,44 @@ +From 33b75bfcda3437b12b6155addeeddcea697a4270 Mon Sep 17 00:00:00 2001 +Message-ID: <33b75bfcda3437b12b6155addeeddcea697a4270.1698608762.git.vivien@planete-kraus.eu> +From: Vivien Kraus <vivien@planete-kraus.eu> +Date: Sun, 29 Oct 2023 20:45:24 +0100 +Subject: [PATCH] Disable the direct call SIP test. + +* plugins/provider/tests/test-sip.c (main): Disable it. +--- + +This test passes in a guix shell --container --network but not in +guix shell --container. The most likely cause is it requires access to the +network. + + plugins/provider/tests/test-sip.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/plugins/provider/tests/test-sip.c b/plugins/provider/tests/test-sip.c +index 185d372..4e83d40 100644 +--- a/plugins/provider/tests/test-sip.c ++++ b/plugins/provider/tests/test-sip.c +@@ -442,8 +442,11 @@ main (int argc, + g_test_add ("/Calls/SIP/origin_call_lists", SipFixture, NULL, + setup_sip_origins, test_sip_origin_call_lists, tear_down_sip_origins); + +- g_test_add ("/Calls/SIP/calls_direct_call", SipFixture, NULL, +- setup_sip_origins, test_sip_call_direct_calls, tear_down_sip_origins); ++ /* The direct call fails in the Guix build environment, possibly ++ * because the network is more restricted. */ ++ ++ /* g_test_add ("/Calls/SIP/calls_direct_call", SipFixture, NULL, ++ setup_sip_origins, test_sip_call_direct_calls, tear_down_sip_origins); */ + + ret = g_test_run (); + + +base-commit: 936d36287324163b958c6ea0c4297c7a607ee18c +prerequisite-patch-id: 20f8a81da35ce1797635eb310e1f85ac5ff814f6 +prerequisite-patch-id: 96768617d0a8ee8c66faa00220a1612e0f527292 +prerequisite-patch-id: 444c1ee57c24ba4b8165497b0a5885844110c59b +prerequisite-patch-id: 9415b848ca9ee277bccbad7c3fff23230d5016f1 +prerequisite-patch-id: 3ca2a45be430041875b21f6c8dfac0bc17916abf +-- +2.41.0 + diff --git a/gnu/packages/patches/cogl-fix-double-free.patch b/gnu/packages/patches/cogl-fix-double-free.patch new file mode 100644 index 0000000000..e7a994b33a --- /dev/null +++ b/gnu/packages/patches/cogl-fix-double-free.patch @@ -0,0 +1,32 @@ +From 15d0f7d96cf53263196e26f2eb48ededdff0efeb Mon Sep 17 00:00:00 2001 +Message-ID: <15d0f7d96cf53263196e26f2eb48ededdff0efeb.1694148833.git.vivien@planete-kraus.eu> +From: Vivien Kraus <vivien@planete-kraus.eu> +Date: Thu, 7 Sep 2023 22:16:48 +0200 +Subject: [PATCH] Prevent double free on context objects + +The display is unrefed in the context destructor, but not refed in the +constructor. + +This targets an archived (read-only) repository. +--- + cogl/cogl-context.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cogl/cogl-context.c b/cogl/cogl-context.c +index a7eed29a..7cdc9fe7 100644 +--- a/cogl/cogl-context.c ++++ b/cogl/cogl-context.c +@@ -218,7 +218,7 @@ cogl_context_new (CoglDisplay *display, + return NULL; + } + +- context->display = display; ++ context->display = cogl_object_ref (display); + + /* This is duplicated data, but it's much more convenient to have + the driver attached to the context and the value is accessed a + +base-commit: 61d966c7442d521e38572b7f93ac7b8973a9c65e +-- +2.41.0 + diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch index 54fc01c6d5..c4b1cfae39 100644 --- a/gnu/packages/patches/eudev-rules-directory.patch +++ b/gnu/packages/patches/eudev-rules-directory.patch @@ -4,9 +4,9 @@ The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed the search path to be customized, but eudev no longer has this, hence this hack. ---- eudev-3.1.5/src/udev/udev-rules.c 2015-10-13 06:22:14.000000000 +0800 -+++ eudev-3.1.5/src/udev/udev-rules.c 2015-10-16 20:45:38.491934336 +0800 -@@ -47,15 +47,11 @@ +--- a/src/udev/udev-rules.c ++++ b/src/udev/udev-rules.c +@@ -48,16 +48,11 @@ struct uid_gid { }; }; @@ -20,11 +20,12 @@ this hack. - "/lib/udev/rules.d", - "/usr/lib/udev/rules.d", -#endif +- "/usr/local/lib/udev/rules.d", + NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ NULL}; struct udev_rules { -@@ -1704,6 +1700,9 @@ +@@ -1718,6 +1713,9 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names) { udev_rules_check_timestamp(rules); diff --git a/gnu/packages/patches/feedbackd-use-system-gmobile.patch b/gnu/packages/patches/feedbackd-use-system-gmobile.patch new file mode 100644 index 0000000000..f0a0449472 --- /dev/null +++ b/gnu/packages/patches/feedbackd-use-system-gmobile.patch @@ -0,0 +1,42 @@ +From af9e72124b12ca481fd3592f9c8ea2649f7e4c80 Mon Sep 17 00:00:00 2001 +Message-ID: <af9e72124b12ca481fd3592f9c8ea2649f7e4c80.1698775513.git.vivien@planete-kraus.eu> +From: Vivien Kraus <vivien@planete-kraus.eu> +Date: Sun, 29 Oct 2023 19:12:27 +0100 +Subject: [PATCH] Look for a system-installed gmobile first. + +Meson lets projects use a dependency with fallback to a submodule, in +case the dependency is not installed. + +* meson.build (gmobile_subp): Convert to a dependency with subproject +fallback. +--- +I am waiting for Purism to approve my account before I can report this. + + meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 8725e76..e5504be 100644 +--- a/meson.build ++++ b/meson.build +@@ -14,13 +14,13 @@ gio_unix = dependency('gio-unix-2.0', version: '>=2.50.0') + glib = dependency('glib-2.0', version: '>=2.50.0') + if get_option('daemon') + gobject = dependency('gobject-2.0', version: '>=2.50.0') +- gmobile_subp = subproject('gmobile', ++ gmobile = dependency('gmobile', ++ fallback: ['gmobile', 'gmobile_dep'], + default_options: [ + 'examples=false', + 'gtk_doc=false', + 'tests=false', + ]) +- gmobile = gmobile_subp.get_variable('gmobile_dep') + gsound = dependency('gsound') + gudev = dependency('gudev-1.0', version: '>=232') + json_glib = dependency('json-glib-1.0') + +base-commit: 853bd6d7ea8455efea063ba7c4f29ce8c203285f +-- +2.41.0 + diff --git a/gnu/packages/patches/gdm-elogind-support.patch b/gnu/packages/patches/gdm-elogind-support.patch index 5c8e3bd610..b27e000585 100644 --- a/gnu/packages/patches/gdm-elogind-support.patch +++ b/gnu/packages/patches/gdm-elogind-support.patch @@ -18,10 +18,10 @@ system and user units. meson_options.txt | 5 +- 6 files changed, 66 insertions(+), 42 deletions(-) -diff --git a/common/meson.build b/common/meson.build -index 074dd92e..bca58f7c 100644 ---- a/common/meson.build -+++ b/common/meson.build +Index: gdm-44.1/common/meson.build +=================================================================== +--- gdm-44.1.orig/common/meson.build ++++ gdm-44.1/common/meson.build @@ -11,7 +11,7 @@ libgdmcommon_src = files( ) @@ -31,10 +31,10 @@ index 074dd92e..bca58f7c 100644 gobject_dep, gio_dep, gio_unix_dep, -diff --git a/data/meson.build b/data/meson.build -index 2dec4c23..c3452e1c 100644 ---- a/data/meson.build -+++ b/data/meson.build +Index: gdm-44.1/data/meson.build +=================================================================== +--- gdm-44.1.orig/data/meson.build ++++ gdm-44.1/data/meson.build @@ -164,41 +164,53 @@ else service_config.set('PLYMOUTH_QUIT_SERVICE', '') endif @@ -114,10 +114,10 @@ index 2dec4c23..c3452e1c 100644 # XSession if get_option('gdm-xsession') -diff --git a/libgdm/meson.build b/libgdm/meson.build -index 3f8cafbb..83e95151 100644 ---- a/libgdm/meson.build -+++ b/libgdm/meson.build +Index: gdm-44.1/libgdm/meson.build +=================================================================== +--- gdm-44.1.orig/libgdm/meson.build ++++ gdm-44.1/libgdm/meson.build @@ -56,7 +56,7 @@ libgdm_deps = [ glib_dep, gio_dep, @@ -127,55 +127,46 @@ index 3f8cafbb..83e95151 100644 libgdmcommon_dep, ] -diff --git a/meson.build b/meson.build -index 845f673e..d0ca41ef 100644 ---- a/meson.build -+++ b/meson.build -@@ -96,21 +96,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp')) - if xdmcp_dep.found() and get_option('tcp-wrappers') +Index: gdm-44.1/meson.build +=================================================================== +--- gdm-44.1.orig/meson.build ++++ gdm-44.1/meson.build +@@ -100,16 +100,24 @@ if xdmcp_dep.found() and get_option('tcp libwrap_dep = cc.find_library('wrap') endif --# systemd + # systemd -systemd_dep = dependency('systemd') -libsystemd_dep = dependency('libsystemd') --if meson.version().version_compare('>= 0.53') -- systemd_multiseat_x = find_program('systemd-multi-seat-x', -- required: false, -- dirs: [ -- systemd_dep.get_pkgconfig_variable('systemdutildir'), -- '/lib/systemd', -- '/usr/lib/systemd', -- ]) -+ +-systemd_multiseat_x = find_program('systemd-multi-seat-x', +- required: false, +- dirs: [ +- systemd_dep.get_pkgconfig_variable('systemdutildir'), +- '/lib/systemd', +- '/usr/lib/systemd', +- ]) +-systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x' +logind_provider = get_option('logind-provider') +systemd_dep = dependency('systemd', required: false) +if logind_provider == 'systemd' + libsystemd_dep = dependency('libsystemd') + logind_dep = libsystemd_dep -+ if meson.version().version_compare('>= 0.53') -+ systemd_multiseat_x = find_program('systemd-multi-seat-x', -+ required: false, -+ dirs: [ -+ systemd_dep.get_pkgconfig_variable('systemdutildir'), -+ '/lib/systemd', -+ '/usr/lib/systemd', -+ ]) -+ else -+ systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false) -+ endif ++ systemd_multiseat_x = find_program('systemd-multi-seat-x', ++ required: false, ++ dirs: [ ++ systemd_dep.get_pkgconfig_variable('systemdutildir'), ++ '/lib/systemd', ++ '/usr/lib/systemd', ++ ]) + systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x' - else -- systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false) ++else + elogind_dep = dependency('libelogind') + logind_dep = elogind_dep + systemd_x_server = 'disabled' - endif --systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x' -+ ++endif # Plymouth plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth')) # Check for Solaris auditing API (ADT) -@@ -319,6 +328,7 @@ summary({ +@@ -319,6 +327,7 @@ summary({ 'PAM Syslog': have_pam_syslog, 'Supports PAM Extensions': pam_extensions_supported, 'SeLinux': libselinux_dep.found(), @@ -183,11 +174,11 @@ index 845f673e..d0ca41ef 100644 'Use GDM Xsession': get_option('gdm-xsession'), 'Use UserDisplayServer': get_option('user-display-server'), 'Use SystemdJournal': get_option('systemd-journal'), -diff --git a/meson_options.txt b/meson_options.txt -index 14e0b908..5135d7d6 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -12,6 +12,7 @@ option('initial-vt', type: 'integer', value: 1, description: 'Initial virtual te +Index: gdm-44.1/meson_options.txt +=================================================================== +--- gdm-44.1.orig/meson_options.txt ++++ gdm-44.1/meson_options.txt +@@ -12,6 +12,7 @@ option('initial-vt', type: 'integer', va option('ipv6', type: 'boolean', value: false, description: 'Enables compilation of IPv6 code.') option('lang-file', type: 'string', value: '', description: 'File containing default language settings.') option('libaudit', type: 'feature', value: 'auto', description: 'Add Linux audit support.') @@ -195,7 +186,7 @@ index 14e0b908..5135d7d6 100644 option('log-dir', type: 'string', value: '/var/log/gdm', description: 'Log directory.') option('pam-mod-dir', type: 'string', value: '', description: 'Directory to install PAM modules in.') option('pam-prefix', type: 'string', value: '', description: 'Specify where PAM files go.') -@@ -27,8 +28,8 @@ option('solaris', type: 'boolean', value: false, description: 'Build for Solaris +@@ -27,8 +28,8 @@ option('solaris', type: 'boolean', value option('split-authentication', type: 'boolean', value: true, description: 'Enable multiple simultaneous PAM conversations during login.') option('sysconfsubdir', type: 'string', value: 'gdm', description: 'Directory name used under sysconfdir.') option('systemd-journal', type: 'boolean', value: true, description: 'Use journald support.') diff --git a/gnu/packages/patches/gegl-compatibility-old-librsvg.patch b/gnu/packages/patches/gegl-compatibility-old-librsvg.patch new file mode 100644 index 0000000000..3e5733f9fd --- /dev/null +++ b/gnu/packages/patches/gegl-compatibility-old-librsvg.patch @@ -0,0 +1,80 @@ +From a99a93e5c9013bd4101f5058cdee7d0cf30234fe Mon Sep 17 00:00:00 2001 +Message-ID: <a99a93e5c9013bd4101f5058cdee7d0cf30234fe.1694554961.git.vivien@planete-kraus.eu> +From: Jehan <jehan@girinstud.io> +Date: Wed, 5 Jul 2023 21:18:19 +0200 +Subject: [PATCH] Issue #333: continuing to support librsvg 2.40.x (C + versions). + +Commit 9beeefcbe uses too new functions of librsvg. We could just bump +the minimum required version but there are issues with Rust not being +available on every platform yet. So instead, let's add some conditional +code paths, so that it still builds with librsvg 2.40.x (which was the +last versions fully in C) while we use newer code and no warnings when +using newer versions. +--- + operations/external/svg-load.c | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +diff --git a/operations/external/svg-load.c b/operations/external/svg-load.c +index 3312a0c0a..15c0b30b7 100644 +--- a/operations/external/svg-load.c ++++ b/operations/external/svg-load.c +@@ -76,16 +76,25 @@ query_svg (GeglOperation *operation) + { + GeglProperties *o = GEGL_PROPERTIES (operation); + Priv *p = (Priv*) o->user_data; ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) + gdouble out_width, out_height; ++#else ++ RsvgDimensionData dimensions; ++#endif + + g_return_val_if_fail (p->handle != NULL, FALSE); + +- rsvg_handle_get_intrinsic_size_in_pixels (p->handle, &out_width, &out_height); +- + p->format = babl_format ("R'G'B'A u8"); + ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) ++ rsvg_handle_get_intrinsic_size_in_pixels (p->handle, &out_width, &out_height); + p->height = out_height; +- p->width = out_width; ++ p->width = out_width; ++#else ++ rsvg_handle_get_dimensions (p->handle, &dimensions); ++ p->height = dimensions.height; ++ p->width = dimensions.width; ++#endif + + return TRUE; + } +@@ -98,10 +107,12 @@ load_svg (GeglOperation *operation, + { + GeglProperties *o = GEGL_PROPERTIES (operation); + Priv *p = (Priv*) o->user_data; +- RsvgRectangle svg_rect = {0.0, 0.0, width, height}; + cairo_surface_t *surface; + cairo_t *cr; +- GError *error = NULL; ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) ++ GError *error = NULL; ++ RsvgRectangle svg_rect = {0.0, 0.0, width, height}; ++#endif + + g_return_val_if_fail (p->handle != NULL, -1); + +@@ -115,7 +126,11 @@ load_svg (GeglOperation *operation, + (double)height / (double)p->height); + } + ++#if LIBRSVG_CHECK_VERSION(2, 52, 0) + rsvg_handle_render_document (p->handle, cr, &svg_rect, &error); ++#else ++ rsvg_handle_render_cairo (p->handle, cr); ++#endif + + cairo_surface_flush (surface); + +-- +2.41.0 + diff --git a/gnu/packages/patches/gitg-fix-positional-argument.patch b/gnu/packages/patches/gitg-fix-positional-argument.patch deleted file mode 100644 index 1d3513921c..0000000000 --- a/gnu/packages/patches/gitg-fix-positional-argument.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1978973b12848741b08695ec2020bac98584d636 Mon Sep 17 00:00:00 2001 -From: Jan Beich <jbeich@FreeBSD.org> -Date: Mon, 24 Jan 2022 12:17:52 +0000 -Subject: [PATCH] meson: drop unused argument for i18n.merge_file() - -Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0. - -data/meson.build:8:0: ERROR: Function does not take positional arguments. -data/meson.build:44:0: ERROR: Function does not take positional arguments. ---- - data/meson.build | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/data/meson.build b/data/meson.build -index a8b90fd1..2413531d 100644 ---- a/data/meson.build -+++ b/data/meson.build -@@ -6,7 +6,6 @@ desktop_config = configuration_data() - desktop_config.set('icon', application_id) - desktop_config.set('binary', gitg_name) - i18n.merge_file( -- desktop, - type: 'desktop', - input: configure_file( - input: desktop + '.in.in', -@@ -42,7 +41,6 @@ appdata_config = configuration_data() - appdata_config.set('app-id', application_id) - appdata_config.set('gettext', gitg_name) - i18n.merge_file( -- appdata, - type: 'xml', - input: configure_file( - input: appdata + '.in.in', --- -GitLab - diff --git a/gnu/packages/patches/glib-skip-failing-test.patch b/gnu/packages/patches/glib-skip-failing-test.patch index c7706aaa74..3fde5cb1e2 100644 --- a/gnu/packages/patches/glib-skip-failing-test.patch +++ b/gnu/packages/patches/glib-skip-failing-test.patch @@ -10,12 +10,13 @@ diff --git a/gio/tests/meson.build b/gio/tests/meson.build index a926ae0..4fdbe7a 100644 --- a/gio/tests/meson.build +++ b/gio/tests/meson.build -@@ -317,10 +317,6 @@ if host_machine.system() != 'windows' +@@ -317,11 +317,6 @@ if host_machine.system() != 'windows' 'extra_sources' : [extra_sources, gdbus_test_codegen_generated, gdbus_test_codegen_generated_interface_info], 'c_args' : ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32'], }, - 'gdbus-threading' : { - 'extra_sources' : extra_sources, +- 'extra_programs': extra_programs, - 'suite' : ['slow'], - }, 'gmenumodel' : { diff --git a/gnu/packages/patches/gmobile-make-it-installable.patch b/gnu/packages/patches/gmobile-make-it-installable.patch new file mode 100644 index 0000000000..9db6554877 --- /dev/null +++ b/gnu/packages/patches/gmobile-make-it-installable.patch @@ -0,0 +1,89 @@ +From c1ea43a45f4588f21752b0ad679c43350a9c8905 Mon Sep 17 00:00:00 2001 +Message-ID: <c1ea43a45f4588f21752b0ad679c43350a9c8905.1698604357.git.vivien@planete-kraus.eu> +From: Vivien Kraus <vivien@planete-kraus.eu> +Date: Sun, 29 Oct 2023 19:00:44 +0100 +Subject: [PATCH] Install gmobile as a shared library. + +Tracked at https://gitlab.gnome.org/guidog/gmobile/-/issues/1 + +* src/meson.build: Install the header files. Import pkgconfig. +Generate a pkg-config definition. +(gm_lib): use "library", not "static_library". Install it. +(gmobile_gir): Install it. +* meson.build: Install gm-config.h. +--- + meson.build | 1 + + src/meson.build | 22 +++++++++++++++++++--- + 2 files changed, 20 insertions(+), 3 deletions(-) + +diff --git a/meson.build b/meson.build +index e9f6c62..51ebeac 100644 +--- a/meson.build ++++ b/meson.build +@@ -83,6 +83,7 @@ root_inc = include_directories('.') + configure_file( + output: 'gm-config.h', + configuration: config_h, ++ install_dir: get_option('includedir') + ) + + subdir('data') +diff --git a/src/meson.build b/src/meson.build +index ee98a39..3dedbe4 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -1,3 +1,5 @@ ++pkg = import('pkgconfig') ++ + gm_deps = [ + gio_dep, + glib_dep, +@@ -37,18 +39,33 @@ gm_c_args = [ + '-DG_LOG_DOMAIN="gmobile"', + ] + +-gm_lib = static_library( ++gm_lib = library( + 'gmobile', + gm_sources, + include_directories: root_inc, + c_args: gm_c_args, +- dependencies: gm_deps) ++ dependencies: gm_deps, ++ install: true) ++ ++pkg.generate(gm_lib) + + gmobile_dep = declare_dependency( + include_directories: [root_inc, include_directories('.')], + dependencies: gm_deps, + link_with: gm_lib) + ++install_headers( ++ 'gmobile.h', ++ 'gm-cutout.h', ++ 'gm-device-info.h', ++ 'gm-device-tree.h', ++ 'gm-display-panel.h', ++ 'gm-error.h', ++ 'gm-main.h', ++ 'gm-rect.h', ++ 'gm-svg-path.h', ++ 'gm-timeout.h') ++ + if get_option('gtk_doc') + gmobile_gir_extra_args = [ + '--c-include=gmobile.h', +@@ -66,7 +83,6 @@ if get_option('gtk_doc') + identifier_prefix: 'Gm', + link_with: gm_lib, + includes: ['Gio-2.0'], +- install: false, + extra_args: gmobile_gir_extra_args, + ) + endif + +base-commit: 382fc89472176d2f1d435517cad53d969d8b8eff +-- +2.41.0 + diff --git a/gnu/packages/patches/gnome-control-center-firmware-security.patch b/gnu/packages/patches/gnome-control-center-firmware-security.patch new file mode 100644 index 0000000000..fd9d7b8ff4 --- /dev/null +++ b/gnu/packages/patches/gnome-control-center-firmware-security.patch @@ -0,0 +1,33 @@ +From: Jeremy Bicha <jeremy.bicha@canonical.com> +Date: Mon, 22 Aug 2022 08:31:15 -0400 +Subject: firmware-security: Disable + +Not yet useful enough to justify its inclusion by default here + +You can get the same info by running +fwupdmgr security + +If you drop this patch, add a Depends: fwupd [linux-any] + +https://launchpad.net/bugs/1987162 + +https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1938 + +[Stolen from the debian package] +--- + shell/cc-panel-loader.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c +index 17f9601..1b819a5 100644 +--- a/shell/cc-panel-loader.c ++++ b/shell/cc-panel-loader.c +@@ -113,7 +113,7 @@ static CcPanelLoaderVtable default_panels[] = + PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL), + PANEL_TYPE("keyboard", cc_keyboard_panel_get_type, NULL), + PANEL_TYPE("location", cc_location_panel_get_type, NULL), +- PANEL_TYPE("firmware-security",cc_firmware_security_panel_get_type, cc_firmware_security_panel_static_init_func), ++ // PANEL_TYPE("firmware-security",cc_firmware_security_panel_get_type, cc_firmware_security_panel_static_init_func), + PANEL_TYPE("microphone", cc_microphone_panel_get_type, NULL), + PANEL_TYPE("mouse", cc_mouse_panel_get_type, NULL), + PANEL_TYPE("multitasking", cc_multitasking_panel_get_type, NULL), diff --git a/gnu/packages/patches/gtk2-harden-list-store.patch b/gnu/packages/patches/gtk2-harden-list-store.patch new file mode 100644 index 0000000000..f49dc3bc77 --- /dev/null +++ b/gnu/packages/patches/gtk2-harden-list-store.patch @@ -0,0 +1,42 @@ +Backport the implementation of gtk_list_store_iter_is_valid from gtk+-3. + +Index: gtk+-2.24.33/gtk/gtkliststore.c +=================================================================== +--- gtk+-2.24.33.orig/gtk/gtkliststore.c ++++ gtk+-2.24.33/gtk/gtkliststore.c +@@ -1195,16 +1195,31 @@ gboolean + gtk_list_store_iter_is_valid (GtkListStore *list_store, + GtkTreeIter *iter) + { ++ GSequenceIter *seq_iter; ++ + g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), FALSE); + g_return_val_if_fail (iter != NULL, FALSE); + +- if (!VALID_ITER (iter, list_store)) +- return FALSE; ++ /* can't use VALID_ITER() here, because iter might point ++ * to random memory. ++ * ++ * We MUST NOT dereference it. ++ */ + +- if (g_sequence_iter_get_sequence (iter->user_data) != list_store->seq) ++ if (iter == NULL || ++ iter->user_data == NULL || ++ list_store->stamp != iter->stamp) + return FALSE; + +- return TRUE; ++ for (seq_iter = g_sequence_get_begin_iter (list_store->seq); ++ !g_sequence_iter_is_end (seq_iter); ++ seq_iter = g_sequence_iter_next (seq_iter)) ++ { ++ if (seq_iter == iter->user_data) ++ return TRUE; ++ } ++ ++ return FALSE; + } + + static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_source, diff --git a/gnu/packages/patches/libcall-ui-make-it-installable.patch b/gnu/packages/patches/libcall-ui-make-it-installable.patch new file mode 100644 index 0000000000..078422913d --- /dev/null +++ b/gnu/packages/patches/libcall-ui-make-it-installable.patch @@ -0,0 +1,81 @@ +From 1a79c18e85232a6f56a58ec99271b92d5b0e6dca Mon Sep 17 00:00:00 2001 +Message-ID: <1a79c18e85232a6f56a58ec99271b92d5b0e6dca.1698606228.git.vivien@planete-kraus.eu> +From: Vivien Kraus <vivien@planete-kraus.eu> +Date: Sun, 29 Oct 2023 19:42:55 +0100 +Subject: [PATCH] Install libcall-ui. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Tracked at https://gitlab.gnome.org/World/Phosh/libcall-ui/-/issues/27 + +* src/meson.build: Require pkgconfig. Install a pkg-config +definition. Install the headers. +(call_ui_lib): Install it. Use “library”, not “static_library”. +* meson.build (config_h): Install the config.h file. +(call_ui_enum_sources): Install the header file. +--- + meson.build | 1 + + src/meson.build | 22 +++++++++++++++++++--- + 2 files changed, 20 insertions(+), 3 deletions(-) + +diff --git a/meson.build b/meson.build +index 6d96178..80514ba 100644 +--- a/meson.build ++++ b/meson.build +@@ -93,6 +93,7 @@ configure_file( + input: 'cui-config.h.in', + output: 'cui-config.h', + configuration: config_h, ++ install_dir: get_option('includedir') + ) + + #subdir('data') +diff --git a/src/meson.build b/src/meson.build +index bdb347c..2f9fa0c 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -1,7 +1,11 @@ ++pkg = import('pkgconfig') ++ + call_ui_enum_headers = files(['cui-call.h', + ]) + call_ui_enum_sources = gnome.mkenums_simple('cui-enums', +- sources : call_ui_enum_headers) ++ sources : call_ui_enum_headers, ++ install_header: true, ++ install_dir: get_option('includedir')) + + call_ui_resources = gnome.compile_resources( + 'cui-resources', +@@ -50,11 +54,23 @@ call_ui_c_args = [ + '-DG_LOG_DOMAIN="Cui"', + ] + +-call_ui_lib = static_library('call-ui', ++call_ui_lib = library('call-ui', + call_ui_sources, + c_args: call_ui_c_args, + include_directories: [ root_inc, src_inc ], +- dependencies: call_ui_deps) ++ dependencies: call_ui_deps, ++ install: true) ++ ++pkg.generate(call_ui_lib) ++ ++install_headers( ++ 'call-ui.h', ++ 'cui-call.h', ++ 'cui-call-display.h', ++ 'cui-main.h', ++ 'cui-dialpad.h', ++ 'cui-keypad.h', ++) + + libcall_ui_dep = declare_dependency( + sources: call_ui_enum_sources, + +base-commit: 817d770cfa6876d37c4a6d09b00c9bdedfdce8b7 +-- +2.41.0 + diff --git a/gnu/packages/patches/nautilus-extension-search-path.patch b/gnu/packages/patches/nautilus-extension-search-path.patch index d5dc35b241..1394956315 100644 --- a/gnu/packages/patches/nautilus-extension-search-path.patch +++ b/gnu/packages/patches/nautilus-extension-search-path.patch @@ -1,54 +1,62 @@ Allow Nautilus to search for extensions in the directories listed in $NAUTILUS_EXTENSION_PATH. -diff --git a/src/nautilus-module.c b/src/nautilus-module.c -index bf474bd..42e2a4e 100644 ---- a/src/nautilus-module.c -+++ b/src/nautilus-module.c -@@ -211,6 +211,10 @@ static void +Index: nautilus-44.2/src/nautilus-module.c +=================================================================== +--- nautilus-44.2.orig/src/nautilus-module.c ++++ nautilus-44.2/src/nautilus-module.c +@@ -220,8 +220,16 @@ static void load_module_dir (const char *dirname) { GDir *dir; +- + static GHashTable *loaded = NULL; + g_autoptr (GStrvBuilder) installed_module_name_builder = g_strv_builder_new (); ++ ++ if (installed_module_names != NULL) ++ g_strv_builder_addv (installed_module_name_builder, ++ (const gchar **)installed_module_names); + + if (loaded == NULL) + loaded = g_hash_table_new (g_str_hash, g_str_equal); - ++ dir = g_dir_open (dirname, 0, NULL); -@@ -221,15 +225,22 @@ load_module_dir (const char *dirname) - while ((name = g_dir_read_name (dir))) + if (dir) +@@ -232,16 +240,24 @@ load_module_dir (const char *dirname) { if (g_str_has_suffix (name, "." G_MODULE_SUFFIX)) -- { + { - char *filename; - - filename = g_build_filename (dirname, - name, - NULL); -- nautilus_module_load_file (filename); +- nautilus_module_load_file (filename, installed_module_name_builder); - g_free (filename); -- } -+ { -+ /* Make sure each module is loaded only twice or this could -+ lead to a crash. Double loading can occur if DIRNAME -+ occurs more than once in $NAUTILUS_EXTENSION_PATH. */ -+ if (!g_hash_table_contains (loaded, name)) -+ { -+ char *filename; ++ /* Make sure each module is loaded only twice or this could ++ lead to a crash. Double loading can occur if DIRNAME ++ occurs more than once in $NAUTILUS_EXTENSION_PATH. */ ++ if (!g_hash_table_contains (loaded, name)) ++ { ++ char *filename; + -+ filename = g_build_filename (dirname, -+ name, -+ NULL); -+ nautilus_module_load_file (filename); -+ g_hash_table_add (loaded, g_strdup (name)); -+ g_free (filename); -+ } -+ } - } ++ filename = g_build_filename (dirname, ++ name, ++ NULL); ++ nautilus_module_load_file (filename, ++ installed_module_name_builder); ++ g_hash_table_add (loaded, g_strdup (name)); ++ g_free (filename); ++ } + } +- } ++ } g_dir_close (dir); -@@ -257,10 +268,24 @@ nautilus_module_setup (void) + } + +@@ -278,10 +294,24 @@ nautilus_module_setup (void) if (!initialized) { diff --git a/gnu/packages/patches/shared-mime-info-xdgmime-path.patch b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch new file mode 100644 index 0000000000..27c578f3fa --- /dev/null +++ b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch @@ -0,0 +1,22 @@ +Adapted from <https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/182>. + +diff --git a/meson.build b/meson.build +index 3c75424..7058562 100644 +--- a/meson.build ++++ b/meson.build +@@ -26,11 +26,11 @@ xmlto = find_program('xmlto', required: false) + ############################################################################### + # Find xdgmime + +-xdgmime = get_option('xdgmime-path') / 'src' ++xdgmime = get_option('xdgmime-path') + +-xdgmime_print_mime_data = find_program(xdgmime/'print-mime-data', required: false) +-xdgmime_test_mime_data = find_program(xdgmime/'test-mime-data', required: false) +-xdgmime_test_mime = find_program(xdgmime/'test-mime', required: false) ++xdgmime_print_mime_data = find_program('print-mime-data', xdgmime/'print-mime-data', required: false) ++xdgmime_test_mime_data = find_program('test-mime-data', xdgmime/'test-mime-data', required: false) ++xdgmime_test_mime = find_program('test-mime', xdgmime/'test-mime', required: false) + xdgmime_found = ( + xdgmime_print_mime_data.found() and + xdgmime_test_mime_data.found() and diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index ee48ad0e2b..c7471169d9 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -102,6 +102,7 @@ POSIX regular expression API.") (base32 "0s4x2l6g0sb9piwkr3sxqwdswz2g6bk1hhwngv0kv4w38wybir0l")))) (build-system gnu-build-system) + (outputs '("out" "static")) (inputs (list bzip2 readline zlib)) (arguments (list #:configure-flags @@ -114,14 +115,23 @@ POSIX regular expression API.") ;; riscv64-linux is an unsupported architecture. #$@(if (target-riscv64?) #~() - #~("--enable-jit")) - "--disable-static") + #~("--enable-jit"))) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-paths (lambda _ (substitute* "RunGrepTest" - (("/bin/echo") (which "echo")))))))) + (("/bin/echo") (which "echo"))))) + (add-after 'install 'move-static-libs + (lambda _ + (let ((source (string-append #$output "/lib")) + (static (string-append #$output:static "/lib"))) + (mkdir-p static) + (for-each (lambda (lib) + (link lib (string-append static "/" + (basename lib))) + (delete-file lib)) + (find-files source "\\.a$")))))))) (synopsis "Perl Compatible Regular Expressions") (description "The PCRE library is a set of functions that implement regular expression diff --git a/gnu/packages/rednotebook.scm b/gnu/packages/rednotebook.scm index f63104ad32..a5dcc26efd 100644 --- a/gnu/packages/rednotebook.scm +++ b/gnu/packages/rednotebook.scm @@ -71,7 +71,8 @@ `("LD_LIBRARY_PATH" ":" prefix (,webkitgtk-path))) #t)))))) (inputs - (list gtk+ gtksourceview-3 python-pyyaml python-pygobject webkitgtk)) + (list gtk+ gtksourceview-3 python-pyyaml python-pygobject + webkitgtk-for-gtk3)) ;; TODO: package the following for python3 (if possible), add them as ;; dependencies, and remove them from rednotebook source: ;; pygtkspellcheck, elib.intl, msgfmt, txt2tags diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1490c783fa..7a54baba4d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages dbm) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages rails) #:use-module (gnu packages readline) #:use-module (gnu packages autotools) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 400832045f..e8cf86f504 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -514,7 +514,7 @@ Vim bindings and Xresource compatibility.") #t))))) (inputs `(("dmenu" ,dmenu) - ("gcr" ,gcr) + ("gcr" ,gcr-3) ("glib-networking" ,glib-networking) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("webkitgtk" ,webkitgtk-with-libsoup2) diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 5a9d5ed480..85b75c17d6 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -621,7 +621,7 @@ parser. It is \"not fit for use at this point\", but gfeeds uses it anyway.") python-readability-lxml python-requests syndication-domination - webkitgtk-next)) + webkitgtk)) (home-page "https://gfeeds.gabmus.org/") (synopsis "Easy-to-use GTK+ RSS/Atom feed reader") (description "Feeds is an RSS/Atom feed reader made with GTK+ diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 4814c22b6c..af90fc35eb 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -325,8 +325,8 @@ (list abseil-cpp-cxxstd17 crc32c ffmpeg - glib-next - glibmm-next + glib + glibmm libdrm libglvnd libjpeg-turbo @@ -486,7 +486,7 @@ Telegram project, for its use in telegram desktop client.") (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (native-inputs - (list `(,glib-next "bin") + (list `(,glib "bin") `(,gtk+ "bin") pkg-config python-wrapper)) @@ -498,8 +498,8 @@ Telegram project, for its use in telegram desktop client.") fcitx-qt5 fcitx5-qt ffmpeg - glib-next - glibmm-next + glib + glibmm gtk+ hime hunspell @@ -531,7 +531,7 @@ Telegram project, for its use in telegram desktop client.") rnnoise wayland wayland-protocols - webkitgtk + webkitgtk-for-gtk3 webrtc-for-telegram-desktop xcb-util-keysyms xxhash diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 3092c39b24..fb239f1ba8 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages databases) #:use-module (gnu packages sqlite) @@ -94,6 +95,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system qt)) (define-public phonesim @@ -1088,3 +1090,106 @@ very useful to emulate thousands of user agents calling your SIP system.") (license (list license:gpl2+ ; sipp's main license license:bsd-3 ; send_packets.c, send_packets.h license:zlib)))) ; md5.c, md5.h + +(define-public sofia-sip + (package + (name "sofia-sip") + (version "1.13.16") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/freeswitch/sofia-sip") + (commit (string-append "v" version)))) + (file-name (git-file-name "sofia-sip" version)) + (sha256 + (base32 + "1hi9np49wcq91d1w93qi6by40qnr348hpzc2wkw3l955zh1n30lr")))) + (build-system gnu-build-system) + (arguments + (list + ;; run_addrinfo requires /etc/services for the 'echo' service. + #:make-flags #~'("XFAIL_TESTS = run_addrinfo" + ;; libsofia-sip-ua/nta/Makefile.am sets + ;; TESTS_ENVIRONMENT = $(SHELL), which is odd, because + ;; according to the Automake manual, it should be + ;; AM_TESTS_ENVIRONMENT, and it should end with a + ;; semicolon. + "TESTS_ENVIRONMENT = \ +export CHECK_NTA_VERBOSE=10; \ +export CHECK_NUA_VERBOSE=10; ") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-shebangs + (lambda _ + (patch-shebang "autogen.sh"))) + (add-after 'unpack 'disable-failing-test + (lambda _ + ;; run_test_nta is disabled because it fails randomly (not for a + ;; timeout-related reason). The test suite is otherwise very + ;; long, most tests backed by libcheck timeout even with a ×100 + ;; multiplier. The tests are disabled here rather than put to + ;; XFAIL_TESTS because it saves compilation time. (see: + ;; https://github.com/freeswitch/sofia-sip/issues/234) + (substitute* "libsofia-sip-ua/nta/Makefile.am" + (("TESTS =") + "TESTS = run_test_nta_api\n# Disabled: ")) + (substitute* "libsofia-sip-ua/nua/Makefile.am" + (("TESTS \\+=") + "TESTS +=\n# Disabled: ")) + ;; The glib tests both wait forever without a timeout. + (substitute* "libsofia-sip-ua-glib/su-glib/Makefile.am" + (("TESTS =") + "TESTS =\n# Disabled: ")) + ;; Another timeout failing test: + (substitute* "tests/Makefile.am" + (("TESTS = test_nua") + "TESTS =")) + ;; This test fails for unknown reason: + (substitute* "tests/Makefile.am" + (("TESTS \\+= check_dlopen_sofia check_sofia") + "TESTS += check_dlopen_sofia"))))))) + (inputs + (list glib + openssl + zlib)) + (native-inputs + (list autoconf + autoconf-archive + automake + check + libtool + pkg-config)) + (home-page "https://sofia-sip.sourceforge.net/") + (synopsis "SIP user-agent library") + (description "Sofia-SIP is a @acronym{SIP, Session Initiation Protocol} +User-Agent library, compliant with the +@url{https://datatracker.ietf.org/doc/html/rfc3261, IETF RFC3261} +specification. It can be used as a building block for @acronym{SIP} client +software foruses such as @acronym{VoIP, Voice over @acronym{IP, Internet +Protocol}}, @acronym{IM, Instant Messaging}, and many other real-time and +person-to-person communication services.") + (license license:lgpl2.1))) + +(define-public libcallaudio + (package + (name "libcallaudio") + (version "0.1.9") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mobian1/callaudiod/") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qnllb28101c2ss1k3iwr04gljfyjqmbla5csj6vkq1y63aagr9s")))) + (build-system meson-build-system) + (inputs (list alsa-lib glib pulseaudio)) + (native-inputs + (list `(,glib "bin") ;for gdbus-codegen + pkg-config)) + (home-page "https://gitlab.com/mobian1/callaudiod") + (synopsis "Library for audio routing during voice calls") + (description "This package provides @command{callaudiod}, a daemon to +route audio during phone calls, and a library.") + (license license:gpl3+))) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index f5714e934a..cd580d7343 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -826,7 +826,7 @@ in plain text file format.") (define-public editorconfig-core-c (package (name "editorconfig-core-c") - (version "0.12.5") + (version "0.12.6") (source (origin (method git-fetch) @@ -835,7 +835,7 @@ in plain text file format.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "073sh18y0v8wm10iphaia54pkdmwylalccpn1k5i9dwyfjzgj7yg")))) + (base32 "05qllpls3r95nfl14gqq3cv4lisf07fgn85n52w8blc5pfl1h93g")))) (build-system cmake-build-system) (arguments '(#:phases @@ -845,6 +845,13 @@ in plain text file format.") (let ((tests (assoc-ref inputs "tests"))) (copy-recursively tests "tests")) #t)) + (add-after 'insert-tests 'disable-failing-tests + (lambda _ + (substitute* "tests/parser/CMakeLists.txt" + (("# Test max property name and values") + "# Disabled: test max property name and values\nif(FALSE)\n") + (("# Test max section names") + "endif()\n\n# Test max section names")))) (add-after 'install 'delete-static-library (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index ea4601a5d0..8a2a187dca 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -483,7 +483,7 @@ exec smbd $@"))) ;; The following static libraries are required to build ;; the static output of QEMU. `(,glib "static") - `(,pcre "static") + `(,pcre2 "static") `(,zlib "static"))) (home-page "https://www.qemu.org") (synopsis "Machine emulator and virtualizer") diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm index 8ba1292e28..7b39aba58d 100644 --- a/gnu/packages/vnc.scm +++ b/gnu/packages/vnc.scm @@ -151,7 +151,7 @@ telepathy-glib vte ; for st plugin wayland - webkitgtk ; for www plugin + webkitgtk-for-gtk3 ; for www plugin libx11 libxext ; for xdmcp plugin xdg-utils diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index d38882046d..3033102926 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -138,7 +138,7 @@ ("which" ,which))) ;for tests (inputs `(("adwaita-icon-theme" ,adwaita-icon-theme) - ("gcr" ,gcr) + ("gcr" ,gcr-3) ("glib" ,glib) ("glib-networking" ,glib-networking) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) @@ -711,7 +711,7 @@ driven and does not detract you from your daily work.") gsettings-desktop-schemas cl-gobject-introspection gtk+ ; For the main loop - webkitgtk ; Required when we use its typelib + webkitgtk-for-gtk3 ; Required when we use its typelib gobject-introspection pkg-config)) (synopsis "Extensible web-browser in Common Lisp") diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 0c82435cde..527195dbff 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -126,14 +126,14 @@ engine that uses Wayland for graphics output.") (define-public webkitgtk (package - (name "webkitgtk") ; webkit2gtk4 - (version "2.40.5") + (name "webkitgtk") + (version "2.42.2") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "0zq32rn34v7hzr53s100r77aglbi6wffp9b13bcj31k6cfi53q3x")) + (base32 "066i1dswmrgvxfb1fyv93pkkl8zqy16ps62j6bvbkw97hqzal82p")) (patches (search-patches "webkitgtk-adjust-bubblewrap-paths.patch")))) (build-system cmake-build-system) @@ -149,10 +149,8 @@ engine that uses Wayland for graphics output.") #:build-type "Release" #:configure-flags #~(list "-DPORT=GTK" - ;; GTKDOC will be removed upstream soon in favor of - ;; gi-docgen; it is normally disabled because the - ;; doc is rather expensive to build. - "-DENABLE_GTKDOC=ON" + "-DENABLE_INTROSPECTION=ON" + "-DUSE_GTK4=ON" ;; The minibrowser, not built by default, is a good ;; tool to validate the good operation of ;; webkitgtk. @@ -232,7 +230,7 @@ engine that uses Wayland for graphics output.") ruby-2.7 unifdef)) (propagated-inputs - (list gtk+ libsoup)) + (list gtk libsoup)) (inputs (list at-spi2-core bubblewrap @@ -249,8 +247,8 @@ engine that uses Wayland for graphics output.") libgcrypt libgudev libjpeg-turbo + libjxl libmanette - libnotify libpng libseccomp libsecret @@ -283,34 +281,34 @@ propagated by default) such as @code{gst-plugins-good} and license:bsd-2 license:bsd-3)))) -(define-public webkitgtk-next +(define-public webkitgtk-for-gtk3 (package (inherit webkitgtk) - (name "webkitgtk-next") ; webkit2gtk5 + (name "webkitgtk-for-gtk3") (arguments (substitute-keyword-arguments (package-arguments webkitgtk) ((#:configure-flags flags) - #~(cons* "-DENABLE_INTROSPECTION=ON" - "-DUSE_GTK4=ON" - (delete "-DENABLE_GTKDOC=ON" #$flags))))) + #~(cons* "-DENABLE_GTKDOC=ON" + (delete "-DENABLE_INTROSPECTION=ON" + (delete "-DUSE_GTK4=ON" #$flags)))))) (propagated-inputs (modify-inputs (package-propagated-inputs webkitgtk) - (replace "gtk+" gtk))) + (replace "gtk" gtk+))) (inputs (modify-inputs (package-inputs webkitgtk) - (delete "libnotify"))))) + (prepend libnotify))))) ;;; Required by e.g. emacs-next-pgtk, emacs-xwidgets, and some other GNOME ;;; packages for webkit2gtk-4.0. See also the upstream tracker for libsoup 3: ;;; https://gitlab.gnome.org/GNOME/libsoup/-/issues/218. (define-public webkitgtk-with-libsoup2 - (package/inherit webkitgtk + (package/inherit webkitgtk-for-gtk3 (name "webkitgtk-with-libsoup2") - (arguments (substitute-keyword-arguments (package-arguments webkitgtk) + (arguments (substitute-keyword-arguments (package-arguments webkitgtk-for-gtk3) ((#:configure-flags flags) #~(cons "-DUSE_SOUP2=ON" #$flags)))) (propagated-inputs - (modify-inputs (package-propagated-inputs webkitgtk) + (modify-inputs (package-propagated-inputs webkitgtk-for-gtk3) (replace "libsoup" libsoup-minimal-2))))) (define-public wpewebkit diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 01e48fda57..ec68deb31a 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -88,7 +88,7 @@ (define-public libxmlb (package (name "libxmlb") - (version "0.3.12") + (version "0.3.14") (source (origin (method git-fetch) @@ -98,7 +98,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0v9s2k5saxrs0ssjyg1zxaibybikvaw7fip6sy0b8ixzax9r5y0c")))) + (base32 "0qcp881s559wc73db91vjccrv0d3zva87l5jdp5w0ygzz6bmg5cn")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t)) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 82c6940780..154e3079d3 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -82,6 +82,7 @@ #:select (mount-flags->bit-mask swap-space->flags-bit-mask)) #:use-module (guix gexp) + #:use-module ((guix packages) #:select (package-version)) #:use-module (guix records) #:use-module (guix modules) #:use-module (guix pki) @@ -152,11 +153,15 @@ udev-configuration udev-configuration? udev-configuration-rules + udev-configuration-hardware udev-service-type udev-service ; deprecated udev-rule + udev-hardware file->udev-rule + file->udev-hardware udev-rules-service + udev-hardware-service login-configuration login-configuration? @@ -2232,11 +2237,13 @@ command that allows you to share pre-built binaries with others over HTTP."))) (udev udev-configuration-udev ;file-like (default eudev)) (rules udev-configuration-rules ;list of file-like - (default '()))) + (default '())) + (hardware udev-configuration-hardware ;list of file-like + (default '()))) -(define (udev-rules-union packages) - "Return the union of the @code{lib/udev/rules.d} directories found in each -item of @var{packages}." +(define (udev-configurations-union subdirectory packages) + "Return the union of the lib/udev/SUBDIRECTORY directories found in each +item of PACKAGES." (define build (with-imported-modules '((guix build union) (guix build utils)) @@ -2247,51 +2254,64 @@ item of @var{packages}." (srfi srfi-26)) (define %standard-locations - '("/lib/udev/rules.d" "/libexec/udev/rules.d")) + '(#$(string-append "/lib/udev/" subdirectory) + #$(string-append "/libexec/udev/" subdirectory))) - (define (rules-sub-directory directory) - ;; Return the sub-directory of DIRECTORY containing udev rules, or - ;; #f if none was found. + (define (configuration-sub-directory directory) + ;; Return the sub-directory of DIRECTORY containing udev + ;; configurations, or #f if none was found. (find directory-exists? (map (cut string-append directory <>) %standard-locations))) (union-build #$output - (filter-map rules-sub-directory '#$packages))))) + (filter-map configuration-sub-directory '#$packages))))) + + (computed-file (string-append "udev-" subdirectory) build)) + +(define (udev-rules-union packages) + "Return the union of the lib/udev/rules.d directories found in each +item of PACKAGES." + (udev-configurations-union "rules.d" packages)) - (computed-file "udev-rules" build)) +(define (udev-configuration-file subdirectory file-name contents) + "Return a directory with a udev configuration file FILE-NAME containing CONTENTS." + (file->udev-configuration-file subdirectory file-name (plain-file file-name contents))) (define (udev-rule file-name contents) "Return a directory with a udev rule file FILE-NAME containing CONTENTS." - (computed-file file-name - (with-imported-modules '((guix build utils)) - #~(begin - (use-modules (guix build utils)) - - (define rules.d - (string-append #$output "/lib/udev/rules.d")) + (udev-configuration-file "rules.d" file-name contents)) - (mkdir-p rules.d) - (call-with-output-file - (string-append rules.d "/" #$file-name) - (lambda (port) - (display #$contents port))))))) +(define (udev-hardware file-name contents) + "Return a directory with a udev hardware file FILE-NAME containing CONTENTS." + (udev-configuration-file "hwdb.d" file-name contents)) -(define (file->udev-rule file-name file) - "Return a directory with a udev rule file FILE-NAME which is a copy of FILE." +(define (file->udev-configuration-file subdirectory file-name file) + "Return a directory with a udev configuration file FILE-NAME which is a copy + of FILE." (computed-file file-name (with-imported-modules '((guix build utils)) #~(begin (use-modules (guix build utils)) - (define rules.d - (string-append #$output "/lib/udev/rules.d")) + (define configuration-directory + (string-append #$output + "/lib/udev/" + #$subdirectory)) (define file-copy-dest - (string-append rules.d "/" #$file-name)) + (string-append configuration-directory "/" #$file-name)) - (mkdir-p rules.d) + (mkdir-p configuration-directory) (copy-file #$file file-copy-dest))))) +(define (file->udev-rule file-name file) + "Return a directory with a udev rule file FILE-NAME which is a copy of FILE." + (file->udev-configuration-file "rules.d" file-name file)) + +(define (file->udev-hardware file-name file) + "Return a directory with a udev hardware file FILE-NAME which is a copy of FILE." + (file->udev-configuration-file "hwdb.d" file-name file)) + (define kvm-udev-rule ;; Return a directory with a udev rule that changes the group of /dev/kvm to ;; "kvm" and makes it #o660. Apparently QEMU-KVM used to ship this rule, @@ -2399,13 +2419,27 @@ item of @var{packages}." (define (udev-etc config) (match-record config <udev-configuration> - (udev rules) + (udev rules hardware) + (let* ((hardware + (udev-configurations-union "hwdb.d" (cons* udev hardware))) + (hwdb.bin + (computed-file + "hwdb.bin" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (setenv "UDEV_HWDB_PATH" #$hardware) + (invoke #+(file-append udev "/bin/udevadm") + "hwdb" + "--update" + "-o" #$output)))))) `(("udev" ,(file-union "udev" `(("udev.conf" ,udev.conf) ("rules.d" ,(udev-rules-union (cons* udev kvm-udev-rule - rules))))))))) + rules))) + ("hwdb.bin" ,hwdb.bin)))))))) (define udev-service-type (service-type (name 'udev) @@ -2414,12 +2448,15 @@ item of @var{packages}." udev-shepherd-service) (service-extension etc-service-type udev-etc))) (compose concatenate) ;concatenate the list of rules - (extend (lambda (config rules) + (extend (lambda (config extensions) (let ((initial-rules - (udev-configuration-rules config))) + (udev-configuration-rules config)) + (initial-hardware + (udev-configuration-hardware config))) (udev-configuration (inherit config) - (rules (append initial-rules rules)))))) + (rules (append initial-rules extensions)) + (hardware (append initial-hardware extensions)))))) (default-value (udev-configuration)) (description "Run @command{udev}, which populates the @file{/dev} @@ -2454,6 +2491,19 @@ instance." (description "This service adds udev rules.")))) (service type #f))) +(define (udev-hardware-service name hardware-files) + "Return a service that extends udev-service-type with HARDWARE-FILES, named +NAME-udev-hardware." + (let* ((name (symbol-append name '-udev-hardware)) + (udev-extension (const (list hardware-files))) + (type (service-type + (name name) + (extensions (list + (service-extension + udev-service-type udev-extension))) + (description "This service adds udev hardware files.")))) + (service type #f))) + (define (swap-space->shepherd-service-name space) (let ((target (swap-space-target space))) (symbol-append 'swap- diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 5a0c634393..1edcc6eb9e 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -163,7 +163,7 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (group "messagebus") (system? #t) (comment "D-Bus system bus user") - (home-directory "/var/run/dbus") + (home-directory "/run/dbus") (shell (file-append shadow "/sbin/nologin"))))) (define dbus-setuid-programs @@ -186,7 +186,38 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (let ((user (getpwnam "messagebus"))) ;; This directory contains the daemon's socket so it must be ;; world-readable. - (mkdir-p/perms "/var/run/dbus" user #o755)) + (mkdir-p/perms "/run/dbus" user #o755)) + + (catch 'system-error + (lambda () + (symlink "/run/dbus" "/var/run/dbus")) + (lambda args + (let ((errno (system-error-errno args))) + (cond + ((= errno EEXIST) + (let ((existing-name + (false-if-exception + (readlink "/var/run/dbus")))) + (unless (equal? existing-name "/run/dbus") + ;; Move the content of /var/run/dbus to /run/dbus, and + ;; retry. + (let ((dir (opendir "/var/run/dbus"))) + (let loop ((next (readdir dir))) + (cond + ((eof-object? next) (closedir dir)) + ((member next '("." "..")) (loop (readdir dir))) + (else + (begin + (rename-file (string-append "/var/run/dbus/" next) + (string-append "/run/dbus/" next)) + (loop (readdir dir)))))))) + (rmdir "/var/run/dbus") + (symlink "/run/dbus" "/var/run/dbus"))) + (else + (format (current-error-port) + "Failed to symlink /run/dbus to /var/run/dbus: ~s~%" + (strerror errno)) + (error "cannot create /var/run/dbus")))))) (unless (file-exists? "/etc/machine-id") (format #t "creating /etc/machine-id...~%") @@ -210,7 +241,7 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in '(#:environment-variables '("DBUS_VERBOSE=1") #:log-file "/var/log/dbus-daemon.log") '()) - #:pid-file "/var/run/dbus/pid")) + #:pid-file "/run/dbus/pid")) (stop #~(make-kill-destructor))))))) (define dbus-root-service-type diff --git a/guix/profiles.scm b/guix/profiles.scm index 5d2fb8dc64..031f1f59c6 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1572,7 +1572,7 @@ MIME type." "Return a derivation that builds the @file{mime.cache} database from manifest entries. It's used to query the MIME type of a given file." (define shared-mime-info ; lazy reference - (module-ref (resolve-interface '(gnu packages gnome)) 'shared-mime-info)) + (module-ref (resolve-interface '(gnu packages freedesktop)) 'shared-mime-info)) (mlet %store-monad ((glib (manifest-lookup-package manifest "glib"))) (define build |