diff -Nru gnome-control-center-3.18.2/debian/changelog gnome-control-center-3.18.2/debian/changelog --- gnome-control-center-3.18.2/debian/changelog 2016-03-10 15:08:04.000000000 +1100 +++ gnome-control-center-3.18.2/debian/changelog 2016-03-16 16:45:31.000000000 +1100 @@ -1,3 +1,18 @@ +gnome-control-center (1:3.18.2-1ubuntu6~xenial1) xenial; urgency=medium + + * debian/patches: + - ubuntu-region-packagekit.patch: + fix detection of installed language packs (LP: #1556684) + fix typo, thanks Nikita (LP: #1556693) + - 52_region_language.patch: + improve debug message + fix locale warning + - ubuntu-region-langpack-install.patch: + check for missing language packs when loading region panel, this will + pull in packs that arent included with the installer (LP: #1525281) + + -- Tim Lunn Wed, 16 Mar 2016 16:17:03 +1100 + gnome-control-center (1:3.18.2-1ubuntu5) xenial; urgency=medium * Drop wrapper that launched unity-control-center for Unity sessions, diff -Nru gnome-control-center-3.18.2/debian/patches/52_region_language.patch gnome-control-center-3.18.2/debian/patches/52_region_language.patch --- gnome-control-center-3.18.2/debian/patches/52_region_language.patch 2016-03-10 15:08:04.000000000 +1100 +++ gnome-control-center-3.18.2/debian/patches/52_region_language.patch 2016-03-16 16:45:31.000000000 +1100 @@ -46,10 +46,10 @@ * The 'common_name' field taken into account when parsing the iso-codes XML files for language names. -Index: gnome-control-center-3.18.0b/panels/common/cc-common-language.c +Index: gnome-control-center/panels/common/cc-common-language.c =================================================================== ---- gnome-control-center-3.18.0b.orig/panels/common/cc-common-language.c -+++ gnome-control-center-3.18.0b/panels/common/cc-common-language.c +--- gnome-control-center.orig/panels/common/cc-common-language.c ++++ gnome-control-center/panels/common/cc-common-language.c @@ -167,6 +167,66 @@ cc_common_language_get_current_language return language; } @@ -187,7 +187,7 @@ + /* Get locale that corresponds to the language */ + command = g_strconcat ("/usr/share/language-tools/language2locale ", language, NULL); + if (!g_spawn_command_line_sync (command, locale, NULL, NULL, &error)) { -+ g_warning ("Couldn't get LANG locale: %s", error->message); ++ g_warning ("Couldn't get locale: %s", error->message); + g_error_free (error); + g_free (command); + @@ -197,7 +197,7 @@ + g_free (command); + g_strchomp (*locale); + if (strlen (*locale) == 0) { -+ g_warning ("Couldn't get LANG locale -- Copying interrupted"); ++ g_warning ("Couldn't get locale for language: %s", language); + return; + } + @@ -252,10 +252,10 @@ g_hash_table_destroy (user_langs); } -Index: gnome-control-center-3.18.0b/panels/common/cc-common-language.h +Index: gnome-control-center/panels/common/cc-common-language.h =================================================================== ---- gnome-control-center-3.18.0b.orig/panels/common/cc-common-language.h -+++ gnome-control-center-3.18.0b/panels/common/cc-common-language.h +--- gnome-control-center.orig/panels/common/cc-common-language.h ++++ gnome-control-center/panels/common/cc-common-language.h @@ -44,6 +44,8 @@ guint cc_common_language_add_availabl GHashTable *user_langs); gboolean cc_common_language_has_font (const gchar *locale); @@ -274,10 +274,10 @@ G_END_DECLS #endif -Index: gnome-control-center-3.18.0b/panels/region/cc-region-panel.c +Index: gnome-control-center/panels/region/cc-region-panel.c =================================================================== ---- gnome-control-center-3.18.0b.orig/panels/region/cc-region-panel.c -+++ gnome-control-center-3.18.0b/panels/region/cc-region-panel.c +--- gnome-control-center.orig/panels/region/cc-region-panel.c ++++ gnome-control-center/panels/region/cc-region-panel.c @@ -414,6 +414,47 @@ set_system_region (CcRegionPanel *self, } @@ -343,7 +343,7 @@ update_region_label (self); } -@@ -625,15 +667,20 @@ update_language_from_user (CcRegionPanel +@@ -625,15 +667,19 @@ update_language_from_user (CcRegionPanel { CcRegionPanelPrivate *priv = self->priv; const gchar *language = NULL; @@ -356,9 +356,9 @@ + } - if (language == NULL || *language == '\0') +- language = setlocale (LC_MESSAGES, NULL); + if (language == NULL || *language == '\0') { - language = setlocale (LC_MESSAGES, NULL); -+ cc_common_language_get_locale (language, &locale); ++ locale = setlocale (LC_MESSAGES, NULL); + } g_free (priv->language); @@ -367,7 +367,7 @@ update_language_label (self); } -@@ -1508,6 +1555,16 @@ setup_input_section (CcRegionPanel *self +@@ -1508,6 +1554,16 @@ setup_input_section (CcRegionPanel *self update_buttons (self); } @@ -384,7 +384,7 @@ static void on_localed_properties_changed (GDBusProxy *proxy, GVariant *changed_properties, -@@ -1522,34 +1579,50 @@ on_localed_properties_changed (GDBusProx +@@ -1522,34 +1578,50 @@ on_localed_properties_changed (GDBusProx const gchar **strv; gsize len; gint i; @@ -445,7 +445,7 @@ update_language_label (self); } -@@ -1619,29 +1692,28 @@ set_localed_locale (CcRegionPanel *self) +@@ -1619,29 +1691,28 @@ set_localed_locale (CcRegionPanel *self) CcRegionPanelPrivate *priv = self->priv; GVariantBuilder *b; gchar *s; @@ -489,10 +489,10 @@ g_dbus_proxy_call (priv->localed, "SetLocale", g_variant_new ("(asb)", b, TRUE), -Index: gnome-control-center-3.18.0b/panels/user-accounts/um-user-panel.c +Index: gnome-control-center/panels/user-accounts/um-user-panel.c =================================================================== ---- gnome-control-center-3.18.0b.orig/panels/user-accounts/um-user-panel.c -+++ gnome-control-center-3.18.0b/panels/user-accounts/um-user-panel.c +--- gnome-control-center.orig/panels/user-accounts/um-user-panel.c ++++ gnome-control-center/panels/user-accounts/um-user-panel.c @@ -911,8 +911,9 @@ show_user (ActUser *user, CcUserPanelPri name = NULL; diff -Nru gnome-control-center-3.18.2/debian/patches/ubuntu-region-langpack-install.patch gnome-control-center-3.18.2/debian/patches/ubuntu-region-langpack-install.patch --- gnome-control-center-3.18.2/debian/patches/ubuntu-region-langpack-install.patch 2016-03-10 15:08:04.000000000 +1100 +++ gnome-control-center-3.18.2/debian/patches/ubuntu-region-langpack-install.patch 2016-03-16 16:45:31.000000000 +1100 @@ -8,10 +8,10 @@ panels/region/cc-region-panel.c | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) -Index: gnome-control-center-3.16.3/panels/common/cc-language-chooser.c +Index: gnome-control-center/panels/common/cc-language-chooser.c =================================================================== ---- gnome-control-center-3.16.3.orig/panels/common/cc-language-chooser.c -+++ gnome-control-center-3.16.3/panels/common/cc-language-chooser.c +--- gnome-control-center.orig/panels/common/cc-language-chooser.c ++++ gnome-control-center/panels/common/cc-language-chooser.c @@ -121,7 +121,7 @@ more_widget_new (void) row = gtk_list_box_row_new (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); @@ -39,10 +39,10 @@ } static void set_locale_id (GtkDialog *chooser, -Index: gnome-control-center-3.16.3/panels/region/cc-region-panel.c +Index: gnome-control-center/panels/region/cc-region-panel.c =================================================================== ---- gnome-control-center-3.16.3.orig/panels/region/cc-region-panel.c -+++ gnome-control-center-3.16.3/panels/region/cc-region-panel.c +--- gnome-control-center.orig/panels/region/cc-region-panel.c ++++ gnome-control-center/panels/region/cc-region-panel.c @@ -371,6 +371,9 @@ update_language (CcRegionPanel *self, { CcRegionPanelPrivate *priv = self->priv; @@ -53,3 +53,15 @@ if (priv->login) { set_system_language (self, language); } else { +@@ -716,6 +719,11 @@ setup_language_section (CcRegionPanel *s + + update_language_from_user (self); + update_region_from_setting (self); ++ ++ /* check if there are missing lang packs */ ++ cc_common_language_maybe_install (0, priv->language); ++ ++ + } + + #ifdef HAVE_IBUS diff -Nru gnome-control-center-3.18.2/debian/patches/ubuntu-region-packagekit.patch gnome-control-center-3.18.2/debian/patches/ubuntu-region-packagekit.patch --- gnome-control-center-3.18.2/debian/patches/ubuntu-region-packagekit.patch 2016-03-10 15:08:04.000000000 +1100 +++ gnome-control-center-3.18.2/debian/patches/ubuntu-region-packagekit.patch 2016-03-16 16:45:31.000000000 +1100 @@ -7,11 +7,11 @@ language packs for the selected language --- -diff --git a/panels/common/cc-common-language.c b/panels/common/cc-common-language.c -index f447698..a5b3e6c 100644 ---- a/panels/common/cc-common-language.c -+++ b/panels/common/cc-common-language.c -@@ -425,3 +425,235 @@ cc_common_language_add_user_languages (GtkTreeModel *model) +Index: gnome-control-center-3.18.2/panels/common/cc-common-language.c +=================================================================== +--- gnome-control-center-3.18.2.orig/panels/common/cc-common-language.c ++++ gnome-control-center-3.18.2/panels/common/cc-common-language.c +@@ -425,3 +425,238 @@ cc_common_language_add_user_languages (G g_hash_table_destroy (user_langs); } @@ -194,18 +194,21 @@ + gnome_parse_locale (lang, &language_code, &territory_code, NULL, NULL); + + /* If the language is already available, do nothing */ -+ territory_lang = g_strdup_printf ("%s_%s", language_code, territory_code); ++ if (g_strcmp0 (language_code, "zh") == 0 ) ++ territory_lang = g_strdup_printf ("%s_%s", language_code, territory_code); ++ else ++ territory_lang = g_strdup (language_code); + + langs = cc_common_language_get_installed_languages(); + for (i = 0; langs[i]; i++) { -+ if (g_strcmp0 (langs[i], territory_lang) ==0 ) { ++ if (g_strrstr (langs[i], territory_lang) ) { + g_warning ("Language is already installed"); + result = TRUE; + goto out; + } + } + -+ g_warning ("Language %s not installed, trying to intall it", lang); ++ g_warning ("Language %s not installed, trying to install it", lang); + + pk_data = g_new0 (PkTransactionData, 1); + pk_data->lang = g_strdup (lang); @@ -247,11 +250,11 @@ + + return result; +} -diff --git a/panels/common/cc-common-language.h b/panels/common/cc-common-language.h -index 8ebd723..31ed19d 100644 ---- a/panels/common/cc-common-language.h -+++ b/panels/common/cc-common-language.h -@@ -51,6 +51,8 @@ GHashTable *cc_common_language_get_initial_languages (void); +Index: gnome-control-center-3.18.2/panels/common/cc-common-language.h +=================================================================== +--- gnome-control-center-3.18.2.orig/panels/common/cc-common-language.h ++++ gnome-control-center-3.18.2/panels/common/cc-common-language.h +@@ -51,6 +51,8 @@ GHashTable *cc_common_language_get_initi GHashTable *cc_common_language_get_user_languages (void); GHashTable *cc_common_language_get_initial_regions (const gchar *lang); @@ -260,6 +263,3 @@ void cc_common_language_setup_list (GtkWidget *treeview, GHashTable *users, GHashTable *initial); --- -2.5.0 -