From 5b0b520e22cc4d8e08078e50e036b093efdde49c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 21 Feb 2018 15:24:00 +0100 Subject: gnu: ceph: Update to 12.2.4. * gnu/packages/patches/ceph-disable-cpu-optimizations.patch: Adjust to upstream changes. * gnu/packages/patches/ceph-disable-unittest-throttle.patch: Delete file. * gnu/packages/patches/ceph-rocksdb-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/storage.scm (ceph): Update to 12.2.4. [source](patches): Adjust. [arguments]: Add "-DWITH_BABELTRACE=OFF" in #:configure-flags. Build with CMAKE-3.11. Adjust file substitutions. Wrap 'ceph' executable. [native-inputs]: Add GPERF. [inputs]: Replace BOOST with BOOST-1.66. Add PYTHON2-PRETTYTABLE. --- .../patches/ceph-disable-cpu-optimizations.patch | 64 +++++++++------------- .../patches/ceph-disable-unittest-throttle.patch | 52 ------------------ gnu/packages/patches/ceph-rocksdb-compat.patch | 63 +++++++++++++++++++++ 3 files changed, 90 insertions(+), 89 deletions(-) delete mode 100644 gnu/packages/patches/ceph-disable-unittest-throttle.patch create mode 100644 gnu/packages/patches/ceph-rocksdb-compat.patch (limited to 'gnu/packages/patches') diff --git a/gnu/packages/patches/ceph-disable-cpu-optimizations.patch b/gnu/packages/patches/ceph-disable-cpu-optimizations.patch index f33eb629d6..421b1d4fe1 100644 --- a/gnu/packages/patches/ceph-disable-cpu-optimizations.patch +++ b/gnu/packages/patches/ceph-disable-cpu-optimizations.patch @@ -1,5 +1,4 @@ -Disable CPU optimizations not supported by all x86_64 systems. Also -don't add anything for i686. +Disable CPU optimizations not supported by all x86_64 systems. --- a/cmake/modules/SIMDExt.cmake 2017-03-23 22:22:58.254071694 +0100 +++ b/cmake/modules/SIMDExt.cmake 2017-03-23 22:23:22.446848845 +0100 @@ -15,39 +14,30 @@ don't add anything for i686. # # SIMD_COMPILE_FLAGS # -@@ -73,7 +68,7 @@ - set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mfpu=neon") - endif() - --elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64") -+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64") - set(HAVE_INTEL 1) - CHECK_C_COMPILER_FLAG(-msse HAVE_INTEL_SSE) - if(HAVE_INTEL_SSE) -@@ -83,26 +78,6 @@ - if(HAVE_INTEL_SSE2) - set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2") - endif() -- CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3) -- if(HAVE_INTEL_SSE3) -- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3") -- endif() -- CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3) -- if(HAVE_INTEL_SSSE3) -- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3") -- endif() -- CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL) -- if(HAVE_INTEL_PCLMUL) -- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul") -- endif() -- CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1) -- if(HAVE_INTEL_SSE4_1) -- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1") -- endif() -- CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2) -- if(HAVE_INTEL_SSE4_2) -- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2") -- endif() +@@ -85,26 +80,6 @@ + if(HAVE_INTEL_SSE2) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2") + endif() +- CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3) +- if(HAVE_INTEL_SSE3) +- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3") +- endif() +- CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3) +- if(HAVE_INTEL_SSSE3) +- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3") +- endif() +- CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL) +- if(HAVE_INTEL_PCLMUL) +- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul") +- endif() +- CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1) +- if(HAVE_INTEL_SSE4_1) +- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1") +- endif() +- CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2) +- if(HAVE_INTEL_SSE4_2) +- set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2") +- endif() + endif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64") + endif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64") elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64le") - set(HAVE_PPC64LE 1) - message(STATUS " we are ppc64le") diff --git a/gnu/packages/patches/ceph-disable-unittest-throttle.patch b/gnu/packages/patches/ceph-disable-unittest-throttle.patch deleted file mode 100644 index 08ae5f9e24..0000000000 --- a/gnu/packages/patches/ceph-disable-unittest-throttle.patch +++ /dev/null @@ -1,52 +0,0 @@ -FIXME: This test broke after the gcc-5/glibc-2.25 core-updates merge. -Not sure what's going on here, it hangs after spawning the first thread. - -diff --git a/src/test/common/Throttle.cc b/src/test/common/Throttle.cc -index 5b6d73217d..40a477b2a3 100644 ---- a/src/test/common/Throttle.cc -+++ b/src/test/common/Throttle.cc -@@ -216,44 +216,6 @@ TEST_F(ThrottleTest, wait) { - } while(!waited); - } - --TEST_F(ThrottleTest, destructor) { -- Thread_get *t; -- { -- int64_t throttle_max = 10; -- Throttle *throttle = new Throttle(g_ceph_context, "throttle", throttle_max); -- -- ASSERT_FALSE(throttle->get(5)); -- -- t = new Thread_get(*throttle, 7); -- t->create("t_throttle"); -- bool blocked; -- useconds_t delay = 1; -- do { -- usleep(delay); -- if (throttle->get_or_fail(1)) { -- throttle->put(1); -- blocked = false; -- } else { -- blocked = true; -- } -- delay *= 2; -- } while(!blocked); -- delete throttle; -- } -- -- { // -- // The thread is left hanging, otherwise it will abort(). -- // Deleting the Throttle on which it is waiting creates a -- // inconsistency that will be detected: the Throttle object that -- // it references no longer exists. -- // -- pthread_t id = t->get_thread_id(); -- ASSERT_EQ(pthread_kill(id, 0), 0); -- delete t; -- ASSERT_EQ(pthread_kill(id, 0), 0); -- } --} -- - std::pair > test_backoff( - double low_threshhold, - double high_threshhold, diff --git a/gnu/packages/patches/ceph-rocksdb-compat.patch b/gnu/packages/patches/ceph-rocksdb-compat.patch new file mode 100644 index 0000000000..1a3c6b0b23 --- /dev/null +++ b/gnu/packages/patches/ceph-rocksdb-compat.patch @@ -0,0 +1,63 @@ +Fix compatibility with newer versions of RocksDB. + +Adapted from this upstream patch, with some additional changes for 12.2: +https://github.com/ceph/ceph/commit/9d73a7121fdb1ae87cb1aa6f7d9d7a13f329ae68 + +diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc +index 8660afe1886d..bc0de79e23cb 100644 +--- a/src/kv/RocksDBStore.cc ++++ b/src/kv/RocksDBStore.cc +@@ -505,7 +505,7 @@ + // considering performance overhead, default is disabled + if (g_conf->rocksdb_perf) { + rocksdb::SetPerfLevel(rocksdb::PerfLevel::kEnableTimeExceptForMutex); +- rocksdb::perf_context.Reset(); ++ rocksdb::get_perf_context()->Reset(); + } + + RocksDBTransactionImpl * _t = +@@ -532,13 +532,13 @@ + utime_t write_wal_time; + utime_t write_pre_and_post_process_time; + write_wal_time.set_from_double( +- static_cast(rocksdb::perf_context.write_wal_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_wal_time)/1000000000); + write_memtable_time.set_from_double( +- static_cast(rocksdb::perf_context.write_memtable_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_memtable_time)/1000000000); + write_delay_time.set_from_double( +- static_cast(rocksdb::perf_context.write_delay_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_delay_time)/1000000000); + write_pre_and_post_process_time.set_from_double( +- static_cast(rocksdb::perf_context.write_pre_and_post_process_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_pre_and_post_process_time)/1000000000); + logger->tinc(l_rocksdb_write_memtable_time, write_memtable_time); + logger->tinc(l_rocksdb_write_delay_time, write_delay_time); + logger->tinc(l_rocksdb_write_wal_time, write_wal_time); +@@ -558,7 +558,7 @@ + // considering performance overhead, default is disabled + if (g_conf->rocksdb_perf) { + rocksdb::SetPerfLevel(rocksdb::PerfLevel::kEnableTimeExceptForMutex); +- rocksdb::perf_context.Reset(); ++ rocksdb::get_perf_context()->Reset(); + } + + RocksDBTransactionImpl * _t = +@@ -586,13 +586,13 @@ + utime_t write_wal_time; + utime_t write_pre_and_post_process_time; + write_wal_time.set_from_double( +- static_cast(rocksdb::perf_context.write_wal_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_wal_time)/1000000000); + write_memtable_time.set_from_double( +- static_cast(rocksdb::perf_context.write_memtable_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_memtable_time)/1000000000); + write_delay_time.set_from_double( +- static_cast(rocksdb::perf_context.write_delay_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_delay_time)/1000000000); + write_pre_and_post_process_time.set_from_double( +- static_cast(rocksdb::perf_context.write_pre_and_post_process_time)/1000000000); ++ static_cast(rocksdb::get_perf_context()->write_pre_and_post_process_time)/1000000000); + logger->tinc(l_rocksdb_write_memtable_time, write_memtable_time); + logger->tinc(l_rocksdb_write_delay_time, write_delay_time); + logger->tinc(l_rocksdb_write_wal_time, write_wal_time); -- cgit v1.2.3