diff --git a/databases/rocksdb-jni/Makefile b/databases/rocksdb-jni/Makefile index 7ca22cffada1..53f7cc7f0bd9 100644 --- a/databases/rocksdb-jni/Makefile +++ b/databases/rocksdb-jni/Makefile @@ -1,69 +1,71 @@ PORTNAME= rocksdb-jni DISTVERSIONPREFIX= v DISTVERSION= 9.6.1 +PORTREVISION= 1 CATEGORIES= databases java MASTER_SITES= https://rocksdb-deps.s3-us-west-2.amazonaws.com/jars/:deps DISTFILES= assertj-core-2.9.0.jar:deps \ cglib-3.3.0.jar:deps \ hamcrest-2.2.jar:deps \ junit-4.13.1.jar:deps \ mockito-all-1.10.19.jar:deps EXTRACT_ONLY= ${GH_ACCOUNT}-${GH_PROJECT}-${DISTVERSIONFULL}_GH0${EXTRACT_SUFX} MAINTAINER= yuri@FreeBSD.org COMMENT= Java (JNI) interface to RocksDB WWW= https://rocksdb.org/ LICENSE= APACHE20 GPLv2 LICENSE_COMB= dual LICENSE_FILE_APACHE20= ${WRKSRC}/../LICENSE.Apache LICENSE_FILE_GPLv2= ${WRKSRC}/../COPYING -BUILD_DEPENDS= rocksdb>0:databases/rocksdb \ - googletest>0:devel/googletest +BUILD_DEPENDS= googletest>0:devel/googletest +LIB_DEPENDS= librocksdb.so:databases/rocksdb # librocksdbjni.so in the rocksdb.jar file is linked to librocksdb.so -USES= cmake compiler:c++17-lang localbase +USES= cmake compiler:c++17-lang localbase:ldflags USE_GITHUB= yes GH_ACCOUNT= facebook GH_PROJECT= rocksdb USE_JAVA= yes JAVA_BUILD= yes JAVA_RUN= yes JAVA_VERSION= 21 WRKSRC_SUBDIR= java CMAKE_ARGS= -DCMAKE_PROJECT_VERSION=${DISTVERSION} \ -DJAVA_INCLUDE_PATH=${JAVA_HOME}/include CXXFLAGS+= -I${WRKSRC}/.. \ -DOS_FREEBSD \ -DROCKSDB_PLATFORM_POSIX +LDFLAGS+= -lrocksdb #MAKE_ENV+= JAVA_HOME=${JAVA_HOME} BINARY_ALIAS= java=${JAVA_HOME}/bin/java PLIST_FILES= ${JAVAJARDIR}/rocksdb-${PORTVERSION}.jar \ ${JAVAJARDIR}/rocksdbjni-${PORTVERSION}-javadoc.jar \ ${JAVAJARDIR}/rocksdbjni-${PORTVERSION}-sources.jar \ ${JAVAJARDIR}/rocksdbjni_classes.jar \ ${JAVAJARDIR}/rocksdbjni_test_classes.jar post-extract: @${MKDIR} ${WRKSRC}/test-libs && \ ${RLN} ${DISTDIR}/assertj-core-2.9.0.jar ${WRKSRC}/test-libs && \ ${RLN} ${DISTDIR}/cglib-3.3.0.jar ${WRKSRC}/test-libs && \ ${RLN} ${DISTDIR}/hamcrest-2.2.jar ${WRKSRC}/test-libs && \ ${RLN} ${DISTDIR}/junit-4.13.1.jar ${WRKSRC}/test-libs && \ ${RLN} ${DISTDIR}/mockito-all-1.10.19.jar ${WRKSRC}/test-libs do-install: ${INSTALL_DATA} ${BUILD_WRKSRC}/rocksdb-${PORTVERSION}.jar ${STAGEDIR}${JAVAJARDIR} ${INSTALL_DATA} ${BUILD_WRKSRC}/rocksdbjni-${PORTVERSION}-sources.jar ${STAGEDIR}${JAVAJARDIR} ${INSTALL_DATA} ${BUILD_WRKSRC}/rocksdbjni-${PORTVERSION}-javadoc.jar ${STAGEDIR}${JAVAJARDIR} ${INSTALL_DATA} ${BUILD_WRKSRC}/rocksdbjni_classes.jar ${STAGEDIR}${JAVAJARDIR} ${INSTALL_DATA} ${BUILD_WRKSRC}/rocksdbjni_test_classes.jar ${STAGEDIR}${JAVAJARDIR} .include diff --git a/databases/rocksdb-jni/files/patch-CMakeLists.txt b/databases/rocksdb-jni/files/patch-CMakeLists.txt index c75e2ddd194a..d75b2084b004 100644 --- a/databases/rocksdb-jni/files/patch-CMakeLists.txt +++ b/databases/rocksdb-jni/files/patch-CMakeLists.txt @@ -1,52 +1,67 @@ +- this patch performs 2 functions: +- 1. remove java/ from the PROJECT_SOURCE_DIR path +- 2. add librocksdbjni-freebsd64.so symlink needed to run some dependencies + --- CMakeLists.txt.orig 2024-08-27 20:39:35 UTC +++ CMakeLists.txt @@ -542,9 +542,9 @@ include_directories(${JNI_INCLUDE_DIRS}) find_package(JNI) include_directories(${JNI_INCLUDE_DIRS}) -include_directories(${PROJECT_SOURCE_DIR}/java) +include_directories(${PROJECT_SOURCE_DIR}) -set(JAVA_TEST_LIBDIR ${PROJECT_SOURCE_DIR}/java/test-libs) +set(JAVA_TEST_LIBDIR ${PROJECT_SOURCE_DIR}/test-libs) set(JAVA_TMP_JAR ${JAVA_TEST_LIBDIR}/tmp.jar) set(JAVA_JUNIT_JAR ${JAVA_TEST_LIBDIR}/junit-${JAVA_JUNIT_VERSION}.jar) set(JAVA_HAMCR_JAR ${JAVA_TEST_LIBDIR}/hamcrest-${JAVA_HAMCR_VERSION}.jar) @@ -561,7 +561,7 @@ endif() set(JAVA_RUN_TESTCLASSPATH ${JAVA_JUNIT_JAR}:${JAVA_HAMCR_JAR}:${JAVA_MOCKITO_JAR}:${JAVA_CGLIB_JAR}:${JAVA_ASSERTJ_JAR}) endif() -set(JNI_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/java/include) +set(JNI_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/include) file(MAKE_DIRECTORY ${JNI_OUTPUT_DIR}) if(${Java_VERSION_MINOR} VERSION_LESS_EQUAL "7" AND ${Java_VERSION_MAJOR} STREQUAL "1") @@ -602,8 +602,8 @@ add_jar( GENERATE_NATIVE_HEADERS rocksdbjni_test_headers DESTINATION ${JNI_OUTPUT_DIR} ) -if(NOT EXISTS ${PROJECT_SOURCE_DIR}/java/classes) - file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/java/classes) +if(NOT EXISTS ${PROJECT_SOURCE_DIR}/classes) + file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/classes) endif() if(NOT EXISTS ${JAVA_TEST_LIBDIR}) @@ -817,7 +817,7 @@ create_javadoc(rocksdb set(ROCKSDB_JAVADOC_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-javadoc.jar) create_javadoc(rocksdb PACKAGES org.rocksdb org.rocksdb.util - SOURCEPATH "${PROJECT_SOURCE_DIR}/java/src/main/java" + SOURCEPATH "${PROJECT_SOURCE_DIR}/src/main/java" WINDOWTITLE "RocksDB Java API JavaDoc" AUTHOR FALSE USE FALSE @@ -833,7 +833,7 @@ add_custom_target(rocksdb_sources_jar ALL # Sources Jar set(ROCKSDB_SOURCES_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-sources.jar) add_custom_target(rocksdb_sources_jar ALL - ${Java_JAR_EXECUTABLE} cvf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR} -C ${PROJECT_SOURCE_DIR}/java/src/main/java/ . + ${Java_JAR_EXECUTABLE} cvf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR} -C ${PROJECT_SOURCE_DIR}/src/main/java/ . BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) +@@ -877,8 +877,10 @@ add_custom_target(rocksdbjava ALL + + add_custom_target(rocksdbjava ALL + COMMAND ${CMAKE_COMMAND} -E copy ${ROCKS_JAR_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR} ++ COMMAND ln -s librocksdbjni.so librocksdbjni-freebsd64.so + COMMAND ${Java_JAR_EXECUTABLE} -uf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR} -C $ $ + COMMAND ${Java_JAR_EXECUTABLE} -uf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR} -C ${CMAKE_CURRENT_SOURCE_DIR} HISTORY-JAVA.md ++ COMMAND ${Java_JAR_EXECUTABLE} -uf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR} -C $ librocksdbjni-freebsd64.so + DEPENDS ${ROCKSDBJNI_STATIC_LIB} rocksdbjni_classes + BYPRODUCTS ${ROCKSDB_JAR} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}