Commit Graph

361 Commits

Author SHA1 Message Date
Kefu Chai
5e2bd7fc4d cmake: update FindPython* modules
use the ones shiped from the latest cmake. which

* enables us to find the recent python intepreter and development files,
* find intepreter and development in a single `find_pacakge()` command,
  simpler this way and less error prone.

and to accomodate this change:

* all `PYTHON${PYTHON_VERSION}_*` variables are renamed to
  `Python${PYTHON_VERSION}_*` if we use `find_package(Python2...)` or
  `find_package(Python3...)` to find python2 or python3 instead of using
  `find_package(Python...)`.
* use "2" explicitly when using python2, as `Python_*` variables are not
  defined anymore
* when compiling python support of ceph-mgr, continue using `Python_*`
  variables. because we find the python interpreter and development
  files using `find_pacakge(Python...)` for ceph-mgr.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-07-20 22:35:07 +08:00
Kefu Chai
7910bd6f02
Merge pull request #28802 from lixiaoy1/cmake_pmdk
cmake: pmem/pmdk changes to cmake

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-07-12 14:55:34 +08:00
lixiaoy1
4959835c07 cmake: Add the support to use system PMDK library
Signed-off-by: Scott Peterson <scott.d.peterson@intel.com>
Signed-off-by: Xiaoyan Li <xiaoyan.li@intel.com>
2019-07-10 11:43:27 -04:00
lixiaoy1
d994f02d69 cmake: update HAVE_PMEM to HAVE_BLUESTORE_PMEM
Signed-off-by: Scott Peterson <scott.d.peterson@intel.com>
Signed-off-by: Xiaoyan Li <xiaoyan.li@intel.com>
2019-07-10 11:43:05 -04:00
Kefu Chai
a4ddc4bd85
Merge pull request #27834 from rzarzynski/wip-nss-drop-cms
rgw, common, build: drop NSS support

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-07-05 11:03:33 +08:00
Kefu Chai
d0d8932506 CMakeLists.txt: s/Remote block storage/RADOS Block Device/
RBD is short for RADOS Block Device, not Remote Block Storage.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-29 23:47:48 +08:00
Kefu Chai
1400867d92 CMakeLists.txt: fix typo in error message
krbd depends on rbd, so we cannot build krbd without rbd.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-29 23:35:48 +08:00
Radoslaw Zarzynski
b9986374aa build, common, crypto, rgw: drop USE_OPENSSL as OpenSSL is obligatory.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-06-26 22:11:29 +02:00
Radoslaw Zarzynski
79edb93d06 common, crypto, build: get rid of NSS entirely.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2019-06-26 22:10:17 +02:00
Casey Bodley
13b07e5e6b cmake: fix WITH_UBSAN
CMake Error at cmake/modules/FindSanitizers.cmake:28 (message):
  Unsupported sanitizer: undefined-behavior

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2019-06-24 11:35:27 -04:00
Kefu Chai
c028de2f93 cmake: rewrite Findgenl to support components argument
* rename genl to nl:
  "genl" is not very specific without more context. and libnl is actually
  a library suite. so it would be better if we can rename the library to
  be found to "libnl", and by following the naming convention of CMake,
  in this change, Findgenl.cmake is renamed to Findnl.cmake
* Findnl.cmake: support the component argument, in our specific case,
  what we want is "libnl-genl" library, which is one of the libraries
  offered by libnl. so let's just make it a component.
* Findnl.cmake: should pass the names of the required variables instead of
  their values to `find_package_handle_standard_args()`. before this
  change, we pass `GENL_LIBRARIES` to this function. it was correct at the
  first glance. but it is not able to handle the case where case where
  libnl-genl is not installed. so the fix is to pass all the names of
  required library paths to this function. in this change, their name
  are concatenated to a single variable -- `nl_LIBRARIES`, and the
  value of this variable is passed to
  `find_package_handle_standard_args()`. and the error message would
  be more specific this way if libnl-genl is not found:
    Could NOT find nl (missing: nl_genl_LIBRARY)
* Findnl.cmake: add nl::<component> as imported library, it helps the
  consumer of these libraries to import them -- no need to
  specify the `target_include_directories()` separately anymore.
* move the find_package() code to where it is used. it helps to improve
  the readability.
* remove `HAVE_GENL` variable: it's not used anywhere.
* drop the messages of "Not using foobar", they do not help.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-19 21:21:00 +08:00
Mike Christie
8815671553 cmake and build: add netlink lib requirement detection
The next patch adds netlink support to rbd-nbd. This patch just adds the
build related changes to bring in the netlink lib and test and build
against it.

Signed-off-by: Mike Christie <mchristi@redhat.com>
2019-06-04 23:56:53 -05:00
Mike Christie
3fe16add7d cmake: Move WITH_RBD option earlier
The next patch will add a WITH_RBD check to the LINUX check block so we
only check for the netlink libs when those 2 conditions are met, so this
moves the WIT_RBD option setup to before the LINUX check.

