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:
Martchus 2016-08-12 21:49:10 +02:00
parent b12ed5b227
commit 9acd7dd342
9 changed files with 819 additions and 0 deletions

View File

@ -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);

View File

@ -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:

View File

@ -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 ();
}

View File

@ -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)

View File

@ -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

View File

@ -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");

82
glib2/mingw-w64/PKGBUILD Normal file
View File

@ -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
}

View File

@ -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

View File

@ -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)