Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1diff --git a/proxy/gnome/gproxyresolvergnome.c b/proxy/gnome/gproxyresolvergnome.c 2index 50b63cd..4364116 100644 3--- a/proxy/gnome/gproxyresolvergnome.c 4+++ b/proxy/gnome/gproxyresolvergnome.c 5@@ -156,23 +156,79 @@ 6 7 resolver->base_resolver = g_simple_proxy_resolver_new (NULL, NULL); 8 9- resolver->proxy_settings = g_settings_new (GNOME_PROXY_SETTINGS_SCHEMA); 10+ { 11+ GSettingsSchemaSource *schema_source; 12+ GSettingsSchema *schema; 13+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 14+ g_settings_schema_source_get_default(), 15+ TRUE, NULL); 16+ schema = g_settings_schema_source_lookup(schema_source, 17+ GNOME_PROXY_SETTINGS_SCHEMA, 18+ FALSE); 19+ resolver->proxy_settings = g_settings_new_full(schema, NULL, NULL); 20+ g_settings_schema_source_unref(schema_source); 21+ g_settings_schema_unref(schema); 22+ } 23 g_signal_connect (resolver->proxy_settings, "changed", 24 G_CALLBACK (gsettings_changed), resolver); 25- resolver->http_settings = g_settings_get_child (resolver->proxy_settings, 26- GNOME_PROXY_HTTP_CHILD_SCHEMA); 27+ { 28+ GSettingsSchemaSource *schema_source; 29+ GSettingsSchema *schema; 30+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 31+ g_settings_schema_source_get_default(), 32+ TRUE, NULL); 33+ schema = g_settings_schema_source_lookup(schema_source, 34+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_HTTP_CHILD_SCHEMA, 35+ FALSE); 36+ resolver->http_settings = g_settings_new_full(schema, NULL, NULL); 37+ g_settings_schema_source_unref(schema_source); 38+ g_settings_schema_unref(schema); 39+ } 40 g_signal_connect (resolver->http_settings, "changed", 41 G_CALLBACK (gsettings_changed), resolver); 42- resolver->https_settings = g_settings_get_child (resolver->proxy_settings, 43- GNOME_PROXY_HTTPS_CHILD_SCHEMA); 44+ { 45+ GSettingsSchemaSource *schema_source; 46+ GSettingsSchema *schema; 47+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 48+ g_settings_schema_source_get_default(), 49+ TRUE, NULL); 50+ schema = g_settings_schema_source_lookup(schema_source, 51+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_HTTPS_CHILD_SCHEMA, 52+ FALSE); 53+ resolver->https_settings = g_settings_new_full(schema, NULL, NULL); 54+ g_settings_schema_source_unref(schema_source); 55+ g_settings_schema_unref(schema); 56+ } 57 g_signal_connect (resolver->https_settings, "changed", 58 G_CALLBACK (gsettings_changed), resolver); 59- resolver->ftp_settings = g_settings_get_child (resolver->proxy_settings, 60- GNOME_PROXY_FTP_CHILD_SCHEMA); 61+ { 62+ GSettingsSchemaSource *schema_source; 63+ GSettingsSchema *schema; 64+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 65+ g_settings_schema_source_get_default(), 66+ TRUE, NULL); 67+ schema = g_settings_schema_source_lookup(schema_source, 68+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_FTP_CHILD_SCHEMA, 69+ FALSE); 70+ resolver->ftp_settings = g_settings_new_full(schema, NULL, NULL); 71+ g_settings_schema_source_unref(schema_source); 72+ g_settings_schema_unref(schema); 73+ } 74 g_signal_connect (resolver->ftp_settings, "changed", 75 G_CALLBACK (gsettings_changed), resolver); 76- resolver->socks_settings = g_settings_get_child (resolver->proxy_settings, 77- GNOME_PROXY_SOCKS_CHILD_SCHEMA); 78+ { 79+ GSettingsSchemaSource *schema_source; 80+ GSettingsSchema *schema; 81+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 82+ g_settings_schema_source_get_default(), 83+ TRUE, NULL); 84+ schema = g_settings_schema_source_lookup(schema_source, 85+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_SOCKS_CHILD_SCHEMA, 86+ FALSE); 87+ resolver->socks_settings = g_settings_new_full(schema, NULL, NULL); 88+ g_settings_schema_source_unref(schema_source); 89+ g_settings_schema_unref(schema); 90+ } 91 g_signal_connect (resolver->socks_settings, "changed", 92 G_CALLBACK (gsettings_changed), resolver); 93 94diff --git a/proxy/tests/gnome.c b/proxy/tests/gnome.c 95index f76b094..54751e3 100644 96--- a/proxy/tests/gnome.c 97+++ b/proxy/tests/gnome.c 98@@ -55,26 +55,86 @@ 99 { 100 GSettings *settings, *child; 101 102- settings = g_settings_new (GNOME_PROXY_SETTINGS_SCHEMA); 103+ { 104+ GSettingsSchemaSource *schema_source; 105+ GSettingsSchema *schema; 106+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 107+ g_settings_schema_source_get_default(), 108+ TRUE, NULL); 109+ schema = g_settings_schema_source_lookup(schema_source, 110+ GNOME_PROXY_SETTINGS_SCHEMA, 111+ FALSE); 112+ settings = g_settings_new_full(schema, NULL, NULL); 113+ g_settings_schema_source_unref(schema_source); 114+ g_settings_schema_unref(schema); 115+ } 116 g_settings_reset (settings, GNOME_PROXY_MODE_KEY); 117 g_settings_reset (settings, GNOME_PROXY_USE_SAME_PROXY_KEY); 118 119- child = g_settings_get_child (settings, GNOME_PROXY_HTTP_CHILD_SCHEMA); 120+ { 121+ GSettingsSchemaSource *schema_source; 122+ GSettingsSchema *schema; 123+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 124+ g_settings_schema_source_get_default(), 125+ TRUE, NULL); 126+ schema = g_settings_schema_source_lookup(schema_source, 127+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_HTTP_CHILD_SCHEMA, 128+ FALSE); 129+ child = g_settings_new_full(schema, NULL, NULL); 130+ g_settings_schema_source_unref(schema_source); 131+ g_settings_schema_unref(schema); 132+ } 133 g_settings_reset (child, GNOME_PROXY_HTTP_HOST_KEY); 134 g_settings_reset (child, GNOME_PROXY_HTTP_PORT_KEY); 135 g_object_unref (child); 136 137- child = g_settings_get_child (settings, GNOME_PROXY_HTTPS_CHILD_SCHEMA); 138+ { 139+ GSettingsSchemaSource *schema_source; 140+ GSettingsSchema *schema; 141+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 142+ g_settings_schema_source_get_default(), 143+ TRUE, NULL); 144+ schema = g_settings_schema_source_lookup(schema_source, 145+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_HTTPS_CHILD_SCHEMA, 146+ FALSE); 147+ child = g_settings_new_full(schema, NULL, NULL); 148+ g_settings_schema_source_unref(schema_source); 149+ g_settings_schema_unref(schema); 150+ } 151 g_settings_reset (child, GNOME_PROXY_HTTPS_HOST_KEY); 152 g_settings_reset (child, GNOME_PROXY_HTTPS_PORT_KEY); 153 g_object_unref (child); 154 155- child = g_settings_get_child (settings, GNOME_PROXY_FTP_CHILD_SCHEMA); 156+ { 157+ GSettingsSchemaSource *schema_source; 158+ GSettingsSchema *schema; 159+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 160+ g_settings_schema_source_get_default(), 161+ TRUE, NULL); 162+ schema = g_settings_schema_source_lookup(schema_source, 163+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_FTP_CHILD_SCHEMA, 164+ FALSE); 165+ child = g_settings_new_full(schema, NULL, NULL); 166+ g_settings_schema_source_unref(schema_source); 167+ g_settings_schema_unref(schema); 168+ } 169 g_settings_reset (child, GNOME_PROXY_FTP_HOST_KEY); 170 g_settings_reset (child, GNOME_PROXY_FTP_PORT_KEY); 171 g_object_unref (child); 172 173- child = g_settings_get_child (settings, GNOME_PROXY_SOCKS_CHILD_SCHEMA); 174+ { 175+ GSettingsSchemaSource *schema_source; 176+ GSettingsSchema *schema; 177+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 178+ g_settings_schema_source_get_default(), 179+ TRUE, NULL); 180+ schema = g_settings_schema_source_lookup(schema_source, 181+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_SOCKS_CHILD_SCHEMA, 182+ FALSE); 183+ child = g_settings_new_full(schema, NULL, NULL); 184+ g_settings_schema_source_unref(schema_source); 185+ g_settings_schema_unref(schema); 186+ } 187 g_settings_reset (child, GNOME_PROXY_SOCKS_HOST_KEY); 188 g_settings_reset (child, GNOME_PROXY_SOCKS_PORT_KEY); 189 g_object_unref (child); 190@@ -88,21 +148,69 @@ 191 { 192 GSettings *settings, *child; 193 194- settings = g_settings_new (GNOME_PROXY_SETTINGS_SCHEMA); 195+ { 196+ GSettingsSchemaSource *schema_source; 197+ GSettingsSchema *schema; 198+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 199+ g_settings_schema_source_get_default(), 200+ TRUE, NULL); 201+ schema = g_settings_schema_source_lookup(schema_source, 202+ GNOME_PROXY_SETTINGS_SCHEMA, 203+ FALSE); 204+ settings = g_settings_new_full(schema, NULL, NULL); 205+ g_settings_schema_source_unref(schema_source); 206+ g_settings_schema_unref(schema); 207+ } 208 g_settings_set_enum (settings, GNOME_PROXY_MODE_KEY, G_DESKTOP_PROXY_MODE_MANUAL); 209 g_settings_set_boolean (settings, GNOME_PROXY_USE_SAME_PROXY_KEY, TRUE); 210 211- child = g_settings_get_child (settings, GNOME_PROXY_HTTP_CHILD_SCHEMA); 212+ { 213+ GSettingsSchemaSource *schema_source; 214+ GSettingsSchema *schema; 215+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 216+ g_settings_schema_source_get_default(), 217+ TRUE, NULL); 218+ schema = g_settings_schema_source_lookup(schema_source, 219+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_HTTP_CHILD_SCHEMA, 220+ FALSE); 221+ child = g_settings_new_full(schema, NULL, NULL); 222+ g_settings_schema_source_unref(schema_source); 223+ g_settings_schema_unref(schema); 224+ } 225 g_settings_set_string (child, GNOME_PROXY_HTTP_HOST_KEY, "proxy.example.com"); 226 g_settings_set_int (child, GNOME_PROXY_HTTP_PORT_KEY, 8080); 227 g_object_unref (child); 228 229- child = g_settings_get_child (settings, GNOME_PROXY_HTTPS_CHILD_SCHEMA); 230+ { 231+ GSettingsSchemaSource *schema_source; 232+ GSettingsSchema *schema; 233+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 234+ g_settings_schema_source_get_default(), 235+ TRUE, NULL); 236+ schema = g_settings_schema_source_lookup(schema_source, 237+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_HTTPS_CHILD_SCHEMA, 238+ FALSE); 239+ child = g_settings_new_full(schema, NULL, NULL); 240+ g_settings_schema_source_unref(schema_source); 241+ g_settings_schema_unref(schema); 242+ } 243 g_settings_set_string (child, GNOME_PROXY_HTTPS_HOST_KEY, "proxy-s.example.com"); 244 g_settings_set_int (child, GNOME_PROXY_HTTPS_PORT_KEY, 7070); 245 g_object_unref (child); 246 247- child = g_settings_get_child (settings, GNOME_PROXY_FTP_CHILD_SCHEMA); 248+ { 249+ GSettingsSchemaSource *schema_source; 250+ GSettingsSchema *schema; 251+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 252+ g_settings_schema_source_get_default(), 253+ TRUE, NULL); 254+ schema = g_settings_schema_source_lookup(schema_source, 255+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_FTP_CHILD_SCHEMA, 256+ FALSE); 257+ child = g_settings_new_full(schema, NULL, NULL); 258+ g_settings_schema_source_unref(schema_source); 259+ g_settings_schema_unref(schema); 260+ } 261 g_settings_set_string (child, GNOME_PROXY_FTP_HOST_KEY, "proxy-f.example.com"); 262 g_settings_set_int (child, GNOME_PROXY_FTP_PORT_KEY, 6060); 263 g_object_unref (child); 264@@ -119,12 +227,36 @@ 265 GSettings *settings, *child; 266 const gchar *ignore_hosts[2] = { "127.0.0.1", NULL }; 267 268- settings = g_settings_new (GNOME_PROXY_SETTINGS_SCHEMA); 269+ { 270+ GSettingsSchemaSource *schema_source; 271+ GSettingsSchema *schema; 272+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 273+ g_settings_schema_source_get_default(), 274+ TRUE, NULL); 275+ schema = g_settings_schema_source_lookup(schema_source, 276+ GNOME_PROXY_SETTINGS_SCHEMA, 277+ FALSE); 278+ settings = g_settings_new_full(schema, NULL, NULL); 279+ g_settings_schema_source_unref(schema_source); 280+ g_settings_schema_unref(schema); 281+ } 282 g_settings_set_enum (settings, GNOME_PROXY_MODE_KEY, G_DESKTOP_PROXY_MODE_MANUAL); 283 g_settings_set (settings, GNOME_PROXY_IGNORE_HOSTS_KEY, 284 "@as", g_variant_new_strv (ignore_hosts, -1)); 285 286- child = g_settings_get_child (settings, GNOME_PROXY_SOCKS_CHILD_SCHEMA); 287+ { 288+ GSettingsSchemaSource *schema_source; 289+ GSettingsSchema *schema; 290+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 291+ g_settings_schema_source_get_default(), 292+ TRUE, NULL); 293+ schema = g_settings_schema_source_lookup(schema_source, 294+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_SOCKS_CHILD_SCHEMA, 295+ FALSE); 296+ child = g_settings_new_full(schema, NULL, NULL); 297+ g_settings_schema_source_unref(schema_source); 298+ g_settings_schema_unref(schema); 299+ } 300 g_settings_set_string (child, GNOME_PROXY_SOCKS_HOST_KEY, "proxy.example.com"); 301 g_settings_set_int (child, GNOME_PROXY_SOCKS_PORT_KEY, 1234); 302 g_object_unref (child); 303@@ -139,12 +271,36 @@ 304 { 305 GSettings *settings, *http; 306 307- settings = g_settings_new (GNOME_PROXY_SETTINGS_SCHEMA); 308+ { 309+ GSettingsSchemaSource *schema_source; 310+ GSettingsSchema *schema; 311+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 312+ g_settings_schema_source_get_default(), 313+ TRUE, NULL); 314+ schema = g_settings_schema_source_lookup(schema_source, 315+ GNOME_PROXY_SETTINGS_SCHEMA, 316+ FALSE); 317+ settings = g_settings_new_full(schema, NULL, NULL); 318+ g_settings_schema_source_unref(schema_source); 319+ g_settings_schema_unref(schema); 320+ } 321 g_settings_set_enum (settings, GNOME_PROXY_MODE_KEY, G_DESKTOP_PROXY_MODE_MANUAL); 322 g_settings_set (settings, GNOME_PROXY_IGNORE_HOSTS_KEY, 323 "@as", g_variant_new_strv (ignore_hosts, n_ignore_hosts)); 324 325- http = g_settings_get_child (settings, GNOME_PROXY_HTTP_CHILD_SCHEMA); 326+ { 327+ GSettingsSchemaSource *schema_source; 328+ GSettingsSchema *schema; 329+ schema_source = g_settings_schema_source_new_from_directory("@gds_gsettings_path@", 330+ g_settings_schema_source_get_default(), 331+ TRUE, NULL); 332+ schema = g_settings_schema_source_lookup(schema_source, 333+ GNOME_PROXY_SETTINGS_SCHEMA "." GNOME_PROXY_HTTP_CHILD_SCHEMA, 334+ FALSE); 335+ http = g_settings_new_full(schema, NULL, NULL); 336+ g_settings_schema_source_unref(schema_source); 337+ g_settings_schema_unref(schema); 338+ } 339 g_settings_set_string (http, GNOME_PROXY_HTTP_HOST_KEY, "localhost"); 340 g_settings_set_int (http, GNOME_PROXY_HTTP_PORT_KEY, 8080); 341