SHA256
1
0
forked from pool/lmdb

- Renamed patches

0002-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch
  -> 0001-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch
  automake.diff
  -> 0002-Autoconf-files.patch
0003-Optimization-Define-correct-cacheline-size-on-HPUX.patch
- Dropped patch (upstream)
  0001-Patch-for-LMDB-to-use-robust-mutexes.patch
- Update to 0.9.17
  Fix ITS#7377 catch calloc failure
  Fix ITS#8237 regression from ITS#7589
  Fix ITS#8238 page_split for DUPFIXED pages
  Fix ITS#8221 MDB_PAGE_FULL on delete/rebalance
  Fix ITS#8258 rebalance/split assert
  Fix ITS#8263 cursor_put cursor tracking
  Fix ITS#8264 cursor_del cursor tracking
  Fix ITS#8310 cursor_del cursor tracking
  Fix ITS#8299 mdb_del cursor tracking
  Fix ITS#8300 mdb_del cursor tracking
  Fix ITS#8304 mdb_del cursor tracking
  Fix ITS#7771 fakepage cursor tracking
  Fix ITS#7789 ensure mapsize >= pages in use
  Fix ITS#7971 mdb_txn_renew0() new reader slots
  Fix ITS#7969 use __sync_synchronize on non-x86
  Fix ITS#8311 page_split from update_key
  Fix ITS#8312 loose pages in nested txn
  Fix ITS#8313 mdb_rebalance dummy cursor
  Fix ITS#8315 dirty_room in nested txn
  Fix ITS#8323 dirty_list in nested txn
  Fix ITS#8316 page_merge cursor tracking

OBS-URL: https://build.opensuse.org/package/show/systemsmanagement/lmdb?expand=0&rev=20
This commit is contained in:
Klaus Kämpf 2016-02-01 14:26:59 +00:00 committed by Git OBS Bridge
parent b86b130388
commit f85c7e053c
10 changed files with 328 additions and 195 deletions

View File

