~ruther/guix-local

0884238e1518f68e7d35b78dc2815fb35a3e641e — Marius Bakke 3 years ago 69df14a
gnu: gnome-shell: Update to 42.4.

* gnu/packages/gnome.scm (gnome-shell): Update to 42.4.
[source](patches): Remove.
[arguments]: Adjust substitution to disable GTK icon cache.  Filter disallowed
references from GUIX_PYTHONPATH.  While at it, also prevent MESON from ending
up in the closure.
[inputs]: Change from LIBGWEATHER to LIBGWEATHER4.
* gnu/packages/patches/gnome-shell-polkit-autocleanup.patch:
* gnu/local.mk (dist_patch_DATA):
3 files changed, 16 insertions(+), 59 deletions(-)

M gnu/local.mk
M gnu/packages/gnome.scm
D gnu/packages/patches/gnome-shell-polkit-autocleanup.patch
M gnu/local.mk => gnu/local.mk +0 -1
@@ 1215,7 1215,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/gnome-screenshot-meson-0.60.patch	\
  %D%/packages/patches/gnome-settings-daemon-gc.patch		\
  %D%/packages/patches/gnome-session-support-elogind.patch	\
  %D%/packages/patches/gnome-shell-polkit-autocleanup.patch	\
  %D%/packages/patches/gnome-todo-libportal.patch		\
  %D%/packages/patches/gnome-tweaks-search-paths.patch		\
  %D%/packages/patches/gnupg-CVE-2022-34903.patch		\

M gnu/packages/gnome.scm => gnu/packages/gnome.scm +16 -8
@@ 8853,21 8853,21 @@ properties, screen resolution, and other GNOME parameters.")
(define-public gnome-shell
  (package
    (name "gnome-shell")
    (version "41.0")
    (version "42.4")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  (version-major version) "/"
                                  name "-" version ".tar.xz"))
              (patches (search-patches "gnome-shell-polkit-autocleanup.patch"))
              (sha256
               (base32
                "0ragmcln210zvzhc2br33yprbkj9drjzd7inp5sdxra0a7l73yaj"))))
                "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7"))))
    (build-system meson-build-system)
    (arguments
     (let ((disallowed-references
            (list (gexp-input glib "bin")
                  (gexp-input libxslt)
                  (gexp-input meson)
                  (gexp-input ruby-sass))))
       (list
        #:glib-or-gtk? #t


@@ 8880,7 8880,8 @@ properties, screen resolution, and other GNOME parameters.")
        #:modules '((guix build meson-build-system)
                    (guix build utils)
                    (ice-9 match)
                    (srfi srfi-1))
                    (srfi srfi-1)
                    (srfi srfi-26))
        #:phases
        #~(modify-phases %standard-phases
            (add-after 'unpack 'fix-keysdir


@@ 8894,8 8895,9 @@ properties, screen resolution, and other GNOME parameters.")
            (add-after 'unpack 'skip-gtk-update-icon-cache
              ;; Don't create 'icon-theme.cache'.
              (lambda _
                (substitute* "meson/postinstall.py"
                  (("gtk-update-icon-cache") "true"))))
                (substitute* "meson.build"
                  (("gtk_update_icon_cache: true")
                   "gtk_update_icon_cache: false"))))
            (add-before 'configure 'record-absolute-file-names
              (lambda* (#:key inputs #:allow-other-keys)
                (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))


@@ 8916,7 8918,13 @@ properties, screen resolution, and other GNOME parameters.")
            (add-after 'install 'wrap-programs
              (lambda* (#:key inputs #:allow-other-keys)
                (let ((gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
                      (python-path      (getenv "GUIX_PYTHONPATH")))
                      (python-path
                       (string-join
                        (filter (lambda (item)
                                  (not (any (cut string-prefix? <> item)
                                            '#$disallowed-references)))
                                (string-split (getenv "GUIX_PYTHONPATH") #\:))
                        ":")))
                  (for-each
                   (lambda (prog)
                     (wrap-program (string-append #$output "/bin/" prog)


@@ 8996,7 9004,7 @@ printf '~a is deprecated.  Use the \"gnome-extensions\" CLI or \
           libcanberra
           libcroco
           libgnomekbd                  ;for gkbd-keyboard-display
           libgweather
           libgweather4
           libnma
           libsoup
           mesa-headers

D gnu/packages/patches/gnome-shell-polkit-autocleanup.patch => gnu/packages/patches/gnome-shell-polkit-autocleanup.patch +0 -50
@@ 1,50 0,0 @@
Don't redefine G_DEFINE_AUTOPTR_CLEANUP_FUNC when available in polkit.

Taken from upstream:

  https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/1d0a08b5e25fea7b0e792ec9798e68a7c5606a75

diff --git a/config.h.meson b/config.h.meson
index b93fda8727..ff355d3062 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -33,3 +33,6 @@
 
 /* Define if fdwalk is available in libc */
 #mesondefine HAVE_FDWALK
+
+/* Define if polkit defines autocleanup functions */
+#mesondefine HAVE_POLKIT_AUTOCLEANUP
diff --git a/meson.build b/meson.build
index 42ec01c566..778a34c6ef 100644
--- a/meson.build
+++ b/meson.build
@@ -169,6 +169,13 @@ cdata.set('HAVE_FDWALK',
           cc.has_function('fdwalk')
 )
 
+polkit_has_autocleanup = cc.compiles(
+  '#define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
+  #include <polkitagent/polkitagent.h>
+  void main(void) { g_autoptr(PolkitAgentListener) agent = NULL; }',
+  dependencies: polkit_dep)
+cdata.set('HAVE_POLKIT_AUTOCLEANUP', polkit_has_autocleanup)
+
 buildtype = get_option('buildtype')
 if buildtype != 'plain'
   all_warnings = [
diff --git a/src/shell-polkit-authentication-agent.h b/src/shell-polkit-authentication-agent.h
index 55b46af110..4f14749563 100644
--- a/src/shell-polkit-authentication-agent.h
+++ b/src/shell-polkit-authentication-agent.h
@@ -14,8 +14,10 @@
 
 G_BEGIN_DECLS
 
+#ifndef HAVE_POLKIT_AUTOCLEANUP
 /* Polkit doesn't have g_autoptr support, thus we have to manually set the autoptr function here */
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (PolkitAgentListener, g_object_unref)
+#endif
 
 #define SHELL_TYPE_POLKIT_AUTHENTICATION_AGENT (shell_polkit_authentication_agent_get_type())