@Danny > I will send you the patch for gnome-shell shortly.
Please find the attached patch for gnome-shell. Also I have attached revised patches for mutter and gdm. Regards, RG.
From 4956005520e03defb583fbad14c307c552b59d12 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Mon, 10 Aug 2020 02:07:39 -0400 Subject: [PATCH 64/66] gnu: mutter: Update package definition. * gnu/packages/gnome.scm (mutter) [version]: Update to 3.36.5. [source]<origin>[sha256]: Modify base32. [arguments]<#:configure-flags>[-Dgles2_libname]: New flag. [-Degl_device]: New flag. [-Dwayland_eglstream]: New flag. [-Dinstalled_tests]: New flag. [-Dxwayland_grab_default_access_rules]: New flag. [-Dc_link_args]: Modify flag. <#:tests?>: Remove argument. <#:phases>['fix-build-with-mesa-20]: Remove phase. ['check]: Remove phase. ['custom-check]: New phase. [native-inputs]: Add adwaita-icon-theme, python-wrapper and ruby. Remove autoconf, automake and libtool. [propagated-inputs]: Add graphene, wayland and libxi. Remove xinput. Move gdk-pixbuf+svg, libinput, eudev, libxcomposite, libxdamage, libxext, libxkbcommon and libxrandr to ... [inputs]: ... here. Add dbus, freetype, fribidi, libdrm, sysprof, egl-wayland, wayland-protocols, libxau, libxcb, libxcursor, libxinerama and libxrender. Remove zenity. [synopsis]: Modify. [description]: Modify. [home-page]: Modify. --- gnu/packages/gnome.scm | 215 +++++++++++++++++++++++------------------ 1 file changed, 120 insertions(+), 95 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index dfb65826fc..81e0cce794 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -118,6 +118,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages geo) #:use-module (gnu packages gperf) + #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) #:use-module (gnu packages gsasl) #:use-module (gnu packages gstreamer) @@ -8618,114 +8619,138 @@ in commandline and shell scripts.") (define-public mutter (package (name "mutter") - (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 - "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd")))) - ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked - ;; versions of cogl and clutter. As a result, many of the inputs, - ;; propagated-inputs, and configure flags used in cogl and clutter are - ;; needed here as well. + (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 "1py7sqrpvg2qvswxclshysx7hd9jk65i6cwqsagd6rg6rnjhblp0")))) (build-system meson-build-system) (arguments - '(;; XXX: All mutter tests fail with the following error: - ;; Settings schema 'org.gnome.mutter' is not installed - #:tests? #f - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:configure-flags - ;; TODO: Enable profiler when Sysprof is packaged. - (list "-Dprofiler=false" - ;; Otherwise, the RUNPATH will lack the final path component. - (string-append "-Dc_link_args=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib/mutter-5") - - ;; The following flags are needed for the bundled clutter - (string-append "-Dxwayland_path=" - (assoc-ref %build-inputs "xorg-server-xwayland") - "/bin/Xwayland") - - ;; the remaining flags are needed for the bundled cogl - (string-append "-Dopengl_libname=" - (assoc-ref %build-inputs "mesa") - "/lib/libGL.so")) - #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-build-with-mesa-20 - (lambda _ - ;; Mimic upstream commit a444a4c5f58ea516ad for - ;; compatibility with Mesa 20. Remove for 3.36. - (substitute* '("src/backends/meta-egl-ext.h" - "src/backends/meta-egl.c" - "src/backends/meta-egl.h") - (("#include <EGL/eglext\\.h>" all) - (string-append all "\n#include <EGL/eglmesaext.h>"))) - (substitute* "cogl/cogl/meson.build" - (("#include <EGL/eglext\\.h>" all) - (string-append all "\\n#include <EGL/eglmesaext.h>"))) - #t))))) + (list + (string-append "-Dopengl_libname=" + (assoc-ref %build-inputs "mesa") + "/lib/libGL.so") + (string-append "-Dgles2_libname=" + (assoc-ref %build-inputs "mesa") + "/lib/libGLESv2.so") + "-Degl_device=true" + "-Dwayland_eglstream=true" + "-Dinstalled_tests=false" + (string-append "-Dxwayland_path=" + (assoc-ref %build-inputs "xorg-server-xwayland") + "/bin/Xwayland") + "-Dxwayland_grab_default_access_rules=gnome-boxes" + ;; Otherwise, the RUNPATH will lack the final path component. + (string-append "-Dc_link_args=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib" + ":" + (assoc-ref %outputs "out") + "/lib/mutter-6")) + #:phases + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'custom-check + (lambda _ + ;; Tests require a running X server. + (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)) + ;; Tests look for $XDG_DATA_DIRS. + (setenv "XDG_DATA_DIRS" + (string-append (getenv "XDG_DATA_DIRS") + ":" + (assoc-ref %outputs "out") + "/share")) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + ;; Tests look for cursors. + (setenv "XCURSOR_PATH" + (string-append (assoc-ref %build-inputs "adwaita-icon-theme") + "/share/icons")) + (invoke "dbus-launch" "ninja" "test") + #t))))) (native-inputs - `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database - ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + `(("adwaita-icon-theme" ,adwaita-icon-theme) + ("desktop-file-utils" ,desktop-file-utils) + ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server-for-tests) - ;; For git build - ("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) - (propagated-inputs - `(;; libmutter.pc refers to these: - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("gtk+" ,gtk+) - ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these: - ("atk" ,atk) - ("cairo" ,cairo) - ("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) - ("json-glib" ,json-glib) - ("libinput" ,libinput) - ("libx11" ,libx11) - ("libxcomposite" ,libxcomposite) - ("libxdamage" ,libxdamage) - ("libxext" ,libxext) - ("libxfixes" ,libxfixes) - ("libxkbcommon" ,libxkbcommon) - ("libxrandr" ,libxrandr) - ("mesa" ,mesa) - ("pango" ,pango) - ("udev" ,eudev) - ("xinput" ,xinput))) + ("python" ,python-wrapper) + ("ruby" ,ruby) + ("xorg-server" ,xorg-server-for-tests))) (inputs - `(("elogind" ,elogind) + `(("dbus" ,dbus) + ("freetype" ,freetype) + ("fribidi" ,fribidi) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("gnome-desktop" ,gnome-desktop) ("gnome-settings-daemon" ,gnome-settings-daemon) - ("libcanberra-gtk" ,libcanberra) - ("libgudev" ,libgudev) - ("libice" ,libice) - ("libsm" ,libsm) + ("gudev" ,libgudev) + ("ice" ,libice) + ("libcanberra" ,libcanberra) + ("libdrm" ,libdrm) + ("libelogind" ,elogind) + ("libinput" ,libinput) + ("libpipewire" ,pipewire) + ("libstartup-notification" ,startup-notification) + ("libudev" ,eudev) ("libwacom" ,libwacom) - ("libxkbfile" ,libxkbfile) - ("libxrandr" ,libxrandr) - ("libxtst" ,libxtst) - ("pipewire" ,pipewire) - ("startup-notification" ,startup-notification) - ("upower-glib" ,upower) + ("sm" ,libsm) + ("sysprof" ,sysprof) + ("upower" ,upower) + ("wayland-eglstream-protocols" ,egl-wayland) + ("wayland-protocols" ,wayland-protocols) + ("xau" ,libxau) + ("xcb" ,libxcb) + ("xcomposite" ,libxcomposite) + ("xcursor" ,libxcursor) + ("xdamage" ,libxdamage) + ("xext" ,libxext) + ("xinerama" ,libxinerama) + ("xkbcommon" ,libxkbcommon) + ("xkbfile" ,libxkbfile) ("xkeyboard-config" ,xkeyboard-config) ("xorg-server-xwayland" ,xorg-server-xwayland) - ("zenity" ,zenity))) - (synopsis "Window and compositing manager") - (home-page "https://www.gnome.org") - (description - "Mutter is a window and compositing manager that displays and manages your -desktop via OpenGL. Mutter combines a sophisticated display engine using the -Clutter toolkit with solid window-management logic inherited from the Metacity -window manager.") + ("xrandr" ,libxrandr) + ("xrender" ,libxrender) + ("xtst" ,libxtst))) + (propagated-inputs + `(("atk" ,atk) + ("cairo" ,cairo) + ("glib" ,glib) + ("graphene" ,graphene) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) + ("json-glib" ,json-glib) + ("mesa" ,mesa) + ("pango" ,pango) + ("wayland" ,wayland) + ("x11" ,libx11) + ("xfixes" ,libxfixes) + ("xi" ,libxi))) + (synopsis "Wayland display server and X11 window manager and compositor library") + (description "Mutter, when used as a Wayland display server, it runs on top +of KMS and libinput. It implements the compositor side of the Wayland core +protocol as well as various protocol extensions. It also has functionality +related to running X11 applications using Xwayland. +Mutter, when used on top of Xorg, it acts as a X11 window manager and +compositing manager. +Mutter contains functionality related to, among other things, window management, +window compositing, focus tracking, workspace management, keybindings and +monitor configuration.") + (home-page "https://wiki.gnome.org/Projects/Mutter") (license license:gpl2+))) (define-public gnome-online-accounts -- 2.28.0
From 4b0704166c3ba4555752e57a698fec8b5dae2bcb Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> Date: Tue, 11 Aug 2020 04:36:54 -0400 Subject: [PATCH 65/66] gnu: gdm: Update package definition. * gnu/packages/gnome.scm (gdm) [version]: Update to 3.36.3. [source]<origin>[sha256]: Modify base32. [patches]<search-patches>[gdm-default-session.patch]: Remove patch. [outputs]: New output "help". [arguments]<#:configure-flags>[--disable-static]: New flag. [--enable-gdm-xsession]: New flag. [--enable-ipv6]: New flag. [--with-help-dir]: New flag. [--with-systemdsystemunitdir]: New flag. [--with-default-path]: Modify flag. [--with-xevie]: New flag. [--without-plymouth]: Remove flag. [--localstatedir]: Remove flag. [--sbindir]: Remove flag. <#:phases>['pre-configure]: Modify phase. ['install-placeholder-desktop-entry]: Remove phase. ['link-autostart-files]: Remove phase. [native-inputs]: Add check. [inputs]: Add glib, audit, keyutils, libice, libselinux, plymouth, tcp-wrappers, libx11, libxau, libxcb, libxdmcp, libext and libxinerama. Remove check. [synopsis]: Modify. [description]: Modify. * gnu/packages/patches/gdm-default-session.patch: Remove file. * gnu/local.mk (gdm-default-session.patch): Remove reference. --- gnu/local.mk | 1 - gnu/packages/gnome.scm | 241 ++++++------------ .../patches/gdm-default-session.patch | 89 ------- 3 files changed, 75 insertions(+), 256 deletions(-) delete mode 100644 gnu/packages/patches/gdm-default-session.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9ff617a1ac..ec0b6defa8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -973,7 +973,6 @@ dist_patch_DATA = \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-brect-bounds.patch \ %D%/packages/patches/gdb-hurd.patch \ - %D%/packages/patches/gdm-default-session.patch \ %D%/packages/patches/gegl-mrg.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 81e0cce794..83a6689b7c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -92,6 +92,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cpio) #:use-module (gnu packages crates-io) + #:use-module (gnu packages crypto) #:use-module (gnu packages cups) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) @@ -9543,172 +9544,69 @@ libxml2.") (define-public gdm (package (name "gdm") - (version "3.34.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8")) - (patches (search-patches "gdm-default-session.patch")))) + (version "3.36.3") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "10byz8jwqv1qpvjj8wd36vfb8pbh9g7pchsc1gbwplf0rchbdyrv")))) (build-system glib-or-gtk-build-system) + (outputs '("out" "help")) (arguments - '(#:configure-flags - `("--without-plymouth" - "--disable-systemd-journal" - - ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1, - ;; instead of having to replace it (i.e., stopping the mingetty - ;; service for TTY 1 before starting GDM). - "--with-initial-vt=7" - - ;; Use '/etc/environment' for locale settings instead of the - ;; systemd-specific '/etc/locale.conf'. - "--with-lang-file=/etc/environment" - - ,(string-append "--with-udevdir=" - (assoc-ref %outputs "out") "/lib/udev") - - "--localstatedir=/var" - ,(string-append "--with-default-path=" - (string-join '("/run/setuid-programs" - "/run/current-system/profile/bin" - "/run/current-system/profile/sbin") - ":")) - ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the - ;; XDG_DATA_DIRS so that it finds its schemas. - "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin")) + `(#:configure-flags + (list + "--disable-static" + "--enable-gdm-xsession" + "--disable-systemd-journal" + "--enable-ipv6" + (string-append "--with-help-dir=" + (assoc-ref %outputs "help") + "/share/help") + (string-append "--with-udevdir=" + (assoc-ref %outputs "out") + "/lib/udev") + (string-append "--with-systemdsystemunitdir=" + (getcwd)) + (string-append "--with-default-path=" + "/run/setuid-programs" + ":" + "/run/current-system/profile/bin" + ":" + "/run/current-system/profile/sbin") + "--with-lang-file=/etc/environment" + "--with-xevie" + "--with-initial-vt=7") #:phases (modify-phases %standard-phases - (add-before - 'configure 'pre-configure - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; We don't have <systemd/sd-daemon.h>. - (substitute* '("common/gdm-log.c" - "daemon/gdm-server.c" - "daemon/gdm-session-worker.c" - "daemon/gdm-session-worker-job.c") - (("#include <systemd/sd-daemon\\.h>") "")) - ;; Use elogind for sd-login. - (substitute* '("common/gdm-common.c" - "daemon/gdm-local-display-factory.c" - "daemon/gdm-manager.c" - "libgdm/gdm-user-switching.c") - (("#include <systemd/sd-login\\.h>") - "#include <elogind/sd-login.h>")) - ;; Check for elogind. - (substitute* '("configure") - (("libsystemd") - "libelogind")) - ;; Look for system-installed sessions in - ;; /run/current-system/profile/share. - (substitute* '("libgdm/gdm-sessions.c" - "daemon/gdm-session.c" - "daemon/gdm-display.c" - "daemon/gdm-launch-environment.c") - (("DATADIR \"/x") - "\"/run/current-system/profile/share/x") - (("DATADIR \"/wayland") - "\"/run/current-system/profile/share/wayland") - (("DATADIR \"/gnome") - "\"/run/current-system/profile/share/gnome")) - (let ((propagate '("GDM_CUSTOM_CONF" - "GDM_DBUS_DAEMON" - "GDM_X_SERVER" - "GDM_X_SESSION" - ;; XXX: Remove this once GNOME Shell is - ;; a dependency of GDM. - "XDG_DATA_DIRS"))) - (substitute* "daemon/gdm-session.c" - (("set_up_session_environment \\(self\\);") - (apply string-append - "set_up_session_environment (self);\n" - (map (lambda (name) - (string-append - "gdm_session_set_environment_variable " - "(self, \"" name "\"," - "g_getenv (\"" name "\"));\n")) - propagate))))) - ;; Find the configuration file using an environment variable. - (substitute* '("common/gdm-settings.c") - (("GDM_CUSTOM_CONF") - (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL" - " ? g_getenv(\"GDM_CUSTOM_CONF\")" - " : GDM_CUSTOM_CONF)"))) - ;; Use service-supplied path to X. - (substitute* '("daemon/gdm-server.c") - (("\\(X_SERVER X_SERVER_ARG_FORMAT") - "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")")) - (substitute* '("daemon/gdm-wayland-session.c" - "daemon/gdm-x-session.c") - (("\"dbus-daemon\"") - "g_getenv (\"GDM_DBUS_DAEMON\")") - (("X_SERVER") - "g_getenv (\"GDM_X_SERVER\")") - (("GDMCONFDIR \"/Xsession\"") - "g_getenv (\"GDM_X_SESSION\")")) - ;; Use an absolute path for GNOME Session. - (substitute* "daemon/gdm-launch-environment.c" - (("\"gnome-session\"") - (string-append "\"" (assoc-ref inputs "gnome-session") - "/bin/gnome-session\""))) - ;; Do not automatically select the placeholder session. - (substitute* "daemon/gdm-session.c" - (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]") - (string-append "!g_str_has_suffix (base_name, \".desktop\") || " - "(g_strcmp0(search_dirs[i], \"" - (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/" - "\") == 0 && " - "g_strcmp0(base_name, \"fail.desktop\") == 0)")) - (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];") - "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }")) - #t)) - ;; GDM requires that there be at least one desktop entry - ;; file. This phase installs a hidden one that simply - ;; fails. This enables users to use GDM with a - ;; '~/.xsession' script with no other desktop entry files. - ;; See <https://bugs.gnu.org/35068>. - (add-after 'install 'install-placeholder-desktop-entry - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (sessions (string-append out "/share/gdm/BuiltInSessions")) - (fail (string-append sessions "/fail.desktop"))) - (mkdir-p sessions) - (with-output-to-file fail - (lambda () - (for-each - display - '("[Desktop Entry]\n" - "Encoding=UTF-8\n" - "Type=Application\n" - "Name=Fail\n" - "Comment=This session fails immediately.\n" - "NoDisplay=true\n" - "Exec=false\n")))) - #t))) - ;; GDM needs GNOME Session to run these applications. We link - ;; their autostart files in `share/gdm/greeter/autostart' - ;; because GDM explicitly tells GNOME Session to look there. - ;; - ;; XXX: GNOME Shell should be linked here too, but currently - ;; GNOME Shell depends on GDM. - (add-after 'install 'link-autostart-files + (add-before 'configure 'pre-configure (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (autostart (string-append out "/share/gdm/" - "greeter/autostart")) - (settings (assoc-ref inputs "gnome-settings-daemon"))) - (mkdir-p autostart) - (with-directory-excursion autostart - (for-each (lambda (desktop) - (symlink desktop (basename desktop))) - (find-files (string-append settings "/etc/xdg")))) - #t)))))) + ;; We don't have <systemd/sd-daemon.h>. + (substitute* '("common/gdm-log.c" + "daemon/gdm-server.c" + "daemon/gdm-session-worker.c" + "daemon/gdm-session-worker-job.c") + (("#include <systemd/sd-daemon\\.h>") + "")) + ;; Use elogind for sd-login. + (substitute* '("common/gdm-common.c" + "daemon/gdm-local-display-factory.c" + "daemon/gdm-manager.c" + "libgdm/gdm-user-switching.c") + (("#include <systemd/sd-login\\.h>") + "#include <elogind/sd-login.h>")) + ;; Check for elogind. + (substitute* '("configure") + (("libsystemd") + "libelogind")) + #t))))) (native-inputs - `(("dconf" ,dconf) - ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + `(("check" ,check) + ("dconf" ,dconf) + ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("itstool" ,itstool) @@ -9716,19 +9614,30 @@ libxml2.") ("xmllint" ,libxml2))) (inputs `(("accountsservice" ,accountsservice) - ("check" ,check) ; for testing ("elogind" ,elogind) + ("glib" ,glib) ("gnome-session" ,gnome-session) ("gnome-settings-daemon" ,gnome-settings-daemon) ("gtk+" ,gtk+) + ("ice" ,libice) ("iso-codes" ,iso-codes) + ("libaudit" ,audit) ("libcanberra" ,libcanberra) - ("linux-pam" ,linux-pam))) - (synopsis "Display manager for GNOME") + ("libkeyutils" ,keyutils) + ("libselinux" ,libselinux) + ("linux-pam" ,linux-pam) + ("plymouth" ,plymouth) + ("tcp-wrappers" ,tcp-wrappers) + ("x11" ,libx11) + ("xau" ,libxau) + ("xcb" ,libxcb) + ("xdmcp" ,libxdmcp) + ("xext" ,libxext) + ("xinerama" ,libxinerama))) + (synopsis "GNOME Display Manager") + (description "GDM is a program that manages graphical display servers and +handles graphical user logins.") (home-page "https://wiki.gnome.org/Projects/GDM/") - (description - "GNOME Display Manager is a system service that is responsible for -providing graphical log-ins and managing local and remote displays.") (license license:gpl2+))) (define-public libgtop diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch deleted file mode 100644 index 9ab2829cdb..0000000000 --- a/gnu/packages/patches/gdm-default-session.patch +++ /dev/null @@ -1,89 +0,0 @@ -This patch ensures '.desktop' files are picked up in the system profile -and not in the directories listed in $XDG_DATA_DIRS. The latter includes -'gnome-session.desktop', which should be used if it's in -/run/current-system/profile, and only then. - -Fixes <https://bugs.gnu.org/37831>. - -diff -ur a/daemon/gdm-session.c b/daemon/gdm-session.c ---- a/daemon/gdm-session.c 2019-09-25 10:40:24.000000000 -0400 -+++ b/daemon/gdm-session.c 2020-04-18 18:30:02.671856808 -0400 -@@ -348,24 +348,18 @@ - GArray *search_array = NULL; - char **search_dirs; - int i; -- const gchar * const *system_data_dirs = g_get_system_data_dirs (); - - static const char *x_search_dirs[] = { - "/etc/X11/sessions/", - DMCONFDIR "/Sessions/", - DATADIR "/gdm/BuiltInSessions/", -- DATADIR "/xsessions/", -+ "/run/current-system/profile/share/xsessions/" - }; - - static const char *wayland_search_dir = DATADIR "/wayland-sessions/"; - - search_array = g_array_new (TRUE, TRUE, sizeof (char *)); - -- for (i = 0; system_data_dirs[i]; i++) { -- gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL); -- g_array_append_val (search_array, dir); -- } -- - g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs)); - - #ifdef ENABLE_WAYLAND_SUPPORT -@@ -373,16 +367,7 @@ - #ifdef ENABLE_USER_DISPLAY_SERVER - g_array_prepend_val (search_array, wayland_search_dir); - -- for (i = 0; system_data_dirs[i]; i++) { -- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); -- g_array_insert_val (search_array, i, dir); -- } - #else -- for (i = 0; system_data_dirs[i]; i++) { -- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); -- g_array_append_val (search_array, dir); -- } -- - g_array_append_val (search_array, wayland_search_dir); - #endif - } -diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c ---- a/libgdm/gdm-sessions.c 2019-10-07 04:53:35.000000000 -0400 -+++ b/libgdm/gdm-sessions.c 2020-04-18 18:31:42.491348691 -0400 -@@ -245,19 +245,12 @@ - "/etc/X11/sessions/", - DMCONFDIR "/Sessions/", - DATADIR "/gdm/BuiltInSessions/", -- DATADIR "/xsessions/", -+ "/run/current-system/profile/share/xsessions/" - }; - - names_seen_before = g_hash_table_new (g_str_hash, g_str_equal); - xorg_search_array = g_ptr_array_new_with_free_func (g_free); - -- const gchar * const *system_data_dirs = g_get_system_data_dirs (); -- -- for (i = 0; system_data_dirs[i]; i++) { -- session_dir = g_build_filename (system_data_dirs[i], "xsessions", NULL); -- g_ptr_array_add (xorg_search_array, session_dir); -- } -- - for (i = 0; i < G_N_ELEMENTS (xorg_search_dirs); i++) { - g_ptr_array_add (xorg_search_array, g_strdup (xorg_search_dirs[i])); - } -@@ -269,11 +262,6 @@ - - wayland_search_array = g_ptr_array_new_with_free_func (g_free); - -- for (i = 0; system_data_dirs[i]; i++) { -- session_dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); -- g_ptr_array_add (wayland_search_array, session_dir); -- } -- - for (i = 0; i < G_N_ELEMENTS (wayland_search_dirs); i++) { - g_ptr_array_add (wayland_search_array, g_strdup (wayland_search_dirs[i])); - } -- 2.28.0
From b0f56deb81cdf3220c2822811951d5c7fcdce75c Mon Sep 17 00:00:00 2001 From: Raghav Gururajan <raghavgurura...@disroot.org> 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]<origin>[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 | 238 +++++++++--------- .../patches/gnome-shell-disable-test.patch | 25 -- gnu/packages/patches/gnome-shell-theme.patch | 51 ---- 4 files changed, 115 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..4c3694881c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -9889,162 +9889,154 @@ 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* '("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: <https://bugs.gnu.org/27264> + ("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 <l...@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 { -- 2.28.0
signature.asc
Description: OpenPGP digital signature