!9 update verison to 1.23
From: @huyab Reviewed-by: @Charlie_li Signed-off-by: @Charlie_li
This commit is contained in:
commit
ddca73dca4
@ -1,49 +1,17 @@
|
|||||||
From 77961bc308c89cda06a3fb1dc2cfa9c9ced2ba48 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hiram Chirino <chirino@gmail.com>
|
From: Hiram Chirino <chirino@gmail.com>
|
||||||
Date: Fri, 5 Jul 2013 18:32:28 +0400
|
Date: Fri, 5 Jul 2013 18:32:28 +0400
|
||||||
Subject: [PATCH 1/4] Allow leveldbjni build
|
Subject: [PATCH] Allow leveldbjni build
|
||||||
|
|
||||||
---
|
|
||||||
build_detect_platform | 5 +++--
|
|
||||||
include/leveldb/slice.h | 1 -
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/build_detect_platform b/build_detect_platform
|
|
||||||
index d2a20ce5b6277594ec256004121195a22b049263..fb32ae9eab6f39d62e0478d87a73579c414e9f5a 100755
|
|
||||||
--- a/build_detect_platform
|
|
||||||
+++ b/build_detect_platform
|
|
||||||
@@ -245,12 +245,13 @@ PLATFORM_CXXFLAGS="$PLATFORM_CXXFLAGS $COMMON_FLAGS"
|
|
||||||
echo "CC=$CC" >> $OUTPUT
|
|
||||||
echo "CXX=$CXX" >> $OUTPUT
|
|
||||||
echo "PLATFORM=$PLATFORM" >> $OUTPUT
|
|
||||||
echo "PLATFORM_LDFLAGS=$PLATFORM_LDFLAGS" >> $OUTPUT
|
|
||||||
echo "PLATFORM_LIBS=$PLATFORM_LIBS" >> $OUTPUT
|
|
||||||
-echo "PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS" >> $OUTPUT
|
|
||||||
-echo "PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS" >> $OUTPUT
|
|
||||||
+echo "PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS $PLATFORM_SHARED_CFLAGS" >> $OUTPUT
|
|
||||||
+echo "PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS $PLATFORM_SHARED_CFLAGS" >> $OUTPUT
|
|
||||||
+echo "PLATFORM_SHARED_CFLAGS=" >> $OUTPUT
|
|
||||||
echo "PLATFORM_SSEFLAGS=$PLATFORM_SSEFLAGS" >> $OUTPUT
|
|
||||||
echo "PLATFORM_SHARED_CFLAGS=$PLATFORM_SHARED_CFLAGS" >> $OUTPUT
|
|
||||||
echo "PLATFORM_SHARED_EXT=$PLATFORM_SHARED_EXT" >> $OUTPUT
|
|
||||||
echo "PLATFORM_SHARED_LDFLAGS=$PLATFORM_SHARED_LDFLAGS" >> $OUTPUT
|
|
||||||
echo "PLATFORM_SHARED_VERSIONED=$PLATFORM_SHARED_VERSIONED" >> $OUTPUT
|
|
||||||
diff --git a/include/leveldb/slice.h b/include/leveldb/slice.h
|
diff --git a/include/leveldb/slice.h b/include/leveldb/slice.h
|
||||||
index bc367986f7e8e26fdf22afc02283d4dd13970158..6f2289aaad763b83d88ccffd259540c4827b1a6a 100644
|
index 2df417d..1af5635 100644
|
||||||
--- a/include/leveldb/slice.h
|
--- a/include/leveldb/slice.h
|
||||||
+++ b/include/leveldb/slice.h
|
+++ b/include/leveldb/slice.h
|
||||||
@@ -75,11 +75,10 @@ class Slice {
|
@@ -86,7 +86,6 @@ class LEVELDB_EXPORT Slice {
|
||||||
bool starts_with(const Slice& x) const {
|
return ((size_ >= x.size_) && (memcmp(data_, x.data_, x.size_) == 0));
|
||||||
return ((size_ >= x.size_) &&
|
|
||||||
(memcmp(data_, x.data_, x.size_) == 0));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- private:
|
- private:
|
||||||
const char* data_;
|
const char* data_;
|
||||||
size_t size_;
|
size_t size_;
|
||||||
|
|
||||||
// Intentionally copyable
|
|
||||||
};
|
};
|
||||||
--
|
|
||||||
2.14.2
|
|
||||||
|
|
||||||
|
|||||||
@ -1,39 +1,26 @@
|
|||||||
From 9f7a39eb2fc0bf4e7c4df64dca5e3ed01cbde2c1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hiram Chirino <hiram@hiramchirino.com>
|
From: Hiram Chirino <hiram@hiramchirino.com>
|
||||||
Date: Tue, 30 Oct 2012 16:56:52 -0400
|
Date: Tue, 30 Oct 2012 16:56:52 -0400
|
||||||
Subject: [PATCH 2/4] Added a DB:SuspendCompations() and DB:ResumeCompactions()
|
Subject: [PATCH] Added a DB:SuspendCompations() and DB:ResumeCompactions()
|
||||||
methods. Fixes issue #184
|
methods. Fixes issue #184
|
||||||
|
|
||||||
https://code.google.com/p/leveldb/issues/detail?id=184
|
https://code.google.com/p/leveldb/issues/detail?id=184
|
||||||
---
|
|
||||||
db/db_impl.cc | 36 ++++++++++++++++++++++++++++++++++++
|
|
||||||
db/db_impl.h | 9 +++++++++
|
|
||||||
db/db_test.cc | 4 ++++
|
|
||||||
include/leveldb/db.h | 6 ++++++
|
|
||||||
4 files changed, 55 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/db/db_impl.cc b/db/db_impl.cc
|
diff --git a/db/db_impl.cc b/db/db_impl.cc
|
||||||
index f43ad7679436b312959e5e0487c9313694d83ecc..60c483fab11177fb2d37726f3b2a94720e4dd1ff 100644
|
index 1a4e459..ae7b96d 100644
|
||||||
--- a/db/db_impl.cc
|
--- a/db/db_impl.cc
|
||||||
+++ b/db/db_impl.cc
|
+++ b/db/db_impl.cc
|
||||||
@@ -123,10 +123,13 @@ DBImpl::DBImpl(const Options& raw_options, const std::string& dbname)
|
@@ -135,6 +135,9 @@ DBImpl::DBImpl(const Options& raw_options, const std::string& dbname)
|
||||||
owns_info_log_(options_.info_log != raw_options.info_log),
|
table_cache_(new TableCache(dbname_, options_, TableCacheSize(options_))),
|
||||||
owns_cache_(options_.block_cache != raw_options.block_cache),
|
db_lock_(nullptr),
|
||||||
dbname_(dbname),
|
shutting_down_(false),
|
||||||
db_lock_(NULL),
|
|
||||||
shutting_down_(NULL),
|
|
||||||
+ suspend_cv(&suspend_mutex),
|
+ suspend_cv(&suspend_mutex),
|
||||||
+ suspend_count(0),
|
+ suspend_count(0),
|
||||||
+ suspended(false),
|
+ suspended(false),
|
||||||
bg_cv_(&mutex_),
|
background_work_finished_signal_(&mutex_),
|
||||||
mem_(NULL),
|
mem_(nullptr),
|
||||||
imm_(NULL),
|
imm_(nullptr),
|
||||||
logfile_(NULL),
|
@@ -1464,6 +1467,39 @@ void DBImpl::GetApproximateSizes(const Range* range, int n, uint64_t* sizes) {
|
||||||
logfile_number_(0),
|
v->Unref();
|
||||||
@@ -1469,10 +1472,43 @@ void DBImpl::GetApproximateSizes(
|
|
||||||
MutexLock l(&mutex_);
|
|
||||||
v->Unref();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
+void DBImpl::SuspendCompactions() {
|
+void DBImpl::SuspendCompactions() {
|
||||||
@ -72,29 +59,21 @@ index f43ad7679436b312959e5e0487c9313694d83ecc..60c483fab11177fb2d37726f3b2a9472
|
|||||||
// Default implementations of convenience methods that subclasses of DB
|
// Default implementations of convenience methods that subclasses of DB
|
||||||
// can call if they wish
|
// can call if they wish
|
||||||
Status DB::Put(const WriteOptions& opt, const Slice& key, const Slice& value) {
|
Status DB::Put(const WriteOptions& opt, const Slice& key, const Slice& value) {
|
||||||
WriteBatch batch;
|
|
||||||
batch.Put(key, value);
|
|
||||||
diff --git a/db/db_impl.h b/db/db_impl.h
|
diff --git a/db/db_impl.h b/db/db_impl.h
|
||||||
index 8ff323e72879967a9ff27876155a21ffb2330d3d..78f910356318cfdd3bb4ee029a50d8a76161037f 100644
|
index c7b0172..d955c2a 100644
|
||||||
--- a/db/db_impl.h
|
--- a/db/db_impl.h
|
||||||
+++ b/db/db_impl.h
|
+++ b/db/db_impl.h
|
||||||
@@ -39,10 +39,12 @@ class DBImpl : public DB {
|
@@ -48,6 +48,8 @@ class DBImpl : public DB {
|
||||||
virtual const Snapshot* GetSnapshot();
|
bool GetProperty(const Slice& property, std::string* value) override;
|
||||||
virtual void ReleaseSnapshot(const Snapshot* snapshot);
|
void GetApproximateSizes(const Range* range, int n, uint64_t* sizes) override;
|
||||||
virtual bool GetProperty(const Slice& property, std::string* value);
|
void CompactRange(const Slice* begin, const Slice* end) override;
|
||||||
virtual void GetApproximateSizes(const Range* range, int n, uint64_t* sizes);
|
+ void SuspendCompactions() override;
|
||||||
virtual void CompactRange(const Slice* begin, const Slice* end);
|
+ void ResumeCompactions() override;
|
||||||
+ virtual void SuspendCompactions();
|
|
||||||
+ virtual void ResumeCompactions();
|
|
||||||
|
|
||||||
// Extra methods (for testing) that are not in the public DB interface
|
// Extra methods (for testing) that are not in the public DB interface
|
||||||
|
|
||||||
// Compact any files in the named level that overlap [*begin,*end]
|
@@ -170,6 +172,13 @@ class DBImpl : public DB {
|
||||||
void TEST_CompactRange(int level, const Slice* begin, const Slice* end);
|
// Lock over the persistent DB state. Non-null iff successfully acquired.
|
||||||
@@ -131,10 +133,17 @@ class DBImpl : public DB {
|
|
||||||
TableCache* table_cache_;
|
|
||||||
|
|
||||||
// Lock over the persistent DB state. Non-NULL iff successfully acquired.
|
|
||||||
FileLock* db_lock_;
|
FileLock* db_lock_;
|
||||||
|
|
||||||
+ port::Mutex suspend_mutex;
|
+ port::Mutex suspend_mutex;
|
||||||
@ -106,49 +85,34 @@ index 8ff323e72879967a9ff27876155a21ffb2330d3d..78f910356318cfdd3bb4ee029a50d8a7
|
|||||||
+
|
+
|
||||||
// State below is protected by mutex_
|
// State below is protected by mutex_
|
||||||
port::Mutex mutex_;
|
port::Mutex mutex_;
|
||||||
port::AtomicPointer shutting_down_;
|
std::atomic<bool> shutting_down_;
|
||||||
port::CondVar bg_cv_; // Signalled when background work finishes
|
|
||||||
MemTable* mem_;
|
|
||||||
diff --git a/db/db_test.cc b/db/db_test.cc
|
diff --git a/db/db_test.cc b/db/db_test.cc
|
||||||
index a0b08bc19c6510322dc65a94e135fa17ee922659..641fbabeeb6ed6e2537f024597c984cd4f3b846b 100644
|
index 908b41d..2e65370 100644
|
||||||
--- a/db/db_test.cc
|
--- a/db/db_test.cc
|
||||||
+++ b/db/db_test.cc
|
+++ b/db/db_test.cc
|
||||||
@@ -1864,10 +1864,14 @@ class ModelDB: public DB {
|
@@ -2051,6 +2051,8 @@ class ModelDB : public DB {
|
||||||
KVMap map_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit ModelDB(const Options& options): options_(options) { }
|
explicit ModelDB(const Options& options) : options_(options) {}
|
||||||
~ModelDB() { }
|
+ virtual void SuspendCompactions() override {}
|
||||||
+
|
+ virtual void ResumeCompactions() override {}
|
||||||
+ virtual void SuspendCompactions() {}
|
~ModelDB() override = default;
|
||||||
+ virtual void ResumeCompactions() {}
|
Status Put(const WriteOptions& o, const Slice& k, const Slice& v) override {
|
||||||
+
|
|
||||||
virtual Status Put(const WriteOptions& o, const Slice& k, const Slice& v) {
|
|
||||||
return DB::Put(o, k, v);
|
return DB::Put(o, k, v);
|
||||||
}
|
|
||||||
virtual Status Delete(const WriteOptions& o, const Slice& key) {
|
|
||||||
return DB::Delete(o, key);
|
|
||||||
diff --git a/include/leveldb/db.h b/include/leveldb/db.h
|
diff --git a/include/leveldb/db.h b/include/leveldb/db.h
|
||||||
index bfab10a0b725be9ed218783ee8fc98110fa77988..a69704d297c3feb1f60dc2856d6f9709a8879a86 100644
|
index a13d147..61c29c0 100644
|
||||||
--- a/include/leveldb/db.h
|
--- a/include/leveldb/db.h
|
||||||
+++ b/include/leveldb/db.h
|
+++ b/include/leveldb/db.h
|
||||||
@@ -140,10 +140,16 @@ class DB {
|
@@ -145,6 +145,12 @@ class LEVELDB_EXPORT DB {
|
||||||
// end==NULL is treated as a key after all keys in the database.
|
|
||||||
// Therefore the following call will compact the entire database:
|
// Therefore the following call will compact the entire database:
|
||||||
// db->CompactRange(NULL, NULL);
|
// db->CompactRange(nullptr, nullptr);
|
||||||
virtual void CompactRange(const Slice* begin, const Slice* end) = 0;
|
virtual void CompactRange(const Slice* begin, const Slice* end) = 0;
|
||||||
|
+
|
||||||
+ // Suspends the background compaction thread. This methods
|
+ // Suspends the background compaction thread. This methods
|
||||||
+ // returns once suspended.
|
+ // returns once suspended.
|
||||||
+ virtual void SuspendCompactions() = 0;
|
+ virtual void SuspendCompactions() = 0;
|
||||||
+ // Resumes a suspended background compation thread.
|
+ // Resumes a suspended background compation thread.
|
||||||
+ virtual void ResumeCompactions() = 0;
|
+ virtual void ResumeCompactions() = 0;
|
||||||
+
|
|
||||||
private:
|
|
||||||
// No copying allowed
|
|
||||||
DB(const DB&);
|
|
||||||
void operator=(const DB&);
|
|
||||||
};
|
};
|
||||||
--
|
|
||||||
2.14.2
|
|
||||||
|
|
||||||
|
// Destroy the contents of the specified database.
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
From d2505cb2966d016b4b28214eb81f4a38860549ea Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steve Vinoski <vinoski@ieee.org>
|
From: Steve Vinoski <vinoski@ieee.org>
|
||||||
Date: Thu, 20 Dec 2012 16:14:11 -0500
|
Date: Thu, 20 Dec 2012 16:14:11 -0500
|
||||||
Subject: [PATCH 3/4] allow Get() calls to avoid copies into std::string
|
Subject: [PATCH] allow Get() calls to avoid copies into std::string
|
||||||
|
|
||||||
Add a new abstract base class leveldb::Value that applications can easily
|
Add a new abstract base class leveldb::Value that applications can easily
|
||||||
derive from to supply their own memory management for values retrieved via
|
derive from to supply their own memory management for values retrieved via
|
||||||
@ -9,25 +8,13 @@ Get(). Add an internal class derived from Value that provides std::string
|
|||||||
management to preserve backward compatibility. Overload DBImpl::Get() to
|
management to preserve backward compatibility. Overload DBImpl::Get() to
|
||||||
accept a Value*, and to preserve backward compatibility also keep the
|
accept a Value*, and to preserve backward compatibility also keep the
|
||||||
original version taking a std::string*.
|
original version taking a std::string*.
|
||||||
---
|
|
||||||
db/db_impl.cc | 23 +++++++++++++++++++++++
|
|
||||||
db/db_impl.h | 3 +++
|
|
||||||
db/db_test.cc | 5 +++++
|
|
||||||
db/memtable.cc | 2 +-
|
|
||||||
db/memtable.h | 2 +-
|
|
||||||
db/version_set.cc | 4 ++--
|
|
||||||
db/version_set.h | 2 +-
|
|
||||||
include/leveldb/db.h | 13 +++++++++++++
|
|
||||||
8 files changed, 49 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/db/db_impl.cc b/db/db_impl.cc
|
diff --git a/db/db_impl.cc b/db/db_impl.cc
|
||||||
index 60c483fab11177fb2d37726f3b2a94720e4dd1ff..50ee5ef22d3416b7bf256b06659e4e705278515d 100644
|
index ae7b96d..5c3a05c 100644
|
||||||
--- a/db/db_impl.cc
|
--- a/db/db_impl.cc
|
||||||
+++ b/db/db_impl.cc
|
+++ b/db/db_impl.cc
|
||||||
@@ -79,10 +79,26 @@ struct DBImpl::CompactionState {
|
@@ -85,6 +85,22 @@ struct DBImpl::CompactionState {
|
||||||
builder(NULL),
|
uint64_t total_bytes;
|
||||||
total_bytes(0) {
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
+Value::~Value() {}
|
+Value::~Value() {}
|
||||||
@ -47,15 +34,11 @@ index 60c483fab11177fb2d37726f3b2a94720e4dd1ff..50ee5ef22d3416b7bf256b06659e4e70
|
|||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
// Fix user-supplied options to be reasonable
|
// Fix user-supplied options to be reasonable
|
||||||
template <class T,class V>
|
template <class T, class V>
|
||||||
static void ClipToRange(T* ptr, V minvalue, V maxvalue) {
|
static void ClipToRange(T* ptr, V minvalue, V maxvalue) {
|
||||||
if (static_cast<V>(*ptr) > maxvalue) *ptr = maxvalue;
|
@@ -1117,6 +1133,13 @@ int64_t DBImpl::TEST_MaxNextLevelOverlappingBytes() {
|
||||||
if (static_cast<V>(*ptr) < minvalue) *ptr = minvalue;
|
|
||||||
@@ -1110,10 +1126,17 @@ int64_t DBImpl::TEST_MaxNextLevelOverlappingBytes() {
|
|
||||||
}
|
|
||||||
|
|
||||||
Status DBImpl::Get(const ReadOptions& options,
|
Status DBImpl::Get(const ReadOptions& options, const Slice& key,
|
||||||
const Slice& key,
|
|
||||||
std::string* value) {
|
std::string* value) {
|
||||||
+ StringValue stringvalue(*value);
|
+ StringValue stringvalue(*value);
|
||||||
+ return DBImpl::Get(options, key, &stringvalue);
|
+ return DBImpl::Get(options, key, &stringvalue);
|
||||||
@ -67,53 +50,41 @@ index 60c483fab11177fb2d37726f3b2a94720e4dd1ff..50ee5ef22d3416b7bf256b06659e4e70
|
|||||||
Status s;
|
Status s;
|
||||||
MutexLock l(&mutex_);
|
MutexLock l(&mutex_);
|
||||||
SequenceNumber snapshot;
|
SequenceNumber snapshot;
|
||||||
if (options.snapshot != NULL) {
|
|
||||||
snapshot = reinterpret_cast<const SnapshotImpl*>(options.snapshot)->number_;
|
|
||||||
diff --git a/db/db_impl.h b/db/db_impl.h
|
diff --git a/db/db_impl.h b/db/db_impl.h
|
||||||
index 78f910356318cfdd3bb4ee029a50d8a76161037f..14c44d8751bc838ffd18e44f7398e1f728375b48 100644
|
index d955c2a..3127110 100644
|
||||||
--- a/db/db_impl.h
|
--- a/db/db_impl.h
|
||||||
+++ b/db/db_impl.h
|
+++ b/db/db_impl.h
|
||||||
@@ -33,10 +33,13 @@ class DBImpl : public DB {
|
@@ -42,6 +42,9 @@ class DBImpl : public DB {
|
||||||
virtual Status Delete(const WriteOptions&, const Slice& key);
|
Status Write(const WriteOptions& options, WriteBatch* updates) override;
|
||||||
virtual Status Write(const WriteOptions& options, WriteBatch* updates);
|
Status Get(const ReadOptions& options, const Slice& key,
|
||||||
virtual Status Get(const ReadOptions& options,
|
std::string* value) override;
|
||||||
const Slice& key,
|
|
||||||
std::string* value);
|
|
||||||
+ virtual Status Get(const ReadOptions& options,
|
+ virtual Status Get(const ReadOptions& options,
|
||||||
+ const Slice& key,
|
+ const Slice& key,
|
||||||
+ Value* value);
|
+ Value* value);
|
||||||
virtual Iterator* NewIterator(const ReadOptions&);
|
Iterator* NewIterator(const ReadOptions&) override;
|
||||||
virtual const Snapshot* GetSnapshot();
|
const Snapshot* GetSnapshot() override;
|
||||||
virtual void ReleaseSnapshot(const Snapshot* snapshot);
|
void ReleaseSnapshot(const Snapshot* snapshot) override;
|
||||||
virtual bool GetProperty(const Slice& property, std::string* value);
|
|
||||||
virtual void GetApproximateSizes(const Range* range, int n, uint64_t* sizes);
|
|
||||||
diff --git a/db/db_test.cc b/db/db_test.cc
|
diff --git a/db/db_test.cc b/db/db_test.cc
|
||||||
index 641fbabeeb6ed6e2537f024597c984cd4f3b846b..a1769d24aea84863716cd242de4457fb75dd0413 100644
|
index 2e65370..db778d9 100644
|
||||||
--- a/db/db_test.cc
|
--- a/db/db_test.cc
|
||||||
+++ b/db/db_test.cc
|
+++ b/db/db_test.cc
|
||||||
@@ -1879,10 +1879,15 @@ class ModelDB: public DB {
|
@@ -2065,6 +2065,11 @@ class ModelDB : public DB {
|
||||||
virtual Status Get(const ReadOptions& options,
|
assert(false); // Not implemented
|
||||||
const Slice& key, std::string* value) {
|
|
||||||
assert(false); // Not implemented
|
|
||||||
return Status::NotFound(key);
|
return Status::NotFound(key);
|
||||||
}
|
}
|
||||||
+ virtual Status Get(const ReadOptions& options,
|
+ Status Get(const ReadOptions& options,
|
||||||
+ const Slice& key, Value* value) {
|
+ const Slice& key, Value* value) override {
|
||||||
+ assert(false); // Not implemented
|
+ assert(false); // Not implemented
|
||||||
+ return Status::NotFound(key);
|
+ return Status::NotFound(key);
|
||||||
+ }
|
+ }
|
||||||
virtual Iterator* NewIterator(const ReadOptions& options) {
|
Iterator* NewIterator(const ReadOptions& options) override {
|
||||||
if (options.snapshot == NULL) {
|
if (options.snapshot == nullptr) {
|
||||||
KVMap* saved = new KVMap;
|
KVMap* saved = new KVMap;
|
||||||
*saved = map_;
|
|
||||||
return new ModelIter(saved, true);
|
|
||||||
diff --git a/db/memtable.cc b/db/memtable.cc
|
diff --git a/db/memtable.cc b/db/memtable.cc
|
||||||
index bfec0a7e7a1dc210b44dd527b9547e33e829d9bb..82a875fc3abc6ca833c5a396f695652ff8a3dd52 100644
|
index f42774d..4689e2d 100644
|
||||||
--- a/db/memtable.cc
|
--- a/db/memtable.cc
|
||||||
+++ b/db/memtable.cc
|
+++ b/db/memtable.cc
|
||||||
@@ -103,11 +103,11 @@ void MemTable::Add(SequenceNumber s, ValueType type,
|
@@ -98,7 +98,7 @@ void MemTable::Add(SequenceNumber s, ValueType type, const Slice& key,
|
||||||
memcpy(p, value.data(), val_size);
|
|
||||||
assert((p + val_size) - buf == encoded_len);
|
|
||||||
table_.Insert(buf);
|
table_.Insert(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,15 +93,11 @@ index bfec0a7e7a1dc210b44dd527b9547e33e829d9bb..82a875fc3abc6ca833c5a396f695652f
|
|||||||
Slice memkey = key.memtable_key();
|
Slice memkey = key.memtable_key();
|
||||||
Table::Iterator iter(&table_);
|
Table::Iterator iter(&table_);
|
||||||
iter.Seek(memkey.data());
|
iter.Seek(memkey.data());
|
||||||
if (iter.Valid()) {
|
|
||||||
// entry format is:
|
|
||||||
diff --git a/db/memtable.h b/db/memtable.h
|
diff --git a/db/memtable.h b/db/memtable.h
|
||||||
index 9f41567cde23dfd645b19d290c6e4a4256804900..6c3f56699798c936531f153a1b45707668935b80 100644
|
index 9d986b1..85c4cce 100644
|
||||||
--- a/db/memtable.h
|
--- a/db/memtable.h
|
||||||
+++ b/db/memtable.h
|
+++ b/db/memtable.h
|
||||||
@@ -56,11 +56,11 @@ class MemTable {
|
@@ -60,7 +60,7 @@ class MemTable {
|
||||||
|
|
||||||
// If memtable contains a value for key, store it in *value and return true.
|
|
||||||
// If memtable contains a deletion for key, store a NotFound() error
|
// If memtable contains a deletion for key, store a NotFound() error
|
||||||
// in *status and return true.
|
// in *status and return true.
|
||||||
// Else, return false.
|
// Else, return false.
|
||||||
@ -138,64 +105,48 @@ index 9f41567cde23dfd645b19d290c6e4a4256804900..6c3f56699798c936531f153a1b457076
|
|||||||
+ bool Get(const LookupKey& key, Value* value, Status* s);
|
+ bool Get(const LookupKey& key, Value* value, Status* s);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
~MemTable(); // Private since only Unref() should be used to delete it
|
friend class MemTableIterator;
|
||||||
|
|
||||||
struct KeyComparator {
|
|
||||||
diff --git a/db/version_set.cc b/db/version_set.cc
|
diff --git a/db/version_set.cc b/db/version_set.cc
|
||||||
index b1256f90e1c2bc6f9f6f449029bed9266bbb55b9..f0a523930d3382983fddfe27ee700574ddd06b3d 100644
|
index 1963353..c83a4d2 100644
|
||||||
--- a/db/version_set.cc
|
--- a/db/version_set.cc
|
||||||
+++ b/db/version_set.cc
|
+++ b/db/version_set.cc
|
||||||
@@ -260,11 +260,11 @@ enum SaverState {
|
@@ -256,7 +256,7 @@ struct Saver {
|
||||||
};
|
|
||||||
struct Saver {
|
|
||||||
SaverState state;
|
SaverState state;
|
||||||
const Comparator* ucmp;
|
const Comparator* ucmp;
|
||||||
Slice user_key;
|
Slice user_key;
|
||||||
- std::string* value;
|
- std::string* value;
|
||||||
+ Value* value;
|
+ Value* value;
|
||||||
};
|
};
|
||||||
}
|
} // namespace
|
||||||
static void SaveValue(void* arg, const Slice& ikey, const Slice& v) {
|
static void SaveValue(void* arg, const Slice& ikey, const Slice& v) {
|
||||||
Saver* s = reinterpret_cast<Saver*>(arg);
|
@@ -322,7 +322,7 @@ void Version::ForEachOverlapping(Slice user_key, Slice internal_key, void* arg,
|
||||||
ParsedInternalKey parsed_key;
|
|
||||||
@@ -329,11 +329,11 @@ void Version::ForEachOverlapping(Slice user_key, Slice internal_key,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Status Version::Get(const ReadOptions& options,
|
Status Version::Get(const ReadOptions& options, const LookupKey& k,
|
||||||
const LookupKey& k,
|
- std::string* value, GetStats* stats) {
|
||||||
- std::string* value,
|
+ Value* value, GetStats* stats) {
|
||||||
+ Value* value,
|
stats->seek_file = nullptr;
|
||||||
GetStats* stats) {
|
stats->seek_file_level = -1;
|
||||||
Slice ikey = k.internal_key();
|
|
||||||
Slice user_key = k.user_key();
|
|
||||||
const Comparator* ucmp = vset_->icmp_.user_comparator();
|
|
||||||
Status s;
|
|
||||||
diff --git a/db/version_set.h b/db/version_set.h
|
diff --git a/db/version_set.h b/db/version_set.h
|
||||||
index c4e7ac360b87d842ee9dbc0a2bf80f122a65dad7..2d31542cff63b9058c991e3bd0b67f41102edbed 100644
|
index 69f3d70..0f0a463 100644
|
||||||
--- a/db/version_set.h
|
--- a/db/version_set.h
|
||||||
+++ b/db/version_set.h
|
+++ b/db/version_set.h
|
||||||
@@ -68,11 +68,11 @@ class Version {
|
@@ -72,7 +72,7 @@ class Version {
|
||||||
// REQUIRES: lock is not held
|
// REQUIRES: This version has been saved (see VersionSet::SaveTo)
|
||||||
struct GetStats {
|
void AddIterators(const ReadOptions&, std::vector<Iterator*>* iters);
|
||||||
FileMetaData* seek_file;
|
|
||||||
int seek_file_level;
|
|
||||||
};
|
|
||||||
- Status Get(const ReadOptions&, const LookupKey& key, std::string* val,
|
- Status Get(const ReadOptions&, const LookupKey& key, std::string* val,
|
||||||
+ Status Get(const ReadOptions&, const LookupKey& key, Value* val,
|
+ Status Get(const ReadOptions&, const LookupKey& key, Value* val,
|
||||||
GetStats* stats);
|
GetStats* stats);
|
||||||
|
|
||||||
// Adds "stats" into the current state. Returns true if a new
|
// Adds "stats" into the current state. Returns true if a new
|
||||||
// compaction may need to be triggered, false otherwise.
|
|
||||||
// REQUIRES: lock is held
|
|
||||||
diff --git a/include/leveldb/db.h b/include/leveldb/db.h
|
diff --git a/include/leveldb/db.h b/include/leveldb/db.h
|
||||||
index a69704d297c3feb1f60dc2856d6f9709a8879a86..12f788ebf76341102832f45132388ef432db7e25 100644
|
index 61c29c0..1a93feb 100644
|
||||||
--- a/include/leveldb/db.h
|
--- a/include/leveldb/db.h
|
||||||
+++ b/include/leveldb/db.h
|
+++ b/include/leveldb/db.h
|
||||||
@@ -36,10 +36,21 @@ struct Range {
|
@@ -40,6 +40,17 @@ struct LEVELDB_EXPORT Range {
|
||||||
|
Slice limit; // Not included in the range
|
||||||
Range() { }
|
|
||||||
Range(const Slice& s, const Slice& l) : start(s), limit(l) { }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
+// Abstract holder for a DB value.
|
+// Abstract holder for a DB value.
|
||||||
@ -212,21 +163,3 @@ index a69704d297c3feb1f60dc2856d6f9709a8879a86..12f788ebf76341102832f45132388ef4
|
|||||||
// A DB is a persistent ordered map from keys to values.
|
// A DB is a persistent ordered map from keys to values.
|
||||||
// A DB is safe for concurrent access from multiple threads without
|
// A DB is safe for concurrent access from multiple threads without
|
||||||
// any external synchronization.
|
// any external synchronization.
|
||||||
class DB {
|
|
||||||
public:
|
|
||||||
@@ -80,10 +91,12 @@ class DB {
|
|
||||||
// a status for which Status::IsNotFound() returns true.
|
|
||||||
//
|
|
||||||
// May return some other Status on an error.
|
|
||||||
virtual Status Get(const ReadOptions& options,
|
|
||||||
const Slice& key, std::string* value) = 0;
|
|
||||||
+ virtual Status Get(const ReadOptions& options,
|
|
||||||
+ const Slice& key, Value* value) = 0;
|
|
||||||
|
|
||||||
// Return a heap-allocated iterator over the contents of the database.
|
|
||||||
// The result of NewIterator() is initially invalid (caller must
|
|
||||||
// call one of the Seek methods on the iterator before using it).
|
|
||||||
//
|
|
||||||
--
|
|
||||||
2.14.2
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
From 9992080e51c3deff0b82ce838b64ef6b68bd81f0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Yehuda Sadeh <yehuda@inktank.com>
|
From: Yehuda Sadeh <yehuda@inktank.com>
|
||||||
Date: Mon, 2 Jul 2012 14:29:06 -0700
|
Date: Mon, 2 Jul 2012 14:29:06 -0700
|
||||||
Subject: [PATCH 4/4] bloom_test failure on big endian archs
|
Subject: [PATCH] bloom_test failure on big endian archs
|
||||||
|
|
||||||
When running bloom_test on big endian machines it fails due to unacceptable
|
When running bloom_test on big endian machines it fails due to unacceptable
|
||||||
false positive rate. I've looked into the issue and it seems that the
|
false positive rate. I've looked into the issue and it seems that the
|
||||||
@ -12,27 +11,17 @@ This issue holds up inclusion of ceph to debian due to ceph's use of
|
|||||||
leveldb. The fix can be to bump up the acceptable false positives.
|
leveldb. The fix can be to bump up the acceptable false positives.
|
||||||
|
|
||||||
https://groups.google.com/d/topic/leveldb/SbVPvl4j4vU/discussion
|
https://groups.google.com/d/topic/leveldb/SbVPvl4j4vU/discussion
|
||||||
---
|
|
||||||
util/bloom_test.cc | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/util/bloom_test.cc b/util/bloom_test.cc
|
diff --git a/util/bloom_test.cc b/util/bloom_test.cc
|
||||||
index 1b87a2be3f540c673ee1749b0b855d396251f5aa..e464548c339d8a8a3f9a620ddcd73710c3825c2f 100644
|
index 520473e..e4053e6 100644
|
||||||
--- a/util/bloom_test.cc
|
--- a/util/bloom_test.cc
|
||||||
+++ b/util/bloom_test.cc
|
+++ b/util/bloom_test.cc
|
||||||
@@ -140,11 +140,11 @@ TEST(BloomTest, VaryingLengths) {
|
@@ -136,7 +136,7 @@ TEST_F(BloomTest, VaryingLengths) {
|
||||||
double rate = FalsePositiveRate();
|
"False positives: %5.2f%% @ length = %6d ; bytes = %6d\n",
|
||||||
if (kVerbose >= 1) {
|
rate * 100.0, length, static_cast<int>(FilterSize()));
|
||||||
fprintf(stderr, "False positives: %5.2f%% @ length = %6d ; bytes = %6d\n",
|
|
||||||
rate*100.0, length, static_cast<int>(FilterSize()));
|
|
||||||
}
|
}
|
||||||
- ASSERT_LE(rate, 0.02); // Must not be over 2%
|
- ASSERT_LE(rate, 0.02); // Must not be over 2%
|
||||||
+ ASSERT_LE(rate, 0.03); // Must not be over 2%
|
+ ASSERT_LE(rate, 0.03); // Must not be over 3%
|
||||||
if (rate > 0.0125) mediocre_filters++; // Allowed, but not too often
|
if (rate > 0.0125)
|
||||||
else good_filters++;
|
mediocre_filters++; // Allowed, but not too often
|
||||||
}
|
else
|
||||||
if (kVerbose >= 1) {
|
|
||||||
fprintf(stderr, "Filters: %d good, %d mediocre\n",
|
|
||||||
--
|
|
||||||
2.14.2
|
|
||||||
|
|
||||||
|
|||||||
15
0006-revert-no-rtti.patch
Normal file
15
0006-revert-no-rtti.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index f8285b8..7ab9fe1 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -70,10 +70,6 @@ else(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
|
# Disable C++ exceptions.
|
||||||
|
string(REGEX REPLACE "-fexceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||||
|
-
|
||||||
|
- # Disable RTTI.
|
||||||
|
- string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||||
|
endif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
|
|
||||||
|
# Test whether -Wthread-safety is available. See
|
||||||
36
README.en.md
36
README.en.md
@ -1,36 +0,0 @@
|
|||||||
# leveldb
|
|
||||||
|
|
||||||
#### Description
|
|
||||||
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
|
|
||||||
|
|
||||||
#### Software Architecture
|
|
||||||
Software architecture description
|
|
||||||
|
|
||||||
#### Installation
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Instructions
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Contribution
|
|
||||||
|
|
||||||
1. Fork the repository
|
|
||||||
2. Create Feat_xxx branch
|
|
||||||
3. Commit your code
|
|
||||||
4. Create Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### Gitee Feature
|
|
||||||
|
|
||||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
|
||||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
|
||||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
|
||||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
39
README.md
39
README.md
@ -1,39 +0,0 @@
|
|||||||
# leveldb
|
|
||||||
|
|
||||||
#### 介绍
|
|
||||||
{**以下是码云平台说明,您可以替换此简介**
|
|
||||||
码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
|
||||||
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
|
||||||
|
|
||||||
#### 软件架构
|
|
||||||
软件架构说明
|
|
||||||
|
|
||||||
|
|
||||||
#### 安装教程
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 使用说明
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 参与贡献
|
|
||||||
|
|
||||||
1. Fork 本仓库
|
|
||||||
2. 新建 Feat_xxx 分支
|
|
||||||
3. 提交代码
|
|
||||||
4. 新建 Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### 码云特技
|
|
||||||
|
|
||||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
||||||
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
|
||||||
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
|
||||||
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
Binary file not shown.
BIN
leveldb-1.23.tar.gz
Normal file
BIN
leveldb-1.23.tar.gz
Normal file
Binary file not shown.
80
leveldb.spec
80
leveldb.spec
@ -1,76 +1,110 @@
|
|||||||
|
%undefine __cmake_in_source_build
|
||||||
Name: leveldb
|
Name: leveldb
|
||||||
Version: 1.20
|
Version: 1.23
|
||||||
Release: 5
|
Release: 1
|
||||||
Summary: A key/value database library
|
Summary: A fast and lightweight key/value database library by Google
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
URL: https://github.com/google/leveldb
|
URL: https://github.com/google/leveldb
|
||||||
Source0: https://github.com/google/leveldb/archive/v%{version}/%{name}-%{version}.tar.gz
|
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
|
||||||
Patch0001: 0001-Allow-leveldbjni-build.patch
|
Patch0001: 0001-Allow-leveldbjni-build.patch
|
||||||
Patch0002: 0002-Added-a-DB-SuspendCompations-and-DB-ResumeCompaction.patch
|
Patch0002: 0002-Added-a-DB-SuspendCompations-and-DB-ResumeCompaction.patch
|
||||||
Patch0003: 0003-allow-Get-calls-to-avoid-copies-into-std-string.patch
|
Patch0003: 0003-allow-Get-calls-to-avoid-copies-into-std-string.patch
|
||||||
Patch0004: 0004-bloom_test-failure-on-big-endian-archs.patch
|
Patch0004: 0004-bloom_test-failure-on-big-endian-archs.patch
|
||||||
|
Patch0006: 0006-revert-no-rtti.patch
|
||||||
|
|
||||||
BuildRequires: make gcc-c++ snappy-devel
|
BuildRequires: cmake
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: snappy-devel
|
||||||
|
BuildRequires: sqlite-devel
|
||||||
|
|
||||||
%description
|
%description
|
||||||
LevelDB is a fast key-value storage library written at Google that provides an
|
LevelDB is a fast key-value storage library written at Google that provides an
|
||||||
ordered mapping from string keys to string values.
|
ordered mapping from string keys to string values.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for leveldb
|
Summary: Development files for %{name}
|
||||||
|
Requires: cmake-filesystem
|
||||||
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Development files for leveldb.
|
%{summary}.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup -p1
|
||||||
cat > leveldb.pc << EOF
|
|
||||||
|
|
||||||
|
cat > %{name}.pc << EOF
|
||||||
prefix=%{_prefix}
|
prefix=%{_prefix}
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
libdir=%{_libdir}
|
libdir=%{_libdir}
|
||||||
includedir=%{_includedir}
|
includedir=%{_includedir}
|
||||||
|
|
||||||
Name: leveldb
|
Name: %{name}
|
||||||
Description: A key/value database library
|
Description: %{summary}
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
Libs: -lleveldb
|
Libs: -l%{name}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
%global configure() {export OPT="-DNDEBUG" export CFLAGS="%{optflags}" export CXXFLAGS="%{optflags}" export LDFLAGS="%{__global_ldflags}" }
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
|
||||||
make -O -j1
|
export CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/generic-hardened-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection '
|
||||||
|
export CXXFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/generic-hardened-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection '
|
||||||
|
export FFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/generic-hardened-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules'
|
||||||
|
export FCFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/generic-hardened-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib64/gfortran/modules'
|
||||||
|
export LDFLAGS='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld'
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
|
||||||
|
|
||||||
|
cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=%_buildrootdir/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON -DLEVELDB_BUILD_TESTS:BOOL=OFF -DLEVELDB_BUILD_BENCHMARKS:BOOL=OFF ..
|
||||||
|
|
||||||
|
cmake --build .
|
||||||
|
|
||||||
%install
|
%install
|
||||||
install -d %{buildroot}{%{_libdir}/pkgconfig,%{_includedir}}
|
install -d %{buildroot}{%{_libdir}/pkgconfig,%{_includedir}}
|
||||||
cp -a out-shared/libleveldb.so* %{buildroot}%{_libdir}/
|
|
||||||
|
mkdir -p %{buildroot}%{_libdir}/pkgconfig
|
||||||
install -p leveldb.pc %{buildroot}%{_libdir}/pkgconfig/leveldb.pc
|
install -p leveldb.pc %{buildroot}%{_libdir}/pkgconfig/leveldb.pc
|
||||||
cp -a include/leveldb/ %{buildroot}%{_includedir}/
|
cp -a include/leveldb/ %{buildroot}%{_includedir}/
|
||||||
|
cp build/libleveldb.so* %{buildroot}%{_libdir}/
|
||||||
|
|
||||||
|
|
||||||
|
cd build
|
||||||
|
make install
|
||||||
|
|
||||||
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
%check
|
|
||||||
%configure
|
|
||||||
make -j1 check
|
|
||||||
|
|
||||||
%post
|
%post
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%doc AUTHORS README.md NEWS
|
%doc AUTHORS README.md NEWS
|
||||||
%{_libdir}/lib%{name}.so.*
|
%{_libdir}/lib%{name}.so.*
|
||||||
|
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%doc doc/ CONTRIBUTING.md TODO
|
%doc doc/ CONTRIBUTING.md TODO
|
||||||
%{_includedir}/leveldb/
|
%{_includedir}/%{name}/
|
||||||
%{_libdir}/libleveldb.so
|
%{_libdir}/lib%{name}.so
|
||||||
%{_libdir}/pkgconfig/leveldb.pc
|
%{_libdir}/pkgconfig/%{name}.pc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 16 2022 huyab<1229981468@qq.com> - 1.23-1
|
||||||
|
- update version to 1.23
|
||||||
|
|
||||||
* Tue May 10 2022 yaoxin <yaoxin30@h-partners.com> - 1.20-5
|
* Tue May 10 2022 yaoxin <yaoxin30@h-partners.com> - 1.20-5
|
||||||
- License compliance rectification
|
- License compliance rectification
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +0,0 @@
|
|||||||
version_control: github
|
|
||||||
src_repo: google/leveldb
|
|
||||||
tag_prefix: ^v
|
|
||||||
seperator: .
|
|
||||||
Loading…
x
Reference in New Issue
Block a user