Hello community,

here is the log from the commit of package lmdb for openSUSE:Factory checked in 
at 2014-05-21 16:19:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lmdb (Old)
 and      /work/SRC/openSUSE:Factory/.lmdb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lmdb"

Changes:
--------
--- /work/SRC/openSUSE:Factory/lmdb/lmdb.changes        2014-04-16 
07:28:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.lmdb.new/lmdb.changes   2014-05-21 
16:19:49.000000000 +0200
@@ -1,0 +2,12 @@
+Fri May 16 20:00:29 UTC 2014 - [email protected]
+
+- Replace verbose cmake script (remove CMakeLists.txt).
+- Instead, use a simpler automake patch (add automake.diff).
+- There is a change in shared library versioning scheme to line up
+  with our packaging guidelines. This is embodied within
+  automake.diff.
+- Shorten the description by 2/3, focus on the important points.
+- Do not unnecessarily pull in a C++ compiler for the build.
+- Invoke ldconfig directly as %post rather than sh+ldconfig.
+
+-------------------------------------------------------------------

Old:
----
  CMakeLists.txt
  VERSION.cmake

New:
----
  automake.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ lmdb.spec ++++++
--- /var/tmp/diff_new_pack.lQpZu8/_old  2014-05-21 16:19:50.000000000 +0200
+++ /var/tmp/diff_new_pack.lQpZu8/_new  2014-05-21 16:19:50.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package lmdb
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,87 +17,79 @@
 
 
 Name:           lmdb
-%define         libname   liblmdb
-%define         libsoname %{libname}0
-
+Summary:        Lightning Memory-Mapped Database Manager
 License:        OLDAP-2.8
 Group:          Productivity/Databases/Tools
-Summary:        LMDB is a tiny database with some great capabilities
+%define lname  liblmdb-0_9_11
 Version:        0.9.11
 Release:        0
-Url:            http://symas.com/mdb
-Source:         %{name}-%{version}.tar.bz2
-Source1:        VERSION.cmake
-Source2:        CMakeLists.txt
+Url:            http://symas.com/mdb/
 
+#Git-Clone:    git://git.openldap.org/openldap mdb.master
+Source:         %{name}-%{version}.tar.bz2
+Patch1:         automake.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-BuildRequires:  cmake
-BuildRequires:  gcc-c++
+BuildRequires:  autoconf
+BuildRequires:  automake >= 1.10
+BuildRequires:  libtool >= 2
 
 %description
-LMDB is a tiny database with some great capabilities:
-
-Ordered-map interface (keys are always sorted, supports range lookups)
-Fully transactional, full ACID semantics with MVCC.
-Reader/writer transactions: readers don't block writers and writers
-don't block readers. Writers are fully serialized, so writes are
-always deadlock-free.
-Read transactions are extremely cheap, and can be performed using no
-mallocs or any other blocking calls.
-Supports multi-thread and multi-process concurrency, environments may
-be opened by multiple processes on the same host.
-Multiple sub-databases may be created with transactions covering all
-sub-databases.
-Memory-mapped, allowing for zero-copy lookup and iteration.
-Maintenance-free, no external process or background cleanup/compaction
-required.
-No application-level caching. LMDB fully exploits the operating
-system's buffer cache.
-32KB of object code and 6KLOC of C.
-Licensed under the OpenLDAP Public License
-It is a read-optimized design and performs reads several times faster
-than other DB engines, several orders of magnitude faster in many
-cases. It is not a write-optimized design; for heavy random write
-workloads other DB designs may be more suitable.
+LMDB is a Btree-based database management library with an API similar
+to BerkeleyDB. The library is thread-aware and supports concurrent
+read/write access from multiple processes and threads. The DB
+structure is multi-versioned, and data pages use a copy-on-write
+strategy, which also provides resistance to corruption and eliminates
+the need for any recovery procedures. The database is exposed in a
+memory map, requiring no page cache layer of its own.
 
-
-%package -n %{libsoname}
-Summary:        Shared library of Lightning MDB (LMDB)
+%package -n %lname
+Summary:        Shared library for Lightning Memory-Mapped Database (LMDB)
 Group:          System/Libraries
-%if 0%{?suse_version} == 1010
-Requires:       glibc
-%endif
 
-%description -n %{libsoname}
-This package contains the shared lightning memory data base (lmdb)
+%description -n %lname
+LMDB is a Btree-based database management library with an API similar
+to BerkeleyDB. The library is thread-aware and supports concurrent
+read/write access from multiple processes and threads. The DB
+structure is multi-versioned, and data pages use a copy-on-write
+strategy, which also provides resistance to corruption and eliminates
+the need for any recovery procedures. The database is exposed in a
+memory map, requiring no page cache layer of its own.
+
+This package contains the shared library.
 
 %package devel
 Summary:        Development package for lmdb
 Group:          Development/Libraries/C and C++
-Requires:       %{libsoname} = %{version}
+Requires:       %lname = %version
 
 %description devel
-A high-speed in-memory database.
+LMDB is a Btree-based database management library with an API similar
+to BerkeleyDB. The library is thread-aware and supports concurrent
+read/write access from multiple processes and threads. The DB
+structure is multi-versioned, and data pages use a copy-on-write
+strategy, which also provides resistance to corruption and eliminates
+the need for any recovery procedures. The database is exposed in a
+memory map, requiring no page cache layer of its own.
  
-This package contains the files needed to compile programs that use the
-liblmdb library.
+This package contains the files needed to compile programs that use
+the liblmdb library.
 
 %prep
-%setup -q -n %{libname}
+%setup -qn liblmdb
+%patch -P 1 -p1
 
 %build
-cp %{S:1} .
-cp %{S:2} .
-%{cmake}
+mkdir -p m4
+autoreconf -fi
+%configure --disable-static
+make %{?_smp_mflags}
 
 %install
-(cd build; %{__make} install DESTDIR=%{buildroot})
-
-%post -n %{libsoname}
-/sbin/ldconfig
+make install DESTDIR="%buildroot"
+rm -f "%buildroot/%_libdir"/*.la
 
-%postun -n %{libsoname}
-/sbin/ldconfig
+%post   -n %lname -p /sbin/ldconfig
+%postun -n %lname -p /sbin/ldconfig
 
 %files
 %defattr(-,root,root)
@@ -107,13 +99,13 @@
 %{_bindir}/*
 %doc %{_mandir}/man1/*
 
-%files -n %{libsoname}
+%files -n %lname
 %defattr(-,root,root)
-%{_libdir}/*.so.*
+%_libdir/liblmdb-%version.so
 
 %files devel
 %defattr(-,root,root)
-%{_prefix}/include/*
-%{_libdir}/*.so
+%_includedir/*
+%_libdir/liblmdb.so
 
 %changelog

++++++ automake.diff ++++++
From: Jan Engelhardt <[email protected]>
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(+)

Index: liblmdb/Makefile.am
===================================================================
--- /dev/null
+++ liblmdb/Makefile.am
@@ -0,0 +1,16 @@
+# -*- Makefile -*-
+
+ACLOCAL_AMFLAGS = -I m4
+AM_CFLAGS = -W -Wall -Wno-unused-parameter -Wbad-function-cast -pthread
+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
Index: liblmdb/configure.ac
===================================================================
--- /dev/null
+++ liblmdb/configure.ac
@@ -0,0 +1,13 @@
+AC_INIT([liblmdb], [0.9.11], [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_PROG_CC
+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
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to