mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-19 18:20:07 +02:00
290 lines
9.0 KiB
Plaintext
290 lines
9.0 KiB
Plaintext
From e1b248c02e0259f4f0b38c13596d24ce233fbdfb Mon Sep 17 00:00:00 2001
|
|
From: Jerome Duval <jerome.duval@gmail.com>
|
|
Date: Sat, 29 Jul 2017 12:13:00 +0200
|
|
Subject: g_dbus_message_print: use B_PRIiDEV on Haiku
|
|
|
|
because Haiku doesn't define major() and minor()
|
|
|
|
diff --git a/gio/gdbusmessage.c b/gio/gdbusmessage.c
|
|
index 852a704..968d33f 100644
|
|
--- a/gio/gdbusmessage.c
|
|
+++ b/gio/gdbusmessage.c
|
|
@@ -35,8 +35,12 @@
|
|
#elif MAJOR_IN_TYPES
|
|
#include <sys/types.h>
|
|
#else
|
|
+#ifdef __HAIKU__
|
|
+#include <SupportDefs.h>
|
|
+#else
|
|
#define MAJOR_MINOR_NOT_FOUND 1
|
|
#endif
|
|
+#endif
|
|
|
|
#include "gdbusutils.h"
|
|
#include "gdbusmessage.h"
|
|
@@ -3514,8 +3518,14 @@ g_dbus_message_print (GDBusMessage *message,
|
|
if (fstat (fds[n], &statbuf) == 0)
|
|
{
|
|
#ifndef MAJOR_MINOR_NOT_FOUND
|
|
+#ifdef __HAIKU__
|
|
+ g_string_append_printf (fs, "%s" "dev=%" B_PRIiDEV, fs->len > 0 ? "," : "",
|
|
+ statbuf.st_dev);
|
|
+#else
|
|
+
|
|
g_string_append_printf (fs, "%s" "dev=%d:%d", fs->len > 0 ? "," : "",
|
|
(gint) major (statbuf.st_dev), (gint) minor (statbuf.st_dev));
|
|
+#endif
|
|
#endif
|
|
g_string_append_printf (fs, "%s" "mode=0%o", fs->len > 0 ? "," : "",
|
|
(guint) statbuf.st_mode);
|
|
@@ -3526,9 +3536,14 @@ g_dbus_message_print (GDBusMessage *message,
|
|
g_string_append_printf (fs, "%s" "gid=%u", fs->len > 0 ? "," : "",
|
|
(guint) statbuf.st_gid);
|
|
#ifndef MAJOR_MINOR_NOT_FOUND
|
|
+#ifdef __HAIKU__
|
|
+ g_string_append_printf (fs, "%s" "rdev=%" B_PRIiDEV, fs->len > 0 ? "," : "",
|
|
+ statbuf.st_rdev);
|
|
+#else
|
|
g_string_append_printf (fs, "%s" "rdev=%d:%d", fs->len > 0 ? "," : "",
|
|
(gint) major (statbuf.st_rdev), (gint) minor (statbuf.st_rdev));
|
|
#endif
|
|
+#endif
|
|
g_string_append_printf (fs, "%s" "size=%" G_GUINT64_FORMAT, fs->len > 0 ? "," : "",
|
|
(guint64) statbuf.st_size);
|
|
g_string_append_printf (fs, "%s" "atime=%" G_GUINT64_FORMAT, fs->len > 0 ? "," : "",
|
|
--
|
|
2.30.2
|
|
|
|
|
|
From 8407a5ee77a8b0c24e7876e799c5846785d63127 Mon Sep 17 00:00:00 2001
|
|
From: Jerome Duval <jerome.duval@gmail.com>
|
|
Date: Sat, 29 Jul 2017 12:19:31 +0200
|
|
Subject: gunixmounts.c: on Haiku
|
|
|
|
* define get_mtab_minitor_file() and _g_get_unix_mounts()
|
|
* like Inerix, _g_get_unix_mount_points() calls _g_get_unix_mounts().
|
|
|
|
diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c
|
|
index cf73fe5..88795f4 100644
|
|
--- a/gio/gunixmounts.c
|
|
+++ b/gio/gunixmounts.c
|
|
@@ -948,7 +948,18 @@ _g_get_unix_mounts (void)
|
|
|
|
return return_list;
|
|
}
|
|
+#elif defined(__HAIKU__)
|
|
+static char *
|
|
+get_mtab_monitor_file (void)
|
|
+{
|
|
+ return NULL;
|
|
+}
|
|
|
|
+static GList *
|
|
+_g_get_unix_mounts (void)
|
|
+{
|
|
+ return NULL;
|
|
+}
|
|
/* Common code {{{2 */
|
|
#else
|
|
#error No _g_get_unix_mounts() implementation for system
|
|
@@ -1464,8 +1475,8 @@ _g_get_unix_mount_points (void)
|
|
|
|
return g_list_reverse (return_list);
|
|
}
|
|
-/* Interix {{{2 */
|
|
-#elif defined(__INTERIX)
|
|
+/* Interix, Haiku {{{2 */
|
|
+#elif defined(__INTERIX) || defined(__HAIKU__)
|
|
static GList *
|
|
_g_get_unix_mount_points (void)
|
|
{
|
|
--
|
|
2.30.2
|
|
|
|
|
|
From 3cb1e89ee25160bd94ea15ca2324dec90d03f1bd Mon Sep 17 00:00:00 2001
|
|
From: Jerome Duval <jerome.duval@gmail.com>
|
|
Date: Sat, 29 Jul 2017 12:32:14 +0200
|
|
Subject: glib/gutils.c: on Haiku define load_user_special_dirs()
|
|
|
|
use find_directory() from SupportDefs.h
|
|
|
|
diff --git a/glib/gutils.c b/glib/gutils.c
|
|
index 988d0a5..7248ead 100644
|
|
--- a/glib/gutils.c
|
|
+++ b/glib/gutils.c
|
|
@@ -74,6 +74,10 @@
|
|
#include "gwin32.h"
|
|
#endif
|
|
|
|
+#if defined(__HAIKU__)
|
|
+#include <FindDirectory.h>
|
|
+#include <fs_info.h>
|
|
+#endif
|
|
|
|
/**
|
|
* SECTION:misc_utils
|
|
@@ -1513,6 +1517,35 @@ load_user_special_dirs (void)
|
|
load_user_special_dirs_macos (g_user_special_dirs);
|
|
}
|
|
|
|
+#elif defined(__HAIKU__)
|
|
+static void
|
|
+load_user_special_dirs (void)
|
|
+{
|
|
+ char path[B_PATH_NAME_LENGTH + B_FILE_NAME_LENGTH];
|
|
+
|
|
+ dev_t volume = dev_for_path("/boot");
|
|
+ if (find_directory(B_DESKTOP_DIRECTORY, volume, false, path, sizeof(path))
|
|
+ == B_OK) {
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup(path);
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup(path);
|
|
+ } else {
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = NULL;
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = NULL;
|
|
+ }
|
|
+
|
|
+ if (find_directory(B_USER_DIRECTORY, volume, false, path, sizeof(path))
|
|
+ == B_OK) {
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup(path);
|
|
+ } else
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = NULL;
|
|
+
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = NULL;
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = NULL;
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL;
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL;
|
|
+ g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = NULL;
|
|
+}
|
|
+
|
|
#elif defined(G_OS_WIN32)
|
|
|
|
static void
|
|
--
|
|
2.30.2
|
|
|
|
|
|
From e7b90c2f26d9a6b472c60ba7639ffa0b62a1c229 Mon Sep 17 00:00:00 2001
|
|
From: Jerome Duval <jerome.duval@gmail.com>
|
|
Date: Sat, 7 Sep 2019 15:24:28 +0200
|
|
Subject: _SC_HOST_NAME_MAX is not defined on H1B1
|
|
|
|
|
|
diff --git a/glib/gutils.c b/glib/gutils.c
|
|
index 7248ead..a27c429 100644
|
|
--- a/glib/gutils.c
|
|
+++ b/glib/gutils.c
|
|
@@ -996,7 +996,11 @@ g_get_host_name (void)
|
|
const gsize size_large = (gsize) 256 * 256;
|
|
gchar *tmp;
|
|
|
|
+#ifdef __HAIKU__
|
|
+ max = 0;
|
|
+#else
|
|
max = sysconf (_SC_HOST_NAME_MAX);
|
|
+#endif
|
|
if (max > 0 && max <= G_MAXSIZE - 1)
|
|
size = (gsize) max + 1;
|
|
else
|
|
--
|
|
2.30.2
|
|
|
|
|
|
From b84a08f536145a49ed19aba44a504f4526dd892c Mon Sep 17 00:00:00 2001
|
|
From: Jerome Duval <jerome.duval@gmail.com>
|
|
Date: Sat, 23 Nov 2019 20:10:10 +0100
|
|
Subject: Haiku patch for x86
|
|
|
|
|
|
diff --git a/meson.build b/meson.build
|
|
index 717d1bc..5b25886 100644
|
|
--- a/meson.build
|
|
+++ b/meson.build
|
|
@@ -1324,14 +1324,14 @@ if sizet_size == short_size
|
|
glibconfig_conf.set_quoted('gsize_format', 'hu')
|
|
glibconfig_conf.set_quoted('gssize_format', 'hi')
|
|
glibconfig_conf.set('glib_msize_type', 'SHRT')
|
|
-elif sizet_size == int_size
|
|
+elif sizet_size == int_size and host_system != 'haiku'
|
|
glibconfig_conf.set('glib_size_type_define', 'int')
|
|
glibconfig_conf.set_quoted('gsize_modifier', '')
|
|
glibconfig_conf.set_quoted('gssize_modifier', '')
|
|
glibconfig_conf.set_quoted('gsize_format', 'u')
|
|
glibconfig_conf.set_quoted('gssize_format', 'i')
|
|
glibconfig_conf.set('glib_msize_type', 'INT')
|
|
-elif sizet_size == long_size
|
|
+elif sizet_size == long_size or host_system == 'haiku'
|
|
glibconfig_conf.set('glib_size_type_define', 'long')
|
|
glibconfig_conf.set_quoted('gsize_modifier', 'l')
|
|
glibconfig_conf.set_quoted('gssize_modifier', 'l')
|
|
diff --git a/tests/mapping-test.c b/tests/mapping-test.c
|
|
index ad776fa..49d2ea4 100644
|
|
--- a/tests/mapping-test.c
|
|
+++ b/tests/mapping-test.c
|
|
@@ -182,6 +182,10 @@ test_private (void)
|
|
g_message ("test_private: ok");
|
|
}
|
|
|
|
+#ifdef __HAIKU__
|
|
+#include <SupportDefs.h>
|
|
+#endif
|
|
+
|
|
static void
|
|
test_child_private (gchar *argv0)
|
|
{
|
|
@@ -208,7 +212,11 @@ test_child_private (gchar *argv0)
|
|
signal (SIGUSR1, handle_usr1);
|
|
#endif
|
|
|
|
+#ifdef __HAIKU__
|
|
+ g_snprintf (pid, sizeof(pid), B_PRId32, getpid ());
|
|
+#else
|
|
g_snprintf (pid, sizeof(pid), "%d", getpid ());
|
|
+#endif
|
|
child_argv[0] = argv0;
|
|
child_argv[1] = "mapchild";
|
|
child_argv[2] = pid;
|
|
--
|
|
2.30.2
|
|
|
|
|
|
From 485728e688a8a89e84b3b8cf68a7e4871804e39f Mon Sep 17 00:00:00 2001
|
|
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
|
Date: Tue, 17 Aug 2021 08:29:48 +0000
|
|
Subject: Fix network detection
|
|
|
|
|
|
diff --git a/gio/meson.build b/gio/meson.build
|
|
index 9a9e621..32d7d67 100644
|
|
--- a/gio/meson.build
|
|
+++ b/gio/meson.build
|
|
@@ -26,6 +26,7 @@ elif not host_system.contains('android')
|
|
int qclass = C_IN;''',
|
|
name : 'C_IN in public headers (no arpa/nameser_compat.h needed)')
|
|
if cc.compiles('''#include <sys/types.h>
|
|
+ #include <stdint.h>
|
|
#include <arpa/nameser.h>
|
|
#include <arpa/nameser_compat.h>
|
|
int qclass = C_IN;''',
|
|
@@ -46,6 +47,7 @@ if host_system != 'windows'
|
|
return res_query("test", 0, 0, (void *)0, 0);
|
|
}'''
|
|
res_query_test_full = '''#include <sys/types.h>
|
|
+ #include <stdint.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/nameser.h>
|
|
''' + res_query_test
|
|
@@ -56,6 +58,9 @@ if host_system != 'windows'
|
|
elif cc.links(res_query_test, args : '-lbind', name : 'res_query() in -lbind')
|
|
network_libs += [ cc.find_library('bind') ]
|
|
network_args += [ '-lbind' ]
|
|
+ elif cc.links(res_query_test, args : '-lnetwork', name : 'res_query() in -lnetwork')
|
|
+ network_libs += [ cc.find_library('network') ]
|
|
+ network_args += [ '-lnetwork' ]
|
|
else
|
|
error('Could not find res_query()')
|
|
endif
|
|
--
|
|
2.30.2
|
|
|