Monday, December 07, 2020

Ping - [Update] databases/leveldb: 1.21 -> 1.22

diff --git a/databases/leveldb/Makefile b/databases/leveldb/Makefile
index cf6320ce74b..8831f06deb6 100644
--- a/databases/leveldb/Makefile
+++ b/databases/leveldb/Makefile
@@ -1,40 +1,30 @@
# $OpenBSD: Makefile,v 1.20 2019/07/12 20:43:53 sthen Exp $

-#'atomic_pointer.h: error Please implement AtomicPointer for this platform' on other archs
-ONLY_FOR_ARCHS = i386 amd64
+#'atomic_pointer.h: error Please implement AtomicPointer for this
+# platform' on other archs
+ONLY_FOR_ARCHS= i386 amd64

-COMMENT = fast key-value storage library
+COMMENT= fast key-value storage library
+CATEGORIES= databases devel
+GH_ACCOUNT= google
+GH_PROJECT= leveldb
+GH_TAGNAME= 1.22

-GH_ACCOUNT = google
-GH_PROJECT = leveldb
-GH_TAGNAME = v1.20
+SHARED_LIBS= leveldb 3.0 # 0.0

-SHARED_LIBS += leveldb 2.0 # 0.0
-
-CATEGORIES = databases devel
+MAINTAINER= Ashton Fagg <ashton@fagg.id.au>

# BSD3
-PERMIT_PACKAGE = Yes
-
-MAKE_ENV = CC="${CC}" CXX="${CXX}" OPT="${CXXFLAGS}" \
- SHARED_VERSION_MAJOR=${LIBleveldb_VERSION:R} \
- SHARED_VERSION_MINOR=${LIBleveldb_VERSION:E}
-
-USE_GMAKE = Yes
+PERMIT_PACKAGE= Yes

-TEST_TARGET = check
+WANTLIB= ${COMPILER_LIBCXX} m pthread

-DOC = ${PREFIX}/share/doc/leveldb/
+# C++11
+COMPILER= base-clang ports-gcc
+MODULES= devel/cmake

