diff --git a/rocksdb-6.8.1-install_path.patch b/rocksdb-6.8.1-install_path.patch new file mode 100644 index 0000000000000000000000000000000000000000..17543529e6f2f2a8466e9ae96adbd3b5df169f91 --- /dev/null +++ b/rocksdb-6.8.1-install_path.patch @@ -0,0 +1,57 @@ +diff --git a/Makefile b/Makefile +index a6c8c64..5276f96 100644 +--- a/Makefile ++++ b/Makefile +@@ -1720,33 +1720,35 @@ defer_test: util/defer_test.o $(LIBOBJECTS) $(TESTHARNESS) + + #------------------------------------------------- + # make install related stuff +-INSTALL_PATH ?= /usr/local ++INSTALL_PREFIX ?= / ++INCLUDE_INSTAL_DIR ?= /usr/local/include/ ++LIB_INSTALL_DIR ?= /usr/local/lib/ + + uninstall: +- rm -rf $(INSTALL_PATH)/include/rocksdb \ +- $(INSTALL_PATH)/lib/$(LIBRARY) \ +- $(INSTALL_PATH)/lib/$(SHARED4) \ +- $(INSTALL_PATH)/lib/$(SHARED3) \ +- $(INSTALL_PATH)/lib/$(SHARED2) \ +- $(INSTALL_PATH)/lib/$(SHARED1) ++ rm -rf $(INSTALL_PREFIX)/$(INCLUDE_INSTALL_DIR)/rocksdb \ ++ $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(LIBRARY) \ ++ $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(SHARED4) \ ++ $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(SHARED3) \ ++ $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(SHARED2) \ ++ $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(SHARED1) + + install-headers: +- install -d $(INSTALL_PATH)/lib +- for header_dir in `$(FIND) "include/rocksdb" -type d`; do \ +- install -d $(INSTALL_PATH)/$$header_dir; \ ++ install -d $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR) ++ for header_dir in $$(find "include/rocksdb" -type d|sed -r 's/^([^\/]*\/)//'); do \ ++ install -d $(INSTALL_PREFIX)/$(INCLUDE_INSTALL_DIR)/$$header_dir; \ + done +- for header in `$(FIND) "include/rocksdb" -type f -name *.h`; do \ +- install -C -m 644 $$header $(INSTALL_PATH)/$$header; \ ++ for header in $$(find "include/rocksdb" -type f -name *.h|sed -r 's/^([^\/]*\/)//'); do \ ++ install -C -m 644 "include/$$header" $(INSTALL_PREFIX)/$(INCLUDE_INSTALL_DIR)/$$header; \ + done + + install-static: install-headers $(LIBRARY) +- install -C -m 755 $(LIBRARY) $(INSTALL_PATH)/lib ++ install -C -m 755 $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR) + + install-shared: install-headers $(SHARED4) +- install -C -m 755 $(SHARED4) $(INSTALL_PATH)/lib && \ +- ln -fs $(SHARED4) $(INSTALL_PATH)/lib/$(SHARED3) && \ +- ln -fs $(SHARED4) $(INSTALL_PATH)/lib/$(SHARED2) && \ +- ln -fs $(SHARED4) $(INSTALL_PATH)/lib/$(SHARED1) ++ install -C -m 755 $(SHARED4) $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR) && \ ++ ln -fs $(SHARED4) $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(SHARED3) && \ ++ ln -fs $(SHARED4) $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(SHARED2) && \ ++ ln -fs $(SHARED4) $(INSTALL_PREFIX)/$(LIB_INSTALL_DIR)/$(SHARED1) + + # install static by default + install shared if it exists + install: install-static diff --git a/rocksdb.spec b/rocksdb.spec new file mode 100644 index 0000000000000000000000000000000000000000..4b2fa20a29bfe00c0f3d626df52962cb80e6e83d --- /dev/null +++ b/rocksdb.spec @@ -0,0 +1,73 @@ +Name: rocksdb +Version: 6.8.1 +Release: 1 +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 + +# enable debuginfo pacakges by default, then we need gdb package +BuildRequires: gdb + +# rocksdb recommend installing some compression libraries +BuildRequires: snappy snappy-devel zlib zlib-devel bzip2 bzip2-devel lz4 lz4-devel zstd zstd-devel gflags gflags-devel + +Requires: snappy snappy-devel zlib zlib-devel bzip2 bzip2-devel lz4 lz4-devel zstd zstd-devel gflags gflags-devel + +Source0: https://codeload.github.com/facebook/%{name}/tar.gz/v%{version} +Patch0: rocksdb-6.8.1-install_path.patch + +%description +Rocksdb is a library that forms the core building block for a fast key value +server, especially suited for storing data on flash drives. It has a +Log-Structured-Merge-Database (LSM) design with flexible trade offs between +Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and +Space-Amplification-Factor (SAF). It has multithreaded compaction, making it +specially suitable for storing multiple terabytes of data in a single database. + +%package devel +Summary: Development files for rocksdb +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development files for rocksdb + + +%prep +%autosetup + +rm -rf third-party/gtest-1.8.1 +rm java/benchmark/src/main/java/org/rocksdb/benchmark/DbBenchmark.java +rm build_tools/gnu_parallel + +%build +export CFLAGS="%{optflags}" +export EXTRA_CXXFLAGS=" -std=c++11 %{optflags}" +make %{?_smp_mflags} shared_lib + +%install +make install-shared \ + INSTALL_PREFIX=%{buildroot}\ + LIB_INSTALL_DIR=%{_libdir}\ + INCLUDE_INSTALL_DIR=%{_includedir} + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + + +%files +%{_libdir}/librocksdb.so.6 +%{_libdir}/librocksdb.so.6.8 +%{_libdir}/librocksdb.so.6.8.1 +%license COPYING LICENSE.Apache LICENSE.leveldb + + +%files devel +%{_libdir}/librocksdb.so +%{_includedir}/* + +%changelog +* Thu May 28 2020 openEuler Buildteam - 6.8.1-1 +- Package init diff --git a/v6.8.1 b/v6.8.1 new file mode 100644 index 0000000000000000000000000000000000000000..b662ac35c0a01cdf92194b69963d7710ae40d8d4 Binary files /dev/null and b/v6.8.1 differ