unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: Timothy Sample <samplet@ngyro.com>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: ‘staging’ and GNOME updates
Date: Thu, 25 Apr 2019 14:57:43 +0200	[thread overview]
Message-ID: <875zr244zc.fsf@elephly.net> (raw)
In-Reply-To: <871s1rnrc3.fsf@ngyro.com>


Timothy Sample <samplet@ngyro.com> writes:

> Ricardo Wurmus <rekado@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

  reply	other threads:[~2019-04-25 12:58 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-13 15:17 Status update on 1.0 Ludovic Courtès
2019-03-13 15:32 ` Tobias Geerinckx-Rice
2019-03-13 16:00   ` Pierre Neidhardt
2019-03-13 18:33     ` Danny Milosavljevic
2019-03-13 18:47       ` Pierre Neidhardt
2019-03-15 12:54         ` Ludovic Courtès
2019-03-15 13:06           ` Pierre Neidhardt
2019-03-15 16:48           ` Mathieu Othacehe
2019-03-14  2:26       ` Maxim Cournoyer
2019-03-15 12:53   ` Ludovic Courtès
2019-03-13 16:34 ` mikadoZero
2019-03-13 17:08   ` Ricardo Wurmus
2019-03-13 18:14     ` pelzflorian (Florian Pelz)
2019-03-13 19:43       ` L p R n d n
2019-03-14 13:54       ` L p R n d n
2019-03-15 12:57       ` Ludovic Courtès
2019-03-15 13:56         ` pelzflorian (Florian Pelz)
2019-03-13 20:53     ` mikadoZero
2019-03-14  3:54 ` Timothy Sample
2019-03-15 13:47   ` Ludovic Courtès
2019-03-15 17:44     ` Timothy Sample
2019-03-23 16:36       ` Ludovic Courtès
2019-03-21 18:49     ` Timothy Sample
2019-03-23 16:42       ` Ludovic Courtès
2019-03-28  3:28         ` Timothy Sample
2019-03-14 21:16 ` Gábor Boskovits
2019-03-15 13:51   ` Ludovic Courtès
2019-03-15 18:31     ` Thompson, David
2019-03-15 19:20       ` Gábor Boskovits
     [not found]         ` <CAN1Dt4SQzXJOK2bJF47cFO5ERg9=uf8wktH=arJ=AypEUnO2yw@mail.gmail.com>
2019-03-21  0:52           ` Fwd: " Kristofer Buffington
2019-03-21 14:59             ` Gábor Boskovits
2019-03-27 15:26 ` Ludovic Courtès
2019-03-27 15:29   ` znavko
2019-03-27 23:10   ` Danny Milosavljevic
2019-03-29 16:07     ` Ludovic Courtès
2019-03-28  0:09   ` pelzflorian (Florian Pelz)
2019-03-29 16:13     ` KMScon vs. AMD Radeon Ludovic Courtès
2019-03-29 16:35       ` Mathieu Othacehe
2019-03-29 18:00         ` pelzflorian (Florian Pelz)
2019-03-30  7:25           ` Mathieu Othacehe
2019-03-30  8:40             ` Pierre Neidhardt
2019-03-30 15:22               ` pelzflorian (Florian Pelz)
2019-04-01 13:58                 ` Mathieu Othacehe
2019-04-01 20:01                   ` Ludovic Courtès
2019-04-02  7:53                     ` Mathieu Othacehe
2019-04-02 16:31                       ` Danny Milosavljevic
2019-04-03  5:11                         ` pelzflorian (Florian Pelz)
2019-04-03  7:19                           ` Mathieu Othacehe
2019-04-03  7:34                             ` pelzflorian (Florian Pelz)
2019-04-03 11:13                             ` Danny Milosavljevic
2019-04-03 20:46                               ` Ludovic Courtès
2019-04-03  7:37                         ` Mathieu Othacehe
2019-04-03 11:19                           ` Danny Milosavljevic
2019-04-03 18:56                             ` Danny Milosavljevic
2019-04-03 20:48                               ` Ludovic Courtès
2019-04-03 21:02                                 ` Danny Milosavljevic
2019-04-04  5:02                                   ` pelzflorian (Florian Pelz)
2019-04-04  7:38                                     ` Mathieu Othacehe
2019-04-04 13:49                                       ` Mathieu Othacehe
2019-04-04 16:07                                         ` pelzflorian (Florian Pelz)
2019-04-06  9:05                                           ` Danny Milosavljevic
2019-04-06 11:03                                             ` pelzflorian (Florian Pelz)
2019-04-14  9:48                                           ` pelzflorian (Florian Pelz)
2019-04-14 20:54                                             ` pelzflorian (Florian Pelz)
2019-04-15 12:09                                               ` Ludovic Courtès
2019-04-17 17:26                                                 ` pelzflorian (Florian Pelz)
2019-04-18  7:05                                                   ` pelzflorian (Florian Pelz)
2019-04-19 12:19                                                     ` pelzflorian (Florian Pelz)
2019-04-18 21:47                                                   ` Ludovic Courtès
2019-04-19 12:17                                                     ` pelzflorian (Florian Pelz)
2019-04-19 15:17                                                       ` Ludovic Courtès
2019-04-19 17:11                                                         ` pelzflorian (Florian Pelz)
2019-04-20  8:59                                                           ` pelzflorian (Florian Pelz)
2019-04-20  9:47                                                           ` Ludovic Courtès
2019-04-20 10:10                                                             ` pelzflorian (Florian Pelz)
2019-04-20 10:16                                                             ` Pierre Neidhardt
2019-04-20 10:39                                                               ` pelzflorian (Florian Pelz)
2019-04-20 11:21                                                                 ` Félicien Pillot
2019-04-20 12:30                                                                   ` Pierre Neidhardt
2019-04-20 12:37                                                                     ` Pierre Neidhardt
2019-04-21 19:57                                                                       ` Ludovic Courtès
2019-04-22  8:46                                                                         ` Pierre Neidhardt
2019-04-22 11:48                                                                       ` pelzflorian (Florian Pelz)
2019-04-22 18:34                                                                         ` pelzflorian (Florian Pelz)
2019-04-26  8:35                                                             ` pelzflorian (Florian Pelz)
2019-04-02  9:26                     ` pelzflorian (Florian Pelz)
2019-04-02 11:42                       ` pelzflorian (Florian Pelz)
2019-04-03  4:17                         ` pelzflorian (Florian Pelz)
2019-04-03  9:17                           ` pelzflorian (Florian Pelz)
2019-04-03  9:00                     ` Pierre Neidhardt
2019-04-07 16:10     ` Installer & locales Ludovic Courtès
2019-04-07 16:12     ` Installer & services Ludovic Courtès
2019-04-08  9:26       ` Ludovic Courtès
2019-04-01 19:34   ` Status update on 1.0 mikadoZero
2019-04-02  8:05     ` Ludovic Courtès
2019-03-28 13:46 ` Marius Bakke
2019-03-29 16:11   ` Ludovic Courtès
2019-03-29 18:56     ` Ricardo Wurmus
2019-03-31 20:52       ` ‘staging’ and GNOME updates Ludovic Courtès
2019-04-01 17:16         ` Efraim Flashner
2019-04-01 19:36           ` Ludovic Courtès
2019-04-10 16:53         ` Ricardo Wurmus
2019-04-10 21:13           ` Ludovic Courtès
2019-04-10 21:13           ` Ludovic Courtès
2019-04-11 19:33             ` Ricardo Wurmus
2019-04-13 17:46               ` Timothy Sample
2019-04-13 18:07                 ` Ricardo Wurmus
2019-04-15 12:13                   ` Ludovic Courtès
2019-04-15 12:34               ` Ludovic Courtès
2019-04-15 21:55                 ` Ludovic Courtès
2019-04-15 22:33                   ` Ricardo Wurmus
2019-04-16  4:59                     ` Timothy Sample
2019-04-16  9:31                       ` Ricardo Wurmus
2019-04-16 20:14                       ` Ludovic Courtès
2019-04-22 10:15                         ` Ludovic Courtès
2019-04-23  7:17                           ` Ricardo Wurmus
2019-04-23  7:20                             ` Ricardo Wurmus
2019-04-23 10:28                             ` Ludovic Courtès
2019-04-23 18:18                               ` Ricardo Wurmus
2019-04-24  4:10                                 ` Timothy Sample
2019-04-24  6:54                                   ` Ricardo Wurmus
2019-04-24 19:19                                     ` Timothy Sample
2019-04-25 12:57                                       ` Ricardo Wurmus [this message]
2019-04-25 15:33                                       ` Giovanni Biscuolo
2019-04-10 13:41       ` Status update on 1.0 Jonathan Brielmaier
2019-04-10 16:56         ` Ricardo Wurmus
2019-04-10 17:57           ` Jonathan Brielmaier
2019-04-10 19:05             ` Ricardo Wurmus
2019-04-17 12:49 ` Pierre Neidhardt
2019-04-17 13:38   ` TeX Live Ludovic Courtès
2019-04-17 14:04     ` Pierre Neidhardt
2019-04-18 14:39       ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875zr244zc.fsf@elephly.net \
    --to=rekado@elephly.net \
    --cc=guix-devel@gnu.org \
    --cc=samplet@ngyro.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).