@ -1,5 +1,21 @@
From 1701892d066c626bbd82c9340d6b442f733c33a1 Mon Sep 17 00:00:00 2001
From: Kristian Amlie <kristian.amlie@cfengine.com>
Date: Mon, 28 Jul 2014 11:28:38 +0200
Subject: [PATCH 1/4] Add extra tools and CFEngine modifications for LMDB.
---
libraries/liblmdb/lmdump.c | 128 +++++++++++++++++++++++++++
libraries/liblmdb/lmmgr.c | 201 +++++++++++++++++++++++++++++++++++++++++++
libraries/liblmdb/mdb_copy.c | 2 +-
3 files changed, 330 insertions(+), 1 deletion(-)
create mode 100644 libraries/liblmdb/lmdump.c
create mode 100644 libraries/liblmdb/lmmgr.c
diff --git a/libraries/liblmdb/lmdump.c b/libraries/liblmdb/lmdump.c
new file mode 100644
index 000000000000..0e3ee4bb61c2
--- /dev/null --- /dev/null
+++ liblmdb/lmdump.c +++ b/libraries/liblmdb/lmdump.c
@@ -0,0 +1,128 @@ @@ -0,0 +1,128 @@
+/* lmdump.c - Lmdb database dumper +/* lmdump.c - Lmdb database dumper
+ Has three modes : + Has three modes :
@ -129,8 +145,11 @@
+ +
+ return 0; + return 0;
+} +}
diff --git a/libraries/liblmdb/lmmgr.c b/libraries/liblmdb/lmmgr.c
new file mode 100644
index 000000000000..1137d8dc388a
--- /dev/null --- /dev/null
+++ liblmdb/lmmgr.c +++ b/libraries/liblmdb/lmmgr.c
@@ -0,0 +1,201 @@ @@ -0,0 +1,201 @@
+/* +/*
+lmmgr.c : Add, remove or manage the maxreaders value of a given database file +lmmgr.c : Add, remove or manage the maxreaders value of a given database file
@ -333,14 +352,19 @@
+ +
+ return 1; + return 1;
+} +}
--- liblmdb.orig/Makefile.am diff --git a/libraries/liblmdb/mdb_copy.c b/libraries/liblmdb/mdb_copy.c
+++ liblmdb/Makefile.am index f37ccbcc213e..bbe43bf601ae 100644
@@ -5,7 +5,7 @@ AM_CFLAGS = -W -Wall -Wno-unused-paramet --- a/libraries/liblmdb/mdb_copy.c
AM_CPPFLAGS = -include config.h +++ b/libraries/liblmdb/mdb_copy.c
LDADD = liblmdb.la @@ -32,7 +32,7 @@ int main(int argc,char * argv[])
int rc;
MDB_env *env;
const char *progname = argv[0], *act;
- unsigned flags = MDB_RDONLY;
+ unsigned flags = MDB_NOSUBDIR|MDB_RDONLY;
unsigned cpflags = 0;
-bin_PROGRAMS = mdb_copy mdb_stat for (; argc > 1 && argv[1][0] == '-'; argc--, argv++) {
+bin_PROGRAMS = mdb_copy mdb_stat lmdump lmmgr --
check_PROGRAMS = mtest mtest2 mtest3 mtest4 mtest5 2.7.0
man_MANS = mdb_copy.1 mdb_stat.1
include_HEADERS = lmdb.h

View File

@ -1,93 +0,0 @@
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
@@ -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])
+AC_CHECK_LIB([pthread], [pthread_mutex_lock])
+AC_CHECK_LIB([pthreadGC2], [pthread_mutex_lock])
+AS_IF([test "$ac_cv_lib_pthread" = "no" && test "$ac_cv_lib_pthreadGC2" = "no"],
+[
+ AC_MSG_ERROR([Could not find pthreads library])
+])
+AC_CHECK_FUNCS([pthread_mutexattr_settype pthread_mutexattr_setrobust])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
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
@@ -215,6 +215,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 HANDLE
#define pthread_mutex_t HANDLE
#define pthread_cond_t HANDLE
@@ -226,7 +227,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_lock(x) (WaitForSingleObject(x, INFINITE) == WAIT_ABANDONED ? EOWNERDEAD : 0) // masks FAIL and TIMEOUT error, but acceptable
#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)
@@ -2529,7 +2530,20 @@ mdb_txn_renew0(MDB_txn *txn)
env->me_live_reader = 1;
}
- LOCK_MUTEX_R(env);
+ rc = LOCK_MUTEX_R(env);
+ switch (rc)
+ {
+ case 0:
+ break;
+#ifdef HAVE_PTHREAD_MUTEXATTR_SETROBUST
+ case EOWNERDEAD:
+ // we cannot recover the state, so mark mutex as unusable
+ UNLOCK_MUTEX_R(env);
+ // FALLTHROUGH
+#endif
+ default:
+ return MDB_PANIC;
+ }
nr = ti->mti_numreaders;
for (i=0; i<nr; i++)
if (ti->mti_readers[i].mr_pid == 0)
@@ -2563,7 +2577,20 @@ mdb_txn_renew0(MDB_txn *txn)
txn->mt_dbxs = env->me_dbxs; /* mostly static anyway */
} else {
if (ti) {
- LOCK_MUTEX_W(env);
+ rc = LOCK_MUTEX_W(env);
+ switch (rc)
+ {
+ case 0:
+ break;
+#ifdef HAVE_PTHREAD_MUTEXATTR_SETROBUST
+ case EOWNERDEAD:
+ // we cannot recover the state, so mark mutex as unusable
+ UNLOCK_MUTEX_W(env);
+ // FALLTHROUGH
+#endif
+ default:
+ return MDB_PANIC;
+ }
txn->mt_txnid = ti->mti_txnid;
meta = env->me_metas[txn->mt_txnid & 1];
@@ -4458,6 +4485,12 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
pthread_mutexattr_t mattr;
if ((rc = pthread_mutexattr_init(&mattr))
+#ifdef HAVE_PTHREAD_MUTEXATTR_SETTYPE
+ || (rc = pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_ERRORCHECK))
+#endif
+#ifdef HAVE_PTHREAD_MUTEXATTR_SETROBUST
+ || (rc = pthread_mutexattr_setrobust(&mattr, PTHREAD_MUTEX_ROBUST))
+#endif
|| (rc = pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED))
|| (rc = pthread_mutex_init(&env->me_txns->mti_mutex, &mattr))
|| (rc = pthread_mutex_init(&env->me_txns->mti_wmutex, &mattr)))

