summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicola Murino2018-09-24 18:51:19 +0200
committerNicola Murino2018-09-24 18:51:19 +0200
commit08a0cec7e21313ea10ad353356b8939314057172 (patch)
treeb5995d9185f5bdf8c2234469425bf45170d094a9
parent85cf6881bd36198f10d26b336c72cca393625913 (diff)
downloadaur-08a0cec7e21313ea10ad353356b8939314057172.tar.gz
Update to 2.58.1-2
-rw-r--r--.SRCINFO18
-rw-r--r--0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch108
-rw-r--r--0001-gsocket-fix-cross-compilation.patch26
-rw-r--r--0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch84
-rw-r--r--PKGBUILD36
-rw-r--r--glib-formaterror.patch13
-rw-r--r--glib-include-time-h-for-localtime_r.patch10
-rw-r--r--glib-prefer-constructors-over-DllMain.patch76
8 files changed, 152 insertions, 219 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4c6aab391258..247ab814f27e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = mingw-w64-glib2
pkgdesc = Low level core library (mingw-w64)
- pkgver = 2.58.0
- pkgrel = 4
+ pkgver = 2.58.1
+ pkgrel = 2
url = https://wiki.gnome.org/Projects/GLib
arch = any
license = LGPL2.1
@@ -15,18 +15,12 @@ pkgbase = mingw-w64-glib2
options = !buildflags
options = staticlibs
options = !emptydirs
- source = git+https://gitlab.gnome.org/GNOME/glib.git#commit=c138b98e363df8b95c2ee3eac214649b2908ad68
- source = 0001-gsocket-fix-cross-compilation.patch
+ source = git+https://gitlab.gnome.org/GNOME/glib.git#commit=a9f5a6fa2fdd6eb2f754709d7e790d24e3ceaa18
source = 0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
- source = glib-formaterror.patch
- source = glib-include-time-h-for-localtime_r.patch
- source = glib-prefer-constructors-over-DllMain.patch
+ source = 0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch
sha256sums = SKIP
- sha256sums = 44c8c6b4ca376177a8c333a00c3485d638f8641967503e15364606d4c4292ff3
- sha256sums = afd62a852a0b6aed4ce86eb97297e5080b26055cc878413b89d482c184b826b3
- sha256sums = ea529d5cbf8cf7ca66467664a3ead37473a1c009ac973d5694b06cc9d0b23df3
- sha256sums = ac567f7a9cad51ab97dba70bcdd6c0c16f93d2451c43fde380e4fdb20b2d4b31
- sha256sums = 8a02502069fa88c667a4fd1599280f927cb1bcf61e9fcd369fec5bdb5440d480
+ sha256sums = ff0d3df5d57cf621cac79f5bea8bd175e6c18b3fbf7cdd02df38c1eab9f40ac3
+ sha256sums = 838abaeab8ca4978770222ef5f88c4b464545dd591b2d532c698caa875b46931
pkgname = mingw-w64-glib2
diff --git a/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch b/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
index c3c4c756638b..17f9895eadda 100644
--- a/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
+++ b/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
@@ -1,27 +1,5 @@
-From 7f4f4354540440c0a8a37beaccbec8bc7fc15ec7 Mon Sep 17 00:00:00 2001
-From: Erik van Pienbroek <epienbro@fedoraproject.org>
-Date: Mon, 27 Aug 2012 23:28:54 +0200
-Subject: [PATCH] Use CreateFile on Win32 to make sure g_unlink always works
-
-The functions g_open(), g_creat() and g_fopen() defer to _wopen(),
-_wcreat() and _wfopen() respectively. This is very similar to
-the corresponding arrangement for Linux. However, those Windows
-functions do not support renaming a file whilst it's open. As a
-result, g_rename() behaves differently on the Windows platform
-compared to its Linux behaviour, where files can be renamed even
-while there are file handles still open. Resolved this by using
-the Win32 API function CreateFile() instead of _wopen(), _wcreat()
-and _wfopen()
-
-Patch initially created by John Emmas
----
- glib/gstdio.c | 259 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 233 insertions(+), 26 deletions(-)
-
-diff --git a/glib/gstdio.c b/glib/gstdio.c
-index 6d763e1..c1d072f 100644
---- a/glib/gstdio.c
-+++ b/glib/gstdio.c
+--- glib-2.57.2/glib/gstdio.c.orig 2018-07-31 20:31:07.000000000 +0200
++++ glib-2.57.2/glib/gstdio.c 2018-08-03 16:32:42.447575300 +0200
@@ -758,6 +758,11 @@
int mode)
{
@@ -30,7 +8,7 @@ index 6d763e1..c1d072f 100644
+ DWORD dwDesiredAccess = 0;
+ DWORD dwFlagsAndAttributes = 0;
+ DWORD dwDisposition = OPEN_EXISTING;
-+ DWORD dwSharedAccess = FILE_SHARE_READ | FILE_SHARE_DELETE;
++ 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;
@@ -50,45 +28,45 @@ index 6d763e1..c1d072f 100644
+ {
+ /* Equates to _O_RDONLY */
+ if (flags & _O_TRUNC)
-+ {
-+ errno = EINVAL;
-+ g_free (wfilename);
-+ return -1;
-+ }
++ {
++ errno = EINVAL;
++ g_free (wfilename);
++ return -1;
++ }
- g_free (wfilename);
-+ dwDesiredAccess |= GENERIC_READ;
-+ dwSharedAccess |= FILE_SHARE_WRITE;
++ 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;
++ {
++ errno = EINVAL;
++ g_free (wfilename);
++ return -1;
++ }
+
++ dwDesiredAccess |= GENERIC_WRITE;
+ }
+ if (flags & _O_RDWR)
+ {
-+ dwDesiredAccess |= GENERIC_READ;
-+ dwDesiredAccess |= GENERIC_WRITE;
++ dwDesiredAccess |= GENERIC_READ;
++ dwDesiredAccess |= GENERIC_WRITE;
+ }
+ if (flags & _O_TRUNC)
+ {
+ if (flags & _O_CREAT)
-+ dwDisposition = CREATE_ALWAYS;
-+ else
-+ dwDisposition = TRUNCATE_EXISTING;
++ 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;
++ dwDisposition = CREATE_NEW;
++ else
++ dwDisposition = OPEN_ALWAYS;
+ }
+ if (flags & _O_CREAT)
+ {
@@ -133,7 +111,7 @@ index 6d763e1..c1d072f 100644
+ }
+ 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 */
@@ -232,6 +210,12 @@ index 6d763e1..c1d072f 100644
- 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];
@@ -244,7 +228,7 @@ index 6d763e1..c1d072f 100644
+ }
+ if ((strlen(mode) < 1) || (strlen(mode) > 3))
+ {
-+ errno - EINVAL;
++ errno = EINVAL;
+ goto out;
+ }
+
@@ -271,10 +255,10 @@ index 6d763e1..c1d072f 100644
+ else if (0 == strcmp(priv_mode, "w+t"))
+ flags = _O_RDWR | _O_CREAT |_O_TRUNC | _O_TEXT;
+ else
-+ {
-+ errno = EINVAL;
++ {
++ errno = EINVAL;
+ goto out;
-+ }
++ }
+ }
+ }
+ if (2 == strlen(priv_mode))
@@ -298,10 +282,10 @@ index 6d763e1..c1d072f 100644
+ else if (0 == strcmp(priv_mode, "wt"))
+ flags = _O_WRONLY | _O_CREAT | _O_TRUNC | _O_TEXT;
+ else
-+ {
-+ errno = EINVAL;
++ {
++ errno = EINVAL;
+ goto out;
-+ }
++ }
+ }
+ }
+ if (1 == strlen(priv_mode))
@@ -313,18 +297,14 @@ index 6d763e1..c1d072f 100644
+ 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;
++ {
++ errno = EINVAL;
+ goto out;
-+ }
++ }
+ }
-
-- retval = _wfopen (wfilename, wmode);
-- save_errno = errno;
++
+ hFile = g_open (filename, flags, (_S_IREAD | _S_IWRITE));
-
-- g_free (wfilename);
-- g_free (wmode);
++
+ if (INVALID_HANDLE_VALUE == (HANDLE)hFile)
+ /* 'errno' will have already been set by 'g_open()' */
+ retval = NULL;
diff --git a/0001-gsocket-fix-cross-compilation.patch b/0001-gsocket-fix-cross-compilation.patch
deleted file mode 100644
index 5ad7ed78ec87..000000000000
--- a/0001-gsocket-fix-cross-compilation.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b7789bb144ff4545021fbd95ee93c98ec706891a Mon Sep 17 00:00:00 2001
-From: Nicola Murino <nicola.murino@gmail.com>
-Date: Fri, 17 Aug 2018 17:04:07 +0200
-Subject: [PATCH] gsocket: fix cross compilation
-
-for some reason when cross compiling for windows BROKEN_IP_MREQ_SOURCE_STRUCT is defined but should not
----
- gio/gsocket.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gio/gsocket.c b/gio/gsocket.c
-index 859e807cb..71a97b8cf 100644
---- a/gio/gsocket.c
-+++ b/gio/gsocket.c
-@@ -2404,7 +2404,7 @@ g_socket_multicast_group_operation_ssm (GSocket *socket,
- memset (&mc_req_src, 0, sizeof (mc_req_src));
-
- /* By default use the default IPv4 multicast interface. */
-- S_ADDR_FIELD(mc_req_src) = g_htonl (INADDR_ANY);
-+ mc_req_src.imr_interface.s_addr = g_htonl (INADDR_ANY);
-
- if (iface)
- {
---
-2.18.0
-
diff --git a/0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch b/0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch
new file mode 100644
index 000000000000..cfe978ba8851
--- /dev/null
+++ b/0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch
@@ -0,0 +1,84 @@
+From cf8d0b69566b5b3bab9aacaeecd9ce465cc33413 Mon Sep 17 00:00:00 2001
+From: Christoph Reiter <reiter.christoph@gmail.com>
+Date: Sat, 6 Jan 2018 22:04:23 +0100
+Subject: [PATCH] win32: Make the static build work with MinGW when posix
+ threads are used
+
+MinGW does not support the use of DllMain() for static builds, but that
+is currently always used on Windows, partly because it is needed for
+handling win32 threads and because there are problems with MSVC
+optimizing constructors away (see 7a29771a743a8b5337).
+
+To make the static build at least work in case mingw+posix threads are used,
+switch to using constructors for that. The g_clock_win32_init() call is
+moved into glib_init(), so it's also called in that case.
+
+If mingw+static+win32 threads are used abort the build early and print
+an error message.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=792297
+---
+ glib/glib-init.c | 15 ++++++++++++---
+ gobject/gtype.c | 2 +-
+ 2 files changed, 13 insertions(+), 4 deletions(-)
+
+diff --git a/glib/glib-init.c b/glib/glib-init.c
+index 5f312113a..cd32e25a5 100644
+--- a/glib/glib-init.c
++++ b/glib/glib-init.c
+@@ -268,19 +268,29 @@ glib_init (void)
+
+ glib_inited = TRUE;
+
++#ifdef G_OS_WIN32
++ g_clock_win32_init ();
++#endif
+ g_messages_prefixed_init ();
+ g_debug_init ();
+ g_quark_init ();
+ }
+
+ #if defined (G_OS_WIN32)
++HMODULE glib_dll;
++#endif
++
++#if defined(__MINGW32__) && defined(GLIB_STATIC_COMPILATION) && !defined(THREADS_POSIX)
++/* MinGW static builds do not work with DllMain, but win32 threads need it atm */
++#error "Static build under MinGW only supported when build with posix threads"
++#endif
++
++#if defined (G_OS_WIN32) && (!defined(__MINGW32__) || defined(DLL_EXPORT))
+
+ BOOL WINAPI DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved);
+
+-HMODULE glib_dll;
+-
+ BOOL WINAPI
+ DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+@@ -290,7 +300,6 @@ DllMain (HINSTANCE hinstDLL,
+ {
+ case DLL_PROCESS_ATTACH:
+ glib_dll = hinstDLL;
+- g_clock_win32_init ();
+ #ifdef THREADS_WIN32
+ g_thread_win32_init ();
+ #endif
+diff --git a/gobject/gtype.c b/gobject/gtype.c
+index 275a8b60b..222b0a2f0 100644
+--- a/gobject/gtype.c
++++ b/gobject/gtype.c
+@@ -4451,7 +4451,7 @@ gobject_init (void)
+ _g_signal_init ();
+ }
+
+-#if defined (G_OS_WIN32)
++#if defined (G_OS_WIN32) && (!defined(__MINGW32__) || defined(DLL_EXPORT))
+
+ BOOL WINAPI DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+--
+2.15.1
+
diff --git a/PKGBUILD b/PKGBUILD
index 78668580ad75..046fbfe8e65c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,10 +2,11 @@
# 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.58.0
-pkgrel=4
-_commit=c138b98e363df8b95c2ee3eac214649b2908ad68 # tags/2.58.0^0
+pkgver=2.58.1
+pkgrel=2
+_commit=a9f5a6fa2fdd6eb2f754709d7e790d24e3ceaa18 # tags/2.58.1^0
arch=(any)
pkgdesc="Low level core library (mingw-w64)"
depends=(mingw-w64-libffi mingw-w64-pcre mingw-w64-gettext mingw-w64-zlib)
@@ -14,17 +15,11 @@ license=("LGPL2.1")
options=(!strip !buildflags staticlibs !emptydirs)
url="https://wiki.gnome.org/Projects/GLib"
source=("git+https://gitlab.gnome.org/GNOME/glib.git#commit=$_commit"
- "0001-gsocket-fix-cross-compilation.patch"
"0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch"
- "glib-formaterror.patch"
- "glib-include-time-h-for-localtime_r.patch"
- "glib-prefer-constructors-over-DllMain.patch")
+ "0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch")
sha256sums=('SKIP'
- '44c8c6b4ca376177a8c333a00c3485d638f8641967503e15364606d4c4292ff3'
- 'afd62a852a0b6aed4ce86eb97297e5080b26055cc878413b89d482c184b826b3'
- 'ea529d5cbf8cf7ca66467664a3ead37473a1c009ac973d5694b06cc9d0b23df3'
- 'ac567f7a9cad51ab97dba70bcdd6c0c16f93d2451c43fde380e4fdb20b2d4b31'
- '8a02502069fa88c667a4fd1599280f927cb1bcf61e9fcd369fec5bdb5440d480')
+ 'ff0d3df5d57cf621cac79f5bea8bd175e6c18b3fbf7cdd02df38c1eab9f40ac3'
+ '838abaeab8ca4978770222ef5f88c4b464545dd591b2d532c698caa875b46931')
_architectures="i686-w64-mingw32 x86_64-w64-mingw32"
@@ -35,11 +30,10 @@ pkgver() {
prepare() {
cd glib
+ # https://gitlab.gnome.org/GNOME/glib/issues/539
patch -Np1 -i ../0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
- patch -Np1 -i ../glib-prefer-constructors-over-DllMain.patch
- patch -Np1 -i ../glib-formaterror.patch
- patch -Np1 -i ../glib-include-time-h-for-localtime_r.patch
- patch -Np1 -i ../0001-gsocket-fix-cross-compilation.patch
+ # https://gitlab.gnome.org/GNOME/glib/issues/692
+ patch -Np1 -i ../0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch
}
@@ -56,10 +50,16 @@ build() {
package() {
for _arch in ${_architectures}; do
- sed -i "s/-lgnulib//g" ${srcdir}/glib/build-${_arch}/meson-private/glib-2.0.pc
+ # fix pkg-config files (see https://github.com/mesonbuild/meson/pull/3939)
+ for pc_file in ${srcdir}/glib/build-${_arch}/meson-private/*.pc; do
+ sed -i 's/-lgnulib//g' "$pc_file"
+ sed -i 's/-lcharset//g' "$pc_file"
+ sed -i 's/-lgiowin32//g' "$pc_file"
+ done
+
DESTDIR="${pkgdir}" ninja -C "${srcdir}/glib/build-${_arch}" install
- #FIXME: Ranlib (isn't meson supposed to do this?)
+ # see https://github.com/mesonbuild/meson/issues/4138
${_arch}-gcc-ranlib ${pkgdir}/usr/${_arch}/lib/*.a
done
diff --git a/glib-formaterror.patch b/glib-formaterror.patch
deleted file mode 100644
index 535906675b91..000000000000
--- a/glib-formaterror.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- glib-2.57.2/configure.ac 2018-07-31 20:31:07.000000000 +0200
-+++ glib-2.57.2/configure.ac 2018-08-02 19:09:02.569368144 +0200
-@@ -3398,8 +3398,8 @@
- -Wno-bad-function-cast \
- -Werror=declaration-after-statement \
- -Werror=missing-prototypes -Werror=implicit-function-declaration \
-- -Werror=pointer-arith -Werror=init-self -Werror=format-security \
-- -Werror=format=2 -Werror=missing-include-dirs])
-+ -Werror=pointer-arith -Werror=init-self -Wno-error=format-security \
-+ -Wno-error=format=2 -Werror=missing-include-dirs])
- ])
- AC_SUBST(GLIB_WARN_CFLAGS)
-
diff --git a/glib-include-time-h-for-localtime_r.patch b/glib-include-time-h-for-localtime_r.patch
deleted file mode 100644
index c23d26a06331..000000000000
--- a/glib-include-time-h-for-localtime_r.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- glib-2.43.2/glib/gdate.c.orig 2015-01-01 23:50:04.203252143 +0100
-+++ glib-2.43.2/glib/gdate.c 2015-01-01 23:50:28.329647373 +0100
-@@ -41,6 +41,7 @@
-
- #ifdef G_OS_WIN32
- #include <windows.h>
-+#include <time.h>
- #endif
-
- #include "gdate.h"
diff --git a/glib-prefer-constructors-over-DllMain.patch b/glib-prefer-constructors-over-DllMain.patch
deleted file mode 100644
index 2edec2b1ff5c..000000000000
--- a/glib-prefer-constructors-over-DllMain.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From bc90511c1eb333e26e0bc0eaee62375d0e788db6 Mon Sep 17 00:00:00 2001
-From: Erik van Pienbroek <epienbro@fedoraproject.org>
-Date: Tue, 16 Apr 2013 11:42:11 +0200
-Subject: [PATCH] win32: Prefer the use of constructors over DllMain
-
-This prevents having to depend on DllMain in static libraries
-
-Constructors are available in both the GCC build (GCC 2.7 and later)
-and the MSVC build (MSVC 2008 and later using _Pragma, earlier
-versions using #pragma)
----
- glib/glib-init.c | 22 ++++++++++++++--------
- 1 file changed, 14 insertions(+), 8 deletions(-)
-
-diff --git a/glib/glib-init.c b/glib/glib-init.c
---- a/glib/glib-init.c 2018-08-02 16:09:46.277047195 +0200
-+++ b/glib/glib-init.c 2018-08-02 16:10:23.617387056 +0200
-@@ -272,12 +272,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,
-@@ -287,13 +289,6 @@
- {
- case DLL_PROCESS_ATTACH:
- glib_dll = hinstDLL;
-- g_clock_win32_init ();
--#ifdef THREADS_WIN32
-- g_thread_win32_init ();
--#endif
-- glib_init ();
-- /* must go after glib_init */
-- g_console_win32_init ();
- break;
-
- case DLL_THREAD_DETACH:
-@@ -317,7 +312,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)
-@@ -327,7 +325,15 @@
- 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 ();
-+ /* must go after glib_init */
-+ g_console_win32_init ();
- }
-
- #else