Import mingw-w64-glib2 from AUR
Use pkgconfig file for intl dependency, otherwise transitive dependency iconv is not added correctly when using pkgconfig --static flag.
This commit is contained in:
parent
b12ed5b227
commit
9acd7dd342
|
@ -0,0 +1,316 @@
|
|||
diff -Naur glib-2.46.0-orig/glib/gstdio.c glib-2.46.0/glib/gstdio.c
|
||||
--- glib-2.46.0-orig/glib/gstdio.c 2015-02-26 15:57:09.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gstdio.c 2015-09-22 09:08:58.032066100 +0300
|
||||
@@ -192,6 +192,11 @@
|
||||
int mode)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
+ HANDLE hFile;
|
||||
+ DWORD dwDesiredAccess = 0;
|
||||
+ DWORD dwFlagsAndAttributes = 0;
|
||||
+ DWORD dwDisposition = OPEN_EXISTING;
|
||||
+ DWORD dwSharedAccess = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
|
||||
wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
|
||||
int retval;
|
||||
int save_errno;
|
||||
@@ -202,12 +207,114 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
- retval = _wopen (wfilename, flags, mode);
|
||||
- save_errno = errno;
|
||||
+ /* Set up the access modes and other attributes */
|
||||
+ if ((flags & _O_CREAT) && (mode & _S_IREAD))
|
||||
+ {
|
||||
+ if (! (mode & _S_IWRITE))
|
||||
+ dwFlagsAndAttributes = FILE_ATTRIBUTE_READONLY; /* Sets file to 'read only' after the file gets closed */
|
||||
+ }
|
||||
+ if ( !(flags & _O_ACCMODE))
|
||||
+ {
|
||||
+ /* Equates to _O_RDONLY */
|
||||
+ if (flags & _O_TRUNC)
|
||||
+ {
|
||||
+ errno = EINVAL;
|
||||
+ g_free (wfilename);
|
||||
+ return -1;
|
||||
+ }
|
||||
|
||||
- g_free (wfilename);
|
||||
+ dwDesiredAccess |= GENERIC_READ;
|
||||
+ dwSharedAccess |= FILE_SHARE_WRITE;
|
||||
+ }
|
||||
+ if (flags & _O_WRONLY)
|
||||
+ {
|
||||
+ if (flags & _O_RDWR)
|
||||
+ {
|
||||
+ errno = EINVAL;
|
||||
+ g_free (wfilename);
|
||||
+ return -1;
|
||||
+ }
|
||||
|
||||
+ dwDesiredAccess |= GENERIC_WRITE;
|
||||
+ }
|
||||
+ if (flags & _O_RDWR)
|
||||
+ {
|
||||
+ dwDesiredAccess |= GENERIC_READ;
|
||||
+ dwDesiredAccess |= GENERIC_WRITE;
|
||||
+ }
|
||||
+ if (flags & _O_TRUNC)
|
||||
+ {
|
||||
+ if (flags & _O_CREAT)
|
||||
+ dwDisposition = CREATE_ALWAYS;
|
||||
+ else
|
||||
+ dwDisposition = TRUNCATE_EXISTING;
|
||||
+ }
|
||||
+ if ((flags & _O_CREAT) && !(flags & _O_TRUNC))
|
||||
+ {
|
||||
+ if (flags & _O_EXCL)
|
||||
+ dwDisposition = CREATE_NEW;
|
||||
+ else
|
||||
+ dwDisposition = OPEN_ALWAYS;
|
||||
+ }
|
||||
+ if (flags & _O_CREAT)
|
||||
+ {
|
||||
+ /* Handle the other flags that can be attached to _O_CREAT */
|
||||
+ if ((flags & _O_TEMPORARY) || (flags & _O_SHORT_LIVED))
|
||||
+ dwFlagsAndAttributes |= FILE_ATTRIBUTE_TEMPORARY;
|
||||
+
|
||||
+ if (flags & _O_TEMPORARY)
|
||||
+ dwFlagsAndAttributes |= FILE_FLAG_DELETE_ON_CLOSE;
|
||||
+ }
|
||||
+ if ((flags & _O_SEQUENTIAL) || (flags & _O_APPEND))
|
||||
+ {
|
||||
+ dwFlagsAndAttributes |= FILE_FLAG_SEQUENTIAL_SCAN;
|
||||
+ }
|
||||
+ else if (flags & _O_RANDOM)
|
||||
+ {
|
||||
+ dwFlagsAndAttributes |= FILE_FLAG_RANDOM_ACCESS;
|
||||
+ }
|
||||
+
|
||||
+ if (0 == dwFlagsAndAttributes)
|
||||
+ dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL;
|
||||
+ hFile = CreateFileW(wfilename, dwDesiredAccess, dwSharedAccess, NULL, dwDisposition, dwFlagsAndAttributes, NULL);
|
||||
+
|
||||
+ if (INVALID_HANDLE_VALUE == hFile)
|
||||
+ {
|
||||
+ retval = (-1);
|
||||
+
|
||||
+ switch (GetLastError ())
|
||||
+ {
|
||||
+#define CASE(a,b) case ERROR_##a: errno = b; break
|
||||
+ CASE (FILE_NOT_FOUND, ENOENT);
|
||||
+ CASE (PATH_NOT_FOUND, ENOENT);
|
||||
+ CASE (ACCESS_DENIED, EACCES);
|
||||
+ CASE (NOT_SAME_DEVICE, EXDEV);
|
||||
+ CASE (LOCK_VIOLATION, EACCES);
|
||||
+ CASE (SHARING_VIOLATION, EACCES);
|
||||
+ CASE (FILE_EXISTS, EEXIST);
|
||||
+ CASE (ALREADY_EXISTS, EEXIST);
|
||||
+#undef CASE
|
||||
+ default: errno = EIO;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ retval = _open_osfhandle((long)hFile, flags);
|
||||
+
|
||||
+ if ((-1) != retval)
|
||||
+ {
|
||||
+ /* We have a valid file handle. Set its translation mode to text or binary, as appropriate */
|
||||
+ if ((!(flags & _O_TEXT)) && (_fmode == _O_BINARY))
|
||||
+ _setmode(retval, _O_BINARY);
|
||||
+ else if ((flags & _O_TEXT) || (_fmode == _O_TEXT))
|
||||
+ _setmode(retval, _O_TEXT);
|
||||
+ else
|
||||
+ _setmode(retval, _O_BINARY);
|
||||
+ }
|
||||
+
|
||||
+ save_errno = errno;
|
||||
+ g_free (wfilename);
|
||||
errno = save_errno;
|
||||
+
|
||||
return retval;
|
||||
#else
|
||||
int fd;
|
||||
@@ -254,6 +361,8 @@
|
||||
int mode)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
+ HANDLE hFile;
|
||||
+ DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL;
|
||||
wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
|
||||
int retval;
|
||||
int save_errno;
|
||||
@@ -264,12 +373,41 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
- retval = _wcreat (wfilename, mode);
|
||||
- save_errno = errno;
|
||||
+ if (mode & _S_IREAD)
|
||||
+ {
|
||||
+ if (! (mode & _S_IWRITE))
|
||||
+ dwFlagsAndAttributes = FILE_ATTRIBUTE_READONLY; /* Sets file to 'read only' after the file gets closed */
|
||||
+ }
|
||||
+
|
||||
+ hFile = CreateFileW(wfilename, (GENERIC_READ | GENERIC_WRITE), (FILE_SHARE_READ | FILE_SHARE_DELETE),
|
||||
+ NULL, CREATE_ALWAYS, dwFlagsAndAttributes, NULL);
|
||||
+
|
||||
+ if (INVALID_HANDLE_VALUE == hFile)
|
||||
+ {
|
||||
+ retval = (-1);
|
||||
+
|
||||
+ switch (GetLastError ())
|
||||
+ {
|
||||
+#define CASE(a,b) case ERROR_##a: errno = b; break
|
||||
+ CASE (FILE_NOT_FOUND, ENOENT);
|
||||
+ CASE (PATH_NOT_FOUND, ENOENT);
|
||||
+ CASE (ACCESS_DENIED, EACCES);
|
||||
+ CASE (NOT_SAME_DEVICE, EXDEV);
|
||||
+ CASE (LOCK_VIOLATION, EACCES);
|
||||
+ CASE (SHARING_VIOLATION, EACCES);
|
||||
+ CASE (FILE_EXISTS, EEXIST);
|
||||
+ CASE (ALREADY_EXISTS, EEXIST);
|
||||
+#undef CASE
|
||||
+ default: errno = EIO;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ retval = _open_osfhandle((long)hFile, _O_RDWR);
|
||||
|
||||
+ save_errno = errno;
|
||||
g_free (wfilename);
|
||||
-
|
||||
errno = save_errno;
|
||||
+
|
||||
return retval;
|
||||
#else
|
||||
return creat (filename, mode);
|
||||
@@ -702,33 +840,102 @@
|
||||
const gchar *mode)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
- wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
|
||||
- wchar_t *wmode;
|
||||
- FILE *retval;
|
||||
- int save_errno;
|
||||
-
|
||||
- if (wfilename == NULL)
|
||||
- {
|
||||
- errno = EINVAL;
|
||||
- return NULL;
|
||||
- }
|
||||
-
|
||||
- wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL);
|
||||
-
|
||||
- if (wmode == NULL)
|
||||
- {
|
||||
- g_free (wfilename);
|
||||
- errno = EINVAL;
|
||||
- return NULL;
|
||||
- }
|
||||
-
|
||||
- retval = _wfopen (wfilename, wmode);
|
||||
- save_errno = errno;
|
||||
-
|
||||
- g_free (wfilename);
|
||||
- g_free (wmode);
|
||||
+ int hFile;
|
||||
+ int flags = 0;
|
||||
+ gchar priv_mode[4];
|
||||
+ FILE *retval = NULL;
|
||||
+
|
||||
+ if ((NULL == filename) || (NULL == mode))
|
||||
+ {
|
||||
+ errno = EINVAL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ if ((strlen(mode) < 1) || (strlen(mode) > 3))
|
||||
+ {
|
||||
+ errno = EINVAL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ strncpy(priv_mode, mode, 3);
|
||||
+ priv_mode[3] = '\0';
|
||||
+
|
||||
+ /* Set up any flags to pass to 'g_open()' */
|
||||
+ if (3 == strlen(priv_mode))
|
||||
+ {
|
||||
+ if (('c' == priv_mode[2]) || ('n' == priv_mode[2]))
|
||||
+ priv_mode[2] = '\0';
|
||||
+ else
|
||||
+ {
|
||||
+ if (0 == strcmp(priv_mode, "a+b"))
|
||||
+ flags = _O_RDWR | _O_CREAT | _O_APPEND | _O_BINARY;
|
||||
+ else if (0 == strcmp(priv_mode, "a+t"))
|
||||
+ flags = _O_RDWR | _O_CREAT | _O_APPEND | _O_TEXT;
|
||||
+ else if (0 == strcmp(priv_mode, "r+b"))
|
||||
+ flags = _O_RDWR | _O_BINARY;
|
||||
+ else if (0 == strcmp(priv_mode, "r+t"))
|
||||
+ flags = _O_RDWR | _O_TEXT;
|
||||
+ else if (0 == strcmp(priv_mode, "w+b"))
|
||||
+ flags = _O_RDWR | _O_CREAT |_O_TRUNC | _O_BINARY;
|
||||
+ else if (0 == strcmp(priv_mode, "w+t"))
|
||||
+ flags = _O_RDWR | _O_CREAT |_O_TRUNC | _O_TEXT;
|
||||
+ else
|
||||
+ {
|
||||
+ errno = EINVAL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ if (2 == strlen(priv_mode))
|
||||
+ {
|
||||
+ if (('c' == priv_mode[1]) || ('n' == priv_mode[1]))
|
||||
+ priv_mode[1] = '\0';
|
||||
+ else
|
||||
+ {
|
||||
+ if (0 == strcmp(priv_mode, "a+"))
|
||||
+ flags = _O_RDWR | _O_CREAT | _O_APPEND;
|
||||
+ else if (0 == strcmp(priv_mode, "ab"))
|
||||
+ flags = _O_WRONLY | _O_CREAT | _O_APPEND | _O_BINARY;
|
||||
+ else if (0 == strcmp(priv_mode, "at"))
|
||||
+ flags = _O_WRONLY | _O_CREAT | _O_APPEND | _O_TEXT;
|
||||
+ else if (0 == strcmp(priv_mode, "rb"))
|
||||
+ flags = _O_RDONLY | _O_BINARY;
|
||||
+ else if (0 == strcmp(priv_mode, "rt"))
|
||||
+ flags = _O_RDONLY | _O_TEXT;
|
||||
+ else if (0 == strcmp(priv_mode, "wb"))
|
||||
+ flags = _O_WRONLY | _O_CREAT | _O_TRUNC | _O_BINARY;
|
||||
+ else if (0 == strcmp(priv_mode, "wt"))
|
||||
+ flags = _O_WRONLY | _O_CREAT | _O_TRUNC | _O_TEXT;
|
||||
+ else
|
||||
+ {
|
||||
+ errno = EINVAL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ if (1 == strlen(priv_mode))
|
||||
+ {
|
||||
+ if (0 == strcmp(priv_mode, "a"))
|
||||
+ flags = _O_WRONLY | _O_CREAT | _O_APPEND;
|
||||
+ else if (0 == strcmp(priv_mode, "r"))
|
||||
+ flags = _O_RDONLY;
|
||||
+ else if (0 == strcmp(priv_mode, "w"))
|
||||
+ flags = _O_WRONLY | _O_CREAT | _O_TRUNC;
|
||||
+ else if ( !((0 == strcmp(priv_mode, "c")) || (0 == strcmp(priv_mode, "n"))))
|
||||
+ {
|
||||
+ errno = EINVAL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ hFile = g_open (filename, flags, (_S_IREAD | _S_IWRITE));
|
||||
+
|
||||
+ if (INVALID_HANDLE_VALUE == (HANDLE)hFile)
|
||||
+ /* 'errno' will have already been set by 'g_open()' */
|
||||
+ retval = NULL;
|
||||
+ else
|
||||
+ retval = _fdopen(hFile, mode);
|
||||
|
||||
- errno = save_errno;
|
||||
+out:
|
||||
return retval;
|
||||
#else
|
||||
return fopen (filename, mode);
|
|
@ -0,0 +1,253 @@
|
|||
diff -Naur glib-2.46.0-orig/glib/gbacktrace.c glib-2.46.0/glib/gbacktrace.c
|
||||
--- glib-2.46.0-orig/glib/gbacktrace.c 2014-12-20 00:49:48.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gbacktrace.c 2015-09-22 09:08:59.311126700 +0300
|
||||
@@ -254,7 +254,7 @@
|
||||
if (IsDebuggerPresent ())
|
||||
G_BREAKPOINT ();
|
||||
else
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
#endif
|
||||
}
|
||||
|
||||
diff -Naur glib-2.46.0-orig/glib/giowin32.c glib-2.46.0/glib/giowin32.c
|
||||
--- glib-2.46.0-orig/glib/giowin32.c 2014-12-20 00:49:48.000000000 +0300
|
||||
+++ glib-2.46.0/glib/giowin32.c 2015-09-22 09:08:59.357921600 +0300
|
||||
@@ -798,7 +798,7 @@
|
||||
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
if (channel->debug)
|
||||
g_print ("\n");
|
||||
@@ -945,7 +945,7 @@
|
||||
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1010,7 +1010,7 @@
|
||||
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
if (channel->debug)
|
||||
g_print ("\n");
|
||||
@@ -1295,7 +1295,7 @@
|
||||
default:
|
||||
whence = -1; /* Keep the compiler quiet */
|
||||
g_assert_not_reached ();
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
tmp_offset = offset;
|
||||
@@ -1690,7 +1690,7 @@
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
/* always open 'untranslated' */
|
||||
@@ -1736,7 +1736,7 @@
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
return channel;
|
||||
@@ -2225,7 +2225,7 @@
|
||||
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
fd->events = condition;
|
||||
diff -Naur glib-2.46.0-orig/glib/gmessages.c glib-2.46.0/glib/gmessages.c
|
||||
--- glib-2.46.0-orig/glib/gmessages.c 2015-09-21 06:33:23.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gmessages.c 2015-09-22 09:08:59.373519900 +0300
|
||||
@@ -323,7 +323,7 @@
|
||||
if (breakpoint)
|
||||
G_BREAKPOINT ();
|
||||
else
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
@@ -1176,7 +1176,7 @@
|
||||
line,
|
||||
pretty_function);
|
||||
_g_log_abort (FALSE);
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
/**
|
||||
diff -Naur glib-2.46.0-orig/glib/gslice.c glib-2.46.0/glib/gslice.c
|
||||
--- glib-2.46.0-orig/glib/gslice.c 2015-09-08 20:40:27.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gslice.c 2015-09-22 09:08:59.404716500 +0300
|
||||
@@ -1082,7 +1082,7 @@
|
||||
return;
|
||||
if (G_UNLIKELY (allocator->config.debug_blocks) &&
|
||||
!smc_notify_free (mem_block, mem_size))
|
||||
- abort();
|
||||
+ g_abort();
|
||||
if (G_LIKELY (acat == 1)) /* allocate through magazine layer */
|
||||
{
|
||||
ThreadMemory *tmem = thread_memory_from_self();
|
||||
@@ -1165,7 +1165,7 @@
|
||||
slice = *(gpointer*) (current + next_offset);
|
||||
if (G_UNLIKELY (allocator->config.debug_blocks) &&
|
||||
!smc_notify_free (current, mem_size))
|
||||
- abort();
|
||||
+ g_abort();
|
||||
if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix)))
|
||||
{
|
||||
thread_memory_swap_magazines (tmem, ix);
|
||||
@@ -1186,7 +1186,7 @@
|
||||
slice = *(gpointer*) (current + next_offset);
|
||||
if (G_UNLIKELY (allocator->config.debug_blocks) &&
|
||||
!smc_notify_free (current, mem_size))
|
||||
- abort();
|
||||
+ g_abort();
|
||||
if (G_UNLIKELY (g_mem_gc_friendly))
|
||||
memset (current, 0, chunk_size);
|
||||
slab_allocator_free_chunk (chunk_size, current);
|
||||
@@ -1200,7 +1200,7 @@
|
||||
slice = *(gpointer*) (current + next_offset);
|
||||
if (G_UNLIKELY (allocator->config.debug_blocks) &&
|
||||
!smc_notify_free (current, mem_size))
|
||||
- abort();
|
||||
+ g_abort();
|
||||
if (G_UNLIKELY (g_mem_gc_friendly))
|
||||
memset (current, 0, mem_size);
|
||||
g_free (current);
|
||||
@@ -1436,7 +1436,7 @@
|
||||
vfprintf (stderr, format, args);
|
||||
va_end (args);
|
||||
fputs ("\n", stderr);
|
||||
- abort();
|
||||
+ g_abort();
|
||||
_exit (1);
|
||||
}
|
||||
|
||||
diff -Naur glib-2.46.0-orig/glib/gtester.c glib-2.46.0/glib/gtester.c
|
||||
--- glib-2.46.0-orig/glib/gtester.c 2014-12-20 00:49:48.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gtester.c 2015-09-22 09:08:59.420314800 +0300
|
||||
@@ -94,7 +94,7 @@
|
||||
terminate (void)
|
||||
{
|
||||
kill (getpid(), SIGTERM);
|
||||
- abort();
|
||||
+ g_abort();
|
||||
}
|
||||
|
||||
static void
|
||||
diff -Naur glib-2.46.0-orig/glib/gtestutils.c glib-2.46.0/glib/gtestutils.c
|
||||
--- glib-2.46.0-orig/glib/gtestutils.c 2015-09-01 06:34:13.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gtestutils.c 2015-09-22 09:08:59.576297800 +0300
|
||||
@@ -846,7 +846,7 @@
|
||||
{
|
||||
if (test_tap_log)
|
||||
g_print ("Bail out!\n");
|
||||
- abort();
|
||||
+ g_abort();
|
||||
}
|
||||
if (result == G_TEST_RUN_SKIPPED)
|
||||
test_skipped_count++;
|
||||
@@ -2426,7 +2426,7 @@
|
||||
_exit (1);
|
||||
}
|
||||
else
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2451,7 +2451,7 @@
|
||||
if (test_in_subprocess)
|
||||
_exit (1);
|
||||
else
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
void
|
||||
diff -Naur glib-2.46.0-orig/glib/gthread-posix.c glib-2.46.0/glib/gthread-posix.c
|
||||
--- glib-2.46.0-orig/glib/gthread-posix.c 2015-08-19 06:35:30.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gthread-posix.c 2015-09-22 09:08:59.560699500 +0300
|
||||
@@ -46,6 +46,7 @@
|
||||
#include "gmessages.h"
|
||||
#include "gstrfuncs.h"
|
||||
#include "gmain.h"
|
||||
+#include "gutils.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
@@ -77,7 +78,7 @@
|
||||
{
|
||||
fprintf (stderr, "GLib (gthread-posix.c): Unexpected error from C library during '%s': %s. Aborting.\n",
|
||||
function, strerror (status));
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
/* {{{1 GMutex */
|
||||
diff -Naur glib-2.46.0-orig/glib/gthread-win32.c glib-2.46.0/glib/gthread-win32.c
|
||||
--- glib-2.46.0-orig/glib/gthread-win32.c 2014-12-20 00:49:48.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gthread-win32.c 2015-09-22 09:08:59.467109700 +0300
|
||||
@@ -58,7 +58,7 @@
|
||||
{
|
||||
fprintf (stderr, "GLib (gthread-win32.c): Unexpected error from C library during '%s': %s. Aborting.\n",
|
||||
strerror (status), function);
|
||||
- abort ();
|
||||
+ g_abort ();
|
||||
}
|
||||
|
||||
/* Starting with Vista and Windows 2008, we have access to the
|
||||
diff -Naur glib-2.46.0-orig/glib/gutils.c glib-2.46.0/glib/gutils.c
|
||||
--- glib-2.46.0-orig/glib/gutils.c 2015-08-28 21:15:54.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gutils.c 2015-09-22 09:08:59.498306300 +0300
|
||||
@@ -2375,3 +2375,15 @@
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
+
|
||||
+/* Crashes the program. */
|
||||
+void
|
||||
+g_abort (void)
|
||||
+{
|
||||
+#ifdef G_OS_WIN32
|
||||
+ DebugBreak ();
|
||||
+ ExitProcess (127);
|
||||
+#else
|
||||
+ abort ();
|
||||
+#endif
|
||||
+}
|
||||
diff -Naur glib-2.46.0-orig/glib/gutils.h glib-2.46.0/glib/gutils.h
|
||||
--- glib-2.46.0-orig/glib/gutils.h 2015-08-21 03:20:48.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gutils.h 2015-09-22 09:08:59.529502900 +0300
|
||||
@@ -228,6 +228,9 @@
|
||||
GLIB_DEPRECATED_FOR(g_format_size)
|
||||
gchar *g_format_size_for_display (goffset size);
|
||||
|
||||
+GLIB_AVAILABLE_IN_2_30
|
||||
+void g_abort (void);
|
||||
+
|
||||
#ifndef G_DISABLE_DEPRECATED
|
||||
/**
|
||||
* GVoidFunc:
|
|
@ -0,0 +1,57 @@
|
|||
diff -Naur glib-2.46.0-orig/glib/glib-init.c glib-2.46.0/glib/glib-init.c
|
||||
--- glib-2.46.0-orig/glib/glib-init.c 2015-09-12 18:13:45.000000000 +0300
|
||||
+++ glib-2.46.0/glib/glib-init.c 2015-09-22 09:09:00.512195800 +0300
|
||||
@@ -238,12 +238,14 @@
|
||||
|
||||
#if defined (G_OS_WIN32)
|
||||
|
||||
+HMODULE glib_dll = NULL;
|
||||
+
|
||||
+#if defined (DLL_EXPORT)
|
||||
+
|
||||
BOOL WINAPI DllMain (HINSTANCE hinstDLL,
|
||||
DWORD fdwReason,
|
||||
LPVOID lpvReserved);
|
||||
|
||||
-HMODULE glib_dll;
|
||||
-
|
||||
BOOL WINAPI
|
||||
DllMain (HINSTANCE hinstDLL,
|
||||
DWORD fdwReason,
|
||||
@@ -253,11 +255,6 @@
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
glib_dll = hinstDLL;
|
||||
- g_clock_win32_init ();
|
||||
-#ifdef THREADS_WIN32
|
||||
- g_thread_win32_init ();
|
||||
-#endif
|
||||
- glib_init ();
|
||||
break;
|
||||
|
||||
case DLL_THREAD_DETACH:
|
||||
@@ -274,7 +271,10 @@
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
-#elif defined (G_HAS_CONSTRUCTORS)
|
||||
+#endif /* defined (DLL_EXPORT) */
|
||||
+#endif /* defined (G_OS_WIN32) */
|
||||
+
|
||||
+#if defined (G_HAS_CONSTRUCTORS)
|
||||
|
||||
#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
|
||||
#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(glib_init_ctor)
|
||||
@@ -284,6 +284,12 @@
|
||||
static void
|
||||
glib_init_ctor (void)
|
||||
{
|
||||
+#if defined (G_OS_WIN32)
|
||||
+ g_clock_win32_init ();
|
||||
+#ifdef THREADS_WIN32
|
||||
+ g_thread_win32_init ();
|
||||
+#endif /* defined (THREADS_WIN32) */
|
||||
+#endif /* defined (G_OS_WIN32) */
|
||||
glib_init ();
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
diff -Naur glib-2.46.0-orig/glib/gnulib/printf.c glib-2.46.0/glib/gnulib/printf.c
|
||||
--- glib-2.46.0-orig/glib/gnulib/printf.c 2014-12-20 00:49:48.000000000 +0300
|
||||
+++ glib-2.46.0/glib/gnulib/printf.c 2015-09-22 09:09:03.834633700 +0300
|
||||
@@ -88,16 +88,16 @@
|
||||
int _g_gnulib_vfprintf (FILE *file, char const *format, va_list args)
|
||||
{
|
||||
char *result;
|
||||
- size_t length;
|
||||
+ size_t length, rlength;
|
||||
|
||||
result = vasnprintf (NULL, &length, format, args);
|
||||
if (result == NULL)
|
||||
return -1;
|
||||
|
||||
- fwrite (result, 1, length, file);
|
||||
+ rlength = fwrite (result, 1, length, file);
|
||||
free (result);
|
||||
|
||||
- return length;
|
||||
+ return rlength;
|
||||
}
|
||||
|
||||
int _g_gnulib_vsprintf (char *string, char const *format, va_list args)
|
|
@ -0,0 +1,20 @@
|
|||
diff -Naur glib-2.46.0-orig/gio/gsocket.c glib-2.46.0/gio/gsocket.c
|
||||
--- glib-2.46.0-orig/gio/gsocket.c 2015-08-31 16:08:34.000000000 +0300
|
||||
+++ glib-2.46.0/gio/gsocket.c 2015-09-22 09:09:04.614548700 +0300
|
||||
@@ -1951,7 +1951,7 @@
|
||||
|
||||
#if !defined(HAVE_IF_NAMETOINDEX) && defined(G_OS_WIN32)
|
||||
static guint
|
||||
-if_nametoindex (const gchar *iface)
|
||||
+w32_if_nametoindex (const gchar *iface)
|
||||
{
|
||||
PIP_ADAPTER_ADDRESSES addresses = NULL, p;
|
||||
gulong addresses_len = 0;
|
||||
@@ -2004,6 +2004,7 @@
|
||||
}
|
||||
|
||||
#define HAVE_IF_NAMETOINDEX 1
|
||||
+#define if_nametoindex w32_if_nametoindex
|
||||
#endif
|
||||
|
||||
static gboolean
|
|
@ -0,0 +1,12 @@
|
|||
diff -Naur glib-2.46.0-orig/gio/glocalfileinfo.c glib-2.46.0/gio/glocalfileinfo.c
|
||||
--- glib-2.46.0-orig/gio/glocalfileinfo.c 2015-08-21 08:00:49.000000000 +0300
|
||||
+++ glib-2.46.0/gio/glocalfileinfo.c 2015-09-22 09:09:05.410062000 +0300
|
||||
@@ -1232,7 +1232,7 @@
|
||||
(symlink_broken || (flags & G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS)))
|
||||
return g_content_type_from_mime_type ("inode/symlink");
|
||||
else if (statbuf != NULL && S_ISDIR(statbuf->st_mode))
|
||||
- return g_content_type_from_mime_type ("inode/directory");
|
||||
+ return g_strdup ("inode/directory");
|
||||
#ifndef G_OS_WIN32
|
||||
else if (statbuf != NULL && S_ISCHR(statbuf->st_mode))
|
||||
return g_content_type_from_mime_type ("inode/chardevice");
|
|
@ -0,0 +1,82 @@
|
|||
# Contributor: Filip Brcic <brcha@gna.org>
|
||||
# Contributor: ant32 <antreimer@gmail.com>
|
||||
# Contributor: Renato Silva <br.renatosilva@gmail.com>
|
||||
# Contributor: Martchus <martchus@gmx.net>
|
||||
|
||||
pkgname=mingw-w64-glib2
|
||||
pkgver=2.48.1
|
||||
pkgrel=1.1
|
||||
arch=(any)
|
||||
pkgdesc="Common C routines used by GTK+ and other libs (mingw-w64)"
|
||||
depends=(mingw-w64-gettext mingw-w64-zlib mingw-w64-libffi mingw-w64-pcre mingw-w64-freetype2)
|
||||
makedepends=(mingw-w64-configure python)
|
||||
license=("LGPL")
|
||||
options=(!strip !buildflags staticlibs !emptydirs)
|
||||
url="http://www.gtk.org/"
|
||||
source=("http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.tar.xz"
|
||||
"0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch"
|
||||
"0003-g_abort.all.patch"
|
||||
"0004-glib-prefer-constructors-over-DllMain.patch"
|
||||
"0027-no_sys_if_nametoindex.patch"
|
||||
"0028-inode_directory.patch"
|
||||
"revert-warn-glib-compile-schemas.patch"
|
||||
"use-pkgconfig-file-for-intl.patch")
|
||||
sha256sums=('74411bff489cb2a3527bac743a51018841a56a4d896cc1e0d0d54f8166a14612'
|
||||
'ef81e82e15fb3a71bad770be17fe4fea3f4d9cdee238d6caa39807eeea5da3e3'
|
||||
'1b24cc928f69f73599f83269a7b3eb7bf7efbe114109251e6765053a1e1f4cd6'
|
||||
'7b099af0c562f397458542482d6d1debe437f220762aa2ed94b2e6c4d43dd8a6'
|
||||
'5cb481295ff86c2802030984d8b2bf6a3b1dcd5e5fe7b0be68b22d9116305837'
|
||||
'f7f06a90156fe0a308412512c359072922f7f0d19dd4bed30d863db18e48940b'
|
||||
'049240975cd2f1c88fbe7deb28af14d4ec7d2640495f7ca8980d873bb710cc97'
|
||||
'1991eaa0471ff8d0b3dd3bccccd560ca6cc8c0995c6145b9bc93d5e90755e3f4')
|
||||
|
||||
_architectures="i686-w64-mingw32 x86_64-w64-mingw32"
|
||||
|
||||
prepare() {
|
||||
cd glib-$pkgver
|
||||
patch -Np1 -i .."/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch"
|
||||
patch -Np1 -i .."/0003-g_abort.all.patch"
|
||||
patch -Np1 -i ../0004-glib-prefer-constructors-over-DllMain.patch
|
||||
patch -Np1 -i ../"0027-no_sys_if_nametoindex.patch"
|
||||
patch -Np1 -i ../"0028-inode_directory.patch"
|
||||
patch -Rp1 -i ../revert-warn-glib-compile-schemas.patch
|
||||
# Use pkgconfig file for intl dependency, otherwise transitive dependency
|
||||
# iconv is not added correctly when using pkgconfig --static flag
|
||||
patch -p0 -i ../use-pkgconfig-file-for-intl.patch
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
}
|
||||
|
||||
|
||||
build() {
|
||||
cd glib-$pkgver
|
||||
conf="--with-pcre=system --with-threads=win32 --disable-fam"
|
||||
for _arch in ${_architectures}; do
|
||||
mkdir -p build-${_arch}-static && pushd build-${_arch}-static
|
||||
${_arch}-configure \
|
||||
--disable-shared $conf
|
||||
make
|
||||
popd
|
||||
|
||||
mkdir -p build-${_arch}-shared && pushd build-${_arch}-shared
|
||||
${_arch}-configure \
|
||||
--disable-static $conf
|
||||
make
|
||||
popd
|
||||
done
|
||||
}
|
||||
|
||||
package() {
|
||||
for _arch in ${_architectures}; do
|
||||
cd "$srcdir/glib-$pkgver/build-${_arch}-shared"
|
||||
make DESTDIR="$pkgdir" install
|
||||
make -C "$srcdir/glib-$pkgver/build-${_arch}-static" DESTDIR="$pkgdir/static" install
|
||||
mv "$pkgdir/static/usr/${_arch}/lib/"*.a "$pkgdir/usr/${_arch}/lib/"
|
||||
find "$pkgdir/usr/${_arch}" -name '*.exe' -o -name '*.def' | xargs rm
|
||||
find "$pkgdir/usr/${_arch}" -name '*.dll' -exec ${_arch}-strip --strip-unneeded {} \;
|
||||
find "$pkgdir/usr/${_arch}" -name '*.a' -o -name '*.dll' | xargs ${_arch}-strip -g
|
||||
rm "$pkgdir/usr/${_arch}/bin/"{glib-{gettextize,mkenums},gdbus-codegen}
|
||||
rm -r "$pkgdir/usr/${_arch}/lib/charset.alias"
|
||||
rm -r "$pkgdir/static"
|
||||
rm -r "$pkgdir/usr/${_arch}/share"
|
||||
done
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
From 6560b37450cd19c4a7c7b690e279fe97b7bfdcaa Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Lortie <desrt@desrt.ca>
|
||||
Date: Thu, 12 Apr 2012 23:55:34 +0000
|
||||
Subject: glib-compile-schemas: warn about bad dconf paths
|
||||
|
||||
For quite some time the recommended usage of GSettings and dconf has
|
||||
been to use paths like /org/gnome/example/. Use of /apps/ has spilled
|
||||
over from GConf and is continuing to make its way into a number of
|
||||
applications as they port.
|
||||
|
||||
glib-compile-schemas will now warn about these types of paths being
|
||||
used. This generates a lot of noise, but hopefully it will reduce the
|
||||
number of ported applications making this mistake.
|
||||
---
|
||||
diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c
|
||||
index cf02389..27d0181 100644
|
||||
--- a/gio/glib-compile-schemas.c
|
||||
+++ b/gio/glib-compile-schemas.c
|
||||
@@ -1204,6 +1204,12 @@ parse_state_start_schema (ParseState *state,
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (path && (g_str_has_prefix (path, "/apps/") ||
|
||||
+ g_str_has_prefix (path, "/desktop/") ||
|
||||
+ g_str_has_prefix (path, "/system/")))
|
||||
+ g_printerr ("warning: Schema '%s' has path '%s'. Paths starting with "
|
||||
+ "'/apps/', '/desktop/' or '/system/' are deprecated.\n", id, path);
|
||||
+
|
||||
state->schema_state = schema_state_new (path, gettext_domain,
|
||||
extends, extends_name, list_of);
|
||||
|
||||
--
|
||||
cgit v0.9.0.2
|
|
@ -0,0 +1,23 @@
|
|||
--- glib-2.0.pc.in.orig 2015-03-23 04:22:18.000000000 +0100
|
||||
+++ glib-2.0.pc.in 2016-08-12 21:31:44.654422794 +0200
|
||||
@@ -10,7 +10,8 @@
|
||||
Name: GLib
|
||||
Description: C Utility Library
|
||||
Version: @VERSION@
|
||||
-Requires.private: @PCRE_REQUIRES@
|
||||
+Requires: @INTL_REQUIRES@
|
||||
+Requires.private: @PCRE_REQUIRES@ @INTL_REQUIRES@
|
||||
Libs: -L${libdir} -lglib-2.0 @INTLLIBS@
|
||||
Libs.private: @G_THREAD_LIBS@ @G_LIBS_EXTRA@ @PCRE_LIBS@ @INTLLIBS@ @ICONV_LIBS@ @CARBON_LIBS@ @COCOA_LIBS@
|
||||
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include @GLIB_EXTRA_CFLAGS@
|
||||
--- configure.ac.orig 2016-05-10 11:05:39.000000000 +0200
|
||||
+++ configure.ac 2016-08-12 21:39:53.980926453 +0200
|
||||
@@ -472,6 +472,8 @@
|
||||
fi
|
||||
|
||||
LIBS="$INTLLIBS $LIBS"
|
||||
+INTL_REQUIRES=intl
|
||||
+AC_SUBST(INTL_REQUIRES)
|
||||
|
||||
GETTEXT_PACKAGE=glib20
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
Loading…
Reference in New Issue