Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
35f18a4
commit 1d31715
Showing
2 changed files
with
393 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
SUMMARY="GLib is a cross-platform software utility library" | ||
DESCRIPTION="GLib is a cross-platform software utility library that began as \ | ||
part of the GTK+ project. However, before releasing version 2 of GTK+, the \ | ||
project's developers decided to separate non-GUI-specific code from the GTK+ \ | ||
platform, thus creating GLib as a separate product. GLib was released as a \ | ||
separate library so other developers, those who did not make use of the \ | ||
GUI-related portions of GTK+, could make use of the non-GUI portions of the \ | ||
library without the overhead of depending on the entire GUI library. | ||
Since GLib is a cross-platform library, applications using it to interface \ | ||
with the operating system are usually portable across different operating \ | ||
systems without major changes | ||
" | ||
HOMEPAGE="http://www.gtk.org/" | ||
COPYRIGHT="1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald | ||
1991-2003 Free Software Foundation, Inc. | ||
1997-2006 University of Cambridge. | ||
1998-2001, 2003-2010 Red Hat, Inc. | ||
2007-2009 Nokia Corporation | ||
2008, 2010 Oracle and/or its affiliates, Inc. All rights | ||
2008-2010 Codethink Limited | ||
2008-2010 Collabora Ltd. | ||
1995-2010 Several others" | ||
LICENSE="GNU LGPL v2" | ||
REVISION="1" | ||
SOURCE_URI="http://ftp.gnome.org/pub/gnome/sources/glib/${portVersion%.*}/glib-$portVersion.tar.xz" | ||
CHECKSUM_SHA256="c8740f1d1a138086eede889b596a511fddda180646ab2f1d98aed4fdb6be7f72" | ||
SOURCE_DIR="glib-$portVersion" | ||
PATCHES="glib2-$portVersion.patchset" | ||
|
||
ARCHITECTURES="x86_gcc2 x86 x86_64" | ||
SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86" | ||
|
||
PROVIDES=" | ||
glib2$secondaryArchSuffix = $portVersion compat >= 2 | ||
cmd:gapplication$secondaryArchSuffix | ||
cmd:gdbus$secondaryArchSuffix | ||
cmd:gdbus_codegen$secondaryArchSuffix | ||
cmd:gio$secondaryArchSuffix | ||
cmd:gio_querymodules$secondaryArchSuffix | ||
cmd:glib_compile_resources$secondaryArchSuffix | ||
cmd:glib_compile_schemas$secondaryArchSuffix | ||
cmd:glib_genmarshal$secondaryArchSuffix | ||
cmd:glib_gettextize$secondaryArchSuffix | ||
cmd:glib_mkenums$secondaryArchSuffix | ||
cmd:gobject_query$secondaryArchSuffix | ||
cmd:gresource$secondaryArchSuffix | ||
cmd:gsettings$secondaryArchSuffix | ||
cmd:gtester$secondaryArchSuffix | ||
cmd:gtester_report$secondaryArchSuffix | ||
lib:libgio_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
lib:libglib_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
lib:libgmodule_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
lib:libgobject_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
lib:libgthread_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
" | ||
REQUIRES=" | ||
haiku$secondaryArchSuffix | ||
gettext$secondaryArchSuffix | ||
lib:libiconv$secondaryArchSuffix | ||
lib:libz$secondaryArchSuffix | ||
lib:libffi$secondaryArchSuffix | ||
lib:libintl$secondaryArchSuffix | ||
lib:libpcre$secondaryArchSuffix >= 1 | ||
" | ||
|
||
PROVIDES_devel=" | ||
glib2${secondaryArchSuffix}_devel = $portVersion compat >= 0 | ||
devel:libgio_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
devel:libglib_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
devel:libgmodule_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
devel:libgobject_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
devel:libgthread_2.0$secondaryArchSuffix = 0.5301.0 compat >= 0 | ||
" | ||
|
||
REQUIRES_devel=" | ||
glib2$secondaryArchSuffix == $portVersion base | ||
devel:libffi$secondaryArchSuffix | ||
devel:libiconv$secondaryArchSuffix | ||
devel:libintl$secondaryArchSuffix | ||
devel:libpcre$secondaryArchSuffix | ||
devel:libz$secondaryArchSuffix | ||
" | ||
|
||
BUILD_REQUIRES=" | ||
haiku${secondaryArchSuffix}_devel | ||
devel:libiconv$secondaryArchSuffix | ||
devel:libz$secondaryArchSuffix | ||
devel:libffi$secondaryArchSuffix | ||
devel:libintl$secondaryArchSuffix | ||
devel:libpcre$secondaryArchSuffix >= 1 | ||
" | ||
BUILD_PREREQUIRES=" | ||
cmd:gcc$secondaryArchSuffix | ||
cmd:ld$secondaryArchSuffix | ||
cmd:libtoolize$secondaryArchSuffix | ||
cmd:aclocal | ||
cmd:autoconf | ||
cmd:make | ||
cmd:pkg_config$secondaryArchSuffix | ||
cmd:python | ||
" | ||
|
||
BUILD() | ||
{ | ||
autoreconf -fi | ||
runConfigure ./configure CFLAGS=-D_BSD_SOURCE | ||
|
||
# There seem to be a problem with libtool, and without this some libraries | ||
# would not be found during the build. | ||
mkdir -p gobject/.libs gio/.libs | ||
ln -sf ../../glib/.libs gobject/.libs/lib | ||
|
||
make $jobArgs | ||
} | ||
|
||
INSTALL() | ||
{ | ||
make install | ||
|
||
# remove libtool library files | ||
rm $libDir/lib*.la | ||
|
||
prepareInstalledDevelLibs libgio-2.0 \ | ||
libglib-2.0 \ | ||
libgmodule-2.0 \ | ||
libgobject-2.0 \ | ||
libgthread-2.0 | ||
fixPkgconfig | ||
|
||
# The libtool files reference other libraries using the wrong paths, which | ||
# creates a lot of confusion. Fix them so correct paths are used. | ||
local develPackageName="${portName}_devel-$portFullVersion" | ||
local packageLinksDir=$(dirname $portPackageLinksDir) | ||
local ffiLinksDir="$packageLinksDir/${develPackageName}/devel~libffi$secondaryArchSuffix/$relativeDevelopLibDir" | ||
sed -i -e "s,^\(Libs.private.*\)-L.* \(-l.*\)$,\1-L$ffiLinksDir \2," \ | ||
$developLibDir/pkgconfig/gobject-2.0.pc | ||
local zlibLinksDir="$packageLinksDir/${develPackageName}/devel~libz$secondaryArchSuffix/$relativeDevelopLibDir" | ||
sed -i -e "s,^\(Libs.private.*\)-L.* \(-l.*\)$,\1-L$zlibLinksDir \2," \ | ||
$developLibDir/pkgconfig/gio-2.0.pc | ||
|
||
|
||
# move the glibconfig header into devel as well | ||
mv $libDir/glib-2.0 $developLibDir | ||
|
||
fixPkgconfig | ||
|
||
# devel package | ||
packageEntries devel \ | ||
$developDir | ||
|
||
rm $libDir/charset.alias | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,241 @@ | ||
From cf040d5469f1683a84a671dfbebaeded12bb60c1 Mon Sep 17 00:00:00 2001 | ||
From: Jerome Duval <jerome.duval@gmail.com> | ||
Date: Sat, 19 Dec 2015 14:51:01 +0000 | ||
Subject: glib_compile_schemas: links against gio, gobject and gmodule. | ||
|
||
Otherwise build fails on Haiku. | ||
|
||
diff --git a/gio/Makefile.am b/gio/Makefile.am | ||
index 5d5d741..d4caed9 100644 | ||
--- a/gio/Makefile.am | ||
+++ b/gio/Makefile.am | ||
@@ -728,7 +728,11 @@ gio_querymodules_LDADD = libgio-2.0.la \ | ||
gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c.pl | ||
$(AM_V_GEN) $(srcdir)/data-to-c.pl $(top_srcdir)/glib/gconstructor.h gconstructor_code > $@.tmp && mv $@.tmp $@ | ||
|
||
-glib_compile_schemas_LDADD = $(top_builddir)/glib/libglib-2.0.la | ||
+glib_compile_schemas_LDADD = libgio-2.0.la \ | ||
+ $(top_builddir)/gobject/libgobject-2.0.la \ | ||
+ $(top_builddir)/gmodule/libgmodule-2.0.la \ | ||
+ $(top_builddir)/glib/libglib-2.0.la \ | ||
+ $(NULL) | ||
glib_compile_schemas_SOURCES = \ | ||
gconstructor_as_data.h \ | ||
gvdb/gvdb-format.h \ | ||
-- | ||
2.2.2 | ||
|
||
|
||
From 0095964aadf305fde0a5b58ea9b5ba03d9787d50 Mon Sep 17 00:00:00 2001 | ||
From: Jerome Duval <jerome.duval@gmail.com> | ||
Date: Sat, 19 Dec 2015 14:59:42 +0000 | ||
Subject: configure.ac: on Haiku | ||
|
||
* don't use -pthread | ||
* use -lbe -lroot as thread related libs. | ||
|
||
diff --git a/configure.ac b/configure.ac | ||
index 339defc..9d8bed2 100644 | ||
--- a/configure.ac | ||
+++ b/configure.ac | ||
@@ -152,6 +152,9 @@ case "$host" in | ||
;; | ||
esac | ||
case $host in | ||
+ *-*-haiku*) | ||
+ LIBS="-lnetwork $LIBS" | ||
+ ;; | ||
*-*-linux*) | ||
glib_os_linux=yes | ||
;; | ||
@@ -1876,8 +1879,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 | ||
@@ -2042,6 +2045,15 @@ if test "x$G_THREAD_LIBS" = xerror; then | ||
AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2) | ||
fi | ||
|
||
+case $host in | ||
+ *-*-haiku*) | ||
+ G_THREAD_LIBS="-lbe -lroot" | ||
+ G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs" | ||
+ ;; | ||
+ *) | ||
+ ;; | ||
+esac | ||
+ | ||
AC_MSG_CHECKING(thread related libraries) | ||
AC_MSG_RESULT($G_THREAD_LIBS) | ||
|
||
-- | ||
2.2.2 | ||
|
||
|
||
From 00208cb8f052a1e0acafdeb558d580d4cceb2855 Mon Sep 17 00:00:00 2001 | ||
From: Jerome Duval <jerome.duval@gmail.com> | ||
Date: Sat, 19 Dec 2015 15:06:17 +0000 | ||
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 d9d8f37..eb5945c 100644 | ||
--- a/gio/gdbusmessage.c | ||
+++ b/gio/gdbusmessage.c | ||
@@ -33,6 +33,9 @@ | ||
#elif MAJOR_IN_SYSMACROS | ||
#include <sys/sysmacros.h> | ||
#endif | ||
+#ifdef __HAIKU__ | ||
+#include <SupportDefs.h> | ||
+#endif | ||
|
||
#include "gdbusutils.h" | ||
#include "gdbusmessage.h" | ||
@@ -3474,8 +3477,13 @@ g_dbus_message_print (GDBusMessage *message, | ||
fs = g_string_new (NULL); | ||
if (fstat (fds[n], &statbuf) == 0) | ||
{ | ||
+#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 ? "," : "", | ||
major (statbuf.st_dev), minor (statbuf.st_dev)); | ||
+#endif | ||
g_string_append_printf (fs, "%s" "mode=0%o", fs->len > 0 ? "," : "", | ||
statbuf.st_mode); | ||
g_string_append_printf (fs, "%s" "ino=%" G_GUINT64_FORMAT, fs->len > 0 ? "," : "", | ||
@@ -3484,8 +3492,13 @@ g_dbus_message_print (GDBusMessage *message, | ||
(guint) statbuf.st_uid); | ||
g_string_append_printf (fs, "%s" "gid=%u", fs->len > 0 ? "," : "", | ||
(guint) statbuf.st_gid); | ||
+#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 ? "," : "", | ||
major (statbuf.st_rdev), minor (statbuf.st_rdev)); | ||
+#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.2.2 | ||
|
||
|
||
From 55022ad00cba573ec61795760b3cbf30f1efb284 Mon Sep 17 00:00:00 2001 | ||
From: Jerome Duval <jerome.duval@gmail.com> | ||
Date: Sat, 19 Dec 2015 15:09:39 +0000 | ||
Subject: gunixmounts.c: on Haiku | ||
|
||
* define get_mtab_monitor_file() and _g_get_unix_mounts(). | ||
* like Interix, _g_get_unix_mount_points() calls _g_get_unix_mounts(). | ||
|
||
diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c | ||
index 2e2ff5e..8d5e752 100644 | ||
--- a/gio/gunixmounts.c | ||
+++ b/gio/gunixmounts.c | ||
@@ -712,7 +712,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 | ||
@@ -1110,8 +1121,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.2.2 | ||
|
||
|
||
From 4bb1d1e5f4c0284cbc235b9747eb5d2deaa6f4c8 Mon Sep 17 00:00:00 2001 | ||
From: Jerome Duval <jerome.duval@gmail.com> | ||
Date: Sat, 19 Dec 2015 15:12:40 +0000 | ||
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 e82ce54..bb2b72a 100644 | ||
--- a/glib/gutils.c | ||
+++ b/glib/gutils.c | ||
@@ -69,6 +69,11 @@ | ||
#include "gwin32.h" | ||
#endif | ||
|
||
+#if defined(__HAIKU__) | ||
+#include <FindDirectory.h> | ||
+#include <fs_info.h> | ||
+#endif | ||
+ | ||
|
||
/** | ||
* SECTION:misc_utils | ||
@@ -1421,6 +1426,34 @@ load_user_special_dirs (void) | ||
g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = find_folder (kMovieDocumentsFolderType); | ||
} | ||
|
||
+#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.2.2 | ||
|