Compare commits

...

No commits in common. "c9s" and "c8" have entirely different histories.
c9s ... c8

13 changed files with 473 additions and 182 deletions

94
.gitignore vendored
View File

@ -1,93 +1 @@
libgweather-2.30.0.tar.bz2
/libgweather-2.30.3.tar.bz2
/libgweather-2.91.0.tar.bz2
/libgweather-2.91.6.tar.bz2
/libgweather-3.0.0.tar.bz2
/libgweather-3.1.3.tar.xz
/libgweather-3.2.0.tar.xz
/libgweather-3.2.1.tar.xz
/libgweather-3.5.1.tar.xz
/libgweather-3.5.4.tar.xz
/libgweather-3.5.5.tar.xz
/libgweather-3.5.90.tar.xz
/libgweather-3.5.91.tar.xz
/libgweather-3.5.92.tar.xz
/libgweather-3.6.0.tar.xz
/libgweather-3.6.1.tar.xz
/libgweather-3.6.2.tar.xz
/libgweather-3.7.2.tar.xz
/libgweather-3.7.3.tar.xz
/libgweather-3.7.4.tar.xz
/libgweather-3.7.5.tar.xz
/libgweather-3.7.90.tar.xz
/libgweather-3.7.91.tar.xz
/libgweather-3.7.92.tar.xz
/libgweather-3.8.0.tar.xz
/libgweather-3.8.1.tar.xz
/libgweather-3.9.1.tar.xz
/libgweather-3.9.2.tar.xz
/libgweather-3.9.3.tar.xz
/libgweather-3.9.5.tar.xz
/libgweather-3.9.90.tar.xz
/libgweather-3.9.91.tar.xz
/libgweather-3.9.92.tar.xz
/libgweather-3.10.0.tar.xz
/libgweather-3.10.1.tar.xz
/libgweather-3.11.3.tar.xz
/libgweather-3.11.4.tar.xz
/libgweather-3.11.5.tar.xz
/libgweather-3.11.90.tar.xz
/libgweather-3.11.91.tar.xz
/libgweather-3.11.92.tar.xz
/libgweather-3.12.0.tar.xz
/libgweather-3.12.1.tar.xz
/libgweather-3.13.1.tar.xz
/libgweather-3.13.2.tar.xz
/libgweather-3.13.3.tar.xz
/libgweather-3.13.4.tar.xz
/libgweather-3.13.90.tar.xz
/libgweather-3.13.91.tar.xz
/libgweather-3.13.92.tar.xz
/libgweather-3.14.0.tar.xz
/libgweather-3.14.1.tar.xz
/libgweather-3.14.2.tar.xz
/libgweather-3.15.1.tar.xz
/libgweather-3.15.90.tar.xz
/libgweather-3.15.91.tar.xz
/libgweather-3.15.92.tar.xz
/libgweather-3.16.0.tar.xz
/libgweather-3.16.1.tar.xz
/libgweather-3.17.1.tar.xz
/libgweather-3.17.2.tar.xz
/libgweather-3.17.92.tar.xz
/libgweather-3.18.0.tar.xz
/libgweather-3.18.1.tar.xz
/libgweather-3.19.90.tar.xz
/libgweather-3.19.92.tar.xz
/libgweather-3.20.0.tar.xz
/libgweather-3.20.1.tar.xz
/libgweather-3.20.2.tar.xz
/libgweather-3.20.3.tar.xz
/libgweather-3.20.4.tar.xz
/libgweather-3.24.0.tar.xz
/libgweather-3.24.1.tar.xz
/libgweather-3.25.91.tar.xz
/libgweather-3.25.92.tar.xz
/libgweather-3.26.0.tar.xz
/libgweather-3.26.1.tar.xz
/libgweather-3.27.4.tar.xz
/libgweather-3.28.0.tar.xz
/libgweather-3.28.1.tar.xz
/libgweather-3.28.2.tar.xz
/libgweather-3.31.91.tar.xz
/libgweather-3.32.0.tar.xz
/libgweather-3.32.1.tar.xz
/libgweather-3.33.0.tar.xz
/libgweather-3.33.92.tar.xz
/libgweather-3.34.0.tar.xz
/libgweather-3.36.0.tar.xz
/libgweather-3.36.1.tar.xz
/libgweather-40.alpha.tar.xz
/libgweather-40.alpha.1.tar.xz
/libgweather-40.beta.tar.xz
/libgweather-40.0.tar.xz
SOURCES/libgweather-3.28.2.tar.xz

1
.libgweather.metadata Normal file
View File

@ -0,0 +1 @@
487493c68e35118eb1773de073124c4fcd5abf90 SOURCES/libgweather-3.28.2.tar.xz

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,15 @@ 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
* Tue Apr 27 2021 David King <dking@redhat.com> - 3.28.2-4
- Fix no weather data available (#1942202)
* 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 Oct 07 2020 David King <dking@redhat.com> - 3.28.2-3
- Fix multilib conflict in enum header (#1853151)
* 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
* Mon Mar 09 2020 Bastien Nocera <bnocera@redhat.com> - 3.36.0-1
+ libgweather-3.36.0-1
- Update to 3.36.0
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.34.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* 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

View File

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

View File

@ -1 +0,0 @@
SHA512 (libgweather-40.0.tar.xz) = 72e295246bf03550039a70bd4bf5b8f06357a6b70e04308c197fba309e406d410a97d128d849d97a29a6a114faa1ef5452e6632870b7ea45223a0c305c228cc1