diff options
Diffstat (limited to 'win32/patches/libsecret.patch')
-rw-r--r-- | win32/patches/libsecret.patch | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/win32/patches/libsecret.patch b/win32/patches/libsecret.patch new file mode 100644 index 0000000000..5e6c70e7ff --- /dev/null +++ b/win32/patches/libsecret.patch @@ -0,0 +1,157 @@ +diff -upr libsecret-0.16.old/Makefile.am libsecret-0.16/Makefile.am +--- libsecret-0.16.old/Makefile.am 2013-03-25 12:10:12 +0000 ++++ libsecret-0.16/Makefile.am 2014-04-20 18:49:09 +0000 +@@ -3,7 +3,7 @@ include $(top_srcdir)/Makefile.decl + + ACLOCAL_AMFLAGS = -I build/m4 ${ACLOCAL_FLAGS} + +-SUBDIRS = build egg libsecret tool po docs . ++SUBDIRS = build egg libsecret po docs . + + DISTCHECK_CONFIGURE_FLAGS = \ + --enable-debug=yes \ +diff -upr libsecret-0.16.old/configure.ac libsecret-0.16/configure.ac +--- libsecret-0.16.old/configure.ac 2013-06-21 13:11:14 +0000 ++++ libsecret-0.16/configure.ac 2014-04-20 18:42:09 +0000 +@@ -55,20 +55,48 @@ AM_GLIB_GNU_GETTEXT + # Checks for functions + + AC_CHECK_FUNCS(mlock) ++AC_CHECK_FUNCS(gmtime_r strptime memrchr) ++AC_CHECK_HEADERS([err.h pwd.h syslog.h sys/mman.h sys/wait.h]) ++ ++dnl ****************************** ++dnl Check for Win32 ++dnl ****************************** ++AC_MSG_CHECKING([for Win32]) ++case "$host" in ++*-mingw*) ++ os_win32='yes' ++ AC_CACHE_VAL(ac_cv_have_addrinfo, [ac_cv_have_addrinfo=yes]) ++ AC_DEFINE(_WIN32_WINNT, 0x501, [To get getaddrinfo etc declarations]) ++ ;; ++*) ++ os_win32='no' ++ ;; ++esac ++AC_MSG_RESULT([$os_win32]) ++AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes]) + + # -------------------------------------------------------------------- + # GLib + ++GIO_PLAT= ++if test "$os_win32" = "yes" ; then ++ GIO_PLAT=gio-windows-2.0 ++else ++ GIO_PLAT=gio-unix-2.0 ++fi ++ + PKG_CHECK_MODULES(GLIB, + glib-2.0 >= 2.32.0 + gio-2.0 >= 2.32.0 +- gio-unix-2.0) ++ $GIO_PLAT) + LIBS="$LIBS $GLIB_LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + + GTK_DOC_CHECK(1.9) + +-GOBJECT_INTROSPECTION_CHECK([1.29]) ++AM_CONDITIONAL(HAVE_INTROSPECTION, test "yes" = "no") ++ ++dnl GOBJECT_INTROSPECTION_CHECK([1.29]) + AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) + + # -------------------------------------------------------------------- +diff -upr libsecret-0.16.old/egg/egg-secure-memory.c libsecret-0.16/egg/egg-secure-memory.c +--- libsecret-0.16.old/egg/egg-secure-memory.c 2012-10-27 10:23:32 +0000 ++++ libsecret-0.16/egg/egg-secure-memory.c 2014-04-20 18:43:03 +0000 +@@ -32,7 +32,9 @@ + #include "egg-secure-memory.h" + + #include <sys/types.h> ++#ifdef HAVE_SYS_MMAN_H + #include <sys/mman.h> ++#endif + #include <stddef.h> + #include <string.h> + #include <stdio.h> +@@ -188,9 +190,11 @@ pool_alloc (void) + + /* Create a new pool */ + if (pool == NULL) { ++#if !defined(_WIN32) + len = getpagesize () * 2; + pages = mmap (0, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + if (pages == MAP_FAILED) ++#endif + return NULL; + + /* Fill in the block header, and inlude in block list */ +@@ -254,7 +258,9 @@ pool_free (void* item) + VALGRIND_DESTROY_MEMPOOL (pool); + #endif + ++#if !defined(_WIN32) + munmap (pool, pool->length); ++#endif + return; + } + +@@ -860,11 +866,11 @@ sec_acquire_pages (size_t *sz, + ASSERT (*sz); + ASSERT (during_tag); + ++#if defined(HAVE_MLOCK) + /* Make sure sz is a multiple of the page size */ + pgsize = getpagesize (); + *sz = (*sz + pgsize -1) & ~(pgsize - 1); + +-#if defined(HAVE_MLOCK) + pages = mmap (0, *sz, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + if (pages == MAP_FAILED) { + if (show_warning && egg_secure_warnings) +@@ -902,9 +908,9 @@ static void + sec_release_pages (void *pages, size_t sz) + { + ASSERT (pages); +- ASSERT (sz % getpagesize () == 0); + + #if defined(HAVE_MLOCK) ++ ASSERT (sz % getpagesize () == 0); + if (munlock (pages, sz) < 0 && egg_secure_warnings) + fprintf (stderr, "couldn't unlock private memory: %s\n", strerror (errno)); + +@@ -914,7 +920,7 @@ sec_release_pages (void *pages, size_t s + DEBUG_ALLOC ("gkr-secure-memory: freed block ", sz); + + #else +- ASSERT (FALSE); ++ ASSERT (0); + #endif + } + +@@ -937,6 +943,11 @@ sec_block_create (size_t size, + if (getenv ("SECMEM_FORCE_FALLBACK")) + return NULL; + ++#ifdef _WIN32 ++ /* win32 does not have mlock(), so just fail in that case */ ++ return NULL; ++#endif ++ + block = pool_alloc (); + if (!block) + return NULL; +diff -upr libsecret-0.16.old/libsecret/Makefile.am libsecret-0.16/libsecret/Makefile.am +--- libsecret-0.16.old/libsecret/Makefile.am 2013-06-21 13:11:15 +0000 ++++ libsecret-0.16/libsecret/Makefile.am 2014-04-20 18:45:31 +0000 +@@ -1,6 +1,6 @@ + include $(top_srcdir)/Makefile.decl + +-SUBDIRS = . tests ++SUBDIRS = . + + AM_CPPFLAGS = \ + -I$(top_srcdir) \ |