Update the map data and improve behavior:
- Render the map directly from SVG (#1335158) - Fix memory leaks in tz.c - Fix an invalid memory access - Do not modify TZ in the process environment - Move all data files to /usr/share/libtimezonemap from .../libtimezonemap/ui - Add extra city data so all timezone offsets are clickable - Move Venezuela from -04:30 to -04:00 - Fix the conversion of points just west of 180 longitude - Remove the out-of-date Olson map data - Update the "backward" file - Improve the location selected when setting the timezone by name (#1322648) - Remove an extra line in the +10:00 layer - Move Chile back an hour
This commit is contained in:
parent
d4298ebf2c
commit
51a02b6c80
89
0001-Allow-the-image-data-directory-to-be-overridden.patch
Normal file
89
0001-Allow-the-image-data-directory-to-be-overridden.patch
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
From 2aaaa1cd920da12be4604b5cdb9a6db2ed3f0f80 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Tue, 24 May 2016 15:28:18 -0400
|
||||||
|
Subject: [PATCH 01/24] Allow the image data directory to be overridden.
|
||||||
|
|
||||||
|
Look for the environment variable $DATADIR as the directory containing
|
||||||
|
the CcTimezoneMap image files, if set.
|
||||||
|
---
|
||||||
|
src/cc-timezone-map.c | 30 ++++++++++++++++++++++++------
|
||||||
|
1 file changed, 24 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index 2f3ecd2..bf7db8b 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -466,6 +466,18 @@ static const gchar * olsen_map_timezones[] = {
|
||||||
|
"Pacific/Wallis"
|
||||||
|
};
|
||||||
|
|
||||||
|
+/* Allow datadir to be overridden in the environment */
|
||||||
|
+static const gchar *
|
||||||
|
+get_datadir (void)
|
||||||
|
+{
|
||||||
|
+ const gchar *datadir = g_getenv("DATADIR");
|
||||||
|
+
|
||||||
|
+ if (datadir)
|
||||||
|
+ return datadir;
|
||||||
|
+ else
|
||||||
|
+ return DATADIR;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
cc_timezone_map_get_property (GObject *object,
|
||||||
|
guint property_id,
|
||||||
|
@@ -731,7 +743,8 @@ cc_timezone_map_draw (GtkWidget *widget,
|
||||||
|
}
|
||||||
|
|
||||||
|
/* paint hilight */
|
||||||
|
- file = g_strdup_printf (DATADIR "/timezone_%s.png",
|
||||||
|
+ file = g_strdup_printf ("%s/timezone_%s.png",
|
||||||
|
+ get_datadir (),
|
||||||
|
g_ascii_formatd (buf, sizeof (buf),
|
||||||
|
"%g", priv->selected_offset));
|
||||||
|
orig_hilight = gdk_pixbuf_new_from_file (file, &err);
|
||||||
|
@@ -762,7 +775,9 @@ cc_timezone_map_draw (GtkWidget *widget,
|
||||||
|
}
|
||||||
|
|
||||||
|
/* load pin icon */
|
||||||
|
- pin = gdk_pixbuf_new_from_file (DATADIR "/pin.png", &err);
|
||||||
|
+ file = g_strdup_printf ("%s/pin.png", get_datadir ());
|
||||||
|
+ pin = gdk_pixbuf_new_from_file (file, &err);
|
||||||
|
+ g_free (file);
|
||||||
|
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
@@ -1026,14 +1041,16 @@ cc_timezone_map_init (CcTimezoneMap *self)
|
||||||
|
{
|
||||||
|
CcTimezoneMapPrivate *priv;
|
||||||
|
GError *err = NULL;
|
||||||
|
+ gchar *file;
|
||||||
|
|
||||||
|
priv = self->priv = TIMEZONE_MAP_PRIVATE (self);
|
||||||
|
|
||||||
|
priv->previous_x = -1;
|
||||||
|
priv->previous_y = -1;
|
||||||
|
|
||||||
|
- priv->orig_background = gdk_pixbuf_new_from_file (DATADIR "/bg.png",
|
||||||
|
- &err);
|
||||||
|
+ file = g_strdup_printf ("%s/bg.png", get_datadir ());
|
||||||
|
+ priv->orig_background = gdk_pixbuf_new_from_file (file, &err);
|
||||||
|
+ g_free (file);
|
||||||
|
|
||||||
|
if (!priv->orig_background)
|
||||||
|
{
|
||||||
|
@@ -1042,8 +1059,9 @@ cc_timezone_map_init (CcTimezoneMap *self)
|
||||||
|
g_clear_error (&err);
|
||||||
|
}
|
||||||
|
|
||||||
|
- priv->olsen_map = gdk_pixbuf_new_from_file (DATADIR "/olsen_map.png",
|
||||||
|
- &err);
|
||||||
|
+ file = g_strdup_printf ("%s/olsen_map.png", get_datadir ());
|
||||||
|
+ priv->olsen_map = gdk_pixbuf_new_from_file (file, &err);
|
||||||
|
+ g_free (file);
|
||||||
|
if (!priv->olsen_map)
|
||||||
|
{
|
||||||
|
g_warning ("Could not load olsen map: %s",
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
15691
0002-Render-the-map-directly-from-the-SVG.patch
Normal file
15691
0002-Render-the-map-directly-from-the-SVG.patch
Normal file
File diff suppressed because one or more lines are too long
26651
0003-Optimize-the-SVG.patch
Normal file
26651
0003-Optimize-the-SVG.patch
Normal file
File diff suppressed because one or more lines are too long
88
0004-Fix-memory-leaks-in-tz.c.patch
Normal file
88
0004-Fix-memory-leaks-in-tz.c.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
From da929a5f69a414fce6f2b5f8e02e4c978b020bb3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Fri, 8 Apr 2016 11:58:04 -0400
|
||||||
|
Subject: [PATCH 04/24] Fix memory leaks in tz.c
|
||||||
|
|
||||||
|
Use a stack-allocated block for the user_data struct passed to
|
||||||
|
parse_cities15000, since the struct itself is not needed after
|
||||||
|
parse_file, and no one can forget to free it if it's not dynamically
|
||||||
|
allocated the first place.
|
||||||
|
|
||||||
|
Use const strings in tz_data_file_get so that the return value does not
|
||||||
|
need to be duplicated and freed.
|
||||||
|
---
|
||||||
|
src/tz.c | 24 ++++++++++--------------
|
||||||
|
1 file changed, 10 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tz.c b/src/tz.c
|
||||||
|
index 0b5f208..9aa9e8a 100644
|
||||||
|
--- a/src/tz.c
|
||||||
|
+++ b/src/tz.c
|
||||||
|
@@ -41,7 +41,7 @@ static float convert_pos (gchar *pos, int digits);
|
||||||
|
#endif
|
||||||
|
static int compare_country_names (const void *a, const void *b);
|
||||||
|
static void sort_locations_by_country (GPtrArray *locations);
|
||||||
|
-static gchar * tz_data_file_get (gchar *env, gchar *defaultfile);
|
||||||
|
+static const gchar * tz_data_file_get (const gchar *env, const gchar *defaultfile);
|
||||||
|
|
||||||
|
void parse_file (const char * filename,
|
||||||
|
const guint ncolumns,
|
||||||
|
@@ -179,7 +179,7 @@ void parse_cities15000 (gpointer parsed_data,
|
||||||
|
TzDB *
|
||||||
|
tz_load_db (void)
|
||||||
|
{
|
||||||
|
- gchar *tz_data_file, *admin1_file, *country_file;
|
||||||
|
+ const gchar *tz_data_file, *admin1_file, *country_file;
|
||||||
|
TzDB *tz_db;
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
|
@@ -217,23 +217,19 @@ tz_load_db (void)
|
||||||
|
tz_db = g_new0 (TzDB, 1);
|
||||||
|
tz_db->locations = g_ptr_array_new ();
|
||||||
|
|
||||||
|
- Triple * triple = g_new (Triple, 1);
|
||||||
|
- triple->first = tz_db->locations;
|
||||||
|
- triple->second = stateHash;
|
||||||
|
- triple->third = countryHash;
|
||||||
|
+ Triple triple;
|
||||||
|
+ triple.first = tz_db->locations;
|
||||||
|
+ triple.second = stateHash;
|
||||||
|
+ triple.third = countryHash;
|
||||||
|
|
||||||
|
- parse_file (tz_data_file, 19, parse_cities15000, triple);
|
||||||
|
+ parse_file (tz_data_file, 19, parse_cities15000, &triple);
|
||||||
|
|
||||||
|
g_hash_table_destroy (stateHash);
|
||||||
|
g_hash_table_destroy (countryHash);
|
||||||
|
- triple->second = NULL;
|
||||||
|
- triple->third = NULL;
|
||||||
|
|
||||||
|
/* now sort by country */
|
||||||
|
sort_locations_by_country (tz_db->locations);
|
||||||
|
|
||||||
|
- g_free (tz_data_file);
|
||||||
|
-
|
||||||
|
return tz_db;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -391,14 +387,14 @@ tz_info_free (TzInfo *tzinfo)
|
||||||
|
* Private functions *
|
||||||
|
* ----------------- */
|
||||||
|
|
||||||
|
-static gchar *
|
||||||
|
-tz_data_file_get (gchar *env, gchar *defaultfile)
|
||||||
|
+static const gchar *
|
||||||
|
+tz_data_file_get (const gchar *env, const gchar *defaultfile)
|
||||||
|
{
|
||||||
|
/* Allow passing this in at runtime, to support loading it from the build
|
||||||
|
* tree during tests. */
|
||||||
|
const gchar * filename = g_getenv (env);
|
||||||
|
|
||||||
|
- return filename ? g_strdup (filename) : g_strdup (defaultfile);
|
||||||
|
+ return filename ? filename : defaultfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __sun
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
26
0005-Fix-an-invalid-memory-access.patch
Normal file
26
0005-Fix-an-invalid-memory-access.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 8b82b34623699afc5a20b083e68f2f428a8d4583 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Fri, 8 Apr 2016 11:52:47 -0400
|
||||||
|
Subject: [PATCH 05/24] Fix an invalid memory access
|
||||||
|
|
||||||
|
When truncating the list for the distance-based location search, do not
|
||||||
|
attempt to read the rest of the list after it has been freed.
|
||||||
|
---
|
||||||
|
src/cc-timezone-map.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index f47c870..f0b061d 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -1037,6 +1037,7 @@ get_loc_for_xy (GtkWidget * widget, gint x, gint y)
|
||||||
|
/* Cut the list off here */
|
||||||
|
node->prev->next = NULL;
|
||||||
|
g_list_free(node);
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
|
||||||
|
node = g_list_next(node);
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
99
0006-Do-not-use-tz_location_get_utc_offset.patch
Normal file
99
0006-Do-not-use-tz_location_get_utc_offset.patch
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
From 238e6d1bf29067eb705b372ed1f930b9bcb99fce Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Fri, 8 Apr 2016 15:20:10 -0400
|
||||||
|
Subject: [PATCH 06/24] Do not use tz_location_get_utc_offset
|
||||||
|
|
||||||
|
The function in tz.c to fetch the timezone offset for a given location
|
||||||
|
sets the TZ environment variable which, besides being potentially
|
||||||
|
surprising to the rest of the process, is not thread-safe. Instead,
|
||||||
|
skip the function entirely and use the glib functions for querying time
|
||||||
|
zone data.
|
||||||
|
|
||||||
|
Increase the required glib version to 2.26 for the GTimeZone functions.
|
||||||
|
---
|
||||||
|
debian/control | 4 ++--
|
||||||
|
src/cc-timezone-map.c | 38 ++++++++++++++++++++++++++++++++++----
|
||||||
|
2 files changed, 36 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/debian/control b/debian/control
|
||||||
|
index 0aca76c..61f0d6b 100644
|
||||||
|
--- a/debian/control
|
||||||
|
+++ b/debian/control
|
||||||
|
@@ -9,7 +9,7 @@ Build-Depends: cdbs,
|
||||||
|
gir1.2-glib-2.0,
|
||||||
|
gir1.2-gtk-3.0,
|
||||||
|
intltool (>= 0.35.0),
|
||||||
|
- libglib2.0-dev (>= 2.25.0),
|
||||||
|
+ libglib2.0-dev (>= 2.26.0),
|
||||||
|
libgtk-3-dev (>= 3.1.4),
|
||||||
|
libcairo2-dev (>= 1.10),
|
||||||
|
libjson-glib-dev,
|
||||||
|
@@ -58,7 +58,7 @@ Architecture: any
|
||||||
|
Depends: ${shlibs:Depends},
|
||||||
|
${misc:Depends},
|
||||||
|
libtimezonemap1 (= ${binary:Version}),
|
||||||
|
- libglib2.0-dev (>= 2.25.0),
|
||||||
|
+ libglib2.0-dev (>= 2.26.0),
|
||||||
|
libgtk-3-dev (>= 3.1.4),
|
||||||
|
librsvg2-dev,
|
||||||
|
libjson-glib-dev
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index f0b061d..b71d3cd 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -937,6 +937,39 @@ sort_locations (CcTimezoneLocation *a,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Return the UTC offset (in hours) for the standard (winter) time at a location */
|
||||||
|
+static gdouble
|
||||||
|
+get_location_offset (CcTimezoneLocation *location)
|
||||||
|
+{
|
||||||
|
+ const gchar *zone_name;
|
||||||
|
+ GTimeZone *zone;
|
||||||
|
+ gint interval;
|
||||||
|
+ gint64 curtime;
|
||||||
|
+ gint32 offset;
|
||||||
|
+
|
||||||
|
+ g_return_val_if_fail (location != NULL, 0);
|
||||||
|
+ zone_name = cc_timezone_location_get_zone (location);
|
||||||
|
+ g_return_val_if_fail (zone_name != NULL, 0);
|
||||||
|
+
|
||||||
|
+ zone = g_time_zone_new (zone_name);
|
||||||
|
+
|
||||||
|
+ /* Query the zone based on the current time, since otherwise the data
|
||||||
|
+ * may not make sense. */
|
||||||
|
+ curtime = g_get_real_time () / 1000; /* convert to seconds */
|
||||||
|
+ interval = g_time_zone_find_interval (zone, G_TIME_TYPE_UNIVERSAL, curtime);
|
||||||
|
+
|
||||||
|
+ offset = g_time_zone_get_offset (zone, interval);
|
||||||
|
+ if (g_time_zone_is_dst (zone, interval))
|
||||||
|
+ {
|
||||||
|
+ /* Subtract an hour's worth of seconds to get the standard time offset */
|
||||||
|
+ offset -= (60 * 60);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g_time_zone_unref (zone);
|
||||||
|
+
|
||||||
|
+ return offset / (60.0 * 60.0);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
set_location (CcTimezoneMap *map,
|
||||||
|
CcTimezoneLocation *location)
|
||||||
|
@@ -948,11 +981,8 @@ set_location (CcTimezoneMap *map,
|
||||||
|
|
||||||
|
if (priv->location)
|
||||||
|
{
|
||||||
|
- info = tz_info_from_location (priv->location);
|
||||||
|
- priv->selected_offset = tz_location_get_utc_offset (priv->location)
|
||||||
|
- / (60.0*60.0) + ((info->daylight) ? -1.0 : 0.0);
|
||||||
|
+ priv->selected_offset = get_location_offset (priv->location);
|
||||||
|
priv->show_offset = TRUE;
|
||||||
|
- tz_info_free (info);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
82
0007-Make-the-test-program-more-automake-y.patch
Normal file
82
0007-Make-the-test-program-more-automake-y.patch
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
From ab31d932b5d1b433dc091d688dadf0211f341a9e Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Fri, 24 Jun 2016 13:45:46 -0400
|
||||||
|
Subject: [PATCH 07/24] Make the test program more automake-y
|
||||||
|
|
||||||
|
Add a $DATADIR environment variable to allow test-timezone to be more
|
||||||
|
easily run from automake without arguments. Use the various check_* and
|
||||||
|
TEST variables to define and run the test program.
|
||||||
|
---
|
||||||
|
src/Makefile.am | 21 ++++++++++++++-------
|
||||||
|
src/test-timezone.c | 16 ++++++++++++++--
|
||||||
|
3 files changed, 31 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index 9386d1d..9711706 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -24,15 +24,22 @@ AM_CPPFLAGS = \
|
||||||
|
|
||||||
|
noinst_PROGRAMS = test-timezone
|
||||||
|
|
||||||
|
-test_timezone_SOURCES = test-timezone.c cc-timezone-location.c tz.c tz.h
|
||||||
|
-test_timezone_LDADD = $(LIBTIMEZONEMAP_LIBS) -lm
|
||||||
|
+
|
||||||
|
+all-local: check
|
||||||
|
+
|
||||||
|
+AM_TESTS_ENVIRONMENT = TZ_DATA_FILE=$(srcdir)/data/cities15000.txt ; \
|
||||||
|
+ ADMIN1_FILE=$(srcdir)/data/admin1Codes.txt ; \
|
||||||
|
+ COUNTRY_FILE=$(srcdir)/data/countryInfo.txt ; \
|
||||||
|
+ DATADIR=$(srcdir)/data ; \
|
||||||
|
+ export TZ_DATA_FILE ADMIN1_FILE COUNTRY_FILE DATADIR ;
|
||||||
|
+
|
||||||
|
+check_PROGRAMS = test-timezone
|
||||||
|
+
|
||||||
|
+test_timezone_SOURCES = test-timezone.c
|
||||||
|
+test_timezone_LDADD = $(LIBTIMEZONEMAP_LIBS) -lm libtimezonemap.la
|
||||||
|
test_timezone_CFLAGS = $(LIBTIMEZONEMAP_CFLAGS)
|
||||||
|
|
||||||
|
-all-local: check-local
|
||||||
|
-
|
||||||
|
-check-local: test-timezone
|
||||||
|
- TZ_DATA_FILE=$(srcdir)/data/cities15000.txt ADMIN1_FILE=$(srcdir)/data/admin1Codes.txt COUNTRY_FILE=$(srcdir)/data/countryInfo.txt \
|
||||||
|
- $(builddir)/test-timezone $(srcdir)/data
|
||||||
|
+TESTS = test-timezone
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = libtimezonemap.la
|
||||||
|
|
||||||
|
diff --git a/src/test-timezone.c b/src/test-timezone.c
|
||||||
|
index 504deb9..692c240 100644
|
||||||
|
--- a/src/test-timezone.c
|
||||||
|
+++ b/src/test-timezone.c
|
||||||
|
@@ -15,13 +15,25 @@ int main (int argc, char **argv)
|
||||||
|
RsvgHandle *svg;
|
||||||
|
gchar *path;
|
||||||
|
|
||||||
|
- setlocale (LC_ALL, "");
|
||||||
|
+ setlocale (LC_ALL, "");
|
||||||
|
|
||||||
|
if (argc == 2)
|
||||||
|
{
|
||||||
|
pixmap_dir = g_strdup (argv[1]);
|
||||||
|
} else if (argc == 1) {
|
||||||
|
- pixmap_dir = g_strdup ("data/");
|
||||||
|
+ const char *datadir = g_getenv("DATADIR");
|
||||||
|
+ if (datadir != NULL)
|
||||||
|
+ {
|
||||||
|
+ pixmap_dir = g_strdup (datadir);
|
||||||
|
+ } else {
|
||||||
|
+ pixmap_dir = g_strdup ("./data");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (! g_file_test (pixmap_dir, G_FILE_TEST_IS_DIR))
|
||||||
|
+ {
|
||||||
|
+ g_message("Pixmap directory %s does not exist", pixmap_dir);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
} else {
|
||||||
|
g_message ("Usage: %s [PIXMAP DIRECTORY]", argv[0]);
|
||||||
|
return 1;
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
357
0008-Move-all-of-the-data-into-one-place.patch
Normal file
357
0008-Move-all-of-the-data-into-one-place.patch
Normal file
@ -0,0 +1,357 @@
|
|||||||
|
From 35dc2c55166523e86249a518182776eba8d3f014 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Wed, 22 Jun 2016 13:06:47 -0400
|
||||||
|
Subject: [PATCH 08/24] Move all of the data into one place.
|
||||||
|
|
||||||
|
Move the backward file into src/data, and move the data files that were
|
||||||
|
in $(pkgdatadir)/ui to $(pkgdatadir), since there's really no reason for
|
||||||
|
them to be separate. Get rid of the old gnome-control-center #defines.
|
||||||
|
---
|
||||||
|
src/Makefile.am | 6 +--
|
||||||
|
src/backward | 118 --------------------------------------------------
|
||||||
|
src/cc-timezone-map.c | 7 ++-
|
||||||
|
src/data/README | 4 ++
|
||||||
|
src/data/backward | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
src/tz.h | 6 +--
|
||||||
|
6 files changed, 133 insertions(+), 126 deletions(-)
|
||||||
|
delete mode 100644 src/backward
|
||||||
|
create mode 100644 src/data/backward
|
||||||
|
|
||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index 9711706..106f034 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
CLEANFILES =
|
||||||
|
|
||||||
|
-uidir = $(pkgdatadir)/ui
|
||||||
|
+uidir = $(pkgdatadir)
|
||||||
|
dist_ui_DATA = \
|
||||||
|
data/olsen_map.png \
|
||||||
|
data/pin.png \
|
||||||
|
@@ -10,15 +10,13 @@ dist_ui_DATA = \
|
||||||
|
data/countryInfo.txt
|
||||||
|
|
||||||
|
tzdatadir = $(pkgdatadir)/
|
||||||
|
-dist_tzdata_DATA = backward
|
||||||
|
+dist_tzdata_DATA = data/backward
|
||||||
|
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
dist_pkgconfig_DATA = timezonemap.pc
|
||||||
|
|
||||||
|
AM_CPPFLAGS = \
|
||||||
|
$(LIBTIMEZONEMAP_CFLAGS) \
|
||||||
|
- -DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
|
||||||
|
- -DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \
|
||||||
|
-DDATADIR="\"$(uidir)\"" \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
diff --git a/src/backward b/src/backward
|
||||||
|
deleted file mode 100644
|
||||||
|
index f1f95a8..0000000
|
||||||
|
--- a/src/backward
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,118 +0,0 @@
|
||||||
|
-# <pre>
|
||||||
|
-# @(#)backward 8.9
|
||||||
|
-# This file is in the public domain, so clarified as of
|
||||||
|
-# 2009-05-17 by Arthur David Olson.
|
||||||
|
-
|
||||||
|
-# This file provides links between current names for time zones
|
||||||
|
-# and their old names. Many names changed in late 1993.
|
||||||
|
-
|
||||||
|
-Link Africa/Asmara Africa/Asmera
|
||||||
|
-Link Africa/Bamako Africa/Timbuktu
|
||||||
|
-Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||||
|
-Link America/Adak America/Atka
|
||||||
|
-Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||||
|
-Link America/Argentina/Catamarca America/Catamarca
|
||||||
|
-Link America/Atikokan America/Coral_Harbour
|
||||||
|
-Link America/Argentina/Cordoba America/Cordoba
|
||||||
|
-Link America/Tijuana America/Ensenada
|
||||||
|
-Link America/Indiana/Indianapolis America/Fort_Wayne
|
||||||
|
-Link America/Indiana/Indianapolis America/Indianapolis
|
||||||
|
-Link America/Argentina/Jujuy America/Jujuy
|
||||||
|
-Link America/Indiana/Knox America/Knox_IN
|
||||||
|
-Link America/Kentucky/Louisville America/Louisville
|
||||||
|
-Link America/Argentina/Mendoza America/Mendoza
|
||||||
|
-Link America/Rio_Branco America/Porto_Acre
|
||||||
|
-Link America/Argentina/Cordoba America/Rosario
|
||||||
|
-Link America/St_Thomas America/Virgin
|
||||||
|
-Link Asia/Ashgabat Asia/Ashkhabad
|
||||||
|
-Link Asia/Chongqing Asia/Chungking
|
||||||
|
-Link Asia/Dhaka Asia/Dacca
|
||||||
|
-Link Asia/Kathmandu Asia/Katmandu
|
||||||
|
-Link Asia/Kolkata Asia/Calcutta
|
||||||
|
-Link Asia/Macau Asia/Macao
|
||||||
|
-Link Asia/Jerusalem Asia/Tel_Aviv
|
||||||
|
-Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||||
|
-Link Asia/Thimphu Asia/Thimbu
|
||||||
|
-Link Asia/Makassar Asia/Ujung_Pandang
|
||||||
|
-Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||||
|
-Link Atlantic/Faroe Atlantic/Faeroe
|
||||||
|
-Link Europe/Oslo Atlantic/Jan_Mayen
|
||||||
|
-Link Australia/Sydney Australia/ACT
|
||||||
|
-Link Australia/Sydney Australia/Canberra
|
||||||
|
-Link Australia/Lord_Howe Australia/LHI
|
||||||
|
-Link Australia/Sydney Australia/NSW
|
||||||
|
-Link Australia/Darwin Australia/North
|
||||||
|
-Link Australia/Brisbane Australia/Queensland
|
||||||
|
-Link Australia/Adelaide Australia/South
|
||||||
|
-Link Australia/Hobart Australia/Tasmania
|
||||||
|
-Link Australia/Melbourne Australia/Victoria
|
||||||
|
-Link Australia/Perth Australia/West
|
||||||
|
-Link Australia/Broken_Hill Australia/Yancowinna
|
||||||
|
-Link America/Rio_Branco Brazil/Acre
|
||||||
|
-Link America/Noronha Brazil/DeNoronha
|
||||||
|
-Link America/Sao_Paulo Brazil/East
|
||||||
|
-Link America/Manaus Brazil/West
|
||||||
|
-Link America/Halifax Canada/Atlantic
|
||||||
|
-Link America/Winnipeg Canada/Central
|
||||||
|
-Link America/Regina Canada/East-Saskatchewan
|
||||||
|
-Link America/Toronto Canada/Eastern
|
||||||
|
-Link America/Edmonton Canada/Mountain
|
||||||
|
-Link America/St_Johns Canada/Newfoundland
|
||||||
|
-Link America/Vancouver Canada/Pacific
|
||||||
|
-Link America/Regina Canada/Saskatchewan
|
||||||
|
-Link America/Whitehorse Canada/Yukon
|
||||||
|
-Link America/Santiago Chile/Continental
|
||||||
|
-Link Pacific/Easter Chile/EasterIsland
|
||||||
|
-Link America/Havana Cuba
|
||||||
|
-Link Africa/Cairo Egypt
|
||||||
|
-Link Europe/Dublin Eire
|
||||||
|
-Link Europe/London Europe/Belfast
|
||||||
|
-Link Europe/Chisinau Europe/Tiraspol
|
||||||
|
-Link Europe/London GB
|
||||||
|
-Link Europe/London GB-Eire
|
||||||
|
-Link Etc/GMT GMT+0
|
||||||
|
-Link Etc/GMT GMT-0
|
||||||
|
-Link Etc/GMT GMT0
|
||||||
|
-Link Etc/GMT Greenwich
|
||||||
|
-Link Asia/Hong_Kong Hongkong
|
||||||
|
-Link Atlantic/Reykjavik Iceland
|
||||||
|
-Link Asia/Tehran Iran
|
||||||
|
-Link Asia/Jerusalem Israel
|
||||||
|
-Link America/Jamaica Jamaica
|
||||||
|
-Link Asia/Tokyo Japan
|
||||||
|
-Link Pacific/Kwajalein Kwajalein
|
||||||
|
-Link Africa/Tripoli Libya
|
||||||
|
-Link America/Tijuana Mexico/BajaNorte
|
||||||
|
-Link America/Mazatlan Mexico/BajaSur
|
||||||
|
-Link America/Mexico_City Mexico/General
|
||||||
|
-Link Pacific/Auckland NZ
|
||||||
|
-Link Pacific/Chatham NZ-CHAT
|
||||||
|
-Link America/Denver Navajo
|
||||||
|
-Link Asia/Shanghai PRC
|
||||||
|
-Link Pacific/Pago_Pago Pacific/Samoa
|
||||||
|
-Link Pacific/Chuuk Pacific/Yap
|
||||||
|
-Link Pacific/Chuuk Pacific/Truk
|
||||||
|
-Link Pacific/Pohnpei Pacific/Ponape
|
||||||
|
-Link Europe/Warsaw Poland
|
||||||
|
-Link Europe/Lisbon Portugal
|
||||||
|
-Link Asia/Taipei ROC
|
||||||
|
-Link Asia/Seoul ROK
|
||||||
|
-Link Asia/Singapore Singapore
|
||||||
|
-Link Europe/Istanbul Turkey
|
||||||
|
-Link Etc/UCT UCT
|
||||||
|
-Link America/Anchorage US/Alaska
|
||||||
|
-Link America/Adak US/Aleutian
|
||||||
|
-Link America/Phoenix US/Arizona
|
||||||
|
-Link America/Chicago US/Central
|
||||||
|
-Link America/Indiana/Indianapolis US/East-Indiana
|
||||||
|
-Link America/New_York US/Eastern
|
||||||
|
-Link Pacific/Honolulu US/Hawaii
|
||||||
|
-Link America/Indiana/Knox US/Indiana-Starke
|
||||||
|
-Link America/Detroit US/Michigan
|
||||||
|
-Link America/Denver US/Mountain
|
||||||
|
-Link America/Los_Angeles US/Pacific
|
||||||
|
-Link Pacific/Pago_Pago US/Samoa
|
||||||
|
-Link Etc/UTC UTC
|
||||||
|
-Link Etc/UTC Universal
|
||||||
|
-Link Europe/Moscow W-SU
|
||||||
|
-Link Etc/UTC Zulu
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index b71d3cd..e0bf774 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -1103,11 +1103,16 @@ load_backward_tz (CcTimezoneMap *self)
|
||||||
|
{
|
||||||
|
GError *error = NULL;
|
||||||
|
char **lines, *contents;
|
||||||
|
+ gchar *file;
|
||||||
|
+ gboolean result;
|
||||||
|
guint i;
|
||||||
|
|
||||||
|
self->priv->alias_db = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
|
||||||
|
|
||||||
|
- if (g_file_get_contents (GNOMECC_DATA_DIR "/backward", &contents, NULL, &error) == FALSE)
|
||||||
|
+ file = g_strdup_printf ("%s/backward", get_datadir ());
|
||||||
|
+ result = g_file_get_contents (file, &contents, NULL, &error);
|
||||||
|
+ g_free (file);
|
||||||
|
+ if (result == FALSE)
|
||||||
|
{
|
||||||
|
g_warning ("Failed to load 'backward' file: %s", error->message);
|
||||||
|
return;
|
||||||
|
diff --git a/src/data/README b/src/data/README
|
||||||
|
index 0d7aa11..1b1a737 100644
|
||||||
|
--- a/src/data/README
|
||||||
|
+++ b/src/data/README
|
||||||
|
@@ -8,6 +8,10 @@ admin1Codes.txt, cities15000.txt, countryInfo.txt
|
||||||
|
These three files come from the geonames.org database. Simply find the files
|
||||||
|
in http://download.geonames.org/export/dump/ and copy them to this directory.
|
||||||
|
|
||||||
|
+backward
|
||||||
|
+ This file lists links between current time zone names and obsolete time zone
|
||||||
|
+ names. It comes from the tzdata at https://www.iana.org/time-zones
|
||||||
|
+
|
||||||
|
olsen_map.png
|
||||||
|
This is a map of the tzdata timezones, with each zone encoded as a RGBA
|
||||||
|
value. The data source is probably the shapefiles provided at
|
||||||
|
diff --git a/src/data/backward b/src/data/backward
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f1f95a8
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/data/backward
|
||||||
|
@@ -0,0 +1,118 @@
|
||||||
|
+# <pre>
|
||||||
|
+# @(#)backward 8.9
|
||||||
|
+# This file is in the public domain, so clarified as of
|
||||||
|
+# 2009-05-17 by Arthur David Olson.
|
||||||
|
+
|
||||||
|
+# This file provides links between current names for time zones
|
||||||
|
+# and their old names. Many names changed in late 1993.
|
||||||
|
+
|
||||||
|
+Link Africa/Asmara Africa/Asmera
|
||||||
|
+Link Africa/Bamako Africa/Timbuktu
|
||||||
|
+Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||||
|
+Link America/Adak America/Atka
|
||||||
|
+Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||||
|
+Link America/Argentina/Catamarca America/Catamarca
|
||||||
|
+Link America/Atikokan America/Coral_Harbour
|
||||||
|
+Link America/Argentina/Cordoba America/Cordoba
|
||||||
|
+Link America/Tijuana America/Ensenada
|
||||||
|
+Link America/Indiana/Indianapolis America/Fort_Wayne
|
||||||
|
+Link America/Indiana/Indianapolis America/Indianapolis
|
||||||
|
+Link America/Argentina/Jujuy America/Jujuy
|
||||||
|
+Link America/Indiana/Knox America/Knox_IN
|
||||||
|
+Link America/Kentucky/Louisville America/Louisville
|
||||||
|
+Link America/Argentina/Mendoza America/Mendoza
|
||||||
|
+Link America/Rio_Branco America/Porto_Acre
|
||||||
|
+Link America/Argentina/Cordoba America/Rosario
|
||||||
|
+Link America/St_Thomas America/Virgin
|
||||||
|
+Link Asia/Ashgabat Asia/Ashkhabad
|
||||||
|
+Link Asia/Chongqing Asia/Chungking
|
||||||
|
+Link Asia/Dhaka Asia/Dacca
|
||||||
|
+Link Asia/Kathmandu Asia/Katmandu
|
||||||
|
+Link Asia/Kolkata Asia/Calcutta
|
||||||
|
+Link Asia/Macau Asia/Macao
|
||||||
|
+Link Asia/Jerusalem Asia/Tel_Aviv
|
||||||
|
+Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||||
|
+Link Asia/Thimphu Asia/Thimbu
|
||||||
|
+Link Asia/Makassar Asia/Ujung_Pandang
|
||||||
|
+Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||||
|
+Link Atlantic/Faroe Atlantic/Faeroe
|
||||||
|
+Link Europe/Oslo Atlantic/Jan_Mayen
|
||||||
|
+Link Australia/Sydney Australia/ACT
|
||||||
|
+Link Australia/Sydney Australia/Canberra
|
||||||
|
+Link Australia/Lord_Howe Australia/LHI
|
||||||
|
+Link Australia/Sydney Australia/NSW
|
||||||
|
+Link Australia/Darwin Australia/North
|
||||||
|
+Link Australia/Brisbane Australia/Queensland
|
||||||
|
+Link Australia/Adelaide Australia/South
|
||||||
|
+Link Australia/Hobart Australia/Tasmania
|
||||||
|
+Link Australia/Melbourne Australia/Victoria
|
||||||
|
+Link Australia/Perth Australia/West
|
||||||
|
+Link Australia/Broken_Hill Australia/Yancowinna
|
||||||
|
+Link America/Rio_Branco Brazil/Acre
|
||||||
|
+Link America/Noronha Brazil/DeNoronha
|
||||||
|
+Link America/Sao_Paulo Brazil/East
|
||||||
|
+Link America/Manaus Brazil/West
|
||||||
|
+Link America/Halifax Canada/Atlantic
|
||||||
|
+Link America/Winnipeg Canada/Central
|
||||||
|
+Link America/Regina Canada/East-Saskatchewan
|
||||||
|
+Link America/Toronto Canada/Eastern
|
||||||
|
+Link America/Edmonton Canada/Mountain
|
||||||
|
+Link America/St_Johns Canada/Newfoundland
|
||||||
|
+Link America/Vancouver Canada/Pacific
|
||||||
|
+Link America/Regina Canada/Saskatchewan
|
||||||
|
+Link America/Whitehorse Canada/Yukon
|
||||||
|
+Link America/Santiago Chile/Continental
|
||||||
|
+Link Pacific/Easter Chile/EasterIsland
|
||||||
|
+Link America/Havana Cuba
|
||||||
|
+Link Africa/Cairo Egypt
|
||||||
|
+Link Europe/Dublin Eire
|
||||||
|
+Link Europe/London Europe/Belfast
|
||||||
|
+Link Europe/Chisinau Europe/Tiraspol
|
||||||
|
+Link Europe/London GB
|
||||||
|
+Link Europe/London GB-Eire
|
||||||
|
+Link Etc/GMT GMT+0
|
||||||
|
+Link Etc/GMT GMT-0
|
||||||
|
+Link Etc/GMT GMT0
|
||||||
|
+Link Etc/GMT Greenwich
|
||||||
|
+Link Asia/Hong_Kong Hongkong
|
||||||
|
+Link Atlantic/Reykjavik Iceland
|
||||||
|
+Link Asia/Tehran Iran
|
||||||
|
+Link Asia/Jerusalem Israel
|
||||||
|
+Link America/Jamaica Jamaica
|
||||||
|
+Link Asia/Tokyo Japan
|
||||||
|
+Link Pacific/Kwajalein Kwajalein
|
||||||
|
+Link Africa/Tripoli Libya
|
||||||
|
+Link America/Tijuana Mexico/BajaNorte
|
||||||
|
+Link America/Mazatlan Mexico/BajaSur
|
||||||
|
+Link America/Mexico_City Mexico/General
|
||||||
|
+Link Pacific/Auckland NZ
|
||||||
|
+Link Pacific/Chatham NZ-CHAT
|
||||||
|
+Link America/Denver Navajo
|
||||||
|
+Link Asia/Shanghai PRC
|
||||||
|
+Link Pacific/Pago_Pago Pacific/Samoa
|
||||||
|
+Link Pacific/Chuuk Pacific/Yap
|
||||||
|
+Link Pacific/Chuuk Pacific/Truk
|
||||||
|
+Link Pacific/Pohnpei Pacific/Ponape
|
||||||
|
+Link Europe/Warsaw Poland
|
||||||
|
+Link Europe/Lisbon Portugal
|
||||||
|
+Link Asia/Taipei ROC
|
||||||
|
+Link Asia/Seoul ROK
|
||||||
|
+Link Asia/Singapore Singapore
|
||||||
|
+Link Europe/Istanbul Turkey
|
||||||
|
+Link Etc/UCT UCT
|
||||||
|
+Link America/Anchorage US/Alaska
|
||||||
|
+Link America/Adak US/Aleutian
|
||||||
|
+Link America/Phoenix US/Arizona
|
||||||
|
+Link America/Chicago US/Central
|
||||||
|
+Link America/Indiana/Indianapolis US/East-Indiana
|
||||||
|
+Link America/New_York US/Eastern
|
||||||
|
+Link Pacific/Honolulu US/Hawaii
|
||||||
|
+Link America/Indiana/Knox US/Indiana-Starke
|
||||||
|
+Link America/Detroit US/Michigan
|
||||||
|
+Link America/Denver US/Mountain
|
||||||
|
+Link America/Los_Angeles US/Pacific
|
||||||
|
+Link Pacific/Pago_Pago US/Samoa
|
||||||
|
+Link Etc/UTC UTC
|
||||||
|
+Link Etc/UTC Universal
|
||||||
|
+Link Europe/Moscow W-SU
|
||||||
|
+Link Etc/UTC Zulu
|
||||||
|
diff --git a/src/tz.h b/src/tz.h
|
||||||
|
index 8eb55d3..8d033de 100644
|
||||||
|
--- a/src/tz.h
|
||||||
|
+++ b/src/tz.h
|
||||||
|
@@ -31,13 +31,13 @@
|
||||||
|
#include "cc-timezone-location.h"
|
||||||
|
|
||||||
|
#ifndef __sun
|
||||||
|
-# define TZ_DATA_FILE "/usr/share/libtimezonemap/ui/cities15000.txt"
|
||||||
|
+# define TZ_DATA_FILE "/usr/share/libtimezonemap/cities15000.txt"
|
||||||
|
#else
|
||||||
|
# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-# define ADMIN1_FILE "/usr/share/libtimezonemap/ui/admin1Codes.txt"
|
||||||
|
-# define COUNTRY_FILE "/usr/share/libtimezonemap/ui/countryInfo.txt"
|
||||||
|
+# define ADMIN1_FILE "/usr/share/libtimezonemap/admin1Codes.txt"
|
||||||
|
+# define COUNTRY_FILE "/usr/share/libtimezonemap/countryInfo.txt"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
140
0009-Remove-the-sun-specific-tzdata-path.patch
Normal file
140
0009-Remove-the-sun-specific-tzdata-path.patch
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
From 380f1f88396e7c08da0d422b3416cb51c15d6a22 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Fri, 24 Jun 2016 16:15:51 -0400
|
||||||
|
Subject: [PATCH 09/24] Remove the sun specific tzdata path.
|
||||||
|
|
||||||
|
tz.c no longer uesrs tzdata so this is obsolete.
|
||||||
|
---
|
||||||
|
src/tz.c | 65 +---------------------------------------------------------------
|
||||||
|
src/tz.h | 6 +-----
|
||||||
|
2 files changed, 2 insertions(+), 69 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tz.c b/src/tz.c
|
||||||
|
index 9aa9e8a..30f688d 100644
|
||||||
|
--- a/src/tz.c
|
||||||
|
+++ b/src/tz.c
|
||||||
|
@@ -36,9 +36,6 @@
|
||||||
|
|
||||||
|
/* Forward declarations for private functions */
|
||||||
|
|
||||||
|
-#ifdef __sun
|
||||||
|
-static float convert_pos (gchar *pos, int digits);
|
||||||
|
-#endif
|
||||||
|
static int compare_country_names (const void *a, const void *b);
|
||||||
|
static void sort_locations_by_country (GPtrArray *locations);
|
||||||
|
static const gchar * tz_data_file_get (const gchar *env, const gchar *defaultfile);
|
||||||
|
@@ -131,42 +128,10 @@ void parse_cities15000 (gpointer parsed_data,
|
||||||
|
cc_timezone_location_set_latitude(loc, g_ascii_strtod(parsed_data_v[4], NULL));
|
||||||
|
cc_timezone_location_set_longitude(loc, g_ascii_strtod(parsed_data_v[5], NULL));
|
||||||
|
|
||||||
|
-#ifdef __sun
|
||||||
|
- gchar *latstr, *lngstr, *p;
|
||||||
|
-
|
||||||
|
- latstr = g_strdup (parsed_data_v[1]);
|
||||||
|
- p = latstr + 1;
|
||||||
|
- while (*p != '-' && *p != '+') p++;
|
||||||
|
- lngstr = g_strdup (p);
|
||||||
|
- *p = '\0';
|
||||||
|
-
|
||||||
|
- if (parsed_data_v[3] && *parsed_data_v[3] == '-' && parsed_data_v[4])
|
||||||
|
- loc->comment = g_strdup (parsed_data_v[4]);
|
||||||
|
-
|
||||||
|
- if (parsed_data_v[3] && *parsed_data_v[3] != '-' && !islower(loc->zone)) {
|
||||||
|
- CcTimezoneLocation *locgrp;
|
||||||
|
-
|
||||||
|
- /* duplicate entry */
|
||||||
|
- locgrp = cc_timezone_location_new ();
|
||||||
|
- locgrp->country = g_strdup (parsed_data_v[0]);
|
||||||
|
- locgrp->en_name = NULL;
|
||||||
|
- locgrp->zone = g_strdup (parsed_data_v[3]);
|
||||||
|
- locgrp->latitude = convert_pos (latstr, 2);
|
||||||
|
- locgrp->longitude = convert_pos (lngstr, 3);
|
||||||
|
- locgrp->comment = (parsed_data_v[4]) ? g_strdup (parsed_data_v[4]) : NULL;
|
||||||
|
-
|
||||||
|
- g_ptr_array_add (ptr_array, (gpointer) locgrp);
|
||||||
|
- }
|
||||||
|
-#else
|
||||||
|
cc_timezone_location_set_comment(loc, NULL);
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
g_ptr_array_add (ptr_array, (gpointer) loc);
|
||||||
|
|
||||||
|
-#ifdef __sun
|
||||||
|
- g_free (latstr);
|
||||||
|
- g_free (lngstr);
|
||||||
|
-#endif
|
||||||
|
g_strfreev (parsed_data_v);
|
||||||
|
|
||||||
|
return;
|
||||||
|
@@ -350,7 +315,6 @@ tz_info_from_location (CcTimezoneLocation *loc)
|
||||||
|
curtime = time (NULL);
|
||||||
|
curzone = localtime (&curtime);
|
||||||
|
|
||||||
|
-#ifndef __sun
|
||||||
|
/* Currently this solution doesnt seem to work - I get that */
|
||||||
|
/* America/Phoenix uses daylight savings, which is wrong */
|
||||||
|
tzinfo->tzname_normal = g_strdup (curzone->tm_zone);
|
||||||
|
@@ -361,11 +325,6 @@ tz_info_from_location (CcTimezoneLocation *loc)
|
||||||
|
tzinfo->tzname_daylight = NULL;
|
||||||
|
|
||||||
|
tzinfo->utc_offset = curzone->tm_gmtoff;
|
||||||
|
-#else
|
||||||
|
- tzinfo->tzname_normal = NULL;
|
||||||
|
- tzinfo->tzname_daylight = NULL;
|
||||||
|
- tzinfo->utc_offset = 0;
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
tzinfo->daylight = curzone->tm_isdst;
|
||||||
|
|
||||||
|
@@ -397,30 +356,8 @@ tz_data_file_get (const gchar *env, const gchar *defaultfile)
|
||||||
|
return filename ? filename : defaultfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef __sun
|
||||||
|
-static float
|
||||||
|
-convert_pos (gchar *pos, int digits)
|
||||||
|
-{
|
||||||
|
- gchar whole[10];
|
||||||
|
- gchar *fraction;
|
||||||
|
- gint i;
|
||||||
|
- float t1, t2;
|
||||||
|
|
||||||
|
- if (!pos || strlen(pos) < 4 || digits > 9) return 0.0;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < digits + 1; i++) whole[i] = pos[i];
|
||||||
|
- whole[i] = '\0';
|
||||||
|
- fraction = pos + digits + 1;
|
||||||
|
-
|
||||||
|
- t1 = g_strtod (whole, NULL);
|
||||||
|
- t2 = g_strtod (fraction, NULL);
|
||||||
|
-
|
||||||
|
- if (t1 >= 0.0) return t1 + t2/pow (10.0, strlen(fraction));
|
||||||
|
- else return t1 - t2/pow (10.0, strlen(fraction));
|
||||||
|
-}
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
- static int
|
||||||
|
+static int
|
||||||
|
compare_country_names (const void *a, const void *b)
|
||||||
|
{
|
||||||
|
CcTimezoneLocation *tza = * (CcTimezoneLocation **) a;
|
||||||
|
diff --git a/src/tz.h b/src/tz.h
|
||||||
|
index 8d033de..b94a886 100644
|
||||||
|
--- a/src/tz.h
|
||||||
|
+++ b/src/tz.h
|
||||||
|
@@ -30,11 +30,7 @@
|
||||||
|
|
||||||
|
#include "cc-timezone-location.h"
|
||||||
|
|
||||||
|
-#ifndef __sun
|
||||||
|
-# define TZ_DATA_FILE "/usr/share/libtimezonemap/cities15000.txt"
|
||||||
|
-#else
|
||||||
|
-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
|
||||||
|
-#endif
|
||||||
|
+# define TZ_DATA_FILE "/usr/share/libtimezonemap/cities15000.txt"
|
||||||
|
|
||||||
|
# define ADMIN1_FILE "/usr/share/libtimezonemap/admin1Codes.txt"
|
||||||
|
# define COUNTRY_FILE "/usr/share/libtimezonemap/countryInfo.txt"
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
285
0010-Add-a-new-test-to-check-whether-all-zones-can-be-sel.patch
Normal file
285
0010-Add-a-new-test-to-check-whether-all-zones-can-be-sel.patch
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
From 830abfced87aefae3f574170a9948dcdc5d4bef2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Fri, 24 Jun 2016 14:26:13 -0400
|
||||||
|
Subject: [PATCH 10/24] Add a new test to check whether all zones can be
|
||||||
|
selected.
|
||||||
|
|
||||||
|
Since the answer is "no", add some additional city data to provide
|
||||||
|
locations for currently unclickable zones.
|
||||||
|
---
|
||||||
|
configure.ac | 3 +
|
||||||
|
src/Makefile.am | 22 +++++--
|
||||||
|
src/data/README | 5 ++
|
||||||
|
src/data/citiesExtra.txt | 5 ++
|
||||||
|
src/test-clickability.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
src/tz.h | 2 +-
|
||||||
|
7 files changed, 186 insertions(+), 5 deletions(-)
|
||||||
|
create mode 100644 src/data/citiesExtra.txt
|
||||||
|
create mode 100644 src/test-clickability.c
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 7e647f0..31f8ffa 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -61,6 +61,9 @@ PKG_CHECK_MODULES(LIBTIMEZONEMAP, gio-2.0 >= $GIO_REQUIRED_VERSION
|
||||||
|
librsvg-2.0)
|
||||||
|
LIBTIMEZONEMAP_LIBS="$LIBTIMEZONEMAP_LIBS $LIBM"
|
||||||
|
|
||||||
|
+# Extra requirements for tests
|
||||||
|
+PKG_CHECK_MODULES(LIBXML, libxml-2.0)
|
||||||
|
+
|
||||||
|
GOBJECT_INTROSPECTION_CHECK([0.6.7])
|
||||||
|
|
||||||
|
###########################
|
||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index 106f034..56e404a 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -5,10 +5,19 @@ dist_ui_DATA = \
|
||||||
|
data/olsen_map.png \
|
||||||
|
data/pin.png \
|
||||||
|
data/time_zones_countryInfo-orig.svg \
|
||||||
|
- data/cities15000.txt \
|
||||||
|
data/admin1Codes.txt \
|
||||||
|
data/countryInfo.txt
|
||||||
|
|
||||||
|
+nodist_ui_DATA = \
|
||||||
|
+ data/citiesInfo.txt
|
||||||
|
+
|
||||||
|
+dist_noinst_DATA = \
|
||||||
|
+ data/cities15000.txt \
|
||||||
|
+ data/citiesExtra.txt
|
||||||
|
+
|
||||||
|
+data/citiesInfo.txt: data/cities15000.txt data/citiesExtra.txt
|
||||||
|
+ cat data/cities15000.txt data/citiesExtra.txt > $@
|
||||||
|
+
|
||||||
|
tzdatadir = $(pkgdatadir)/
|
||||||
|
dist_tzdata_DATA = data/backward
|
||||||
|
|
||||||
|
@@ -25,19 +34,24 @@ noinst_PROGRAMS = test-timezone
|
||||||
|
|
||||||
|
all-local: check
|
||||||
|
|
||||||
|
-AM_TESTS_ENVIRONMENT = TZ_DATA_FILE=$(srcdir)/data/cities15000.txt ; \
|
||||||
|
+AM_TESTS_ENVIRONMENT = TZ_DATA_FILE=$(srcdir)/data/citiesInfo.txt ; \
|
||||||
|
ADMIN1_FILE=$(srcdir)/data/admin1Codes.txt ; \
|
||||||
|
COUNTRY_FILE=$(srcdir)/data/countryInfo.txt ; \
|
||||||
|
DATADIR=$(srcdir)/data ; \
|
||||||
|
export TZ_DATA_FILE ADMIN1_FILE COUNTRY_FILE DATADIR ;
|
||||||
|
|
||||||
|
-check_PROGRAMS = test-timezone
|
||||||
|
+check_PROGRAMS = test-timezone \
|
||||||
|
+ test-clickability
|
||||||
|
|
||||||
|
test_timezone_SOURCES = test-timezone.c
|
||||||
|
test_timezone_LDADD = $(LIBTIMEZONEMAP_LIBS) -lm libtimezonemap.la
|
||||||
|
test_timezone_CFLAGS = $(LIBTIMEZONEMAP_CFLAGS)
|
||||||
|
|
||||||
|
-TESTS = test-timezone
|
||||||
|
+test_clickability_SOURCES = test-clickability.c
|
||||||
|
+test_clickability_LDADD = $(LIBTIMEZONEMAP_LIBS) $(LIBXML_LIBS) libtimezonemap.la
|
||||||
|
+test_clickability_CFLAGS = $(LIBTIMEZONEMAP_CFLAGS) $(LIBXML_CFLAGS)
|
||||||
|
+
|
||||||
|
+TESTS = test-timezone test-clickability
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = libtimezonemap.la
|
||||||
|
|
||||||
|
diff --git a/src/data/README b/src/data/README
|
||||||
|
index 1b1a737..a643fc1 100644
|
||||||
|
--- a/src/data/README
|
||||||
|
+++ b/src/data/README
|
||||||
|
@@ -8,6 +8,11 @@ admin1Codes.txt, cities15000.txt, countryInfo.txt
|
||||||
|
These three files come from the geonames.org database. Simply find the files
|
||||||
|
in http://download.geonames.org/export/dump/ and copy them to this directory.
|
||||||
|
|
||||||
|
+citiesExtra.txt
|
||||||
|
+ These are additional cities with populations less than 15,000 used to
|
||||||
|
+ provide clickable locations for sparesly populated timezones. It consists of
|
||||||
|
+ extra lines from the geonames database.
|
||||||
|
+
|
||||||
|
backward
|
||||||
|
This file lists links between current time zone names and obsolete time zone
|
||||||
|
names. It comes from the tzdata at https://www.iana.org/time-zones
|
||||||
|
diff --git a/src/data/citiesExtra.txt b/src/data/citiesExtra.txt
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..1df5349
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/data/citiesExtra.txt
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+7521902 Tabwakea Village Tabwakea Village 2.01643 -157.48773 P PPL KI 02 KT 1881 6 Pacific/Kiritimati 2010-10-22
|
||||||
|
+8063344 Taiohae Taiohae Hakapehi -8.91093 -140.09972 P PPLA PF 04 1224 23 Pacific/Marquesas 2013-08-10
|
||||||
|
+4032824 Tuku Tuku Te Tuku -44.06667 -176.65 H STM NZ NZ 0 101 Pacific/Chatham 1993-12-30
|
||||||
|
+7731015 Eucla Airport Eucla Airport EUC,Eucla Airport,YECL -31.70674 128.87718 S AIRP AU 08 53080 0 7 Australia/Eucla 2014-11-09
|
||||||
|
+2159558 Lord Howe Island Lord Howe Island Ile Lord Howe,Lord Howe,Lord Howe Island,Lord Howe-eiland,Lord Howeoen,Lord Howeön,Lord-Howe-Eiland,Lord-Howe-Insel,Ostrov lorda Howa,Île Lord Howe,ロード・ハウ島 -31.55455 159.08246 T ISL AU 02 0 59 Australia/Lord_Howe 2015-06-01
|
||||||
|
diff --git a/src/test-clickability.c b/src/test-clickability.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..2784b60
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/test-clickability.c
|
||||||
|
@@ -0,0 +1,150 @@
|
||||||
|
+#include "config.h"
|
||||||
|
+#include "tz.h"
|
||||||
|
+
|
||||||
|
+#include <string.h>
|
||||||
|
+
|
||||||
|
+#include <libxml/tree.h>
|
||||||
|
+#include <libxml/parser.h>
|
||||||
|
+#include <libxml/xpath.h>
|
||||||
|
+#include <libxml/xpathInternals.h>
|
||||||
|
+
|
||||||
|
+/* For each offset png, check that there is at least one clickable location in
|
||||||
|
+ * the tzdb with the offset */
|
||||||
|
+int main(int argc, char **argv)
|
||||||
|
+{
|
||||||
|
+ TzDB *db;
|
||||||
|
+ GPtrArray *locs;
|
||||||
|
+ CcTimezoneLocation *loc;
|
||||||
|
+ TzInfo *info;
|
||||||
|
+ gdouble loc_offset;
|
||||||
|
+
|
||||||
|
+ xmlDocPtr doc;
|
||||||
|
+ xmlXPathContextPtr xpathCtx;
|
||||||
|
+ xmlXPathObjectPtr xpathObj;
|
||||||
|
+ xmlNodeSetPtr nodes;
|
||||||
|
+
|
||||||
|
+ const char *pixmap_dir;
|
||||||
|
+ gchar *path;
|
||||||
|
+
|
||||||
|
+ GError *error = NULL;
|
||||||
|
+ gchar *endptr;
|
||||||
|
+ gdouble timezone_offset;
|
||||||
|
+ int i, j;
|
||||||
|
+
|
||||||
|
+ int retval = 0;
|
||||||
|
+
|
||||||
|
+ if (argc == 2)
|
||||||
|
+ {
|
||||||
|
+ pixmap_dir = argv[1];
|
||||||
|
+ }
|
||||||
|
+ else if (argc == 1)
|
||||||
|
+ {
|
||||||
|
+ const char *datadir = g_getenv("DATADIR");
|
||||||
|
+ if (datadir != NULL)
|
||||||
|
+ {
|
||||||
|
+ pixmap_dir = datadir;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ pixmap_dir = "./data";
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ g_message("Usage: %s [PIXMAP DIRECTORY]", argv[0]);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (! g_file_test(pixmap_dir, G_FILE_TEST_IS_DIR))
|
||||||
|
+ {
|
||||||
|
+ g_message("Pixmap directory %s does not exist", pixmap_dir);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#if !GLIB_CHECK_VERSION(2, 35, 0)
|
||||||
|
+ g_type_init();
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ xmlInitParser ();
|
||||||
|
+ path = g_build_filename (pixmap_dir, "time_zones_countryInfo-orig.svg", NULL);
|
||||||
|
+ doc = xmlParseFile (path);
|
||||||
|
+ if (doc == NULL)
|
||||||
|
+ {
|
||||||
|
+ g_message("Unable to parse '%s'", path);
|
||||||
|
+ g_free (path);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ g_free (path);
|
||||||
|
+
|
||||||
|
+ /* Iterate over each layer, which can be found as <g> element wit
|
||||||
|
+ * inkscape:groupmode="layer" */
|
||||||
|
+ xpathCtx = xmlXPathNewContext(doc);
|
||||||
|
+ xmlXPathRegisterNs(xpathCtx, "svg", "http://www.w3.org/2000/svg");
|
||||||
|
+ xmlXPathRegisterNs(xpathCtx, "inkscape", "http://www.inkscape.org/namespaces/inkscape");
|
||||||
|
+
|
||||||
|
+ xpathObj = xmlXPathEvalExpression("//svg:g[@inkscape:groupmode = 'layer']", xpathCtx);
|
||||||
|
+ if (!xpathObj)
|
||||||
|
+ {
|
||||||
|
+ g_message("Unable to evaluate xpath");
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ nodes = xpathObj->nodesetval;
|
||||||
|
+ if (nodes == NULL)
|
||||||
|
+ {
|
||||||
|
+ g_message("Unable to find layers in SVG");
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ db = tz_load_db ();
|
||||||
|
+ locs = tz_get_locations (db);
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < nodes->nodeNr; i++)
|
||||||
|
+ {
|
||||||
|
+ char *id = xmlGetProp(nodes->nodeTab[i], "id");
|
||||||
|
+
|
||||||
|
+ if (id[0] != 'm' && id[0] != 'p')
|
||||||
|
+ {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ timezone_offset = g_ascii_strtod (id+1, &endptr);
|
||||||
|
+ if (*endptr != '\0')
|
||||||
|
+ {
|
||||||
|
+ g_message ("Unable to parse layer name %s", id);
|
||||||
|
+ retval = 1;
|
||||||
|
+ }
|
||||||
|
+ if (id[0] == 'm')
|
||||||
|
+ {
|
||||||
|
+ timezone_offset = -timezone_offset;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Look for a location in tzdb with the same offset */
|
||||||
|
+ loc_offset = G_MAXDOUBLE;
|
||||||
|
+ for (j = 0; j < locs->len; j++)
|
||||||
|
+ {
|
||||||
|
+ loc = locs->pdata[j];
|
||||||
|
+ info = tz_info_from_location (loc);
|
||||||
|
+ loc_offset = tz_location_get_utc_offset (loc)
|
||||||
|
+ / (60.0 * 60.0) + ((info->daylight) ? -1.0 : 0.0);
|
||||||
|
+
|
||||||
|
+ if (loc_offset == timezone_offset)
|
||||||
|
+ {
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (loc_offset != timezone_offset)
|
||||||
|
+ {
|
||||||
|
+ g_message ("Unable to find location for offset %.02f", timezone_offset);
|
||||||
|
+ retval = 1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ tz_db_free (db);
|
||||||
|
+ xmlXPathFreeObject(xpathObj);
|
||||||
|
+ xmlXPathFreeContext(xpathCtx);
|
||||||
|
+ xmlFreeDoc(doc);
|
||||||
|
+
|
||||||
|
+ return retval;
|
||||||
|
+}
|
||||||
|
diff --git a/src/tz.h b/src/tz.h
|
||||||
|
index b94a886..2b03e9e 100644
|
||||||
|
--- a/src/tz.h
|
||||||
|
+++ b/src/tz.h
|
||||||
|
@@ -30,7 +30,7 @@
|
||||||
|
|
||||||
|
#include "cc-timezone-location.h"
|
||||||
|
|
||||||
|
-# define TZ_DATA_FILE "/usr/share/libtimezonemap/cities15000.txt"
|
||||||
|
+# define TZ_DATA_FILE "/usr/share/libtimezonemap/citiesInfo.txt"
|
||||||
|
|
||||||
|
# define ADMIN1_FILE "/usr/share/libtimezonemap/admin1Codes.txt"
|
||||||
|
# define COUNTRY_FILE "/usr/share/libtimezonemap/countryInfo.txt"
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
17875
0011-Moved-Venezuela-to-4.patch
Normal file
17875
0011-Moved-Venezuela-to-4.patch
Normal file
File diff suppressed because one or more lines are too long
47
0012-Ignore-deprecation-warnings.patch
Normal file
47
0012-Ignore-deprecation-warnings.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From f6f42da8e0e5d4733ed2e703eb7000e2bea9879a Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Mon, 27 Jun 2016 17:59:16 -0400
|
||||||
|
Subject: [PATCH 12/24] Ignore deprecation warnings
|
||||||
|
|
||||||
|
---
|
||||||
|
src/cc-timezone-map.c | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index e0bf774..1e53eec 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -759,7 +759,9 @@ cc_timezone_map_realize (GtkWidget *widget)
|
||||||
|
|
||||||
|
gdk_window_set_user_data (window, widget);
|
||||||
|
|
||||||
|
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||||
|
cursor = gdk_cursor_new (GDK_HAND2);
|
||||||
|
+G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
gdk_window_set_cursor (window, cursor);
|
||||||
|
|
||||||
|
gtk_widget_set_window (widget, window);
|
||||||
|
@@ -818,14 +820,20 @@ cc_timezone_map_draw (GtkWidget *widget,
|
||||||
|
|
||||||
|
gtk_widget_get_allocation (widget, &alloc);
|
||||||
|
|
||||||
|
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||||
|
style = gtk_widget_get_style (widget);
|
||||||
|
+G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
|
||||||
|
/* Check if insensitive */
|
||||||
|
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||||
|
if (gtk_widget_get_state (widget) == GTK_STATE_INSENSITIVE)
|
||||||
|
alpha = 0.5;
|
||||||
|
+G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
|
||||||
|
/* paint background */
|
||||||
|
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||||
|
gdk_cairo_set_source_color (cr, &style->bg[gtk_widget_get_state (widget)]);
|
||||||
|
+G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
cairo_paint (cr);
|
||||||
|
cairo_set_source (cr, priv->background);
|
||||||
|
cairo_paint_with_alpha (cr, alpha);
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
26
0013-Fix-the-calculation-of-time-zone-offsets.patch
Normal file
26
0013-Fix-the-calculation-of-time-zone-offsets.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 47f652ae147a21d22827399eae26fea660a849cb Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Mon, 27 Jun 2016 18:30:54 -0400
|
||||||
|
Subject: [PATCH 13/24] Fix the calculation of time zone offsets.
|
||||||
|
|
||||||
|
g_get_real_time returns microseconds, not milliseconds.
|
||||||
|
---
|
||||||
|
src/cc-timezone-map.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index 1e53eec..31a4876 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -963,7 +963,7 @@ get_location_offset (CcTimezoneLocation *location)
|
||||||
|
|
||||||
|
/* Query the zone based on the current time, since otherwise the data
|
||||||
|
* may not make sense. */
|
||||||
|
- curtime = g_get_real_time () / 1000; /* convert to seconds */
|
||||||
|
+ curtime = g_get_real_time () / 1000000; /* convert to seconds */
|
||||||
|
interval = g_time_zone_find_interval (zone, G_TIME_TYPE_UNIVERSAL, curtime);
|
||||||
|
|
||||||
|
offset = g_time_zone_get_offset (zone, interval);
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
@ -0,0 +1,31 @@
|
|||||||
|
From 417cd20b127ae50ecd7d7ec793f56fb89364c28d Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Tue, 28 Jun 2016 11:29:55 -0400
|
||||||
|
Subject: [PATCH 14/24] Fix convert_longtitude_to_x for points on the far
|
||||||
|
right.
|
||||||
|
|
||||||
|
convert_longtitude_to_x was returning negative x values for longitudes
|
||||||
|
between -168 and -180. Wrap these back to the right side of the map,
|
||||||
|
instead.
|
||||||
|
---
|
||||||
|
src/cc-timezone-map.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index 31a4876..e64ec2b 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -777,6 +777,10 @@ convert_longtitude_to_x (gdouble longitude, gint map_width)
|
||||||
|
x = (map_width * (180.0 + longitude) / 360.0)
|
||||||
|
+ (map_width * xdeg_offset / 180.0);
|
||||||
|
|
||||||
|
+ /* If x is negative, wrap back to the beginning */
|
||||||
|
+ if (x < 0)
|
||||||
|
+ x = (gdouble) map_width + x;
|
||||||
|
+
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
52
0015-Make-all-private-functions-in-tz.c-static.patch
Normal file
52
0015-Make-all-private-functions-in-tz.c-static.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
From cfab41ba625306ecf2ebd93340c6e5f27dec2e03 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Fri, 8 Apr 2016 10:37:52 -0400
|
||||||
|
Subject: [PATCH 15/24] Make all private functions in tz.c static
|
||||||
|
|
||||||
|
---
|
||||||
|
src/tz.c | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tz.c b/src/tz.c
|
||||||
|
index 30f688d..7c216fa 100644
|
||||||
|
--- a/src/tz.c
|
||||||
|
+++ b/src/tz.c
|
||||||
|
@@ -40,7 +40,7 @@ static int compare_country_names (const void *a, const void *b);
|
||||||
|
static void sort_locations_by_country (GPtrArray *locations);
|
||||||
|
static const gchar * tz_data_file_get (const gchar *env, const gchar *defaultfile);
|
||||||
|
|
||||||
|
-void parse_file (const char * filename,
|
||||||
|
+static void parse_file (const char * filename,
|
||||||
|
const guint ncolumns,
|
||||||
|
GFunc func,
|
||||||
|
gpointer user_data)
|
||||||
|
@@ -65,7 +65,7 @@ void parse_file (const char * filename,
|
||||||
|
fclose (fh);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void parse_admin1Codes (gpointer parsed_data,
|
||||||
|
+static void parse_admin1Codes (gpointer parsed_data,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
gchar ** parsed_data_v = (gchar **) parsed_data;
|
||||||
|
@@ -79,7 +79,7 @@ void parse_admin1Codes (gpointer parsed_data,
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
-void parse_countrycode (gpointer parsed_data,
|
||||||
|
+static void parse_countrycode (gpointer parsed_data,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
gchar ** parsed_data_v = (gchar **) parsed_data;
|
||||||
|
@@ -98,7 +98,7 @@ typedef struct Triple {
|
||||||
|
gpointer third;
|
||||||
|
} Triple;
|
||||||
|
|
||||||
|
-void parse_cities15000 (gpointer parsed_data,
|
||||||
|
+static void parse_cities15000 (gpointer parsed_data,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
gchar ** parsed_data_v = (gchar **) parsed_data;
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
1537
0016-Drop-the-map-of-tzdata-timezones.patch
Normal file
1537
0016-Drop-the-map-of-tzdata-timezones.patch
Normal file
File diff suppressed because it is too large
Load Diff
75
0017-Update-backward-to-the-version-in-tzdata-2016e.patch
Normal file
75
0017-Update-backward-to-the-version-in-tzdata-2016e.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
From 2a3d8de902ad2adbcf3e4968cad766289da51713 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Wed, 22 Jun 2016 13:08:36 -0400
|
||||||
|
Subject: [PATCH 17/24] Update backward to the version in tzdata 2016e
|
||||||
|
|
||||||
|
---
|
||||||
|
src/data/backward | 26 ++++++++++++++++----------
|
||||||
|
1 file changed, 16 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/data/backward b/src/data/backward
|
||||||
|
index f1f95a8..aab237a 100644
|
||||||
|
--- a/src/data/backward
|
||||||
|
+++ b/src/data/backward
|
||||||
|
@@ -1,13 +1,12 @@
|
||||||
|
-# <pre>
|
||||||
|
-# @(#)backward 8.9
|
||||||
|
# This file is in the public domain, so clarified as of
|
||||||
|
# 2009-05-17 by Arthur David Olson.
|
||||||
|
|
||||||
|
# This file provides links between current names for time zones
|
||||||
|
# and their old names. Many names changed in late 1993.
|
||||||
|
|
||||||
|
-Link Africa/Asmara Africa/Asmera
|
||||||
|
-Link Africa/Bamako Africa/Timbuktu
|
||||||
|
+# Link TARGET LINK-NAME
|
||||||
|
+Link Africa/Nairobi Africa/Asmera
|
||||||
|
+Link Africa/Abidjan Africa/Timbuktu
|
||||||
|
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||||
|
Link America/Adak America/Atka
|
||||||
|
Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||||
|
@@ -21,17 +20,24 @@ Link America/Argentina/Jujuy America/Jujuy
|
||||||
|
Link America/Indiana/Knox America/Knox_IN
|
||||||
|
Link America/Kentucky/Louisville America/Louisville
|
||||||
|
Link America/Argentina/Mendoza America/Mendoza
|
||||||
|
+Link America/Toronto America/Montreal
|
||||||
|
Link America/Rio_Branco America/Porto_Acre
|
||||||
|
Link America/Argentina/Cordoba America/Rosario
|
||||||
|
-Link America/St_Thomas America/Virgin
|
||||||
|
+Link America/Tijuana America/Santa_Isabel
|
||||||
|
+Link America/Denver America/Shiprock
|
||||||
|
+Link America/Port_of_Spain America/Virgin
|
||||||
|
+Link Pacific/Auckland Antarctica/South_Pole
|
||||||
|
Link Asia/Ashgabat Asia/Ashkhabad
|
||||||
|
-Link Asia/Chongqing Asia/Chungking
|
||||||
|
+Link Asia/Kolkata Asia/Calcutta
|
||||||
|
+Link Asia/Shanghai Asia/Chongqing
|
||||||
|
+Link Asia/Shanghai Asia/Chungking
|
||||||
|
Link Asia/Dhaka Asia/Dacca
|
||||||
|
+Link Asia/Shanghai Asia/Harbin
|
||||||
|
+Link Asia/Urumqi Asia/Kashgar
|
||||||
|
Link Asia/Kathmandu Asia/Katmandu
|
||||||
|
-Link Asia/Kolkata Asia/Calcutta
|
||||||
|
Link Asia/Macau Asia/Macao
|
||||||
|
-Link Asia/Jerusalem Asia/Tel_Aviv
|
||||||
|
Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||||
|
+Link Asia/Jerusalem Asia/Tel_Aviv
|
||||||
|
Link Asia/Thimphu Asia/Thimbu
|
||||||
|
Link Asia/Makassar Asia/Ujung_Pandang
|
||||||
|
Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||||
|
@@ -89,10 +95,10 @@ Link Pacific/Auckland NZ
|
||||||
|
Link Pacific/Chatham NZ-CHAT
|
||||||
|
Link America/Denver Navajo
|
||||||
|
Link Asia/Shanghai PRC
|
||||||
|
+Link Pacific/Pohnpei Pacific/Ponape
|
||||||
|
Link Pacific/Pago_Pago Pacific/Samoa
|
||||||
|
-Link Pacific/Chuuk Pacific/Yap
|
||||||
|
Link Pacific/Chuuk Pacific/Truk
|
||||||
|
-Link Pacific/Pohnpei Pacific/Ponape
|
||||||
|
+Link Pacific/Chuuk Pacific/Yap
|
||||||
|
Link Europe/Warsaw Poland
|
||||||
|
Link Europe/Lisbon Portugal
|
||||||
|
Link Asia/Taipei ROC
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
157
0018-Improve-the-location-selected-when-setting-the-timez.patch
Normal file
157
0018-Improve-the-location-selected-when-setting-the-timez.patch
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
From 4c87463e3b663b413c3be899bb15891aa7f0ee43 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Tue, 28 Jun 2016 13:49:14 -0400
|
||||||
|
Subject: [PATCH 18/24] Improve the location selected when setting the timezone
|
||||||
|
by name.
|
||||||
|
|
||||||
|
When setting the timezone from a name (e.g., Australia/Brisbane), try to
|
||||||
|
find the city that matches the timezone name. That way, in our example,
|
||||||
|
the pin will appear on Brisbane and not just some random city in eastern
|
||||||
|
Australia.
|
||||||
|
|
||||||
|
In addition, when cc_timezone_map_set_timezone is called for an unknown
|
||||||
|
timezone, set the offset highlight based on glib's view of timezones
|
||||||
|
(since this may be a low-population timezone without city data) and
|
||||||
|
unset the location.
|
||||||
|
---
|
||||||
|
src/cc-timezone-map.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||||
|
1 file changed, 100 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index 11b14ea..5e4c210 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -28,6 +28,7 @@
|
||||||
|
#include <math.h>
|
||||||
|
#include "tz.h"
|
||||||
|
#include <librsvg/rsvg.h>
|
||||||
|
+#include <string.h>
|
||||||
|
|
||||||
|
G_DEFINE_TYPE (CcTimezoneMap, cc_timezone_map, GTK_TYPE_WIDGET)
|
||||||
|
|
||||||
|
@@ -817,10 +818,42 @@ cc_timezone_map_set_timezone (CcTimezoneMap *map,
|
||||||
|
const gchar *timezone)
|
||||||
|
{
|
||||||
|
GPtrArray *locations;
|
||||||
|
+ GList *zone_locations = NULL;
|
||||||
|
+ GList *location_node = NULL;
|
||||||
|
guint i;
|
||||||
|
- char *real_tz;
|
||||||
|
+ const char *real_tz;
|
||||||
|
+ const char *tz_city_start;
|
||||||
|
+ char *tz_city;
|
||||||
|
+ char *tmp;
|
||||||
|
+ gboolean found_location = FALSE;
|
||||||
|
|
||||||
|
real_tz = g_hash_table_lookup (map->priv->alias_db, timezone);
|
||||||
|
+ if (!real_tz)
|
||||||
|
+ real_tz = timezone;
|
||||||
|
+
|
||||||
|
+ tz_city_start = strrchr (timezone, '/');
|
||||||
|
+ if (tz_city_start)
|
||||||
|
+ {
|
||||||
|
+ /* Move to the first character after the / */
|
||||||
|
+ tz_city_start++;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ tz_city_start = real_tz;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ tz_city = g_strdup(tz_city_start);
|
||||||
|
+
|
||||||
|
+ /* Replace the underscores with spaces */
|
||||||
|
+ tmp = tz_city;
|
||||||
|
+ while (*tmp != '\0')
|
||||||
|
+ {
|
||||||
|
+ if (*tmp == '_')
|
||||||
|
+ {
|
||||||
|
+ *tmp = ' ';
|
||||||
|
+ }
|
||||||
|
+ tmp++;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
locations = tz_get_locations (map->priv->tzdb);
|
||||||
|
|
||||||
|
@@ -828,12 +861,76 @@ cc_timezone_map_set_timezone (CcTimezoneMap *map,
|
||||||
|
{
|
||||||
|
CcTimezoneLocation *loc = locations->pdata[i];
|
||||||
|
|
||||||
|
- if (!g_strcmp0 (cc_timezone_location_get_zone(loc), real_tz ? real_tz : timezone))
|
||||||
|
+ if (!g_strcmp0 (cc_timezone_location_get_zone (loc), real_tz))
|
||||||
|
{
|
||||||
|
- set_location (map, loc);
|
||||||
|
+ zone_locations = g_list_prepend (zone_locations, loc);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* No location found. Use GLib to set the highlight. g_time_zone_new always
|
||||||
|
+ * returns a GTimeZone, so invalid zones will just be offset 0.
|
||||||
|
+ */
|
||||||
|
+ if (zone_locations == NULL)
|
||||||
|
+ {
|
||||||
|
+ CcTimezoneLocation *test_location = cc_timezone_location_new ();
|
||||||
|
+ gdouble offset;
|
||||||
|
+
|
||||||
|
+ cc_timezone_location_set_zone (test_location, real_tz);
|
||||||
|
+ offset = get_location_offset (test_location);
|
||||||
|
+ g_object_unref (test_location);
|
||||||
|
+
|
||||||
|
+ set_location (map, NULL);
|
||||||
|
+ cc_timezone_map_set_selected_offset (map, offset);
|
||||||
|
+
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Look for a location with a name that either starts or ends with the name
|
||||||
|
+ * of the zone
|
||||||
|
+ */
|
||||||
|
+ location_node = zone_locations;
|
||||||
|
+ while (location_node != NULL)
|
||||||
|
+ {
|
||||||
|
+ const gchar *name = cc_timezone_location_get_en_name (location_node->data);
|
||||||
|
+ if (!strncmp (name, tz_city, strlen (tz_city)) ||
|
||||||
|
+ ((strlen(name) > strlen(tz_city)) &&
|
||||||
|
+ !strncmp (name + (strlen(name) - strlen(tz_city)), tz_city, strlen (tz_city))))
|
||||||
|
+ {
|
||||||
|
+ set_location (map, location_node->data);
|
||||||
|
+ found_location = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ location_node = location_node->next;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ /* If that didn't work, try by state */
|
||||||
|
+ if (!found_location)
|
||||||
|
+ {
|
||||||
|
+ location_node = zone_locations;
|
||||||
|
+ while (location_node != NULL)
|
||||||
|
+ {
|
||||||
|
+ const gchar *state = cc_timezone_location_get_state (location_node->data);
|
||||||
|
+
|
||||||
|
+ if ((state != NULL) &&
|
||||||
|
+ !strncmp (state, tz_city, strlen (tz_city)))
|
||||||
|
+ {
|
||||||
|
+ set_location (map, location_node->data);
|
||||||
|
+ found_location = TRUE;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ location_node = location_node->next;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* If nothing matched, just use the first location */
|
||||||
|
+ if (!found_location)
|
||||||
|
+ {
|
||||||
|
+ set_location (map, zone_locations->data);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g_list_free (zone_locations);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
24
0019-Removed-an-extra-line-from-p10.patch
Normal file
24
0019-Removed-an-extra-line-from-p10.patch
Normal file
File diff suppressed because one or more lines are too long
23
0020-Moved-Chile-back-an-hour.patch
Normal file
23
0020-Moved-Chile-back-an-hour.patch
Normal file
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
|||||||
From 9148e44277d558b6f0ca2882e8b511bc31c27f04 Mon Sep 17 00:00:00 2001
|
From c540bda8d9a3ae9079471cbe836af4463baede59 Mon Sep 17 00:00:00 2001
|
||||||
From: David Shea <dshea@redhat.com>
|
From: David Shea <dshea@redhat.com>
|
||||||
Date: Wed, 27 Nov 2013 11:22:42 -0500
|
Date: Wed, 27 Nov 2013 11:22:42 -0500
|
||||||
Subject: [PATCH 1/2] Added a glade catalog file.
|
Subject: [PATCH 21/24] Added a glade catalog file.
|
||||||
|
|
||||||
This allows CcTimezoneMap and CcTimezoneCompletion to be used in glade.
|
This allows CcTimezoneMap and CcTimezoneCompletion to be used in glade.
|
||||||
---
|
---
|
||||||
@ -26,10 +26,10 @@ index 960f89c..15740b2 100644
|
|||||||
DISTCHECK_CONFIGURE_FLAGS = --enable-localinstall
|
DISTCHECK_CONFIGURE_FLAGS = --enable-localinstall
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index 46d26cd..4c079fc 100644
|
index 31f8ffa..118e1a7 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -79,6 +79,7 @@ AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install all
|
@@ -85,6 +85,7 @@ AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install all
|
||||||
|
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
Makefile
|
Makefile
|
||||||
@ -99,5 +99,5 @@ index 0000000..a43e925
|
|||||||
+ </glade-widget-group>
|
+ </glade-widget-group>
|
||||||
+</glade-catalog>
|
+</glade-catalog>
|
||||||
--
|
--
|
||||||
1.9.0
|
2.5.5
|
||||||
|
|
207
0022-Fix-compiler-warnings.patch
Normal file
207
0022-Fix-compiler-warnings.patch
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
From 730120b2bfb81d2f65c0f8912c39c17ff3b5d2aa Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Wed, 29 Jun 2016 14:01:45 -0400
|
||||||
|
Subject: [PATCH 22/24] Fix compiler warnings
|
||||||
|
|
||||||
|
Remove unused code and cast around libxml signed char nitpickings
|
||||||
|
---
|
||||||
|
src/cc-timezone-location.c | 11 +---------
|
||||||
|
src/cc-timezone-map.c | 1 -
|
||||||
|
src/test-clickability.c | 23 ++++++++++++++-----
|
||||||
|
src/tz.c | 55 ----------------------------------------------
|
||||||
|
4 files changed, 18 insertions(+), 72 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cc-timezone-location.c b/src/cc-timezone-location.c
|
||||||
|
index 31ceb56..6fab52b 100644
|
||||||
|
--- a/src/cc-timezone-location.c
|
||||||
|
+++ b/src/cc-timezone-location.c
|
||||||
|
@@ -181,13 +181,6 @@ cc_timezone_location_dispose (GObject *object)
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
-cc_timezone_location_finalize (GObject *object)
|
||||||
|
-{
|
||||||
|
- CcTimezoneLocationPrivate *priv = CC_TIMEZONE_LOCATION (object)->priv;
|
||||||
|
- G_OBJECT_CLASS (cc_timezone_location_parent_class)->finalize (object);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void
|
||||||
|
cc_timezone_location_class_init (CcTimezoneLocationClass *klass)
|
||||||
|
{
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
|
@@ -196,7 +189,6 @@ cc_timezone_location_class_init (CcTimezoneLocationClass *klass)
|
||||||
|
object_class->get_property = cc_timezone_location_get_property;
|
||||||
|
object_class->set_property = cc_timezone_location_set_property;
|
||||||
|
object_class->dispose = cc_timezone_location_dispose;
|
||||||
|
- object_class->finalize = cc_timezone_location_finalize;
|
||||||
|
|
||||||
|
g_object_class_install_property(object_class,
|
||||||
|
PROP_COUNTRY,
|
||||||
|
@@ -271,8 +263,7 @@ cc_timezone_location_class_init (CcTimezoneLocationClass *klass)
|
||||||
|
|
||||||
|
static void
|
||||||
|
cc_timezone_location_init (CcTimezoneLocation *self) {
|
||||||
|
- CcTimezoneLocationPrivate *priv;
|
||||||
|
- priv = self->priv = TIMEZONE_LOCATION_PRIVATE (self);
|
||||||
|
+ self->priv = TIMEZONE_LOCATION_PRIVATE (self);
|
||||||
|
}
|
||||||
|
|
||||||
|
CcTimezoneLocation *
|
||||||
|
diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
|
||||||
|
index 5e4c210..1bad664 100644
|
||||||
|
--- a/src/cc-timezone-map.c
|
||||||
|
+++ b/src/cc-timezone-map.c
|
||||||
|
@@ -589,7 +589,6 @@ set_location (CcTimezoneMap *map,
|
||||||
|
CcTimezoneLocation *location)
|
||||||
|
{
|
||||||
|
CcTimezoneMapPrivate *priv = map->priv;
|
||||||
|
- TzInfo *info;
|
||||||
|
|
||||||
|
priv->location = location;
|
||||||
|
|
||||||
|
diff --git a/src/test-clickability.c b/src/test-clickability.c
|
||||||
|
index 2784b60..1fc8007 100644
|
||||||
|
--- a/src/test-clickability.c
|
||||||
|
+++ b/src/test-clickability.c
|
||||||
|
@@ -26,7 +26,6 @@ int main(int argc, char **argv)
|
||||||
|
const char *pixmap_dir;
|
||||||
|
gchar *path;
|
||||||
|
|
||||||
|
- GError *error = NULL;
|
||||||
|
gchar *endptr;
|
||||||
|
gdouble timezone_offset;
|
||||||
|
int i, j;
|
||||||
|
@@ -79,10 +78,22 @@ int main(int argc, char **argv)
|
||||||
|
/* Iterate over each layer, which can be found as <g> element wit
|
||||||
|
* inkscape:groupmode="layer" */
|
||||||
|
xpathCtx = xmlXPathNewContext(doc);
|
||||||
|
- xmlXPathRegisterNs(xpathCtx, "svg", "http://www.w3.org/2000/svg");
|
||||||
|
- xmlXPathRegisterNs(xpathCtx, "inkscape", "http://www.inkscape.org/namespaces/inkscape");
|
||||||
|
+ xmlXPathRegisterNs(
|
||||||
|
+ xpathCtx,
|
||||||
|
+ (const xmlChar *) "svg",
|
||||||
|
+ (const xmlChar *) "http://www.w3.org/2000/svg"
|
||||||
|
+ );
|
||||||
|
+ xmlXPathRegisterNs(
|
||||||
|
+ xpathCtx,
|
||||||
|
+ (const xmlChar *) "inkscape",
|
||||||
|
+ (const xmlChar *) "http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+ xpathObj = xmlXPathEvalExpression(
|
||||||
|
+ (const xmlChar *)"//svg:g[@inkscape:groupmode = 'layer']",
|
||||||
|
+ xpathCtx
|
||||||
|
+ );
|
||||||
|
|
||||||
|
- xpathObj = xmlXPathEvalExpression("//svg:g[@inkscape:groupmode = 'layer']", xpathCtx);
|
||||||
|
if (!xpathObj)
|
||||||
|
{
|
||||||
|
g_message("Unable to evaluate xpath");
|
||||||
|
@@ -101,14 +112,14 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
|
for (i = 0; i < nodes->nodeNr; i++)
|
||||||
|
{
|
||||||
|
- char *id = xmlGetProp(nodes->nodeTab[i], "id");
|
||||||
|
+ xmlChar *id = xmlGetProp(nodes->nodeTab[i], (const xmlChar *) "id");
|
||||||
|
|
||||||
|
if (id[0] != 'm' && id[0] != 'p')
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
- timezone_offset = g_ascii_strtod (id+1, &endptr);
|
||||||
|
+ timezone_offset = g_ascii_strtod ((gchar *) id+1, &endptr);
|
||||||
|
if (*endptr != '\0')
|
||||||
|
{
|
||||||
|
g_message ("Unable to parse layer name %s", id);
|
||||||
|
diff --git a/src/tz.c b/src/tz.c
|
||||||
|
index 7c216fa..3ec64a3 100644
|
||||||
|
--- a/src/tz.c
|
||||||
|
+++ b/src/tz.c
|
||||||
|
@@ -146,7 +146,6 @@ tz_load_db (void)
|
||||||
|
{
|
||||||
|
const gchar *tz_data_file, *admin1_file, *country_file;
|
||||||
|
TzDB *tz_db;
|
||||||
|
- char buf[4096];
|
||||||
|
|
||||||
|
tz_data_file = tz_data_file_get ("TZ_DATA_FILE", TZ_DATA_FILE);
|
||||||
|
if (!tz_data_file)
|
||||||
|
@@ -206,42 +205,6 @@ tz_db_free (TzDB *db)
|
||||||
|
g_free (db);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static gdouble
|
||||||
|
-convert_longtitude_to_x (gdouble longitude, gint map_width)
|
||||||
|
-{
|
||||||
|
- const gdouble xdeg_offset = -6;
|
||||||
|
- gdouble x;
|
||||||
|
-
|
||||||
|
- x = (map_width * (180.0 + longitude) / 360.0)
|
||||||
|
- + (map_width * xdeg_offset / 180.0);
|
||||||
|
-
|
||||||
|
- return x;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static gdouble
|
||||||
|
-radians (gdouble degrees)
|
||||||
|
-{
|
||||||
|
- return (degrees / 360.0) * G_PI * 2;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static gdouble
|
||||||
|
-convert_latitude_to_y (gdouble latitude, gdouble map_height)
|
||||||
|
-{
|
||||||
|
- gdouble bottom_lat = -59;
|
||||||
|
- gdouble top_lat = 81;
|
||||||
|
- gdouble top_per, y, full_range, top_offset, map_range;
|
||||||
|
-
|
||||||
|
- top_per = top_lat / 180.0;
|
||||||
|
- y = 1.25 * log (tan (G_PI_4 + 0.4 * radians (latitude)));
|
||||||
|
- full_range = 4.6068250867599998;
|
||||||
|
- top_offset = full_range * top_per;
|
||||||
|
- map_range = fabs (1.25 * log (tan (G_PI_4 + 0.4 * radians (bottom_lat))) - top_offset);
|
||||||
|
- y = fabs (y - top_offset);
|
||||||
|
- y = y / map_range;
|
||||||
|
- y = y * map_height;
|
||||||
|
- return y;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
GPtrArray *
|
||||||
|
tz_get_locations (TzDB *db)
|
||||||
|
{
|
||||||
|
@@ -263,9 +226,6 @@ tz_location_get_utc_offset (CcTimezoneLocation *loc)
|
||||||
|
gint
|
||||||
|
tz_location_set_locally (CcTimezoneLocation *loc)
|
||||||
|
{
|
||||||
|
- time_t curtime;
|
||||||
|
- struct tm *curzone;
|
||||||
|
- gboolean is_dst = FALSE;
|
||||||
|
gint correction = 0;
|
||||||
|
const gchar *zone;
|
||||||
|
|
||||||
|
@@ -273,22 +233,7 @@ tz_location_set_locally (CcTimezoneLocation *loc)
|
||||||
|
zone = cc_timezone_location_get_zone(loc);
|
||||||
|
g_return_val_if_fail (zone != NULL, 0);
|
||||||
|
|
||||||
|
- curtime = time (NULL);
|
||||||
|
- curzone = localtime (&curtime);
|
||||||
|
- is_dst = curzone->tm_isdst;
|
||||||
|
-
|
||||||
|
setenv ("TZ", zone, 1);
|
||||||
|
-#if 0
|
||||||
|
- curtime = time (NULL);
|
||||||
|
- curzone = localtime (&curtime);
|
||||||
|
-
|
||||||
|
- if (!is_dst && curzone->tm_isdst) {
|
||||||
|
- correction = (60 * 60);
|
||||||
|
- }
|
||||||
|
- else if (is_dst && !curzone->tm_isdst) {
|
||||||
|
- correction = 0;
|
||||||
|
- }
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
return correction;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
27
0023-Do-not-run-the-checks-as-part-of-make-all.patch
Normal file
27
0023-Do-not-run-the-checks-as-part-of-make-all.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From 59cbfb1facf908f04312e59ac9ac1d5a25da12f9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Wed, 29 Jun 2016 14:25:14 -0400
|
||||||
|
Subject: [PATCH 23/24] Do not run the checks as part of 'make all'
|
||||||
|
|
||||||
|
This breaks parallel make. The checks can (and should) be run separately
|
||||||
|
with 'make check'.
|
||||||
|
---
|
||||||
|
src/Makefile.am | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index afdb1ea..570b828 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -31,8 +31,6 @@ AM_CPPFLAGS = \
|
||||||
|
noinst_PROGRAMS = test-timezone
|
||||||
|
|
||||||
|
|
||||||
|
-all-local: check
|
||||||
|
-
|
||||||
|
AM_TESTS_ENVIRONMENT = TZ_DATA_FILE=$(srcdir)/data/citiesInfo.txt ; \
|
||||||
|
ADMIN1_FILE=$(srcdir)/data/admin1Codes.txt ; \
|
||||||
|
COUNTRY_FILE=$(srcdir)/data/countryInfo.txt ; \
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
39
0024-Fix-issues-with-make-distcheck.patch
Normal file
39
0024-Fix-issues-with-make-distcheck.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From b7714717a6073e7d8696737b1366aa2628182bc5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Shea <dshea@redhat.com>
|
||||||
|
Date: Wed, 29 Jun 2016 14:30:04 -0400
|
||||||
|
Subject: [PATCH 24/24] Fix issues with 'make distcheck'
|
||||||
|
|
||||||
|
Ensure that citiesInfo is written to, read from, and cleaned from
|
||||||
|
$builddir.
|
||||||
|
---
|
||||||
|
src/Makefile.am | 7 +++++--
|
||||||
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index 570b828..40a1f0b 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -15,7 +15,10 @@ dist_noinst_DATA = \
|
||||||
|
data/citiesExtra.txt
|
||||||
|
|
||||||
|
data/citiesInfo.txt: data/cities15000.txt data/citiesExtra.txt
|
||||||
|
- cat data/cities15000.txt data/citiesExtra.txt > $@
|
||||||
|
+ @$(MKDIR_P) $(builddir)/data
|
||||||
|
+ $(AM_V_GEN)cat $(srcdir)/data/cities15000.txt $(srcdir)/data/citiesExtra.txt > $@
|
||||||
|
+
|
||||||
|
+CLEANFILES = data/citiesInfo.txt
|
||||||
|
|
||||||
|
tzdatadir = $(pkgdatadir)/
|
||||||
|
dist_tzdata_DATA = data/backward
|
||||||
|
@@ -31,7 +34,7 @@ AM_CPPFLAGS = \
|
||||||
|
noinst_PROGRAMS = test-timezone
|
||||||
|
|
||||||
|
|
||||||
|
-AM_TESTS_ENVIRONMENT = TZ_DATA_FILE=$(srcdir)/data/citiesInfo.txt ; \
|
||||||
|
+AM_TESTS_ENVIRONMENT = TZ_DATA_FILE=$(builddir)/data/citiesInfo.txt ; \
|
||||||
|
ADMIN1_FILE=$(srcdir)/data/admin1Codes.txt ; \
|
||||||
|
COUNTRY_FILE=$(srcdir)/data/countryInfo.txt ; \
|
||||||
|
DATADIR=$(srcdir)/data ; \
|
||||||
|
--
|
||||||
|
2.5.5
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: libtimezonemap
|
Name: libtimezonemap
|
||||||
Version: 0.4.5
|
Version: 0.4.5
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Time zone map widget for Gtk+
|
Summary: Time zone map widget for Gtk+
|
||||||
|
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -8,8 +8,33 @@ License: GPLv3
|
|||||||
URL: https://launchpad.net/timezonemap
|
URL: https://launchpad.net/timezonemap
|
||||||
Source0: http://archive.ubuntu.com/ubuntu/pool/main/libt/libtimezonemap/%{name}_%{version}.tar.gz
|
Source0: http://archive.ubuntu.com/ubuntu/pool/main/libt/libtimezonemap/%{name}_%{version}.tar.gz
|
||||||
|
|
||||||
# From lp:~dshea/timezonemap/glade-catalog
|
# Flattened versions of diff from https://github.com/dashea/timezonemap
|
||||||
Patch1: 0001-Added-a-glade-catalog-file.patch
|
# The .bzrignore chunks have also been removed, since the source archive
|
||||||
|
# does not contain .bzrignore.
|
||||||
|
Patch1: 0001-Allow-the-image-data-directory-to-be-overridden.patch
|
||||||
|
Patch2: 0002-Render-the-map-directly-from-the-SVG.patch
|
||||||
|
Patch3: 0003-Optimize-the-SVG.patch
|
||||||
|
Patch4: 0004-Fix-memory-leaks-in-tz.c.patch
|
||||||
|
Patch5: 0005-Fix-an-invalid-memory-access.patch
|
||||||
|
Patch6: 0006-Do-not-use-tz_location_get_utc_offset.patch
|
||||||
|
Patch7: 0007-Make-the-test-program-more-automake-y.patch
|
||||||
|
Patch8: 0008-Move-all-of-the-data-into-one-place.patch
|
||||||
|
Patch9: 0009-Remove-the-sun-specific-tzdata-path.patch
|
||||||
|
Patch10: 0010-Add-a-new-test-to-check-whether-all-zones-can-be-sel.patch
|
||||||
|
Patch11: 0011-Moved-Venezuela-to-4.patch
|
||||||
|
Patch12: 0012-Ignore-deprecation-warnings.patch
|
||||||
|
Patch13: 0013-Fix-the-calculation-of-time-zone-offsets.patch
|
||||||
|
Patch14: 0014-Fix-convert_longtitude_to_x-for-points-on-the-far-ri.patch
|
||||||
|
Patch15: 0015-Make-all-private-functions-in-tz.c-static.patch
|
||||||
|
Patch16: 0016-Drop-the-map-of-tzdata-timezones.patch
|
||||||
|
Patch17: 0017-Update-backward-to-the-version-in-tzdata-2016e.patch
|
||||||
|
Patch18: 0018-Improve-the-location-selected-when-setting-the-timez.patch
|
||||||
|
Patch19: 0019-Removed-an-extra-line-from-p10.patch
|
||||||
|
Patch20: 0020-Moved-Chile-back-an-hour.patch
|
||||||
|
Patch21: 0021-Added-a-glade-catalog-file.patch
|
||||||
|
Patch22: 0022-Fix-compiler-warnings.patch
|
||||||
|
Patch23: 0023-Do-not-run-the-checks-as-part-of-make-all.patch
|
||||||
|
Patch24: 0024-Fix-issues-with-make-distcheck.patch
|
||||||
|
|
||||||
BuildRequires: glib2-devel >= 2.26
|
BuildRequires: glib2-devel >= 2.26
|
||||||
BuildRequires: gtk3-devel >= 3.1.4
|
BuildRequires: gtk3-devel >= 3.1.4
|
||||||
@ -17,6 +42,10 @@ BuildRequires: json-glib-devel
|
|||||||
BuildRequires: gobject-introspection-devel
|
BuildRequires: gobject-introspection-devel
|
||||||
BuildRequires: gnome-common
|
BuildRequires: gnome-common
|
||||||
BuildRequires: libsoup-devel >= 2.42.0
|
BuildRequires: libsoup-devel >= 2.42.0
|
||||||
|
BuildRequires: librsvg2-devel
|
||||||
|
|
||||||
|
# For applying the patches
|
||||||
|
BuildRequires: git
|
||||||
|
|
||||||
%description
|
%description
|
||||||
libtimezonemap is a time zone map widget for Gtk+. The widget displays a world
|
libtimezonemap is a time zone map widget for Gtk+. The widget displays a world
|
||||||
@ -36,8 +65,7 @@ libtimezonemap is a time zone map widget for Gtk+. This package contains header
|
|||||||
files used for building applications that use %{name}.
|
files used for building applications that use %{name}.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%autosetup -S git
|
||||||
%patch1 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
@ -48,6 +76,9 @@ make %{?_smp_mflags}
|
|||||||
make install DESTDIR=%{buildroot}
|
make install DESTDIR=%{buildroot}
|
||||||
rm -f %{buildroot}%{_libdir}/*.la
|
rm -f %{buildroot}%{_libdir}/*.la
|
||||||
|
|
||||||
|
%check
|
||||||
|
make check
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
%post -p /sbin/ldconfig
|
||||||
|
|
||||||
%postun -p /sbin/ldconfig
|
%postun -p /sbin/ldconfig
|
||||||
@ -67,6 +98,21 @@ rm -f %{buildroot}%{_libdir}/*.la
|
|||||||
%{_datadir}/glade/catalogs/TimezoneMap.xml
|
%{_datadir}/glade/catalogs/TimezoneMap.xml
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 29 2016 David Shea <dshea@redhat.com> - 0.4.5-3
|
||||||
|
- Render the map directly from SVG (#1335158)
|
||||||
|
- Fix memory leaks in tz.c
|
||||||
|
- Fix an invalid memory access
|
||||||
|
- Do not modify TZ in the process environment
|
||||||
|
- Move all data files to /usr/share/libtimezonemap from .../libtimezonemap/ui
|
||||||
|
- Add extra city data so all timezone offsets are clickable
|
||||||
|
- Move Venezuela from -04:30 to -04:00
|
||||||
|
- Fix the conversion of points just west of 180 longitude
|
||||||
|
- Remove the out-of-date Olson map data
|
||||||
|
- Update the "backward" file
|
||||||
|
- Improve the location selected when setting the timezone by name (#1322648)
|
||||||
|
- Remove an extra line in the +10:00 layer
|
||||||
|
- Move Chile back an hour
|
||||||
|
|
||||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.5-2
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.5-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user