[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ‘staging’ and GNOME updates
From: |
Ricardo Wurmus |
Subject: |
Re: ‘staging’ and GNOME updates |
Date: |
Thu, 25 Apr 2019 14:57:43 +0200 |
User-agent: |
mu4e 1.0; emacs 26.1 |
Timothy Sample <address@hidden> writes:
> Ricardo Wurmus <address@hidden> 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
- Re: ‘staging’ and GNOME updates, (continued)
- Re: ‘staging’ and GNOME updates, Ricardo Wurmus, 2019/04/16
- Re: ‘staging’ and GNOME updates, Ludovic Courtès, 2019/04/16
- Re: ‘staging’ and GNOME updates, Ludovic Courtès, 2019/04/22
- Re: ‘staging’ and GNOME updates, Ricardo Wurmus, 2019/04/23
- Re: ‘staging’ and GNOME updates, Ricardo Wurmus, 2019/04/23
- Re: ‘staging’ and GNOME updates, Ludovic Courtès, 2019/04/23
- Re: ‘staging’ and GNOME updates, Ricardo Wurmus, 2019/04/23
- Re: ‘staging’ and GNOME updates, Timothy Sample, 2019/04/24
- Re: ‘staging’ and GNOME updates, Ricardo Wurmus, 2019/04/24
- Re: ‘staging’ and GNOME updates, Timothy Sample, 2019/04/24
- Re: ‘staging’ and GNOME updates,
Ricardo Wurmus <=
- Re: ‘staging’ and GNOME updates, Giovanni Biscuolo, 2019/04/25