6
#include <glib-object.h>
12
#include "update-notifier.h"
14
extern gboolean DEVEL_RELEASE;
17
g_debug_release(const char *msg, ...)
21
g_logv("release",G_LOG_LEVEL_DEBUG, msg, va);
25
// actually show the notification
27
check_new_release(gpointer user_data)
29
g_debug_release ("check_new_release");
32
GConfClient *client = (GConfClient*)user_data;
34
time_t now = time(NULL);
35
time_t last_check = gconf_client_get_int(client, GCONF_KEY_LAST_RELEASE_CHECK, &error);
36
if ( error != NULL ) {
37
g_warning ("could not get %s", GCONF_KEY_LAST_RELEASE_CHECK);
41
// test if we need to run
42
if ( (last_check + RELEASE_UPGRADE_CHECK_WAIT) > now ) {
43
g_debug_release ("release upgrade check not needed (%i > %i)", last_check + RELEASE_UPGRADE_CHECK_WAIT, now);
48
gchar *argv[10] = { RELEASE_UPGRADE_CHECKER, };
50
g_debug_release ("running the release upgrade checker %s in devel mode", RELEASE_UPGRADE_CHECKER);
51
argv[1] = "--devel-release";
54
g_debug_release ("running the release upgrade checker %s", RELEASE_UPGRADE_CHECKER);
57
g_spawn_async ("/", argv, NULL, 0, NULL, NULL, NULL, NULL);
59
// and update the timestamp so we don't check again too soon
60
gconf_client_set_int(client, GCONF_KEY_LAST_RELEASE_CHECK, now, NULL);
66
release_checker_init (UpgradeNotifier *un)
68
g_debug_release ("release_checker_init");
70
GConfClient *client = gconf_client_get_default();
72
// check once at startup
73
check_new_release (client);
74
// release upgrades happen not that frequently, we use two timers
75
// check every 10 min if 48h are reached and then run
76
// "check-release-upgrade-gtk" again
77
g_timeout_add_seconds (60*10, check_new_release, client);