Date: Wednesday, March 24, 2021 @ 19:56:01 Author: heftig Revision: 410849
40beta+26+gec58e8b0-1 Modified: libgweather/trunk/PKGBUILD Deleted: libgweather/trunk/0001-metno-Use-compat-2.0-API.patch libgweather/trunk/0002-metno-Use-GNOME-specific-subdomain.patch libgweather/trunk/0003-metno-Use-as-arguments-separator-in-query.patch libgweather/trunk/0004-metno-Use-alphabetical-2.0-symbol-codes.patch libgweather/trunk/0005-gweather-Only-use-4-significant-decimals-for-locatio.patch -----------------------------------------------------------------+ 0001-metno-Use-compat-2.0-API.patch | 41 - 0002-metno-Use-GNOME-specific-subdomain.patch | 33 - 0003-metno-Use-as-arguments-separator-in-query.patch | 27 - 0004-metno-Use-alphabetical-2.0-symbol-codes.patch | 163 ------- 0005-gweather-Only-use-4-significant-decimals-for-locatio.patch | 214 ---------- PKGBUILD | 32 - 6 files changed, 9 insertions(+), 501 deletions(-) Deleted: 0001-metno-Use-compat-2.0-API.patch =================================================================== --- 0001-metno-Use-compat-2.0-API.patch 2021-03-24 19:51:03 UTC (rev 410848) +++ 0001-metno-Use-compat-2.0-API.patch 2021-03-24 19:56:01 UTC (rev 410849) @@ -1,41 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera <[email protected]> -Date: Thu, 7 Jan 2021 15:14:40 +0100 -Subject: [PATCH] metno: Use compat 2.0 API - -Version 1.9, which we were using, was deprecated and will be removed soon, -so migrate to the compat XML output of the v2.0 API. - -Closes: #65 ---- - libgweather/weather-yrno.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/libgweather/weather-yrno.c b/libgweather/weather-yrno.c -index 8324121f..f41cbe68 100644 ---- a/libgweather/weather-yrno.c -+++ b/libgweather/weather-yrno.c -@@ -37,7 +37,7 @@ - - #define XC(t) ((const xmlChar *)(t)) - --/* Reference for symbols at http://om.yr.no/forklaring/symbol/ */ -+/* Reference for symbols at https://api.met.no/weatherapi/weathericon/2.0/ */ - typedef struct { - int code; - GWeatherSky sky; -@@ -443,12 +443,12 @@ yrno_start_open (GWeatherInfo *info) - if (!loc->latlon_valid) - return FALSE; - -- /* see the description here: https://api.met.no/ */ -+ /* see the description here: https://api.met.no/weatherapi/locationforecast/2.0/documentation */ - - g_ascii_dtostr (latstr, sizeof(latstr), RADIANS_TO_DEGREES (loc->latitude)); - g_ascii_dtostr (lonstr, sizeof(lonstr), RADIANS_TO_DEGREES (loc->longitude)); - -- url = g_strdup_printf("https://api.met.no/weatherapi/locationforecast/1.9/?lat=%s;lon=%s", latstr, lonstr); -+ url = g_strdup_printf("https://api.met.no/weatherapi/locationforecast/2.0/classic?lat=%s;lon=%s", latstr, lonstr); - g_debug ("yrno_start_open, requesting: %s", url); - - message = soup_message_new ("GET", url); Deleted: 0002-metno-Use-GNOME-specific-subdomain.patch =================================================================== --- 0002-metno-Use-GNOME-specific-subdomain.patch 2021-03-24 19:51:03 UTC (rev 410848) +++ 0002-metno-Use-GNOME-specific-subdomain.patch 2021-03-24 19:56:01 UTC (rev 410849) @@ -1,33 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera <[email protected]> -Date: Tue, 12 Jan 2021 14:21:21 +0100 -Subject: [PATCH] metno: Use GNOME-specific subdomain - -This allows the API provider to track libgweather usage. ---- - libgweather/weather-yrno.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/libgweather/weather-yrno.c b/libgweather/weather-yrno.c -index f41cbe68..c8570abf 100644 ---- a/libgweather/weather-yrno.c -+++ b/libgweather/weather-yrno.c -@@ -37,6 +37,9 @@ - - #define XC(t) ((const xmlChar *)(t)) - -+/* As per https://gitlab.gnome.org/GNOME/libgweather/-/issues/59#note_1004747 */ -+#define API_ENDPOINT_DOMAIN "aa037rv1tsaszxi6o.api.met.no" -+ - /* Reference for symbols at https://api.met.no/weatherapi/weathericon/2.0/ */ - typedef struct { - int code; -@@ -448,7 +451,7 @@ yrno_start_open (GWeatherInfo *info) - g_ascii_dtostr (latstr, sizeof(latstr), RADIANS_TO_DEGREES (loc->latitude)); - g_ascii_dtostr (lonstr, sizeof(lonstr), RADIANS_TO_DEGREES (loc->longitude)); - -- url = g_strdup_printf("https://api.met.no/weatherapi/locationforecast/2.0/classic?lat=%s;lon=%s", latstr, lonstr); -+ url = g_strdup_printf("https://" API_ENDPOINT_DOMAIN "/weatherapi/locationforecast/2.0/classic?lat=%s;lon=%s", latstr, lonstr); - g_debug ("yrno_start_open, requesting: %s", url); - - message = soup_message_new ("GET", url); Deleted: 0003-metno-Use-as-arguments-separator-in-query.patch =================================================================== --- 0003-metno-Use-as-arguments-separator-in-query.patch 2021-03-24 19:51:03 UTC (rev 410848) +++ 0003-metno-Use-as-arguments-separator-in-query.patch 2021-03-24 19:56:01 UTC (rev 410849) @@ -1,27 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera <[email protected]> -Date: Tue, 12 Jan 2021 14:22:28 +0100 -Subject: [PATCH] metno: Use "&" as arguments separator in query - -According to the HTML5 spec ";" is no longer allowed. This was -automatically rewritten in Varnish, but was temporary measure -and was likely to disappear if on cache/load balancer change. - -Closes: #72 ---- - libgweather/weather-yrno.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libgweather/weather-yrno.c b/libgweather/weather-yrno.c -index c8570abf..9bd974db 100644 ---- a/libgweather/weather-yrno.c -+++ b/libgweather/weather-yrno.c -@@ -451,7 +451,7 @@ yrno_start_open (GWeatherInfo *info) - g_ascii_dtostr (latstr, sizeof(latstr), RADIANS_TO_DEGREES (loc->latitude)); - g_ascii_dtostr (lonstr, sizeof(lonstr), RADIANS_TO_DEGREES (loc->longitude)); - -- url = g_strdup_printf("https://" API_ENDPOINT_DOMAIN "/weatherapi/locationforecast/2.0/classic?lat=%s;lon=%s", latstr, lonstr); -+ url = g_strdup_printf("https://" API_ENDPOINT_DOMAIN "/weatherapi/locationforecast/2.0/classic?lat=%s&lon=%s", latstr, lonstr); - g_debug ("yrno_start_open, requesting: %s", url); - - message = soup_message_new ("GET", url); Deleted: 0004-metno-Use-alphabetical-2.0-symbol-codes.patch =================================================================== --- 0004-metno-Use-alphabetical-2.0-symbol-codes.patch 2021-03-24 19:51:03 UTC (rev 410848) +++ 0004-metno-Use-alphabetical-2.0-symbol-codes.patch 2021-03-24 19:56:01 UTC (rev 410849) @@ -1,163 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= <[email protected]> -Date: Thu, 21 Jan 2021 05:12:21 +0100 -Subject: [PATCH] metno: Use alphabetical 2.0 symbol codes - -The numerical codes are deprecated and scheduled for removal, so -replace them with the non-deprecated alphabetical codes as listed -in https://api.met.no/weatherapi/weathericon/2.0/. - -https://gitlab.gnome.org/GNOME/libgweather/-/issues/67 ---- - libgweather/weather-yrno.c | 109 ++++++++++++++++++------------------- - 1 file changed, 53 insertions(+), 56 deletions(-) - -diff --git a/libgweather/weather-yrno.c b/libgweather/weather-yrno.c -index 9bd974db..7c89df2a 100644 ---- a/libgweather/weather-yrno.c -+++ b/libgweather/weather-yrno.c -@@ -42,53 +42,53 @@ - - /* Reference for symbols at https://api.met.no/weatherapi/weathericon/2.0/ */ - typedef struct { -- int code; -+ const char *code; - GWeatherSky sky; - GWeatherConditions condition; - } YrnoSymbol; - - static YrnoSymbol symbols[] = { -- { 1, GWEATHER_SKY_CLEAR, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* Sun */ -- { 2, GWEATHER_SKY_BROKEN, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* LightCloud */ -- { 3, GWEATHER_SKY_SCATTERED, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* PartlyCloudy */ -- { 4, GWEATHER_SKY_OVERCAST, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* Cloudy */ -- { 5, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_LIGHT } }, /* LightRainSun */ -- { 6, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* LightRainThunderSun */ -- { 7, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_NONE } }, /* SleetSun */ -- { 8, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_NONE } }, /* SnowSun */ -- { 9, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_LIGHT } }, /* SnowSun */ -- { 10, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_NONE } }, /* Rain */ -- { 11, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* RainThunder */ -- { 12, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_NONE } }, /* Sleet */ -- { 13, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_NONE } }, /* Snow */ -- { 14, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SnowThunder */ -- { 15, GWEATHER_SKY_CLEAR, { TRUE, GWEATHER_PHENOMENON_FOG, GWEATHER_QUALIFIER_NONE } }, /* Fog */ -- { 20, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SleetSunThunder */ -- { 21, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SnowSunThunder */ -- { 22, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* LightRainThunder */ -- { 23, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SleetThunder */ -- { 24, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* DrizzleThunderSun */ -- { 25, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* RainThunderSun */ -- { 26, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleetThunderSun */ -- { 27, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleetThunderSun */ -- { 28, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnowThunderSun */ -- { 29, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySnowThunderSun */ -- { 30, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* DrizzleThunder */ -- { 31, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleetThunder */ -- { 32, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleetThunder */ -- { 33, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnowThunder */ -- { 34, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySnowThunder */ -- { 40, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_NONE } }, /* DrizzleSun */ -- { 41, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_NONE } }, /* RainSun */ -- { 42, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleetSun */ -- { 43, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleetSun */ -- { 44, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnowSun */ -- { 45, GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySnowSun */ -- { 46, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_NONE } }, /* Drizzle */ -- { 47, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleet */ -- { 48, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleet */ -- { 49, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnow */ -- { 50, GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } } /* HeavySnow */ -+ { "clearsky", GWEATHER_SKY_CLEAR, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* Sun */ -+ { "fair", GWEATHER_SKY_BROKEN, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* LightCloud */ -+ { "partlycloudy", GWEATHER_SKY_SCATTERED, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* PartlyCloudy */ -+ { "cloudy", GWEATHER_SKY_OVERCAST, { FALSE, GWEATHER_PHENOMENON_NONE, GWEATHER_QUALIFIER_NONE } }, /* Cloudy */ -+ { "rainshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_LIGHT } }, /* LightRainSun */ -+ { "rainshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* LightRainThunderSun */ -+ { "sleetshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_NONE } }, /* SleetSun */ -+ { "snowshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_NONE } }, /* SnowSun */ -+ { "rain", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_LIGHT } }, /* SnowSun */ -+ { "heavyrain", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_NONE } }, /* Rain */ -+ { "heavyrainandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* RainThunder */ -+ { "sleet", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_NONE } }, /* Sleet */ -+ { "snow", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_NONE } }, /* Snow */ -+ { "snowandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SnowThunder */ -+ { "fog", GWEATHER_SKY_CLEAR, { TRUE, GWEATHER_PHENOMENON_FOG, GWEATHER_QUALIFIER_NONE } }, /* Fog */ -+ { "sleetshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SleetSunThunder */ -+ { "snowshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SnowSunThunder */ -+ { "rainandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* LightRainThunder */ -+ { "sleetandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* SleetThunder */ -+ { "lightrainshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* DrizzleThunderSun */ -+ { "heavyrainshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* RainThunderSun */ -+ { "lightssleetshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleetThunderSun */ -+ { "heavysleetshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleetThunderSun */ -+ { "lightssnowshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnowThunderSun */ -+ { "heavysnowshowersandthunder", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySnowThunderSun */ -+ { "lightrainandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_THUNDERSTORM } }, /* DrizzleThunder */ -+ { "lightsleetandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleetThunder */ -+ { "heavysleetandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleetThunder */ -+ { "lightsnowandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnowThunder */ -+ { "heavysnowandthunder", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySnowThunder */ -+ { "lightrainshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_NONE } }, /* DrizzleSun */ -+ { "heavyrainshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_RAIN, GWEATHER_QUALIFIER_NONE } }, /* RainSun */ -+ { "lightsleetshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleetSun */ -+ { "heavysleetshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleetSun */ -+ { "lightsnowshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnowSun */ -+ { "heavysnowshowers", GWEATHER_SKY_BROKEN, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySnowSun */ -+ { "lightrain", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_DRIZZLE, GWEATHER_QUALIFIER_NONE } }, /* Drizzle */ -+ { "lightsleet", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_LIGHT } }, /* LightSleet */ -+ { "heavysleet", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_ICE_PELLETS, GWEATHER_QUALIFIER_HEAVY } }, /* HeavySleet */ -+ { "lightsnow", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_LIGHT } }, /* LightSnow */ -+ { "heavysnow", GWEATHER_SKY_OVERCAST, { TRUE, GWEATHER_PHENOMENON_SNOW, GWEATHER_QUALIFIER_HEAVY } } /* HeavySnow */ - }; - - static struct { -@@ -149,37 +149,34 @@ date_to_time_t (const xmlChar *str, const char * tzid) - } - - static YrnoSymbol * --symbol_search (int code) -+symbol_search (const char *code) - { -- int a = 0; -- int b = G_N_ELEMENTS (symbols); -+ unsigned int i; - -- while (a < b) { -- int c = (a + b)/2; -- YrnoSymbol *yc = symbols + c; -+ for (i = 0; i < G_N_ELEMENTS (symbols); i++) { -+ YrnoSymbol *s = symbols + i; - -- if (yc->code == code) -- return yc; -- if (yc->code < code) -- a = c+1; -- else -- b = c; -+ if (strcmp (code, s->code) == 0) -+ return s; -+ -+ if (strstr (code, s->code) == code && code[strlen (s->code)] == '_') -+ return s; - } - - return NULL; - } - - static inline void - read_symbol (GWeatherInfo *info, - xmlNodePtr node) - { - xmlChar *val; - YrnoSymbol* symbol; - GWeatherInfoPrivate *priv = info->priv; - -- val = xmlGetProp (node, XC("number")); -+ val = xmlGetProp (node, XC("code")); - -- symbol = symbol_search (strtol ((char*) val, NULL, 0)); -+ symbol = symbol_search ((char *)val); - if (symbol != NULL) { - priv->valid = TRUE; - priv->sky = symbol->sky; Deleted: 0005-gweather-Only-use-4-significant-decimals-for-locatio.patch =================================================================== --- 0005-gweather-Only-use-4-significant-decimals-for-locatio.patch 2021-03-24 19:51:03 UTC (rev 410848) +++ 0005-gweather-Only-use-4-significant-decimals-for-locatio.patch 2021-03-24 19:56:01 UTC (rev 410849) @@ -1,214 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera <[email protected]> -Date: Thu, 7 Jan 2021 12:46:34 +0100 -Subject: [PATCH] gweather: Only use 4 significant decimals for locations - -1/1000th of a degree of longitude or latitude corresponds to around -100 meters. There's no reason for the weather to be any more precise -than this. - -See https://www.thoughtco.com/degree-of-latitude-and-longitude-distance-4070616 - -Closes: #69 ---- - libgweather/gweather-private.c | 21 ++++++++++++++++----- - libgweather/gweather-private.h | 3 +++ - libgweather/test_libgweather.c | 16 ++++++++++++++++ - libgweather/weather-iwin.c | 7 ++++--- - libgweather/weather-owm.c | 7 ++++--- - libgweather/weather-yrno.c | 7 ++++--- - 6 files changed, 47 insertions(+), 14 deletions(-) - -diff --git a/libgweather/gweather-private.c b/libgweather/gweather-private.c -index b214ad95..0ccc21b3 100644 ---- a/libgweather/gweather-private.c -+++ b/libgweather/gweather-private.c -@@ -22,8 +22,19 @@ - - #include "gweather-private.h" - --/* -- There is no code here: the purpose of this header is so that -- gnome-builder knows how to pick up the include flags to parse -- gweather-private.h properly. --*/ -+/* sign, 3 digits, separator, 4 decimals, nul-char */ -+#define DEGREES_STR_SIZE (1 + 3 + 1 + 4 + 1) -+ -+char * -+_radians_to_degrees_str (gdouble radians) -+{ -+ char *str; -+ double degrees; -+ -+ str = g_malloc0 (DEGREES_STR_SIZE); -+ /* Max 4 decimals */ -+ degrees = (double) ((int) (RADIANS_TO_DEGREES (radians) * 10000)) / 10000; -+ /* Too many digits */ -+ g_return_val_if_fail (degrees <= 1000 || degrees >= -1000, NULL); -+ return g_ascii_formatd (str, G_ASCII_DTOSTR_BUF_SIZE, "%g", degrees); -+} -diff --git a/libgweather/gweather-private.h b/libgweather/gweather-private.h -index ddf0a41a..be73768e 100644 ---- a/libgweather/gweather-private.h -+++ b/libgweather/gweather-private.h -@@ -167,6 +167,9 @@ struct _GWeatherInfoPrivate { - #define RADIANS_TO_DEGREES(rad) ((rad) * 180. / M_PI) - #define RADIANS_TO_HOURS(rad) ((rad) * 12. / M_PI) - -+GWEATHER_EXTERN -+char *_radians_to_degrees_str (gdouble radians); -+ - /* - * Planetary Mean Orbit and their progressions from J2000 are based on the - * values in http://ssd.jpl.nasa.gov/txt/aprx_pos_planets.pdf -diff --git a/libgweather/test_libgweather.c b/libgweather/test_libgweather.c -index 8a219115..e0e4b815 100644 ---- a/libgweather/test_libgweather.c -+++ b/libgweather/test_libgweather.c -@@ -26,6 +26,7 @@ - #include <gweather-version.h> - #include "gweather-location.h" - #include "gweather-weather.h" -+#include "gweather-private.h" - - extern void _gweather_location_reset_world (void); - -@@ -758,28 +759,43 @@ test_weather_loop_use_after_free (void) - g_main_loop_unref (loop); - } - -+static void -+test_radians_to_degrees_str (void) -+{ -+ char long_version[G_ASCII_DTOSTR_BUF_SIZE]; -+ g_autofree char *short_version = NULL; -+ double coord = 1.260765526077; -+ -+ g_ascii_dtostr (long_version, G_ASCII_DTOSTR_BUF_SIZE, RADIANS_TO_DEGREES (coord)); -+ short_version = _radians_to_degrees_str (coord); -+ -+ g_assert_cmpint (strlen (long_version), >, strlen (short_version)); -+ g_assert_cmpstr (short_version, ==, "72.2365"); -+} -+ - static void - log_handler (const char *log_domain, GLogLevelFlags log_level, const char *message, gpointer user_data) - { - g_print ("%s\n", message); - } - - int - main (int argc, char *argv[]) - { - setlocale (LC_ALL, ""); - - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("http://gitlab.gnome.org/GNOME/libgweather/issues/"); - - /* We need to handle log messages produced by g_message so they're interpreted correctly by the GTester framework */ - g_log_set_handler (NULL, G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG, log_handler, NULL); - - g_setenv ("LIBGWEATHER_LOCATIONS_PATH", - TEST_SRCDIR "../data/Locations.xml", - FALSE); - set_gsettings (); - -+ g_test_add_func ("/weather/radians-to-degrees_str", test_radians_to_degrees_str); - g_test_add_func ("/weather/named-timezones", test_named_timezones); - g_test_add_func ("/weather/named-timezones-deserialized", test_named_timezones_deserialized); - g_test_add_func ("/weather/no-code-serialize", test_no_code_serialize); -diff --git a/libgweather/weather-iwin.c b/libgweather/weather-iwin.c -index c3d414de..71020396 100644 ---- a/libgweather/weather-iwin.c -+++ b/libgweather/weather-iwin.c -@@ -353,31 +353,32 @@ iwin_start_open (GWeatherInfo *info) - SoupMessage *msg; - struct tm tm; - time_t now; -- gchar latstr[G_ASCII_DTOSTR_BUF_SIZE], lonstr[G_ASCII_DTOSTR_BUF_SIZE]; -+ g_autofree char *latstr = NULL; -+ g_autofree char *lonstr = NULL; - - g_assert (info != NULL); - - priv = info->priv; - loc = &priv->location; - - /* No zone (or -) means no weather information from national offices. - We don't actually use zone, but it's a good indicator of a US location. - (@ and : prefixes were used in the past for Australia and UK) */ - if (!loc->zone || loc->zone[0] == '-' || loc->zone[0] == '@' || loc->zone[0] == ':') { - g_debug ("iwin_start_open, ignoring location %s because zone '%s' has no weather info", - loc->name, loc->zone ? loc->zone : "(empty)"); - return FALSE; - } - - if (!loc->latlon_valid) - return FALSE; - - /* see the description here: http://www.weather.gov/forecasts/xml/ */ - now = time (NULL); - localtime_r (&now, &tm); - -- g_ascii_dtostr (latstr, sizeof(latstr), RADIANS_TO_DEGREES (loc->latitude)); -- g_ascii_dtostr (lonstr, sizeof(lonstr), RADIANS_TO_DEGREES (loc->longitude)); -+ latstr = _radians_to_degrees_str (loc->latitude); -+ lonstr = _radians_to_degrees_str (loc->longitude); - url = g_strdup_printf ("https://www.weather.gov/forecasts/xml/sample_products/browser_interface/ndfdBrowserClientByDay.php?&lat=%s&lon=%s&format=24+hourly&startDate=%04d-%02d-%02d&numDays=7", - latstr, lonstr, 1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday); - g_debug ("iwin_start_open, requesting: %s", url); -diff --git a/libgweather/weather-owm.c b/libgweather/weather-owm.c -index a58950c9..eb45f52f 100644 ---- a/libgweather/weather-owm.c -+++ b/libgweather/weather-owm.c -@@ -428,18 +428,19 @@ owm_start_open (GWeatherInfo *info) - gchar *url; - SoupMessage *message; - WeatherLocation *loc; -- gchar latstr[G_ASCII_DTOSTR_BUF_SIZE], lonstr[G_ASCII_DTOSTR_BUF_SIZE]; -+ g_autofree char *latstr = NULL; -+ g_autofree char *lonstr = NULL; - - priv = info->priv; - loc = &priv->location; - - if (!loc->latlon_valid) - return FALSE; - - /* see the description here: http://bugs.openweathermap.org/projects/api/wiki/Api_2_5_forecast */ - -- g_ascii_dtostr (latstr, sizeof(latstr), RADIANS_TO_DEGREES (loc->latitude)); -- g_ascii_dtostr (lonstr, sizeof(lonstr), RADIANS_TO_DEGREES (loc->longitude)); -+ latstr = _radians_to_degrees_str (loc->latitude); -+ lonstr = _radians_to_degrees_str (loc->longitude); - - #define TEMPLATE_START "https://api.openweathermap.org/data/2.5/forecast?lat=%s&lon=%s&mode=xml&units=metric" - #ifdef OWM_APIKEY -diff --git a/libgweather/weather-yrno.c b/libgweather/weather-yrno.c -index 7c89df2a..ef6d188b 100644 ---- a/libgweather/weather-yrno.c -+++ b/libgweather/weather-yrno.c -@@ -435,18 +435,19 @@ yrno_start_open (GWeatherInfo *info) - gchar *url; - SoupMessage *message; - WeatherLocation *loc; -- gchar latstr[G_ASCII_DTOSTR_BUF_SIZE], lonstr[G_ASCII_DTOSTR_BUF_SIZE]; -+ g_autofree char *latstr = NULL; -+ g_autofree char *lonstr = NULL; - - priv = info->priv; - loc = &priv->location; - - if (!loc->latlon_valid) - return FALSE; - - /* see the description here: https://api.met.no/weatherapi/locationforecast/2.0/documentation */ - -- g_ascii_dtostr (latstr, sizeof(latstr), RADIANS_TO_DEGREES (loc->latitude)); -- g_ascii_dtostr (lonstr, sizeof(lonstr), RADIANS_TO_DEGREES (loc->longitude)); -+ latstr = _radians_to_degrees_str (loc->latitude); -+ lonstr = _radians_to_degrees_str (loc->longitude); - - url = g_strdup_printf("https://" API_ENDPOINT_DOMAIN "/weatherapi/locationforecast/2.0/classic?lat=%s&lon=%s", latstr, lonstr); - g_debug ("yrno_start_open, requesting: %s", url); Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-03-24 19:51:03 UTC (rev 410848) +++ PKGBUILD 2021-03-24 19:56:01 UTC (rev 410849) @@ -1,41 +1,27 @@ -# Maintainer: Jan Alexander Steffens (heftig) <[email protected]> -# Maintainer: Jan de Groot <[email protected]> +# Maintainer: Jan Alexander Steffens (heftig) <[email protected]> +# Contributor: Jan de Groot <[email protected]> pkgname=libgweather -pkgver=3.36.1 -pkgrel=2 +pkgver=40beta+26+gec58e8b0 +pkgrel=1 pkgdesc="Location and timezone database and weather-lookup library" url="https://wiki.gnome.org/Projects/LibGWeather" arch=(x86_64) license=(LGPL) depends=(libsoup gtk3 geocode-glib dconf) -makedepends=(gobject-introspection vala git gtk-doc glade meson) +makedepends=(gobject-introspection vala git gtk-doc glade meson python-gobject) provides=(libgweather-3.so) -_commit=687c63f68b0a3561731889c14fb28ac5c52d5be0 # tags/3.36.1-fixed^0 -source=("git+https://gitlab.gnome.org/GNOME/libgweather.git#commit=$_commit" - 0001-metno-Use-compat-2.0-API.patch - 0002-metno-Use-GNOME-specific-subdomain.patch - 0003-metno-Use-as-arguments-separator-in-query.patch - 0004-metno-Use-alphabetical-2.0-symbol-codes.patch - 0005-gweather-Only-use-4-significant-decimals-for-locatio.patch) -sha256sums=('SKIP' - '52adc44450035384038c53583998592224c17f51e6872b12cb186f30d52cb5da' - 'bdb071f6af22a551eee6d2fc81e7cb19ab56048b6e898f4bc5b0b7cecd185722' - 'aa5050f1a36a17444c893346ab2343226e60bf273be95f94401f7124863d0e61' - '7a6fafa664f64c5ec1085abaacbc2ac384f0833df05550f3c8bbac671b1adb54' - 'ba2d2af73ae848350f2eb484cea12ee01b623e78273e5a4854ccee0ac81e4cde') +_commit=ec58e8b0f69ba779ed817cfe7992063aeb489dae # master +source=("git+https://gitlab.gnome.org/GNOME/libgweather.git#commit=$_commit") +sha256sums=('SKIP') pkgver() { cd $pkgname - git describe --tags | sed 's/-fixed//;s/-/+/g' + git describe --tags | sed 's/\.beta/beta/;s/-/+/g' } prepare() { cd $pkgname - - # Backport some changes to fix yr.no; patch selection taken from debian - # https://bugs.archlinux.org/task/69919 - git apply -3 ../*.patch } build() {
