Commit Graph

575 Commits

Author SHA1 Message Date
Casey Bodley
dac3b7df21
Merge pull request #58416 from cbodley/wip-cmake-zfs
cmake/os: remove WITH_ZFS option

Reviewed-by: Igor Fedotov <igor.fedotov@croit.io>
2024-07-12 13:44:45 +01:00
Kefu Chai
f3be25433a
Merge pull request #58199 from tchaikov/wip-python3.9
mgr: use un-deprecated APIs to initialize Python interpretor

Reviewed-by: Adam King <adking@redhat.com>
2024-07-05 21:30:17 +08:00
Casey Bodley
52be40e256 cmake/os: remove WITH_ZFS option
when enabled and found, the os_zfs_objs target would reference a missing
file filestore/ZFSFileStoreBackend.cc and cmake would fail to configure

i take this to mean that WITH_ZFS was accidentally left over from
filestore's removal. drop all references to WITH_ZFS, along with the
corresponding Findzfs.cmake script

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-07-03 14:52:03 -04:00
Casey Bodley
0a1d0933ad
Merge pull request #57581 from adamemerson/wip-boost-1.85
build: Bump boost version to 1.85

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2024-06-27 16:35:32 +01:00
Kefu Chai
51f71fc17a cmake: bump up required Python3 to 3.9
since we've dropped the support of CentOS 8 in favor of CentOS 9, and
the minmum Python3 version used by the suppored distros are 3.9. let's
bump up the Python3 version to 3.9. as we are going to remove the code
for older versions like Python 3.6 and 3.8 backward compatibility.

Refs https://tracker.ceph.com/issues/66399
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-06-22 09:21:52 +08:00
Connor Fawcett
1d8dfb5f0c cmake: Add gcov --coverage flags when coverage option is set
Signed-off-by: Connor Fawcett <connorfa@uk.ibm.com>
Fixes: https://tracker.ceph.com/issues/66158
2024-05-29 13:36:49 +01:00
Adam Emerson
3d36ac2d0b build: Bump Boost to 1.85
Signed-off-by: Adam Emerson <aemerson@redhat.com>
2024-05-22 21:38:33 -04:00
Adam Emerson
857eedbe6c mds: Use Boost::url rather than src.hpp
As `src.hpp` is no longer supported.

Signed-off-by: Adam Emerson <aemerson@redhat.com>
2024-05-22 14:14:11 -04:00
Ken Dreyer
487cd2fddb cmake: disable WITH_QATLIB/ZIP on non-x86
This feature is only relevant to x86 hosts.

Signed-off-by: Ken Dreyer <kdreyer@ibm.com>

Fixes: https://tracker.ceph.com/issues/66016
Signed-off-by: Ken Dreyer <kdreyer@ibm.com>
2024-05-14 14:56:25 -04:00
Zack Cerza
be709462ad cmake: Intelligently set job limits for sccache
If we are correctly configured for distributed mode, use the cluster's CPU count
instead of ours. If we are configured for sccache but without distributed mode,
inform the user but continue with normal job limits.

Signed-off-by: Zack Cerza <zack@redhat.com>
2024-05-06 14:03:14 -06:00
Zack Cerza
0c345becf8 cmake: Support sccache
Signed-off-by: Zack Cerza <zack@redhat.com>
2024-04-09 16:39:35 -06:00
Nizamudeen A
09e55fb7c5
Merge pull request #52617 from TomNewChao/main
mgr/dashboard/frontend:Ceph dashboard supports multiple languages

Reviewed-by: Svelar <NOT@FOUND>
Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2024-03-21 00:28:38 +05:30
TomNewChao
913b52d6ee fix review about mgr/dashboard/frontend:Ceph dashboard supports multiple languages
1.Set the default value of DASHBOARD_FRONTEND_LANGS to 'ALL'.
2.Fix bug about receive the `"ALL"` or `'ALL'`from process.env.DASHBOARD_FRONTEND_LANGS that is not equal 'ALL' in cd.js.
3.When we use the make-dist script to build the front-end UI to release the ceph, we should add DASHBOARD_FRONTEND_LANGS="ALL" to support multiple languages.

