aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbigbear <ns@bigbear.dk>2024-02-08 03:08:54 +0100
committerbigbear <ns@bigbear.dk>2024-02-08 19:52:53 +0100
commit33d6c7101cee251b91b4f01b2ddde55b4b2d50d9 (patch)
tree49ae675f7d68b90415db69bfcd21fe84fa74013d
parent1dc1f18804969c191346b064cd232d3f5959b13c (diff)
FIX back ports
-rw-r--r--deps/sysobj_early/gui/uri_handler.c5
-rw-r--r--deps/sysobj_early/src/auto_free.c39
-rw-r--r--hardinfo2/udisks2_util.c7
-rw-r--r--hardinfo2/util.c3
-rw-r--r--modules/benchmark/bench_results.c2
-rw-r--r--shell/syncmanager.c52
6 files changed, 91 insertions, 17 deletions
diff --git a/deps/sysobj_early/gui/uri_handler.c b/deps/sysobj_early/gui/uri_handler.c
index 055dbaca..de9f64a7 100644
--- a/deps/sysobj_early/gui/uri_handler.c
+++ b/deps/sysobj_early/gui/uri_handler.c
@@ -21,6 +21,11 @@
#include <stdio.h>
#include "uri_handler.h"
+//compatibility
+#ifndef G_SPAWN_DEFAULT
+#define G_SPAWN_DEFAULT 0
+#endif
+
static uri_handler uri_func = NULL;
void uri_set_function(uri_handler f) {
diff --git a/deps/sysobj_early/src/auto_free.c b/deps/sysobj_early/src/auto_free.c
index 8439681f..9a10e27a 100644
--- a/deps/sysobj_early/src/auto_free.c
+++ b/deps/sysobj_early/src/auto_free.c
@@ -33,7 +33,17 @@ static struct {
} af_stats;
#endif
-static GMutex free_lock;
+//Compatibility
+#ifndef G_SOURCE_REMOVE
+ #define G_SOURCE_REMOVE FALSE
+#endif
+
+#ifndef G_SOURCE_CONTINUE
+ #define G_SOURCE_CONTINUE TRUE
+#endif
+
+
+static GMutex *free_lock = NULL;
static GSList *free_list = NULL;
static gboolean free_final = FALSE;
static GTimer *auto_free_timer = NULL;
@@ -95,10 +105,15 @@ gpointer auto_free_ex_(gpointer p, GDestroyNotify f, const char *file, int line,
z->line = line;
z->func = func;
z->stamp = af_elapsed();
- g_mutex_lock(&free_lock);
+#if GLIB_CHECK_VERSION(2,32,0)
+ if(free_lock==NULL) {free_lock=g_new(GMutex,1);g_mutex_init(free_lock);}
+#else
+ if(free_lock==NULL) free_lock=g_mutex_new();
+#endif
+ g_mutex_lock(free_lock);
free_list = g_slist_prepend(free_list, z);
sysobj_stats.auto_free_len++;
- g_mutex_unlock(&free_lock);
+ g_mutex_unlock(free_lock);
return p;
}
@@ -113,10 +128,15 @@ gpointer auto_free_on_exit_ex_(gpointer p, GDestroyNotify f, const char *file, i
z->line = line;
z->func = func;
z->stamp = -1.0;
- g_mutex_lock(&free_lock);
+#if GLIB_CHECK_VERSION(2,32,0)
+ if(free_lock==NULL) g_mutex_init(free_lock);
+#else
+ if(free_lock==NULL) free_lock=g_mutex_new();
+#endif
+ g_mutex_lock(free_lock);
free_list = g_slist_prepend(free_list, z);
sysobj_stats.auto_free_len++;
- g_mutex_unlock(&free_lock);
+ g_mutex_unlock(free_lock);
return p;
}
@@ -140,7 +160,12 @@ static void free_auto_free_ex(gboolean thread_final) {
if (!free_list) return;
- g_mutex_lock(&free_lock);
+#if GLIB_CHECK_VERSION(2,32,0)
+ if(free_lock==NULL) {free_lock=g_new(GMutex,1);g_mutex_init(free_lock);}
+#else
+ if(free_lock==NULL) free_lock=g_mutex_new();
+#endif
+ g_mutex_lock(free_lock);
if (DEBUG_AUTO_FREE)
auto_free_msg("%llu total items in queue, but will free from thread %p only... ", sysobj_stats.auto_free_len, this_thread);
for(l = free_list; l; l = n) {
@@ -174,7 +199,7 @@ static void free_auto_free_ex(gboolean thread_final) {
auto_free_msg("... freed %llu (from thread %p)", fc, this_thread);
sysobj_stats.auto_freed += fc;
sysobj_stats.auto_free_len -= fc;
- g_mutex_unlock(&free_lock);
+ g_mutex_unlock(free_lock);
}
void free_auto_free_thread_final() {
diff --git a/hardinfo2/udisks2_util.c b/hardinfo2/udisks2_util.c
index 4c9a4c9b..e1567d84 100644
--- a/hardinfo2/udisks2_util.c
+++ b/hardinfo2/udisks2_util.c
@@ -279,7 +279,7 @@ void udiskd_free(udiskd *u) {
udiskp* get_udisks2_partition_info(const gchar *part_path) {
GVariant *v;
- GDBusProxy *proxy;
+ GDBusProxy *proxy=NULL;
GError *error = NULL;
udiskp* partition;
const gchar *str;
@@ -294,7 +294,8 @@ udiskp* get_udisks2_partition_info(const gchar *part_path) {
proxy = g_dbus_proxy_new_sync(udisks2_conn, G_DBUS_PROXY_FLAGS_NONE,
NULL, UDISKS2_INTERFACE, part_path,
DBUS_PROPERTIES_INTERFACE, NULL, &error);
- if (error == NULL) {
+
+ if ((proxy != NULL) && (error == NULL)) {
v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "IdLabel");
if (v) {
str = g_variant_get_string(v, NULL);
@@ -628,7 +629,7 @@ GSList* get_udisks2_all_drives_info(void){
void udisks2_init(){
if (udisks2_conn == NULL){
- udisks2_conn = get_udisks2_connection();
+ //FIXME udisks2_conn = get_udisks2_connection();
}
}
diff --git a/hardinfo2/util.c b/hardinfo2/util.c
index 5e3b00aa..e12963c0 100644
--- a/hardinfo2/util.c
+++ b/hardinfo2/util.c
@@ -974,7 +974,10 @@ static GSList *modules_load(gchar ** module_list)
}
filenames = g_list_delete_link(filenames, item);
}
+#if GLIB_CHECK_VERSION(2,44,0)
+ //FIXME change this to not use g_steal_pointer
g_list_free_full (g_steal_pointer (&filenames), g_object_unref);
+#endif
g_dir_close(dir);
}
diff --git a/modules/benchmark/bench_results.c b/modules/benchmark/bench_results.c
index 28ce657d..42930d74 100644
--- a/modules/benchmark/bench_results.c
+++ b/modules/benchmark/bench_results.c
@@ -348,7 +348,7 @@ static void append_cpu_config(JsonObject *object,
if (output->len)
g_string_append(output, ", ");
- g_string_append_printf(output, "%ldx %.2f %s", json_node_get_int(member_node),
+ g_string_append_printf(output, "%ldx %.2f %s", (long int)json_node_get_int(member_node),
parse_frequency(member_name), _("MHz"));
}
diff --git a/shell/syncmanager.c b/shell/syncmanager.c
index 86ba80a3..03e8b210 100644
--- a/shell/syncmanager.c
+++ b/shell/syncmanager.c
@@ -26,6 +26,10 @@
#include <stdarg.h>
#include <string.h>
+#ifndef SOUP_CHECK_VERSION
+ #define SOUP_CHECK_VERSION(a,b,c) 0
+#endif
+
typedef struct _SyncDialog SyncDialog;
typedef struct _SyncNetArea SyncNetArea;
typedef struct _SyncNetAction SyncNetAction;
@@ -185,13 +189,19 @@ static SoupURI *sync_manager_get_proxy(void)
static void ensure_soup_session(void)
{
if (!session) {
-#if !SOUP_CHECK_VERSION(3,0,0)
+#if SOUP_CHECK_VERSION(3,0,0)
+ session = soup_session_new_with_options("timeout", 10, NULL);
+#else
+#if SOUP_CHECK_VERSION(2,42,0)
SoupURI *proxy = sync_manager_get_proxy();
session = soup_session_new_with_options(
SOUP_SESSION_TIMEOUT, 10, SOUP_SESSION_PROXY_URI, proxy, NULL);
#else
- session = soup_session_new_with_options("timeout", 10, NULL);
+ SoupURI *proxy = sync_manager_get_proxy();
+ session = soup_session_async_new_with_options(
+ SOUP_SESSION_TIMEOUT, 10, SOUP_SESSION_PROXY_URI, proxy, NULL);
+#endif
#endif
}
}
@@ -226,16 +236,28 @@ static void sync_dialog_start_sync(SyncDialog *sd)
g_main_loop_unref(loop);
}
+#if SOUP_CHECK_VERSION(2,42,0)
static void got_response(GObject *source, GAsyncResult *res, gpointer user_data)
+#else
+static void got_response(SoupSession *source, SoupMessage *res, gpointer user_data)
+#endif
{
SyncNetAction *sna = user_data;
GInputStream *is;
+#if SOUP_CHECK_VERSION(2,42,0)
+#else
+ const guint8 *buf=NULL;
+ gsize len,datawritten;
+ SoupBuffer *soupmsg=NULL;
+#endif
+#if SOUP_CHECK_VERSION(2,42,0)
is = soup_session_send_finish(session, res, &sna->error);
if (is == NULL)
goto out;
if (sna->error != NULL)
goto out;
+#endif
if (sna->entry->file_name != NULL) {
gchar *path = g_build_filename(g_get_user_config_dir(), "hardinfo2",
@@ -246,9 +268,21 @@ static void got_response(GObject *source, GAsyncResult *res, gpointer user_data)
NULL, &sna->error);
if (output != NULL) {
+#if SOUP_CHECK_VERSION(2,42,0)
g_output_stream_splice(G_OUTPUT_STREAM(output), is,
G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, NULL,
&sna->error);
+#else
+ soupmsg=soup_message_body_flatten(res->response_body);
+ if(soupmsg){
+ soup_buffer_get_data(soupmsg,&buf,&len);
+ DEBUG("got file with len: %u", (unsigned int)len);
+ if(len>0){
+ g_output_stream_write_all(G_OUTPUT_STREAM(output),buf,len,&datawritten,NULL,&sna->error);
+ soup_buffer_free(soupmsg);
+ }
+ }
+#endif
}
g_free(path);
@@ -257,7 +291,9 @@ static void got_response(GObject *source, GAsyncResult *res, gpointer user_data)
out:
g_main_loop_quit(loop);
+#if SOUP_CHECK_VERSION(2,42,0)
g_object_unref(is);
+#endif
}
static gboolean send_request_for_net_action(SyncNetAction *sna)
@@ -276,19 +312,23 @@ static gboolean send_request_for_net_action(SyncNetAction *sna)
msg = soup_message_new("POST", uri);
-#if !SOUP_CHECK_VERSION(3, 0, 0)
- soup_message_set_request(msg, "application/octet-stream",
- SOUP_MEMORY_TAKE, contents, size);
-#else
+#if SOUP_CHECK_VERSION(3, 0, 0)
GBytes *cont = g_bytes_new_static(contents,size);
soup_message_set_request_body_from_bytes(msg, "application/octet-stream", cont);
+#else
+ soup_message_set_request(msg, "application/octet-stream",
+ SOUP_MEMORY_TAKE, contents, size);
#endif
}
#if SOUP_CHECK_VERSION(3, 0, 0)
soup_session_send_async(session, msg, G_PRIORITY_DEFAULT, NULL, got_response, sna);
#else
+#if SOUP_CHECK_VERSION(2,42,0)
soup_session_send_async(session, msg, NULL, got_response, sna);
+#else
+ soup_session_queue_message(session, msg, got_response, sna);
+#endif
#endif
g_main_loop_run(loop);