diff options
Diffstat (limited to 'source/l/lmdb')
-rw-r--r-- | source/l/lmdb/lmdb-make.patch | 76 | ||||
-rw-r--r-- | source/l/lmdb/lmdb-s390-check.patch | 14 | ||||
-rwxr-xr-x | source/l/lmdb/lmdb.SlackBuild | 139 | ||||
-rw-r--r-- | source/l/lmdb/lmdb.pc.in | 11 | ||||
-rw-r--r-- | source/l/lmdb/slack-desc | 19 |
5 files changed, 259 insertions, 0 deletions
diff --git a/source/l/lmdb/lmdb-make.patch b/source/l/lmdb/lmdb-make.patch new file mode 100644 index 00000000..eca03ef3 --- /dev/null +++ b/source/l/lmdb/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/source/l/lmdb/lmdb-s390-check.patch b/source/l/lmdb/lmdb-s390-check.patch new file mode 100644 index 00000000..2922ec67 --- /dev/null +++ b/source/l/lmdb/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/source/l/lmdb/lmdb.SlackBuild b/source/l/lmdb/lmdb.SlackBuild new file mode 100755 index 00000000..db62820d --- /dev/null +++ b/source/l/lmdb/lmdb.SlackBuild @@ -0,0 +1,139 @@ +#!/bin/bash + +# Copyright 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=lmdb +VERSION=${VERSION:-$(echo LMDB_*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d _ | rev)} +BUILD=${BUILD:-1} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i586 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" + LIBDIRSUFFIX="" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/LMDB_$VERSION.tar.?z || exit 1 +cd lmdb-LMDB_$VERSION || exit 1 + +zcat $CWD/lmdb-make.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/lmdb-s390-check.patch.gz | patch -p1 --verbose || exit 1 + +cd libraries/liblmdb + +sed -i "s|/usr/local|/usr|g" Makefile +sed -i "s|\$(exec_prefix)/lib|\$(exec_prefix)/lib${LIBDIRSUFFIX}|g" Makefile + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make $NUMJOBS XCFLAGS="$SLKCFLAGS" || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Install pkgconfig file: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig +cat $CWD/lmdb.pc.in | sed "s|/usr/lib|/usr/lib${LIBDIRSUFFIX}|g" | sed "s|@PACKAGE_VERSION@|$VERSION|g" > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/lmdb.pc + +mkdir -p $PKG/usr/man +mv $PKG/usr/share/man/man1 $PKG/usr/man +rmdir $PKG/usr/share/man $PKG/usr/share + +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress manual pages: +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do + ln -s $( readlink $i ).gz $i.gz + rm $i +done + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES* COPYRIGHT* LICENSE* README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# If there's a CHANGES file, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r CHANGES ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES + touch -r CHANGES $DOCSDIR/CHANGES +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/lmdb/lmdb.pc.in b/source/l/lmdb/lmdb.pc.in new file mode 100644 index 00000000..45d2d319 --- /dev/null +++ b/source/l/lmdb/lmdb.pc.in @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=${prefix}/include + +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/source/l/lmdb/slack-desc b/source/l/lmdb/slack-desc new file mode 100644 index 00000000..179b7081 --- /dev/null +++ b/source/l/lmdb/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lmdb: lmdb (Lightning Memory-mapped key-value database) +lmdb: +lmdb: LMDB is an ultra-fast, ultra-compact key-value embedded data store +lmdb: developed by Symas for the OpenLDAP Project. By using memory-mapped +lmdb: files, it provides the read performance of a pure in-memory database +lmdb: while still offering the persistence of standard disk-based databases, +lmdb: and is only limited to the size of the virtual address space. +lmdb: +lmdb: Homepage: http://symas.com/mdb/ +lmdb: +lmdb: |