Signed-off-by: TomNewChao <chaotomzhu@gmail.com>
2024-03-03 23:19:47 +08:00
Kefu Chai
ac1d58ab3e
Merge pull request #55328 from rosinL/wip-fix-64117
cmake/AddCephTest: bind crimson unittest to different cores

Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2024-02-22 10:47:29 +08:00
luo rixin
0f660886dd CMakeLists: Modify CEPH_TEST_TIMEOUT from 3600s to 7200s
There are some older Arm server running pretty slow, the make
check jobs like `check-generated.sh` are killed as the job timeout.
Make CEPH_TEST_TIMEOUT more longer.

Signed-off-by: luo rixin <luorixin@huawei.com>
2024-02-20 10:48:56 +08:00
Casey Bodley
84af8357d1 cmake: WITH_QATLIB/ZIP disabled on aarch64
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 11:13:21 -05:00
Casey Bodley
15046cf1ad cmake: enable WITH_QATLIB and WITH_QATZIP by default
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 11:13:21 -05:00
Casey Bodley
4e159853d2 cmake: WITH_QATZIP requires WITH_QATLIB or WITH_QATDRV
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 11:13:21 -05:00
Casey Bodley
e4e7dfd472 cmake: build qatzip from source when WITH_SYSTEM_QATZIP=OFF
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 11:12:45 -05:00
Casey Bodley
3068123667 cmake: build qat from source when WITH_SYSTEM_QATLIB=OFF
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 11:09:49 -05:00
Casey Bodley
127059e7c6 cmake: rename qatzip->QATzip and support pkg-config
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 10:37:47 -05:00
Casey Bodley
d6663c389b cmake: add WITH_QATLIB to build against qatlib
FindQAT.cmake adds library targets QAT::qat and QAT::usdm for qatlib,
and FindQatDrv.cmake adds alias targets to the same

src/compressor and src/crypto/qat link against these common QAT targets

src/crypto/qat/qcccrypto.h uses new HAVE_QATDRV define to determine
which headers to include

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 10:37:47 -05:00
Casey Bodley
80eae5de52 cmake: rename WITH_QAT to WITH_QATDRV
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-02-07 10:37:47 -05:00
Pere Diaz Bou
03e11acca0 os/bluestore: remove zoned from crimson
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2024-01-09 23:08:05 +01:00
Laura Flores
0a2572c78c
Merge pull request #53191 from rzarzynski/wip-all-kickoff-s-2
kickoff v19 squid
2023-12-22 14:16:49 -06:00
Kefu Chai
485f34b114
Merge pull request #54916 from tchaikov/cmake-boost-workaround
cmake: only apply workaround for boost < 1.84

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
2023-12-20 10:14:38 +08:00
Christoph Grüninger
d57b799ff0 cmake: Do not set CMake policy to new that are set anyway
CMP0097 and below are all implicitly set to new because
the minimum required CMake version is 3.16 and these
policies are older.

Signed-off-by: Christoph Grüninger <foss@grueninger.de>
2023-12-17 22:18:43 +01:00
Kefu Chai
c24a4c1984 cmake: only apply workaround for boost < 1.84
https://github.com/boostorg/phoenix/issues/111 was fixed in master.
see the fix which addresses the issue:
8913607a37

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-12-15 18:07:35 +08:00
Radoslaw Zarzynski
0c0767e243 cmake, doc: bump project version to 19.0.0 for squid
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2023-12-04 16:27:50 +01:00
Patrick Donnelly
536b054167
cmake: do not issue CMAKE_BUILD_TYPE warning if set
Fixes: b8c6ba01b2
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-10-31 10:55:44 -04:00
Casey Bodley
05c341b30d cmake: define BOOST_ASIO_HAS_IO_URING for WITH_LIBURING
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-10-20 09:18:30 -04:00
Patrick Donnelly
3438de58f2
cmake: promote uring package search to top-level
For use by multiple projects, rocksdb in particular.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-10-17 13:00:14 -04:00
Patrick Donnelly
b8c6ba01b2
CMakeLists: warn if CMAKE_BUILD_TYPE is set/unset
At some point the debug builds for wip branches no longer had the .git
directory available so the Debug build type was unset. This meant we are
no longer doing numerous checks (like mutex ownership checks) that we
would normally be doing in the qa suite.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-10-16 12:01:06 -04:00
Daniel Gryniewicz
a4b19133f1
Merge pull request #52933 from dang/wip-dang-posix-driver
RGW - Add POSIX Driver

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
2023-09-15 08:58:52 -04:00
Daniel Gryniewicz
5258bcbd73 RGW - Add POSIX Driver
This is the MVP for a driver for RGW that operates on top of a POSIX
filesystem.  It supports get, put, list, copy, multipart, external
access via the filesystem itself, and ordered bucket listings via an
LRU-based cache.