-do-install:
- ${INSTALL_DATA_DIR} ${PREFIX}/include/leveldb
- ${INSTALL_DATA} ${WRKSRC}/include/leveldb/* ${PREFIX}/include/leveldb
- ${INSTALL_DATA} ${WRKSRC}/out-static/*.a \
- ${PREFIX}/lib
- ${INSTALL_DATA} ${WRKSRC}/out-shared/libleveldb.so.${LIBleveldb_VERSION} \
- ${PREFIX}/lib/libleveldb.so.${LIBleveldb_VERSION}
- ${INSTALL_DATA_DIR} ${DOC}
- ${INSTALL_DATA} ${WRKSRC}/doc/*.md ${DOC}
- ${INSTALL_DATA} ${WRKSRC}/LICENSE ${DOC}
+CONFIGURE_ARGS+= -DBUILD_SHARED_LIBS=on \
+ -DLEVELDB_INSTALL=on \
+ -DLEVELDB_BUILD_BENCHMARKS=off

.include <bsd.port.mk>
diff --git a/databases/leveldb/distinfo b/databases/leveldb/distinfo
index abd336a865d..ae4cf1d8f0c 100644
--- a/databases/leveldb/distinfo
+++ b/databases/leveldb/distinfo
@@ -1,2 +1,2 @@
-SHA256 (leveldb-1.20.tar.gz) = 9avotbIJwvNlYLdfMs5hQS85opIvcEWudkosIzNbZmQ=
-SIZE (leveldb-1.20.tar.gz) = 223141
+SHA256 (leveldb-1.22.tar.gz) = VUI8rJ4zBvSpUCxzigAeSjOdGjj/vudXLUoH1dY5SbI=
+SIZE (leveldb-1.22.tar.gz) = 239365
diff --git a/databases/leveldb/patches/patch-CMakeLists_txt b/databases/leveldb/patches/patch-CMakeLists_txt
new file mode 100644
index 00000000000..06c01609581
--- /dev/null
+++ b/databases/leveldb/patches/patch-CMakeLists_txt
@@ -0,0 +1,22 @@
+$OpenBSD$
+
+This adds the install logic for the documentation. Keeps the Makefile nice and tidy.
+
+Index: CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -448,4 +448,14 @@ if(LEVELDB_INSTALL)
+ "${PROJECT_BINARY_DIR}/leveldbConfigVersion.cmake"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/leveldb"
+ )
++ install(
++ FILES
++ "${PROJECT_SOURCE_DIR}/doc/impl.md"
++ "${PROJECT_SOURCE_DIR}/doc/index.md"
++ "${PROJECT_SOURCE_DIR}/doc/log_format.md"
++ "${PROJECT_SOURCE_DIR}/doc/table_format.md"
++ "${PROJECT_SOURCE_DIR}/LICENSE"
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/doc/leveldb"
++ )
++
+ endif(LEVELDB_INSTALL)
diff --git a/databases/leveldb/patches/patch-Makefile b/databases/leveldb/patches/patch-Makefile
deleted file mode 100644
index 292fb04cba0..00000000000
--- a/databases/leveldb/patches/patch-Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-$OpenBSD: patch-Makefile,v 1.5 2018/01/03 20:25:25 rsadowski Exp $
-
-Allow SHARED_MAJOR and SHARED_MINOR to be overridden.
-This doesn't affect kMajorVersion and kMinorVersion in db.h,
-but nothing uses them anyway.
-
-Index: Makefile
---- Makefile.orig
-+++ Makefile
-@@ -121,8 +121,8 @@ SHARED_LIBS = $(SHARED_LIB1)
- SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a
- else
- # Update db.h if you change these.
--SHARED_VERSION_MAJOR = 1
--SHARED_VERSION_MINOR = 20
-+SHARED_VERSION_MAJOR ?= 1
-+SHARED_VERSION_MINOR ?= 20
- SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
- SHARED_LIB2 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR)
- SHARED_LIB3 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
-@@ -135,7 +135,7 @@ SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a
- endif
-
- $(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS)
-- $(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(SHARED_LIB2) $(SHARED_LIBOBJECTS) -o $(SHARED_OUTDIR)/$(SHARED_LIB3) $(LIBS)
-+ $(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS) $(SHARED_LIBOBJECTS) -o $(SHARED_OUTDIR)/$(SHARED_LIB3) $(LIBS)
-
- endif # PLATFORM_SHARED_EXT
-
diff --git a/databases/leveldb/patches/patch-build_detect_platform b/databases/leveldb/patches/patch-build_detect_platform
deleted file mode 100644
index 076a666a2f7..00000000000
--- a/databases/leveldb/patches/patch-build_detect_platform
+++ /dev/null
@@ -1,69 +0,0 @@
-$OpenBSD: patch-build_detect_platform,v 1.7 2018/01/03 20:25:25 rsadowski Exp $
-
-Don't use SONAME.
-Skip checks for optional features.
-
-Index: build_detect_platform
---- build_detect_platform.orig
-+++ build_detect_platform
-@@ -123,6 +123,7 @@ case "$TARGET_OS" in
- PLATFORM_LDFLAGS="-pthread"
- PORT_FILE=port/port_posix.cc
- PORT_SSE_FILE=port/port_posix_sse.cc
-+ PLATFORM_SHARED_LDFLAGS="-shared"
- ;;
- DragonFly)
- PLATFORM=OS_DRAGONFLYBSD
-@@ -187,51 +188,7 @@ if [ "$CROSS_COMPILE" = "true" ]; then
- # Cross-compiling; do not try any compilation tests.
- true
- else
-- CXXOUTPUT="${TMPDIR}/leveldb_build_detect_platform-cxx.$$"
--
-- # If -std=c++0x works, use <atomic> as fallback for when memory barriers
-- # are not available.
-- $CXX $CXXFLAGS -std=c++0x -x c++ - -o $CXXOUTPUT 2>/dev/null <<EOF
-- #include <atomic>
-- int main() {}
--EOF
-- if [ "$?" = 0 ]; then
-- COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX -DLEVELDB_ATOMIC_PRESENT"
-- PLATFORM_CXXFLAGS="-std=c++0x"
-- else
-- COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX"
-- fi
--
-- # Test whether Snappy library is installed
-- # http://code.google.com/p/snappy/
-- $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT 2>/dev/null <<EOF
-- #include <snappy.h>
-- int main() {}
--EOF
-- if [ "$?" = 0 ]; then
-- COMMON_FLAGS="$COMMON_FLAGS -DSNAPPY"
-- PLATFORM_LIBS="$PLATFORM_LIBS -lsnappy"
-- fi
--
-- # Test whether tcmalloc is available
-- $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null <<EOF
-- int main() {}
--EOF
-- if [ "$?" = 0 ]; then
-- PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc"
-- fi
--
-- rm -f $CXXOUTPUT 2>/dev/null
--
-- # Test if gcc SSE 4.2 is supported
-- $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -msse4.2 2>/dev/null <<EOF
-- int main() {}
--EOF
-- if [ "$?" = 0 ]; then
-- PLATFORM_SSEFLAGS="-msse4.2"
-- fi
--
-- rm -f $CXXOUTPUT 2>/dev/null
-+ COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX"
- fi
-
- # Use the SSE 4.2 CRC32C intrinsics iff runtime checks indicate compiler supports them.
diff --git a/databases/leveldb/pkg/PLIST b/databases/leveldb/pkg/PLIST
index 7b312528148..56d4fbea8bc 100644
--- a/databases/leveldb/pkg/PLIST
+++ b/databases/leveldb/pkg/PLIST
@@ -6,6 +6,7 @@ include/leveldb/comparator.h
include/leveldb/db.h
include/leveldb/dumpfile.h
include/leveldb/env.h
+include/leveldb/export.h
include/leveldb/filter_policy.h
include/leveldb/iterator.h
include/leveldb/options.h
@@ -14,9 +15,13 @@ include/leveldb/status.h
include/leveldb/table.h
include/leveldb/table_builder.h
include/leveldb/write_batch.h
-lib/libleveldb.a
+lib/cmake/
+lib/cmake/leveldb/
+lib/cmake/leveldb/leveldbConfig.cmake
+lib/cmake/leveldb/leveldbConfigVersion.cmake
+lib/cmake/leveldb/leveldbTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/leveldb/leveldbTargets.cmake
@lib lib/libleveldb.so.${LIBleveldb_VERSION}
-lib/libmemenv.a
share/doc/leveldb/
share/doc/leveldb/LICENSE
share/doc/leveldb/impl.md
Ping.

Ashton Fagg <ashton@fagg.id.au> writes:

> The attached diff updates databases/leveldb to the latest version
> (1.22).
>
> The changelog can be viewed here:
>
> https://github.com/google/leveldb/releases/tag/1.22
>
> It seems the previous version (1.21) introduced a CMake build. But the
> OpenBSD port had not yet adopted it. Here, I've updated the port to the
> latest version and converted it to use the CMake build - which
> drastically simplifies the port Makefile. More to the point, it seems
> that the "old way" of building has been ripped out of this version.
>
> The port contains the following changes:
>
> - Conversion to use the new CMake build
>
> - A convenience patch to the CMakeLists.txt to make sure the
> documentation ends up in the right place on install.
>
> - Removal of some old stuff related to the old way of building the library.
>
> - General formatting stuff in the Makefile - there was an over-length
> line, detected by portcheck.
>
> - Add myself as maintainer.
>
> The port has been tested on amd64. configure, build, fake, package,
> install and uninstall all work. The test suite passes 100%.
>
> A quick grep turns up no dependent ports.
>
> Suggestions and comments welcome.
>
> Cheers,
>
> Ash

No comments:

Post a Comment