ceph: add support for ceph

Ceph is a distributed object, block, and file storage platform,
ceph depends on oath-toolkit, so add the oath-toolkit also.

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
Dengke Du 2018-09-29 09:15:33 +08:00 committed by Bruce Ashfield
parent 2dc1de2286
commit a49ca99d06
6 changed files with 207 additions and 0 deletions

View File

@ -0,0 +1,40 @@
From a53605694d5301b7bb543464b17f74bbbd35d372 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Tue, 28 Aug 2018 10:04:40 +0800
Subject: [PATCH] Correct the path to find version.h in rocksdb
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
cmake/modules/Findrocksdb.cmake | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/cmake/modules/Findrocksdb.cmake b/cmake/modules/Findrocksdb.cmake
index f8369f7..36b67ea 100644
--- a/cmake/modules/Findrocksdb.cmake
+++ b/cmake/modules/Findrocksdb.cmake
@@ -9,17 +9,17 @@
# ROCKSDB_VERSION_MINOR
# ROCKSDB_VERSION_PATCH
-find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h)
+find_path(ROCKSDB_INCLUDE_DIR rocksdb/db.h ${CMAKE_SYSROOT})
-find_library(ROCKSDB_LIBRARIES rocksdb)
+find_library(ROCKSDB_LIBRARIES rocksdb ${CMAKE_SYSROOT})
if(ROCKSDB_INCLUDE_DIR AND EXISTS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h")
foreach(ver "MAJOR" "MINOR" "PATCH")
- file(STRINGS "${ROCKSDB_INCLUDE_DIR}/version.h" ROCKSDB_VER_${ver}_LINE
+ file(STRINGS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h" ROCKSDB_VER_${ver}_LINE
REGEX "^#define[ \t]+ROCKSDB_${ver}[ \t]+[0-9]+$")
string(REGEX REPLACE "^#define[ \t]+ROCKSDB_${ver}[ \t]+([0-9]+)$"
- "\\1" ROCKSDB_VERSION_${ver} "${ROCKDB_VER_${ver}_LINE}")
- unset(${ROCKDB_VER_${ver}_LINE})
+ "\\1" ROCKSDB_VERSION_${ver} "${ROCKSDB_VER_${ver}_LINE}")
+ unset(ROCKSDB_VER_${ver}_LINE)
endforeach()
set(ROCKSDB_VERSION_STRING
"${ROCKSDB_VERSION_MAJOR}.${ROCKSDB_VERSION_MINOR}.${ROCKSDB_VERSION_PATCH}")
--
2.7.4

View File

@ -0,0 +1,28 @@
From 05bdb2bb6026c3a2e536c7143b39a763ffc1225f Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Thu, 27 Sep 2018 09:09:40 +0800
Subject: [PATCH] ceph: disable pybind
New ceph version have bad support for corss compile,
so disable pybind temporarily.
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
src/CMakeLists.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 374cbc7..44845f8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -777,7 +777,6 @@ if(NOT CEPH_BUILD_VIRTUALENV)
set(CEPH_BUILD_VIRTUALENV /tmp)
endif()
-add_subdirectory(pybind)
add_subdirectory(ceph-disk)
add_subdirectory(ceph-volume)
add_subdirectory(ceph-detect-init)
--
2.7.4

View File

@ -0,0 +1,26 @@
From 3e86b6d9db2682b123839e38e9bf45060e2bb2ab Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Wed, 29 Aug 2018 16:57:52 +0800
Subject: [PATCH] zstd: fix error for cross compile
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
src/compressor/zstd/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt
index e30cb89..b298a3d 100644
--- a/src/compressor/zstd/CMakeLists.txt
+++ b/src/compressor/zstd/CMakeLists.txt
@@ -9,7 +9,7 @@ ExternalProject_Add(zstd_ext
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${ZSTD_C_FLAGS}
- -DCMAKE_AR=${CMAKE_AR}
+ -DCMAKE_SYSROOT=${CMAKE_SYSROOT}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
BUILD_COMMAND $(MAKE) libzstd_static
INSTALL_COMMAND "true")
--
2.7.4

View File

@ -0,0 +1,62 @@
SUMMARY = "User space components of the Ceph file system"
LICENSE = "LGPLv2.1 & GPLv2 & Unknown & Apache-2.0 & MIT"
LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24 \
file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING;md5=92d301c8fccd296f2221a68a8dd53828 \
"
# Disable python pybind support for ceph temporary, when corss compiling pybind,
# pybind mix cmake and python setup environment, would case a lot of errors.
SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \
file://0001-Correct-the-path-to-find-version.h-in-rocksdb.patch \
file://0001-ceph-disable-pybind.patch \
file://0001-zstd-fix-error-for-cross-compile.patch \
"
SRC_URI[md5sum] = "4b0ee225e153fbb2515fa3f8a3666d17"
SRC_URI[sha256sum] = "32086294d2007fdf64f85fcd919de2f092eeaa897bd8dc7c01e005e14516903c"
DEPENDS = "boost bzip2 curl expat gperf-native \
keyutils libaio libibverbs lz4 \
nspr nss \
oath openldap openssl \
python rocksdb snappy udev \
valgrind xfsprogs zlib \
"
inherit cmake pythonnative python-dir
OECMAKE_GENERATOR = "Unix Makefiles"
EXTRA_OECMAKE = "-DWITH_MANPAGE=OFF \
-DWITH_FUSE=OFF \
-DWITH_SPDK=OFF \
-DWITH_LEVELDB=OFF \
-DWITH_LTTNG=OFF \
-DWITH_BABELTRACE=OFF \
-DWITH_TESTS=OFF \
-DWITH_MGR=OFF \
-DWITH_MGR_DASHBOARD_FRONTEND=OFF \
-DWITH_SYSTEM_BOOST=ON \
-DWITH_SYSTEM_ROCKSDB=ON \
"
do_configure_prepend () {
echo "set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )" >> ${WORKDIR}/toolchain.cmake
}
do_install_append () {
sed -i -e 's:${WORKDIR}.*python2:${bindir}/python:' ${D}${bindir}/ceph
}
FILES_${PN} += "\
${libdir}/rados-classes/*.so.* \
"
FILES_${PN}-dev += "\
${libdir}/ceph/compressor/*.so \
${libdir}/rados-classes/*.so \
${libdir}/ceph/*.so \
"
RDEPENDS_${PN} += "\
python \
"

View File

@ -0,0 +1,32 @@
From ba86973a3014caa9a4110611f470d4d9af5c2982 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Thu, 27 Sep 2018 09:37:08 +0800
Subject: [PATCH] oath: fix macro definition error
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
oathtool/gl/intprops.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/oathtool/gl/intprops.h b/oathtool/gl/intprops.h
index e1fce5c..cee4997 100644
--- a/oathtool/gl/intprops.h
+++ b/oathtool/gl/intprops.h
@@ -230,11 +230,11 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
(e.g., A and B) have the same type as MIN and MAX. Instead, they assume
that the result (e.g., A + B) has that type. */
#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL
-# define _GL_ADD_OVERFLOW(a, b, min, max)
+# define _GL_ADD_OVERFLOW(a, b, min, max) \
__builtin_add_overflow (a, b, (__typeof__ ((a) + (b)) *) 0)
-# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \
__builtin_sub_overflow (a, b, (__typeof__ ((a) - (b)) *) 0)
-# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \
__builtin_mul_overflow (a, b, (__typeof__ ((a) * (b)) *) 0)
#else
# define _GL_ADD_OVERFLOW(a, b, min, max) \
--
2.7.4

View File

@ -0,0 +1,19 @@
LICENSE = "GPLv3 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=62e1e33aebac5b1bc9fc48a866e2f61b \
file://oathtool/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://liboath/COPYING;md5=4fbd65380cdd255951079008b364516c \
file://pam_oath/COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "http://download.savannah.nongnu.org/releases/oath-toolkit/oath-toolkit-${PV}.tar.gz \
file://0001-oath-fix-macro-definition-error.patch \
"
S = "${WORKDIR}/${BPN}-toolkit-${PV}"
SRC_URI[md5sum] = "4a05cd4768764843bd5493609a6bdb17"
SRC_URI[sha256sum] = "b03446fa4b549af5ebe4d35d7aba51163442d255660558cd861ebce536824aa0"
inherit autotools
# Specify any options you want to pass to the configure script using EXTRA_OECONF:
EXTRA_OECONF = ""
DEPENDS = "gtk-doc-native"