diff --git a/0002-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch b/0001-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch similarity index 84% rename from 0002-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch rename to 0001-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch index b7ac13d..9142fbc 100644 --- a/0002-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch +++ b/0001-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch @@ -1,5 +1,21 @@ +From 1701892d066c626bbd82c9340d6b442f733c33a1 Mon Sep 17 00:00:00 2001 +From: Kristian Amlie +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 -+++ liblmdb/lmdump.c ++++ b/libraries/liblmdb/lmdump.c @@ -0,0 +1,128 @@ +/* lmdump.c - Lmdb database dumper + Has three modes : @@ -129,8 +145,11 @@ + + return 0; +} +diff --git a/libraries/liblmdb/lmmgr.c b/libraries/liblmdb/lmmgr.c +new file mode 100644 +index 000000000000..1137d8dc388a --- /dev/null -+++ liblmdb/lmmgr.c ++++ b/libraries/liblmdb/lmmgr.c @@ -0,0 +1,201 @@ +/* +lmmgr.c : Add, remove or manage the maxreaders value of a given database file @@ -333,14 +352,19 @@ + + return 1; +} ---- liblmdb.orig/Makefile.am -+++ liblmdb/Makefile.am -@@ -5,7 +5,7 @@ AM_CFLAGS = -W -Wall -Wno-unused-paramet - AM_CPPFLAGS = -include config.h - LDADD = liblmdb.la +diff --git a/libraries/liblmdb/mdb_copy.c b/libraries/liblmdb/mdb_copy.c +index f37ccbcc213e..bbe43bf601ae 100644 +--- a/libraries/liblmdb/mdb_copy.c ++++ b/libraries/liblmdb/mdb_copy.c +@@ -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 -+bin_PROGRAMS = mdb_copy mdb_stat lmdump lmmgr - check_PROGRAMS = mtest mtest2 mtest3 mtest4 mtest5 - man_MANS = mdb_copy.1 mdb_stat.1 - include_HEADERS = lmdb.h + for (; argc > 1 && argv[1][0] == '-'; argc--, argv++) { +-- +2.7.0 + diff --git a/0001-Patch-for-LMDB-to-use-robust-mutexes.patch b/0001-Patch-for-LMDB-to-use-robust-mutexes.patch deleted file mode 100644 index 297f299..0000000 --- a/0001-Patch-for-LMDB-to-use-robust-mutexes.patch +++ /dev/null @@ -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; imti_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))) diff --git a/0002-Autoconf-files.patch b/0002-Autoconf-files.patch new file mode 100644 index 0000000..43b1c37 --- /dev/null +++ b/0002-Autoconf-files.patch @@ -0,0 +1,217 @@ +From 8e9182f6252eeb8e2390de814f4d1e9db2485edc Mon Sep 17 00:00:00 2001 +From: Kristian Amlie +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 + diff --git a/LMDB_0.9.16.tar.gz b/LMDB_0.9.16.tar.gz deleted file mode 100644 index cba55cf..0000000 --- a/LMDB_0.9.16.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:49d7b40949f2ced9bc8b23ea6a89e75471a1c9126537a8b268c318a00b84322b -size 130343 diff --git a/LMDB_0.9.17.tar.gz b/LMDB_0.9.17.tar.gz new file mode 100644 index 0000000..7ed062e --- /dev/null +++ b/LMDB_0.9.17.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80a08218e40f76a0485ec18c42de6f1e020b1ed0268f7cb34c69746e8d98c72c +size 135816 diff --git a/automake.diff b/automake.diff deleted file mode 100644 index 83cbb4e..0000000 --- a/automake.diff +++ /dev/null @@ -1,67 +0,0 @@ -From: Jan Engelhardt -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 diff --git a/baselibs.conf b/baselibs.conf index 1048676..7a184f0 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1 +1 @@ -liblmdb-0_9_16 +liblmdb-0_9_17 diff --git a/liblmdb-implicit-decl.patch b/liblmdb-implicit-decl.patch index c876067..8dae40f 100644 --- a/liblmdb-implicit-decl.patch +++ b/liblmdb-implicit-decl.patch @@ -1,5 +1,5 @@ ---- liblmdb.orig/lmmgr.c -+++ liblmdb/lmmgr.c +--- a/libraries/liblmdb.orig/lmmgr.c ++++ b/libraries/liblmdb/lmmgr.c @@ -3,6 +3,7 @@ lmmgr.c : Add, remove or manage the maxr */ #include diff --git a/lmdb.changes b/lmdb.changes index bde8afc..3b18814 100644 --- a/lmdb.changes +++ b/lmdb.changes @@ -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 diff --git a/lmdb.spec b/lmdb.spec index ae7da37..b354c2e 100644 --- a/lmdb.spec +++ b/lmdb.spec @@ -1,7 +1,7 @@ # # 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 # remain the property of their copyright owners, unless otherwise agreed @@ -20,18 +20,22 @@ Name: lmdb Summary: Lightning Memory-Mapped Database Manager License: OLDAP-2.8 Group: Productivity/Databases/Tools -%define lname liblmdb-0_9_16 -Version: 0.9.16 +%define lname liblmdb-0_9_17 +Version: 0.9.17 Release: 0 Url: http://symas.com/mdb/ #Git-Clone: git://git.openldap.org/openldap mdb.master Source: https://github.com/LMDB/lmdb/archive/LMDB_%version.tar.gz Source99: baselibs.conf -Patch1: automake.diff -Patch2: 0001-Patch-for-LMDB-to-use-robust-mutexes.patch -Patch3: 0002-Add-extra-tools-and-CFEngine-modifications-for-LMDB.patch -Patch4: liblmdb-implicit-decl.patch + +# PATCH-FIX-UPSTREAM - debugging tools (https://github.com/kacfengine/lmdb) +Patch1: 0001-Add-extra-tools-and-CFEngine-modifications-for-LMDB.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 BuildRequires: autoconf BuildRequires: automake >= 1.10 @@ -79,36 +83,33 @@ This package contains the files needed to compile programs that use the liblmdb library. %prep -%setup -qn lmdb-LMDB_%version/libraries/liblmdb -# PATCH-FIX-OPENSUSE - autotools files, jengelh@inai.de +%setup -qn lmdb-LMDB_%version %patch1 -p1 -# PATCH-FIX-UPSTREAM - prevent deadlock when process holding db lock dies, kkaempf@suse.de %patch2 -p1 -# PATCH-FIX-OPENSUSE - debugging tools (https://github.com/kacfengine/lmdb) %patch3 -p1 -# PATCH-FIX-OPENSUSE - Implicit declaration of atol() -%patch4 -p1 %build +cd libraries/liblmdb mkdir -p m4 autoreconf -fi %configure --disable-static make %{?_smp_mflags} V=1 %install +cd libraries/liblmdb make install DESTDIR="%buildroot" 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 %postun -n %lname -p /sbin/ldconfig %files %defattr(-,root,root) -%doc CHANGES -%doc COPYRIGHT -%doc LICENSE +%doc libraries/liblmdb/CHANGES +%doc libraries/liblmdb/COPYRIGHT +%doc libraries/liblmdb/LICENSE %{_bindir}/* -%doc %{_mandir}/man1/* %files -n %lname %defattr(-,root,root)