Compare commits

..

No commits in common. 'c9' and 'i8c' have entirely different histories.
c9 ... i8c

2
.gitignore vendored

@ -1 +1 @@
SOURCES/libgweather-40.0.tar.xz
SOURCES/libgweather-3.28.2.tar.xz

@ -1 +1 @@
5f8be54bb68df8da1193323f17d69c3cb810214d SOURCES/libgweather-40.0.tar.xz
487493c68e35118eb1773de073124c4fcd5abf90 SOURCES/libgweather-3.28.2.tar.xz

@ -0,0 +1,41 @@
From 42c4136039af5bfb4cb0d351131994ea57577d7f Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 26 Aug 2019 14:55:12 +0300
Subject: [PATCH 1/7] GWeatherWeather: Always set a user-agent when doing
queries
This should fix IWIN queries not working (403) because it didn't
appreciate the lack of user-agent.
---
libgweather/gweather-weather.c | 2 ++
meson.build | 1 +
2 files changed, 3 insertions(+)
diff --git a/libgweather/gweather-weather.c b/libgweather/gweather-weather.c
index 571a3e0b..62543169 100644
--- a/libgweather/gweather-weather.c
+++ b/libgweather/gweather-weather.c
@@ -595,6 +595,8 @@ ref_session (void)
return g_object_ref (session);
session = soup_session_new ();
+ g_object_set (G_OBJECT (session), SOUP_SESSION_USER_AGENT,
+ "libgweather/" LIBGWEATHER_VERSION " (+https://gitlab.gnome.org/GNOME/libgweather/) ", NULL);
cache = get_cache ();
if (cache != NULL) {
diff --git a/meson.build b/meson.build
index 67261ad6..43490631 100644
--- a/meson.build
+++ b/meson.build
@@ -56,6 +56,7 @@ config_h.set_quoted('LOCALEDIR', join_paths(datadir, 'locale'))
config_h.set_quoted('GNOMELOCALEDIR', join_paths(datadir, 'locale'))
config_h.set_quoted('G_LOG_DOMAIN', 'GWeather')
config_h.set_quoted('GWEATHER_XML_LOCATION_DIR', pkgdatadir)
+config_h.set_quoted('LIBGWEATHER_VERSION', meson.project_version())
if c_compiler.has_member('struct tm', 'tm_gmtoff', prefix: '#include <time.h>')
config_h.set('HAVE_TM_TM_GMOFF', 1)
--
2.30.2

@ -0,0 +1,25 @@
From 3f2f1fd8ee361798dbe4e677978a40b748749b1d Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 26 Aug 2019 15:01:05 +0300
Subject: [PATCH 2/7] yrno: Link to met.no using HTTPS
---
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 39803b4e..d01075bf 100644
--- a/libgweather/weather-yrno.c
+++ b/libgweather/weather-yrno.c
@@ -504,7 +504,7 @@ parse_forecast_xml_new (GWeatherInfo *master_info,
That's very nice of them!
*/
- priv->forecast_attribution = g_strdup(_("Weather data from the <a href=\"http://www.met.no/\">Norwegian Meteorological Institute</a>"));
+ priv->forecast_attribution = g_strdup(_("Weather data from the <a href=\"https://www.met.no/\">Norwegian Meteorological Institute</a>"));
out:
xmlXPathFreeContext (xpath_ctx);
--
2.30.2

@ -0,0 +1,44 @@
From 3df75414d865829274ddc64d30ada98ca08fba3b Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Thu, 7 Jan 2021 15:14:40 +0100
Subject: [PATCH 3/7] 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 d01075bf..7a46fbae 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;
@@ -589,12 +589,12 @@ yrno_start_open_new (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);
message = soup_message_new ("GET", url);
_gweather_info_begin_request (info, message);
--
2.30.2

@ -0,0 +1,36 @@
From d304e911d09d52b763f2c11a4309d170d0597a86 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Tue, 12 Jan 2021 14:21:21 +0100
Subject: [PATCH 4/7] 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 7a46fbae..13ee8537 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;
@@ -594,7 +597,7 @@ yrno_start_open_new (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);
message = soup_message_new ("GET", url);
_gweather_info_begin_request (info, message);
--
2.30.2

@ -0,0 +1,30 @@
From 1e3706da2a737e78c879847d31c55226c990b338 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Tue, 12 Jan 2021 14:22:28 +0100
Subject: [PATCH 5/7] 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 13ee8537..e5c2e75a 100644
--- a/libgweather/weather-yrno.c
+++ b/libgweather/weather-yrno.c
@@ -597,7 +597,7 @@ yrno_start_open_new (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);
message = soup_message_new ("GET", url);
_gweather_info_begin_request (info, message);
--
2.30.2

@ -0,0 +1,162 @@
From 2305ae3d973355b632777dbe969efea91c4e7339 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 21 Jan 2021 05:12:21 +0100
Subject: [PATCH 6/7] 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 | 113 ++++++++++++++++++-------------------
1 file changed, 55 insertions(+), 58 deletions(-)
diff --git a/libgweather/weather-yrno.c b/libgweather/weather-yrno.c
index e5c2e75a..f32c772a 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,21 +149,18 @@ 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);
-
- while (a < b) {
- int c = (a + b)/2;
- YrnoSymbol *yc = symbols + c;
-
- if (yc->code == code)
- return yc;
- if (yc->code < code)
- a = c+1;
- else
- b = c;
+ unsigned int i;
+
+ for (i = 0; i < G_N_ELEMENTS (symbols); i++) {
+ YrnoSymbol *s = symbols + i;
+
+ if (strcmp (code, s->code) == 0)
+ return s;
+
+ if (strstr (code, s->code) == code && code[strlen (s->code)] == '_')
+ return s;
}
return NULL;
@@ -177,9 +174,9 @@ read_symbol (GWeatherInfo *info,
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;
--
2.30.2

@ -0,0 +1,66 @@
From 9e04624edff61f381365485565477f5302a2b93e Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Fri, 19 Mar 2021 15:45:52 -0500
Subject: [PATCH 7/7] weather: add app ID to HTTP user agent
met.no has requested we add the app ID even if we cannot provide
application contact info. See #82.
---
libgweather/gweather-weather.c | 34 ++++++++++++++++++++++++++++++++--
1 file changed, 32 insertions(+), 2 deletions(-)
diff --git a/libgweather/gweather-weather.c b/libgweather/gweather-weather.c
index 62543169..f81aa7e2 100644
--- a/libgweather/gweather-weather.c
+++ b/libgweather/gweather-weather.c
@@ -583,6 +583,37 @@ dump_and_unref_cache (SoupCache *cache)
static SoupSession *static_session;
+static const char *
+app_id (void)
+{
+ GApplication *app = g_application_get_default ();
+ const char *id;
+
+ if (app) {
+ id = g_application_get_application_id (app);
+ if (id)
+ return id;
+ }
+
+ return g_get_prgname ();
+}
+
+static char *
+compute_user_agent (void)
+{
+ return g_strdup_printf ("libgweather/%s (+https://gitlab.gnome.org/GNOME/libgweather/) (%s) ", LIBGWEATHER_VERSION, app_id ());
+}
+
+static const char *
+user_agent (void)
+{
+ static GOnce once = G_ONCE_INIT;
+
+ g_once (&once, compute_user_agent, NULL);
+
+ return once.retval;
+}
+
static SoupSession *
ref_session (void)
{
@@ -595,8 +626,7 @@ ref_session (void)
return g_object_ref (session);
session = soup_session_new ();
- g_object_set (G_OBJECT (session), SOUP_SESSION_USER_AGENT,
- "libgweather/" LIBGWEATHER_VERSION " (+https://gitlab.gnome.org/GNOME/libgweather/) ", NULL);
+ g_object_set (G_OBJECT (session), SOUP_SESSION_USER_AGENT, user_agent (), NULL);
cache = get_cache ();
if (cache != NULL) {
--
2.30.2

@ -0,0 +1,40 @@
From 88461473c20a6a7e4d61d144de083340d65eb75a Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Wed, 18 Jul 2018 13:50:23 +0200
Subject: [PATCH] build: Don't use a full path inside generated enum header
It causes multilib problems.
---
libgweather/gweather-enum-types.c.tmpl | 2 +-
libgweather/gweather-enum-types.h.tmpl | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgweather/gweather-enum-types.c.tmpl b/libgweather/gweather-enum-types.c.tmpl
index 4430bda8..fe1f7c4d 100644
--- a/libgweather/gweather-enum-types.c.tmpl
+++ b/libgweather/gweather-enum-types.c.tmpl
@@ -7,7 +7,7 @@
/*** END file-header ***/
/*** BEGIN file-production ***/
-/* enumerations from "@filename@" */
+/* enumerations from "@basename@" */
/*** END file-production ***/
/*** BEGIN value-header ***/
diff --git a/libgweather/gweather-enum-types.h.tmpl b/libgweather/gweather-enum-types.h.tmpl
index 3ca19950..d50063da 100644
--- a/libgweather/gweather-enum-types.h.tmpl
+++ b/libgweather/gweather-enum-types.h.tmpl
@@ -14,7 +14,7 @@ G_BEGIN_DECLS
/*** BEGIN file-production ***/
-/* enumerations from "@filename@" */
+/* enumerations from "@basename@" */
/*** END file-production ***/
/*** BEGIN value-header ***/
--
GitLab

@ -1,24 +1,32 @@
%global tarball_version %%(echo %{version} | tr '~' '.')
Name: libgweather
Version: 40.0
Release: 3%{?dist}
Version: 3.28.2
Release: 4%{?dist}
Summary: A library for weather information
License: GPLv2+
URL: https://wiki.gnome.org/Projects/LibGWeather
Source0: https://download.gnome.org/sources/libgweather/40/%{name}-%{tarball_version}.tar.xz
Source0: https://download.gnome.org/sources/libgweather/3.28/%{name}-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=1853151
Patch0: libgweather-3.28.2-fix-enum-types-multilib.patch
# https://gitlab.gnome.org/GNOME/libgweather/-/issues/82
Patch1: 0001-GWeatherWeather-Always-set-a-user-agent-when-doing-q.patch
Patch2: 0002-yrno-Link-to-met.no-using-HTTPS.patch
Patch3: 0003-metno-Use-compat-2.0-API.patch
Patch4: 0004-metno-Use-GNOME-specific-subdomain.patch
Patch5: 0005-metno-Use-as-arguments-separator-in-query.patch
Patch6: 0006-metno-Use-alphabetical-2.0-symbol-codes.patch
Patch7: 0007-weather-add-app-ID-to-HTTP-user-agent.patch
BuildRequires: gettext
BuildRequires: gtk-doc
BuildRequires: meson
BuildRequires: pkgconfig(geocode-glib-1.0)
BuildRequires: pkgconfig(gladeui-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: python3-gobject-base
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 0.10
BuildRequires: pkgconfig(gtk+-3.0) >= 3.13.5
BuildRequires: pkgconfig(libsoup-2.4) >= 2.34
BuildRequires: pkgconfig(libxml-2.0) >= 2.6.0
BuildRequires: vala
%description
@ -34,7 +42,7 @@ The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%autosetup -p1 -n libgweather-%{tarball_version}
%autosetup -p1
%build
%meson -Dgtk_doc=true
@ -46,12 +54,10 @@ developing applications that use %{name}.
%find_lang %{name} --all-name
%files -f %{name}.lang
%doc HACKING.md NEWS README.md
%doc HACKING NEWS README.md
%license COPYING
%{_libdir}/libgweather-3.so.16*
%{_libdir}/libgweather-3.so.15*
%{_libdir}/girepository-1.0/GWeather-3.0.typelib
%dir %{_libdir}/libgweather
%{_libdir}/libgweather/Locations.bin
%dir %{_datadir}/libgweather
%{_datadir}/libgweather/Locations.xml
%{_datadir}/libgweather/locations.dtd
@ -75,76 +81,18 @@ developing applications that use %{name}.
%{_datadir}/vala/vapi/gweather-3.0.vapi
%changelog
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 40.0-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 40.0-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Mar 24 2021 Kalev Lember <klember@redhat.com> - 40.0-1
- Update to 40.0
* Wed Feb 17 2021 Kalev Lember <klember@redhat.com> - 40~beta-1
- Update to 40.beta
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 40~alpha.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jan 19 2021 Kalev Lember <klember@redhat.com> - 40~alpha.1-1
- Update to 40.alpha.1
* Tue Jan 19 2021 Kalev Lember <klember@redhat.com> - 40~alpha-1
- Update to 40.alpha
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.36.1-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.36.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat Jun 20 2020 Bastien Nocera <bnocera@redhat.com> - 3.36.1-1
+ libgweather-3.36.1-1
- Update to 3.36.1
- Work-around broken current conditions weather servers
* Wed Jul 26 2023 MSVSphere Packaging Team <packager@msvsphere.ru> - 3.28.2-4
- Rebuilt for MSVSphere 8.8
* Mon Mar 09 2020 Bastien Nocera <bnocera@redhat.com> - 3.36.0-1
+ libgweather-3.36.0-1
- Update to 3.36.0
* Tue Apr 27 2021 David King <dking@redhat.com> - 3.28.2-4
- Fix no weather data available (#1942202)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.34.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Oct 07 2020 David King <dking@redhat.com> - 3.28.2-3
- Fix multilib conflict in enum header (#1853151)
* Tue Oct 08 2019 Kalev Lember <klember@redhat.com> - 3.34.0-1
- Update to 3.34.0
* Tue Sep 03 2019 Kalev Lember <klember@redhat.com> - 3.33.92-1
- Update to 3.33.92
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.33.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jul 08 2019 Kalev Lember <klember@redhat.com> - 3.33.0-1
- Update to 3.33.0
* Wed Mar 20 2019 Kalev Lember <klember@redhat.com> - 3.32.1-1
- Update to 3.32.1
* Mon Mar 11 2019 Kalev Lember <klember@redhat.com> - 3.32.0-1
- Update to 3.32.0
* Fri Feb 22 2019 Kalev Lember <klember@redhat.com> - 3.31.91-1
- Update to 3.31.91
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Aug 09 2018 Debarshi Ray <rishi@fedoraproject.org> - 3.28.2-3
* Thu Aug 09 2018 Debarshi Ray <rishi@fedoraproject.org> - 3.28.2-2
- Fix dangling symbolic link to README.md
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Resolves: #1614386
* Wed Jun 13 2018 Bastien Nocera <bnocera@redhat.com> - 3.28.2-1
+ libgweather-3.28.2-1

Loading…
Cancel
Save