aboutsummaryrefslogtreecommitdiff
path: root/x11/lightdm
diff options
context:
space:
mode:
authorBen Woods <woodsb02@FreeBSD.org>2017-07-24 12:47:45 +0000
committerBen Woods <woodsb02@FreeBSD.org>2017-07-24 12:47:45 +0000
commit2300533f5500ce753463775974ff535f08a58d50 (patch)
tree0dd1a4ea55f9ebe83df9b813f5324a6d936defda /x11/lightdm
parent9d5d212aa13bfe069ff61b0fe9e0aac3dd1da34a (diff)
downloadports-2300533f5500ce753463775974ff535f08a58d50.tar.gz
ports-2300533f5500ce753463775974ff535f08a58d50.zip
x11/lightdm: Fix locale selection
- Allow locale selection on login screen. First, lightdm must be patched to correctly detect utf8 locales, which have a UTF-8 suffix on FreeBSD instead of utf8 like on Linux systems. Secondly, we have to use locale codes in the language menuitem as FreeBSD doesn't have support for locale naming (missing _NL_IDENTIFICATION_LANGUAGE implementation). - Use @sample for lightdm-gtk-greeter config file to prevent it from being overwritten when the package is reinstalled / upgraded. PR: 220614 Submitted by: pawel MFH: 2017Q3
Notes
Notes: svn path=/head/; revision=446523
Diffstat (limited to 'x11/lightdm')
-rw-r--r--x11/lightdm/Makefile2
-rw-r--r--x11/lightdm/files/patch-liblightdm-gobject_language.c50
2 files changed, 48 insertions, 4 deletions
diff --git a/x11/lightdm/Makefile b/x11/lightdm/Makefile
index 1095b20c6da1..7afa4bf9a1f3 100644
--- a/x11/lightdm/Makefile
+++ b/x11/lightdm/Makefile
@@ -3,7 +3,7 @@
PORTNAME= lightdm
PORTVERSION= 1.20.0
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= x11
MASTER_SITES= https://launchpad.net/${PORTNAME}/${PORTVERSION:R}/${PORTVERSION}/+download/
diff --git a/x11/lightdm/files/patch-liblightdm-gobject_language.c b/x11/lightdm/files/patch-liblightdm-gobject_language.c
index b64d8642594d..5b0bf032c4c6 100644
--- a/x11/lightdm/files/patch-liblightdm-gobject_language.c
+++ b/x11/lightdm/files/patch-liblightdm-gobject_language.c
@@ -1,8 +1,52 @@
https://bugs.launchpad.net/lightdm/+bug/790186
---- liblightdm-gobject/language.c.orig 2016-12-09 01:04:48 UTC
+--- liblightdm-gobject/language.c.orig 2016-09-30 03:23:52 UTC
+++ liblightdm-gobject/language.c
-@@ -248,10 +248,16 @@ lightdm_language_get_name (LightDMLangua
+@@ -36,6 +36,12 @@ G_DEFINE_TYPE (LightDMLanguage, lightdm_language, G_TY
+ static gboolean have_languages = FALSE;
+ static GList *languages = NULL;
+
++static gboolean
++is_utf8 (const gchar *code)
++{
++ return g_strrstr (code, ".utf8") || g_strrstr (code, ".UTF-8");
++}
++
+ static void
+ update_languages (void)
+ {
+@@ -72,7 +78,7 @@ update_languages (void)
+ continue;
+
+ /* Ignore the non-interesting languages */
+- if (strcmp (command, "locale -a") == 0 && !g_strrstr (code, ".utf8"))
++ if (strcmp (command, "locale -a") == 0 && !is_utf8 (code))
+ continue;
+
+ language = g_object_new (LIGHTDM_TYPE_LANGUAGE, "code", code, NULL);
+@@ -88,12 +94,6 @@ update_languages (void)
+ have_languages = TRUE;
+ }
+
+-static gboolean
+-is_utf8 (const gchar *code)
+-{
+- return g_strrstr (code, ".utf8") || g_strrstr (code, ".UTF-8");
+-}
+-
+ /* Get a valid locale name that can be passed to setlocale(), so we always can use nl_langinfo() to get language and country names. */
+ static gchar *
+ get_locale_name (const gchar *code)
+@@ -133,7 +133,7 @@ get_locale_name (const gchar *code)
+ for (i = 0; avail_locales[i]; i++)
+ {
+ gchar *loc = avail_locales[i];
+- if (!g_strrstr (loc, ".utf8"))
++ if (!is_utf8 (loc))
+ continue;
+ if (g_str_has_prefix (loc, language))
+ {
+@@ -227,10 +227,16 @@ lightdm_language_get_name (LightDMLanguage *language)
if (locale)
{
gchar *current = setlocale (LC_ALL, NULL);
@@ -19,7 +63,7 @@ https://bugs.launchpad.net/lightdm/+bug/790186
if (language_en && strlen (language_en) > 0)
priv->name = g_strdup (dgettext ("iso_639_3", language_en));
-@@ -291,10 +297,16 @@ lightdm_language_get_territory (LightDML
+@@ -270,10 +276,16 @@ lightdm_language_get_territory (LightDMLanguage *langu
if (locale)
{
gchar *current = setlocale (LC_ALL, NULL);