Signed-off-by: Mike Christie <mchristi@redhat.com>
2019-06-04 23:56:53 -05:00
Jason Dillaman
7f6685383d librbd: use custom allocator for aligned boost::lockfree::queue
If tcmalloc is in-use as the allocator and its version is less than 2.6.2,
it might be missing support for 'aligned_alloc'. This can result in the
glibc version of 'aligned_alloc' being used to allocate memory that is
then freed by tcmalloc -- resulting in a crash.

Fixes: http://tracker.ceph.com/issues/39703
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
2019-05-15 08:47:41 -04:00
Ricardo Dias
c1e1d6ed0c
Merge pull request #24678 from rouming/master
test/fio: introduce fio ioengine: fio_ceph_messenger

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
Reviewed-by: Ricardo Dias <rdias@suse.com>
2019-03-28 09:20:55 +00:00
Willem Jan Withagen
1f0e443854 cmake: use StdFilesystem::filesystem instead of stdc++fs
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2019-03-24 15:14:12 +01:00
Sage Weil
be1187575b Merge PR #27021 into master
* refs/pull/27021/head:
	msg: remove XioMessenger
	qa/suites/rados/thrash-old-clients: add nautilus
	qa/suites/rados/thrash-old-clients: add mimic v1 variant
	qa/suites/rados/thrash-old-clients: add mimic
	qa/suites/rados/thrash-old-clients: collapse msgr and client choice
	qa: remove simplemessenger tests
	ceph_test_msgr: remove simple
	msg: remove SimpleMessenger

Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-03-22 04:42:30 -05:00
Sage Weil
cc9a9142fd msg: remove XioMessenger
There is a lot of good stuff going on here, but nobody is investing in xio
and it is not expected to be the path forward for RDMA.  If that ever
changes, we can resurrect the code.  Until then, let's clean up the tree
and reduce friction for changes going forward.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-03-21 00:57:33 -05:00
Sage Weil
5ed71d25d5 ceph_release: the next release will be octopus
Signed-off-by: Sage Weil <sage@redhat.com>
2019-03-20 00:48:12 -05:00
Jenkins Build Slave User
3a54b2b6d1 14.2.0 2019-03-18 10:08:29 +00:00
Jenkins Build Slave User
ae1b3cf8e2 14.1.1 2019-03-11 16:42:55 +00:00
Jenkins Build Slave User
adfd524c32 14.1.0 2019-02-22 18:07:07 +00:00
Kefu Chai
66fb02dcfe
Merge pull request #26555 from tchaikov/wip-install-build-deps
cmake,rgw: make amqp support optional

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Yuval Lifshitz <yuvalif@yahoo.com>
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
2019-02-22 15:39:55 +08:00
Kefu Chai
8a6658f8a9 cmake: fix syntax error of set()
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-22 13:43:00 +08:00
Ricardo Dias
f42c440158
cmake: add UNIT_TESTS_BUILD preprocessor var based on WITH_TESTS cmake var
Signed-off-by: Ricardo Dias <rdias@suse.com>
2019-02-21 16:00:26 +00:00
Kefu Chai
4f154010c9 rgw,cmake: add option "WITH_RADOSGW_AMQP_ENDPOINT"
WITH_RADOSGW_AMQP_ENDPOINT is enabled by default.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-21 20:36:43 +08:00
Kefu Chai
95401d8c2f cmake: find_package(RabbitMQ) instead of just checking its header
rabbitmq-c is not a header-only library. so we need to ensure that the
library is also around before linking against it. in this change:

* move the detection down to where librabbitmq is used
* add FindRabbitMQ.cmake for find_package(RabbitMQ)
* s/rabbitmq/RabbitMQ::RabbitMQ/ as the latter is an alias library
target, which has more information attached to it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-21 19:00:24 +08:00
Yuval Lifshitz
7a33fd8d56 rgw: pubsub add cmake check for rabbitmq
Signed-off-by: Yuval Lifshitz <yuvalif@yahoo.com>
2019-02-13 13:30:50 +02:00
Kefu Chai
02bccec954 cmake: use sphinx-build-3 as an alternative
on fc30, there is no reason to stick with sphinx-build and ignore
sphinx-build-3!

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-07 15:35:16 +08:00
Sage Weil
9aaa354cad build: disable kerberos for nautilus
We can re-enable after we branch.  For N, though, there is no point in dragging
in the dependencies and implying there is something that works.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-02-03 14:27:49 -06:00
Roman Penyaev
fb360cebf5 test/fio: introduce fio ioengine: fio_ceph_messenger
This patch introduces new FIO engine which main goal is to test
bare Ceph messenger transport layer performance.  Engine submits
requests in async manner and polls for completion.  Completions
are kept in lockless ring buffer so on hot path no muteces or
conditions are used in order to get maximum bandwidth and less
latency.

