diff --git a/0001-Patch-for-LMDB-to-use-robust-mutexes.patch b/0001-Patch-for-LMDB-to-use-robust-mutexes.patch index e7b03f2..4218573 100644 --- a/0001-Patch-for-LMDB-to-use-robust-mutexes.patch +++ b/0001-Patch-for-LMDB-to-use-robust-mutexes.patch @@ -1,7 +1,7 @@ diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs ../orig-liblmdb/configure.ac ./configure.ac --- ../orig-liblmdb/configure.ac 2014-07-28 17:44:41.873398363 +0200 +++ ./configure.ac 2014-07-28 17:47:06.143497590 +0200 -@@ -9,5 +9,12 @@ +@@ -11,5 +11,12 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) LT_INIT AC_CHECK_HEADERS([sys/file.h]) @@ -17,25 +17,25 @@ diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs ../orig-liblmdb/mdb.c ./mdb.c --- ../orig-liblmdb/mdb.c 2014-01-31 09:23:13.341427766 +0100 +++ ./mdb.c 2014-07-28 17:44:55.145959267 +0200 -@@ -169,6 +169,7 @@ - #ifdef _WIN32 +@@ -207,6 +207,7 @@ extern int cacheflush(char *addr, int nbytes, int cache); #define MDB_USE_HASH 1 #define MDB_PIDLOCK 0 + #define THREAD_RET DWORD +#define EOWNERDEAD 130 - #define pthread_t DWORD + #define pthread_t HANDLE #define pthread_mutex_t HANDLE - #define pthread_key_t DWORD -@@ -179,7 +180,7 @@ + #define pthread_cond_t HANDLE +@@ -218,7 +219,7 @@ extern int cacheflush(char *addr, int nbytes, int cache); #define pthread_getspecific(x) TlsGetValue(x) #define pthread_setspecific(x,y) (TlsSetValue(x,y) ? 0 : ErrCode()) - #define pthread_mutex_unlock(x) ReleaseMutex(x) --#define pthread_mutex_lock(x) WaitForSingleObject(x, INFINITE) + #define pthread_mutex_unlock(x) ReleaseMutex(*x) +-#define pthread_mutex_lock(x) WaitForSingleObject(*x, INFINITE) +#define pthread_mutex_lock(x) (WaitForSingleObject(x, INFINITE) == WAIT_ABANDONED ? EOWNERDEAD : 0) // masks FAIL and TIMEOUT error, but acceptable - #define LOCK_MUTEX_R(env) pthread_mutex_lock((env)->me_rmutex) - #define UNLOCK_MUTEX_R(env) pthread_mutex_unlock((env)->me_rmutex) - #define LOCK_MUTEX_W(env) pthread_mutex_lock((env)->me_wmutex) -@@ -2275,7 +2276,20 @@ - env->me_flags |= MDB_LIVE_READER; + #define pthread_cond_signal(x) SetEvent(*x) + #define pthread_cond_wait(cond,mutex) do{SignalObjectAndWait(*mutex, *cond, INFINITE, FALSE); WaitForSingleObject(*mutex, INFINITE);}while(0) + #define THREAD_CREATE(thr,start,arg) thr=CreateThread(NULL,0,start,arg,0,NULL) +@@ -2498,7 +2499,20 @@ mdb_txn_renew0(MDB_txn *txn) + env->me_live_reader = 1; } - LOCK_MUTEX_R(env); @@ -56,7 +56,7 @@ diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache nr = ti->mti_numreaders; for (i=0; imti_readers[i].mr_pid == 0) -@@ -2305,7 +2319,20 @@ +@@ -2528,7 +2542,20 @@ mdb_txn_renew0(MDB_txn *txn) } } else { if (ti) { @@ -78,7 +78,7 @@ diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache txn->mt_txnid = ti->mti_txnid; meta = env->me_metas[txn->mt_txnid & 1]; -@@ -4014,6 +4041,12 @@ +@@ -4330,6 +4357,12 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl) pthread_mutexattr_t mattr; if ((rc = pthread_mutexattr_init(&mattr)) diff --git a/automake.diff b/automake.diff index 7098a07..ca96099 100644 --- a/automake.diff +++ b/automake.diff @@ -50,7 +50,7 @@ hoops. But it is a tie IMO, and so, the casting vote shall be the AM route. --- /dev/null +++ liblmdb/configure.ac @@ -0,0 +1,15 @@ -+AC_INIT([liblmdb], [0.9.11], [http://symas.com/mdb/]) ++AC_INIT([liblmdb], [0.9.14], [http://symas.com/mdb/]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) diff --git a/lmdb-0.9.11.tar.bz2 b/lmdb-0.9.11.tar.bz2 deleted file mode 100644 index bf262a9..0000000 --- a/lmdb-0.9.11.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72d1a53bdd407ad7fdcb6e557737f6a4e49ba2002af801a4f46b016435107d2f -size 93971 diff --git a/lmdb-0.9.14.tar.bz2 b/lmdb-0.9.14.tar.bz2 new file mode 100644 index 0000000..d937587 --- /dev/null +++ b/lmdb-0.9.14.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4270349036526e7fb759d9753cb4474451046577e401cdb66b224513854f630 +size 104535 diff --git a/lmdb.changes b/lmdb.changes index 4cee602..06ed98f 100644 --- a/lmdb.changes +++ b/lmdb.changes @@ -1,3 +1,39 @@ +------------------------------------------------------------------- +Tue Mar 31 15:42:55 UTC 2015 - hrvoje.senjan@gmail.com + +- Update to 0.9.14: +* Fix to support 64K page size (ITS#7713) +* Fix to persist decreased as well as increased mapsizes (ITS#7789) +* Fix cursor bug when deleting last node of a DUPSORT key +* Fix mdb_env_info to return FIXEDMAP address +* Fix ambiguous error code from writing to closed DBI (ITS#7825) +* Fix mdb_copy copying past end of file (ITS#7886) +* Fix cursor bugs from page_merge/rebalance +* Fix to dirty fewer pages in deletes (mdb_page_loose()) +* Fix mdb_dbi_open creating subDBs (ITS#7917) +* Fix mdb_cursor_get(_DUP) with single value (ITS#7913) +* Fix Windows compat issues in mtests (ITS#7879) +* Add compacting variant of mdb_copy +* Add BigEndian integer key compare code +* Add mdb_dump/mdb_load utilities + - Changes since 0.9.13: +* Fix mdb_page_alloc unlimited overflow page search +* Documentation: + Re-fix MDB_CURRENT doc (ITS#7793) + Fix MDB_GET_MULTIPLE/MDB_NEXT_MULTIPLE doc + - Changes since 0.9.12: +* Fix MDB_GET_BOTH regression (ITS#7875,#7681) +* Fix MDB_MULTIPLE writing multiple keys (ITS#7834) +* Fix mdb_rebalance (ITS#7829) +* Fix mdb_page_split (ITS#7815) +* Fix md_entries count (ITS#7861,#7828,#7793) +* Fix MDB_CURRENT (ITS#7793) +* Fix possible crash on Windows DLL detach +* Misc code cleanup +* Documentation: + mdb_cursor_put: cursor moves on error (ITS#7771) +- Rebase automake.diff and 0001-Patch-for-LMDB-to-use-robust-mutexes.patch + ------------------------------------------------------------------- Wed Sep 10 20:34:09 UTC 2014 - crrodriguez@opensuse.org diff --git a/lmdb.spec b/lmdb.spec index 8d63207..304140e 100644 --- a/lmdb.spec +++ b/lmdb.spec @@ -1,7 +1,7 @@ # # spec file for package lmdb # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,8 +20,8 @@ Name: lmdb Summary: Lightning Memory-Mapped Database Manager License: OLDAP-2.8 Group: Productivity/Databases/Tools -%define lname liblmdb-0_9_11 -Version: 0.9.11 +%define lname liblmdb-0_9_14 +Version: 0.9.14 Release: 0 Url: http://symas.com/mdb/