wip/gnome-desktop3: Patch for uselocale() - not provided on NetBSD

This commit is contained in:
Dan Cîrnaț 2020-06-18 13:47:58 +02:00
parent bfc60f6ea2
commit 3d7dd299d9
5 changed files with 242 additions and 1 deletions

View File

@ -4,4 +4,7 @@ SHA1 (gnome-desktop-3.36.2.tar.xz) = f55cddb4183399e386e5f10703ab921dedd7f960
RMD160 (gnome-desktop-3.36.2.tar.xz) = 64d7715f36e383cb763ef5c2b0f29d531050c442
SHA512 (gnome-desktop-3.36.2.tar.xz) = 764eea5df86a191a4f72a6c5477168795d95d9ad58b53985945e33ab06ea339a1ecf170a1b5ea660d74798c124e58b0f31da6a0b896a0196ea70ce2743604f3d
Size (gnome-desktop-3.36.2.tar.xz) = 739020 bytes
SHA1 (patch-aa) = a48ffa33fe2a786694af7b7df705ff2b3ae5d260
SHA1 (patch-libgnome-desktop_gnome-languages.c) = 23efa81b1d5e9fc1ed4909dbbc65eb6a7c0398ec
SHA1 (patch-libgnome-desktop_gnome-wall-clock.c) = fb8da1dcb408a78cbc427c69d510eaf2ca8a2fe7
SHA1 (patch-tests_wall-clock.c) = 8272a46ddfa26c1b72204e7d465a5907d01fc266
SHA1 (patch-tests_wallclock-reftest.c) = 0e3c39623718f0f5a18f86545ba8e4823796a4db

View File

