Add spec/source for rocksdb init

This commit is contained in:
huangtianhua 2020-05-13 07:54:35 +00:00
parent 9a9130f5be
commit a04c0be2cb
3 changed files with 130 additions and 0 deletions

View File

@ -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

73
rocksdb.spec Normal file
View File

@ -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 <buildteam@openeuler.org> - 6.8.1-1
- Package init

BIN
v6.8.1 Normal file

Binary file not shown.