From dc5e529d654523e620012a6d7ab232c552adf17b Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Tue, 11 Aug 2020 08:51:31 -0400 Subject: [PATCH 66/66] gnu: gnome-shell: Update package definition. * gnu/packages/gnome.scm (gnome-shell) [version]: Update to 3.36.5. [source][sha256]: Modify base32. [patches]: Remove field. [snippet]: Remove field. [outputs]: New output "doc". [arguments]<#:configure-flags>[-Dgtk_doc]: New flag. <#:disallowed-references>: Remove argument. <#:modules>: Remove argument. <#:phases>['patch-docbook]: New phase. ['patch-install-paths]: New phase. ['skip-gtk-update-icon-cache]: New phase. ['check]: Replace phase. ['no-meson-shenanigan]: New phase. ['move-doc]: New phase. ['fix-keysdir]: Remove phase. ['convert-logo-to-png]: Remove phase. ['record-absolute-file-names]: Remove phase. ['pre-check]: Remove phase. ['wrap-programs]: Remove phase. [native-inputs]: Add dbus, docbook-xml, docbook-xsl and gtk-doc. Remove inkscape and ruby-sassc. Replace python with python-wrapper. [inputs]: Add appstream-glib, at-spi2-atk, bash-completion, clutter, cogl, glib, gnome-control-center, gsettings-desktop-schemas, gstreamer, gtk+, json-glib, network-manager, libsecret, libxml2, pango and libx11. Remove caribou, docbook-xsl, libcanberra, libcroco, libgnomekbd, libnma, libsoup, mesa-headers, network-manager-applet, python-pygobject, telepathy-logger and upower. [synopsis]: Modify. [description]: Modify. * gnu/packages/patches/gnome-shell-disable-test.patch: Remove file. * gnu/packages/patches/gnome-shell-theme.patch: Remove file. * gnu/local.mk (gnome-shell-disable-test.patch): Remove reference. * gnu/local.mk (gnome-shell-theme.patch): Remove reference. --- gnu/local.mk | 2 - gnu/packages/gnome.scm | 241 +++++++++--------- .../patches/gnome-shell-disable-test.patch | 25 -- gnu/packages/patches/gnome-shell-theme.patch | 51 ---- 4 files changed, 118 insertions(+), 201 deletions(-) delete mode 100644 gnu/packages/patches/gnome-shell-disable-test.patch delete mode 100644 gnu/packages/patches/gnome-shell-theme.patch diff --git a/gnu/local.mk b/gnu/local.mk index ec0b6defa8..4cd240d432 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1030,8 +1030,6 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-supported-locales.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ - %D%/packages/patches/gnome-shell-theme.patch \ - %D%/packages/patches/gnome-shell-disable-test.patch \ %D%/packages/patches/gnome-todo-delete-esource-duplicate.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 83a6689b7c..2d0cb89af1 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -9889,162 +9889,157 @@ configuration of various aspects of your desktop.") (define-public gnome-shell (package (name "gnome-shell") - (version "3.34.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh")) - (patches (search-patches "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)))) + (version "3.36.5") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "1hj7gmjmy92xndlgw7pzk5m6j2fbzcgfd1pxc32k38gml8qg19d4")))) (build-system meson-build-system) + (outputs '("out" "doc")) (arguments - `(#:glib-or-gtk? #t - #:disallowed-references ((,glib "bin") - ,inkscape ,libxslt - ,ruby-sass) + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:configure-flags - (list "-Dsystemd=false" - ;; Otherwise, the RUNPATH will lack the final path component. - (string-append "-Dc_link_args=-Wl,-rpath=" - (assoc-ref %outputs "out") - "/lib/gnome-shell")) - - #:modules ((guix build meson-build-system) - (guix build utils) - (srfi srfi-1)) - + (list + "-Dgtk_doc=true" + "-Dsystemd=false" + ;; Otherwise, the RUNPATH will lack the final path component. + (string-append "-Dc_link_args=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib/gnome-shell")) #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-keysdir - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (keysdir (string-append - 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"))) - (add-before 'configure 'record-absolute-file-names + (add-after 'unpack 'patch-docbook (lambda* (#:key inputs #:allow-other-keys) - (substitute* "js/misc/ibusManager.js" - (("'ibus-daemon'") - (string-append "'" (assoc-ref inputs "ibus") - "/bin/ibus-daemon'"))) - (substitute* "js/ui/status/keyboard.js" - (("'gkbd-keyboard-display'") - (string-append "'" (assoc-ref inputs "libgnomekbd") - "/bin/gkbd-keyboard-display'"))) + (substitute* '("man/gnome-shell.xml" "man/meson.build" + "docs/reference/shell/shell-docs.sgml" + "docs/reference/st/st-docs.sgml") + (("http://docbook.sourceforge.net/release/xsl/current") + (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl))) + (("http://www.oasis-open.org/docbook/xml/4.3/") + (string-append (assoc-ref inputs "docbook-xml-4.3") + "/xml/dtd/docbook/")) + (("http://www.oasis-open.org/docbook/xml/4.2/") + (string-append (assoc-ref inputs "docbook-xml-4.2") + "/xml/dtd/docbook/"))) #t)) - (add-before 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) + (add-after 'patch-docbook 'patch-install-paths + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("keybindings_dep\\.get_pkgconfig_variable\\('keysdir'\\)") + "join_paths(datadir, 'gnome-control-center', 'keybindings')")) + (substitute* '("src/meson.build" "src/st/meson.build" + "subprojects/gvc/meson.build") + (("install_dir_gir: pkgdatadir,") + "install_dir_gir: join_paths(pkgdatadir, 'gir-1.0'),") + (("install_dir_typelib: pkglibdir,") + "install_dir_typelib: join_paths(pkglibdir, 'girepository-1.0'),")) + (substitute* "subprojects/extensions-tool/meson.build" + (("bash_completion\\.get_pkgconfig_variable\\('completionsdir'\\)") + (string-append "'" + (assoc-ref outputs "out") + "/share/bash-completion/completions" + "'"))) + #t)) + (add-before 'configure 'skip-gtk-update-icon-cache + (lambda _ + (substitute* "meson/postinstall.py" + (("gtk-update-icon-cache") + "true")) + #t)) + (replace 'check + (lambda _ ;; Tests require a running X server. - (system "Xvfb :1 &") + (system "Xvfb :1 +extension GLX &") (setenv "DISPLAY" ":1") + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + (invoke "dbus-launch" "ninja" "test") #t)) - (add-after 'install 'wrap-programs - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (gi-typelib-path (getenv "GI_TYPELIB_PATH")) - (python-path (getenv "PYTHONPATH"))) - (wrap-program (string-append out "/bin/gnome-shell") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) - ;; FIXME: gnome-shell loads these libraries with unqualified - ;; names only, so they need to be on LD_LIBRARY_PATH. The - ;; alternative might be to patch gnome-shell. - `("LD_LIBRARY_PATH" ":" prefix - ,(map (lambda (pkg) - (string-append (assoc-ref inputs pkg) "/lib")) - '("gdk-pixbuf" - "gnome-bluetooth" "librsvg" "libgweather")))) - (for-each - (lambda (prog) - (wrap-program (string-append out "/bin/" prog) - `("PYTHONPATH" ":" prefix (,python-path)) - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - '("gnome-shell-extension-tool" "gnome-shell-perf-tool")) - #t))) - (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 - ;; 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")) - #:outputs outputs))))))) + (add-before 'install 'no-meson-shenanigan + ;; Meson automagically invokes pkexec, + ;; which fails without setuid root. + (lambda _ + (setenv "PKEXEC_UID" "whatever") + #t)) + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc")) + #t)))))) (native-inputs `(("asciidoc" ,asciidoc) - ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. - ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database + ("dbus" ,dbus) + ("docbook-xml-4.2" ,docbook-xml-4.2) + ("docbook-xml-4.3" ,docbook-xml-4.3) + ("docbook-xsl" ,docbook-xsl) + ("glib:bin" ,glib "bin") + ("desktop-file-utils" ,desktop-file-utils) ("gobject-introspection" ,gobject-introspection) - ("inkscape" ,inkscape) + ("gtk-doc" ,gtk-doc) ("intltool" ,intltool) ("pkg-config" ,pkg-config) - ("python" ,python) - ("ruby-sass" ,ruby-sass) + ("python" ,python-wrapper) ("sassc" ,sassc) ("xsltproc" ,libxslt) - ;; For tests ("xorg-server" ,xorg-server-for-tests))) (inputs `(("accountsservice" ,accountsservice) - ("caribou" ,caribou) - ("docbook-xsl" ,docbook-xsl) + ("appstream-util" ,appstream-glib) + ("atk-bridge" ,at-spi2-atk) + ("bash-completion" ,bash-completion) + ("clutter" ,clutter) + ("cogl" ,cogl) ("evolution-data-server" ,evolution-data-server) ("gcr" ,gcr) ("gdm" ,gdm) ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("geoclue" ,geoclue) ("gjs" ,gjs) + ("glib" ,glib) ("gnome-autoar" ,gnome-autoar) ("gnome-bluetooth" ,gnome-bluetooth) ("gnome-desktop" ,gnome-desktop) + ("gnome-keybindings" ,gnome-control-center) ("gnome-settings-daemon" ,gnome-settings-daemon) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) + ("gtk+" ,gtk+) + ("gweather" ,libgweather) ("ibus" ,ibus) - ("libcanberra" ,libcanberra) - ("libcroco" ,libcroco) - ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display - ("libgweather" ,libgweather) - ("libnma" ,libnma) - ("libsoup" ,libsoup) - ("mesa-headers" ,mesa-headers) - ("mutter" ,mutter) - ("network-manager-applet" ,network-manager-applet) - ("polkit" ,polkit) - ("pulseaudio" ,pulseaudio) - ("python-pygobject" ,python-pygobject) - ("startup-notification" ,startup-notification) - ("telepathy-logger" ,telepathy-logger) - ("upower" ,upower) - ;; XXX: These requirements were added in 3.24, but no mention in NEWS. - ;; Missing propagation? See also: + ("json-glib" ,json-glib) + ("libnm" ,network-manager) + ("libpulse" ,pulseaudio) ("librsvg" ,librsvg) - ("geoclue" ,geoclue))) - (synopsis "Desktop shell for GNOME") + ("libsecret" ,libsecret) + ("libstartup-notification" ,startup-notification) + ("libxml2" ,libxml2) + ("mutter" ,mutter) + ("pango" ,pango) + ("polkit-agent" ,polkit) + ("x11" ,libx11))) + (synopsis "Next generation desktop shell") + (description "GNOME-Shell provides core user interface functions for the +GNOME desktop, like switching to windows and launching applications. It takes +advantage of the capabilities of modern graphics hardware and introduces +innovative user interface concepts to provide a visually attractive and easy to +use experience.") (home-page "https://wiki.gnome.org/Projects/GnomeShell") - (description - "GNOME Shell provides core user interface functions for the GNOME desktop, -like switching to windows and launching applications.") (license license:gpl2+))) (define-public gtk-vnc diff --git a/gnu/packages/patches/gnome-shell-disable-test.patch b/gnu/packages/patches/gnome-shell-disable-test.patch deleted file mode 100644 index b4c7e73cd7..0000000000 --- a/gnu/packages/patches/gnome-shell-disable-test.patch +++ /dev/null @@ -1,25 +0,0 @@ -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 @@ - sources: st_enums[1] - ) - --test_theme = executable('test-theme', -- sources: 'test-theme.c', -- c_args: st_cflags, -- dependencies: [mutter_dep, gtk_dep], -- build_rpath: mutter_typelibdir, -- link_with: libst --) -- --test('CSS styling support', test_theme, -- workdir: meson.current_source_dir() --) -- - libst_gir = gnome.generate_gir(libst, - sources: st_gir_sources, - nsversion: '1.0', 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 . - -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 @@ - no-events.svg - no-notifications.svg - noise-texture.png -+ guix-background.png -+ guix-logo.png - pad-osd.css - pointer-double-click-symbolic.svg - pointer-drag-symbolic.svg -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 { -- 2.28.0