GNU bug report logs -
#60565
[PATCH] src/pgtkfns.c (parse_resource_key): Use recursive schema lookup
Previous Next
Reported by: Tad Fisher <tadfisher <at> gmail.com>
Date: Thu, 5 Jan 2023 01:59:01 UTC
Severity: normal
Tags: patch
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sun, 08 Jan 2023 13:49:36 +0200
with message-id <834jt1qm9b.fsf <at> gnu.org>
and subject line Re: bug#60565: [PATCH] src/pgtkfns.c (parse_resource_key): Use recursive schema lookup
has caused the debbugs.gnu.org bug report #60565,
regarding [PATCH] src/pgtkfns.c (parse_resource_key): Use recursive schema lookup
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
60565: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60565
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[0001-src-pgtkfns.c-parse_resource_key-Use-recursive-schem.patch (text/x-patch, attachment)]
From 8e2cf80593dd78030929f96f0f1a3e1a325428a4 Mon Sep 17 00:00:00 2001
From: Tad Fisher <tadfisher <at> gmail.com>
Date: Wed, 4 Jan 2023 13:40:17 -0800
Subject: [PATCH] ; * src/pgtkfns.c (parse_resource_key): Use recursive schema lookup
XDG_DATA_DIRS may consist of multiple directories, and
g_settings_schema_source_get_default composes these into a recursive
schema source. One must pass TRUE to g_settings_schema_source_lookup,
otherwise only the first directory in XDG_DATA_DIRS is searched.
It follows that in the case that the directory containing the compiled
GSettings schema for Emacs is not the first in XDG_DATA_DIRS,
parse_resource_key will not accept any resource key, which causes
pgtk_get_defaults_value and pgtk_set_defaults_value to fail.
This impacts systems that compose multiple GSettings schema sources
via XDG_DATA_DIRS, such Flatpak and NixOS.
Supporting GIO documentation for g_settings_schema_source_get_default:
> The returned source may actually consist of multiple schema sources
> from different directories, depending on which directories were given
> in `XDG_DATA_DIRS` and `GSETTINGS_SCHEMA_DIR`. For this reason, all
> lookups performed against the default source should probably be done
> recursively.
Copyright-paperwork-exempt: yes
---
src/pgtkfns.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pgtkfns.c b/src/pgtkfns.c
index 6b3a0459d36..6e5bb22375a 100644
--- a/src/pgtkfns.c
+++ b/src/pgtkfns.c
@@ -1902,7 +1902,7 @@ parse_resource_key (const char *res_key, char *setting_key)
/* check existence of setting_key */
GSettingsSchemaSource *ssrc = g_settings_schema_source_get_default ();
- GSettingsSchema *scm = g_settings_schema_source_lookup (ssrc, SCHEMA_ID, FALSE);
+ GSettingsSchema *scm = g_settings_schema_source_lookup (ssrc, SCHEMA_ID, TRUE);
if (!scm)
return NULL; /* *.schema.xml is not installed. */
if (!g_settings_schema_has_key (scm, setting_key))
--
2.38.1
[Message part 4 (message/rfc822, inline)]
> From: Po Lu <luangruo <at> yahoo.com>
> Cc: tadfisher <at> gmail.com, 60565 <at> debbugs.gnu.org
> Date: Sun, 08 Jan 2023 09:14:18 +0800
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> > Should this go to the release branch? IOW, is the problem serious
> > enough and/or was introduced recently enough for us to want it in
> > Emacs 29?
>
> Yes, please. It is likely to affect packagers of Emacs 29.
Thanks, installed, and closing the bug.
This bug report was last modified 2 years and 186 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.