summary refs log tree commit diff
path: root/gnu/packages/gnome.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r--gnu/packages/gnome.scm174
1 files changed, 115 insertions, 59 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 10c7f604df..0c9cf40c65 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -44,7 +44,7 @@
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
+;;; Copyright © 2019-2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
@@ -1763,7 +1763,11 @@ client devices can handle.")
                 "0h095a26w3sgbspsf7wzz8ddg62j3jb9ckrrv41k7cdp0k2dkhsg"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags (list "-Dlibnma_gtk4=true")
+     ;; GTK 4.x depends on Rust (indirectly) so pull it only on platforms
+     ;; where it is supported.
+     `(#:configure-flags ,(if (supported-package? gtk)
+                              `(list "-Dlibnma_gtk4=true")
+                              `(list "-Dlibnma_gtk4=false"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-docbook-xml
@@ -1782,7 +1786,7 @@ client devices can handle.")
            vala))
     (inputs
      (list gcr
-           gtk
+           (if (supported-package? gtk) gtk gtk+)
            iso-codes
            mobile-broadband-provider-info
            network-manager))
@@ -3276,6 +3280,25 @@ the GNOME desktop environment.")
                (base32
                 "0hj7f4xhwjc4x32r3lswwclbw37fw3spy806g4plkmym25hz4ydy"))))
     (build-system meson-build-system)
+    (arguments
+     (list
+      #:imported-modules
+      `(,@%meson-build-system-modules
+        (guix build python-build-system))
+      #:modules
+      `((guix build meson-build-system)
+        ((guix build python-build-system) #:prefix python:)
+        (guix build utils))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'wrap 'wrap-python
+            (assoc-ref python:%standard-phases 'wrap))
+          (add-after 'wrap-python 'wrap-gi
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out               (assoc-ref outputs "out"))
+                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+                (wrap-program (string-append out "/bin/blueprint-compiler")
+                  `("GI_TYPELIB_PATH" ":" suffix (,gi-typelib-path)))))))))
     (native-inputs (list gtk python-pygobject python))
     (inputs (list python))
     (synopsis "Template markup language")
@@ -4719,33 +4742,39 @@ and RDP protocols.")
                (base32
                 "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
     (build-system meson-build-system)
+    (arguments
+     (list
+      #:glib-or-gtk? #t
+      ;; Configure sysconfdir to /etc so that gconf profiles can be written
+      ;; there and loaded without having to set GCONF_PROFILE, which cannot be
+      ;; safely set globally (as a gconf profile is a per-user thing).
+      #:configure-flags #~(list "--sysconfdir=/etc"
+                                "-Dgtk_doc=true")
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'increase-test-timeout
+                     (lambda _
+                       ;; On big-memory systems, the engine test may take
+                       ;; much longer than the default of 30 seconds.
+                       (substitute* "tests/meson.build"
+                         (("test\\(unit_test\\[0\\], exe" all)
+                          (string-append all ", timeout: 300"))))))))
+    (native-inputs
+     (list bash-completion
+           libxslt                      ;for xsltproc
+           libxml2                      ;for XML_CATALOG_FILES
+           docbook-xml-4.2
+           docbook-xsl
+           `(,glib "bin")
+           gtk-doc/stable
+           pkg-config
+           python
+           vala))
+    (inputs
+     (list gtk+
+           dbus))
     (propagated-inputs
      ;; In Requires of dconf.pc.
      (list glib))
-    (inputs
-     (list gtk+ dbus))
-    (native-inputs
-     `(("bash-completion" ,bash-completion)
-       ("libxslt" ,libxslt)                     ;for xsltproc
-       ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
-       ("docbook-xml" ,docbook-xml-4.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("glib:bin" ,glib "bin")
-       ("gtk-doc" ,gtk-doc/stable)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("vala" ,vala)))
-    (arguments
-     `(#:glib-or-gtk? #t
-       #:configure-flags '("-Dgtk_doc=true")
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'increase-test-timeout
-                    (lambda _
-                      ;; On big-memory systems, the engine test may take
-                      ;; much longer than the default of 30 seconds.
-                      (substitute* "tests/meson.build"
-                        (("test\\(unit_test\\[0\\], exe" all)
-                         (string-append all ", timeout: 300"))))))))
     (home-page "https://developer.gnome.org/dconf/")
     (synopsis "Low-level GNOME configuration system")
     (description "Dconf is a low-level configuration system.  Its main purpose
@@ -4976,7 +5005,10 @@ libxml to ease remote use of the RESTful API.")
     (arguments (substitute-keyword-arguments (package-arguments rest)
                  ((#:tests? _ #f) #t)
                  ((#:configure-flags _)
-                  #~(list))
+                  ;; Do not build the optional 'librest-demo' program as it
+                  ;; depends on gtksourceview and libadwaita and thus,
+                  ;; indirectly, on Rust.
+                  #~(list "-Dexamples=false"))
                  ((#:phases phases '%standard-phases)
                   #~(modify-phases #$phases
                       (add-after 'unpack 'disable-problematic-tests
@@ -4993,7 +5025,7 @@ libxml to ease remote use of the RESTful API.")
        (append gettext-minimal
                gi-docgen
                gsettings-desktop-schemas)))
-    (inputs (list gtksourceview json-glib libadwaita))
+    (inputs (list json-glib))
     (propagated-inputs
      (modify-inputs (package-propagated-inputs rest)
        (replace "libsoup" libsoup)
@@ -5806,7 +5838,19 @@ 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"))))
+              (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)))
     (native-inputs
      (list `(,glib "bin")               ; for gdbus-codegen
            gobject-introspection
@@ -6904,7 +6948,7 @@ supports image conversion, rotation, and slideshows.")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/eog-plugins/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   "eog-plugins-" version ".tar.xz"))
               (sha256
                (base32
@@ -8855,7 +8899,10 @@ library.")
                                   "gdm_session_set_environment_variable "
                                   "(self, \"" name "\","
                                   "g_getenv (\"" name "\"));\n"))
-                               propagate)))))
+                               propagate)))
+                  ;; This is used by remote sessions, such as when using VNC.
+                  (("\\(GDMCONFDIR \"/Xsession \\\\\"%s\\\\\"\", command)")
+                   "(\"%s \\\"%s\\\"\", g_getenv (\"GDM_X_SESSION\"), command)")))
               ;; Find the configuration file using an environment variable.
               (substitute* '("common/gdm-settings.c")
                 (("GDM_CUSTOM_CONF")
@@ -10399,9 +10446,12 @@ desktop.  It supports multiple calendars, month, week and year view.")
            libpeas
            libportal
            python-pygobject
-           evolution-data-server
            gnome-online-accounts
            gsettings-desktop-schemas))
