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 bug report
#60565: [PATCH] src/pgtkfns.c (parse_resource_key): Use recursive schema lookup
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 60565 <at> debbugs.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)]
> 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.
[Message part 3 (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
This bug report was last modified 2 years and 187 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.