From bc2a3248c4df260421946a3e88a320154cc89285 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 14 2020 22:29:31 +0000 Subject: import lmdb-0.9.24-1.el8 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0d7b90e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/lmdb-LMDB_0.9.24.tar.gz diff --git a/.lmdb.metadata b/.lmdb.metadata new file mode 100644 index 0000000..7012ac6 --- /dev/null +++ b/.lmdb.metadata @@ -0,0 +1 @@ +76f4bc1827474403a78e5f8eb225233d67144286 SOURCES/lmdb-LMDB_0.9.24.tar.gz diff --git a/SOURCES/lmdb-covscan.patch b/SOURCES/lmdb-covscan.patch new file mode 100644 index 0000000..2d11cbd --- /dev/null +++ b/SOURCES/lmdb-covscan.patch @@ -0,0 +1,37 @@ +diff -up ./libraries/liblmdb/midl.c.fix ./libraries/liblmdb/midl.c +--- ./libraries/liblmdb/midl.c.fix 2019-06-19 11:10:07.791337785 +0200 ++++ ./libraries/liblmdb/midl.c 2019-06-19 11:16:04.005166705 +0200 +@@ -120,9 +120,15 @@ void mdb_midl_free(MDB_IDL ids) + void mdb_midl_shrink( MDB_IDL *idp ) + { + MDB_IDL ids = *idp; +- if (*(--ids) > MDB_IDL_UM_MAX && +- (ids = realloc(ids, (MDB_IDL_UM_MAX+2) * sizeof(MDB_ID)))) ++ MDB_IDL res = NULL; ++ if (*(--ids) > MDB_IDL_UM_MAX) + { ++ res = realloc(ids, (MDB_IDL_UM_MAX+2) * sizeof(MDB_ID)); ++ if (res) ++ ids = res; ++ else ++ return; ++ + *ids++ = MDB_IDL_UM_MAX; + *idp = ids; + } +@@ -131,10 +137,13 @@ void mdb_midl_shrink( MDB_IDL *idp ) + static int mdb_midl_grow( MDB_IDL *idp, int num ) + { + MDB_IDL idn = *idp-1; ++ MDB_IDL res = NULL; + /* grow it */ +- idn = realloc(idn, (*idn + num + 2) * sizeof(MDB_ID)); +- if (!idn) ++ res = realloc(idn, (*idn + num + 2) * sizeof(MDB_ID)); ++ if (!res) + return ENOMEM; ++ else ++ idn = res; + *idn++ += num; + *idp = idn; + return 0; diff --git a/SOURCES/lmdb-make.patch b/SOURCES/lmdb-make.patch new file mode 100644 index 0000000..eca03ef --- /dev/null +++ b/SOURCES/lmdb-make.patch @@ -0,0 +1,76 @@ +diff -up lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile.orig lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile +--- lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile.orig 2017-01-04 12:14:24.303344915 +0100 ++++ lmdb-LMDB_0.9.19/libraries/liblmdb/Makefile 2017-01-04 12:19:20.190295319 +0100 +@@ -26,6 +26,7 @@ OPT = -O2 -g + CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS) + LDLIBS = + SOLIBS = ++SOVERSION = 0.0.0 + SOEXT = .so + prefix = /usr/local + exec_prefix = $(prefix) +@@ -38,7 +39,7 @@ mandir = $(datarootdir)/man + ######################################################################## + + IHDRS = lmdb.h +-ILIBS = liblmdb.a liblmdb$(SOEXT) ++ILIBS = liblmdb$(SOEXT) liblmdb$(SOEXT).$(SOVERSION) + 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 +@@ -49,13 +50,13 @@ install: $(ILIBS) $(IPROGS) $(IHDRS) + mkdir -p $(DESTDIR)$(libdir) + mkdir -p $(DESTDIR)$(includedir) + mkdir -p $(DESTDIR)$(mandir)/man1 +- for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done +- for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done +- for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done +- for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done ++ for f in $(IPROGS); do cp -a $$f $(DESTDIR)$(bindir); done ++ for f in $(ILIBS); do cp -a $$f $(DESTDIR)$(libdir); done ++ for f in $(IHDRS); do cp -a $$f $(DESTDIR)$(includedir); done ++ for f in $(IDOCS); do cp -a $$f $(DESTDIR)$(mandir)/man1; done + + clean: +- rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb ++ rm -rf $(PROGS) *.[ao] *.[ls]o* *~ testdb + + test: all + rm -rf testdb && mkdir testdb +@@ -64,20 +65,24 @@ test: all + liblmdb.a: mdb.o midl.o + $(AR) rs $@ mdb.o midl.o + +-liblmdb$(SOEXT): mdb.lo midl.lo ++liblmdb$(SOEXT): liblmdb$(SOEXT).$(SOVERSION) ++ rm -f $@ ++ ln -s $< $@ ++ ++liblmdb$(SOEXT).$(SOVERSION): 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) ++ $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -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_stat: mdb_stat.o liblmdb.so ++mdb_copy: mdb_copy.o liblmdb.so ++mdb_dump: mdb_dump.o liblmdb.so ++mdb_load: mdb_load.o liblmdb.so ++mtest: mtest.o liblmdb.so ++mtest2: mtest2.o liblmdb.so ++mtest3: mtest3.o liblmdb.so ++mtest4: mtest4.o liblmdb.so ++mtest5: mtest5.o liblmdb.so ++mtest6: mtest6.o liblmdb.so + + mdb.o: mdb.c lmdb.h midl.h + $(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c diff --git a/SOURCES/lmdb-s390-check.patch b/SOURCES/lmdb-s390-check.patch new file mode 100644 index 0000000..2922ec6 --- /dev/null +++ b/SOURCES/lmdb-s390-check.patch @@ -0,0 +1,14 @@ +# The s390 architecture needs a pause before accessing the test DB. + +diff -up lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile.orig lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile +--- lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile.orig 2015-12-03 09:21:35.621480706 +0100 ++++ lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile 2015-12-03 09:22:10.069644210 +0100 +@@ -57,7 +57,7 @@ clean: + + test: all + rm -rf testdb && mkdir testdb +- ./mtest && ./mdb_stat testdb ++ ./mtest && sleep 1 && ./mdb_stat testdb + + liblmdb.a: mdb.o midl.o + $(AR) rs $@ mdb.o midl.o diff --git a/SOURCES/lmdb.pc.in b/SOURCES/lmdb.pc.in new file mode 100644 index 0000000..b26cf70 --- /dev/null +++ b/SOURCES/lmdb.pc.in @@ -0,0 +1,11 @@ +prefix=@PREFIX@ +exec_prefix=@EXEC_PREFIX@ +libdir=@LIBDIR@ +includedir=@INCLUDEDIR@ + +Name: liblmdb +Description: Lightning Memory-mapped key-value database +URL: http://symas.com/mdb/ +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -llmdb +Cflags: -I${includedir} diff --git a/SPECS/lmdb.spec b/SPECS/lmdb.spec new file mode 100644 index 0000000..0cd9d8d --- /dev/null +++ b/SPECS/lmdb.spec @@ -0,0 +1,143 @@ +# The files themselves are in several subdirectories and need to be prefixed wit this. +%global archive_path libraries/lib%{name} + +Name: lmdb +Version: 0.9.24 +Release: 1%{?dist} +Summary: Memory-mapped key-value database + +License: OpenLDAP +URL: http://symas.com/mdb/ +Source0: https://github.com/LMDB/lmdb/archive/LMDB_%{version}.tar.gz#/%{name}-LMDB_%{version}.tar.gz +Source1: lmdb.pc.in + +BuildRequires: make +BuildRequires: gcc +BuildRequires: doxygen + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +# Patch description in the corresponding file +Patch0: lmdb-make.patch +Patch1: lmdb-s390-check.patch +Patch2: lmdb-covscan.patch + +%description +LMDB is an ultra-fast, ultra-compact key-value embedded data +store developed by Symas for the OpenLDAP Project. By using memory-mapped files, +it provides the read performance of a pure in-memory database while still +offering the persistence of standard disk-based databases, and is only limited +to the size of the virtual address space. + +%package libs +Summary: Shared libraries for %{name} + +%description libs +The %{name}-libs package contains shared libraries necessary for running +applications that use %{name}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package doc +Summary: Documentation files for %{name} +BuildArch: noarch + +%description doc +The %{name}-doc package contains automatically generated documentation for %{name}. + + +%prep +%setup -q -n %{name}-LMDB_%{version} +%patch0 -p1 -b .make +%patch1 -p1 -b .s390-check +%patch2 -p1 -b .covscan + +%build +pushd %{archive_path} +make LDFLAGS="%{build_ldflags}" XCFLAGS="%{optflags}" %{?_smp_mflags} +# Build doxygen documentation +doxygen +# remove unpackaged files +rm -f Doxyfile +rm -rf man # Doxygen generated manpages +popd + +%install +pushd %{archive_path} +# make install expects existing directory tree +mkdir -m 0755 -p %{buildroot}{%{_bindir},%{_includedir}} +mkdir -m 0755 -p %{buildroot}{%{_libdir}/pkgconfig,%{_mandir}/man1} +make DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} mandir=%{_mandir} install +popd + +# Install pkgconfig file +sed -e 's:@PREFIX@:%{_prefix}:g' \ + -e 's:@EXEC_PREFIX@:%{_exec_prefix}:g' \ + -e 's:@LIBDIR@:%{_libdir}:g' \ + -e 's:@INCLUDEDIR@:%{_includedir}:g' \ + -e 's:@PACKAGE_VERSION@:%{version}:g' \ + %{SOURCE1} >lmdb.pc +install -Dpm 0644 -t %{buildroot}%{_libdir}/pkgconfig lmdb.pc + +%check +%if 0%{?rhel} == 6 && %{_arch} == "ppc64" + # rhel6 ppc64: skip unit tests + exit 0 +%endif + +pushd %{archive_path} +rm -rf testdb +LD_LIBRARY_PATH=$PWD make test +popd + +%ldconfig_scriptlets libs + + +%files +%{_bindir}/* +%{_mandir}/man1/* + +%files libs +%doc %{archive_path}/COPYRIGHT +%doc %{archive_path}/CHANGES +%license %{archive_path}/LICENSE +%{_libdir}/*.so.* + +%files devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc + +%files doc +%doc %{archive_path}/html +%doc %{archive_path}/COPYRIGHT +%doc %{archive_path}/CHANGES +%license %{archive_path}/LICENSE + + +%changelog +* Thu May 07 2020 Radovan Sroka - 0.9.24-1 +- RHEL 8.3.0 ERRATUM +- rebase to 0.9.24 +- Resolves: rhbz#1817421 + +* Tue Jun 18 2019 Radovan Sroka - 0.9.23-5 +- fixed resolves from RPMDIFF +- fixed some covscan issues + +* Wed Jun 12 2019 Radovan Sroka - 0.9.23-4 +- propagate ldflags for makefile +- added explicit Requires for -libs + +* Wed May 15 2019 Radovan Sroka - 0.9.23-3 +- rebuild + +* Mon Apr 29 2019 Radovan Sroka - 0.9.23-2 +- Initial Package +- Resolves: rhbz#1692264