summaryrefslogtreecommitdiff
path: root/source/l/glib2/glib2.slackware.localtime.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/glib2/glib2.slackware.localtime.diff')
-rw-r--r--source/l/glib2/glib2.slackware.localtime.diff37
1 files changed, 37 insertions, 0 deletions
diff --git a/source/l/glib2/glib2.slackware.localtime.diff b/source/l/glib2/glib2.slackware.localtime.diff
new file mode 100644
index 00000000..235632d1
--- /dev/null
+++ b/source/l/glib2/glib2.slackware.localtime.diff
@@ -0,0 +1,37 @@
+From 4ac2d88f3153d8cdaa003601363e71f46820a187 Mon Sep 17 00:00:00 2001
+From: Patrick J. Volkerding <volkerdi@slackware.com>
+Date: Tue, 20 Nov 2018 13:26:57 -0600
+Subject: [PATCH] Also look at /etc/localtime-copied-from
+
+In Slackware, /etc/localtime is a copy of the local timezone file, not a
+symlink to it, but the latest glib expects a symlink (because that's been
+demanded by systemd and guess-who). So, if we find that /etc/localtime is
+not a symlink, consider /etc/localtime-copied-from next. On Slackware
+systems this will be a symlink to the local timezone file under
+/usr/share/zoneinfo. We still want to consider the possibility that
+/etc/localtime *is* a symlink first though, since that's an acceptable
+local system modification on Slackware.
+
+--- ./glib/gtimezone.c.orig 2018-09-21 09:23:53.000000000 -0500
++++ ./glib/gtimezone.c 2018-11-20 13:11:31.601643410 -0600
+@@ -440,6 +440,20 @@
+
+ /* Resolve the actual timezone pointed to by /etc/localtime. */
+ resolved_identifier = g_file_read_link (filename, &read_link_err);
++
++ /* If we didn't get the timezone here (probably because
++ * /etc/localtime is not a symlink), then we will try again using
++ * /etc/localtime-copied-from, which on Slackware is a symlink to
++ * the local timezone file. */
++ if (resolved_identifier == NULL)
++ {
++ filename = g_strdup ("/etc/localtime-copied-from");
++ g_clear_error (&read_link_err);
++ resolved_identifier = g_file_read_link (filename, &read_link_err);
++ }
++
++ /* Test that we got the resolved_identifier. If not, fall back on the
++ * last option (/var/db/zoneinfo file, as found on FreeBSD) */
+ if (resolved_identifier == NULL)
+ {
+ gboolean not_a_symlink = g_error_matches (read_link_err,