Signed-off-by: Roman Penyaev <rpenyaev@suse.de>
2019-01-16 15:53:49 +01:00
Alan Somers
9ae94e48be os/bluestore: support for FreeBSD
Signed-off-by: Alan Somers <asomers@gmail.com>
2018-12-22 00:21:56 +08:00
Kefu Chai
e57649dd9c
Merge pull request #22800 from wjwithagen/wjw-ctest-timeout
cmake: allow setting of the CTest timeout during building.

Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-12-21 23:40:27 +08:00
oliveiradan
67784065ce auth: Kerberos authentication
Signed-off-by: Daniel Oliveira <doliveira@suse.com> (github: oliveiradan)
2018-12-03 18:55:46 -07:00
Willem Jan Withagen
fd71812f87 cmake: allow setting of the CTest timeout during building.
It is rather had to overide a once set timeout during CTesting.
This is the best next compromise. Disadvantage is that a rebuild
is required.
But it helps in my Jenkins testing timely catching run-away programs.

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2018-10-29 23:16:33 +01:00
Boris Ranto
1ade714910 cmake: Support grafana dashboard installation
We are currently hosting the grafana dashboards in our repo but we do
not install them. This patch adds the cmake support.

Signed-off-by: Boris Ranto <branto@redhat.com>
2018-10-25 17:09:02 +02:00
Kefu Chai
86af98f42d
Merge pull request #24692 from tchaikov/wip-cmake-with-asan
cmake: fixes to enable WITH_ASAN with clang and GCC

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2018-10-23 19:26:59 +08:00
Kefu Chai
b605210b97 cmake: pass Sanitizers flags to linker for linking .so
see
https://github.com/google/sanitizers/wiki/AddressSanitizer#using-addresssanitizer

to be specific,

> In order to use AddressSanitizer you will need to compile and link your
> program using `clang` with the `-fsanitize=address` switch.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-10-22 14:40:03 +08:00
Alan Somers
e31acf6567 blkdev: FreeBSD support
Signed-off-by: Alan Somers <asomers@gmail.com>
2018-10-19 19:37:42 +08:00
Marcin Juszkiewicz
ee3af68dd9 cmake: mark gcc 7 as minimum C++ compiler (due to std++17)
Ceph requires C++17 support from compiler. This means gcc 7.x being
minimal version supported.

This also allows to fail quick on Debian 'stretch' with it's gcc 6.3
compiler.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
2018-10-16 16:34:03 +02:00
Kefu Chai
1fb419ca76 cmake: use OpenSSL::Crypto instead of OPENSSL_LIBRARIES
Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-10-10 00:20:14 +08:00
Patrick Donnelly
5cdf9c3380
Merge PR #24020 into master
* refs/pull/24020/head:
	*: set missing CLOEXEC on opened fds
	msg: set O_NONBLOCK on file status flags

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
2018-09-25 09:20:22 -07:00
Sage Weil
c3f70dc4a8 common/ceph_mutex: ceph::{mutex,condition_variable,lock_guard}
If CEPH_DEBUG_MUTEX is defined, use the [recursive_]mutex_debug classes
that implement lockdep and a bucnh of other random debug checks.  Also
typedef ceph::condition_variable to std::condition_variable_debug, which
adds addition assertions and debug checks.

If CEPH_DEBUG_MUTEX is not defined, then use the bare-bones C++ std::mutex
primitives... or as close as we can get to them.

Since the [recursive_]mutex_debug classes take a string argument for the
lockdep piece, define factory functions ceph::make_[recursive_]mutex that
either pass arguments to the debug implementations or toss them out.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-09-21 11:55:56 -05:00
Patrick Donnelly
86dbd9e755
*: set missing CLOEXEC on opened fds
Otherwise these descriptors may leak across execve() during e.g. MDS respawn.

Fixes: http://tracker.ceph.com/issues/35850

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2018-09-20 08:06:08 -07:00
Kefu Chai
07a3e8d7a6
Merge pull request #23650 from tchaikov/wip-dpdk-cmake
cmake: fix the build WITH_DPDK=ON

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2018-09-14 23:44:01 +08:00
Kefu Chai
195470a295 cmake: always add ${Boost_INCLUDE_DIRS} to include dirs
we need to -I${Boost_INCLUDE_DIRS} if WITH_SYSTEM_BOOST=ON and boost is
found by FindBoost.cmake.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-09-11 22:22:47 +08:00
Kefu Chai
a4c396d111 cmake: support multi-arch lib directory used along with BOOST_ROOT
by default, debian packaging creates ${prefix}/lib/x86_64-linux-gnu for
multi-arch support. but FindBoost.cmake does not check in such a
directory if $BOOST_ROOT is set. in this change, this directory is added
to the search path.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-09-11 22:22:47 +08:00
Kefu Chai
2c823a18cb cmake: pass DPDK_DIR explicitly
so we don't rely on build_dpdk() to be a macro to set variables in
its parent scope.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-09-05 17:33:59 +08:00
Willem Jan Withagen
39d831f95d core: make pthread_get_name_np work when available
FreeBSD will have a pthread_get_name_np() in libpthread
Code for that was submitted

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2018-08-19 12:07:56 +02:00
Kefu Chai
65f6a3c564 cmake: honour CMAKE_REQUIRED_LIBRARIES in CheckIncludeFiles
to silence cmake warning regarding to CMP0075

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-08-17 14:08:57 +08:00