mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-10 22:00:09 +02:00
477 lines
13 KiB
Plaintext
477 lines
13 KiB
Plaintext
From 1e9681c8659dd586e0ade5f29334ceee195c88e3 Mon Sep 17 00:00:00 2001
|
|
From: Jerome Duval <jerome.duval@gmail.com>
|
|
Date: Tue, 17 Jun 2014 19:57:08 +0000
|
|
Subject: applying patch glib2-2.38.1.patch
|
|
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index f0840d5..f7df259 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -122,6 +122,10 @@ case $host in
|
|
*-*-beos*)
|
|
glib_native_beos="yes"
|
|
;;
|
|
+ *-*-haiku*)
|
|
+ glib_native_beos="yes"
|
|
+ LIBS="-lnetwork $LIBS"
|
|
+ ;;
|
|
*)
|
|
glib_native_beos="no"
|
|
;;
|
|
@@ -2062,8 +2066,8 @@ AS_IF([ test x"$have_threads" = xposix], [
|
|
# One of them does for most gcc versions and some other platforms/compilers
|
|
# too and could be considered as the canonical way to go.
|
|
case $host in
|
|
- *-*-cygwin*|*-*-darwin*)
|
|
- # skip cygwin and darwin -pthread or -pthreads test
|
|
+ *-*-cygwin*|*-*-darwin*|*-*-haiku*)
|
|
+ # skip cygwin, darwin and haiku -pthread or -pthreads test
|
|
;;
|
|
*-solaris*)
|
|
# These compiler/linker flags work with both Sun Studio and gcc
|
|
@@ -2232,8 +2236,8 @@ if test "x$G_THREAD_LIBS" = xerror; then
|
|
fi
|
|
|
|
case $host in
|
|
- *-*-beos*)
|
|
- G_THREAD_LIBS="-lbe -lroot -lglib-2.0 "
|
|
+ *-*-beos*|*-*-haiku*)
|
|
+ G_THREAD_LIBS="-lbe -lroot"
|
|
G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
|
|
;;
|
|
*)
|
|
@@ -3574,6 +3578,9 @@ case $host in
|
|
*-*-beos*)
|
|
glib_os="#define G_OS_BEOS"
|
|
;;
|
|
+ *-*-haiku*)
|
|
+ glib_os="#define G_OS_HAIKU"
|
|
+ ;;
|
|
*-*-cygwin*)
|
|
glib_os="#define G_OS_UNIX
|
|
#define G_PLATFORM_WIN32
|
|
diff --git a/gio/data-to-c.pl b/gio/data-to-c.pl
|
|
index 20ba2fb..539b7e0 100755
|
|
--- a/gio/data-to-c.pl
|
|
+++ b/gio/data-to-c.pl
|
|
@@ -1,4 +1,4 @@
|
|
-#!/usr/bin/perl
|
|
+#!/usr/bin/env perl
|
|
|
|
# Copyright © 2011 Red Hat, Inc
|
|
#
|
|
diff --git a/gio/gapplicationcommandline.c b/gio/gapplicationcommandline.c
|
|
index 9a0840f..896a889 100644
|
|
--- a/gio/gapplicationcommandline.c
|
|
+++ b/gio/gapplicationcommandline.c
|
|
@@ -29,7 +29,7 @@
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
#include "gunixinputstream.h"
|
|
#endif
|
|
|
|
@@ -201,7 +201,7 @@ g_application_command_line_real_printerr_literal (GApplicationCommandLine *cmdli
|
|
static GInputStream *
|
|
g_application_command_line_real_get_stdin (GApplicationCommandLine *cmdline)
|
|
{
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
return g_unix_input_stream_new (0, FALSE);
|
|
#else
|
|
return g_win32_input_stream_new (GetStdHandle (STD_INPUT_HANDLE), FALSE);
|
|
diff --git a/gio/gdbusauthmechanismsha1.c b/gio/gdbusauthmechanismsha1.c
|
|
index e4f75eb..2c70803 100644
|
|
--- a/gio/gdbusauthmechanismsha1.c
|
|
+++ b/gio/gdbusauthmechanismsha1.c
|
|
@@ -252,7 +252,7 @@ ensure_keyring_directory (GError **error)
|
|
{
|
|
if (g_getenv ("G_DBUS_COOKIE_SHA1_KEYRING_DIR_IGNORE_PERMISSION") == NULL)
|
|
{
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
struct stat statbuf;
|
|
if (stat (path, &statbuf) != 0)
|
|
{
|
|
@@ -947,7 +947,7 @@ mechanism_server_initiate (GDBusAuthMechanism *mechanism,
|
|
|
|
if (initial_response != NULL && strlen (initial_response) > 0)
|
|
{
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
gint64 uid;
|
|
gchar *endp;
|
|
|
|
@@ -1114,7 +1114,7 @@ mechanism_client_initiate (GDBusAuthMechanism *mechanism,
|
|
|
|
*out_initial_response_len = -1;
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
initial_response = g_strdup_printf ("%" G_GINT64_FORMAT, (gint64) getuid ());
|
|
#elif defined (G_OS_WIN32)
|
|
initial_response = _g_dbus_win32_get_user_sid ();
|
|
diff --git a/gio/glocalfile.c b/gio/glocalfile.c
|
|
index 345214d..11eae36 100644
|
|
--- a/gio/glocalfile.c
|
|
+++ b/gio/glocalfile.c
|
|
@@ -27,7 +27,7 @@
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
-#if G_OS_UNIX
|
|
+#if HAVE_DIRENT_H
|
|
#include <dirent.h>
|
|
#endif
|
|
#ifdef HAVE_UNISTD_H
|
|
@@ -67,7 +67,7 @@
|
|
#include "gioerror.h"
|
|
#include <glib/gstdio.h>
|
|
#include "glibintl.h"
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
#include "glib-unix.h"
|
|
#endif
|
|
#include "glib-private.h"
|
|
@@ -1818,7 +1818,7 @@ _g_local_file_has_trash_dir (const char *dirname, dev_t dir_dev)
|
|
return res;
|
|
}
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
gboolean
|
|
_g_local_file_is_lost_found_dir (const char *path, dev_t path_dev)
|
|
{
|
|
diff --git a/gio/glocalfileinfo.h b/gio/glocalfileinfo.h
|
|
index 6d35be5..e286098 100644
|
|
--- a/gio/glocalfileinfo.h
|
|
+++ b/gio/glocalfileinfo.h
|
|
@@ -58,7 +58,7 @@ typedef struct
|
|
|
|
gboolean _g_local_file_has_trash_dir (const char *dirname,
|
|
dev_t dir_dev);
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
gboolean _g_local_file_is_lost_found_dir (const char *path,
|
|
dev_t path_dev);
|
|
#endif
|
|
diff --git a/gio/gsocket.c b/gio/gsocket.c
|
|
index 18e6137..689d3c0 100644
|
|
--- a/gio/gsocket.c
|
|
+++ b/gio/gsocket.c
|
|
@@ -29,7 +29,7 @@
|
|
|
|
#include "gsocket.h"
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
#include "glib-unix.h"
|
|
#endif
|
|
|
|
diff --git a/gio/gthreadedresolver.c b/gio/gthreadedresolver.c
|
|
index 1ffaf15..702cf00 100644
|
|
--- a/gio/gthreadedresolver.c
|
|
+++ b/gio/gthreadedresolver.c
|
|
@@ -245,7 +245,7 @@ lookup_by_address_finish (GResolver *resolver,
|
|
}
|
|
|
|
|
|
-#if defined(G_OS_UNIX)
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
|
|
#ifdef __BIONIC__
|
|
/* Copy from bionic/libc/private/arpa_nameser_compat.h
|
|
@@ -813,7 +813,7 @@ do_lookup_records (GTask *task,
|
|
GList *records;
|
|
GError *error = NULL;
|
|
|
|
-#if defined(G_OS_UNIX)
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
gint len = 512;
|
|
gint herr;
|
|
GByteArray *answer;
|
|
diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c
|
|
index 03f1720..cb438a4 100644
|
|
--- a/gio/gunixmounts.c
|
|
+++ b/gio/gunixmounts.c
|
|
@@ -72,7 +72,6 @@
|
|
#include "glibintl.h"
|
|
#include "gthemedicon.h"
|
|
|
|
-
|
|
#ifdef HAVE_MNTENT_H
|
|
static const char *_resolve_dev_root (void);
|
|
#endif
|
|
@@ -716,6 +715,18 @@ _g_get_unix_mounts (void)
|
|
|
|
return return_list;
|
|
}
|
|
+#elif defined(G_OS_HAIKU)
|
|
+static char *
|
|
+get_mtab_monitor_file (void)
|
|
+{
|
|
+ return NULL;
|
|
+}
|
|
+
|
|
+static GList *
|
|
+_g_get_unix_mounts (void)
|
|
+{
|
|
+ return NULL;
|
|
+}
|
|
#else
|
|
#error No _g_get_unix_mounts() implementation for system
|
|
#endif
|
|
@@ -1106,7 +1117,7 @@ _g_get_unix_mount_points (void)
|
|
|
|
return g_list_reverse (return_list);
|
|
}
|
|
-#elif defined(__INTERIX)
|
|
+#elif defined(__INTERIX) || defined(G_OS_HAIKU)
|
|
static GList *
|
|
_g_get_unix_mount_points (void)
|
|
{
|
|
diff --git a/glib/gbacktrace.c b/glib/gbacktrace.c
|
|
index 4d19d6f..1c46778 100644
|
|
--- a/glib/gbacktrace.c
|
|
+++ b/glib/gbacktrace.c
|
|
@@ -228,7 +228,7 @@ g_on_error_query (const gchar *prg_name)
|
|
void
|
|
g_on_error_stack_trace (const gchar *prg_name)
|
|
{
|
|
-#if defined(G_OS_UNIX) || defined(G_OS_BEOS)
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU)
|
|
pid_t pid;
|
|
gchar buf[16];
|
|
gchar *args[4] = { "gdb", NULL, NULL, NULL };
|
|
diff --git a/glib/glib-unix.h b/glib/glib-unix.h
|
|
index 66ccf74..a03a0cf 100644
|
|
--- a/glib/glib-unix.h
|
|
+++ b/glib/glib-unix.h
|
|
@@ -34,7 +34,7 @@
|
|
|
|
#include <glib.h>
|
|
|
|
-#ifndef G_OS_UNIX
|
|
+#if !defined(G_OS_UNIX) && !defined(G_OS_HAIKU)
|
|
#error "This header may only be used on UNIX"
|
|
#endif
|
|
|
|
diff --git a/glib/gmain.c b/glib/gmain.c
|
|
index 738e69c..4f5dfab 100644
|
|
--- a/glib/gmain.c
|
|
+++ b/glib/gmain.c
|
|
@@ -47,7 +47,7 @@
|
|
#define G_MAIN_POLL_DEBUG
|
|
#endif
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
#include "glib-unix.h"
|
|
#include <pthread.h>
|
|
#ifdef HAVE_EVENTFD
|
|
@@ -73,10 +73,11 @@
|
|
#include <windows.h>
|
|
#endif /* G_OS_WIN32 */
|
|
|
|
-#ifdef G_OS_BEOS
|
|
+#if defined G_OS_BEOS || defined G_OS_HAIKU
|
|
#include <sys/socket.h>
|
|
#include <sys/wait.h>
|
|
-#endif /* G_OS_BEOS */
|
|
+#include <fcntl.h>
|
|
+#endif /* G_OS_BEOS || G_OS_HAIKU */
|
|
|
|
#include "gmain.h"
|
|
|
|
@@ -391,7 +392,7 @@ static gboolean g_child_watch_dispatch (GSource *source,
|
|
GSourceFunc callback,
|
|
gpointer user_data);
|
|
static void g_child_watch_finalize (GSource *source);
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
static void g_unix_signal_handler (int signum);
|
|
static gboolean g_unix_signal_watch_prepare (GSource *source,
|
|
gint *timeout);
|
|
@@ -2259,7 +2260,7 @@ g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
|
|
return FALSE;
|
|
}
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
/**
|
|
* g_source_add_unix_fd:
|
|
* @source: a #GSource
|
|
@@ -2425,7 +2426,7 @@ g_source_query_unix_fd (GSource *source,
|
|
|
|
return poll_fd->revents;
|
|
}
|
|
-#endif /* G_OS_UNIX */
|
|
+#endif /* G_OS_UNIX || G_OS_HAIKU */
|
|
|
|
/**
|
|
* g_get_current_time:
|
|
@@ -5471,7 +5472,7 @@ glib_worker_main (gpointer data)
|
|
{
|
|
g_main_context_iteration (glib_worker_context, TRUE);
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
if (any_unix_signal_pending)
|
|
dispatch_unix_signals ();
|
|
#endif
|
|
@@ -5488,7 +5489,7 @@ g_get_worker_context (void)
|
|
if (g_once_init_enter (&initialised))
|
|
{
|
|
/* mask all signals in the worker thread */
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
sigset_t prev_mask;
|
|
sigset_t all;
|
|
|
|
@@ -5497,7 +5498,7 @@ g_get_worker_context (void)
|
|
#endif
|
|
glib_worker_context = g_main_context_new ();
|
|
g_thread_new ("gmain", glib_worker_main, NULL);
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
pthread_sigmask (SIG_SETMASK, &prev_mask, NULL);
|
|
#endif
|
|
g_once_init_leave (&initialised, TRUE);
|
|
diff --git a/glib/gmain.h b/glib/gmain.h
|
|
index c455353..ad7b330 100644
|
|
--- a/glib/gmain.h
|
|
+++ b/glib/gmain.h
|
|
@@ -471,7 +471,7 @@ void g_source_set_ready_time (GSource *source,
|
|
GLIB_AVAILABLE_IN_2_36
|
|
gint64 g_source_get_ready_time (GSource *source);
|
|
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
GLIB_AVAILABLE_IN_2_36
|
|
gpointer g_source_add_unix_fd (GSource *source,
|
|
gint fd,
|
|
@@ -606,7 +606,7 @@ void g_main_context_invoke (GMainContext *context,
|
|
GLIB_VAR GSourceFuncs g_timeout_funcs;
|
|
GLIB_VAR GSourceFuncs g_child_watch_funcs;
|
|
GLIB_VAR GSourceFuncs g_idle_funcs;
|
|
-#ifdef G_OS_UNIX
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_HAIKU)
|
|
GLIB_VAR GSourceFuncs g_unix_signal_funcs;
|
|
GLIB_VAR GSourceFuncs g_unix_fd_source_funcs;
|
|
#endif
|
|
diff --git a/glib/gstdio.c b/glib/gstdio.c
|
|
index cca4ff5..6f4ae9c 100644
|
|
--- a/glib/gstdio.c
|
|
+++ b/glib/gstdio.c
|
|
@@ -46,7 +46,7 @@
|
|
#include "gstdio.h"
|
|
|
|
|
|
-#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS)
|
|
+#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) && !defined (G_OS_HAIKU)
|
|
#error Please port this to your operating system
|
|
#endif
|
|
|
|
diff --git a/glib/gutils.c b/glib/gutils.c
|
|
index 2620cb6..34f1edd 100644
|
|
--- a/glib/gutils.c
|
|
+++ b/glib/gutils.c
|
|
@@ -77,6 +77,11 @@
|
|
#include "gwin32.h"
|
|
#endif
|
|
|
|
+#if defined(G_OS_HAIKU)
|
|
+#include <FindDirectory.h>
|
|
+#include <fs_info.h>
|
|
+#endif
|
|
+
|
|
|
|
/**
|
|
* SECTION:misc_utils
|
|
@@ -421,7 +426,7 @@ g_find_program_in_path (const gchar *program)
|
|
}
|
|
|
|
path = g_getenv ("PATH");
|
|
-#if defined(G_OS_UNIX) || defined(G_OS_BEOS)
|
|
+#if defined(G_OS_UNIX) || defined(G_OS_BEOS) || defined(G_OS_HAIKU)
|
|
if (path == NULL)
|
|
{
|
|
/* There is no 'PATH' in the environment. The default
|
|
@@ -1467,6 +1472,36 @@ load_user_special_dirs (void)
|
|
|
|
#endif /* HAVE_CARBON */
|
|
|
|
+#if defined(G_OS_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;
|
|
+}
|
|
+#endif /* G_OS_HAIKU */
|
|
+
|
|
#if defined(G_OS_WIN32)
|
|
static void
|
|
load_user_special_dirs (void)
|
|
--
|
|
1.8.3.4
|
|
|
|
|
|
From 092577e9398f25dc86c5dff1b9baea92a13c78e4 Mon Sep 17 00:00:00 2001
|
|
From: Jerome Duval <jerome.duval@gmail.com>
|
|
Date: Thu, 21 Aug 2014 17:08:30 +0000
|
|
Subject: strings.h for strcasecmp
|
|
|
|
|
|
diff --git a/glib/glib-init.c b/glib/glib-init.c
|
|
index 0032ee8..384257f 100644
|
|
--- a/glib/glib-init.c
|
|
+++ b/glib/glib-init.c
|
|
@@ -27,6 +27,7 @@
|
|
#include "gconstructor.h"
|
|
|
|
#include <string.h>
|
|
+#include <strings.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <ctype.h>
|
|
diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
|
|
index 4fcd91c..676c2df 100644
|
|
--- a/glib/gstrfuncs.c
|
|
+++ b/glib/gstrfuncs.c
|
|
@@ -35,6 +35,7 @@
|
|
#include <stdlib.h>
|
|
#include <locale.h>
|
|
#include <string.h>
|
|
+#include <strings.h>
|
|
#include <locale.h>
|
|
#include <errno.h>
|
|
#include <ctype.h> /* For tolower() */
|
|
--
|
|
1.8.3.4
|
|
|