From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: =?utf-8?B?4oCYc3RhZ2luZ+KAmQ==?= and GNOME updates Date: Thu, 25 Apr 2019 14:57:43 +0200 Message-ID: <875zr244zc.fsf@elephly.net> References: <871s3a4xd4.fsf@gnu.org> <87wokjyuw4.fsf@fastmail.com> <87muld8xuo.fsf@gnu.org> <87y34xzez8.fsf@elephly.net> <87zhpaydem.fsf_-_@gnu.org> <87imvler9u.fsf@elephly.net> <87bm1d8sxv.fsf@gnu.org> <87ef68ibfy.fsf@elephly.net> <87r2a3o39s.fsf@gnu.org> <87sgujgchr.fsf@gnu.org> <878swa3nm9.fsf@elephly.net> <87h8ayfstx.fsf@ngyro.com> <87zhopd7x4.fsf@gnu.org> <87d0le1h38.fsf@gnu.org> <87zhoh5gwu.fsf@elephly.net> <8736m9j9rx.fsf@gnu.org> <87r29s60wp.fsf@elephly.net> <87a7ggoxf2.fsf@ngyro.com> <87o94v6ghe.fsf@elephly.net> <871s1rnrc3.fsf@ngyro.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([209.51.188.92]:53628) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJdxR-0002tZ-SM for guix-devel@gnu.org; Thu, 25 Apr 2019 08:58:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJdxM-0004l6-2K for guix-devel@gnu.org; Thu, 25 Apr 2019 08:58:30 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21246) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hJdxI-0004iy-TT for guix-devel@gnu.org; Thu, 25 Apr 2019 08:58:26 -0400 In-reply-to: <871s1rnrc3.fsf@ngyro.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Timothy Sample Cc: Guix-devel Timothy Sample writes: > Ricardo Wurmus writes: > >>> After running GNOME 3.28 for a while, I=E2=80=99ve 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=E2=80=99ve tu= rned on >>> notifications there), and I can=E2=80=99t seem to fix it. >>> >>> Interestingly, there is a discussion about this on the Arch Linux forums >>> . I=E2=80=99m n= ot sure if >>> there=E2=80=99s anything useful for us in there, though. >> >> This message seems relevant: >> >> https://bbs.archlinux.org/viewtopic.php?pid=3D1778640#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=E2=80=99t really connect it to the problem a= t hand. > It is interesting that the close window buttons in the overview are a > problem for us, too . > >>> 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 =E2=80=93 it tells GTK+ to run this thread from the >>> =E2=80=9Cload_texture_async=E2=80=9D function in =E2=80=9Cst-texture-ca= che.c=E2=80=9D. >>> >>> I think the =E2=80=9Cbad=E2=80=9D user files are not the root cause her= e. There=E2=80=99s >>> 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 (=E2=80=9Cjs/ui/notificationDaemon.js=E2= =80=9D). I >>> glanced at it and its Git history, but couldn=E2=80=99t find anything. >> >> I don=E2=80=99t think it=E2=80=99s notifications per se, but rendering S= VGs. 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 =E2=80=94 that=E2=80=99s where the application starter i= s, 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=E2=80=99m guess= ing that >> the problem is entirely due to using an outdated variant of librsvg. >> >> What do you think? > > To be honest, I don=E2=80=99t know. From my side, I haven=E2=80=99t 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=E2=80=99t provide an= SVG. > On the other hand, Emacs, which does provide an SVG, is fine. I can=E2= =80=99t > 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=E2=80=99m seeing is fallback code that gets called when SVGs = aren=E2=80=99t > 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=E2=80=99ll try and patch everything la= ter 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=E2=80=99t need it). Either way, I will try and test this. If noth= ing > 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 inst= alled 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 parame= ters.") ("upower" ,upower) ;; XXX: These requirements were added in 3.24, but no mention in NE= WS. ;; Missing propagation? See also: - ("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 languag= es.") `(("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=3Dfalse") --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 inst= alled 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 parame= ters.") `("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 parame= ters.") ("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 parame= ters.") ("upower" ,upower) ;; XXX: These requirements were added in 3.24, but no mention in NE= WS. ;; Missing propagation? See also: - ("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 languag= es.") `(("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=3Dfalse") --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