Commit Graph

1564 Commits

Author SHA1 Message Date
J. Eric Ivancich
c02906ae64 rgw: enhances rgw-restore-bucket-index script
This enhances the script to both process versioned buckets correctly
and to handle object names that begin with underscore.

If the bucket is versioned it submits each version chronologically
(based on mtime) to be reindexed in order to "replay" the modification
of objects. However mtime is not a perfect indicator. So additionally
it looks at the OLH object to determine the most recent version and
the script makes sure that it is replayed last. The order of previous
versions is likely correct, but not guaranteed to be so.

Additional logic is added to handle objects with names that begin with
underscore ('_') since that's used as a delimiter and needs to be
escaped and rados object locators are also used.

A man page for the script is added.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-08-30 14:41:15 -04:00
Matan Breizman
e6d2ec65bd ceph.spec.in: add sanitizers to seastar requires
```
CMake Error at src/seastar/CMakeLists.txt:782 (message):
  Sanitizers not found!
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2023-08-06 09:45:42 +00:00
liuqinfei
14c1f3ddd6 ceph.spec.in: add support for openEuler OS
The ceph main branch daily build on openEuler has been built.
https://github.com/openeuler-mirror/ceph-daily-build
The verification includes:
    - build ceph from source
    - run unit test
    - build RPM package

Signed-off-by: liuqinfei <lucas.liuqinfei@huawei.com>
2023-06-25 18:55:03 +08:00
J. Eric Ivancich
637d461bf1 rgw: install rgw scripts with common files rather than radosgw files
Update ceph.spec.in and debian install files so
rgw-restore-bucket-index, rgw-orphan-list, rgw-gap-list,
rgw-gap-list-comparator are installed with common files.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-03-15 09:35:45 -04:00
J. Eric Ivancich
6ea11b1305 rgw: add rgw-restore-bucket-index
Adds an experimental script that allows a bucket index of a
non-versioned bucket to be restored by applying `radosgw-admin object
reindex ...` to all objects in the specified bucket. The objects in
the bucket are determined by scanning the data pool for head objects
containing the bucket's marker.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
2023-03-09 11:00:57 -05:00
Redouane Kachach
110db72e24
mgr/rgw: adding mgr rgw module to ceph image
Fixes: https://tracker.ceph.com/issues/58856

Signed-off-by: Redouane Kachach <rkachach@redhat.com>
2023-02-27 19:11:25 +01:00
Casey Bodley
970a16cb30 rpm: use system arrow packages for fedora/centos9
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Casey Bodley
7760d31a72 rpm: combine system_utf8proc option into system_arrow
libarrow-devel depends on utf8proc-devel, so we can't enable
system_arrow without system_utf8proc

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Casey Bodley
0b561f985e rpm: fix package names for arrow/parquet
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2023-01-25 13:47:08 -05:00
Tim Serong
1f92b0314b ceph.spec.in: Replace %usrmerged macro with regular version check
%usrmerged is deprecated in favour of %if 0%{?suse_version} < 1550
(see https://en.opensuse.org/openSUSE:Usr_merge for details)

Fixes: https://tracker.ceph.com/issues/58501
Signed-off-by: Tim Serong <tserong@suse.com>
2023-01-19 18:28:06 +11:00
Laura Flores
e03067541c
Merge pull request #49712 from tchaikov/wip-packaging-in-setuptools
mgr/prometheus: use vendored "packaging" instead
2023-01-11 17:50:47 -06:00
Kefu Chai
cf6089200d mgr/prometheus: use vendored "packaging" instead
instead of using the top-level "packaging" module, use the one
vendored by setuptools.

packaging python module provides versioning defined by PEP-440.
but python3-packaging is provided by CentOS8 powertools repo,
which is not enabled by default. and in CentOS9, this package
is provided by AppStream instead of BaseOS.

as prometheus mgr module is included by ceph-mgr-module-core,
it would be desirable if our user can install ceph-mgr-module-core
without enabling powertools or AppStream repo on a CentOS or
its derivative distros.

fortunately, setuptools vendors packaging module. and both
CentOS8 and CentOS9 provide python3-setuptools in their BaseOS
repos.

in this change, instead of using "packging" module, we use the
venderored one, which is in turn embedded in pkg_resources.
this python module is provided by python3-setuptools on CentOS
distros, and python3-pkg-resources on Debian and its derivatives.

the packaging recipes are updated accordingly to reflect the
new runtime dependency.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-01-11 20:31:03 +08:00
Samuel Just
68149e9c99 ceph.spec.in: remove the bcond_without cephfs_java option
This effectively disable cephfs_java for rpm builds for now.
The only user appears to be cephfs jni bindings.

Fixes: https://tracker.ceph.com/issues/58382
Signed-off-by: Samuel Just <sjust@redhat.com>
2023-01-10 20:06:06 -08:00
Marcus Watts
28864311d3 rgw: added rgw-policy-check
rgw-policy-check - a program to do syntax checking on bucket policy.
This program just reads the policy into memory, so it is not
checking anything except syntax.

Signed-off-by: Marcus Watts <mwatts@redhat.com>

rgw: Fix return value of `rgw-policy-check`

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>

rgw: Use ceph initialization in `rgw-policy-check`

Specifically so we can pull in the options from `ceph.conf` and similar.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2022-12-13 16:41:52 -05:00
Tim Serong
6c2fd4267e ceph.spec.in: disable system_pmdk on s390x for SUSE distros
Fixes: https://tracker.ceph.com/issues/57860
Signed-off-by: Tim Serong <tserong@suse.com>
2022-10-13 15:30:19 +11:00
Martin Ohmacht
a6658c91bb blk/kernel: add plugin system for devices with compression and move VDO support into plugin
The current VDO support implementation is buried inside the common/blkdev.cc
with a simple interface used by KernelDevice. It is not easily extendable
and can not be easily used for other devices providing similar capabilities.
This patch adds a plugin system that is based in its structure on the
erasure code plugin system and moves the VDO support code into a VDO plugin.

Signed-off-by: Martin Ohmacht <mohmacht@us.ibm.com>
2022-09-28 14:09:04 -04:00
Ken Dreyer
7cfe523c7f Merge PR #47153 into main
* refs/pull/47153/head:
	build: fix atomic linking with LTO on s390x

Reviewed-by: Justin Caratzas <jcaratza@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2022-09-26 13:47:11 -04:00
Michael Fritch
f756b3cfcc rpm, debian: use cmake to install the cephadm binary
Signed-off-by: Michael Fritch <mfritch@suse.com>
2022-09-13 12:17:20 -04:00
Tim Serong
b660b79bf5 ceph.spec.in: Use gcc11-c++ on openSUSE Leap 15.x
Fixes: 80949babab
Fixes: https://tracker.ceph.com/issues/57497
Signed-off-by: Tim Serong <tserong@suse.com>
2022-09-12 11:13:28 +10:00
Aswin Toni
2e0e684fc2 ceph-mixin: Remove jsonnet building
Signed-off-by: Aswin Toni <aswin.toni@cern.ch>
2022-08-17 12:08:56 +02:00
Kefu Chai
ee8ccbfc9e
Merge pull request #47548 from cbodley/wip-57073
install-deps: fix centos 8's use of gcc-toolset-11

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
2022-08-11 08:14:11 +08:00
Casey Bodley
a46db91ef4 ceph.spec.in: install gcc-toolset-11-libatomic-devel in x86_64 also
otherwise after enabling gcc-toolset-11, cmake fails with:

- Performing Test HAVE_LIBATOMIC - Failed
CMake Error at cmake/modules/CheckCxxAtomic.cmake:66 (message):
  Host compiler /opt/rh/gcc-toolset-11/root/usr/bin/g++ requires libatomic,
  but it is not found

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-10 18:23:44 -04:00
David Galloway
fcf48cda0a ceph.spec.in: disable system_pmdk on aarch64
Signed-off-by: David Galloway <dgallowa@redhat.com>
2022-08-10 14:36:43 -04:00
Kefu Chai
215c07ba8b ceph.spec.in: always use stock compiler on el9
as RHEL/CentOS 9, we have the access to GCC-11, which is good enough for
compiling main HEAD even with WITH_SEASTAR=ON.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 23:47:02 +08:00
Kefu Chai
53302f5f7f ceph.spec.in: define %gts_prefix
less repeatings this way, also  allow maintainer to use other version of GTS.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 22:49:43 +08:00
Kefu Chai
75dd923533 ceph.spec.in: %enable_devtoolset11 only if the macro is defined
there is chance that we are using `yum-builddep` to prepare the
build dependencies. in that case, gcc-toolset-11-build is not
installed. it's like a chicken-egg dilemma, but the point is
`yum-builddep` is able to pull in the gcc-toolset-11-build. once
gcc-toolset-11-build is installed, we will have the %enable_devtoolset11
rpm macro.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-10 22:37:48 +08:00
Casey Bodley
7ef6250a93
Merge pull request #47504 from cbodley/wip-57050
rgw/cmake: stop building all of radosgw a shared lib

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2022-08-09 17:12:03 -04:00
Kefu Chai
14ab202bd1
Merge pull request #47500 from tchaikov/wip-no-more-distutils
pybind/mgr/dashboard: do not use distutils.version.StrictVersion

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2022-08-09 23:02:07 +08:00
Kefu Chai
075b31c1c7 pybind/mgr/dashboard: do not use distutils.version.StrictVersion
replace `distutils.version.StrictVersion` with
`pkg_resources.parse_version()`

as the former is deprecated, see https://peps.python.org/pep-0632/.
let's use `pkg_resources` instead. this change also addresses
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010894.
we have this issue when testing with an ubuntu jammy test node.
see https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/1967139

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-09 21:04:34 +08:00
Casey Bodley
69a231888e rgw/cmake: stop building all of radosgw a shared lib
Fixes: https://tracker.ceph.com/issues/57050

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-08-08 11:10:11 -07:00
Kefu Chai
7e122341d9 ceph.spec.in: add libatomic to BuildRequires on fedora
otherwise we'd have failures like

/opt/compiler-explorer/gcc-trunk-20220808/bin/../lib/gcc/x86_64-linux-gnu/13.0.0/../../../../x86_64-linux-gnu/bin/ld:
/tmp/ccVlMbVh.o: in function `std::atomic<tagged_ptr>::store(tagged_ptr,
std::memory_order)':
/opt/compiler-explorer/gcc-trunk-20220808/include/c++/13.0.0/atomic:273:
undefined reference to `__atomic_store_16'

when generating the building system using CMake on fedora 36.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-08 20:40:54 +08:00
Tim Serong
afb684b60f
Merge pull request #47436 from SUSE/wip-mib-snmp-dir
ceph.spec.in: ceph-mib: require snmp-mibs on SUSE distros

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Justin Caratzas <jcaratza@redhat.com>
2022-08-08 15:46:20 +10:00
Tim Serong
69997b3b0c ceph.spec.in: ceph-mib: specify "%dir %{_datadir}/snmp"
Without this, the openSUSE build fails with:

  ceph-mib-17.0.0-[...].noarch.rpm: directories not owned by a package:
    - /usr/share/snmp

Fixes: 183e347506
Signed-off-by: Tim Serong <tserong@suse.com>
2022-08-05 13:12:50 +10:00
Kefu Chai
c1062a0df2
Merge pull request #47449 from tchaikov/rpm-gts-11
ceph.spec.in: build with gcc-toolset-11

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2022-08-04 21:30:51 +08:00
Kefu Chai
3811e8835d ceph.spec.in: BuildRequires gcc-toolset-11-libatomic-devel for aarch64
to address following failure when generating the building system
using CMake:

```
-- Performing Test HAVE_LIBATOMIC
-- Performing Test HAVE_LIBATOMIC - Failed
CMake Error at cmake/modules/CheckCxxAtomic.cmake:66 (message):
  Host compiler /opt/rh/gcc-toolset-11/root/usr/bin/c++ requires libatomic,