217
0002-Autoconf-files.patch Normal file
View File

@ -0,0 +1,217 @@
From 8e9182f6252eeb8e2390de814f4d1e9db2485edc Mon Sep 17 00:00:00 2001
From: Kristian Amlie <kristian.amlie@cfengine.com>
Date: Wed, 18 Feb 2015 09:40:20 +0100
Subject: [PATCH 2/4] Autoconf files.
---
libraries/liblmdb/Makefile | 111 -----------------------------------------
libraries/liblmdb/Makefile.am | 11 ++++
libraries/liblmdb/configure.ac | 42 ++++++++++++++++
libraries/liblmdb/mdb.c | 6 +++
4 files changed, 59 insertions(+), 111 deletions(-)
delete mode 100644 libraries/liblmdb/Makefile
create mode 100644 libraries/liblmdb/Makefile.am
create mode 100644 libraries/liblmdb/configure.ac
diff --git a/libraries/liblmdb/Makefile b/libraries/liblmdb/Makefile
deleted file mode 100644
index dbb5d698fee7..000000000000
--- a/libraries/liblmdb/Makefile
+++ /dev/null
@@ -1,111 +0,0 @@
-# Makefile for liblmdb (Lightning memory-mapped database library).
-
-########################################################################
-# Configuration. The compiler options must enable threaded compilation.
-#
-# Preprocessor macros (for CPPFLAGS) of interest...
-# Note that the defaults should already be correct for most
-# platforms; you should not need to change any of these.
-# Read their descriptions in mdb.c if you do:
-#
-# - MDB_USE_POSIX_SEM
-# - MDB_DSYNC
-# - MDB_FDATASYNC
-# - MDB_FDATASYNC_WORKS
-# - MDB_USE_PWRITEV
-# - MDB_USE_ROBUST
-#
-# There may be other macros in mdb.c of interest. You should
-# read mdb.c before changing any of them.
-#
-CC = gcc
-AR = ar
-W = -W -Wall -Wno-unused-parameter -Wbad-function-cast -Wuninitialized
-THREADS = -pthread
-OPT = -O2 -g
-CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS)
-LDLIBS =
-SOLIBS =
-prefix = /usr/local
-mandir = $(prefix)/man
-
-########################################################################
-
-IHDRS = lmdb.h
-ILIBS = liblmdb.a liblmdb.so
-IPROGS = mdb_stat mdb_copy mdb_dump mdb_load
-IDOCS = mdb_stat.1 mdb_copy.1 mdb_dump.1 mdb_load.1
-PROGS = $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5
-all: $(ILIBS) $(PROGS)
-
-install: $(ILIBS) $(IPROGS) $(IHDRS)
- mkdir -p $(DESTDIR)$(prefix)/bin
- mkdir -p $(DESTDIR)$(prefix)/lib
- mkdir -p $(DESTDIR)$(prefix)/include
- mkdir -p $(DESTDIR)$(prefix)/man/man1
- for f in $(IPROGS); do cp $$f $(DESTDIR)$(prefix)/bin; done
- for f in $(ILIBS); do cp $$f $(DESTDIR)$(prefix)/lib; done
- for f in $(IHDRS); do cp $$f $(DESTDIR)$(prefix)/include; done
- for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done
-
-clean:
- rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb
-
-test: all
- rm -rf testdb && mkdir testdb
- ./mtest && ./mdb_stat testdb
-
-liblmdb.a: mdb.o midl.o
- $(AR) rs $@ mdb.o midl.o
-
-liblmdb.so: mdb.lo midl.lo
-# $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS)
- $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS)
-
-mdb_stat: mdb_stat.o liblmdb.a
-mdb_copy: mdb_copy.o liblmdb.a
-mdb_dump: mdb_dump.o liblmdb.a
-mdb_load: mdb_load.o liblmdb.a
-mtest: mtest.o liblmdb.a
-mtest2: mtest2.o liblmdb.a
-mtest3: mtest3.o liblmdb.a
-mtest4: mtest4.o liblmdb.a
-mtest5: mtest5.o liblmdb.a
-mtest6: mtest6.o liblmdb.a
-
-mdb.o: mdb.c lmdb.h midl.h
- $(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c
-
-midl.o: midl.c midl.h
- $(CC) $(CFLAGS) $(CPPFLAGS) -c midl.c
-
-mdb.lo: mdb.c lmdb.h midl.h
- $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c mdb.c -o $@
-
-midl.lo: midl.c midl.h
- $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c midl.c -o $@
-
-%: %.o
- $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
-
-%.o: %.c lmdb.h
- $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
-
-COV_FLAGS=-fprofile-arcs -ftest-coverage
-COV_OBJS=xmdb.o xmidl.o
-
-coverage: xmtest
- for i in mtest*.c [0-9]*.c; do j=`basename \$$i .c`; $(MAKE) $$j.o; \
- gcc -o x$$j $$j.o $(COV_OBJS) -pthread $(COV_FLAGS); \
- rm -rf testdb; mkdir testdb; ./x$$j; done
- gcov xmdb.c
- gcov xmidl.c
-
-xmtest: mtest.o xmdb.o xmidl.o
- gcc -o xmtest mtest.o xmdb.o xmidl.o -pthread $(COV_FLAGS)
-
-xmdb.o: mdb.c lmdb.h midl.h
- $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -O0 $(COV_FLAGS) -c mdb.c -o $@
-
-xmidl.o: midl.c midl.h
- $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -O0 $(COV_FLAGS) -c midl.c -o $@
diff --git a/libraries/liblmdb/Makefile.am b/libraries/liblmdb/Makefile.am
new file mode 100644
index 000000000000..d3a4a4c99c5d
--- /dev/null
+++ b/libraries/liblmdb/Makefile.am
@@ -0,0 +1,11 @@
+lib_LTLIBRARIES = liblmdb.la
+liblmdb_la_SOURCES = mdb.c midl.c
+liblmdb_la_LDFLAGS=-no-undefined -avoid-version
+
+bin_PROGRAMS = mdb_stat mdb_copy lmdump lmmgr
+mdb_stat_LDADD = liblmdb.la
+mdb_copy_LDADD = liblmdb.la
+lmdump_LDADD = liblmdb.la
+lmmgr_LDADD = liblmdb.la
+
+include_HEADERS = lmdb.h
diff --git a/libraries/liblmdb/configure.ac b/libraries/liblmdb/configure.ac
new file mode 100644
index 000000000000..3db22516634b
--- /dev/null
+++ b/libraries/liblmdb/configure.ac
@@ -0,0 +1,42 @@
+AC_INIT([hello], [1.0]) # good
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE([foreign])
+
+AC_PROG_CC
+
+# Use either new LT_INIT or old AC_DISABLE_STATIC/AC_PROG_LIBTOOL macros
+m4_ifdef([LT_INIT],
+ [LT_INIT([disable-static])],
+ [AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL])
+
+AC_ARG_WITH([pthread], [Path to pthread])
+AS_IF([test -n "$with_pthread"],
+ [LDFLAGS+=" -L$with_pthread/lib"]
+)
+AC_CHECK_LIB([pthread], [pthread_mutex_lock])
+AC_CHECK_LIB([pthreadGC2], [pthread_mutex_lock])
+AS_IF([test "$ac_cv_lib_pthread" = "no" && test "$ac_cv_lib_pthreadGC2" = "no"],
+[
+ AC_MSG_ERROR([Could not find pthreads library])
+])
+AC_CHECK_FUNCS([pthread_mutexattr_settype])
+AC_CHECK_FUNC([pthread_mutexattr_setrobust],
+[
+ AC_MSG_CHECKING([whether pthread_mutexattr_setrobust can be used on this platform])
+ AS_CASE([$target_os],
+ [*solaris*],
+ [
+ # Disable pthread_mutexattr_setrobust on Solaris, it is reported as
+ # existing on Solaris 11, but known to be broken.
+ AC_MSG_RESULT([no])
+ ],
+ [
+ AC_DEFINE([HAVE_PTHREAD_MUTEXATTR_SETROBUST])
+ AC_MSG_RESULT([yes])
+ ])
+])
+
+AC_CONFIG_SRCDIR([mdb.c])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c
index 96c859efd9bd..695d11602a13 100644
--- a/libraries/liblmdb/mdb.c
+++ b/libraries/liblmdb/mdb.c
@@ -220,6 +220,12 @@ typedef SSIZE_T ssize_t;
#define MDB_DEVEL 0
#endif
+#ifdef HAVE_PTHREAD_MUTEXATTR_SETROBUST
+#define MDB_USE_ROBUST 1
+#else
+#define MDB_USE_ROBUST 0
+#endif
+
/** Wrapper around __func__, which is a C99 feature */
#if __STDC_VERSION__ >= 199901L
# define mdb_func_ __func__
--
2.7.0

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:49d7b40949f2ced9bc8b23ea6a89e75471a1c9126537a8b268c318a00b84322b
size 130343

3
LMDB_0.9.17.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:80a08218e40f76a0485ec18c42de6f1e020b1ed0268f7cb34c69746e8d98c72c
size 135816

View File

@ -1,67 +0,0 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2014-05-16 21:40:05.570658956 +0200
Upstream: Submitted and rejected
build: use automake for building
The upstream Makefile suffers from some shortcomings, such as:
- Provides no way to set bindir, libdir, docdir/mandir.
- Fails to mkdir the DESTDIR tree on make install.
- Uses the wrong shared library extension on MinGW/Cygwin.
- No way of turning off static library generation at build time.
- There is no shared library versioning of any kind, which does not line up
with the guidelines for openSUSE and other distributions.
Upstream believes it will never change anything in an incompatible way.
While I, the patch author, concur with that expectation, it does not solve
the issue with compatible changes (such as adding functions), for which
symbol version maps would come into play. As I do not want to also maintain
a symvers patch, I will apply the naming guidelines of section
http://en.opensuse.org/openSUSE:Shared_library_packaging_policy#When_there_is_no_versioning
meaning the use of -release ${PACKAGE_VERSION}.
LMDB is a very simple project without many source files or compile-time flag
combinations; working with the original Makefile does not need all that many
hoops. But it is a tie IMO, and so, the casting vote shall be the AM route.
---
Makefile.am | 16 ++++++++++++++++
configure.ac | 13 +++++++++++++
2 files changed, 29 insertions(+)
--- /dev/null
+++ liblmdb/Makefile.am
@@ -0,0 +1,17 @@
+# -*- Makefile -*-
+
+ACLOCAL_AMFLAGS = -I m4
+AM_CFLAGS = -W -Wall -Wno-unused-parameter -Wbad-function-cast -pthread
+AM_CPPFLAGS = -include config.h
+LDADD = liblmdb.la
+
+bin_PROGRAMS = mdb_copy mdb_stat
+check_PROGRAMS = mtest mtest2 mtest3 mtest4 mtest5
+man_MANS = mdb_copy.1 mdb_stat.1
+include_HEADERS = lmdb.h
+lib_LTLIBRARIES = liblmdb.la
+liblmdb_la_SOURCES = mdb.c midl.c
+liblmdb_la_LDFLAGS = -release ${PACKAGE_VERSION}
+
+clean-local:
+ rm -Rf testdb
--- /dev/null
+++ liblmdb/configure.ac
@@ -0,0 +1,15 @@
+AC_INIT([liblmdb], [0.9.16], [http://symas.com/mdb/])
+AC_CONFIG_AUX_DIR([build-aux])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
+AM_INIT_AUTOMAKE([-Wall foreign subdir-objects tar-pax])
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+AC_PROG_CC_STDC
+AM_PROG_CC_C_O
+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])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT

View File

@ -1 +1 @@
liblmdb-0_9_16 liblmdb-0_9_17

View File

@ -1,5 +1,5 @@
--- liblmdb.orig/lmmgr.c --- a/libraries/liblmdb.orig/lmmgr.c
+++ liblmdb/lmmgr.c +++ b/libraries/liblmdb/lmmgr.c
@@ -3,6 +3,7 @@ lmmgr.c : Add, remove or manage the maxr @@ -3,6 +3,7 @@ lmmgr.c : Add, remove or manage the maxr
*/ */
#include <stdio.h> #include <stdio.h>

View File

@ -1,3 +1,54 @@
-------------------------------------------------------------------
Mon Feb 1 13:01:34 UTC 2016 - kkaempf@suse.com
- Renamed patches
0002-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch
-> 0001-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch
automake.diff
-> 0002-Autoconf-files.patch
0003-Optimization-Define-correct-cacheline-size-on-HPUX.patch
- Dropped patch (upstream)
0001-Patch-for-LMDB-to-use-robust-mutexes.patch
- Update to 0.9.17
Fix ITS#7377 catch calloc failure
Fix ITS#8237 regression from ITS#7589
Fix ITS#8238 page_split for DUPFIXED pages
Fix ITS#8221 MDB_PAGE_FULL on delete/rebalance
Fix ITS#8258 rebalance/split assert
Fix ITS#8263 cursor_put cursor tracking
Fix ITS#8264 cursor_del cursor tracking
Fix ITS#8310 cursor_del cursor tracking
Fix ITS#8299 mdb_del cursor tracking
Fix ITS#8300 mdb_del cursor tracking
Fix ITS#8304 mdb_del cursor tracking
Fix ITS#7771 fakepage cursor tracking
Fix ITS#7789 ensure mapsize >= pages in use
Fix ITS#7971 mdb_txn_renew0() new reader slots
Fix ITS#7969 use __sync_synchronize on non-x86
Fix ITS#8311 page_split from update_key
Fix ITS#8312 loose pages in nested txn
Fix ITS#8313 mdb_rebalance dummy cursor
Fix ITS#8315 dirty_room in nested txn
Fix ITS#8323 dirty_list in nested txn
Fix ITS#8316 page_merge cursor tracking
Fix ITS#8321 cursor tracking
Fix ITS#8319 mdb_load error messages
Fix ITS#8320 mdb_load plaintext input
Added mdb_txn_id() (ITS#7994)
Added robust mutex support
Miscellaneous cleanup/simplification
Build
Create install dirs if needed (ITS#8256)
Fix ThreadProc decl on Win32/MSVC (ITS#8270)
Added ssize_t typedef for MSVC (ITS#8067)
Use ANSI apis on Windows (ITS#8069)
Use O_SYNC if O_DSYNC,MDB_DSYNC are not defined (ITS#7209)
Allow passing AR to make (ITS#8168)
Allow passing mandir to make install (ITS#8169)
------------------------------------------------------------------- -------------------------------------------------------------------
Sun Nov 15 10:04:11 UTC 2015 - jengelh@inai.de Sun Nov 15 10:04:11 UTC 2015 - jengelh@inai.de

View File

@ -1,7 +1,7 @@
# #
# spec file for package lmdb # spec file for package lmdb
# #
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -20,18 +20,22 @@ Name: lmdb
Summary: Lightning Memory-Mapped Database Manager Summary: Lightning Memory-Mapped Database Manager
License: OLDAP-2.8 License: OLDAP-2.8
Group: Productivity/Databases/Tools Group: Productivity/Databases/Tools
%define lname liblmdb-0_9_16 %define lname liblmdb-0_9_17
Version: 0.9.16 Version: 0.9.17
Release: 0 Release: 0
Url: http://symas.com/mdb/ Url: http://symas.com/mdb/
#Git-Clone: git://git.openldap.org/openldap mdb.master #Git-Clone: git://git.openldap.org/openldap mdb.master
Source: https://github.com/LMDB/lmdb/archive/LMDB_%version.tar.gz Source: https://github.com/LMDB/lmdb/archive/LMDB_%version.tar.gz
Source99: baselibs.conf Source99: baselibs.conf
Patch1: automake.diff
Patch2: 0001-Patch-for-LMDB-to-use-robust-mutexes.patch # PATCH-FIX-UPSTREAM - debugging tools (https://github.com/kacfengine/lmdb)
Patch3: 0002-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch Patch1: 0001-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch
Patch4: liblmdb-implicit-decl.patch # PATCH-FIX-UPSTREAM - configure.ac, Makefile.am, etc.
Patch2: 0002-Autoconf-files.patch
# PATCH-FIX-OPENSUSE - Implicit declaration of atol()
Patch3: liblmdb-implicit-decl.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake >= 1.10 BuildRequires: automake >= 1.10
@ -79,36 +83,33 @@ This package contains the files needed to compile programs that use
the liblmdb library. the liblmdb library.
%prep %prep
%setup -qn lmdb-LMDB_%version/libraries/liblmdb %setup -qn lmdb-LMDB_%version
# PATCH-FIX-OPENSUSE - autotools files, jengelh@inai.de
%patch1 -p1 %patch1 -p1
# PATCH-FIX-UPSTREAM - prevent deadlock when process holding db lock dies, kkaempf@suse.de
%patch2 -p1 %patch2 -p1
# PATCH-FIX-OPENSUSE - debugging tools (https://github.com/kacfengine/lmdb)
%patch3 -p1 %patch3 -p1
# PATCH-FIX-OPENSUSE - Implicit declaration of atol()
%patch4 -p1
%build %build
cd libraries/liblmdb
mkdir -p m4 mkdir -p m4
autoreconf -fi autoreconf -fi
%configure --disable-static %configure --disable-static
make %{?_smp_mflags} V=1 make %{?_smp_mflags} V=1
%install %install
cd libraries/liblmdb
make install DESTDIR="%buildroot" make install DESTDIR="%buildroot"
rm -f "%buildroot/%_libdir"/*.la rm -f "%buildroot/%_libdir"/*.la
(cd %buildroot/%_libdir; mv liblmdb.so liblmdb-%version.so; ln -s liblmdb-%version.so liblmdb.so)
%post -n %lname -p /sbin/ldconfig %post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc CHANGES %doc libraries/liblmdb/CHANGES
%doc COPYRIGHT %doc libraries/liblmdb/COPYRIGHT
%doc LICENSE %doc libraries/liblmdb/LICENSE
%{_bindir}/* %{_bindir}/*
%doc %{_mandir}/man1/*
%files -n %lname %files -n %lname
%defattr(-,root,root) %defattr(-,root,root)