GNOME Bugzilla – Bug 662767
Port network-manager-applet to GSettings
Last modified: 2012-06-25 18:50:25 UTC
Migrating from GConf to GSettings is an official GNOME goal now. http://live.gnome.org/GnomeGoals/GSettingsMigration
I think NM does not use gconf anymore (since version 0.9). so this bug can be closed.
NM != nm-applet /src/applet.c /src/wireless-security/eap-method.c /src/applet-device-wifi.c still list enough gconf calls...
i will try to do this if the job is still availible. I wonder if this may depend on GSettingsList because of multiple interfaces.. but have to read the code first.
Created attachment 214255 [details] [review] applet: remove GConf upgrade/migration code Users should be migrated at this point... Also remove the gconf-helpers library entirely, since the applet is no longer using it for anything else.
Created attachment 214256 [details] [review] Use Makefile.glib to build marshallers Also copy in a local version of the GLIB_CONFIG autoconf macro, and use that (to get gschema stuff configured in for free too)
Created attachment 214257 [details] [review] applet: port to GSettings Port from GConf to GSettings, and install a gsettings-data-convert .convert file to migrate old GConf settings over. http://bugzilla.gnome.org/show_bug.cgi?id=662767
Tested the basic notifications stuff, but not the EAP notifications stuff. The disable-vpn-notifications setting doesn't get migrated, because it's missing from the old GConf schema, so gsettings-data-convert ignores it. And the EAP CA certificate notification settings don't get migrated because gsettings-data-convert can only migrate specific paths, and the EAP settings have UUIDs in their paths. If we really didn't want to get rid of the migration support, we could instead make it optional. Maybe even split it out into a separate nm-applet-migrate-settings program...
Created attachment 216826 [details] [review] applet: move migration code into a new binary Move the migration code from nm-applet to nm-applet-migration-tool. Now nm-applet does not link against libgconf-helpers.
Created attachment 216827 [details] [review] Use Makefile.glib to build marshallers Also copy in a local version of the GLIB_CONFIG autoconf macro, and use that (to get gschema stuff configured in for free too)
Created attachment 216828 [details] [review] applet: port to GSettings Port from GConf to GSettings, and install a gsettings-data-convert .convert file to migrate old GConf settings over. GConf is now only required if building the migration tool.
I tested that the stamp=2 -> stamp=3 migration still works. One subtlety after the GSettings port; If someone upgrades from a distro with nm-applet 0.8 or earlier directly to a distro with the GSettings-based version, then: 1. gsettings-data-convert will run at login, moving GConf config to GSettings 2. nm-applet-migration-tool will run *after* that, so any changes it makes won't be reflected in GSettings. However, this doesn't matter for connections, because they all get migrated out of gconf into system settings anyway. So the only way this would be a problem would be if there was some non-connection GConf setting that gconf-upgrade touches. Which I'm pretty sure there isn't, right?
If we wanted a gold star, we could programmatically convert the EAP stuff instead of using the conversion helper, but it's your call whether that's worth the effort. I understand why people sometimes need to ignore the CA cert, but since that's a large-ish security hole I don't mind making those configurations jump through an extra hoop. Other than that, all three patches look good to go.
I decided not to go for the gold star... Attachment 216826 [details] pushed as e88dd58 - applet: move migration code into a new binary Attachment 216827 [details] pushed as 0d11615 - Use Makefile.glib to build marshallers Attachment 216828 [details] pushed as 96ffc88 - applet: port to GSettings