Timothy Sample <samp...@ngyro.com> writes:
> Ricardo Wurmus <rek...@elephly.net> writes: > >>> After running GNOME 3.28 for a while, I’ve had several crashes. It used >>> to crash whenever I opened a URL from Emacs, but fiddling with dconf has >>> fixed that. It currently crashes every time I run ERC (I’ve turned on >>> notifications there), and I can’t seem to fix it. >>> >>> Interestingly, there is a discussion about this on the Arch Linux forums >>> <https://bbs.archlinux.org/viewtopic.php?pid=1778640>. I’m not sure if >>> there’s anything useful for us in there, though. >> >> This message seems relevant: >> >> https://bbs.archlinux.org/viewtopic.php?pid=1778640#p1778640 >> >> My issue was caused by using ubuntu-cairo. It was incompatible with >> librsvg 2.42.3, which caused a crash when gnome attempted to load an >> SVG when trying to display the notification. It also caused the >> close window button to not appear in the overview. > > I did see this, but I couldn’t really connect it to the problem at hand. > It is interesting that the close window buttons in the overview are a > problem for us, too <https://issues.guix.info/issue/33693>. > >>> It looks like GNOME Shell passes some bad icon data into GTK+, which >>> results in a null filename that gets dereferenced. (GNOME Shell is not >>> in the backtrace – it tells GTK+ to run this thread from the >>> “load_texture_async” function in “st-texture-cache.c”. >>> >>> I think the “bad” user files are not the root cause here. There’s >>> definitely something wrong with notifications. (I just plugged in a USB >>> drive and, sure enough, GNOME Shell crashed.) The notification daemon >>> code is written in JavaScript (“js/ui/notificationDaemon.js”). I >>> glanced at it and its Git history, but couldn’t find anything. >> >> I don’t think it’s notifications per se, but rendering SVGs. When >> application_state exists, GNOME shell tries to restore application >> windows and their icons are likely SVG files that should be rendered. >> >> Chris reported elsewhere that GNOME sometimes crashes when the Activity >> tab is accessed — that’s where the application starter is, which >> displays icons. >> >> I believe we should be using librsvg-next in the closure of gnome-shell. >> We may also want to use gdk-pixbuf+svg instead of just gdk-pixbuf, but >> again replacing librsvg with librsvg-next throughout. I’m guessing that >> the problem is entirely due to using an outdated variant of librsvg. >> >> What do you think? > > To be honest, I don’t know. From my side, I haven’t seen anything that > suggests SVGs might be the problem. I just checked an application that > no longer has an icon since the update, and it doesn’t provide an SVG. > On the other hand, Emacs, which does provide an SVG, is fine. I can’t > find anything in the backtrace that suggests SVG problems either. > > That said, software is complicated and this is best lead we have. Maybe > the crash I’m seeing is fallback code that gets called when SVGs aren’t > quite working. I did try patching GTK+ the other day (for testing > something else), but gave up when I realized that it means recompiling > WebKitGTK, which takes forever. I’ll try and patch everything later and > leave my computer to compile overnight. Or, maybe I could pull Epiphany > out of our GNOME package, and avoid WebKitGTK (now that GNOME Shell > doesn’t need it). Either way, I will try and test this. If nothing > else, it might fix the bug linked above. I built the VM with this diff: --8<---------------cut here---------------start------------->8--- diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5583af576b..98e2a75777 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2189,7 +2189,7 @@ engineering.") (inputs `(("gtk+" ,gtk+) ("gtk+-2" ,gtk+-2) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("libxml2" ,libxml2) ("glib" ,glib))) (native-inputs @@ -3278,7 +3278,7 @@ services for numerous locations.") ("cups" ,cups) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("libwacom" ,libwacom) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("xf86-input-wacom" ,xf86-input-wacom) ("wayland" ,wayland) ("network-manager" ,network-manager))) @@ -3864,7 +3864,7 @@ for application developers.") ("libxml2" ,libxml2) ("libsoup" ,libsoup) ("libpeas" ,libpeas) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("lirc" ,lirc) ("gnome-desktop" ,gnome-desktop) ("gstreamer" ,gstreamer) @@ -4072,7 +4072,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") ("libexif" ,libexif) ("libpeas" ,libpeas) ("libjpeg" ,libjpeg) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+))) (home-page "https://wiki.gnome.org/Apps/EyeOfGnome") @@ -5991,7 +5991,7 @@ properties, screen resolution, and other GNOME parameters.") ("upower" ,upower) ;; XXX: These requirements were added in 3.24, but no mention in NEWS. ;; Missing propagation? See also: <https://bugs.gnu.org/27264> - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("geoclue" ,geoclue))) (synopsis "Desktop shell for GNOME") (home-page "https://wiki.gnome.org/Projects/GnomeShell") @@ -6397,7 +6397,7 @@ associations for GNOME.") ("dconf" ,dconf) ("desktop-file-utils" ,desktop-file-utils) ("eog" ,eog) - ("epiphany" ,epiphany) + ;("epiphany" ,epiphany) ("evince" ,evince) ("file-roller" ,file-roller) ("gedit" ,gedit) @@ -7267,7 +7267,7 @@ Bluefish supports many programming and markup languages.") `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files. ("gtk+" ,gtk+) ("gtkmm" ,gtkmm) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("libxml2" ,libxml2) ("libwnck" ,libwnck))) (home-page "https://wiki.gnome.org/Apps/SystemMonitor") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 6e63ca6614..b87b3649c3 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -528,7 +528,7 @@ in the GNOME project.") (package (inherit gdk-pixbuf) (name "gdk-pixbuf+svg") (inputs - `(("librsvg" ,librsvg) + `(("librsvg" ,librsvg-next) ,@(package-inputs gdk-pixbuf))) (arguments '(#:configure-flags '("-Dinstalled-tests=false") --8<---------------cut here---------------end--------------->8--- GDM shows up but the GNOME shell cannot be started after log in. It also did not fix the icon problem. But! Wrapping gnome-shell in LD_LIBRARY_PATH for gdk-pixbuf does fix both problems! With this diff I could log in fine and see the closing icon in the window overview after starting an application. --8<---------------cut here---------------start------------->8--- diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5583af576b..0be09a8b4f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2189,7 +2189,7 @@ engineering.") (inputs `(("gtk+" ,gtk+) ("gtk+-2" ,gtk+-2) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("libxml2" ,libxml2) ("glib" ,glib))) (native-inputs @@ -3278,7 +3278,7 @@ services for numerous locations.") ("cups" ,cups) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("libwacom" ,libwacom) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("xf86-input-wacom" ,xf86-input-wacom) ("wayland" ,wayland) ("network-manager" ,network-manager))) @@ -3864,7 +3864,7 @@ for application developers.") ("libxml2" ,libxml2) ("libsoup" ,libsoup) ("libpeas" ,libpeas) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("lirc" ,lirc) ("gnome-desktop" ,gnome-desktop) ("gstreamer" ,gstreamer) @@ -4072,7 +4072,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") ("libexif" ,libexif) ("libpeas" ,libpeas) ("libjpeg" ,libjpeg) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+))) (home-page "https://wiki.gnome.org/Apps/EyeOfGnome") @@ -5932,7 +5932,8 @@ properties, screen resolution, and other GNOME parameters.") `("LD_LIBRARY_PATH" ":" prefix ,(map (lambda (pkg) (string-append (assoc-ref inputs pkg) "/lib")) - '("gnome-bluetooth" "librsvg" "libgweather")))) + '("gdk-pixbuf" + "gnome-bluetooth" "librsvg" "libgweather")))) (for-each (lambda (prog) (wrap-program (string-append out "/bin/" prog) @@ -5969,6 +5970,7 @@ properties, screen resolution, and other GNOME parameters.") ("evolution-data-server" ,evolution-data-server) ("gcr" ,gcr) ("gdm" ,gdm) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("gjs" ,gjs) ("gnome-bluetooth" ,gnome-bluetooth) ("gnome-desktop" ,gnome-desktop) @@ -5991,7 +5993,7 @@ properties, screen resolution, and other GNOME parameters.") ("upower" ,upower) ;; XXX: These requirements were added in 3.24, but no mention in NEWS. ;; Missing propagation? See also: <https://bugs.gnu.org/27264> - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("geoclue" ,geoclue))) (synopsis "Desktop shell for GNOME") (home-page "https://wiki.gnome.org/Projects/GnomeShell") @@ -6397,7 +6399,7 @@ associations for GNOME.") ("dconf" ,dconf) ("desktop-file-utils" ,desktop-file-utils) ("eog" ,eog) - ("epiphany" ,epiphany) + ;("epiphany" ,epiphany) ("evince" ,evince) ("file-roller" ,file-roller) ("gedit" ,gedit) @@ -7267,7 +7269,7 @@ Bluefish supports many programming and markup languages.") `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files. ("gtk+" ,gtk+) ("gtkmm" ,gtkmm) - ("librsvg" ,librsvg) + ("librsvg" ,librsvg-next) ("libxml2" ,libxml2) ("libwnck" ,libwnck))) (home-page "https://wiki.gnome.org/Apps/SystemMonitor") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 6e63ca6614..b87b3649c3 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -528,7 +528,7 @@ in the GNOME project.") (package (inherit gdk-pixbuf) (name "gdk-pixbuf+svg") (inputs - `(("librsvg" ,librsvg) + `(("librsvg" ,librsvg-next) ,@(package-inputs gdk-pixbuf))) (arguments '(#:configure-flags '("-Dinstalled-tests=false") --8<---------------cut here---------------end--------------->8--- We could skip the librsvg-next changes and only push the LD_LIBRARY_PATH fix. If that alone fixes the problems we can do the librsvg stuff on core-updates later. Sound good?< -- Ricardo