gpaste-client --version dies with a sigsegv

  • Done
  • quality assurance status badge
Details
One participant
  • Attila Lendvai
Owner
unassigned
Submitted by
Attila Lendvai
Severity
normal
A
A
Attila Lendvai wrote on 30 Sep 2022 10:57
(name . bug-guix@gnu.org)(address . bug-guix@gnu.org)
UUiMKFIwci-EssCkr-xMYQ9eEh60S_C--q4SKEXN39_v3TZbDImjUqYO5h5ozidMv0SDdRvIWWAFnTsec58RaO3l_vFP-903tTEzA0Ho60Y=@lendvai.name
this pretty much tells it all:

$ guix shell gpaste
$ gpaste-client --version

(/gnu/store/7xj6mjvd00f83bmscn6ya1zwd0wi67gf-profile/bin/gpaste-client:27755): GPaste-CRITICAL **: 10:49:21.373: Error calling StartServiceByName for org.gnome.GPaste: Process org.gnome.GPaste received signal 11

i tried to debug it, but it happens in a new thread, and i failed to obtain a backtrace by simply starting it in gdb.

the actual symptom is that the gpaste shell extension crashes the gnome shell while logging in, and upon the next login all gnome shell extensions are disabled. enabling them immediately crashes the entire gnome shell.

--
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Being true to yourself means living in truth with each person in your life. It means refusing to say or do something that you don’t believe is right. Living in truth with other people means that you refuse to stay in any situation where you are unhappy with the behavior of another person. You refuse to tolerate it. You refuse to compromise.”
— Brian Tracy (1944–)
A
A
Attila Lendvai wrote on 30 Sep 2022 12:17
missing substitute for @gschemasCompiled@ ?
(name . 58191@debbugs.gnu.org)(address . 58191@debbugs.gnu.org)
SAkH75vqaIWT6sBwnZsJFnOzKtTLFllxP3viMnp3njfcSWeoo7rgoXfJKM5GXSALAbe29smCVwh9wIfzX8CigbWmUgHzxudrkdB6zecJGIg=@lendvai.name
i'm attaching my current WIP diff while i was trying to debug this.

note that in my original submission there was a substitute for @gschemasCompiled@ (https://issues.guix.gnu.org/53072),but it did not reach master when it got pushed (https://git.savannah.gnu.org/cgit/guix.git/commit/gnu/packages/gnome-xyz.scm?id=a485e1e663060e8c62103d81dfffec591f624360).

i'm not sure whether it's important. it shouldn't be, because gpaste used to work for me right until a recent reconfigure... but i thought that i point it out. if that substitute was intentionally left out, then it may warrant a comment on why, because the package's .patch file (inherited from NixOS) adds the marker (https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/gpaste-fix-paths.patch).

i tried to reinstate the substitute, as you can see below, but it does not fix the new crash. i added some asserts, even sure-to-fail ones, and that code path seems not yet reached when the sigsegv already happens.

i'm out of ideas, and certainly out of my glib knowledge.

----

2 files changed, 11 insertions(+), 5 deletions(-)
gnu/packages/gnome-xyz.scm | 12 ++++++++----
gnu/packages/patches/gpaste-fix-paths.patch | 4 +++-

modified gnu/packages/gnome-xyz.scm
@@ -819,7 +819,7 @@ (define-public gnome-shell-extension-paperwm
(define-public gpaste
(package
(name "gpaste")
- (version "42.1")
+ (version "42.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -828,12 +828,13 @@ (define-public gpaste
(file-name (git-file-name name version))
(sha256
(base32
- "1dlqa69zvzzdxyh21qfrx2nhpfy0fbihxpgkxqmramcgv3h5k4q3"))
+ "0qq2p19p3r3lz8yfynpnf36cipv54bzdbmq1x5zgwhyl4yl41g28"))
(patches
(search-patches "gpaste-fix-paths.patch"))))
(build-system meson-build-system)
(native-inputs
- (list gettext-minimal
+ (list gcr
+ gettext-minimal
gobject-introspection
(list glib "bin") ; for glib-compile-resources
pkg-config
@@ -862,7 +863,10 @@ (define-public gpaste
(substitute* '("src/gnome-shell/extension.js"
"src/gnome-shell/prefs.js")
(("@typelibPath@")
- (string-append #$output "/lib/girepository-1.0/"))))))))
+ (string-append #$output "/lib/girepository-1.0/")))
+ (substitute* '("src/libgpaste/gpaste/gpaste-settings.c")
+ (("@gschemasCompiled@")
+ (string-append #$output "/share/glib-2.0/schemas/"))))))))
(synopsis "Clipboard management system for GNOME Shell")
(description "GPaste is a clipboard manager, a tool which allows you to
modified gnu/packages/patches/gpaste-fix-paths.patch
@@ -30,14 +30,16 @@ diff --git a/src/libgpaste/gpaste/gpaste-settings.c b/src/libgpaste/gpaste/gpast
index 7e53eb64..57c399fc 100644
--- a/src/libgpaste/gpaste/gpaste-settings.c
+++ b/src/libgpaste/gpaste/gpaste-settings.c
-@@ -1013,7 +1013,11 @@ create_g_settings (void)
+@@ -1013,7 +1013,13 @@ create_g_settings (void)
}
else
{
- return g_settings_new (G_PASTE_SETTINGS_NAME);
+ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library
+ GSettingsSchemaSource *schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL);
++ g_assert (schema_source);
+ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE);
++ g_assert (schema);
+ g_settings_schema_source_unref (schema_source);
+ return g_settings_new_full (schema, NULL, NULL);
}
A
A
Attila Lendvai wrote on 6 Dec 2022 18:48
(No Subject)
(name . 58191-close@debbugs.gnu.org)(address . 58191-close@debbugs.gnu.org)
AFR3vsTmoh-Nbe-zNLzcAnzfIyEkCBt3Ta28j8S7NEqARjmgZJlxm3MbMqP1dfJMBqE5v4eeYbopqg6Nc5nVSMX1DsNoANephkyfL65tBRw=@lendvai.name

--
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“Chaos should be seen as a teacher that teaches us, through the negative, what not to do.”
?