From de33ea487757bf432461a32804c961a6ffb5b4eb Mon Sep 17 00:00:00 2001 From: Scott McCreary Date: Sun, 8 Feb 2009 08:23:41 +0000 Subject: [PATCH] Applied previous glib patch to glib-2.19.6 and created this new diff. Still needs cleaning up before it can be sent upstream though. --- dev-libs/glib/glib-2.19.6-haiku.diff | 552 +++++++++++++++++++++++++++ 1 file changed, 552 insertions(+) create mode 100644 dev-libs/glib/glib-2.19.6-haiku.diff diff --git a/dev-libs/glib/glib-2.19.6-haiku.diff b/dev-libs/glib/glib-2.19.6-haiku.diff new file mode 100644 index 000000000..4013823d7 --- /dev/null +++ b/dev-libs/glib/glib-2.19.6-haiku.diff @@ -0,0 +1,552 @@ +diff -urN glib-2.19.6/configure.in glib-2.19.6-haiku/configure.in +--- glib-2.19.6/configure.in 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/configure.in 2009-02-08 07:48:49.000000000 +0000 +@@ -112,6 +112,17 @@ + esac + AC_MSG_RESULT([$glib_native_beos]) + ++AC_MSG_CHECKING([for Haiku]) ++case $host in ++ *-*-haiku*) ++ glib_native_haiku="yes" ++ ;; ++ *) ++ glib_native_haiku="no" ++ ;; ++esac ++AC_MSG_RESULT([$glib_native_haiku]) ++ + dnl + + AC_MSG_CHECKING([for Win32]) +@@ -3301,6 +3312,9 @@ + #define G_PLATFORM_WIN32 + #define G_WITH_CYGWIN" + ;; ++ *-*-haiku*) ++ glib_os="#define G_OS_HAIKU" ++ ;; + *-*-mingw*) + glib_os="#define G_OS_WIN32 + #define G_PLATFORM_WIN32" +diff -urN glib-2.19.6/docs/reference/glib/glib-overrides.txt glib-2.19.6-haiku/docs/reference/glib/glib-overrides.txt +--- glib-2.19.6/docs/reference/glib/glib-overrides.txt 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/glib-overrides.txt 2009-02-08 07:48:49.000000000 +0000 +@@ -215,6 +215,11 @@ + #define G_OS_BEOS + + ++ ++G_OS_HAIKU ++#define G_OS_HAIKU ++ ++ + # g_ascii_isxxx + + +diff -urN glib-2.19.6/docs/reference/glib/glib-sections.txt glib-2.19.6-haiku/docs/reference/glib/glib-sections.txt +--- glib-2.19.6/docs/reference/glib/glib-sections.txt 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/glib-sections.txt 2009-02-08 07:48:49.000000000 +0000 +@@ -126,6 +126,7 @@ + + G_OS_WIN32 + G_OS_BEOS ++G_OS_HAIKU + G_OS_UNIX + + +diff -urN glib-2.19.6/docs/reference/glib/html/glib-Standard-Macros.html glib-2.19.6-haiku/docs/reference/glib/html/glib-Standard-Macros.html +--- glib-2.19.6/docs/reference/glib/html/glib-Standard-Macros.html 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/html/glib-Standard-Macros.html 2009-02-08 07:48:49.000000000 +0000 +@@ -61,6 +61,7 @@ + + #define G_OS_WIN32 + #define G_OS_BEOS ++#define G_OS_HAIKU + #define G_OS_UNIX + + #define G_DIR_SEPARATOR +@@ -116,6 +117,15 @@ + BeOS-specific code in "#ifdef G_OS_BEOS". +

+ ++
++

G_OS_HAIKU

++
#define G_OS_HAIKU
++
++

++This macro is defined only on Haiku. So you can bracket ++Haiku-specific code in "#ifdef G_OS_HAIKU". ++

++
+
+
+

G_OS_UNIX

