GNOME Bugzilla – Bug 600686
Move schemas somewhere else
Last modified: 2010-11-16 10:55:22 UTC
The default apps schemas probably needs to live somewhere down the stack, but not in gnome-vfs.
I've grepped through the installed schemas, below are my findings. I've assigned potential owners according to my opinion, please correct me if I'm wrong: desktop_default_applications.schemas.in: > /schemas/desktop/gnome/applications/terminal/exec > /schemas/desktop/gnome/applications/terminal/exec_arg - used in libgnome (which must die) - used in gnome-desktop (gnome_desktop_prepend_terminal_to_vector()), my hot candidate. This function is called from GIO when launching GAppInfo app in terminal - also found traces in gnome-settings-daemon, gsd-media-keys-manager module - gnome-default-applications-properties from gnome-control-center is used for setting values from user side > /schemas/desktop/gnome/applications/component_viewer/exec - command contains nautilus, probably pre-historic bonobo era, where nautilus could display embedded viewers/components. Candidate for removal, couldn't find any app using it. desktop_gnome_url_handlers.schemas.in: > /schemas/desktop/gnome/url-handlers/trash/enabled > /schemas/desktop/gnome/url-handlers/trash/command > /schemas/desktop/gnome/url-handlers/trash/needs_terminal --> nautilus > /schemas/desktop/gnome/url-handlers/ghelp/enabled > /schemas/desktop/gnome/url-handlers/ghelp/command > /schemas/desktop/gnome/url-handlers/ghelp/needs_terminal > /schemas/desktop/gnome/url-handlers/info/enabled > /schemas/desktop/gnome/url-handlers/info/command > /schemas/desktop/gnome/url-handlers/info/needs_terminal > /schemas/desktop/gnome/url-handlers/man/enabled > /schemas/desktop/gnome/url-handlers/man/command > /schemas/desktop/gnome/url-handlers/man/needs_terminal - points to "gnome-help" --> yelp? > /schemas/desktop/gnome/url-handlers/http/enabled > /schemas/desktop/gnome/url-handlers/http/command > /schemas/desktop/gnome/url-handlers/http/needs_terminal > /schemas/desktop/gnome/url-handlers/https/enabled > /schemas/desktop/gnome/url-handlers/https/command > /schemas/desktop/gnome/url-handlers/https/needs_terminal - points to epiphany, but should be probably moved to more generic package, like gnome-desktop > /schemas/desktop/gnome/url-handlers/mailto/enabled > /schemas/desktop/gnome/url-handlers/mailto/command > /schemas/desktop/gnome/url-handlers/mailto/needs_terminal --> evolution (do we have any other commonly used mailers in Gnome? Thunderbird? should this be in gnome-desktop too?) > /schemas/desktop/gnome/url-handlers/aim/enabled > /schemas/desktop/gnome/url-handlers/aim/command > /schemas/desktop/gnome/url-handlers/aim/needs_terminal --> pidgin/empathy? > /schemas/desktop/gnome/url-handlers/callto/enabled > /schemas/desktop/gnome/url-handlers/callto/command > /schemas/desktop/gnome/url-handlers/callto/needs_terminal > /schemas/desktop/gnome/url-handlers/h323/enabled > /schemas/desktop/gnome/url-handlers/h323/command > /schemas/desktop/gnome/url-handlers/h323/needs_terminal --> ekiga - these are the default URI handlers, used widely by GIO and its clients - gnome-default-applications-properties from gnome-control-center is again used for setting values from user side - used in gnome-settings-daemon, gsd-media-keys-manager module, for spawning various commands from multimedia buttons system_http_proxy.schemas.in: > /schemas/system/http_proxy/use_http_proxy > /schemas/system/http_proxy/host > /schemas/system/http_proxy/port > /schemas/system/http_proxy/use_authentication > /schemas/system/http_proxy/authentication_user > /schemas/system/http_proxy/authentication_password > /schemas/system/http_proxy/ignore_hosts > /schemas/system/proxy/mode > /schemas/system/proxy/secure_host > /schemas/system/proxy/secure_port > /schemas/system/proxy/ftp_host > /schemas/system/proxy/ftp_port > /schemas/system/proxy/socks_host > /schemas/system/proxy/socks_port > /schemas/system/proxy/autoconfig_url - gnome-network-properties is the user tool for changing the settings, part of gnome-control-center - libsoup uses these gconf keys, this is my hot candidate - so does gnome-terminal system_dns_sd.schemas.in: > /schemas/system/dns_sd/display_local > /schemas/system/dns_sd/extra_domains - used in gvfsd-network, should move to gvfs system_smb.schemas.in: > /schemas/system/smb/workgroup - used in gvfsd-{network,smb,smb-browse}, should move to gvfs Other suggestions welcome.
I'm not sure it makes sense to ship the schemas in applications. For example, shipping mailto in evolution sounds wrong: someone might want to use thunderbird and still have this working without having to install evolution. I believe it makes more sense to ship them in some core tarball. Either gvfs, or (sigh, I hate what I'm going to write) gnome-desktop.
as a developer/maintainer: gvfs "feels" wrong. since gconf is going away for 3.0 (gsettings and dconf will save us all, right?) and since we'll want to phase out the schemas anyway during 3.x, shouldn't we have a separate schemas package provider? something like "gnome-desktop-schemas"? pros: distributions would be able to package it easily; also, applications could be packaged to depend on it and the dependency switched off when they move away from gconf; and distros could make their gnome meta-package (or similar construct) depend on it. con: it's something that requires a release; but, honestly: how much do schemas change anyway? just my .02 €
Yeah, moving the individual settings to the app that it points to by default seems very wrong to me. Thats just a default after all. You want to be able to "depend" on the existance of a setting without having to have the default implementation of it installed. (Say in e.g. control-center.) So, I'm also for splitting it out to a new module (which we'll hopefully deprecate in the near shiny dconf future).
This is the list of packages on my rawhide system that carry schemas: [kmaraas@e4300 src]$ rpm -qf /etc/gconf/schemas/* | sort | uniq anjuta-2.28.1.0-2.fc13.i686 at-spi-1.29.6-1.fc13.i686 brasero-2.29.4-2.fc13.i686 byzanz-0.1.1-8.fc12.i686 cheese-2.29.5-2.fc13.i686 compiz-gnome-0.8.4-3.fc13.i686 control-center-2.29.6-1.fc13.i686 dasher-4.10.1-2.fc12.i686 devhelp-2.29.3-2.fc13.i686 ekiga-3.2.6-1.fc12.i686 empathy-2.29.6-1.fc13.i686 eog-2.29.5-2.fc13.i686 epiphany-2.29.6-1.fc13.i686 evince-2.29.5-1.fc13.i686 evolution-2.29.6-2.fc13.i686 evolution-bogofilter-2.29.6-2.fc13.i686 file-roller-2.29.5-1.fc13.i686 gcalctool-5.29.6-1.fc13.i686 gconf-editor-2.28.0-1.fc12.i686 gdm-2.29.5-2.fc13.i686 gedit-2.29.5-1.fc13.i686 gnome-applets-2.29.5-2.fc13.i686 gnome-bluetooth-2.29.3-4.fc13.i686 gnome-games-2.29.6-1.fc13.i686 gnome-keyring-2.29.5-2.fc13.i686 gnome-media-libs-2.28.5-1.fc13.i686 gnome-packagekit-2.29.2-1.fc13.i686 gnome-panel-2.29.5.1-1.fc13.i686 gnome-phone-manager-0.65-5.fc12.i686 gnome-pilot-2.0.17-9.fc13.i686 gnome-power-manager-2.29.1-2.fc13.i686 gnome-screensaver-2.29.1-2.fc13.i686 gnome-session-2.28.0-4.fc13.i686 gnome-settings-daemon-2.29.6-1.fc13.i686 gnome-shell-2.28.1-0.1.20100128git.i686 gnome-system-log-2.29.5-1.fc13.i686 gnome-system-monitor-2.28.0-3.fc12.i686 gnome-terminal-2.29.6-2.fc13.i686 gnome-user-share-2.28.1-3.fc13.i686 gnome-utils-2.29.5-1.fc13.i686 gnome-vfs2-2.24.2-3.fc13.i686 gnote-0.7.1-2.fc13.i686 gnotime-2.3.0-6.fc13.i686 gnucash-2.3.8-2.fc13.i686 gnumeric-1.9.17-3.fc13.i686 gok-2.29.2-1.fc13.i686 gstreamer-plugins-good-0.10.17.2-1.fc13.i686 gthumb-2.11.1-3.fc13.i686 gucharmap-2.29.1-1.fc13.i686 ibus-1.2.0.20100111-1.fc13.i686 ibus-chewing-1.2.0.20100125-1.fc13.i686 imsettings-0.107.4-5.fc13.i686 istanbul-0.2.2-14.fc13.i686 krb5-auth-dialog-0.13-2.fc12.i686 libcanberra-gtk2-0.22-1.fc13.i686 libgnome-2.28.0-4.fc13.i686 libgnomekbd-2.29.5-1.fc13.i686 libgsf-gnome-1.14.16-1.fc13.i686 libgweather-2.29.5-1.fc13.i686 metacity-2.28.1-2.fc13.i686 mousetweaks-2.29.6-1.fc13.i686 mutter-2.28.0-3.fc13.i686 nautilus-2.29.2-2.fc13.i686 nautilus-open-terminal-0.18-2.fc13.i686 nautilus-sendto-2.28.2-2.fc13.i686 nautilus-sound-converter-1.0.3-1.fc13.i686 NetworkManager-gnome-0.8.0-0.2.git20100129.fc13.i686 notification-daemon-0.4.1-0.20090923.4.fc12.i686 pidgin-2.6.5-1.fc13.i686 planner-0.14.4-18.fc13.i686 rhythmbox-0.12.6-7.fc13.i686 seahorse-2.29.4-2.fc13.i686 seahorse-plugins-2.29.3-1.fc13.i686 sound-juicer-2.28.1-2.fc13.i686 swfdec-gnome-2.28.0-2.fc13.i686 totem-2.29.4-1.fc13.i686 tsclient-2.0.2-7.fc13.i686 vinagre-2.29.6-1.fc13.i686 vino-2.28.1-1.fc12.i686 virt-manager-0.8.2-2.fc13.noarch xchat-gnome-0.26.1-8.fc13.i686 yelp-2.29.3-1.fc13.i686
(In reply to comment #4) > So, I'm also for splitting it out to a new module (which we'll hopefully > deprecate in the near shiny dconf future). So we let a shiny new module called gsettings-desktop-schemas born instead. Long live to this baby in the new dconf world! Almost everything has been already moved there, last few bits for smb and dns-sd have just been posted as a bug 629073. The only thing missing is "/schemas/desktop/gnome/applications/component_viewer" which I marked for removal in comment 1. I think we can close this down and let gnome-vfs peacefully die, slowly porting remaining apps to GSettings.