but it is not found
```

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-04 12:15:03 +08:00
Kefu Chai
336fe86af8 ceph.spec.in: call %enable_devtoolset11 on centos8
before this change %enable_devtoolset11 is called only when building
with crimson on centos8.

after this change %enable_devtoolset11 is called when building on
centos8. because we've started using gcc-toolset-11 for building
rpm packages on centos8 after the C++20 migration. so, to build
with gcc-11, we need to enable it.

also, because gcc-toolset-11 is used, we have to disable
annotated_build.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-08-04 11:02:16 +08:00
Avan Thakkar
d7226fcc45 exporter: per node metric exporter
Fixes: https://tracker.ceph.com/issues/55046

Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
2022-08-03 13:13:49 +02:00
Tim Serong
80949babab ceph.spec.in: set BuildRequires: gcc-c++ >= 11 for SUSE distros
This is much simpler than explicitly requiring gcc 11, and
anyway, openSUSE Tumbleweed is up to gcc 12 now.

Signed-off-by: Tim Serong <tserong@suse.com>
2022-08-03 15:20:25 +10:00
Casey Bodley
46a1aa4874 ceph.spec.in: add gcc-toolset-11-annobin-plugin-gcc
gcc-toolset-11-annobin is already installed, but ceph.spec.in adds
"-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" which needs the gcc
plugin too

resolves this failure during the cmake configure step:

-- Check for working CXX compiler: /opt/rh/gcc-toolset-11/root/usr/bin/c++
-- Check for working CXX compiler: /opt/rh/gcc-toolset-11/root/usr/bin/c++ - broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:59 (message):
  The C++ compiler

    "/opt/rh/gcc-toolset-11/root/usr/bin/c++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11497-gfae772b8/rpm/el8/BUILD/ceph-17.0.0-11497-gfae772b8/x86_64-redhat-linux-gnu/CMakeFiles/CMakeTmp

    Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_09421/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_09421.dir/build.make CMakeFiles/cmTC_09421.dir/build
    gmake[1]: Entering directory '/home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11497-gfae772b8/rpm/el8/BUILD/ceph-17.0.0-11497-gfae772b8/x86_64-redhat-linux-gnu/CMakeFiles/CMakeTmp'
    Building CXX object CMakeFiles/cmTC_09421.dir/testCXXCompiler.cxx.o
    /opt/rh/gcc-toolset-11/root/usr/bin/c++   -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -o CMakeFiles/cmTC_09421.dir/testCXXCompiler.cxx.o -c /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos8/DIST/centos8/MACHINE_SIZE/gigantic/release/17.0.0-11497-gfae772b8/rpm/el8/BUILD/ceph-17.0.0-11497-gfae772b8/x86_64-redhat-linux-gnu/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
    cc1plus: fatal error: inaccessible plugin file plugin/annobin.so expanded from short plugin name annobin: No such file or directory
    compilation terminated.

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-07-30 13:02:16 +08:00
Casey Bodley
610c0d5111 rpm: BuildRequires gcc-toolset-10-gcc-c++ >= 10.2
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2022-07-30 13:02:15 +08:00
Ilya Dryomov
a421cfc2aa
Merge pull request #47014 from ktdreyer/no-system-pmdk-s390x
ceph.spec.in: disable system_pmdk on s390x

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2022-07-24 09:37:55 +02:00
Kefu Chai
579a9fe32a
Merge pull request #47124 from tchaikov/spec-mibs
ceph.spec.in: correct "%files mib" section

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Reviewed-by: Justin Caratzas <jcaratza@redhat.com>
2022-07-22 23:54:03 +08:00
Tim Serong
93b9e3d5de ceph.spec.in: use BuildRequires libndctl-devel for SUSE distros
Fixes: b6b24852a6
Signed-off-by: Tim Serong <tserong@suse.com>
2022-07-21 18:08:59 +10:00
Ken Dreyer
fbb1ccc963 build: fix atomic linking with LTO on s390x
Prior to this change, Fedora and RHEL 9 on s390x would incorrectly pass
the HAVE_CXX11_ATOMIC check. As a consequence, the rest of Ceph would
fail to link because of missing atomic methods "__atomic_load_16",
"__atomic_store_16", "__atomic_compare_exchange_16".

Mark this method so that it is not optimized out, even with LTO. With
this change, s390x properly fails HAVE_CXX11_ATOMIC and falls back to
HAVE_LIBATOMIC.

Move the "BuildRequires: libatomic" RPM line out from the seastar+fedora
conditional and into the main fedora+rhel conditional so that the
HAVE_LIBATOMIC check will pass.

Fixes: https://tracker.ceph.com/issues/54514
Fixes: https://tracker.ceph.com/issues/56492

Co-authored-by: Kaleb S. Keithley <kkeithle@redhat.com>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2022-07-18 15:19:02 -04:00
Kefu Chai
183e347506 ceph.spec.in: correct "%files mib" section
* create the destination directory when installing the MIBs file
* no need to set the file permission bits of a directory not owned by us
* the MIBs installed by us are not config files, and should not be
  marked with `%config`, they are just immutable files not supposed to
  be edited by user.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-07-16 19:04:55 +08:00
Justin Caratzas
fddb7dd2b0 ceph.spec.in: fix path for mib file and properly mark in %files
Fixes typos introduced in https://github.com/ceph/ceph/pull/46918

Signed-off-by: Justin Caratzas <jcaratza@redhat.com>
2022-07-15 08:41:24 -04:00
Ilya Dryomov
795daff95e
Merge pull request #46260 from CongMinYin/wip-enable-ndctl
cmake: enable ndctl when building PMDK for WITH_BLUESTORE_PMEM

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2022-07-14 15:21:29 +02:00
Justin Caratzas
23a849e3d0
Merge pull request #46918 from bigjust/wip-jcaratza-mib-rpm
monitoring:package SNMP MIB file as an rpm
2022-07-13 12:56:53 -04:00
Yin Congmin
b6b24852a6 cmake: add findndctl and finddaxctl function
In order to support the character device of pmem usage in bluestore via
libpmem built by Ceph itself, we need to enable daxctl and ndctl
dependency. add the installation of ndctl and find it. the version of
ndctl and daxctl library requires >63. "apt-get install" meet the version
under ubuntu focal.

the installation of ndctl-devel in ceph.spec.in has not been verified.

Signed-off-by: Yin Congmin <congmin.yin@intel.com>
2022-07-12 10:32:57 +08:00
Kefu Chai
40039e7b00 ceph.spec.in: disable WITH_JAEGER if "with seastar"
this is an intermediate solution for building crimson rpm packages.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2022-07-10 20:22:58 -04:00