gtimezone: Fallback to /etc/timezone on Gentoo

On non-systemd Gentoo systems the chosen timezone is expressed in
/etc/timezone and /etc/localtime may be a copy of the timezone
file instead of symlink. Add this path to the fallback test to
not regress dates into UTC.
This commit is contained in:
Mart Raudsepp 2018-12-17 00:42:39 +02:00 committed by Philip Withnall
parent 219bed2304
commit 062f185e3c

View File

@ -447,12 +447,17 @@ zone_info_unix (const gchar *identifier,
G_FILE_ERROR_INVAL);
g_clear_error (&read_link_err);
/* Fallback to the content of /var/db/zoneinfo if /etc/localtime is
* not a symlink. This is where 'tzsetup' program on FreeBSD and
* DragonflyBSD stores the timezone chosen by the user. */
if (not_a_symlink && g_file_get_contents ("/var/db/zoneinfo",
&resolved_identifier,
NULL, NULL))
/* Fallback to the content of /var/db/zoneinfo or /etc/timezone
* if /etc/localtime is not a symlink. /var/db/zoneinfo is
* where 'tzsetup' program on FreeBSD and DragonflyBSD stores
* the timezone chosen by the user. /etc/timezone is where user
* choice is expressed on Gentoo OpenRC and others. */
if (not_a_symlink && (g_file_get_contents ("/var/db/zoneinfo",
&resolved_identifier,
NULL, NULL) ||
g_file_get_contents ("/etc/timezone",
&resolved_identifier,
NULL, NULL)))
g_strchomp (resolved_identifier);
else
{