aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc/xfce4-weather-plugin/Makefile3
-rw-r--r--misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-parsers.c22
-rw-r--r--misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.c95
-rw-r--r--misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.h13
-rw-r--r--misc/xfce4-weather-plugin/files/patch-panel-plugin__weather.c13
-rw-r--r--misc/xfce4-weather-plugin/pkg-plist30
6 files changed, 144 insertions, 32 deletions
diff --git a/misc/xfce4-weather-plugin/Makefile b/misc/xfce4-weather-plugin/Makefile
index 7b5bea9a529f..4c841674aa85 100644
--- a/misc/xfce4-weather-plugin/Makefile
+++ b/misc/xfce4-weather-plugin/Makefile
@@ -3,7 +3,7 @@
PORTNAME= xfce4-weather-plugin
PORTVERSION= 0.8.3
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= misc xfce geography
MASTER_SITES= ${MASTER_SITE_XFCE}
MASTER_SITE_SUBDIR=src/panel-plugins/${PORTNAME}/${PORTVERSION:R}
@@ -16,7 +16,6 @@ LICENSE= GPLv2
LIB_DEPENDS= libsoup-2.4.so:${PORTSDIR}/devel/libsoup
-SSP_UNSAFE= yes
GNU_CONFIGURE= yes
INSTALLS_ICONS= yes
INSTALL_TARGET= install-strip
diff --git a/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-parsers.c b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-parsers.c
new file mode 100644
index 000000000000..e2d24d590620
--- /dev/null
+++ b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-parsers.c
@@ -0,0 +1,22 @@
+Make plugin ready for met.no locationforecast-1.2 API (bug #10916).
+
+--- panel-plugin/weather-parsers.c.orig 2013-02-01 15:18:50 UTC
++++ panel-plugin/weather-parsers.c
+@@ -28,6 +28,7 @@
+ #define _XOPEN_SOURCE
+ #define _XOPEN_SOURCE_EXTENDED 1
+ #include "weather-parsers.h"
++#include "weather-translate.h"
+ #include "weather-debug.h"
+
+ #include <time.h>
+@@ -196,8 +197,8 @@
+ }
+ if (NODE_IS_TYPE(child_node, "symbol")) {
+ g_free(loc->symbol);
+- loc->symbol = PROP(child_node, "id");
+ loc->symbol_id = strtol(PROP(child_node, "number"), NULL, 10);
++ loc->symbol = g_strdup(get_symbol_for_id(loc->symbol_id));
+ }
+ }
+
diff --git a/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.c b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.c
new file mode 100644
index 000000000000..4ff20af375c6
--- /dev/null
+++ b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.c
@@ -0,0 +1,95 @@
+Make plugin ready for met.no locationforecast-1.2 API (bug #10916).
+
+--- panel-plugin/weather-translate.c.orig 2013-01-24 14:45:10 UTC
++++ panel-plugin/weather-translate.c
+@@ -29,6 +29,7 @@
+ #include "weather-translate.h"
+
+ #define DAY_LOC_N (sizeof(gchar) * 100)
++#define NODATA "NODATA"
+
+
+ static const gchar *wdirs[] = {
+@@ -169,7 +170,7 @@
+
+ { 15, "FOG", N_("Fog"), N_("Fog") },
+
+- /* Symbols 16-19 are used for polar days */
++ /* Symbols 16-19 are used for polar days (unused beginning with API version 1.2) */
+ { 16, "SUN", N_("Sunny"), N_("Clear") },
+ { 17, "LIGHTCLOUD", N_("Lightly cloudy"), N_("Lightly cloudy") },
+ { 18, "LIGHTRAINSUN", N_("Rain showers"), N_("Rain showers") },
+@@ -185,6 +186,73 @@
+ #define NUM_SYMBOLS (sizeof(symbol_to_desc) / sizeof(symbol_to_desc[0]))
+
+
++/*
++ * API version 1.2, published in May 2014, introduced new symbols. We
++ * try to match these with existing symbols, in order to be compatible
++ * with existing icon themes and to maintain translation completeness.
++ *
++ * See http://api.met.no/weatherapi/weathericon/1.1/documentation
++ * for a list of symbols. For a list of symbols with descriptions,
++ * see http://om.yr.no/forklaring/symbol.
++ */
++gint
++replace_symbol_id(gint id)
++{
++ /* Symbol ids greater than 100 are used for indicating polar
++ * night. These ids are over the ordinary id + 100. Since we
++ * don't support polar icons, we can simply subtract 100 to
++ * get the non-polar symbol ids.
++ */
++ if (id > 100)
++ id -= 100;
++
++ switch (id) {
++ case 24: return 22; /* Light rain showers and thunder */
++ case 25: return 6; /* Heavy rain showers and thunder */
++ case 26: return 20; /* Light sleet showers and thunder */
++ case 27: return 20; /* Heavy sleet showers and thunder */
++ case 28: return 21; /* Light snow showers and thunder */
++ case 29: return 21; /* Heavy snow showers and thunder */
++ case 30: return 22; /* Light rain and thunder */
++ case 31: return 23; /* Light sleet and thunder */
++ case 32: return 23; /* Heavy sleet and thunder */
++ case 33: return 14; /* Light snow and thunder */
++ case 34: return 14; /* Heavy snow and thunder */
++
++ /* symbols 35-39 are unused */
++
++ case 40: return 5; /* Light rain showers */
++ case 41: return 5; /* Heavy rain showers */
++ case 42: return 7; /* Light sleet showers */
++ case 43: return 7; /* Heavy sleet showers */
++ case 44: return 8; /* Light snow showers */
++ case 45: return 8; /* Heavy snow showers */
++ case 46: return 9; /* Light rain */
++ case 47: return 12; /* Light sleet */
++ case 48: return 12; /* Heavy sleet */
++ case 49: return 13; /* Light snow */
++ case 50: return 13; /* Heavy snow */
++ default: return id;
++ }
++}
++
++
++const gchar *
++get_symbol_for_id(gint id)
++{
++ if (G_UNLIKELY(id < 1))
++ return NODATA;
++
++ if (id >= NUM_SYMBOLS)
++ id = replace_symbol_id(id);
++
++ if (id < NUM_SYMBOLS)
++ return symbol_to_desc[id-1].symbol;
++
++ return NODATA;
++}
++
++
+ const gchar *
+ translate_desc(const gchar *desc,
+ const gboolean nighttime)
diff --git a/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.h b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.h
new file mode 100644
index 000000000000..4214329578e2
--- /dev/null
+++ b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather-translate.h
@@ -0,0 +1,13 @@
+Make plugin ready for met.no locationforecast-1.2 API (bug #10916).
+
+--- panel-plugin/weather-translate.h.orig 2013-01-24 14:45:10 UTC
++++ panel-plugin/weather-translate.h
+@@ -24,6 +24,8 @@
+
+ G_BEGIN_DECLS
+
++const gchar *get_symbol_for_id(gint id);
++
+ const gchar *translate_desc(const gchar *desc,
+ gboolean nighttime);
+
diff --git a/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather.c b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather.c
new file mode 100644
index 000000000000..92877f4297dd
--- /dev/null
+++ b/misc/xfce4-weather-plugin/files/patch-panel-plugin__weather.c
@@ -0,0 +1,13 @@
+Make plugin ready for met.no locationforecast-1.2 API (bug #10916).
+
+--- panel-plugin/weather.c.orig 2013-02-18 10:21:00 UTC
++++ panel-plugin/weather.c
+@@ -638,7 +638,7 @@
+ /* build url */
+ url =
+ g_strdup_printf("http://api.yr.no/weatherapi"
+- "/locationforecastlts/1.1/?lat=%s;lon=%s;msl=%d",
++ "/locationforecastlts/1.2/?lat=%s;lon=%s;msl=%d",
+ data->lat, data->lon, data->msl);
+
+ /* start receive thread */
diff --git a/misc/xfce4-weather-plugin/pkg-plist b/misc/xfce4-weather-plugin/pkg-plist
index b56d7af7efc1..0b7d9df8cf22 100644
--- a/misc/xfce4-weather-plugin/pkg-plist
+++ b/misc/xfce4-weather-plugin/pkg-plist
@@ -335,33 +335,3 @@ share/xfce4/weather/icons/simplistic/48/snowthunder.png
share/xfce4/weather/icons/simplistic/48/sun-night.png
share/xfce4/weather/icons/simplistic/48/sun.png
share/xfce4/weather/icons/simplistic/theme.info
-@dirrm share/xfce4/weather/icons/simplistic/48
-@dirrm share/xfce4/weather/icons/simplistic/22
-@dirrm share/xfce4/weather/icons/simplistic/128
-@dirrm share/xfce4/weather/icons/simplistic
-@dirrm share/xfce4/weather/icons/liquid/48
-@dirrm share/xfce4/weather/icons/liquid/22
-@dirrm share/xfce4/weather/icons/liquid/128
-@dirrm share/xfce4/weather/icons/liquid-dark/48
-@dirrm share/xfce4/weather/icons/liquid-dark/22
-@dirrm share/xfce4/weather/icons/liquid-dark/128
-@dirrm share/xfce4/weather/icons/liquid-dark
-@dirrm share/xfce4/weather/icons/liquid
-@dirrm share/xfce4/weather/icons
-@dirrm share/xfce4/weather
-@dirrmtry share/xfce4/panel/plugins
-@dirrmtry share/xfce4/panel
-@dirrmtry share/xfce4
-@dirrmtry share/locale/ur_PK/LC_MESSAGES
-@dirrmtry share/locale/ur_PK
-@dirrmtry share/locale/ur/LC_MESSAGES
-@dirrmtry share/locale/ur
-@dirrmtry share/locale/ug/LC_MESSAGES
-@dirrmtry share/locale/ug
-@dirrmtry share/locale/te/LC_MESSAGES
-@dirrmtry share/locale/te
-@dirrmtry share/locale/ast/LC_MESSAGES
-@dirrmtry share/locale/ast
-@dirrmtry lib/xfce4/panel/plugins
-@dirrmtry lib/xfce4/panel
-@dirrmtry lib/xfce4