@ -0,0 +1,120 @@
$NetBSD$
Replace usage of uselocale() - not available on NetBSD
--- libgnome-desktop/gnome-languages.c.orig 2020-04-29 01:53:29.072934200 +0000
+++ libgnome-desktop/gnome-languages.c
@@ -303,16 +303,13 @@ language_name_get_codeset_details (const
gboolean *is_utf8)
{
locale_t locale;
- locale_t old_locale;
const char *codeset = NULL;
locale = newlocale (LC_CTYPE_MASK, language_name, (locale_t) 0);
if (locale == (locale_t) 0)
return;
- old_locale = uselocale (locale);
-
- codeset = nl_langinfo (CODESET);
+ codeset = nl_langinfo_l (CODESET, locale);
if (pcodeset != NULL) {
*pcodeset = g_strdup (codeset);
@@ -324,7 +321,6 @@ language_name_get_codeset_details (const
*is_utf8 = strcmp (normalized_codeset, "UTF-8") == 0;
}
- uselocale (old_locale);
freelocale (locale);
}
@@ -703,14 +699,11 @@ get_translated_language (const char *cod
name = NULL;
if (language != NULL) {
const char *translated_name;
- locale_t loc = 0;
- locale_t old_locale = 0;
+ g_autofree char *old_locale = NULL;
if (locale != NULL) {
- loc = newlocale (LC_MESSAGES_MASK, locale, (locale_t) 0);
- if (loc == (locale_t) 0)
- return NULL;
- old_locale = uselocale (loc);
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ setlocale (LC_MESSAGES, locale);
}
if (is_fallback_language (code)) {
@@ -723,8 +716,7 @@ get_translated_language (const char *cod
}
if (locale != NULL) {
- uselocale (old_locale);
- freelocale (loc);
+ setlocale (LC_MESSAGES, locale);
}
}
@@ -761,15 +753,12 @@ get_translated_territory (const char *co
name = NULL;
if (territory != NULL) {
const char *translated_territory;
- locale_t loc;
- locale_t old_locale;
+ g_autofree char *old_locale = NULL;
g_autofree char *tmp = NULL;
if (locale != NULL) {
- loc = newlocale (LC_MESSAGES_MASK, locale, (locale_t) 0);
- if (loc == (locale_t) 0)
- return NULL;
- old_locale = uselocale (loc);
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ setlocale (LC_MESSAGES, locale);
}
translated_territory = dgettext ("iso_3166", territory);
@@ -777,8 +766,7 @@ get_translated_territory (const char *co
name = capitalize_utf8_string (tmp);
if (locale != NULL) {
- uselocale (old_locale);
- freelocale (loc);
+ setlocale (LC_MESSAGES, old_locale);
}
}
@@ -1355,17 +1343,13 @@ gnome_get_translated_modifier (const cha
{
char *retval;
GHashTable *modifiers_map;
- locale_t loc;
- locale_t old_locale;
+ g_autofree char *old_locale = NULL;
g_return_val_if_fail (modifier != NULL, NULL);
if (translation != NULL) {
- loc = newlocale (LC_MESSAGES_MASK, translation, (locale_t) 0);
- if (loc == (locale_t) 0) {
- return NULL;
- }
- old_locale = uselocale (loc);
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ setlocale (LC_MESSAGES, translation);
}
/* Modifiers as listed in glibc's SUPPORTED file:
@@ -1405,8 +1389,7 @@ gnome_get_translated_modifier (const cha
g_hash_table_destroy (modifiers_map);
if (translation != NULL) {
- uselocale (old_locale);
- freelocale (loc);
+ setlocale (LC_MESSAGES, old_locale);
}
return retval;

View File

@ -0,0 +1,37 @@
$NetBSD$
Replace usage of uselocale() - not available on NetBSD
--- libgnome-desktop/gnome-wall-clock.c.orig 2020-04-29 01:53:29.076934000 +0000
+++ libgnome-desktop/gnome-wall-clock.c
@@ -279,22 +279,19 @@ translate_time_format_string (const char
const char *locale = g_getenv ("LC_TIME");
const char *res;
char *sep;
- locale_t old_loc;
- locale_t loc = (locale_t)0;
+ g_autofree char *old_locale = NULL;
- if (locale)
- loc = newlocale (LC_MESSAGES_MASK, locale, (locale_t)0);
-
- old_loc = uselocale (loc);
+ if (locale) {
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ setlocale (LC_MESSAGES, locale);
+ }
sep = strchr (str, '\004');
res = g_dpgettext (GETTEXT_PACKAGE, str, sep ? sep - str + 1 : 0);
- uselocale (old_loc);
-
- if (loc != (locale_t)0)
- freelocale (loc);
-
+ if (locale)
+ setlocale (LC_MESSAGES, old_locale);
+
return res;
}

View File

@ -0,0 +1,54 @@
$NetBSD$
Disable tests that rely on uselocale()
--- tests/wall-clock.c.orig 2020-04-29 01:53:29.099934300 +0000
+++ tests/wall-clock.c
@@ -30,6 +30,7 @@
#define SPACE " "
#define EN_SPACE ""
+#if !defined(__NetBSD__)
static void
test_utf8_character (const char *utf8_char,
const char *non_utf8_fallback)
@@ -149,6 +150,7 @@ test_clock_format_setting (void)
uselocale (save_locale);
freelocale (locale);
}
+#endif
static gboolean
on_notify_clock_timeout (gpointer user_data)
@@ -194,6 +196,7 @@ test_notify_clock (void)
g_object_unref (settings);
}
+#if !defined(__NetBSD__)
static void
test_weekday_setting (void)
{
@@ -245,6 +248,7 @@ test_weekday_setting (void)
uselocale (save_locale);
freelocale (locale);
}
+#endif
int
main (int argc,
@@ -254,11 +258,15 @@ main (int argc,
g_test_init (&argc, &argv, NULL);
+#if !defined(__NetBSD__)
g_test_add_func ("/wall-clock/colon-vs-ratio", test_colon_vs_ratio);
g_test_add_func ("/wall-clock/space-vs-en-space", test_space_vs_en_space);
g_test_add_func ("/wall-clock/24h-clock-format", test_clock_format_setting);
+#endif
g_test_add_func ("/wall-clock/notify-clock", test_notify_clock);
+#if !defined(__NetBSD__)
g_test_add_func ("/wall-clock/weekday-setting", test_weekday_setting);
+#endif
return g_test_run ();
}

View File

@ -0,0 +1,27 @@
$NetBSD$
Disable tests that rely on uselocale()
--- tests/wallclock-reftest.c.orig 2020-04-29 01:53:29.099934300 +0000
+++ tests/wallclock-reftest.c
@@ -433,6 +433,7 @@ static void
test_ui_file (GFile *file,
gconstpointer user_data)
{
+#if !defined(__NetBSD__)
char *ui_file, *reference_file, *locale;
cairo_surface_t *ui_image, *reference_image, *diff_image;
GtkStyleProvider *provider;
@@ -494,6 +495,7 @@ test_ui_file (GFile *file,
}
remove_extra_css (provider);
+#endif
}
static int
@@ -612,3 +614,4 @@ main (int argc, char **argv)
return g_test_run ();
}
+