summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2021-09-26 18:40:46 +0000
committerMathieu Othacehe <othacehe@gnu.org>2021-10-02 10:54:39 +0000
commit129875d648b2c263404e09b90911ca4f68eed554 (patch)
tree8285d3bc497591855bd64192db0836fe44fc8b8b
parentac1043abcf8c93307e526ead8733355e51c7620a (diff)
downloadguix-129875d648b2c263404e09b90911ca4f68eed554.tar.gz
gnu: gnome-shell: Update to 40.5.
Remove the theme patch that does not apply anymore because the CSS files have
been revamped.

* gnu/packages/patches/gnome-shell-CVE-2020-17489.patch: Remove it.
* gnu/packages/patches/gnome-shell-theme: Remove it.
* gnu/packages/patches/gnome-shell-disable-test.patch: Update it.
* gnu/local.mk (DIST_PATCH_DATA): Update it.
* gnu/packages/gnome.scm (gnome-shell): Update to 40.5.
[source]: Fix the URI. Update the patches. Remote the snippet.
[arguments]: Remove trailing #t.
<#:phases>: Add a 'skip-gtk-update-icon-cache phase. Remove the
'convert-logo-to-png phase. Remove the inkscape disallowed reference.
[native-inputs]: Remove inkscape. Add hicolor-icon-theme.
[inputs]: Add gtk and graphene.
[properties]: Remove it.
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/gnome.scm56
-rw-r--r--gnu/packages/patches/gnome-shell-CVE-2020-17489.patch46
-rw-r--r--gnu/packages/patches/gnome-shell-disable-test.patch9
-rw-r--r--gnu/packages/patches/gnome-shell-theme.patch51
5 files changed, 23 insertions, 141 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 620ac89548..160e651624 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1159,9 +1159,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gmp-faulty-test.patch			\
   %D%/packages/patches/gnash-fix-giflib-version.patch	        \
   %D%/packages/patches/gnome-online-miners-tracker-3.patch	\
-  %D%/packages/patches/gnome-shell-theme.patch			\
   %D%/packages/patches/gnome-shell-disable-test.patch		\
-  %D%/packages/patches/gnome-shell-CVE-2020-17489.patch		\
   %D%/packages/patches/gnome-settings-daemon-gc.patch		\
   %D%/packages/patches/gnome-tweaks-search-paths.patch		\
   %D%/packages/patches/gnupg-default-pinentry.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4dfdd5a506..af4181b7b6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8508,34 +8508,21 @@ properties, screen resolution, and other GNOME parameters.")
 (define-public gnome-shell
   (package
     (name "gnome-shell")
-    (version "3.34.5")
+    (version "40.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
+                                  (version-major version) "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0l3mdn7g2c22mdhrqkxvvc1pk2w0v32f2v4a6n1phvaalwcg75nj"))
-              (patches (search-patches "gnome-shell-CVE-2020-17489.patch"
-                                       "gnome-shell-theme.patch"
-                                       "gnome-shell-disable-test.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               #~(begin
-                   ;; Copy images for use on the GDM log-in screen.
-                   (copy-file #$(file-append %artwork-repository
-                                             "/slim/0.x/background.png")
-                              "data/theme/guix-background.png")
-                   (copy-file #$(file-append %artwork-repository
-                                             "/logo/Guix-horizontal-white.svg")
-                              "data/theme/guix-logo.svg")
-                   #t))))
+                "0kph3g4ix23sm3ip2b13rs7hx8sa7fvlvcyy4zdk2iaj56rmadvd"))
+              (patches (search-patches "gnome-shell-disable-test.patch"))
+              (modules '((guix build utils)))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
        #:disallowed-references ,(list (gexp-input glib "bin")
-                                      (gexp-input inkscape)
                                       (gexp-input libxslt)
                                       (gexp-input ruby-sass))
        #:configure-flags