+    (propagated-inputs
+     ;; This is so that the Guix System D-Bus service can find the Evolution
+     ;; Data Server schemas.
+     (list evolution-data-server))
     (home-page "https://wiki.gnome.org/Apps/Todo")
     (synopsis "GNOME's ToDo Application")
     (description "GNOME To Do is a simplistic personal task manager designed
@@ -13010,7 +13060,7 @@ profiler via Sysprof, debugging support, and more.")
 (define-public komikku
   (package
     (name "komikku")
-    (version "0.41.0")
+    (version "1.1.0")
     (source
      (origin
        (method git-fetch)
@@ -13020,32 +13070,38 @@ profiler via Sysprof, debugging support, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
+         "0ik3dwyq3r44d0h7r7x8j2sah9fhzilyvds1d6bbgbccqxzw4lnh"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-sources
-           (lambda _
-             (substitute* "komikku/utils.py"
-               (("from komikku\\.servers import get_servers_list")
-                ;; code following that line should migrate old databases
-                ;; but the line itself results in an import error
-                "return data_dir_path"))))
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           (lambda _
-             (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") (which "true")))))
-         (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
-           (lambda* (#:key outputs #:allow-other-keys)
-             (wrap-program (search-input-file outputs "bin/komikku")
-               `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
-               `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
+     (list
+      #:glib-or-gtk? #t
+      #:meson meson-0.63
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-sources
+            (lambda _
+              (substitute* "komikku/utils.py"
+                (("from komikku\\.servers import get_servers_list")
+                 ;; code following that line should migrate old databases
+                 ;; but the line itself results in an import error
+                 "return data_dir_path"))))
+          (add-after 'unpack 'skip-gtk-update-icon-cache
+            (lambda _
+              (substitute* "meson.build"
+                (("([a-z_]*): true" all option)
+                 (cond                ; cond rather than match saves an import
+                  ((string=? option "gtk_update_icon_cache")
+                   (string-append option ": false"))
+                  (else all))))))
+          (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+            (lambda* (#:key outputs #:allow-other-keys)
+              (wrap-program (search-input-file outputs "bin/komikku")
+                `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
+                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
     (inputs
      (list bash-minimal
-           gtk+
-           libhandy
+           gtk
+           libadwaita
            libnotify
            libsecret
            python
@@ -13063,7 +13119,7 @@ profiler via Sysprof, debugging support, and more.")
            python-pygobject
            python-requests
            python-unidecode
-           webkitgtk-with-libsoup2))
+           webkitgtk-next))
     (native-inputs
      (list desktop-file-utils
            gettext-minimal
@@ -13241,7 +13297,7 @@ Document Analysis and Recognition program.")
 (define-public libadwaita
   (package
     (name "libadwaita")
-    (version "1.2.rc")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libadwaita/"
@@ -13249,7 +13305,7 @@ Document Analysis and Recognition program.")
                                   "libadwaita-" version ".tar.xz"))
               (sha256
                (base32
-                "1syg7fkpcsw0q6fy3g79myb9m9bvrnh3rjrm6g4bfg1pnlqf1w22"))))
+                "0326qs0zhfi6zv52p90axnicmv0qb2l2hwpyv60pk9lvwcdkwbrj"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases