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.master
parent
1568cc14fa
commit
5b0b520e22
|
@ -581,7 +581,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/cdparanoia-fpic.patch \
|
||||
%D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \
|
||||
%D%/packages/patches/ceph-disable-cpu-optimizations.patch \
|
||||
%D%/packages/patches/ceph-disable-unittest-throttle.patch \
|
||||
%D%/packages/patches/ceph-rocksdb-compat.patch \
|
||||
%D%/packages/patches/ceph-skip-collect-sys-info-test.patch \
|
||||
%D%/packages/patches/ceph-skip-unittest_blockdev.patch \
|
||||
%D%/packages/patches/chmlib-inttypes.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,16 +14,7 @@ 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 @@
|
||||
@@ -85,26 +80,6 @@
|
||||
if(HAVE_INTEL_SSE2)
|
||||
set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2")
|
||||
endif()
|
||||
|
@ -48,6 +38,6 @@ don't add anything for i686.
|
|||
- 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")
|
||||
|
|
|
@ -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<double, std::chrono::duration<double> > test_backoff(
|
||||
double low_threshhold,
|
||||
double high_threshhold,
|
|
@ -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<double>(rocksdb::perf_context.write_wal_time)/1000000000);
|
||||
+ static_cast<double>(rocksdb::get_perf_context()->write_wal_time)/1000000000);
|
||||
write_memtable_time.set_from_double(
|
||||
- static_cast<double>(rocksdb::perf_context.write_memtable_time)/1000000000);
|
||||
+ static_cast<double>(rocksdb::get_perf_context()->write_memtable_time)/1000000000);
|
||||
write_delay_time.set_from_double(
|
||||
- static_cast<double>(rocksdb::perf_context.write_delay_time)/1000000000);
|
||||
+ static_cast<double>(rocksdb::get_perf_context()->write_delay_time)/1000000000);
|
||||
write_pre_and_post_process_time.set_from_double(
|
||||
- static_cast<double>(rocksdb::perf_context.write_pre_and_post_process_time)/1000000000);
|
||||
+ static_cast<double>(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<double>(rocksdb::perf_context.write_wal_time)/1000000000);
|
||||
+ static_cast<double>(rocksdb::get_perf_context()->write_wal_time)/1000000000);
|
||||
write_memtable_time.set_from_double(
|
||||
- static_cast<double>(rocksdb::perf_context.write_memtable_time)/1000000000);
|
||||
+ static_cast<double>(rocksdb::get_perf_context()->write_memtable_time)/1000000000);
|
||||
write_delay_time.set_from_double(
|
||||
- static_cast<double>(rocksdb::perf_context.write_delay_time)/1000000000);
|
||||
+ static_cast<double>(rocksdb::get_perf_context()->write_delay_time)/1000000000);
|
||||
write_pre_and_post_process_time.set_from_double(
|
||||
- static_cast<double>(rocksdb::perf_context.write_pre_and_post_process_time)/1000000000);
|
||||
+ static_cast<double>(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);
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -29,6 +29,7 @@
|
|||
#:use-module (gnu packages bdw-gc)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
|
@ -36,6 +37,7 @@
|
|||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages disk)
|
||||
#:use-module (gnu packages gnuzilla)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages lua)
|
||||
|
@ -50,18 +52,18 @@
|
|||
(define-public ceph
|
||||
(package
|
||||
(name "ceph")
|
||||
(version "12.0.2")
|
||||
(version "12.2.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.ceph.com/tarballs/ceph-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l9v072ba28i984y5rwny9i11nmpyx5bl7awxg48plyadm2l3g14"))
|
||||
"13hv8scaxc1gdvrhzbfnsk4yy3pla6n1i4j4j4zf7schmbf0j8mp"))
|
||||
(patches
|
||||
(search-patches "ceph-skip-unittest_blockdev.patch"
|
||||
"ceph-skip-collect-sys-info-test.patch"
|
||||
"ceph-disable-unittest-throttle.patch"
|
||||
"ceph-rocksdb-compat.patch"
|
||||
"ceph-disable-cpu-optimizations.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
|
@ -74,7 +76,6 @@
|
|||
;"src/xxHash"
|
||||
;"src/zstd"
|
||||
;"src/civetweb"
|
||||
;"src/Beast"
|
||||
"src/test/downloads"
|
||||
"src/dpdk"
|
||||
"src/spdk"
|
||||
|
@ -105,6 +106,7 @@
|
|||
"-DWITH_SYSTEM_BOOST=ON"
|
||||
"-DWITH_PYTHON3=ON"
|
||||
;; TODO: Enable these when available in Guix.
|
||||
"-DWITH_BABELTRACE=OFF"
|
||||
"-DWITH_LTTNG=OFF"
|
||||
"-DWITH_XFS=OFF"
|
||||
"-DWITH_XIO=OFF"
|
||||
|
@ -114,6 +116,7 @@
|
|||
;; <https://bugs.gnu.org/29674> for details. Disable tests until
|
||||
;; resolved.
|
||||
#:tests? #f
|
||||
#:cmake ,cmake-3.11
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-source
|
||||
|
@ -152,21 +155,17 @@
|
|||
|
||||
(substitute* "src/test/test_subprocess.cc"
|
||||
(("/bin/sh") (which "sh")))
|
||||
(substitute* "src/test/ceph_objectstore_tool.py"
|
||||
(substitute* "qa/standalone/special/ceph_objectstore_tool.py"
|
||||
(("/bin/rm") (which "rm")))
|
||||
(substitute* "src/ceph-disk/ceph_disk/main.py"
|
||||
(("/bin/mount") "mount")
|
||||
(("/bin/umount") "umount")
|
||||
(("/sbin/blkid") (which "blkid"))
|
||||
(("'cryptsetup'") (string-append "'" (which "cryptsetup") "'"))
|
||||
(("'sgdisk'") (string-append "'" (which "sgdisk") "'"))
|
||||
(("'parted'") (string-append "'" (which "parted") "'"))
|
||||
(("'udevadm'") (string-append "'" (which "udevadm") "'")))
|
||||
|
||||
(substitute* "src/ceph-disk-udev"
|
||||
(("/sbin/cryptsetup") (which "cryptsetup"))
|
||||
(("/usr/sbin/sgdisk") (which "sgdisk"))
|
||||
(("/usr/sbin/ceph-disk")
|
||||
(string-append out "/bin/ceph-disk")))
|
||||
(substitute* "udev/50-rbd.rules"
|
||||
(("/usr/bin/ceph-rbdnamer")
|
||||
(string-append out "/bin/ceph-rbdnamer")))
|
||||
|
@ -263,23 +262,31 @@
|
|||
(getenv "PYTHONPATH")))
|
||||
#t)))
|
||||
(add-after 'install 'wrap-python-scripts
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(ceph (string-append out "/bin/ceph"))
|
||||
(ceph-disk (string-append out "/bin/ceph-disk"))
|
||||
(ceph-detect-init (string-append
|
||||
out "/bin/ceph-detect-init"))
|
||||
(PYTHONPATH (string-append
|
||||
out "/lib/python2.7/site-packages")))
|
||||
|
||||
(prettytable (assoc-ref inputs "python2-prettytable"))
|
||||
|
||||
(sitedir (lambda (package)
|
||||
(string-append package
|
||||
"/lib/python2.7/site-packages")))
|
||||
(PYTHONPATH (string-append
|
||||
(sitedir out) ":"
|
||||
(sitedir prettytable))))
|
||||
(for-each (lambda (executable)
|
||||
(wrap-program executable
|
||||
`("PYTHONPATH" ":" prefix (,PYTHONPATH))))
|
||||
(list ceph-disk ceph-detect-init))
|
||||
(list ceph ceph-disk ceph-detect-init))
|
||||
#t))))))
|
||||
(outputs
|
||||
'("out" "lib"))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
`(("gperf" ,gperf)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python-cython" ,python-cython)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("yasm" ,yasm)
|
||||
|
@ -310,7 +317,7 @@
|
|||
("python2-testtools" ,python2-testtools)
|
||||
("python2-tox" ,python2-tox)))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
`(("boost" ,boost-1.66)
|
||||
("curl" ,curl)
|
||||
("cryptsetup" ,cryptsetup)
|
||||
("expat" ,expat)
|
||||
|
@ -329,6 +336,7 @@
|
|||
("nss" ,nss)
|
||||
("parted" ,parted)
|
||||
("python@2" ,python-2)
|
||||
("python2-prettytable" ,python2-prettytable) ;used by ceph_daemon.py
|
||||
("python@3" ,python-3)
|
||||
("rocksdb" ,rocksdb)
|
||||
("snappy" ,snappy)
|
||||
|
|
Reference in New Issue