Note that this is currently a Filter, indended to run on top of dbstore.
This is because it currently doesn't have any User implementation, so it
depends on dbstore's User.  Everything else is implemented in
POSIXDriver.  Once there is a User implementation, this will become a
Store, instead of a Filter.

Commit messages from bucket listing cache:

  rgw/posixdriver: recycle lmdb database handles as required

    While LMDB workflows often do not close/return database handles,
    ours continually reuses them.  This requires us to close each
    handle (atomically) when a cache entry is recycled.

  rgw/posixdriver: don't instantiate bucket cache entries from notify events

  rgw/posixdriver: incorporate lmdb-safe for now

    The current inclusion is based on https://github.com/Martchus/lmdb-safe,
    which is actively maintained but currently has some packaging issues the
    author has agreed to accept fixes for.

    For now, skip the submodule to save time and remove an external dependency.

  rgw/posixdriver: fix listing of cached, empty bucket

    * check lmdb enumeration result in all cases and w/better style
    * add unit test for enumeration of an empty cached directory

  rgw/posixdriver: nest lmdbs in a directory under the dbroot path to avoid cleanup issues

  rgw/posixdriver: refactor for posix integration

    * Derive BucketCache types as templates on a SAL driver and SAL
      bucket pair.

    * Integrate cache fills as callbacks into SAL layer (or mock, for
      tests)

    * Renaming and cleanups

  rgw/posixdriver: add bucket cache implementation and tests

    Adds free-standing cache of buckets and object names, with
    bucket names (and listing attributes, upcoming) managed in
    a hashed set of lmdb databases, which provides ordering and
    a high-performance listing cache.

    An framework for notification on new object creation (e.g.,
    outside S3 workflow) is provided, and a Linux implementation
    using inotify.

    FindLMDB.cmake taken with attribution and license.

  rgw/posixdriver: add zpp_bits serialization (FAST)

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
Signed-off-by: Ali Maredia <amaredia@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2023-09-14 12:09:40 -04:00
Ilya Dryomov
ff570c6132
Merge pull request #51197 from petrutlucian94/mingw-llvm
windows: use mingw-llvm

Reviewed-by: Adam Emerson <aemerson@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2023-09-01 16:21:35 +02:00
Lucian Petrut
4b43afd509 common: skip boost shared_mutex with mingw-llvm
Because of winpthreads issues, we had to use Boost's shared_mutex
implementation.

When using mingw-llvm, we can safely use libc++'s shared mutex
implementation.

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-08-30 12:59:00 +00:00
Kefu Chai
fb93d6e032 cmake: update FindPython3 module
* use the one shiped by the latest CMake (ab379e5054aa792df9572078dcf95bddd75f7661)
* use the new policy to use the new find strategy.
* accomodate the vanilla FindPython3 module to Ceph by:
  - dropping the `cmake_policy()` calls which set the policy not supported
    by 3.16.
  - `include (FindPackageHandleStandardArgs)` without specifying the
    relative path.
  - dropping the `HANDLE_VERSION_RANGE` from `FindPackageHandleStandardArgs()` call.
    this option was introduced by CMake v3.19, see
    https://cmake.org/cmake/help/latest/module/FindPackageHandleStandardArgs.html
    but Ubuntu focal comes with CMake 3.16, which is our minimal required CMake version.

the new FindPython3 module from CMake:

* enables us to find the recent Python intepreter and development files up to
  CPython 3.13.
* finds intepreter with the new `Python_FIND_STRATEGY`. the old and default
  strategy always finds the most recent version with all specified name
  and in all locations. so, if /usr/bin/python exists, it would accept, even
  if it is  a symlink to python3.9 and what we want is python3.6. while
  the new policy stops at the one which satisfies the constraints.
  simpler this way and less error prone.

Fixes: https://tracker.ceph.com/issues/62428
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-08-17 10:16:45 +08:00
Lucian Petrut
5fd67e1f88 build: globally set FMT_USE_TZSET=0 for Windows
We're currently setting FMT_USE_TZSET=0 when building libfmt
in order to avoid the _tzset function, which is unavailable
under Mingw:
aa5769ecf1

