Index: devel/glib20/files/patch-glib_gtimezone.c =================================================================== --- devel/glib20/files/patch-glib_gtimezone.c (nonexistent) +++ devel/glib20/files/patch-glib_gtimezone.c (working copy) @@ -0,0 +1,44 @@ +--- glib/gtimezone.c.orig 2018-09-21 12:29:23.000000000 +0300 ++++ glib/gtimezone.c 2019-09-12 00:53:42.760936000 +0300 +@@ -187,6 +187,8 @@ + + G_LOCK_DEFINE_STATIC (time_zones); + static GHashTable/**/ *time_zones; ++static GTimeZone *tz_utc = NULL; ++static GTimeZone *tz_local = NULL; + + #define MIN_TZYEAR 1916 /* Daylight Savings started in WWI */ + #define MAX_TZYEAR 2999 /* And it's not likely ever to go away, but +@@ -264,6 +266,8 @@ + GTimeZone * + g_time_zone_ref (GTimeZone *tz) + { ++ if (tz == NULL) ++ return NULL; + g_assert (tz->ref_count > 0); + + g_atomic_int_inc (&tz->ref_count); +@@ -1460,7 +1464,10 @@ + GTimeZone * + g_time_zone_new_utc (void) + { +- return g_time_zone_new ("UTC"); ++ if (tz_utc == NULL) { ++ tz_utc = g_time_zone_new ("UTC"); ++ } ++ return g_time_zone_ref(tz_utc); + } + + /** +@@ -1483,7 +1490,10 @@ + GTimeZone * + g_time_zone_new_local (void) + { +- return g_time_zone_new (getenv ("TZ")); ++ if (tz_local == NULL) { ++ tz_local = g_time_zone_new (getenv ("TZ")); ++ } ++ return g_time_zone_ref(tz_local); + } + + #define TRANSITION(n) g_array_index (tz->transitions, Transition, n)