@@ -8558,13 +8545,12 @@ properties, screen resolution, and other GNOME parameters.")
                               out "/share/gnome-control-center/keybindings")))
                (substitute* "meson.build"
                  (("keysdir =.*")
-                  (string-append "keysdir = '" keysdir "'\n")))
-               #t)))
-         (add-before 'configure 'convert-logo-to-png
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Convert the logo from SVG to PNG.
-             (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
-                     "data/theme/guix-logo.svg")))
+                  (string-append "keysdir = '" keysdir "'\n"))))))
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "meson/postinstall.py"
+               (("gtk-update-icon-cache") "true"))))
          (add-before 'configure 'record-absolute-file-names
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "js/misc/ibusManager.js"
@@ -8574,14 +8560,12 @@ properties, screen resolution, and other GNOME parameters.")
              (substitute* "js/ui/status/keyboard.js"
                (("'gkbd-keyboard-display'")
                 (string-append "'" (assoc-ref inputs "libgnomekbd")
-                               "/bin/gkbd-keyboard-display'")))
-             #t))
+                               "/bin/gkbd-keyboard-display'")))))
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Tests require a running X server.
              (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")
-             #t))
+             (setenv "DISPLAY" ":1")))
          (add-after 'install 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out              (assoc-ref outputs "out"))
@@ -8602,23 +8586,22 @@ properties, screen resolution, and other GNOME parameters.")
                   (wrap-program (string-append out "/bin/" prog)
                     `("GUIX_PYTHONPATH"      ":" prefix (,python-path))
                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-                '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
-               #t)))
+                '("gnome-shell-extension-tool" "gnome-shell-perf-tool")))))
          (replace 'glib-or-gtk-wrap
            (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
              (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
-               ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
+               ;; By default intltool et al. would end up in the XDG_DATA_DIRS
                ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
                ;; phase.  Fix that since we don't need these.
                (wrap #:inputs (fold alist-delete inputs
-                                    '("inkscape" "intltool" "glib:bin"))
+                                    '("intltool" "glib:bin"))
                      #:outputs outputs)))))))
     (native-inputs
      `(("asciidoc" ,asciidoc)
        ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
        ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("gobject-introspection" ,gobject-introspection)
-       ("inkscape" ,inkscape)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python)
@@ -8636,10 +8619,12 @@ properties, screen resolution, and other GNOME parameters.")
        ("gdm" ,gdm)
        ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gjs" ,gjs)
+       ("gtk" ,gtk)
        ("gnome-autoar" ,gnome-autoar)
        ("gnome-bluetooth" ,gnome-bluetooth)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
+       ("graphene" ,graphene)
        ("gst-plugins-base" ,gst-plugins-base)
        ("ibus" ,ibus)
        ("libcanberra" ,libcanberra)
@@ -8661,9 +8646,6 @@ properties, screen resolution, and other GNOME parameters.")
        ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
        ("librsvg" ,librsvg)
        ("geoclue" ,geoclue)))
