GNOME Bugzilla – Bug 335132
Get rid of GnomeMeeting URL handler schemas
Last modified: 2018-08-17 13:51:53 UTC
Please describe the problem: desktop_gnome_url_handlers.schemas.in sets "gnomemeeting -c %s" as the default url handler for callto: and h323: urls in desktop_gnome_url_handlers.schemas.in This should be changed to "ekiga -c %s" to account for the name change. Also, a similar URL handler default schema should be added for sip: urls, so that the key which ekiga creates will have a schema. Steps to reproduce: 1. Try to handle a callto: or h323: url Actual results: gnomemeeting attempts to open instead of ekiga. Expected results: ekiga opens the uri as expected Does this happen every time? Yes Other information: Note that ekiga does set a gconf key for the similar URL handler for "sip" by itself if you run it for the first time. The key has no associated schema, though, since gnome-vfs doesn't install a default schema for it.
Created attachment 61556 [details] [review] Patch to fix schemas to use ekiga instead of gnomemeeting
From ekiga's point of view, we do it on start of the application, if the settings are not there (reference: Ekiga source src/gui/config.cpp, last function).
Yes, but ekiga only sets the key if the key doesn't exist at all. If the key is already installed, but set to use "gnomemeeting -c %s" instead of ekiga, then ekiga doesn't change the existing keys or do anything. So ekiga will set keys for sip: uris, but won't change the incorrect keys for h323: or callto: that gnome-vfs sets upon installation. "conf_url = gm_conf_get_string ("/desktop/gnome/url-handlers/h323/command"); if (!conf_url) { gm_conf_set_string ("/desktop/gnome/url-handlers/h323/command", "ekiga -c \"%s\"");" etc. Also, ekiga is incorrectly setting "need-terminal" keys instead of "needs_terminal" keys. Ekiga would also do better to install a schema rather than setting the key without a schema as it does now.
The typo will be fixed in some minutes. About using a scheme: added to TODO/duscussion list (I'm not the maintainer ;-) )
Thanks for getting the typo! It's certainly reasonable to remove the schemas for the url-handlers h323: and callto: from gnome-vfs, and only have ekiga do the configuration. The problem with the current setup is that gnome-vfs sets gnomemeeting as the default, and then ekiga refuses (sensibly, really) to change the key which is already set to use something else to handle it. So no user is going to get the h323: and callto: url-handlers set correctly without gnome-vfs changing one way or the other.
A workaround for now could be to force the setting of the key at every startup. I mean, without checking if the key exists or not. But that doesn't make sense IMHO, because the user should be able to change it to his needs. A scheme is the correct way to go, I guess.
It would certainly be reasonable for gnome-vfs to not set the url handler defaults for h323: and callto: at all, and to let ekiga install schemas itself. That may be an even better solution. However, gnome-vfs installing wrong defaults is clearly not the best solution. It's also possible to have a quick hack for ekiga that checks to see if the key is set to the gnome-vfs default of "gnomemeeting -c %s" and then replaces it in only that case. Presumably people won't have both ekiga and gnomemeeting installed.
Setting patch status to rejected, adding a dependency on bug 350953, which proposes to add the relevant URI handler schemas to Ekiga. Confirming, updating version, renaming bug from "Change url handler defaults from gnomemeeting to ekiga" to "Get rid of GnomeMeeting URL handler schemas"
There's no problem to get rid of those url handler schemas, since ekiga sets them itself on first run.
Actually, there is a problem. If you look at the relevant ekiga code, it only sets the schemas if the schemas don't already exist (from the sip code, but the callo to is similar): conf_url = gm_conf_get_string ("/desktop/gnome/url-handlers/sip/command"); if (!conf_url) { gm_conf_set_string ("/desktop/gnome/url-handlers/sip/command", "ekiga -c \"%s\""); gm_conf_set_bool ("/desktop/gnome/url-handlers/sip/needs_terminal", false); gm_conf_set_bool ("/desktop/gnome/url-handlers/sip/enabled", true); } g_free (conf_url); If the schema is already set incorrectly to gnomemeeting, then ekiga will avoid setting them and correcting them on its first run. That's the problem. Since conf_url ends up being true since gnome-vfs has already set the schema, ekiga doesn't set it and that code never runs.
Created attachment 72082 [details] [review] Proposed patch to remove callto/h323 schemas from GnomeVFS Bug 350953 mentioned in comment 8 has been resolved. Thanks for your help with analyzing the issue John.
*** Bug 408538 has been marked as a duplicate of this bug. ***
The easiest way to fix it is to add an alias for ekiga named gnomemeeting: ln -s /usr/bin/ekiga /usr/bin/gnomemeeting Except that ekiga does not work for me either way (it just silently quits).
gnome-vfs got deprecated in 2008. gnome-vfs is not under active development anymore and had its last code changes in 2011. Its codebase has been archived: https://gitlab.gnome.org/Archive/gnome-vfs/commits/master gio (in glib) and gvfs are its successors. See https://developer.gnome.org/gio/stable/ch33.html and https://people.gnome.org/~gicmo/gio-migration-guide/ for porting info. Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect reality. Feel free to open a task in GNOME Gitlab if the issue described in this task still applies to a recent + supported version of glib/gio/gvfs. Thanks!