diff --git a/rocksdb.spec b/rocksdb.spec index 4b2fa20a29bfe00c0f3d626df52962cb80e6e83d..dc444cd9e609ed20378df4d7db7f7bb453738aa2 100644 --- a/rocksdb.spec +++ b/rocksdb.spec @@ -1,12 +1,12 @@ Name: rocksdb Version: 6.8.1 -Release: 1 +Release: 2 Summary: A Persistent Key-Value Store for Flash and RAM Storage License: GPLv2 and Apache 2.0 License URL: https://github.com/facebook/rocksdb.git -BuildRequires: gcc make rpm-build gcc-c++ gtest-devel +BuildRequires: gcc make rpm-build gcc-c++ gtest-devel maven java-1.8.0-openjdk-devel # enable debuginfo pacakges by default, then we need gdb package BuildRequires: gdb @@ -34,7 +34,15 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Development files for rocksdb - +%package -n %{name}jni +Summary: A Java JNI driver to rocksdb +# rocksdbjni.jar contains a shared object, that requires some packages +Requires: java-1.8.0-openjdk glibc snappy zlib bzip2 lz4 zstd libstdc++ + +%description -n %{name}jni +RocksDB JNI gives you a Java interface to the RocksDB C++ library which is an +embeddable persistent key-value store for fast storage. + %prep %autosetup @@ -44,15 +52,26 @@ rm build_tools/gnu_parallel %build export CFLAGS="%{optflags}" -export EXTRA_CXXFLAGS=" -std=c++11 %{optflags}" -make %{?_smp_mflags} shared_lib +# librocksdb*.so* has undefined symbols dlopen and so on, “-ldl” needs to be added here +export EXTRA_CXXFLAGS=" -std=c++11 %{optflags} -ldl" +%make_build shared_lib +# build rocksdbjni +export JAVA_HOME=%{_jvmdir}/java-1.8.0-openjdk +export EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -I${JAVA_HOME}/include/ -I${JAVA_HOME}/include/linux" +sed -i 's#\(^DEBUG_LEVEL.*=\).*$#\10#' Makefile +PORTABLE=1 %make_build rocksdbjava %install make install-shared \ INSTALL_PREFIX=%{buildroot}\ LIB_INSTALL_DIR=%{_libdir}\ INCLUDE_INSTALL_DIR=%{_includedir} - + +# install rocksdbjni +install -d -p -m 0755 %{buildroot}%{_javadir}/%{name}jni +install -D -m 0644 java/target/%{name}jni-%{version}-linux$(getconf LONG_BIT).jar \ + %{buildroot}%{_javadir}/%{name}jni/%{name}jni.jar + %post -p /sbin/ldconfig %postun -p /sbin/ldconfig @@ -68,6 +87,14 @@ make install-shared \ %{_libdir}/librocksdb.so %{_includedir}/* +%files -n %{name}jni +%dir %{_javadir}/%{name}jni +%{_javadir}/%{name}jni/%{name}jni.jar + %changelog +* Thu May 06 2021 herengui - 6.8.1-2 +- add java-api: rocksdbjni +- fix undefined symbol issue for c++ API + * Thu May 28 2020 openEuler Buildteam - 6.8.1-1 - Package init