-    ;; CVE-2019-3820 was fixed before GNOME 3.34 was released, in upstream
-    ;; commit f0a7395b3006360905ccdc642982f9fc67378927.
-    (properties '((lint-hidden-cve . ("CVE-2019-3820"))))
     (synopsis "Desktop shell for GNOME")
     (home-page "https://wiki.gnome.org/Projects/GnomeShell")
     (description
diff --git a/gnu/packages/patches/gnome-shell-CVE-2020-17489.patch b/gnu/packages/patches/gnome-shell-CVE-2020-17489.patch
deleted file mode 100644
index 4b7748950e..0000000000
--- a/gnu/packages/patches/gnome-shell-CVE-2020-17489.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 05b7aec747282f62212b605249d518280ff80059 Mon Sep 17 00:00:00 2001
-From: Ray Strode <rstrode@redhat.com>
-Date: Mon, 27 Jul 2020 10:58:22 -0400
-Subject: [PATCH] loginDialog: Reset auth prompt on vt switch before fade in
-
-At the moment, if a user switches to the login screen vt,
-the login screen fades in whatever was on screen prior, and
-then does a reset.
-
-It makes more sense to reset first, so we fade in what the
-user is going to interact with instead of what they interacted
-with before.
-
-Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2997
----
- js/gdm/loginDialog.js | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
-index c3f90dc58..6b35ebb16 100644
---- a/js/gdm/loginDialog.js
-+++ b/js/gdm/loginDialog.js
-@@ -920,16 +920,15 @@ var LoginDialog = GObject.registerClass({
-         if (this.opacity == 255 && this._authPrompt.verificationStatus == AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
-             return;
- 
-+        if (this._authPrompt.verificationStatus !== AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
-+            this._authPrompt.reset();
-+
-         this._bindOpacity();
-         this.ease({
-             opacity: 255,
-             duration: _FADE_ANIMATION_TIME,
-             mode: Clutter.AnimationMode.EASE_OUT_QUAD,
--            onComplete: () => {
--                if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.NOT_VERIFYING)
--                    this._authPrompt.reset();
--                this._unbindOpacity();
--            }
-+            onComplete: () => this._unbindOpacity(),
-         });
-     }
- 
--- 
-2.30.1
-
diff --git a/gnu/packages/patches/gnome-shell-disable-test.patch b/gnu/packages/patches/gnome-shell-disable-test.patch
index b4c7e73cd7..c61ff4a942 100644
--- a/gnu/packages/patches/gnome-shell-disable-test.patch
+++ b/gnu/packages/patches/gnome-shell-disable-test.patch
@@ -1,17 +1,16 @@
 This test seems to require a D-Bus connection not available in the build
 environment.
 
-diff -ur /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build b/src/st/meson.build
---- /tmp/guix-build-gnome-shell-3.34.2.drv-0/gnome-shell-3.34.2/src/st/meson.build	1969-12-31 19:00:00.000000000 -0500
-+++ b/src/st/meson.build	2019-12-23 00:46:14.721198022 -0500
-@@ -132,18 +132,6 @@
+--- a/src/st/meson.build	2021-09-21 19:07:38.673049200 +0000
++++ b/src/st/meson.build	2021-09-26 18:23:38.461569826 +0000
+@@ -191,18 +191,6 @@
    sources: st_enums[1]
  )
  
 -test_theme = executable('test-theme',
 -  sources: 'test-theme.c',
 -  c_args: st_cflags,
--  dependencies: [mutter_dep, gtk_dep],
+-  dependencies: [mutter_dep, gtk_dep, libxml_dep],
 -  build_rpath: mutter_typelibdir,
 -  link_with: libst
 -)
diff --git a/gnu/packages/patches/gnome-shell-theme.patch b/gnu/packages/patches/gnome-shell-theme.patch
deleted file mode 100644
index 3fa0670c43..0000000000
--- a/gnu/packages/patches/gnome-shell-theme.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Adjust GNOME-Shell so that it uses a Guix theme by default.
-
-Patch by Ludovic Courtès <ludo@gnu.org>.
-
-diff -ur a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
---- a/data/gnome-shell-theme.gresource.xml	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/gnome-shell-theme.gresource.xml	2019-12-21 00:31:55.895866241 -0500
-@@ -19,6 +19,8 @@
-     <file>no-events.svg</file>
-     <file>no-notifications.svg</file>
-     <file>noise-texture.png</file>
-+    <file>guix-background.png</file>
-+    <file>guix-logo.png</file>
-     <file>pad-osd.css</file>
-     <file alias="icons/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
-     <file alias="icons/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
-diff -ur a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
---- a/data/theme/gnome-shell-sass/_common.scss	2019-12-11 15:06:31.000000000 -0500
-+++ b/data/theme/gnome-shell-sass/_common.scss	2019-12-21 00:33:49.495832135 -0500
-@@ -1994,7 +1994,16 @@
-   }
- }
- 
--  .login-dialog-logo-bin { padding: 24px 0px; }
-+  .login-dialog-logo-bin {
-+      /* Make it a bit narrower than .login-dialog-user-list.  */
-+      width: 12em;
-+      height: 8em;
-+      background: url(resource:///org/gnome/shell/theme/guix-logo.png);
-+      background-color: transparent;
-+      background-repeat: no-repeat;
-+      background-size: contain;
-+      background-position: center; }
-+
-   .login-dialog-banner { color: darken($osd_fg_color,10%); }
-   .login-dialog-button-box { spacing: 5px; }
-   .login-dialog-message-warning { color: $warning_color; }
-@@ -2143,9 +2152,10 @@
- }
- 
- #lockDialogGroup {
--  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/noise-texture.png);
--  background-repeat: repeat;
--}
-+  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/guix-background.png);
-+  background-repeat: no-repeat;
-+  background-size: cover;
-+  background-position: center; }
- 
- #screenShieldNotifications {
-   StButton#vhandle, StButton#hhandle {