Compare commits

...

80 Commits

Author SHA1 Message Date
Kaleb S. KEITHLEY 040a2443aa rhbz#2425930 2026-01-02 13:58:04 -05:00
Kaleb S. KEITHLEY ce7293d6ac ceph-19.2.3, rhbz#2403112 2025-10-16 11:35:20 -04:00
Hector Martin 99e2862950 Merge branch 'rawhide' into f42 2025-08-20 20:29:16 +09:00
Hector Martin 10c2ce06df Two mgr fixes
- Work around mgr `restful` module PyO3 failures
- Fix NOTIFY_TYPES exceptions during module import (rhbz#2361850)
2025-08-20 20:28:03 +09:00
Hector Martin 675842896e Fix F41 build 2025-08-20 20:05:37 +09:00
Hector Martin b383e9871a Fix mgr dashboard module failures due to unusable dependencies 2025-08-20 20:05:37 +09:00
Python Maint ed9eb44736 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 12:41:39 +02:00
Kaleb S. KEITHLEY 7bee4683fe Merge remote-tracking branch 'origin/f43' into f42 2025-08-13 14:37:00 -04:00
Kaleb S. KEITHLEY 09ccc8e9b9 ceph-19.2.3, rhbz#2310236 2025-08-13 08:33:04 -04:00
František Zatloukal be4504721e Rebuilt for icu 77.1 2025-08-06 09:52:44 +02:00
Kaleb S. KEITHLEY 336d95ffe1 Merge remote-tracking branch 'origin/rawhide' into f42 2025-07-29 12:28:59 -04:00
Kaleb S. KEITHLEY 462b6371a8 ceph-19.2.3 GA 2025-07-28 17:44:49 -04:00
Fedora Release Engineering 73fbd52cf0 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 18:12:16 +00:00
Kaleb S. KEITHLEY 76311ff73d w/ libarrow-20 in f43-build-side-114791 w/ Python 3.14 2025-07-09 13:11:42 -04:00
Kaleb S. KEITHLEY 7777c12922 rebuild with libarrow-20 2025-07-07 20:23:59 -04:00
Kaleb S. KEITHLEY 9e40e8463a SPDX license, again 2025-07-05 11:49:04 -04:00
Miroslav Suchý 7b02812bfa update license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
Reported to upstream: https://github.com/ceph/ceph/pull/59650
2025-07-05 16:45:11 +02:00
Python Maint f30547975e Rebuilt for Python 3.14 2025-06-03 14:27:27 +02:00
Kaleb S. KEITHLEY 71415e347c python 3.14 ready. rhbz#2336913 2025-05-29 19:15:25 -04:00
Kaleb S. KEITHLEY ab3a611b40 build in side tag f43-build-side-110906 2025-04-28 15:56:49 -04:00
Kaleb S. KEITHLEY 174d85b528 merge 2025-04-22 07:31:45 -04:00
Kaleb S. KEITHLEY ef7983bda9 Merge remote-tracking branch 'origin/rawhide' into f42 2025-04-22 07:17:55 -04:00
Zbigniew Jędrzejewski-Szmek 3e62f6732f Also use sysusers.d for the ceph user
Previously, the scriptlets that add 'cephadm' were converted. But the
ones for 'ceph' were missed. Let's rename the older sysusers file that
adds 'cephadm' to 'cephadm.conf', and add a new file 'ceph.conf' for
the -common subpackage.
2025-04-17 10:57:18 +02:00
Zbigniew Jędrzejewski-Szmek 79153d6480 Fix location of ceph-create-keys
The end state in F42+ must be that all files are under /usr/bin as reported in
%files. (Then filesystem.rpm takes care of making either /usr/sbin a symlink or
providing individual symlinks under /usr/sbin.)  Since %_sbindir is defined as
/usr/bin, the same as %_bindir, there is no need to replace instances of
%_sbindir in the spec file. In fact, to avoid churn and make it easier to
retain compatibility with older branches, we kept %_sbindir use in most
packages. After F41 and older stop being supported, we might clean that up and
use %_bindir everywhere, but it's just a cosmetic issue.
Right now, the use of %{_exec_prefix}/sbin/ hardcodes the path to the wrong
value and prevents the merge from being finalized.
2025-04-16 17:49:07 +02:00
Zbigniew Jędrzejewski-Szmek 523d1206e6 Avoid unexpanded macro in comment 2025-04-16 11:29:49 +02:00
Kaleb S. KEITHLEY 74fb57d14d ceph-19.2.2, rhbz#2359214 again 2025-04-14 08:38:52 -04:00
Kaleb S. KEITHLEY 72afc44846 ceph-19.2.2, rhbz#2359214 2025-04-12 10:38:29 -04:00
Kaleb S. KEITHLEY c77f93f3c6 Merge remote-tracking branch 'origin/rawhide' into f42 2025-04-11 11:24:53 -04:00
Kaleb S. KEITHLEY 709057efd7 ceph-19.2.2 GA 2025-04-11 07:32:35 -04:00
Kaleb S. KEITHLEY e2f83f0159 rebuild with libarrow-19.0.1 (and liborc-2.1.1) 2025-03-13 17:02:15 -04:00
Kaleb S. KEITHLEY 9617094f5b cephadm dependencies 2025-03-07 14:06:21 -05:00
Kaleb S. KEITHLEY 84c56bc5b9 cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
cephadm
2025-03-07 08:24:01 -05:00
Kaleb S. KEITHLEY 051c60d292 cmake-4, again 2025-03-01 14:23:14 -05:00
Kaleb S. KEITHLEY cd9775de83 rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
rebuild w/ cmake-4
2025-03-01 14:21:52 -05:00
Kaleb S. KEITHLEY bf3e97a4bf ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
2025-02-17 16:01:06 -05:00
Zbigniew Jędrzejewski-Szmek 10008f4d4d Add sysusers.d config file to allow rpm to create users/groups automatically
While at it, drop scriptlet to delete the user. This is not reliable
and should not be done.
2025-02-08 17:46:40 +01:00
Kaleb S. KEITHLEY 9a53ef8bfc ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129
2025-02-07 09:55:55 -05:00
Kaleb S. KEITHLEY 2126a0838a ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
ceph-19.2.1 GA
2025-02-07 04:59:29 -05:00
Kaleb S. KEITHLEY b6da7b6869 again. Seems like %_sbindir has finally settled down in rawhide 2025-01-28 09:38:48 -05:00
Kaleb S. KEITHLEY 211fde613e again 2025-01-27 07:29:52 -05:00
Kaleb S. KEITHLEY 0355ace5e2 hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
2025-01-26 19:32:46 -05:00
Kaleb S. KEITHLEY 8b27c56f29 hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs rhbz#2341687
2025-01-26 18:34:03 -05:00
Kaleb S. KEITHLEY 4751d59373 hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
hack around cmake -std=gnu99 w/ userspace-rcu
use system version of gmock and gtest to avoid bundled brain damage
  that creates but does not install gmock and gtest shlibs #rhbz#2341687
2025-01-24 14:51:21 -05:00
Kaleb S. KEITHLEY cb9e33d375 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
2025-01-17 09:18:06 -05:00
Fedora Release Engineering ef563fd8d7 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 13:31:36 +00:00
Kaleb S. KEITHLEY 396c7768f7 remove openssl-engine 2024-12-31 13:01:04 -05:00
Kaleb S. KEITHLEY 7782c6b1de Merge #17 Remove openssl-devel-engine dependency 2024-12-19 21:30:22 +00:00
Pete Walter 777309ac00 Rebuild for ICU 76 2024-12-08 22:08:05 +00:00
Yaakov Selkowitz 9e8f3de90d Remove openssl-devel-engine dependency
https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine
2024-12-04 21:55:41 -05:00
Kaleb S. KEITHLEY b2198c3560 build in f42-build-side-100844 again 2024-11-26 15:11:47 -05:00
Kaleb S. KEITHLEY b4f3e5cd1b build in f42-build-side-100844 again 2024-11-26 13:32:09 -05:00
Kaleb S. KEITHLEY 4d7d8d4f06 build in f42-build-side-100844 2024-11-22 13:32:43 -05:00
Kaleb S. KEITHLEY 9fe6d8aff6 and back; ceph-19.2.0 scikit_learn -> scikit-learn rhbz#2327036 2024-11-18 12:17:52 -05:00
Miroslav Suchý 542aea1c02 fix error in License tag
This is follow up of https://src.fedoraproject.org/rpms/ceph/pull-request/15
2024-11-14 14:22:44 +01:00
Kaleb S. KEITHLEY 5b30d830a7 ceph-19.2.0 scikit-learn -> scikit_learn rhbz#2325990 2024-11-13 14:29:39 -05:00
Miroslav Suchý 57f6aa766d Migrate to SPDX license (temporary ids)
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4

Note that this is an SPDX identifier, but it still needs to be migrated to the proper identifiers in the fedora-license-data set.
2024-11-04 19:18:06 +00:00
Orion Poplawski d890f19b59 Rebuild for yaml-cpp 0.8 2024-10-24 21:01:39 -06:00
Kaleb S. KEITHLEY 3cf60da63e ceph-19.2.0 GA 2024-09-20 10:50:20 -04:00
Kaleb S. KEITHLEY 1617d904e2 ceph-19.1.1 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-08-23 13:27:06 -04:00
Kaleb S. KEITHLEY e75c15b5e1 possible fix for ppc64le build, see rhbz 2297744
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-26 10:50:34 -04:00
Fedora Release Engineering a5f57bdda7 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 19:08:36 +00:00
Kaleb S. KEITHLEY d43cb58ea8 install libtacopie.so
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-12 07:39:44 -04:00
Kaleb S. KEITHLEY 77b4049f20 install libtacopie.so
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-12 05:35:25 -04:00
Kaleb S. KEITHLEY 6760483703 install libcpp_redis.so
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-11 19:16:37 -04:00
Kaleb S. KEITHLEY 6f7af637e0 ceph-19.1.0 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-10 16:26:59 -04:00
Kaleb S. KEITHLEY 04cb11136d ceph-19.1.0 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-10 08:39:24 -04:00
Kaleb S. KEITHLEY dfb67a0a2d ceph-19.1.0 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-09 18:59:13 -04:00
Kaleb S. KEITHLEY 8c24c6966e ceph-19.1.0 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-09 15:03:23 -04:00
Kaleb S. KEITHLEY 0707993c6f Rebuild with OpenSSL-3.2.2, w/ openssl-devel-engine
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-09 07:41:58 -04:00
Kaleb S. KEITHLEY 7b9e357bb6 Rebuild with OpenSSL-3.2.2, w/ openssl-devel-engine
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-09 06:53:02 -04:00
Kaleb S. KEITHLEY 5487589f86 Rebuild with OpenSSL-3.2.2, w/ openssl-devel-engine
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-09 06:31:36 -04:00
Kaleb S. KEITHLEY 4dc6f31337 Rebuild with OpenSSL-3.2.2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-08 17:11:49 -04:00
Kaleb S. KEITHLEY b1b1f3dfe5 Merge branch 'rawhide' of ssh://pkgs.fedoraproject.org/rpms/ceph into rawhide 2024-07-08 17:10:15 -04:00
Kaleb S. KEITHLEY af927eceb5 Rebuild with OpenSSL-3.2.2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-08 17:08:27 -04:00
Python Maint c302acab65 Rebuilt for Python 3.13 2024-06-08 22:29:49 +02:00
Kaleb S. KEITHLEY fdf49fe866 python 3.13 fixes
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-06-07 15:44:57 -04:00
Orion Poplawski 9d891cfd36 Rebuild with thrift 0.20 2024-06-02 16:19:43 -06:00
Kaleb S. KEITHLEY d17727fb4b ceph-18.2.3, enable system boost
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-05-21 08:27:25 -04:00
Kaleb S. KEITHLEY d95a6a107c ceph-18.2.3, rebuild with libarrow-16.1.0,
disable LTO w/ gcc-4.1.1

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-05-20 19:02:18 -04:00
Kaleb S. KEITHLEY b34a342a82 ceph-18.2.3, rebuild with libarrow-16.1.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-05-14 13:59:45 -04:00
30 changed files with 1247 additions and 1086 deletions
-11
View File
@@ -1,11 +0,0 @@
--- ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake.orig 2021-02-01 08:45:39.316108287 -0500
+++ ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake 2021-02-01 08:45:59.813665378 -0500
@@ -5,7 +5,7 @@
# uring_FOUND - True if uring found.
find_path(URING_INCLUDE_DIR liburing.h)
-find_library(URING_LIBRARIES liburing.a liburing)
+find_library(URING_LIBRARIES liburing.so liburing)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR)
-42
View File
@@ -1,42 +0,0 @@
--- ceph-16.2.7/src/common/LogEntry.cc.orig 2022-01-17 13:52:10.799134159 -0500
+++ ceph-16.2.7/src/common/LogEntry.cc 2022-01-17 13:52:47.244469274 -0500
@@ -183,7 +183,7 @@
return "crit";
default:
ceph_abort();
- return 0;
+ return "";
}
}
--- ceph-16.2.7/src/test/librados/tier_cxx.cc.orig 2022-01-19 09:30:47.209459506 -0500
+++ ceph-16.2.7/src/test/librados/tier_cxx.cc 2022-01-19 10:02:47.783240298 -0500
@@ -120,7 +120,7 @@
}
void check_fp_oid_refcount(librados::IoCtx& ioctx, std::string foid, uint64_t count,
- std::string fp_algo = NULL)
+ std::string fp_algo = "")
{
bufferlist t;
int size = foid.length();
@@ -148,7 +148,7 @@
ASSERT_LE(count, refs.count());
}
-string get_fp_oid(string oid, std::string fp_algo = NULL)
+string get_fp_oid(string oid, std::string fp_algo = "")
{
if (fp_algo == "sha1") {
unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE + 1];
--- ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h.orig 2022-02-11 17:21:40.268627997 -0500
+++ ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h 2022-02-11 17:21:57.155325437 -0500
@@ -466,7 +466,7 @@
std::string print(int ident) override
{
- return std::string(0);
+ return std::string("");
}
void push_argument(base_statement* arg)
@@ -1,11 +0,0 @@
--- ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake.orig 2022-04-08 11:27:53.593570634 -0400
+++ ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake 2022-04-08 11:28:20.778087653 -0400
@@ -1991,7 +1991,7 @@
if((NOT ARROW_SIMD_LEVEL STREQUAL "NONE") OR (NOT ARROW_RUNTIME_SIMD_LEVEL STREQUAL "NONE"
))
- set(xsimd_SOURCE "BUNDLED")
+ set(xsimd_SOURCE "SYSTEM")
resolve_dependency(xsimd)
# TODO: Don't use global includes but rather target_include_directories
include_directories(SYSTEM ${XSIMD_INCLUDE_DIR})
@@ -1,32 +0,0 @@
--- ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h.orig 2023-01-18 16:35:03.398700052 -0500
+++ ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h 2023-01-18 16:37:55.882677965 -0500
@@ -183,20 +183,20 @@
// note: 'if' chain, as hard to consistently (on all compilers) avoid some
// warnings for a switch plus multiple return paths
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_usable) {
- return format_to(ctx.out(),
- "{{shard-not-usable:{}}}",
- as_auth.error_text);
+ return fmt::format_to(ctx.out(),
+ "{{shard-not-usable:{}}}",
+ as_auth.error_text.c_str());
}
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_found) {
- return format_to(ctx.out(), "{{shard-not-found}}");
+ return fmt::format_to(ctx.out(), "{{shard-not-found}}");
}
- return format_to(ctx.out(),
- "{{shard-usable: soid:{} {{txt:{}}} }}",
- as_auth.oi.soid,
- as_auth.error_text);
+ return fmt::format_to(ctx.out(),
+ "{{shard-usable: soid:{} {{txt:{}}} }}",
+ as_auth.oi.soid,
+ as_auth.error_text.c_str());
} else {
- return format_to(
+ return fmt::format_to(
ctx.out(),
"usable:{} soid:{} {{txt:{}}}",
(as_auth.possible_auth == shard_as_auth_t::usable_t::usable) ? "yes"
@@ -1,199 +0,0 @@
--- ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc.orig 2023-02-08 16:01:53.800709761 -0500
+++ ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc 2023-02-11 05:06:14.954254050 -0500
@@ -507,11 +507,11 @@
}
}
- dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {}",
+ dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {:p}",
__func__,
ret_auth.auth_shard,
ho,
- ret_auth.auth_oi)
+ (void*)&ret_auth.auth_oi)
<< dendl;
return ret_auth;
@@ -1171,23 +1171,23 @@
if (auth.digest_present && candidate.digest_present &&
auth.digest != candidate.digest) {
- format_to(std::back_inserter(out),
- "data_digest {:#x} != data_digest {:#x} from shard {}",
- candidate.digest,
- auth.digest,
- auth_shard);
+ fmt::format_to(std::back_inserter(out),
+ "data_digest {:#x} != data_digest {:#x} from shard {}",
+ candidate.digest,
+ auth.digest,
+ auth_shard);
error = true;
obj_result.set_data_digest_mismatch();
}
if (auth.omap_digest_present && candidate.omap_digest_present &&
auth.omap_digest != candidate.omap_digest) {
- format_to(std::back_inserter(out),
- "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
- sep(error),
- candidate.omap_digest,
- auth.omap_digest,
- auth_shard);
+ fmt::format_to(std::back_inserter(out),
+ "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
+ sep(error),
+ candidate.omap_digest,
+ auth.omap_digest,
+ auth_shard);
obj_result.set_omap_digest_mismatch();
}
@@ -1195,24 +1195,24 @@
if (m_is_replicated) {
if (auth_oi.is_data_digest() && candidate.digest_present &&
auth_oi.data_digest != candidate.digest) {
- format_to(std::back_inserter(out),
- "{}data_digest {:#x} != data_digest {:#x} from auth oi {}",
- sep(error),
- candidate.digest,
- auth_oi.data_digest,
- auth_oi);
+ fmt::format_to(std::back_inserter(out),
+ "{}data_digest {:#x} != data_digest {:#x} from auth oi {:p}",
+ sep(error),
+ candidate.digest,
+ auth_oi.data_digest,
+ (void*)&auth_oi);
shard_result.set_data_digest_mismatch_info();
}
// for replicated:
if (auth_oi.is_omap_digest() && candidate.omap_digest_present &&
auth_oi.omap_digest != candidate.omap_digest) {
- format_to(std::back_inserter(out),
- "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {}",
- sep(error),
- candidate.omap_digest,
- auth_oi.omap_digest,
- auth_oi);
+ fmt::format_to(std::back_inserter(out),
+ "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {:p}",
+ sep(error),
+ candidate.omap_digest,
+ auth_oi.omap_digest,
+ (void*)&auth_oi);
shard_result.set_omap_digest_mismatch_info();
}
}
@@ -1241,7 +1241,7 @@
auth_bl.push_back(auth_attr->second);
if (!can_bl.contents_equal(auth_bl)) {
- format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
+ fmt::format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
obj_result.set_object_info_inconsistency();
}
}
@@ -1261,7 +1261,7 @@
auth_bl.push_back(auth_attr->second);
if (!can_bl.contents_equal(auth_bl)) {
- format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
+ fmt::format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
obj_result.set_snapset_inconsistency();
}
}
@@ -1284,7 +1284,7 @@
auth_bl.push_back(auth_hi->second);
if (!can_bl.contents_equal(auth_bl)) {
- format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
+ fmt::format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
obj_result.set_hinfo_inconsistency();
}
}
@@ -1296,22 +1296,22 @@
uint64_t oi_size = logical_to_ondisk_size(auth_oi.size);
if (oi_size != candidate.size) {
- format_to(std::back_inserter(out),
- "{}size {} != size {} from auth oi {}",
- sep(error),
- candidate.size,
- oi_size,
- auth_oi);
+ fmt::format_to(std::back_inserter(out),
+ "{}size {} != size {} from auth oi {:p}",
+ sep(error),
+ candidate.size,
+ oi_size,
+ (void*)&auth_oi);
shard_result.set_size_mismatch_info();
}
if (auth.size != candidate.size) {
- format_to(std::back_inserter(out),
- "{}size {} != size {} from shard {}",
- sep(error),
- candidate.size,
- auth.size,
- auth_shard);
+ fmt::format_to(std::back_inserter(out),
+ "{}size {} != size {} from shard {}",
+ sep(error),
+ candidate.size,
+ auth.size,
+ auth_shard);
obj_result.set_size_mismatch();
}
@@ -1320,11 +1320,11 @@
if (candidate.size > m_conf->osd_max_object_size &&
!obj_result.has_size_too_large()) {
- format_to(std::back_inserter(out),
- "{}size {} > {} is too large",
- sep(error),
- candidate.size,
- m_conf->osd_max_object_size);
+ fmt::format_to(std::back_inserter(out),
+ "{}size {} > {} is too large",
+ sep(error),
+ candidate.size,
+ m_conf->osd_max_object_size);
obj_result.set_size_too_large();
}
@@ -1340,10 +1340,10 @@
auto cand = candidate.attrs.find(k);
if (cand == candidate.attrs.end()) {
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
obj_result.set_attr_name_mismatch();
} else if (cand->second.cmp(v)) {
- format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
+ fmt::format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
obj_result.set_attr_value_mismatch();
}
}
@@ -1356,7 +1356,7 @@
auto in_auth = auth.attrs.find(k);
if (in_auth == auth.attrs.end()) {
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
obj_result.set_attr_name_mismatch();
}
}
@@ -1823,8 +1823,7 @@
SnapMapReaderI& snaps_getter)
{
using result_t = Scrub::SnapMapReaderI::result_t;
- dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset)
- << dendl;
+ // dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset) << dendl;
auto p = snapset.clone_snaps.find(hoid.snap);
if (p == snapset.clone_snaps.end()) {
@@ -1,151 +0,0 @@
--- ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h.orig 2023-04-05 11:09:51.000000000 -0400
+++ ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h 2023-04-21 16:22:26.665067333 -0400
@@ -15,7 +15,7 @@
#include <mutex>
#include "rocksdb/version.h"
-#include "rocksdb/cache.h"
+#include "rocksdb/advanced_cache.h"
#include "include/ceph_hash.h"
#include "common/PriorityCache.h"
//#include "hash.h"
@@ -26,7 +26,8 @@
namespace rocksdb_cache {
-using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
+// using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
+using DeleterFn = void (*)(rocksdb::Cache::ObjectPtr obj, rocksdb::MemoryAllocator* allocator);
// Single cache shard interface.
class CacheShard {
@@ -34,11 +35,19 @@
CacheShard() = default;
virtual ~CacheShard() = default;
- virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
- size_t charge,
- DeleterFn deleter,
- rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0;
+ virtual rocksdb::Status Insert(const rocksdb::Slice& key,
+ rockdb::ObjectPtr obj,
+ const rocksdb::CacheItemHelper* helper,
+ size_t charge,
+ rocksdb:Handle** handle = nullptr,
+ Rocksdb::Priority priority = Rocksdb::Priority::LOW)
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key,
+ const rocksdb::CacheItemHelper* helper = nullptr,
+ rocksdb::CreateContext* create_context = nullptr,
+ rocksdb::Priority priority = rocksdb::Priority::LOW,
+ bool wait = true,
+ rocksdb::Statistics* stats = nullptr);
+
virtual bool Ref(rocksdb::Cache::Handle* handle) = 0;
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) = 0;
virtual void Erase(const rocksdb::Slice& key, uint32_t hash) = 0;
@@ -68,8 +77,8 @@
virtual const char* Name() const override = 0;
virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
DeleterFn,
- rocksdb::Cache::Handle** handle, Priority priority) override;
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
+ rocksdb::Cache::Handle** handle, Priority priority);
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats);
virtual bool Ref(rocksdb::Cache::Handle* handle) override;
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
virtual void* Value(Handle* handle) override = 0;
@@ -84,14 +93,17 @@
virtual size_t GetPinnedUsage() const override;
virtual size_t GetCharge(Handle* handle) const = 0;
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
- virtual DeleterFn GetDeleter(Handle* handle) const override;
+ virtual DeleterFn GetDeleter(Handle* handle) const;
#endif
virtual void DisownData() override = 0;
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual const rocksdb::CacheItemHelper* GetCacheItemHelper(rocksdb::Cache::Handle* handle) const;
virtual void ApplyToAllEntries(
- const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
- DeleterFn deleter)>& callback,
- const ApplyToAllEntriesOptions& opts) override;
+ const std::function<void(const rocksdb::Slice& key,
+ rocksdb::Cache::ObjectPtr obj,
+ size_t charge,
+ const rocksdb::CacheItemHelper* helper)>& callback,
+ const rocksdb::ApplyToAllEntriesOptions& opts);
#else
virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
bool thread_safe) override;
--- ceph-17.2.6/src/kv/RocksDBStore.cc.orig 2023-04-05 11:09:51.000000000 -0400
+++ ceph-17.2.6/src/kv/RocksDBStore.cc 2023-04-20 16:19:29.280669881 -0400
@@ -903,6 +903,19 @@
// base_name - name of column without shard suffix: "-"+number
// options - additional options to apply
// cf_opt - column family options to update
+
+rocksdb::Status GetColumnFamilyOptionsFromMap(
+ const rocksdb::ColumnFamilyOptions& base_options,
+ const std::unordered_map<std::string, std::string>& opts_map,
+ rocksdb::ColumnFamilyOptions* new_options, bool input_strings_escaped,
+ bool ignore_unknown_options) {
+ rocksdb::ConfigOptions config_options;
+ config_options.ignore_unknown_options = ignore_unknown_options;
+ config_options.input_strings_escaped = input_strings_escaped;
+ return rocksdb::GetColumnFamilyOptionsFromMap(config_options, base_options, opts_map,
+ new_options);
+}
+
int RocksDBStore::update_column_family_options(const std::string& base_name,
const std::string& more_options,
rocksdb::ColumnFamilyOptions* cf_opt)
@@ -916,7 +929,7 @@
<< " options=" << more_options << dendl;
return r;
}
- status = rocksdb::GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt);
+ status = GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt, false, false);
if (!status.ok()) {
dout(5) << __func__ << " invalid column family optionsp; column family="
<< base_name << " options=" << more_options << dendl;
@@ -937,6 +950,20 @@
return 0;
}
+rocksdb::Status GetBlockBasedTableOptionsFromMap(
+ const rocksdb::BlockBasedTableOptions& table_options,
+ const std::unordered_map<std::string, std::string>& opts_map,
+ rocksdb::BlockBasedTableOptions* new_table_options, bool input_strings_escaped,
+ bool ignore_unknown_options) {
+ rocksdb::ConfigOptions config_options;
+ config_options.input_strings_escaped = input_strings_escaped;
+ config_options.ignore_unknown_options = ignore_unknown_options;
+ config_options.invoke_prepare_options = false;
+
+ return rocksdb::GetBlockBasedTableOptionsFromMap(config_options, table_options,
+ opts_map, new_table_options);
+}
+
int RocksDBStore::apply_block_cache_options(const std::string& column_name,
const std::string& block_cache_opt,
rocksdb::ColumnFamilyOptions* cf_opt)
@@ -981,7 +1008,7 @@
}
rocksdb::BlockBasedTableOptions column_bbt_opts;
- status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts);
+ status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts, false, false);
if (!status.ok()) {
dout(5) << __func__ << " invalid block cache options; column=" << column_name
<< " options=" << block_cache_opt << dendl;
--- ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h.orig 2023-04-21 10:11:00.180387609 -0400
+++ ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h 2023-04-21 10:17:15.527816193 -0400
@@ -121,7 +121,7 @@
void Free() {
ceph_assert((refs == 1 && InCache()) || (refs == 0 && !InCache()));
if (deleter) {
- (*deleter)(key(), value);
+ (*deleter)(this, nullptr);
}
delete[] key_data;
delete this;
-61
View File
@@ -1,61 +0,0 @@
--- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc.orig 2023-03-14 18:46:02.037195570 -0400
+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc 2023-03-14 18:55:14.446438244 -0400
@@ -39,11 +39,13 @@
const auto& value = header->value();
if (field == beast::http::field::content_length) {
- env.set("CONTENT_LENGTH", value.to_string());
+ std::string scratch{value.data(), value.size()};
+ env.set("CONTENT_LENGTH", scratch.c_str());
continue;
}
if (field == beast::http::field::content_type) {
- env.set("CONTENT_TYPE", value.to_string());
+ std::string scratch{value.data(), value.size()};
+ env.set("CONTENT_TYPE", scratch.c_str());
continue;
}
@@ -62,26 +64,37 @@
}
*dest = '\0';
- env.set(buf, value.to_string());
+ std::string scratch{value.data(), value.size()};
+ env.set(buf, scratch.c_str());
}
int major = request.version() / 10;
int minor = request.version() % 10;
env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
- env.set("REQUEST_METHOD", request.method_string().to_string());
+ {
+ std::string scratch {request.method_string().data(),request.method_string().size()};
+ env.set("REQUEST_METHOD", scratch.c_str());
+ }
// split uri from query
auto uri = request.target();
auto pos = uri.find('?');
if (pos != uri.npos) {
auto query = uri.substr(pos + 1);
- env.set("QUERY_STRING", query.to_string());
+ std::string scratch{query.data(), query.size()};
+ env.set("QUERY_STRING", scratch.c_str());
uri = uri.substr(0, pos);
}
- env.set("SCRIPT_URI", uri.to_string());
+ {
+ std::string scratch {uri.data(), uri.size()};
+ env.set("SCRIPT_URI", scratch.c_str());
+ }
- env.set("REQUEST_URI", request.target().to_string());
+ {
+ std::string scratch {request.target().data(), request.target().size()};
+ env.set("REQUEST_URI", scratch.c_str());
+ }
char port_buf[16];
snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
-37
View File
@@ -1,37 +0,0 @@
diff --git a/src/common/dout.h b/src/common/dout.h
index 4cd60efff8fef..db68a042a7f1b 100644
--- a/src/common/dout.h
+++ b/src/common/dout.h
@@ -144,17 +144,24 @@ struct is_dynamic<dynamic_marker_t<T>> : public std::true_type {};
#else
#define dout_impl(cct, sub, v) \
do { \
- const bool should_gather = [&](const auto cctX) { \
- if constexpr (ceph::dout::is_dynamic<decltype(sub)>::value || \
- ceph::dout::is_dynamic<decltype(v)>::value) { \
+ const bool should_gather = [&](const auto cctX, auto sub_, auto v_) { \
+ /* The check is performed on `sub_` and `v_` to leverage the C++'s \
+ * guarantee on _discarding_ one of blocks of `if constexpr`, which \
+ * includes also the checks for ill-formed code (`should_gather<>` \
+ * must not be feed with non-const expresions), BUT ONLY within \
+ * a template (thus the generic lambda) and under the restriction \
+ * it's dependant on a parameter of this template). \
+ * GCC prior to v14 was not enforcing these restrictions. */ \
+ if constexpr (ceph::dout::is_dynamic<decltype(sub_)>::value || \
+ ceph::dout::is_dynamic<decltype(v_)>::value) { \
return cctX->_conf->subsys.should_gather(sub, v); \
} else { \
- /* The parentheses are **essential** because commas in angle \
- * brackets are NOT ignored on macro expansion! A language's \
- * limitation, sorry. */ \
- return (cctX->_conf->subsys.template should_gather<sub, v>()); \
+ constexpr auto sub_helper = static_cast<decltype(sub_)>(sub); \
+ constexpr auto v_helper = static_cast<decltype(v_)>(v); \
+ return cctX->_conf->subsys.template should_gather<sub_helper, \
+ v_helper>(); \
} \
- }(cct); \
+ }(cct, sub, v); \
\
if (should_gather) { \
ceph::logging::MutableEntry _dout_e(v, sub); \
+41
View File
@@ -0,0 +1,41 @@
From f5d3e9146d9ceb12858bc94d60090bd851b1c088 Mon Sep 17 00:00:00 2001
From: Adam Emerson <aemerson@redhat.com>
Date: Wed, 20 Dec 2023 13:51:21 -0500
Subject: [PATCH] test/neorados: Use two fewer GTest internals
To get coroutine tests working, I used some internals. Two of these
are no longer available in newer versions. Since they can be
implemented with regular old C++ features, use those.
This fixes an FTBFS on Fedora Rawhide introduced in
`35231f7251ed70d8d817ee7e727d9763669d101f`.
Signed-off-by: Adam Emerson <aemerson@redhat.com>
---
src/test/neorados/common_tests.h | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/test/neorados/common_tests.h b/src/test/neorados/common_tests.h
index 9610f08f643f3..396432e417e84 100644
--- a/src/test/neorados/common_tests.h
+++ b/src/test/neorados/common_tests.h
@@ -391,10 +391,14 @@ class NeoRadosECTest : public NeoRadosTestBase {
public: \
GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default; \
~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default; \
- GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \
- test_name)); \
- GTEST_DISALLOW_MOVE_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \
- test_name)); \
+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)( \
+ const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&) = delete; \
+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)& operator =( \
+ const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&) = delete; \
+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)( \
+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&&) = delete; \
+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)& operator =( \
+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&&) = delete; \
\
private: \
boost::asio::awaitable<void> CoTestBody() override; \
+19
View File
@@ -0,0 +1,19 @@
--- ceph-18.2.3/src/mgr/PyModule.cc.orig 2024-06-06 16:31:10.340731851 -0400
+++ ceph-18.2.3/src/mgr/PyModule.cc 2024-06-07 12:58:49.913571410 -0400
@@ -342,6 +342,16 @@
return ceph_module;
}
+// FIXME
+// Removed in Python 3.13 API, but kept for the stable ABI
+#ifdef __cplusplus
+extern "C" {
+#endif
+PyAPI_FUNC(void) PySys_SetPath(const wchar_t *);
+#ifdef __cplusplus
+}
+#endif
+
int PyModule::load(PyThreadState *pMainThreadState)
{
ceph_assert(pMainThreadState != nullptr);
+15
View File
@@ -0,0 +1,15 @@
--- ceph-19.1.0/src/common/crc32c_ppc_asm.S.orig 2024-07-10 10:55:06.255480790 -0400
+++ ceph-19.1.0/src/common/crc32c_ppc_asm.S 2024-07-10 12:53:42.844075490 -0400
@@ -54,11 +54,8 @@
/* byte reverse permute constant */
.octa 0x0F0E0D0C0B0A09080706050403020100
-#ifdef CRC32_CONSTANTS_HEADER
-#include CRC32_CONSTANTS_HEADER
-#else
+#define __ASSEMBLY__
#include "crc32c_ppc_constants.h"
-#endif
.text
+21
View File
@@ -0,0 +1,21 @@
--- ceph-19.1.0/src/cpp_redis/CMakeLists.txt.orig 2024-07-11 15:16:22.487082035 -0400
+++ ceph-19.1.0/src/cpp_redis/CMakeLists.txt 2024-07-11 15:17:57.226534456 -0400
@@ -174,6 +174,7 @@
set_target_properties(${PROJECT} PROPERTIES COMPILE_DEFINITIONS "__CPP_REDIS_USE_CUSTOM_TCP_CLIENT=${USE_CUSTOM_TCP_CLIENT}")
endif(USE_CUSTOM_TCP_CLIENT)
+install(TARGETS ${PROJECT} DESTINATION ${CMAKE_INSTALL_LIBDIR}/ceph)
###
# examples
--- ceph-19.1.0/src/cpp_redis/tacopie/CMakeLists.txt.orig 2024-01-30 21:47:59.000000000 -0500
+++ ceph-19.1.0/src/cpp_redis/tacopie/CMakeLists.txt 2024-07-12 07:37:23.584654640 -0400
@@ -162,6 +162,8 @@
ENDIF(SELECT_TIMEOUT)
+install(TARGETS ${PROJECT} DESTINATION ${CMAKE_INSTALL_LIBDIR}/ceph)
+
###
# examples
###
@@ -0,0 +1,28 @@
--- ceph-19.1.0/src/common/crc32c_ppc_fast_zero_asm.S.orig 2024-07-26 07:18:50.733484175 -0400
+++ ceph-19.1.0/src/common/crc32c_ppc_fast_zero_asm.S 2024-07-26 07:17:48.449531183 -0400
@@ -45,8 +45,10 @@
/* unsigned int barrett_reduction(unsigned long val) */
FUNC_START(barrett_reduction)
- lis r4,.constants@ha
- la r4,.constants@l(r4)
+/* lis r4,.constants@ha */
+/* la r4,.constants@l(r4) */
+ addis r4,r4,.constants@toc@ha
+ addi r4,r4,.constants@toc@l
li r5,16
vxor v1,v1,v1 /* zero v1 */
@@ -83,8 +85,10 @@
/* unsigned int barrett_reduction_reflected(unsigned long val) */
FUNC_START(barrett_reduction_reflected)
- lis r4,.bit_reflected_constants@ha
- la r4,.bit_reflected_constants@l(r4)
+/* lis r4,.bit_reflected_constants@ha */
+/* la r4,.bit_reflected_constants@l(r4) */
+ addis r4,r4,.bit_reflected_constants@toc@ha
+ addi r4,r4,.bit_reflected_constants@toc@l
li r5,16
vxor v1,v1,v1 /* zero v1 */
+55
View File
@@ -0,0 +1,55 @@
diff --git a/src/common/openssl_opts_handler.cc b/src/common/openssl_opts_handler.cc
index 81d0c4786..d9866f197 100644
--- a/src/common/openssl_opts_handler.cc
+++ b/src/common/openssl_opts_handler.cc
@@ -16,7 +16,10 @@
#include <openssl/bio.h>
#include <openssl/conf.h>
+#include <openssl/err.h>
+#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
+#endif
#include <mutex>
#include <vector>
#include <algorithm>
@@ -116,11 +119,13 @@ void load_module(const string &engine_conf)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#ifndef OPENSSL_NO_ENGINE
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
ENGINE_load_builtin_engines();
#pragma clang diagnostic pop
#pragma GCC diagnostic pop
+#endif
if (CONF_modules_load(
conf, nullptr,
diff --git a/src/crypto/openssl/openssl_crypto_accel.cc b/src/crypto/openssl/openssl_crypto_accel.cc
index f99844a38..4944205dd 100644
--- a/src/crypto/openssl/openssl_crypto_accel.cc
+++ b/src/crypto/openssl/openssl_crypto_accel.cc
@@ -14,7 +14,6 @@
#include "crypto/openssl/openssl_crypto_accel.h"
#include <openssl/evp.h>
-#include <openssl/engine.h>
#include "common/debug.h"
// -----------------------------------------------------------------------------
diff --git a/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c b/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c
index fea9e6f98..c7eddb20b 100644
--- a/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c
+++ b/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c
@@ -1744,7 +1744,9 @@ typedef struct SSL_CTX SSL_CTX;
#include <openssl/conf.h>
#include <openssl/crypto.h>
#include <openssl/dh.h>
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
#include <openssl/engine.h>
+#endif
#include <openssl/err.h>
#include <openssl/opensslv.h>
#include <openssl/pem.h>
+16
View File
@@ -0,0 +1,16 @@
--- ceph-19.2.0/src/mds/CMakeLists.txt.orig 2024-12-20 17:15:47.632569537 -0500
+++ ceph-19.2.0/src/mds/CMakeLists.txt 2024-12-20 17:16:48.945481957 -0500
@@ -45,12 +45,11 @@
QuiesceDbManager.cc
QuiesceAgent.cc
MDSRankQuiesce.cc
- BoostUrlImpl.cc
${CMAKE_SOURCE_DIR}/src/common/TrackedOp.cc
${CMAKE_SOURCE_DIR}/src/common/MemoryModel.cc
${CMAKE_SOURCE_DIR}/src/osdc/Journaler.cc
${CMAKE_SOURCE_DIR}/src/mgr/MDSPerfMetricTypes.cc)
add_library(mds STATIC ${mds_srcs})
target_link_libraries(mds PRIVATE
- heap_profiler cpu_profiler osdc ${LUA_LIBRARIES})
+ boost_url heap_profiler cpu_profiler osdc ${LUA_LIBRARIES})
target_include_directories(mds PRIVATE "${LUA_INCLUDE_DIR}")
@@ -0,0 +1,20 @@
--- ceph-19.2.0/src/rocksdb/db/blob/blob_file_meta.h.orig 2025-01-16 08:16:41.762758595 -0500
+++ ceph-19.2.0/src/rocksdb/db/blob/blob_file_meta.h 2025-01-16 08:17:37.172784779 -0500
@@ -10,6 +10,7 @@
#include <memory>
#include <string>
#include <unordered_set>
+#include <cstdint>
#include "rocksdb/rocksdb_namespace.h"
--- ceph-19.2.0/src/rocksdb/include/rocksdb/trace_record.h.orig 2025-01-16 09:04:19.196962397 -0500
+++ ceph-19.2.0/src/rocksdb/include/rocksdb/trace_record.h 2025-01-16 09:04:33.885701684 -0500
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
#include <vector>
+#include <cstdint>
#include "rocksdb/rocksdb_namespace.h"
#include "rocksdb/slice.h"
+257
View File
@@ -0,0 +1,257 @@
--- ceph-19.2.0/src/rgw/driver/posix/zpp_bits.h.orig 2024-09-18 12:27:51.000000000 -0400
+++ ceph-19.2.0/src/rgw/driver/posix/zpp_bits.h 2025-01-16 14:58:48.471438398 -0500
@@ -2687,8 +2687,12 @@
{
using type = std::remove_cvref_t<decltype(container)>;
using value_type = typename type::value_type;
- constexpr auto is_const = std::is_const_v<
- std::remove_reference_t<decltype(container[0])>>;
+ constexpr auto is_const =
+ std::is_const_v<std::remove_reference_t<value_type>> ||
+ requires {
+ requires std::is_const_v<
+ std::remove_reference_t<decltype(container[0])>>;
+ };
if constexpr (!std::is_void_v<SizeType> &&
(requires(type container) { container.resize(1); } ||
@@ -2827,9 +2831,7 @@
if constexpr (requires { typename type::mapped_type; }) {
using value_type = std::pair<typename type::key_type,
typename type::mapped_type>;
- std::aligned_storage_t<sizeof(value_type),
- alignof(value_type)>
- storage;
+ alignas(value_type) std::byte storage[sizeof(value_type)];
auto object = access::placement_new<value_type>(
std::addressof(storage));
@@ -2843,9 +2845,7 @@
} else {
using value_type = typename type::value_type;
- std::aligned_storage_t<sizeof(value_type),
- alignof(value_type)>
- storage;
+ alignas(value_type) std::byte storage[sizeof(value_type)];
auto object = access::placement_new<value_type>(
std::addressof(storage));
@@ -2903,8 +2903,7 @@
return result;
}
} else {
- std::aligned_storage_t<sizeof(value_type), alignof(value_type)>
- storage;
+ alignas(value_type) std::byte storage[sizeof(value_type)];
auto object =
access::placement_new<value_type>(std::addressof(storage));
@@ -2947,9 +2946,7 @@
}
return serialize_one(*std::get_if<element_type>(&variant));
} else {
- std::aligned_storage_t<sizeof(element_type),
- alignof(element_type)>
- storage;
+ alignas(element_type) std::byte storage[sizeof(element_type)];
auto object = access::placement_new<element_type>(
std::addressof(storage));
@@ -2996,8 +2993,7 @@
return self.serialize_one(
*std::get_if<Types>(&variant));
} else {
- std::aligned_storage_t<sizeof(Types), alignof(Types)>
- storage;
+ alignas(Types) std::byte storage[sizeof(Types)];
auto object = access::placement_new<Types>(
std::addressof(storage));
@@ -3008,6 +3004,7 @@
return result;
}
variant = std::move(*object);
+ return errc{};
}
}...};
@@ -3307,7 +3304,7 @@
ZPP_BITS_INLINE constexpr static auto serialize(auto & serializer,
auto & self)
{
- return serializer.template serialize_one(self.variant, self.id);
+ return serializer.serialize_one(self.variant, self.id);
}
Variant & variant;
@@ -3448,13 +3445,14 @@
}
constexpr explicit value_or_errc(error_type error) :
- m_error(std::forward<decltype(error)>(error))
+ m_error(std::forward<decltype(error)>(error)),
+ m_failure(true)
{
}
constexpr value_or_errc(value_or_errc && other) noexcept
{
- if (other.is_value()) {
+ if (other.success()) {
if constexpr (!std::is_void_v<Type>) {
if constexpr (!std::is_reference_v<Type>) {
::new (std::addressof(m_return_value))
@@ -3752,16 +3750,16 @@
requires(decltype(in.remaining_data()) & data) {
(context.*Function)(data);
}) {
- struct _
+ struct guard
{
decltype(in) archive;
decltype(in.remaining_data()) data;
- constexpr ~_()
+ constexpr ~guard()
{
archive.position() += data.size();
}
- } _{in, in.remaining_data()};
- return (context.*Function)(_.data);
+ } guard{in, in.remaining_data()};
+ return (context.*Function)(guard.data);
} else {
return (context.*Function)();
}
@@ -3776,16 +3774,16 @@
requires(decltype(in.remaining_data()) & data) {
Function(data);
}) {
- struct _
+ struct guard
{
decltype(in) archive;
decltype(in.remaining_data()) data;
- constexpr ~_()
+ constexpr ~guard()
{
archive.position() += data.size();
}
- } _{in, in.remaining_data()};
- return Function(_.data);
+ } guard{in, in.remaining_data()};
+ return Function(guard.data);
} else {
return Function();
}
@@ -5029,9 +5027,7 @@
serialize use();
};
- std::aligned_storage_t<sizeof(value_type),
- alignof(value_type)>
- storage;
+ alignas(value_type) std::byte storage[sizeof(value_type)];
auto object =
access::placement_new<value_type>(std::addressof(storage));
@@ -5111,9 +5107,7 @@
return errc{};
}
} else {
- std::aligned_storage_t<sizeof(value_type),
- alignof(value_type)>
- storage;
+ alignas(value_type) std::byte storage[sizeof(value_type)];
auto object = access::placement_new<value_type>(
std::addressof(storage));
@@ -5382,47 +5376,47 @@
};
auto align = [](auto v, auto a) { return (v + (a - 1)) / a * a; };
- auto h0 = big_endian{0x6a09e667u};
- auto h1 = big_endian{0xbb67ae85u};
- auto h2 = big_endian{0x3c6ef372u};
- auto h3 = big_endian{0xa54ff53au};
- auto h4 = big_endian{0x510e527fu};
- auto h5 = big_endian{0x9b05688cu};
- auto h6 = big_endian{0x1f83d9abu};
- auto h7 = big_endian{0x5be0cd19u};
-
- std::array k{big_endian{0x428a2f98u}, big_endian{0x71374491u},
- big_endian{0xb5c0fbcfu}, big_endian{0xe9b5dba5u},
- big_endian{0x3956c25bu}, big_endian{0x59f111f1u},
- big_endian{0x923f82a4u}, big_endian{0xab1c5ed5u},
- big_endian{0xd807aa98u}, big_endian{0x12835b01u},
- big_endian{0x243185beu}, big_endian{0x550c7dc3u},
- big_endian{0x72be5d74u}, big_endian{0x80deb1feu},
- big_endian{0x9bdc06a7u}, big_endian{0xc19bf174u},
- big_endian{0xe49b69c1u}, big_endian{0xefbe4786u},
- big_endian{0x0fc19dc6u}, big_endian{0x240ca1ccu},
- big_endian{0x2de92c6fu}, big_endian{0x4a7484aau},
- big_endian{0x5cb0a9dcu}, big_endian{0x76f988dau},
- big_endian{0x983e5152u}, big_endian{0xa831c66du},
- big_endian{0xb00327c8u}, big_endian{0xbf597fc7u},
- big_endian{0xc6e00bf3u}, big_endian{0xd5a79147u},
- big_endian{0x06ca6351u}, big_endian{0x14292967u},
- big_endian{0x27b70a85u}, big_endian{0x2e1b2138u},
- big_endian{0x4d2c6dfcu}, big_endian{0x53380d13u},
- big_endian{0x650a7354u}, big_endian{0x766a0abbu},
- big_endian{0x81c2c92eu}, big_endian{0x92722c85u},
- big_endian{0xa2bfe8a1u}, big_endian{0xa81a664bu},
- big_endian{0xc24b8b70u}, big_endian{0xc76c51a3u},
- big_endian{0xd192e819u}, big_endian{0xd6990624u},
- big_endian{0xf40e3585u}, big_endian{0x106aa070u},
- big_endian{0x19a4c116u}, big_endian{0x1e376c08u},
- big_endian{0x2748774cu}, big_endian{0x34b0bcb5u},
- big_endian{0x391c0cb3u}, big_endian{0x4ed8aa4au},
- big_endian{0x5b9cca4fu}, big_endian{0x682e6ff3u},
- big_endian{0x748f82eeu}, big_endian{0x78a5636fu},
- big_endian{0x84c87814u}, big_endian{0x8cc70208u},
- big_endian{0x90befffau}, big_endian{0xa4506cebu},
- big_endian{0xbef9a3f7u}, big_endian{0xc67178f2u}};
+ auto h0 = big_endian{std::uint32_t{0x6a09e667u}};
+ auto h1 = big_endian{std::uint32_t{0xbb67ae85u}};
+ auto h2 = big_endian{std::uint32_t{0x3c6ef372u}};
+ auto h3 = big_endian{std::uint32_t{0xa54ff53au}};
+ auto h4 = big_endian{std::uint32_t{0x510e527fu}};
+ auto h5 = big_endian{std::uint32_t{0x9b05688cu}};
+ auto h6 = big_endian{std::uint32_t{0x1f83d9abu}};
+ auto h7 = big_endian{std::uint32_t{0x5be0cd19u}};
+
+ std::array k{big_endian{std::uint32_t{0x428a2f98u}}, big_endian{std::uint32_t{0x71374491u}},
+ big_endian{std::uint32_t{0xb5c0fbcfu}}, big_endian{std::uint32_t{0xe9b5dba5u}},
+ big_endian{std::uint32_t{0x3956c25bu}}, big_endian{std::uint32_t{0x59f111f1u}},
+ big_endian{std::uint32_t{0x923f82a4u}}, big_endian{std::uint32_t{0xab1c5ed5u}},
+ big_endian{std::uint32_t{0xd807aa98u}}, big_endian{std::uint32_t{0x12835b01u}},
+ big_endian{std::uint32_t{0x243185beu}}, big_endian{std::uint32_t{0x550c7dc3u}},
+ big_endian{std::uint32_t{0x72be5d74u}}, big_endian{std::uint32_t{0x80deb1feu}},
+ big_endian{std::uint32_t{0x9bdc06a7u}}, big_endian{std::uint32_t{0xc19bf174u}},
+ big_endian{std::uint32_t{0xe49b69c1u}}, big_endian{std::uint32_t{0xefbe4786u}},
+ big_endian{std::uint32_t{0x0fc19dc6u}}, big_endian{std::uint32_t{0x240ca1ccu}},
+ big_endian{std::uint32_t{0x2de92c6fu}}, big_endian{std::uint32_t{0x4a7484aau}},
+ big_endian{std::uint32_t{0x5cb0a9dcu}}, big_endian{std::uint32_t{0x76f988dau}},
+ big_endian{std::uint32_t{0x983e5152u}}, big_endian{std::uint32_t{0xa831c66du}},
+ big_endian{std::uint32_t{0xb00327c8u}}, big_endian{std::uint32_t{0xbf597fc7u}},
+ big_endian{std::uint32_t{0xc6e00bf3u}}, big_endian{std::uint32_t{0xd5a79147u}},
+ big_endian{std::uint32_t{0x06ca6351u}}, big_endian{std::uint32_t{0x14292967u}},
+ big_endian{std::uint32_t{0x27b70a85u}}, big_endian{std::uint32_t{0x2e1b2138u}},
+ big_endian{std::uint32_t{0x4d2c6dfcu}}, big_endian{std::uint32_t{0x53380d13u}},
+ big_endian{std::uint32_t{0x650a7354u}}, big_endian{std::uint32_t{0x766a0abbu}},
+ big_endian{std::uint32_t{0x81c2c92eu}}, big_endian{std::uint32_t{0x92722c85u}},
+ big_endian{std::uint32_t{0xa2bfe8a1u}}, big_endian{std::uint32_t{0xa81a664bu}},
+ big_endian{std::uint32_t{0xc24b8b70u}}, big_endian{std::uint32_t{0xc76c51a3u}},
+ big_endian{std::uint32_t{0xd192e819u}}, big_endian{std::uint32_t{0xd6990624u}},
+ big_endian{std::uint32_t{0xf40e3585u}}, big_endian{std::uint32_t{0x106aa070u}},
+ big_endian{std::uint32_t{0x19a4c116u}}, big_endian{std::uint32_t{0x1e376c08u}},
+ big_endian{std::uint32_t{0x2748774cu}}, big_endian{std::uint32_t{0x34b0bcb5u}},
+ big_endian{std::uint32_t{0x391c0cb3u}}, big_endian{std::uint32_t{0x4ed8aa4au}},
+ big_endian{std::uint32_t{0x5b9cca4fu}}, big_endian{std::uint32_t{0x682e6ff3u}},
+ big_endian{std::uint32_t{0x748f82eeu}}, big_endian{std::uint32_t{0x78a5636fu}},
+ big_endian{std::uint32_t{0x84c87814u}}, big_endian{std::uint32_t{0x8cc70208u}},
+ big_endian{std::uint32_t{0x90befffau}}, big_endian{std::uint32_t{0xa4506cebu}},
+ big_endian{std::uint32_t{0xbef9a3f7u}}, big_endian{std::uint32_t{0xc67178f2u}}};
constexpr auto original_message = to_bytes<Object>();
constexpr auto chunk_size = 512 / CHAR_BIT;
+42
View File
@@ -0,0 +1,42 @@
--- ceph-19.2.0/src/googletest/googletest/CMakeLists.txt.orig 2025-01-23 07:43:33.314970694 -0500
+++ ceph-19.2.0/src/googletest/googletest/CMakeLists.txt 2025-01-23 07:44:13.529250429 -0500
@@ -63,6 +63,8 @@
set_up_hermetic_build()
endif()
+option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
+
# These commands only run if this is the main project
if(CMAKE_PROJECT_NAME STREQUAL "gtest" OR CMAKE_PROJECT_NAME STREQUAL "googletest-distribution")
@@ -126,9 +128,9 @@
# are used for other targets, to ensure that gtest can be compiled by a user
# aggressive about warnings.
cxx_library(gtest "${cxx_strict}" src/gtest-all.cc)
-set_target_properties(gtest PROPERTIES VERSION ${GOOGLETEST_VERSION})
+#set_target_properties(gtest PROPERTIES VERSION ${GOOGLETEST_VERSION})
cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
-set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
+#set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
# If the CMake version supports it, attach header directory information
# to the targets for when we are part of a parent build (ie being pulled
# in via add_subdirectory() rather than being a standalone build).
--- ceph-19.2.0/src/googletest/googlemock/CMakeLists.txt.orig 2025-01-23 07:40:52.399853240 -0500
+++ ceph-19.2.0/src/googletest/googlemock/CMakeLists.txt 2025-01-23 07:43:18.466236642 -0500
@@ -54,6 +54,7 @@
# if they are the same (the default).
add_subdirectory("${gtest_dir}" "${gmock_BINARY_DIR}/${gtest_dir}")
+option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
# These commands only run if this is the main project
if(CMAKE_PROJECT_NAME STREQUAL "gmock" OR CMAKE_PROJECT_NAME STREQUAL "googletest-distribution")
@@ -100,7 +101,7 @@
else()
cxx_library(gmock "${cxx_strict}" src/gmock-all.cc)
target_link_libraries(gmock PUBLIC gtest)
- set_target_properties(gmock PROPERTIES VERSION ${GOOGLETEST_VERSION})
+ # set_target_properties(gmock PROPERTIES VERSION ${GOOGLETEST_VERSION})
cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc)
target_link_libraries(gmock_main PUBLIC gmock)
set_target_properties(gmock_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
+11
View File
@@ -0,0 +1,11 @@
--- ceph-19.2.0/src/tracing/CMakeLists.txt.orig 2025-01-23 17:51:43.874162594 -0500
+++ ceph-19.2.0/src/tracing/CMakeLists.txt 2025-01-23 17:54:21.877186735 -0500
@@ -6,6 +6,8 @@
set(header_dir ${working_dir}/tracing)
file(MAKE_DIRECTORY ${header_dir})
+set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu23")
+
add_custom_target(tracepoint_libraries)
file(GLOB tps "*.tp")
@@ -0,0 +1,30 @@
--- ceph-19.2.0/src/test/neorados/common_tests.h.orig 2024-09-18 12:27:51.000000000 -0400
+++ ceph-19.2.0/src/test/neorados/common_tests.h 2025-01-26 19:31:32.545762972 -0500
@@ -47,6 +47,18 @@
#include "gtest/gtest.h"
+#if !defined(GTEST_DISALLOW_COPY_AND_ASSIGN_)
+#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
+ type(type const&) = delete; \
+ type& operator=(type const&) = delete
+#endif
+
+#if !defined(GTEST_DISALLOW_MOVE_AND_ASSIGN_)
+#define GTEST_DISALLOW_MOVE_AND_ASSIGN_(type) \
+ type(type&&) noexcept = delete; \
+ type& operator=(type&&) noexcept = delete
+#endif
+
/// \file test/neorados/common_tests.h
///
/// \brief Tools for testing neorados code
@@ -398,7 +410,7 @@
\
private: \
boost::asio::awaitable<void> CoTestBody() override; \
- static ::testing::TestInfo *const test_info_ GTEST_ATTRIBUTE_UNUSED_; \
+ static ::testing::TestInfo *const test_info_ __attribute__((unused)); \
}; \
\
::testing::TestInfo *const GTEST_TEST_CLASS_NAME_(test_suite_name, \
@@ -0,0 +1,37 @@
From 8c78a22d2cf69892570f635735d9735169b64a75 Mon Sep 17 00:00:00 2001
From: Peter Sabaini <peter.sabaini@canonical.com>
Date: Wed, 11 Sep 2024 16:56:50 +0200
Subject: [PATCH] ceph-volume: fix importlib.metadata compat
The importlib.metadata library removed older shims in releases >5.0.0
where EntryPoints objects use .select() instead of dict-like access.
Fixes: https://tracker.ceph.com/issues/68032
Signed-off-by: Peter Sabaini <peter.sabaini@canonical.com>
---
src/ceph-volume/ceph_volume/main.py | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/ceph-volume/ceph_volume/main.py b/src/ceph-volume/ceph_volume/main.py
index f8eca65ec497c..4f27f429e89e2 100644
--- a/src/ceph-volume/ceph_volume/main.py
+++ b/src/ceph-volume/ceph_volume/main.py
@@ -11,8 +11,16 @@
from importlib.metadata import entry_points
def get_entry_points(group: str): # type: ignore
- return entry_points().get(group, []) # type: ignore
+ eps = entry_points()
+ if hasattr(eps, 'select'):
+ # New importlib.metadata uses .select()
+ return eps.select(group=group)
+ else:
+ # Fallback to older EntryPoints that returns dicts
+ return eps.get(group, []) # type: ignore
+
except ImportError:
+ # Fallback to `pkg_resources` for older versions
from pkg_resources import iter_entry_points as entry_points # type: ignore
def get_entry_points(group: str): # type: ignore
@@ -0,0 +1,53 @@
From 5924df771f850c249396a37a62f97ac242bf2f96 Mon Sep 17 00:00:00 2001
From: Hector Martin <marcan@marcan.st>
Date: Wed, 20 Aug 2025 13:34:08 +0900
Subject: [PATCH 1/2] mgr/dashboard: Make saml2 robust against module load
errors
Loading saml2 can fail due to issues with the xmlsec package (possibly
subinterpreter related):
File "/usr/share/ceph/mgr/dashboard/controllers/saml2.py", line 6, in <module>
from onelogin.saml2.auth import OneLogin_Saml2_Auth
File "/lib/python3.13/site-packages/onelogin/saml2/auth.py", line 12, in <module>
import xmlsec
xmlsec.Error: (100, 'lxml & xmlsec libxml2 library version mismatch')
Instead of taking down the entire dashboard module, treat this exception
like a missing saml2 package.
Signed-off-by: Hector Martin <marcan@marcan.st>
---
src/pybind/mgr/dashboard/controllers/saml2.py | 2 +-
src/pybind/mgr/dashboard/services/sso.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pybind/mgr/dashboard/controllers/saml2.py b/src/pybind/mgr/dashboard/controllers/saml2.py
index c11b18a27bc7..e859f558cdc4 100644
--- a/src/pybind/mgr/dashboard/controllers/saml2.py
+++ b/src/pybind/mgr/dashboard/controllers/saml2.py
@@ -8,7 +8,7 @@ try:
from onelogin.saml2.settings import OneLogin_Saml2_Settings
python_saml_imported = True
-except ImportError:
+except Exception:
python_saml_imported = False
from .. import mgr
diff --git a/src/pybind/mgr/dashboard/services/sso.py b/src/pybind/mgr/dashboard/services/sso.py
index 2290e6ea3e15..38910ca4aa34 100644
--- a/src/pybind/mgr/dashboard/services/sso.py
+++ b/src/pybind/mgr/dashboard/services/sso.py
@@ -20,7 +20,7 @@ try:
from onelogin.saml2.settings import OneLogin_Saml2_Settings as Saml2Settings
python_saml_imported = True
-except ImportError:
+except Exception:
python_saml_imported = False
--
2.50.1
@@ -0,0 +1,44 @@
From 76af91b516bb31ae0a79f55f315bef2c2105a06e Mon Sep 17 00:00:00 2001
From: Nizamudeen A <nia@redhat.com>
Date: Thu, 26 Jun 2025 12:55:22 +0530
Subject: [PATCH 2/2] mgr/dashboard: catch protobuf error due to mismatch in
version
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit acb0f19c4a50b2ea68f328a61a14a2da06be298b)
Conflicts:
src/pybind/mgr/dashboard/services/nvmeof_client.py
- only kept relavant portion applicable for squid
---
src/pybind/mgr/dashboard/services/nvmeof_client.py | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/pybind/mgr/dashboard/services/nvmeof_client.py b/src/pybind/mgr/dashboard/services/nvmeof_client.py
index e0ea6d1e48b3..be2b5edbaa52 100644
--- a/src/pybind/mgr/dashboard/services/nvmeof_client.py
+++ b/src/pybind/mgr/dashboard/services/nvmeof_client.py
@@ -1,3 +1,5 @@
+# pylint: disable=unexpected-keyword-arg
+
import functools
import logging
from collections.abc import Iterable
@@ -9,6 +11,14 @@ from .nvmeof_conf import NvmeofGatewaysConfig
logger = logging.getLogger("nvmeof_client")
try:
+ # if the protobuf version is newer than what we generated with
+ # proto file import will fail (because of differences between what's
+ # available in centos and ubuntu).
+ # this "hack" should be removed once we update both the
+ # distros; centos and ubuntu.
+ import os
+ os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "python"
+
import grpc # type: ignore
import grpc._channel # type: ignore
from google.protobuf.message import Message # type: ignore
--
2.50.1
@@ -0,0 +1,152 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Max R. Carrara" <m.carrara@proxmox.com>
Date: Wed, 16 Jul 2025 13:14:39 +0200
Subject: [PATCH 58/59] pybind/mgr/restful: provide workaround for PyO3
ImportError
Move the self-signed cert generation into a separate module
inside python-common/ceph and run the module in a separate Python
process.
This provides a workaround for the ImportError thrown by PyO3 when
the `restful` module is loaded in the context of multiple Python
sub-interpreters being present. In particular, the ImportError is
thrown by the `crypto` module of the `OpenSSL` package.
Inspired by an upstream PR [0].
[0]: https://github.com/ceph/ceph/pull/62951
Signed-off-by: Max R. Carrara <m.carrara@proxmox.com>
---
src/pybind/mgr/restful/module.py | 24 +++------
src/python-common/ceph/_crypto_wrap.py | 69 ++++++++++++++++++++++++++
2 files changed, 76 insertions(+), 17 deletions(-)
create mode 100644 src/python-common/ceph/_crypto_wrap.py
diff --git a/src/pybind/mgr/restful/module.py b/src/pybind/mgr/restful/module.py
index 0f8c78e0bd8..7f93c41f1e6 100644
--- a/src/pybind/mgr/restful/module.py
+++ b/src/pybind/mgr/restful/module.py
@@ -7,6 +7,7 @@ import json
import time
import errno
import inspect
+import subprocess
import tempfile
import threading
import traceback
@@ -19,7 +20,6 @@ from . import context
from uuid import uuid4
from pecan import jsonify, make_app
-from OpenSSL import crypto
from pecan.rest import RestController
from werkzeug.serving import make_server, make_ssl_devcert
@@ -401,24 +401,14 @@ class Module(MgrModule):
def create_self_signed_cert(self):
- # create a key pair
- pkey = crypto.PKey()
- pkey.generate_key(crypto.TYPE_RSA, 2048)
-
- # create a self-signed cert
- cert = crypto.X509()
- cert.get_subject().O = "IT"
- cert.get_subject().CN = "ceph-restful"
- cert.set_serial_number(int(uuid4()))
- cert.gmtime_adj_notBefore(0)
- cert.gmtime_adj_notAfter(10*365*24*60*60)
- cert.set_issuer(cert.get_subject())
- cert.set_pubkey(pkey)
- cert.sign(pkey, 'sha512')
+ cmd = ["python3", "-m", "ceph._crypto_wrap", "create_self_signed_cert"]
+
+ response = subprocess.run(cmd, capture_output=True, check=True)
+ response_obj = json.loads(response.stdout)
return (
- crypto.dump_certificate(crypto.FILETYPE_PEM, cert),
- crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)
+ response_obj["cert"].encode("utf-8"),
+ response_obj["key"].encode("utf-8"),
)
diff --git a/src/python-common/ceph/_crypto_wrap.py b/src/python-common/ceph/_crypto_wrap.py
new file mode 100644
index 00000000000..16a19a5345e
--- /dev/null
+++ b/src/python-common/ceph/_crypto_wrap.py
@@ -0,0 +1,69 @@
+"""CLI wrapper for cryptographic functions of the :mod:`restful` module.
+
+To be called via :func:`subprocess.run()` as a workaround for
+:class:`ImportError`s related to PyO3's current lack of sub-interpreter
+support.
+
+Note:
+ Since this module is installed as part of the ``ceph`` package,
+ it should be called like so::
+
+ python3 -m ceph._crypto_wrap create_self_signed_cert
+"""
+
+import argparse
+import sys
+import json
+
+from argparse import Namespace
+from typing import Any
+from uuid import uuid4
+
+from OpenSSL import crypto
+
+
+def _respond(data: dict[str, Any]) -> None:
+ json.dump(data, sys.stdout)
+ sys.stdout.flush()
+
+
+def create_self_signed_cert(args: Namespace) -> None:
+ cert_key_pair = _create_self_signed_cert()
+ _respond(cert_key_pair)
+
+
+def _create_self_signed_cert() -> dict[str, str]:
+ # create a key pair
+ pubkey = crypto.PKey()
+ pubkey.generate_key(crypto.TYPE_RSA, 2048)
+
+ # create a self-signed cert
+ cert = crypto.X509()
+ cert.get_subject().O = "IT"
+ cert.get_subject().CN = "ceph-restful"
+ cert.set_serial_number(int(uuid4()))
+ cert.gmtime_adj_notBefore(0)
+ cert.gmtime_adj_notAfter(10 * 365 * 24 * 60 * 60)
+ cert.set_issuer(cert.get_subject())
+ cert.set_pubkey(pubkey)
+ cert.sign(pubkey, "sha512")
+
+ return {
+ "cert": crypto.dump_certificate(crypto.FILETYPE_PEM, cert).decode(),
+ "key": crypto.dump_privatekey(crypto.FILETYPE_PEM, pubkey).decode(),
+ }
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(prog="_crypto_wrap.py")
+ subparsers = parser.add_subparsers(required=True)
+
+ parser_cssc = subparsers.add_parser("create_self_signed_cert")
+ parser_cssc.set_defaults(func=create_self_signed_cert)
+
+ args = parser.parse_args()
+ args.func(args)
+
+
+if __name__ == "__main__":
+ main()
@@ -0,0 +1,56 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Max R. Carrara" <m.carrara@proxmox.com>
Date: Wed, 16 Jul 2025 16:31:43 +0200
Subject: [PATCH 59/59] mgr: fix module import by making NOTIFY_TYPES in py
modules optional
If NOTIFY_TYPES isn't an attribute of the passed class, the Python
(sub-)interpreter raises an AttributeError that must be handled or cleared
explicitly via the Python C-API. Unfortunately, this isn't done here,
which means that the exception sticks around until handled.
This caused a call to PyModule::load_subclass_of() to fail and
incorrectly report the AttributeError as cause.
Checking whether the class has NOTIFY_TYPES as attribute in the first
place fixes this.
Note that there's an upstream PR [0] that wasn't backported that aimed
to fix this, but does so incorrectly, as the exception is still not
cleared there. The warnings regarding NOTIFY_TYPES missing also occurs
on Reef but doesn't cause any module imports to fail there. As the
affected Ceph code has stayed mostly the same between bookworm and
trixie releases, this suggests that some behavior between Python 3.11
and 3.13 likely changed.
Either way, avoiding the AttributeError altogether fixes this.
[0]: https://github.com/ceph/ceph/pull/57106
Signed-off-by: Max R. Carrara <m.carrara@proxmox.com>
---
src/mgr/PyModule.cc | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/mgr/PyModule.cc b/src/mgr/PyModule.cc
index 084cf3ffc1e..e6fd269dca5 100644
--- a/src/mgr/PyModule.cc
+++ b/src/mgr/PyModule.cc
@@ -513,11 +513,13 @@ int PyModule::register_options(PyObject *cls)
int PyModule::load_notify_types()
{
- PyObject *ls = PyObject_GetAttrString(pClass, "NOTIFY_TYPES");
- if (ls == nullptr) {
- derr << "Module " << get_name() << " has missing NOTIFY_TYPES member" << dendl;
- return -EINVAL;
+ if (!PyObject_HasAttrString(pClass, "NOTIFY_TYPES")) {
+ dout(10) << "Module " << get_name() << " has no NOTIFY_TYPES member" << dendl;
+ return 0;
}
+
+ PyObject *ls = PyObject_GetAttrString(pClass, "NOTIFY_TYPES");
+
if (!PyObject_TypeCheck(ls, &PyList_Type)) {
// Relatively easy mistake for human to make, e.g. defining COMMANDS
// as a {} instead of a []
-58
View File
@@ -1,58 +0,0 @@
commit f9aea9105b6c1a8d7bff0ec0675f84f2ffb1db6f
Author: Florian Weimer <fweimer@redhat.com>
Date: Wed Dec 20 14:16:19 2023 +0100
tracing: Fix C type errors in librados tracing
This fixes type errors like this:
In file included from /usr/include/lttng/tracepoint-event.h:69,
from …-build/include/tracing/librados.h:4143,
from …/src/tracing/librados.c:6
:
…-build/include/tracing/librados.h:
In function lttng_ust__event_probe__librados___rados_mon_command_exit:
…-build/include/tracing/librados.h:477:9: error: initialization of size_t {aka long unsigned int} from size_t * {aka long unsigned int *} makes integer from pointer without a cast
477 | ceph_ctf_integerp(size_t, outslen, outslen)
| ^~~~~~~~~~~~~~~~~
GCC 14 will likely treat these type mismatches as an error
and fail the build.
Signed-off-by: Florian Weimer <fweimer@redhat.com>
diff --git a/src/tracing/librados.tp b/src/tracing/librados.tp
index 8b5e78ef15..8e116124b8 100644
--- a/src/tracing/librados.tp
+++ b/src/tracing/librados.tp
@@ -2628,7 +2628,7 @@ TRACEPOINT_EVENT(librados, rados_watch3_enter,
TP_FIELDS(
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
ctf_string(oid, oid)
- ctf_integer_hex(uint64_t, phandle, phandle)
+ ctf_integer_hex(uint64_t*, phandle, phandle)
ctf_integer_hex(rados_watchcb2_t, callback, callback)
ctf_integer(uint32_t, timeout, timeout)
ctf_integer_hex(void*, arg, arg)
@@ -2658,7 +2658,7 @@ TRACEPOINT_EVENT(librados, rados_aio_watch2_enter,
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
ctf_string(oid, oid)
ctf_integer_hex(rados_completion_t, completion, completion)
- ctf_integer_hex(uint64_t, phandle, phandle)
+ ctf_integer_hex(uint64_t*, phandle, phandle)
ctf_integer_hex(rados_watchcb2_t, callback, callback)
ctf_integer(uint32_t, timeout, timeout)
ctf_integer_hex(void*, arg, arg)
diff --git a/src/tracing/tracing-common.h b/src/tracing/tracing-common.h
index 3e07f9de8e..03449ab588 100644
--- a/src/tracing/tracing-common.h
+++ b/src/tracing/tracing-common.h
@@ -21,7 +21,7 @@
// type should be an integer type
// val should have type type*
#define ceph_ctf_integerp(type, field, val) \
- ctf_integer(type, field, (val) == NULL ? 0 : (val)) \
+ ctf_integer(type, field, (val) == NULL ? 0 : *(val)) \
ctf_integer(uint8_t, field##_isnull, (val) == NULL)
// val should have type char*
-178
View File
@@ -1,178 +0,0 @@
commit a49d154f4a8e493baf2296a15c7b5c56cd25e993
Author: Florian Weimer <fweimer@redhat.com>
Date: Wed Dec 20 14:59:19 2023 +0100
pybind: Fix C type errors in Cython-generated Python bindings
Several Ceph APIs use bool * types, which correspond to
libcpp.bool * types in Cython. The bint type has an incorrect
size 4 and cannot be used as a replacement.
This prevents a compilation failure with future compilers:
…-build/src/pybind/rbd/rbd.c: In function __pyx_pf_3rbd_3RBD_104namespace_exists:
…-build/src/pybind/rbd/rbd.c:42165:76: error: passing argument 3 of rbd_namespace_exists from incompatible pointer type
42165 | __pyx_v_ret = rbd_namespace_exists(__pyx_v__ioctx, __pyx_v__name, (&__pyx_v__exists));
| ~^~~~~~~~~~~~~~~~~
| |
| int *
In file included from …-build/src/pybind/rbd/rbd.c:1268:
…/src/include/rbd/librbd.h:1496:45: note: expected _Bool * but argument is of type int *
1496 | bool *exists);
| ^
Signed-off-by: Florian Weimer <fweimer@redhat.com>
diff --git a/src/pybind/rbd/c_rbd.pxd b/src/pybind/rbd/c_rbd.pxd
index 885f7bd46a..bda23bbc47 100644
--- a/src/pybind/rbd/c_rbd.pxd
+++ b/src/pybind/rbd/c_rbd.pxd
@@ -2,6 +2,7 @@
from libc.stdint cimport *
from ctime cimport time_t, timespec
+cimport libcpp
cdef extern from "rados/librados.h":
enum:
@@ -525,7 +526,7 @@ cdef extern from "rbd/librbd.h" nogil:
int rbd_snap_unprotect(rbd_image_t image, const char *snap_name)
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
int *is_protected)
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists)
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists)
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit)
int rbd_snap_set_limit(rbd_image_t image, uint64_t limit)
int rbd_snap_get_timestamp(rbd_image_t image, uint64_t snap_id, timespec *timestamp)
@@ -711,7 +712,7 @@ cdef extern from "rbd/librbd.h" nogil:
int rbd_namespace_list(rados_ioctx_t io, char *namespace_names,
size_t *size)
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
- bint *exists)
+ libcpp.bool *exists)
int rbd_pool_init(rados_ioctx_t, bint force)
diff --git a/src/pybind/rbd/mock_rbd.pxi b/src/pybind/rbd/mock_rbd.pxi
index 11872bd814..364f965fba 100644
--- a/src/pybind/rbd/mock_rbd.pxi
+++ b/src/pybind/rbd/mock_rbd.pxi
@@ -3,6 +3,11 @@
from libc.stdint cimport *
from ctime cimport time_t, timespec
+# Make the bool type available as libcpp.bool, for both C and C++.
+cimport libcpp
+cdef extern from "<stdbool.h>":
+ pass
+
cdef nogil:
enum:
_LIBRADOS_SNAP_HEAD "LIBRADOS_SNAP_HEAD"
@@ -637,7 +642,7 @@ cdef nogil:
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
int *is_protected):
pass
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists):
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists):
pass
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit):
pass
@@ -896,7 +901,7 @@ cdef nogil:
size_t *size):
pass
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
- bint *exists):
+ libcpp.bool *exists):
pass
int rbd_pool_init(rados_ioctx_t io, bint force):
pass
diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx
index fcb2fb3470..f59ba23f0f 100644
--- a/src/pybind/rbd/rbd.pyx
+++ b/src/pybind/rbd/rbd.pyx
@@ -23,6 +23,7 @@ from libc cimport errno
from libc.stdint cimport *
from libc.stdlib cimport malloc, realloc, free
from libc.string cimport strdup, memset
+cimport libcpp
try:
from collections.abc import Iterable
@@ -1935,12 +1936,12 @@ class RBD(object):
cdef:
rados_ioctx_t _ioctx = convert_ioctx(ioctx)
const char *_name = name
- bint _exists = False
+ libcpp.bool _exists = False
with nogil:
ret = rbd_namespace_exists(_ioctx, _name, &_exists)
if ret != 0:
raise make_ex(ret, 'error verifying namespace')
- return bool(_exists != 0)
+ return _exists
def namespace_list(self, ioctx):
"""
@@ -3679,12 +3680,12 @@ cdef class Image(object):
name = cstr(name, 'name')
cdef:
char *_name = name
- bint _exists = False
+ libcpp.bool _exists = False
with nogil:
ret = rbd_snap_exists(self.image, _name, &_exists)
if ret != 0:
raise make_ex(ret, 'error getting snapshot exists for %s' % self.name)
- return bool(_exists != 0)
+ return _exists
@requires_not_closed
def get_snap_limit(self):
diff --git a/src/pybind/rgw/mock_rgw.pxi b/src/pybind/rgw/mock_rgw.pxi
index ca893a5bb8..806d4df75d 100644
--- a/src/pybind/rgw/mock_rgw.pxi
+++ b/src/pybind/rgw/mock_rgw.pxi
@@ -1,5 +1,10 @@
# cython: embedsignature=True
+# Make the bool type available as libcpp.bool, for both C and C++.
+cimport libcpp
+cdef extern from "<stdbool.h>":
+ pass
+
cdef nogil:
ctypedef void* librgw_t
@@ -111,8 +116,8 @@ cdef nogil:
int rgw_readdir(rgw_fs *fs,
rgw_file_handle *parent_fh, uint64_t *offset,
- bint (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
- void *cb_arg, bint *eof, uint32_t flags) except? -9000:
+ libcpp.bool (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
+ void *cb_arg, libcpp.bool *eof, uint32_t flags) except? -9000:
pass
int rgw_getattr(rgw_fs *fs,
diff --git a/src/pybind/rgw/rgw.pyx b/src/pybind/rgw/rgw.pyx
index 9bbcdfff58..d210a70bbb 100644
--- a/src/pybind/rgw/rgw.pyx
+++ b/src/pybind/rgw/rgw.pyx
@@ -7,6 +7,7 @@ from cpython cimport PyObject, ref, exc, array
from libc.stdint cimport *
from libc.stdlib cimport malloc, realloc, free
from cstat cimport stat
+cimport libcpp
IF BUILD_DOC:
include "mock_rgw.pxi"
@@ -373,7 +374,7 @@ cdef class LibRGWFS(object):
cdef:
rgw_file_handle *_dir_handler = <rgw_file_handle*>dir_handler.handler
uint64_t _offset = offset
- bint _eof
+ libcpp.bool _eof
uint32_t _flags = flags
with nogil:
ret = rgw_readdir(self.fs, _dir_handler, &_offset, &readdir_cb,
+349 -292
View File
File diff suppressed because it is too large Load Diff
@@ -1,13 +0,0 @@
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
index 2e92132366..3cb1e3d958 100644
--- a/cmake/modules/BuildBoost.cmake
+++ b/cmake/modules/BuildBoost.cmake
@@ -62,7 +62,7 @@ function(do_build_boost version)
else()
list(APPEND boost_features "address-model=32")
endif()
- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
+ set(BOOST_CXXFLAGS "-fPIC -w -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -ftemplate-depth-1024 -fno-new-ttp-matching -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free") # check on arm, etc <---XXX
list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
set(boost_with_libs)
+1 -1
View File
@@ -1 +1 @@
SHA512 (ceph-18.2.3.tar.gz) = 224349dcf531570ba0bde63b952f67d34128d76a24f59c6dade487257fbcee1f31dbf45e14e1716da051a6c016080cfa162a86803e08c23e7da1c52605428903
SHA512 (ceph-19.2.3.tar.gz) = 278101d2df7bed5363b20c2b065d7a7b26252c8164511257e213ffaa58d509015558183de10bc9281bcbe4d9f85244bcac5bba4db9823e28df6a96d0b687d00a