+diff -urN glib-2.19.6/docs/reference/glib/html/glib.devhelp glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp +--- glib-2.19.6/docs/reference/glib/html/glib.devhelp 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp 2009-02-08 07:48:49.000000000 +0000 +@@ -191,6 +191,7 @@ + + + ++ + + + +diff -urN glib-2.19.6/docs/reference/glib/html/glib.devhelp2 glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp2 +--- glib-2.19.6/docs/reference/glib/html/glib.devhelp2 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/html/glib.devhelp2 2009-02-08 07:48:49.000000000 +0000 +@@ -191,6 +191,7 @@ + + + ++ + + + +diff -urN glib-2.19.6/docs/reference/glib/html/ix01.html glib-2.19.6-haiku/docs/reference/glib/html/ix01.html +--- glib-2.19.6/docs/reference/glib/html/ix01.html 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/html/ix01.html 2009-02-08 07:48:50.000000000 +0000 +@@ -2121,6 +2121,8 @@ + +
G_OS_BEOS, G_OS_BEOS +
++
G_OS_HAIKU, G_OS_HAIKU ++
+
G_OS_UNIX, G_OS_UNIX +
+
G_OS_WIN32, G_OS_WIN32 +diff -urN glib-2.19.6/docs/reference/glib/tmpl/macros.sgml glib-2.19.6-haiku/docs/reference/glib/tmpl/macros.sgml +--- glib-2.19.6/docs/reference/glib/tmpl/macros.sgml 2009-02-08 07:46:22.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/tmpl/macros.sgml 2009-02-08 07:48:50.000000000 +0000 +@@ -33,6 +33,14 @@ + + + ++ ++ ++This macro is defined only on Haiku. So you can bracket ++Haiku-specific code in "#ifdef G_OS_HAIKU". ++ ++ ++ ++ + + + This macro is defined only on UNIX. So you can bracket +diff -urN glib-2.19.6/docs/reference/glib/xml/api-index-full.xml glib-2.19.6-haiku/docs/reference/glib/xml/api-index-full.xml +--- glib-2.19.6/docs/reference/glib/xml/api-index-full.xml 2009-02-08 07:46:23.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/xml/api-index-full.xml 2009-02-08 07:48:50.000000000 +0000 +@@ -1027,6 +1027,7 @@ + g_option_group_set_translation_domain + G_OPTION_REMAINING + G_OS_BEOS ++G_OS_HAIKU + G_OS_UNIX + G_OS_WIN32 + +diff -urN glib-2.19.6/docs/reference/glib/xml/macros.xml glib-2.19.6-haiku/docs/reference/glib/xml/macros.xml +--- glib-2.19.6/docs/reference/glib/xml/macros.xml 2009-02-08 07:46:23.000000000 +0000 ++++ glib-2.19.6-haiku/docs/reference/glib/xml/macros.xml 2009-02-08 07:48:50.000000000 +0000 +@@ -19,6 +19,7 @@ + + #define G_OS_WIN32 + #define G_OS_BEOS ++#define G_OS_HAIKU + #define G_OS_UNIX + + #define G_DIR_SEPARATOR +@@ -81,6 +82,14 @@ + This macro is defined only on BeOS. So you can bracket + BeOS-specific code in "#ifdef G_OS_BEOS". + ++ ++G_OS_HAIKU ++G_OS_HAIKU#define G_OS_HAIKU ++ ++ ++This macro is defined only on Haiku. So you can bracket ++Haiku-specific code in "#ifdef G_OS_HAIKU". ++ + + G_OS_UNIX + G_OS_UNIX#define G_OS_UNIX +diff -urN glib-2.19.6/gio/Makefile.am glib-2.19.6-haiku/gio/Makefile.am +--- glib-2.19.6/gio/Makefile.am 2009-02-08 07:46:25.000000000 +0000 ++++ glib-2.19.6-haiku/gio/Makefile.am 2009-02-08 07:48:50.000000000 +0000 +@@ -162,7 +162,7 @@ + + endif + +-SUBDIRS += tests ++#SUBDIRS += tests + + libgio_2_0_la_SOURCES = \ + gappinfo.c \ +diff -urN glib-2.19.6/gio/gunixinputstream.c glib-2.19.6-haiku/gio/gunixinputstream.c +--- glib-2.19.6/gio/gunixinputstream.c 2009-02-08 07:46:42.000000000 +0000 ++++ glib-2.19.6-haiku/gio/gunixinputstream.c 2009-02-08 07:48:50.000000000 +0000 +@@ -333,6 +333,9 @@ + GCancellable *cancellable, + GError **error) + { ++#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) ++ return -1; ++#else + GUnixInputStream *unix_stream; + gssize res; + GPollFD poll_fds[2]; +@@ -383,6 +386,7 @@ + } + + return res; ++#endif + } + + static gboolean +@@ -488,6 +492,7 @@ + GAsyncReadyCallback callback, + gpointer user_data) + { ++#if !defined(G_OS_BEOS) &&!defined(G_OS_HAIKU) + GSource *source; + GUnixInputStream *unix_stream; + ReadAsyncData *data; +@@ -510,6 +515,7 @@ + g_source_attach (source, NULL); + + g_source_unref (source); ++#endif + } + + static gssize +diff -urN glib-2.19.6/gio/gunixmounts.c glib-2.19.6-haiku/gio/gunixmounts.c +--- glib-2.19.6/gio/gunixmounts.c 2009-02-08 07:46:42.000000000 +0000 ++++ glib-2.19.6-haiku/gio/gunixmounts.c 2009-02-08 07:48:50.000000000 +0000 +@@ -597,6 +597,16 @@ + + return g_list_reverse (return_list); + } ++ ++#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) ++ ++static GList * ++_g_get_unix_mounts (void) ++{ ++ GList *return_list = NULL; ++ return return_list; ++} ++ + #else + #error No _g_get_unix_mounts() implementation for system + #endif +@@ -975,6 +985,16 @@ + + return g_list_reverse (return_list); + } ++ ++#elif defined(G_OS_BEOS) || defined(G_OS_HAIKU) ++ ++static GList * ++_g_get_unix_mount_points (void) ++{ ++ GList *return_list = NULL; ++ return return_list; ++} ++ + #else + #error No g_get_mount_table() implementation for system + #endif +diff -urN glib-2.19.6/gio/gunixoutputstream.c glib-2.19.6-haiku/gio/gunixoutputstream.c +--- glib-2.19.6/gio/gunixoutputstream.c 2009-02-08 07:46:25.000000000 +0000 ++++ glib-2.19.6-haiku/gio/gunixoutputstream.c 2009-02-08 07:48:50.000000000 +0000 +@@ -319,6 +319,9 @@ + GCancellable *cancellable, + GError **error) + { ++#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) ++ return -1; ++#else + GUnixOutputStream *unix_stream; + gssize res; + GPollFD poll_fds[2]; +@@ -370,6 +373,7 @@ + } + + return res; ++#endif + } + + static gboolean +@@ -475,6 +479,7 @@ + GAsyncReadyCallback callback, + gpointer user_data) + { ++#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) + GSource *source; + GUnixOutputStream *unix_stream; + WriteAsyncData *data; +@@ -497,6 +502,7 @@ + g_source_attach (source, NULL); + + g_source_unref (source); ++#endif + } + + static gssize +diff -urN glib-2.19.6/gio/makegioalias.pl glib-2.19.6-haiku/gio/makegioalias.pl +--- glib-2.19.6/gio/makegioalias.pl 2009-02-08 07:46:42.000000000 +0000 ++++ glib-2.19.6-haiku/gio/makegioalias.pl 2009-02-08 07:48:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/boot/home/config/bin/perl -w + + my $do_def = 0; + +diff -urN glib-2.19.6/gio/xdgmime/xdgmimealias.c glib-2.19.6-haiku/gio/xdgmime/xdgmimealias.c +--- glib-2.19.6/gio/xdgmime/xdgmimealias.c 2009-02-08 07:46:42.000000000 +0000 ++++ glib-2.19.6-haiku/gio/xdgmime/xdgmimealias.c 2009-02-08 07:48:50.000000000 +0000 +@@ -35,7 +35,7 @@ + #include + #include + #include +-#include ++//#include + + #ifndef FALSE + #define FALSE (0) +diff -urN glib-2.19.6/gio/xdgmime/xdgmimecache.c glib-2.19.6-haiku/gio/xdgmime/xdgmimecache.c +--- glib-2.19.6/gio/xdgmime/xdgmimecache.c 2009-02-08 07:46:42.000000000 +0000 ++++ glib-2.19.6-haiku/gio/xdgmime/xdgmimecache.c 2009-02-08 07:48:50.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include + #include +-#include ++//#include + #include + + #include /* for ntohl/ntohs */ +diff -urN glib-2.19.6/gio/xdgmime/xdgmimeparent.c glib-2.19.6-haiku/gio/xdgmime/xdgmimeparent.c +--- glib-2.19.6/gio/xdgmime/xdgmimeparent.c 2009-02-08 07:46:42.000000000 +0000 ++++ glib-2.19.6-haiku/gio/xdgmime/xdgmimeparent.c 2009-02-08 07:48:50.000000000 +0000 +@@ -35,7 +35,7 @@ + #include + #include + #include +-#include ++//#include + + #ifndef FALSE + #define FALSE (0) +diff -urN glib-2.19.6/glib/Makefile.am glib-2.19.6-haiku/glib/Makefile.am +--- glib-2.19.6/glib/Makefile.am 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/Makefile.am 2009-02-08 07:48:50.000000000 +0000 +@@ -19,7 +19,7 @@ + gregex_h = + endif + +-SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests ++SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . + + DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests + +diff -urN glib-2.19.6/glib/gbacktrace.c glib-2.19.6-haiku/glib/gbacktrace.c +--- glib-2.19.6/glib/gbacktrace.c 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gbacktrace.c 2009-02-08 07:48:50.000000000 +0000 +@@ -158,7 +158,7 @@ + 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 }; +@@ -193,7 +193,7 @@ + #endif + } + +-#ifndef G_OS_WIN32 ++#if !defined(G_OS_WIN32) && !defined(G_OS_BEOS) + + static gboolean stack_trace_done = FALSE; + +diff -urN glib-2.19.6/glib/gmain.c glib-2.19.6-haiku/glib/gmain.c +--- glib-2.19.6/glib/gmain.c 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gmain.c 2009-02-08 07:48:51.000000000 +0000 +@@ -70,6 +70,12 @@ + #include + #endif /* G_OS_BEOS */ + ++#ifdef G_OS_HAIKU ++#include ++#include ++#include "fcntl.h" ++#endif /* G_OS_HAIKU */ ++ + #ifdef G_OS_UNIX + #include + #include +@@ -3699,6 +3705,7 @@ + static void + g_child_watch_source_init_multi_threaded (void) + { ++#if !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) + GError *error = NULL; + struct sigaction action; + +@@ -3718,6 +3725,7 @@ + sigemptyset (&action.sa_mask); + action.sa_flags = SA_RESTART | SA_NOCLDSTOP; + sigaction (SIGCHLD, &action, NULL); ++#endif + } + + static void +diff -urN glib-2.19.6/glib/gslice.c glib-2.19.6-haiku/glib/gslice.c +--- glib-2.19.6/glib/gslice.c 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gslice.c 2009-02-08 07:48:51.000000000 +0000 +@@ -302,6 +302,8 @@ + GetSystemInfo (&system_info); + sys_page_size = system_info.dwPageSize; + } ++#elif defined(G_OS_BEOS) ++ sys_page_size = 4096; + #else + sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ + #endif +diff -urN glib-2.19.6/glib/gspawn.c glib-2.19.6-haiku/glib/gspawn.c +--- glib-2.19.6/glib/gspawn.c 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gspawn.c 2009-02-08 07:48:51.000000000 +0000 +@@ -238,6 +238,9 @@ + gint *exit_status, + GError **error) + { ++#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) ++ return FALSE; ++#else + gint outpipe = -1; + gint errpipe = -1; + GPid pid; +@@ -433,6 +436,7 @@ + + return TRUE; + } ++#endif + } + + /** +@@ -909,7 +913,7 @@ + gint fd; + gint res = 0; + +-#ifdef HAVE_SYS_RESOURCE_H ++#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) + struct rlimit rl; + #endif + +@@ -952,7 +956,7 @@ + + #endif + +-#ifdef HAVE_SYS_RESOURCE_H ++#if defined(HAVE_SYS_RESOURCE_H) && !defined(G_OS_BEOS) && !defined(G_OS_HAIKU) + + if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) + open_max = rl.rlim_max; +diff -urN glib-2.19.6/glib/gstdio.c glib-2.19.6-haiku/glib/gstdio.c +--- glib-2.19.6/glib/gstdio.c 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gstdio.c 2009-02-08 07:48:51.000000000 +0000 +@@ -47,7 +47,7 @@ + + #include "galias.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 -urN glib-2.19.6/glib/gstrfuncs.c glib-2.19.6-haiku/glib/gstrfuncs.c +--- glib-2.19.6/glib/gstrfuncs.c 2009-02-08 07:46:23.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gstrfuncs.c 2009-02-08 07:48:51.000000000 +0000 +@@ -1410,7 +1410,7 @@ + #ifdef HAVE_STRSIGNAL + const char *msg_locale; + +-#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) ++#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) || defined(G_WITH_CYGWIN) + extern const char *strsignal(int); + #else + /* this is declared differently (const) in string.h on BeOS */ +diff -urN glib-2.19.6/glib/gtester.c glib-2.19.6-haiku/glib/gtester.c +--- glib-2.19.6/glib/gtester.c 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gtester.c 2009-02-08 07:48:51.000000000 +0000 +@@ -630,6 +630,7 @@ + * we must fiddle with sigaction() *before* glib is used, otherwise + * we could revoke signal hanmdler setups from glib initialization code. + */ ++#ifdef SA_RESTART + if (TRUE) + { + struct sigaction sa; +@@ -639,6 +640,7 @@ + sa.sa_flags = SA_RESTART; + sigaction (SIGCHLD, &sa, &osa); + } ++#endif + + g_set_prgname (argv[0]); + parse_args (&argc, &argv); +diff -urN glib-2.19.6/glib/gutils.c glib-2.19.6-haiku/glib/gutils.c +--- glib-2.19.6/glib/gutils.c 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/gutils.c 2009-02-08 07:48:51.000000000 +0000 +@@ -478,7 +478,7 @@ + } + + 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 +@@ -2311,6 +2311,21 @@ + } + #endif /* G_OS_WIN32 */ + ++#if defined(G_OS_BEOS) || defined(G_OS_HAIKU) ++static void ++load_user_special_dirs (void) ++{ ++ g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_strdup("$HOME/Desktop"); ++ g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = g_strdup("$HOME"); ++ g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_strdup("$HOME/Desktop"); ++ 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_BEOS */ ++ + static void g_init_user_config_dir (void); + + #if defined(G_OS_UNIX) && !defined(HAVE_CARBON) +diff -urN glib-2.19.6/glib/makegalias.pl glib-2.19.6-haiku/glib/makegalias.pl +--- glib-2.19.6/glib/makegalias.pl 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/glib/makegalias.pl 2009-02-08 07:48:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/boot/home/config/bin/perl -w + + my $do_def = 0; + +diff -urN glib-2.19.6/gobject/makegobjectalias.pl glib-2.19.6-haiku/gobject/makegobjectalias.pl +--- glib-2.19.6/gobject/makegobjectalias.pl 2009-02-08 07:46:24.000000000 +0000 ++++ glib-2.19.6-haiku/gobject/makegobjectalias.pl 2009-02-08 07:48:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/boot/home/config/bin/perl -w + + my $do_def = 0; +