On 2020/12/15 10:18, Ashton Fagg wrote: > Ping again. > > > Ashton Fagg <[email protected]> writes: > > > >> The attached diff updates databases/leveldb to the latest version > >> (1.22).
I'll take care of this, a few comments inline: > >> > >> 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. FWIW this (especially the " =" -> "=" change which touches nearly every line) makes the diff a lot harder to read, especially when combined with the rework for cmake, which means it's not the quick review that is often possible (especially for a port with nothing depending on it). > >> - 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 > > 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 whitespace nitpicking: tab space space tab (and i think there was another one) > > -SHARED_LIBS += leveldb 2.0 # 0.0 > - > -CATEGORIES = databases devel > +MAINTAINER= Ashton Fagg <[email protected]> > > # 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. ..but it changes what can be a self-contained 2 liner in the port Makefile to a patch to a file that is likely to change with a future update; unless it's changing a doc install which is already provided and wrong then doing this in the port Makefile is more robust > + > +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