The issue is that it still gets used by fmt/chrono.h, which is
why we'll move this definition to the top level cmake file.

Note that the Windows build is currently failing as a result of
a recent change: https://github.com/ceph/ceph/pull/52590/files

  In file included from ceph/src/common/ceph_time.h:22,
                   from ceph/src/include/encoding.h:31,
                   from ceph/src/include/uuid.h:9,
                   from ceph/src/include/types.h:21,
                   from ceph/src/crush/CrushWrapper.h:14,
                   from ceph/src/crush/CrushCompiler.h:7,
                   from ceph/src/crush/CrushCompiler.cc:4:
  ceph/src/fmt/include/fmt/chrono.h: In lambda function:
  ceph/src/fmt/include/fmt/chrono.h:953:5: error: ‘_tzset’ was
  not declared in this scope; did you mean ‘tzset’?
    953 |     _tzset();
        |     ^~~~~~
        |     tzset

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-07-28 14:34:37 +00:00
Adam C. Emerson
244c5ebbd4 build: Bump boost to 1.82
Needed to fix coroutine detection under Clang

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2023-07-05 15:45:07 -04:00
Samarah
5a9a5ba4a3 RGW: Change cmake option descriptions from Rados to RADOS
Signed-off-by: Samarah <samarah.uriarte@ibm.com>
2023-06-09 10:42:53 -04:00
Casey Bodley
4167b5c797
Merge pull request #48879 from samarahu/wip-d4n
RGW: WIP D4N

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2023-06-08 11:44:55 -04:00
Ilya Dryomov
1caadd7f2a
Merge pull request #50341 from yangdongsheng/ubbd
rbd: add support for new device type of ubbd

Reviewed-by: Mykola Golub <mykola.golub@clyso.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2023-06-05 23:12:28 +02:00
samarah
8d37f60c10 RGW: Add D4N classes and unit testing; update cpp_redis submodule
Signed-off-by: samarah <suriarte@redhat.com>
2023-06-05 13:06:46 -04:00
Matan Breizman
e6d56c1eff CMakeLists.txt: increase verbosity for selected allocator
Unless the allocator was set on command line, we will select one based on the following order:
```
"specify memory allocator to use. currently tcmalloc, tcmalloc_minimal, \
jemalloc, and libc is supported. if not specified, will try to find tcmalloc, \
and then jemalloc. If neither of then is found. use the one in libc.")
```
with this change, cmake will explicitly message the compiler selected,
otherwise we have no option to identify the one which is being used.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2023-05-31 11:12:43 +00:00
Dongsheng Yang
54853a5ae7 tools/rbd: add support of new device type for ubbd
ubbd (Userspace Backend Block Device) is a method to build block device
and handle IO by process started in userspace. That means we can provide
a generic block device to user and handle IO requests by librbd
in linux.

This way, we can allow user to use rbd image as a linux block device
supporting full image features, especial the journaling feature, which
is not supported by krbd.

For more information: https://github.com/DataTravelGuide/ubbd

Signed-off-by: Dongsheng Yang <dongsheng.yang.linux@gmail.com>
2023-05-18 12:35:39 +00:00
Ali Maredia
414bdd4cc5 rgw: add conditional backtrace logging after "WARNING: blocking librados call"
Signed-off-by: Ali Maredia <amaredia@redhat.com>
2023-01-24 14:04:01 -05:00
J. Eric Ivancich
aba9bb728d rgw: allow Arrow Flight to be built and linked into ceph components
Arrow Flight integration is triggered by defining
WITH_RADOSGW_ARROW_FLIGHT=ON with the cmake invocation.

For now this assumes that grpc-plugins is installed on the system and
won't be built internally.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2022-12-15 12:49:35 -05:00
Radoslaw Zarzynski
bf46d3736d
Merge pull request #47458 from rzarzynski/wip-all-kickoff-r
kickoff v18 reef

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Laura Flores <lflores@redhat.com>
2022-10-04 22:39:19 +02:00
Lucian Petrut
9921c8a355
Merge pull request #48148 from ktdreyer/win-remove-curl
win32: remove libcurl
2022-09-23 10:43:44 +03:00