Compare commits

...

179 Commits

Author SHA1 Message Date
Kaleb S. KEITHLEY e0e6facdf7 rebuild with libarrow-23.0.1, use systemd zstd 2026-02-17 15:52:19 -05:00
Kaleb S. KEITHLEY 8b60c56d58 ceph-20.2.1, rebuild with libarrow-23.0.0 2026-02-03 15:14:50 -05:00
Kaleb S. KEITHLEY 592e2c9b0f enable crimson. 2025-12-05 07:59:09 -05:00
Kaleb S. KEITHLEY 26d6d26f06 ceph-20.2.0, rebuild with libarrow-22.0.0 and liborc-2.2.1 2025-11-21 09:52:43 -05:00
Kaleb S. KEITHLEY 7d71639b4e Ceph 20.2.0 GA 2025-11-19 07:36:57 -05:00
Kaleb S. KEITHLEY e75902d234 ceph-20.1.1 RC, rhbz#2403112 2025-10-21 11:21:27 -04:00
Kaleb S. KEITHLEY 3ec6159f93 sync w/ upstream ceph.spec(.in) 2025-10-10 07:48:04 -04:00
Kaleb S. KEITHLEY a650178176 ceph-20.1.1 RC 2025-10-08 13:37:21 -04:00
Yaakov Selkowitz ea40c3bb7c Avoid grpc and xsimd dependencies 2025-09-17 16:18:27 -04:00
Kaleb S. KEITHLEY f1847d7f6b restore sysusers 2025-09-11 07:41:34 -04:00
Kaleb S. KEITHLEY 750b3b453b ceph-20.1.0 RC 2025-09-10 07:12:20 -04:00
Kaleb S. KEITHLEY 802f8f1577 ceph 19.2.3 GA 2025-07-29 09:09:39 -04:00
Kaleb S. KEITHLEY 23b70803bb rebuild with libarrow-20 and liborc-2.1.3 2025-07-15 17:10:45 -04:00
Kaleb S. KEITHLEY b2675de220 rebuild with libarrow-20 and liborc-2.1.3 2025-07-15 16:09:20 -04:00
Kaleb S. KEITHLEY 193306dfeb SPDX license 2025-07-05 11:48:14 -04:00
Yaakov Selkowitz 7db8278855 python 3.14 ready. rhbz#2336913 2025-06-11 18:22:00 -04:00
Kaleb S. KEITHLEY 50d707ffd5 ceph 19.2.2 GA 2025-04-12 17:55:57 -04:00
Kaleb S. KEITHLEY 5e7077ab2c cephadm dependencies (keeping .spec in sync w/ rawhide, f42, etc.) 2025-03-08 09:15:06 -05:00
Kaleb S. KEITHLEY d5ccf482b2 rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
rebuild with cmake-4
2025-03-01 20:40:28 -05:00
Kaleb S. KEITHLEY aa125fe9e2 ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
ceph-19.2.1, rebuild with liborc-2.1.0, libarrow-19.0.0
2025-02-18 11:29:58 -05:00
Kaleb S. KEITHLEY f453b6c2a2 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 18:50:06 -05:00
Kaleb S. KEITHLEY 350d7d15b4 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 13:44:21 -05:00
Kaleb S. KEITHLEY 1f7447f1c4 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 13:22:01 -05:00
Yaakov Selkowitz 8142468937 Remove openssl-devel-engine dependency
https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine
2024-12-19 18:23:48 -05:00
Kaleb S. KEITHLEY bbf510ac9b build in f42-build-side-100844 again 2024-12-19 18:23:48 -05:00
Kaleb S. KEITHLEY 00e585999d and back; ceph-19.2.0 scikit_learn -> scikit-learn rhbz#2327036 2024-12-19 18:23:47 -05:00
Kaleb S. KEITHLEY 482cf69613 ceph-19.2.0, python-scikit-learn -> python-scikit_learn, license 2024-11-14 12:44:49 -05:00
Kaleb S. KEITHLEY 23117e7e95 ceph-19.2.0 GA 2024-09-20 13:36:36 -04:00
Kaleb S. KEITHLEY 17a8c647e1 ceph-19.1.1, revert ppc64le asm change from rawhide rhbz#23093208 2024-09-16 11:42:12 -04:00
Kaleb S. KEITHLEY d98fdfbbe0 ceph-19.1.1, revert ppc64le asm change from rawhide rhbz#23093208 2024-09-05 16:21:37 -04:00
Kaleb S. KEITHLEY be6f88e66c ceph-19.1.1, revert ppc64le asm change from rawhide 2024-09-05 11:17:14 -04:00
Kaleb S. KEITHLEY ccf3a7c3f3 ceph-19.1.1 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-08-29 16:46:09 -04:00
Kaleb S. KEITHLEY 34ef491cc7 ceph-19.1.1 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-08-29 16:33:02 -04:00
Kaleb S. KEITHLEY e3454f0753 add libcpp_redis.so and libtacopie.so to librados2.rpm
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-12 14:35:13 -04:00
Kaleb S. KEITHLEY 720e10cf04 add libcpp_redis.so and libtacopie.so to librados2.rpm
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-12 13:08:47 -04:00
Kaleb S. KEITHLEY cc9865b257 ceph-19.1.0 RC
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-07-11 10:46:03 -04:00
Kaleb S. KEITHLEY f9b5866831 ceph-18.2.3 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-04-30 10:51:41 -04:00
Kaleb S. KEITHLEY cecbd5cbdf ceph-18.2.3 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-04-29 16:19:26 -04:00
Kaleb S. KEITHLEY e8164fa77c rebuild with libarrow-16.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-04-22 19:48:35 -04:00
Kaleb S. KEITHLEY 9c0641baab rebuild with libarrow-15.0.2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-03-19 10:55:33 -04:00
Kaleb S. KEITHLEY 5bc9386587 rebuild with libarrow-15.0.1. (And liborc-2.0.0)
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-03-15 12:05:52 -04:00
Kaleb S. KEITHLEY 22a81f70cc ceph-18.2.2 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-03-08 07:25:29 -05:00
Kaleb S. KEITHLEY 7540adc072 ceph-18.2.2 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-03-07 10:07:42 -05:00
Kaleb S. KEITHLEY 82ef40294e ceph-18.2.2 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-03-07 10:00:44 -05:00
David Abdurachmanov 4321616c47 Add support for riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-03-06 13:14:01 +00:00
Jiri Vanek 977cf2d586 Rebuilt for java-21-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java21
2024-02-27 14:49:18 +01:00
Pete Walter 6bb18287b9 Rebuild for ICU 74 2024-01-31 19:17:02 +00:00
Kaleb S. KEITHLEY 65df1602ea rebuild for libarrow-15.0.0, rhbz#2260552
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-01-26 16:53:55 -05:00
Kaleb S. KEITHLEY 9c5508803e gcc-14
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-01-25 07:31:18 -05:00
Kaleb S. KEITHLEY 4db83e6332 gcc-14
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-01-24 18:50:50 -05:00
Kaleb S. KEITHLEY 1f79e0a0d9 gcc-14
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-01-24 16:06:44 -05:00
Kaleb S. KEITHLEY dc1eeaa798 rebuild for Fedora_40_Mass_Rebuild, gcc-14, and rocksdb-8.10.0,
libarrow-14.0.2

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-01-24 15:46:18 -05:00
Fedora Release Engineering 95d7b57b43 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-23 01:25:53 +00:00
Fedora Release Engineering 4bd0193db5 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 15:15:39 +00:00
Florian Weimer 570bcf896e Backport upstream patches to fix C compatibility issues
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2024-01-15 09:59:34 +01:00
Kaleb S. KEITHLEY 675cabaa42 rebuild with rocksdb-8.10.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2024-01-13 22:16:44 -05:00
Kaleb S. KEITHLEY 2f89f10368 ceph-18.2.1, incorporate changes from *final* 18.2.1 release from
https://download.ceph.com/rpm-18.2.1/el9/SRPMS/ceph-18.2.1-0.el9.src.rpm

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-12-19 11:49:32 -05:00
Kaleb S. KEITHLEY 804d48f233 ceph-18.2.1, incorporate changes from *final* 18.2.1 release from
https://download.ceph.com/rpm-18.2.1/el9/SRPMS/ceph-18.2.1-0.el9.src.rpm

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-12-19 09:16:33 -05:00
Kaleb S. KEITHLEY ae476e040f ceph-18.2.1, rebuild for f40-build-side-76708, w/ libarrow-14.0.1,
and liborc-1.9.2

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-15 19:41:31 -05:00
Kaleb S. KEITHLEY f0e4fa0695 ceph-18.2.1 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-15 13:56:37 -05:00
Kaleb S. KEITHLEY 30fd6bd235 ceph-18.2.1 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-15 10:11:37 -05:00
Kaleb S. KEITHLEY e61e83bf2e Rebuild for gtest 1.14.0 and libarrow 14.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-01 15:52:10 -04:00
Kaleb S. KEITHLEY 1add7973a9 Rebuild for Apache Arrow (libarrow) 14.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-01 14:40:24 -04:00
Kaleb S. KEITHLEY dae4d4a3ac Rebuild for Apache Arrow (libarrow) 14.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-01 13:15:02 -04:00
Kaleb S. KEITHLEY f7b9e58050 Rebuild for Apache Arrow (libarrow) 14.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-01 10:14:23 -04:00
Kaleb S. KEITHLEY 3430d480f2 Rebuild for gtest 1.14.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-11-01 09:08:39 -04:00
Terje Rosten df3c9e92fb Rebuild for gtest 1.14.0 2023-10-31 20:02:10 +01:00
Kaleb S. KEITHLEY 649f961fa0 ceph-18.2.0, rebuild in side tag (f40-build-side-74974)
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-10-05 11:36:47 -04:00
Yaakov Selkowitz 8d07402709 Drop unused re2 dependency 2023-08-24 23:23:25 -04:00
Kaleb S. KEITHLEY 65cecd17e6 ceph-18.2.0 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-08-04 07:56:31 -04:00
Kaleb S. KEITHLEY ed9b5e1f74 ceph-18.2.0 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-08-04 07:49:13 -04:00
Kaleb S. KEITHLEY b57ab57981 ceph-18.1.3 RC4, rebuild with libarrow-13.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-08-02 07:42:32 -04:00
Kaleb S. KEITHLEY 1bf01fccf7 ceph-18.1.3 RC4, rebuild with libarrow-13.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-08-01 18:10:21 -04:00
Kaleb S. KEITHLEY 86f2890240 ceph-18.1.3 RC4
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-07-31 17:23:59 -04:00
Kaleb S. KEITHLEY 93a4fe7597 ceph-18.1.3 RC4
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-07-26 14:00:08 -04:00
Kaleb S. KEITHLEY 1ca647a4b9 ceph-18.1.3 RC4
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-07-26 11:14:27 -04:00
Yaakov Selkowitz d7c22fac82 Merge remote-tracking branch 'origin/rawhide' into eln 2023-07-25 23:10:10 -04:00
Kaleb S. KEITHLEY 88108d8c98 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
revert python3-Cython -> python3dist(cython) < 3~~

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-07-24 14:37:02 -04:00
Kaleb S. KEITHLEY 6f79abf9c3 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
with python3-Cython -> python3dist(cython) < 3~~

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-07-20 18:05:16 -04:00
Fedora Release Engineering 0d1cc731ad Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 15:29:34 +00:00
František Zatloukal 5e76bc0ad4 Rebuilt for ICU 73.2 2023-07-11 23:26:31 +02:00
Yaakov Selkowitz 7cbddd7e8c Client-only build for RHEL/ELN
Only the client components (ceph-common, librados/librbd, and their
Python bindings) are built in RHEL.  This incorporates these changes
into ELN to avoid importing unwanted dependencies and shorten build
times by not building unneeded server components.
2023-07-06 13:44:39 -04:00
Yaakov Selkowitz 6f9f7e2e4a Fix build with Python 3.12
pathfix.py is no longer installed, but this macro is compatible with all
supported versions.
2023-07-06 13:28:46 -04:00
Yaakov Selkowitz 085cd612d4 Fix rocksdb conditional
Use of the system rocksdb is disabled for Fedora and RHEL 10+, not
enabled, because rocksdb there is too new.
2023-07-06 13:21:33 -04:00
Kaleb S. KEITHLEY aa691eb6d2 Rebuilt for Python 3.12
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-07-04 23:44:05 -04:00
Kaleb S. KEITHLEY 468a2c36ab ceph-18.1.2 RC3
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-07-04 23:39:25 -04:00
Kaleb S. KEITHLEY 1980396784 Rebuilt for Python 3.12
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-06-18 14:12:00 -04:00
Kaleb S. KEITHLEY 91dd896847 ceph-18.1.1 RC2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-06-18 13:49:57 -04:00
Kaleb S. KEITHLEY ca81cd2515 Rebuilt for Python 3.12
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-06-18 13:09:10 -04:00
Kaleb S. KEITHLEY 617d537253 ceph-18.1.1 RC2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-06-18 13:07:33 -04:00
Kaleb S. KEITHLEY 35042fccaa Rebuilt for Python 3.12
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-06-15 18:03:55 -04:00
Kaleb S. KEITHLEY c89ec5de2b remove requires for nonexistant libjaeger, rhbz#2215320
sync w/ upstream ceph.spec(.in), sanity check

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-06-15 17:12:00 -04:00
Python Maint 9c5f485aa9 Rebuilt for Python 3.12 2023-06-15 15:34:18 +02:00
Kaleb S. KEITHLEY 4f4defa7e2 ceph-18.1.0 RC1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-06-13 17:29:30 -04:00
Yaakov Selkowitz 1ab48d0e0d Do not use mold in RHEL/ELN builds 2023-06-06 20:33:50 -04:00
Kaleb S. KEITHLEY 9a0799bc61 ceph-17.2.6, use ldconfig and ldconfig_scriptlet macros
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-05-19 10:08:37 -04:00
Kaleb S. KEITHLEY c817d5a04e ceph-17.2.6, log create of global_legacy_options.h
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-05-10 10:56:37 -04:00
Kaleb S. KEITHLEY 0e8a2ef902 ceph-17.2.6, rebuild with libarrow-12.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-05-01 10:20:21 -04:00
Kaleb S. KEITHLEY d3ad3a08bd ceph-17.2.6, rebuild boost asm with IBT, SHSTK (librgw.so)
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-04-30 19:18:51 -04:00
Kaleb S. KEITHLEY dcf07e8b7f ceph-17.2.6, rebuild boost with -fcf-protection
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-04-28 09:09:35 -04:00
Kaleb S. KEITHLEY dbd2b71d9d ceph-17.2.6, rebuild boost with -fcf-protection
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-04-28 07:51:05 -04:00
Kaleb S. KEITHLEY 2cc4dd5e37 ceph-17.2.6, rebuild boost with -fcf-protection
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-04-27 19:28:57 -04:00
Kaleb S. KEITHLEY e5f1594856 ceph-17.2.6, rebuild with bundled rocksdb until ready for rocksdb-8.x
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-04-22 10:08:11 -04:00
Kaleb S. KEITHLEY 3d4788fc3e patch0027 2023-04-20 13:56:14 -04:00
Kaleb S. KEITHLEY 2fec333c00 patch0027 again 2023-04-20 11:39:30 -04:00
Kaleb S. KEITHLEY 460ba1ceb5 patch0027 2023-04-20 10:57:15 -04:00
Kaleb S. KEITHLEY 58319e8d44 patch0027 2023-04-20 10:56:03 -04:00
Kaleb S. KEITHLEY 4844e582ac ceph-17.2.6, rebuild with rocksdb-8.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-04-20 10:05:42 -04:00
Kaleb S. KEITHLEY aaedf07964 ceph-17.2.6 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-04-07 07:39:30 -04:00
Kaleb S. KEITHLEY f33cca0cb6 ceph-17.2.5, rebuild with bundled boost until boost-1.81 compatible
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-02-23 11:15:25 -05:00
Kaleb S. KEITHLEY c613a7913d ceph-17.2.5, rebuild with bundled boost until boost-1.81 compatible
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-02-22 20:49:33 -05:00
Jonathan Wakely 32b1af1542 Rebuilt for Boost 1.81 2023-02-20 21:49:50 +00:00
Kaleb S. KEITHLEY 0d92b145fb ceph-17.2.5, rebuild with libarrow-11, this time for real
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-02-17 10:40:07 -05:00
Kaleb S. KEITHLEY 1fd4067b59 ceph-17.2.5, rebuild with libarrow-11
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-02-15 17:56:26 -05:00
Kaleb S. KEITHLEY 68c121780b ceph-17.2.5, more ELN (rhel 10)
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-01-27 07:44:15 -05:00
Kaleb S. KEITHLEY c63ac8cd1c ceph-17.2.5, rocksdb on ELN
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-01-26 18:31:47 -05:00
Kaleb S. KEITHLEY 0cef2ba27d ceph-17.2.5, rebuild with gtest-13 rhbz#2163823
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-01-24 10:01:05 -05:00
Kaleb S. KEITHLEY da92657ed9 Use _fortify_level to disable fortification.
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-01-20 16:13:04 -05:00
Fedora Release Engineering 339f628c14 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-18 23:41:54 +00:00
Kaleb S. KEITHLEY fe792d61ad ceph-17.2.5, rebuild with gcc-13
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-01-17 16:01:56 -05:00
Kaleb S. KEITHLEY 945dc70d29 ceph-17.2.5, rebuild with gcc-13
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2023-01-17 16:00:06 -05:00
Pete Walter e6b3456a69 Rebuild for ICU 72 2022-12-31 04:01:46 +00:00
Kaleb S. KEITHLEY f6485b3ab1 ceph-17.2.5, rebuild with libarrow-10
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-12-01 21:23:28 -05:00
Kaleb S. KEITHLEY 2d1c189958 SPDX migration
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-11-11 13:15:00 -05:00
Kaleb S. KEITHLEY af3d1fd70c ceph-17.2.5 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-10-18 13:15:59 -04:00
Kaleb S. KEITHLEY f52b5ed647 ceph-17.2.4 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-09-30 15:56:17 -04:00
Kaleb S. KEITHLEY 5c6ef2f610 ceph-17.2.3 revised patch for libarrow-9.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-08-22 13:27:51 -04:00
Kaleb S. KEITHLEY b651554bd7 rm obsolete patches 2022-08-18 14:45:49 -04:00
Kaleb S. KEITHLEY 80c32a846e ceph-17.2.3 rebuild with libarrow-9.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-08-05 11:15:59 -04:00
Kaleb S. KEITHLEY c59af85c9a ceph-17.2.3 rebuild with libarrow-9.0.0
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-08-03 16:44:07 -04:00
Kaleb S. KEITHLEY ad04d48a91 ceph-17.2.3 fmt for ELN
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-08-02 10:05:39 -04:00
František Zatloukal 5cc1064abe Rebuilt for ICU 71.1 2022-08-01 15:02:45 +02:00
Kaleb S. KEITHLEY 0f36784c8d ceph-17.2.3 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-07-29 16:26:35 -04:00
Kaleb S. KEITHLEY 4641edbf6e ceph-17.2.2 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-07-22 07:21:53 -04:00
Fedora Release Engineering 7522ec1d1e Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-20 22:45:52 +00:00
Kaleb S. KEITHLEY 4a7615cc28 Rebuild for fmt-9, src/mon/LogMonitor.cc fix
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-07-18 21:11:00 -04:00
Robert-André Mauchin eacbe3b4a2 Rebuild for new fmt 2022-07-17 14:14:26 +02:00
Robert-André Mauchin 87c5192736 Rebuild for new fmt 2022-07-17 14:09:16 +02:00
Mamoru TASAKA 21a281eefc Rebuild for new gtest 2022-07-10 22:24:15 +09:00
Kaleb S. KEITHLEY 7c4f87d566 enable cephfs-shell
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-07-06 12:39:08 -04:00
Kaleb S. KEITHLEY 85d0b180fb ceph-17.2.1, rhbz#2101744, rebuild with gtest, gmock 1.12.0
fix inconsistent tabs, spaces
temporarily disable cephfs-shell until install issues (python3-11?) are resolved

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-07-01 07:39:24 -04:00
Kaleb S. KEITHLEY 2999191251 ceph-17.2.1, rhbz#2101744, rebuild with gtest, gmock 1.12.0
fix inconsistent tabs, spaces

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-06-28 07:49:25 -04:00
Kaleb S. KEITHLEY 0434611ff3 ceph-17.2.1 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-06-23 17:13:37 -04:00
Robert-André Mauchin 4425090d12 Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191, CVE-2022-29526, CVE-2022-30629 2022-06-18 10:51:54 +02:00
Robert-André Mauchin 4f320e6270 Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191, CVE-2022-29526, CVE-2022-30629 2022-06-17 22:17:33 +02:00
Python Maint 3ca3b39fdd Rebuilt for Python 3.11 2022-06-15 18:15:37 +02:00
Kaleb S. KEITHLEY c46fd83b70 Rebuild for rocksdb 7.2.2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-05-19 15:12:12 -04:00
Kaleb S. KEITHLEY 9189e1ac7a Rebuild for rocksdb 7.2.2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-05-19 09:11:34 -04:00
Thomas Rodgers f3cd3e3ded Rebuilt for Boost 1.78 2022-05-11 14:08:26 +02:00
Kaleb S. KEITHLEY 3e6e53903f 17.2.0 w/ -DWITH_SYSTEM_ARROW
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-05-05 13:50:05 -04:00
Kaleb S. KEITHLEY 1156a4001e 17.2.0 w/ -DWITH_SYSTEM_ARROW
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-05-05 12:12:36 -04:00
Thomas Rodgers 511c2f1a19 Rebuilt for Boost 1.78 2022-05-04 11:37:57 +02:00
Kaleb S. KEITHLEY a4f5a49de7 17.2.0 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-04-20 07:55:31 -04:00
Kaleb S. KEITHLEY 629d997bbd 17.1.0 snapshot 201
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-04-14 17:57:35 -04:00
Kaleb S. KEITHLEY b2a3bb3cff 17.1.0 snapshot 201
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-04-14 17:36:39 -04:00
Kaleb S. KEITHLEY edd18f65bf 17.1.0 snapshot 175
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-04-09 07:42:25 -04:00
Kaleb S. KEITHLEY 944b374961 17.1.0 snapshot 123
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-28 09:25:07 -04:00
Kaleb S. KEITHLEY 90dfc56cf2 17.1.0 snapshot 70
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-24 11:12:23 -04:00
Kaleb S. KEITHLEY bf163e9b33 17.1.0 snapshot 56
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-21 10:15:50 -04:00
Kaleb S. KEITHLEY 5897751ce1 17.1.0 snapshot 31 plus rhbz#2064219 (ceph #53266, #54561)
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-17 12:42:40 -04:00
Kaleb S. KEITHLEY 73efddca7f 17.1.0 snapshot 28
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-15 07:58:55 -04:00
Kaleb S. KEITHLEY f9fa7d2971 17.1.0 RC1, #rhbz 2063071
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-11 09:58:39 -05:00
Kaleb S. KEITHLEY 1efbe7fbd6 17.1.0 RC1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-09 18:41:23 -05:00
Kaleb S. KEITHLEY fed2cbacdf 17.1.0 RC1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-04 15:48:35 -05:00
Kaleb S. KEITHLEY bddfe865f2 17.1.0 RC1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-04 15:16:14 -05:00
Kaleb S. KEITHLEY e56d4b2886 17.1.0 RC1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-04 14:48:18 -05:00
Kaleb S. KEITHLEY b6062fd6dc 17.1.0 RC1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-03-04 14:32:37 -05:00
Jiri 8c6b1da0a2 Rebuilt for java-17-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java17
2022-02-05 21:26:28 +01:00
Kaleb S. KEITHLEY 1f11726563 16.2.7, python3.10 w/ __CHAR_UNSIGNED__ fix
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-02-02 08:28:01 -05:00
Kaleb S. KEITHLEY bba894de7e 16.2.7, build with modern linker (mold), x86_64 and aarch64
reenable ppc64le

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-26 18:10:15 -05:00
Kaleb S. KEITHLEY 3715b23426 16.2.7, more CET enablement, rhbz#2040091
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-25 12:33:09 -05:00
Kaleb S. KEITHLEY f38d3f777f 16.2.7, rebuild with gcc-12, exclude ppc64le until fmt on ppc64le is fixed
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-24 08:16:44 -05:00
Kaleb S. KEITHLEY 0114881ab4 16.2.7, rebuild with gcc-12, exclude ppc64le until fmt on ppc64le is fixed
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-22 09:58:22 -05:00
Kaleb S. KEITHLEY a786ef1504 16.2.7, rebuild with gcc-12
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-21 16:48:02 -05:00
Kaleb S. KEITHLEY 2931b99be7 16.2.7, rebuild with gcc-12
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-20 07:26:11 -05:00
Kaleb S. KEITHLEY 70e587526e 16.2.7, rebuild with gcc-12
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-20 07:24:54 -05:00
Fedora Release Engineering 9c86a420ea - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-19 23:04:14 +00:00
Kaleb S. KEITHLEY 0c8ed285d3 16.2.7, rebuild with fmt-8.1.1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2022-01-10 19:23:36 -05:00
Kaleb S. KEITHLEY ddbcb5d66f 16.2.7, LGPLv2.1 -> LGPLv2+, rhbz#2036035
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
2021-12-29 11:07:42 -05:00
29 changed files with 2371 additions and 1679 deletions
-13
View File
@@ -1,13 +0,0 @@
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 65ba10b0f1..eeedc29c37 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -165,7 +165,7 @@ elseif(HAVE_ARMV8_CRC)
crc32c_aarch64.c)
endif(HAVE_INTEL)
-add_library(crc32 ${crc32_srcs})
+add_library(crc32 STATIC ${crc32_srcs})
if(HAVE_ARMV8_CRC)
set_target_properties(crc32 PROPERTIES
COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")
-11
View File
@@ -8,14 +8,3 @@
namespace ceph {
class Formatter;
--- ceph-15.2.4/src/global/signal_handler.h.orig 2020-07-17 12:57:54.763628429 -0400
+++ ceph-15.2.4/src/global/signal_handler.h 2020-07-17 12:58:10.610628429 -0400
@@ -16,6 +16,8 @@
#define CEPH_GLOBAL_SIGNAL_HANDLER_H
#include <signal.h>
+#include <string>
+
#include "acconfig.h"
typedef void (*signal_handler_t)(int);
-11
View File
@@ -1,11 +0,0 @@
--- ceph-16.1.0-43-g6b74fb5c/src/blk/CMakeLists.txt.orig 2021-02-01 08:16:26.719517641 -0500
+++ ceph-16.1.0-43-g6b74fb5c/src/blk/CMakeLists.txt 2021-02-01 08:16:47.810092341 -0500
@@ -25,7 +25,7 @@
zoned/HMSMRDevice.cc)
endif()
-add_library(blk ${libblk_srcs})
+add_library(blk STATIC ${libblk_srcs})
target_include_directories(blk PRIVATE "./")
if(HAVE_LIBAIO)
@@ -1,11 +0,0 @@
--- ceph-16.1.0-43-g6b74fb5c/src/test/neorados/CMakeLists.txt.orig 2021-02-01 08:25:18.006965821 -0500
+++ ceph-16.1.0-43-g6b74fb5c/src/test/neorados/CMakeLists.txt 2021-02-01 08:25:34.244407147 -0500
@@ -19,7 +19,7 @@
target_link_libraries(ceph_test_neorados_op_speed
libneorados fmt::fmt ${unittest_libs})
-add_library(neoradostest-support common_tests.cc)
+add_library(neoradostest-support STATIC common_tests.cc)
target_link_libraries(neoradostest-support
libneorados fmt::fmt)
-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)
@@ -1,63 +0,0 @@
From 178f6bdac97b57300bbe0956633cf686a7e3ccee Mon Sep 17 00:00:00 2001
From: Yuval Lifshitz <ylifshit@redhat.com>
Date: Fri, 12 Mar 2021 08:56:45 +0200
Subject: [PATCH] librgw/notifications: initialize kafka and amqp
Fixes: https://tracker.ceph.com/issues/49738
Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
---
src/rgw/librgw.cc | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/rgw/librgw.cc b/src/rgw/librgw.cc
index 012cc54c3b..a5351dbe7c 100644
--- a/src/rgw/librgw.cc
+++ b/src/rgw/librgw.cc
@@ -53,6 +53,12 @@
#include "rgw_http_client.h"
#include "rgw_http_client_curl.h"
#include "rgw_perf_counters.h"
+#ifdef WITH_RADOSGW_AMQP_ENDPOINT
+#include "rgw_amqp.h"
+#endif
+#ifdef WITH_RADOSGW_KAFKA_ENDPOINT
+#include "rgw_kafka.h"
+#endif
#include "services/svc_zone.h"
@@ -617,6 +623,17 @@ namespace rgw {
/* ignore error */
}
+#ifdef WITH_RADOSGW_AMQP_ENDPOINT
+ if (!rgw::amqp::init(cct.get())) {
+ derr << "ERROR: failed to initialize AMQP manager" << dendl;
+ }
+#endif
+#ifdef WITH_RADOSGW_KAFKA_ENDPOINT
+ if (!rgw::kafka::init(cct.get())) {
+ derr << "ERROR: failed to initialize Kafka manager" << dendl;
+ }
+#endif
+
return 0;
} /* RGWLib::init() */
@@ -645,6 +662,12 @@ namespace rgw {
rgw_shutdown_resolver();
rgw_http_client_cleanup();
rgw::curl::cleanup_curl();
+#ifdef WITH_RADOSGW_AMQP_ENDPOINT
+ rgw::amqp::shutdown();
+#endif
+#ifdef WITH_RADOSGW_KAFKA_ENDPOINT
+ rgw::kafka::shutdown();
+#endif
rgw_perf_stop(g_ceph_context);
--
2.26.2
@@ -0,0 +1,27 @@
From 1999108aeb1f6f93a19ea7bb64c6ae8b87d1b264 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 20 Jan 2022 05:33:13 -0800
Subject: [PATCH] CET: Add CET marker to crc32c_intel_fast_zero_asm.s
Add .note.gnu.property section to crc32c_intel_fast_zero_asm.s to mark
for IBT and SHSTK compatibility.
---
src/common/crc32c_intel_fast_zero_asm.s | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/common/crc32c_intel_fast_zero_asm.s b/src/common/crc32c_intel_fast_zero_asm.s
index 216ecf639f3..2e291d858f3 100644
--- a/src/common/crc32c_intel_fast_zero_asm.s
+++ b/src/common/crc32c_intel_fast_zero_asm.s
@@ -654,4 +654,8 @@ slversion crc32_iscsi_zero_00, 00, 02, 0014
%ifidn __OUTPUT_FORMAT__, elf64
; inform linker that this doesn't require executable stack
section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
%endif
--
2.34.1
@@ -0,0 +1,172 @@
From bbcc1a69f787881f16156f3c789052942a564103 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 20 Jan 2022 05:35:49 -0800
Subject: [PATCH] isa-l/CET: Add CET marker to x86-64 crc32 assembly codes
Add .note.gnu.property section to x86-64 crc32 assembly codes to mark
for IBT and SHSTK compatibility.
---
crc/crc32_gzip_refl_by16_10.asm | 9 +++++++++
crc/crc32_gzip_refl_by8.asm | 9 +++++++++
crc/crc32_gzip_refl_by8_02.asm | 9 +++++++++
crc/crc32_ieee_01.asm | 8 ++++++++
crc/crc32_ieee_02.asm | 9 +++++++++
crc/crc32_ieee_by16_10.asm | 9 +++++++++
crc/crc32_ieee_by4.asm | 9 +++++++++
crc/crc32_iscsi_00.asm | 8 ++++++++
crc/crc32_iscsi_01.asm | 8 ++++++++
9 files changed, 78 insertions(+)
diff --git a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
index 40236f6..b16874d 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
@@ -566,3 +566,12 @@ global no_ %+ FUNCTION_NAME
no_ %+ FUNCTION_NAME %+ :
%endif
%endif ; (AS_FEATURE_LEVEL) >= 10
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_gzip_refl_by8.asm b/src/isa-l/crc/crc32_gzip_refl_by8.asm
index 62f7e7d..97b0c4a 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by8.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by8.asm
@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_gzip_refl_by8, 01, 00, 002c
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
index 80d849e..1d5a75f 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
@@ -553,3 +553,12 @@ pshufb_shf_table:
; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
dq 0x0706050403020100, 0x000e0d0c0b0a0908
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_01.asm b/src/isa-l/crc/crc32_ieee_01.asm
index 32495ed..cfc443b 100644
--- a/src/isa-l/crc/crc32_ieee_01.asm
+++ b/src/isa-l/crc/crc32_ieee_01.asm
@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_ieee_01, 01, 06, 0011
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_02.asm b/src/isa-l/crc/crc32_ieee_02.asm
index 8a472b0..dd7096a 100644
--- a/src/isa-l/crc/crc32_ieee_02.asm
+++ b/src/isa-l/crc/crc32_ieee_02.asm
@@ -649,3 +649,12 @@ pshufb_shf_table:
; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
dq 0x0706050403020100, 0x000e0d0c0b0a0908
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_by16_10.asm b/src/isa-l/crc/crc32_ieee_by16_10.asm
index 200fd93..2afd597 100644
--- a/src/isa-l/crc/crc32_ieee_by16_10.asm
+++ b/src/isa-l/crc/crc32_ieee_by16_10.asm
@@ -582,3 +582,12 @@ global no_ %+ FUNCTION_NAME
no_ %+ FUNCTION_NAME %+ :
%endif
%endif ; (AS_FEATURE_LEVEL) >= 10
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_by4.asm b/src/isa-l/crc/crc32_ieee_by4.asm
index 39bed5a..847d0bd 100644
--- a/src/isa-l/crc/crc32_ieee_by4.asm
+++ b/src/isa-l/crc/crc32_ieee_by4.asm
@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607
;;; func core, ver, snum
slversion crc32_ieee_by4, 05, 02, 0017
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_iscsi_00.asm b/src/isa-l/crc/crc32_iscsi_00.asm
index 4f81e3a..3d6b2d1 100644
--- a/src/isa-l/crc/crc32_iscsi_00.asm
+++ b/src/isa-l/crc/crc32_iscsi_00.asm
@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643
;;; func core, ver, snum
slversion crc32_iscsi_00, 00, 04, 0014
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_iscsi_01.asm b/src/isa-l/crc/crc32_iscsi_01.asm
index 2a81517..c048413 100644
--- a/src/isa-l/crc/crc32_iscsi_01.asm
+++ b/src/isa-l/crc/crc32_iscsi_01.asm
@@ -588,3 +588,11 @@ K_table:
;;; func core, ver, snum
slversion crc32_iscsi_01, 01, 04, 0015
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
--
2.34.1
-23
View File
@@ -1,23 +0,0 @@
--- a/src/test/rgw/amqp_mock.cc
+++ b/src/test/rgw/amqp_mock.cc
@@ -291,7 +291,11 @@ amqp_confirm_select_ok_t* amqp_confirm_select(amqp_connection_state_t state, amq
return state->confirm;
}
-int amqp_simple_wait_frame_noblock(amqp_connection_state_t state, amqp_frame_t *decoded_frame, struct timeval* tv) {
+extern "C" {
+
+int amqp_simple_wait_frame_noblock(amqp_connection_state_t state,
+ amqp_frame_t *decoded_frame,
+ const struct timeval* tv) {
if (state->socket && state->socket->open_called &&
state->login_called && state->channel1 && state->channel2 && state->exchange &&
state->queue && state->consume && state->confirm && !FAIL_NEXT_READ) {
@@ -345,6 +349,7 @@ int amqp_simple_wait_frame_noblock(amqp_connection_state_t state, amqp_frame_t *
}
return AMQP_STATUS_CONNECTION_CLOSED;
}
+} // extern "C"
amqp_basic_consume_ok_t* amqp_basic_consume(
amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue,
@@ -0,0 +1,100 @@
From 72e6d27e08c86c16e8931739a5e6ecbc06b102d5 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 20 Jan 2022 05:40:56 -0800
Subject: [PATCH] spdk/isa-l/CET: Add CET marker to x86-64 crc32 assembly codes
Add .note.gnu.property section to x86-64 crc32 assembly codes to mark
for IBT and SHSTK compatibility.
---
crc/crc32_gzip_refl_by8.asm | 9 +++++++++
crc/crc32_ieee_01.asm | 8 ++++++++
crc/crc32_ieee_by4.asm | 9 +++++++++
crc/crc32_iscsi_00.asm | 8 ++++++++
crc/crc32_iscsi_01.asm | 8 ++++++++
5 files changed, 42 insertions(+)
diff --git a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
index 62f7e7d..97b0c4a 100644
--- a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
+++ b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_gzip_refl_by8, 01, 00, 002c
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_ieee_01.asm b/src/spdk/isa-l/crc/crc32_ieee_01.asm
index 32495ed..cfc443b 100644
--- a/src/spdk/isa-l/crc/crc32_ieee_01.asm
+++ b/src/spdk/isa-l/crc/crc32_ieee_01.asm
@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_ieee_01, 01, 06, 0011
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_ieee_by4.asm b/src/spdk/isa-l/crc/crc32_ieee_by4.asm
index 39bed5a..847d0bd 100644
--- a/src/spdk/isa-l/crc/crc32_ieee_by4.asm
+++ b/src/spdk/isa-l/crc/crc32_ieee_by4.asm
@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607
;;; func core, ver, snum
slversion crc32_ieee_by4, 05, 02, 0017
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_iscsi_00.asm b/src/spdk/isa-l/crc/crc32_iscsi_00.asm
index 4f81e3a..3d6b2d1 100644
--- a/src/spdk/isa-l/crc/crc32_iscsi_00.asm
+++ b/src/spdk/isa-l/crc/crc32_iscsi_00.asm
@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643
;;; func core, ver, snum
slversion crc32_iscsi_00, 00, 04, 0014
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_iscsi_01.asm b/src/spdk/isa-l/crc/crc32_iscsi_01.asm
index 2a81517..c048413 100644
--- a/src/spdk/isa-l/crc/crc32_iscsi_01.asm
+++ b/src/spdk/isa-l/crc/crc32_iscsi_01.asm
@@ -588,3 +588,11 @@ K_table:
;;; func core, ver, snum
slversion crc32_iscsi_01, 01, 04, 0015
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
--
2.34.1
@@ -1,11 +0,0 @@
--- ceph-16.2.4/src/compressor/snappy/SnappyCompressor.h.orig 2021-05-26 08:30:26.205447315 -0400
+++ ceph-16.2.4/src/compressor/snappy/SnappyCompressor.h 2021-05-26 08:31:22.570443033 -0400
@@ -97,7 +97,7 @@
if (qat_enabled)
return qat_accel.decompress(p, compressed_len, dst, compressor_message);
#endif
- snappy::uint32 res_len = 0;
+ std::uint32_t res_len = 0;
BufferlistSource source_1(p, compressed_len);
if (!snappy::GetUncompressedLength(&source_1, &res_len)) {
return -1;
-10
View File
@@ -1,10 +0,0 @@
--- ceph-16.2.4/src/common/Formatter.cc.orig 2021-07-07 09:32:25.513818420 -0400
+++ ceph-16.2.4/src/common/Formatter.cc 2021-07-07 09:44:42.007373294 -0400
@@ -21,6 +21,7 @@
#include <fmt/format.h>
#include <set>
#include <limits>
+#include <algorithm>
// -----------------------
namespace ceph {
@@ -1,13 +0,0 @@
diff --git a/src/rgw/rgw_string.h b/src/rgw/rgw_string.h
index 257daa9c1fe..90e64f98a25 100644
--- a/src/rgw/rgw_string.h
+++ b/src/rgw/rgw_string.h
@@ -8,6 +8,8 @@
#include <stdlib.h>
#include <limits.h>
#include <string_view>
+#include <string>
+#include <stdexcept>
#include <boost/container/small_vector.hpp>
-296
View File
@@ -1,296 +0,0 @@
diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.cc b/src/kv/rocksdb_cache/BinnedLRUCache.cc
index 0d657883e92de..47c56e2ddd769 100644
--- a/src/kv/rocksdb_cache/BinnedLRUCache.cc
+++ b/src/kv/rocksdb_cache/BinnedLRUCache.cc
@@ -151,13 +151,20 @@ void BinnedLRUCacheShard::EraseUnRefEntries() {
}
}
-void BinnedLRUCacheShard::ApplyToAllCacheEntries(void (*callback)(void*, size_t),
- bool thread_safe) {
+void BinnedLRUCacheShard::ApplyToAllCacheEntries(
+ const std::function<void(const rocksdb::Slice& key,
+ void* value,
+ size_t charge,
+ DeleterFn)>& callback,
+ bool thread_safe)
+{
if (thread_safe) {
mutex_.lock();
}
table_.ApplyToAllCacheEntries(
- [callback](BinnedLRUHandle* h) { callback(h->value, h->charge); });
+ [callback](BinnedLRUHandle* h) {
+ callback(h->key(), h->value, h->charge, h->deleter);
+ });
if (thread_safe) {
mutex_.unlock();
}
@@ -345,7 +352,7 @@ bool BinnedLRUCacheShard::Release(rocksdb::Cache::Handle* handle, bool force_era
rocksdb::Status BinnedLRUCacheShard::Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
size_t charge,
- void (*deleter)(const rocksdb::Slice& key, void* value),
+ DeleterFn deleter,
rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) {
auto e = new BinnedLRUHandle();
rocksdb::Status s;
@@ -464,6 +471,12 @@ std::string BinnedLRUCacheShard::GetPrintableOptions() const {
return std::string(buffer);
}
+DeleterFn BinnedLRUCacheShard::GetDeleter(rocksdb::Cache::Handle* h) const
+{
+ auto* handle = reinterpret_cast<BinnedLRUHandle*>(h);
+ return handle->deleter;
+}
+
BinnedLRUCache::BinnedLRUCache(CephContext *c,
size_t capacity,
int num_shard_bits,
@@ -519,6 +532,13 @@ void BinnedLRUCache::DisownData() {
#endif // !__SANITIZE_ADDRESS__
}
+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
+DeleterFn BinnedLRUCache::GetDeleter(Handle* handle) const
+{
+ return reinterpret_cast<const BinnedLRUHandle*>(handle)->deleter;
+}
+#endif
+
size_t BinnedLRUCache::TEST_GetLRUSize() {
size_t lru_size_of_all_shards = 0;
for (int i = 0; i < num_shards_; i++) {
diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.h b/src/kv/rocksdb_cache/BinnedLRUCache.h
index 85608be0e5734..88bf4502e8927 100644
--- a/src/kv/rocksdb_cache/BinnedLRUCache.h
+++ b/src/kv/rocksdb_cache/BinnedLRUCache.h
@@ -56,7 +56,7 @@ std::shared_ptr<rocksdb::Cache> NewBinnedLRUCache(
struct BinnedLRUHandle {
void* value;
- void (*deleter)(const rocksdb::Slice&, void* value);
+ DeleterFn deleter;
BinnedLRUHandle* next_hash;
BinnedLRUHandle* next;
BinnedLRUHandle* prev;
@@ -189,7 +189,7 @@ class alignas(CACHE_LINE_SIZE) BinnedLRUCacheShard : public CacheShard {
// Like Cache methods, but with an extra "hash" parameter.
virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
size_t charge,
- void (*deleter)(const rocksdb::Slice& key, void* value),
+ DeleterFn deleter,
rocksdb::Cache::Handle** handle,
rocksdb::Cache::Priority priority) override;
virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) override;
@@ -205,13 +205,19 @@ class alignas(CACHE_LINE_SIZE) BinnedLRUCacheShard : public CacheShard {
virtual size_t GetUsage() const override;
virtual size_t GetPinnedUsage() const override;
- virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
- bool thread_safe) override;
+ virtual void ApplyToAllCacheEntries(
+ const std::function<void(const rocksdb::Slice& key,
+ void* value,
+ size_t charge,
+ DeleterFn)>& callback,
+ bool thread_safe) override;
virtual void EraseUnRefEntries() override;
virtual std::string GetPrintableOptions() const override;
+ virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const override;
+
void TEST_GetLRUList(BinnedLRUHandle** lru, BinnedLRUHandle** lru_low_pri);
// Retrieves number of elements in LRU, for unit test purpose only
@@ -304,7 +310,9 @@ class BinnedLRUCache : public ShardedCache {
virtual size_t GetCharge(Handle* handle) const override;
virtual uint32_t GetHash(Handle* handle) const override;
virtual void DisownData() override;
-
+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
+ virtual DeleterFn GetDeleter(Handle* handle) const override;
+#endif
// Retrieves number of elements in LRU, for unit test purpose only
size_t TEST_GetLRUSize();
// Sets the high pri pool ratio
diff --git a/src/kv/rocksdb_cache/ShardedCache.cc b/src/kv/rocksdb_cache/ShardedCache.cc
index 367140a94d8be..6cbd89ad6472c 100644
--- a/src/kv/rocksdb_cache/ShardedCache.cc
+++ b/src/kv/rocksdb_cache/ShardedCache.cc
@@ -44,7 +44,7 @@ void ShardedCache::SetStrictCapacityLimit(bool strict_capacity_limit) {
}
rocksdb::Status ShardedCache::Insert(const rocksdb::Slice& key, void* value, size_t charge,
- void (*deleter)(const rocksdb::Slice& key, void* value),
+ DeleterFn deleter,
rocksdb::Cache::Handle** handle, Priority priority) {
uint32_t hash = HashSlice(key);
return GetShard(Shard(hash))
@@ -109,13 +109,36 @@ size_t ShardedCache::GetPinnedUsage() const {
return usage;
}
+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
+DeleterFn ShardedCache::GetDeleter(Handle* handle) const
+{
+ uint32_t hash = GetHash(handle);
+ return GetShard(Shard(hash))->GetDeleter(handle);
+}
+
+void ShardedCache::ApplyToAllEntries(
+ const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
+ DeleterFn deleter)>& callback,
+ const ApplyToAllEntriesOptions& opts)
+{
+ int num_shards = 1 << num_shard_bits_;
+ for (int s = 0; s < num_shards; s++) {
+ GetShard(s)->ApplyToAllCacheEntries(callback, true /* thread_safe */);
+ }
+}
+#else
void ShardedCache::ApplyToAllCacheEntries(void (*callback)(void*, size_t),
bool thread_safe) {
int num_shards = 1 << num_shard_bits_;
for (int s = 0; s < num_shards; s++) {
- GetShard(s)->ApplyToAllCacheEntries(callback, thread_safe);
+ GetShard(s)->ApplyToAllCacheEntries(
+ [callback](const rocksdb::Slice&, void* value, size_t charge, DeleterFn) {
+ callback(value, charge);
+ },
+ thread_safe);
}
}
+#endif
void ShardedCache::EraseUnRefEntries() {
int num_shards = 1 << num_shard_bits_;
@@ -131,7 +154,7 @@ std::string ShardedCache::GetPrintableOptions() const {
char buffer[kBufferSize];
{
std::lock_guard<std::mutex> l(capacity_mutex_);
- snprintf(buffer, kBufferSize, " capacity : %" ROCKSDB_PRIszt "\n",
+ snprintf(buffer, kBufferSize, " capacity : %zu\n",
capacity_);
ret.append(buffer);
snprintf(buffer, kBufferSize, " num_shard_bits : %d\n", num_shard_bits_);
diff --git a/src/kv/rocksdb_cache/ShardedCache.h b/src/kv/rocksdb_cache/ShardedCache.h
index 4d64893ab1c7b..f98421a09a33a 100644
--- a/src/kv/rocksdb_cache/ShardedCache.h
+++ b/src/kv/rocksdb_cache/ShardedCache.h
@@ -14,6 +14,7 @@
#include <string>
#include <mutex>
+#include "rocksdb/version.h"
#include "rocksdb/cache.h"
#include "include/ceph_hash.h"
#include "common/PriorityCache.h"
@@ -22,10 +23,11 @@
#ifndef CACHE_LINE_SIZE
#define CACHE_LINE_SIZE 64 // XXX arch-specific define
#endif
-#define ROCKSDB_PRIszt "zu"
namespace rocksdb_cache {
+using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
+
// Single cache shard interface.
class CacheShard {
public:
@@ -34,7 +36,7 @@ class CacheShard {
virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
size_t charge,
- void (*deleter)(const rocksdb::Slice& key, void* value),
+ 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 bool Ref(rocksdb::Cache::Handle* handle) = 0;
@@ -44,10 +46,15 @@ class CacheShard {
virtual void SetStrictCapacityLimit(bool strict_capacity_limit) = 0;
virtual size_t GetUsage() const = 0;
virtual size_t GetPinnedUsage() const = 0;
- virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
- bool thread_safe) = 0;
+ virtual void ApplyToAllCacheEntries(
+ const std::function<void(const rocksdb::Slice& key,
+ void* value,
+ size_t charge,
+ DeleterFn)>& callback,
+ bool thread_safe) = 0;
virtual void EraseUnRefEntries() = 0;
virtual std::string GetPrintableOptions() const { return ""; }
+ virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const = 0;
};
// Generic cache interface which shards cache by hash of keys. 2^num_shard_bits
@@ -57,34 +64,43 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
public:
ShardedCache(size_t capacity, int num_shard_bits, bool strict_capacity_limit);
virtual ~ShardedCache() = default;
+ // rocksdb::Cache
virtual const char* Name() const override = 0;
- virtual CacheShard* GetShard(int shard) = 0;
- virtual const CacheShard* GetShard(int shard) const = 0;
- virtual void* Value(Handle* handle) override = 0;
- virtual size_t GetCharge(Handle* handle) const = 0;
- virtual uint32_t GetHash(Handle* handle) const = 0;
- virtual void DisownData() override = 0;
-
- virtual void SetCapacity(size_t capacity) override;
- virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override;
-
virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
- void (*deleter)(const rocksdb::Slice& key, void* value),
+ DeleterFn,
rocksdb::Cache::Handle** handle, Priority priority) override;
virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
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;
virtual void Erase(const rocksdb::Slice& key) override;
virtual uint64_t NewId() override;
- virtual size_t GetCapacity() const override;
+ virtual void SetCapacity(size_t capacity) override;
+ virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override;
virtual bool HasStrictCapacityLimit() const override;
+ virtual size_t GetCapacity() const override;
virtual size_t GetUsage() const override;
virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
virtual size_t GetPinnedUsage() const override;
+ virtual size_t GetCharge(Handle* handle) const = 0;
+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
+ virtual DeleterFn GetDeleter(Handle* handle) const override;
+#endif
+ virtual void DisownData() override = 0;
+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22)
+ virtual void ApplyToAllEntries(
+ const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
+ DeleterFn deleter)>& callback,
+ const ApplyToAllEntriesOptions& opts) override;
+#else
virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
bool thread_safe) override;
+#endif
virtual void EraseUnRefEntries() override;
virtual std::string GetPrintableOptions() const override;
+ virtual CacheShard* GetShard(int shard) = 0;
+ virtual const CacheShard* GetShard(int shard) const = 0;
+ virtual uint32_t GetHash(Handle* handle) const = 0;
int GetNumShardBits() const { return num_shard_bits_; }
@@ -120,7 +136,7 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
// return Hash(s.data(), s.size(), 0);
}
- uint32_t Shard(uint32_t hash) {
+ uint32_t Shard(uint32_t hash) const {
// Note, hash >> 32 yields hash in gcc, not the zero we expect!
return (num_shard_bits_ > 0) ? (hash >> (32 - num_shard_bits_)) : 0;
}
@@ -0,0 +1,19 @@
--- ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt.orig 2023-05-10 08:23:50.000000000 -0400
+++ ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt 2023-05-11 08:21:13.794152904 -0400
@@ -24,7 +24,7 @@
dbstore_mgr.cc
)
-add_library(dbstore_lib ${dbstore_srcs})
+add_library(dbstore_lib STATIC ${dbstore_srcs})
target_include_directories(dbstore_lib
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/store/rados"
@@ -49,6 +49,7 @@
# add pthread library
set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} pthread)
+set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} global)
find_package(gtest QUIET)
if(WITH_TESTS)
+42
View File
@@ -0,0 +1,42 @@
--- ceph-18.1.2/src/common/subsys_types.h.orig 2023-06-27 15:59:59.000000000 -0400
+++ ceph-18.1.2/src/common/subsys_types.h 2023-07-04 19:36:55.941238973 -0400
@@ -54,7 +54,7 @@
#undef DEFAULT_SUBSYS
}
-constexpr static std::uint8_t
+constexpr static uint8_t
ceph_subsys_get_max_default_level(const std::size_t subidx) {
const auto item = ceph_subsys_get_as_array()[subidx];
return std::max(item.log_level, item.gather_level);
--- ceph-18.1.2/src/msg/async/crypto_onwire.h.orig 2023-06-27 15:59:59.000000000 -0400
+++ ceph-18.1.2/src/msg/async/crypto_onwire.h 2023-07-04 19:36:55.957238704 -0400
@@ -95,7 +95,7 @@
// Transmitter can append extra bytes of ciphertext at the -final step.
// This method return how much was added, and thus let client translate
// plaintext size into ciphertext size to grab from wire.
- virtual std::uint32_t get_extra_size_at_final() = 0;
+ virtual uint32_t get_extra_size_at_final() = 0;
// Instance of RxHandler must be reset before doing any decrypt-update
// step. This applies also to situation when decrypt-final was already
--- ceph-18.1.2/src/rocksdb/table/block_based/data_block_hash_index.h.orig 2023-05-24 15:55:23.000000000 -0400
+++ ceph-18.1.2/src/rocksdb/table/block_based/data_block_hash_index.h 2023-07-04 19:36:55.971238469 -0400
@@ -8,6 +8,7 @@
#include <cstdint>
#include <string>
#include <vector>
+#include <cstdint>
#include "rocksdb/slice.h"
--- ceph-18.1.2/src/rocksdb/util/string_util.h.orig 2023-05-24 15:55:23.000000000 -0400
+++ ceph-18.1.2/src/rocksdb/util/string_util.h 2023-07-04 19:36:55.991238133 -0400
@@ -11,6 +11,7 @@
#include <string>
#include <unordered_map>
#include <vector>
+#include <cstdint>
#include "rocksdb/rocksdb_namespace.h"
+24
View File
@@ -0,0 +1,24 @@
--- ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake.orig 2023-04-28 18:30:19.133064577 -0400
+++ ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake 2023-04-28 18:31:55.290354383 -0400
@@ -104,12 +104,21 @@
set(user_config ${CMAKE_BINARY_DIR}/user-config.jam)
# edit the user-config.jam so b2 will be able to use the specified
# toolset and python
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+ file(WRITE ${user_config}
+ "using ${toolset}"
+ " : "
+ " : ${CMAKE_CXX_COMPILER}"
+ " : <compileflags>-fPIC <compileflags>-w <compileflags>-fcf-protection <compileflags>-Wno-everything"
+ " ;\n")
+else()
file(WRITE ${user_config}
"using ${toolset}"
" : "
" : ${CMAKE_CXX_COMPILER}"
" : <compileflags>-fPIC <compileflags>-w <compileflags>-Wno-everything"
" ;\n")
+endif()
if(with_python_version)
find_package(Python3 ${with_python_version} QUIET REQUIRED
COMPONENTS Development)
+62
View File
@@ -0,0 +1,62 @@
--- ceph-20.0.0-1954-g77a7c83d/src/boost/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S.orig 2025-05-19 18:28:37.137194693 -0400
+++ ceph-20.0.0-1954-g77a7c83d/src/boost/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S 2025-05-19 18:30:54.292857720 -0400
@@ -144,4 +144,18 @@
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
+
+.section .note.gnu.property
+.align=8
+
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
# endif
--- ceph-20.0.0-1954-g77a7c83d/src/boost/libs/context/src/asm/make_x86_64_sysv_elf_gas.S.orig 2025-05-19 18:28:22.611442193 -0400
+++ ceph-20.0.0-1954-g77a7c83d/src/boost/libs/context/src/asm/make_x86_64_sysv_elf_gas.S 2025-05-19 18:31:01.037742795 -0400
@@ -159,4 +159,18 @@
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
+
+.section .note.gnu.property
+.align=8
+
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
# endif
--- ceph-20.0.0-1954-g77a7c83d/src/boost/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S.orig 2025-05-19 18:29:35.836194529 -0400
+++ ceph-20.0.0-1954-g77a7c83d/src/boost/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S 2025-05-19 18:31:15.172501956 -0400
@@ -137,3 +137,17 @@
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
+
+.section .note.gnu.property
+.align=8
+
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+24
View File
@@ -0,0 +1,24 @@
--- ceph-18.1.2/src/pybind/rbd/rbd.pyx.orig 2023-07-21 13:30:08.156825317 -0400
+++ ceph-18.1.2/src/pybind/rbd/rbd.pyx 2023-07-24 09:09:27.930137117 -0400
@@ -371,10 +371,10 @@
cdef rados_ioctx_t convert_ioctx(rados.Ioctx ioctx) except? NULL:
return <rados_ioctx_t>ioctx.io
-cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) with gil:
+cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept with gil:
return (<object>ptr)(offset, total)
-cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr):
+cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept:
return 0
def cstr(val, name, encoding="utf-8", opt=False):
@@ -426,7 +426,7 @@
cdef class Completion
-cdef void __aio_complete_cb(rbd_completion_t completion, void *args) with gil:
+cdef void __aio_complete_cb(rbd_completion_t completion, void *args) noexcept with gil:
"""
Callback to oncomplete() for asynchronous operations
"""
+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
+14
View File
@@ -0,0 +1,14 @@
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>
@@ -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"
+838
View File
@@ -0,0 +1,838 @@
--- ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/encryption_internal_19.h.orig 2025-07-08 07:40:29.811814549 -0400
+++ ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/encryption_internal_19.h 2025-07-08 07:40:29.811739290 -0400
@@ -0,0 +1,114 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#pragma once
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "parquet/properties.h"
+#include "parquet/types.h"
+
+using parquet::ParquetCipher;
+
+namespace parquet {
+namespace encryption {
+
+constexpr int kGcmTagLength = 16;
+constexpr int kNonceLength = 12;
+
+// Module types
+constexpr int8_t kFooter = 0;
+constexpr int8_t kColumnMetaData = 1;
+constexpr int8_t kDataPage = 2;
+constexpr int8_t kDictionaryPage = 3;
+constexpr int8_t kDataPageHeader = 4;
+constexpr int8_t kDictionaryPageHeader = 5;
+constexpr int8_t kColumnIndex = 6;
+constexpr int8_t kOffsetIndex = 7;
+
+/// Performs AES encryption operations with GCM or CTR ciphers.
+class AesEncryptor {
+ public:
+ static AesEncryptor* Make(ParquetCipher::type alg_id, int key_len, bool metadata,
+ std::vector<AesEncryptor*>* all_encryptors);
+
+ ~AesEncryptor();
+
+ /// Size difference between plaintext and ciphertext, for this cipher.
+ int CiphertextSizeDelta();
+
+ /// Encrypts plaintext with the key and aad. Key length is passed only for validation.
+ /// If different from value in constructor, exception will be thrown.
+ int Encrypt(const uint8_t* plaintext, int plaintext_len, const uint8_t* key,
+ int key_len, const uint8_t* aad, int aad_len, uint8_t* ciphertext);
+
+ /// Encrypts plaintext footer, in order to compute footer signature (tag).
+ int SignedFooterEncrypt(const uint8_t* footer, int footer_len, const uint8_t* key,
+ int key_len, const uint8_t* aad, int aad_len,
+ const uint8_t* nonce, uint8_t* encrypted_footer);
+
+ void WipeOut();
+
+ private:
+ /// Can serve one key length only. Possible values: 16, 24, 32 bytes.
+ explicit AesEncryptor(ParquetCipher::type alg_id, int key_len, bool metadata);
+ // PIMPL Idiom
+ class AesEncryptorImpl;
+ std::unique_ptr<AesEncryptorImpl> impl_;
+};
+
+/// Performs AES decryption operations with GCM or CTR ciphers.
+class AesDecryptor {
+ public:
+ static AesDecryptor* Make(ParquetCipher::type alg_id, int key_len, bool metadata,
+ std::vector<AesDecryptor*>* all_decryptors);
+
+ ~AesDecryptor();
+ void WipeOut();
+
+ /// Size difference between plaintext and ciphertext, for this cipher.
+ int CiphertextSizeDelta();
+
+ /// Decrypts ciphertext with the key and aad. Key length is passed only for
+ /// validation. If different from value in constructor, exception will be thrown.
+ int Decrypt(const uint8_t* ciphertext, int ciphertext_len, const uint8_t* key,
+ int key_len, const uint8_t* aad, int aad_len, uint8_t* plaintext);
+
+ private:
+ /// Can serve one key length only. Possible values: 16, 24, 32 bytes.
+ explicit AesDecryptor(ParquetCipher::type alg_id, int key_len, bool metadata);
+ // PIMPL Idiom
+ class AesDecryptorImpl;
+ std::unique_ptr<AesDecryptorImpl> impl_;
+};
+
+std::string CreateModuleAad(const std::string& file_aad, int8_t module_type,
+ int16_t row_group_ordinal, int16_t column_ordinal,
+ int16_t page_ordinal);
+
+std::string CreateFooterAad(const std::string& aad_prefix_bytes);
+
+// Update last two bytes of page (or page header) module AAD
+void QuickUpdatePageAad(const std::string& AAD, int16_t new_page_ordinal);
+
+// Wraps OpenSSL RAND_bytes function
+void RandBytes(unsigned char* buf, int num);
+
+} // namespace encryption
+} // namespace parquet
--- ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/encryption_internal_20.h.orig 2025-07-08 07:40:29.812759948 -0400
+++ ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/encryption_internal_20.h 2025-07-08 07:40:29.812687536 -0400
@@ -0,0 +1,141 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#pragma once
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "arrow/util/span.h"
+#include "parquet/properties.h"
+#include "parquet/types.h"
+
+using parquet::ParquetCipher;
+
+namespace parquet::encryption {
+
+constexpr int32_t kGcmTagLength = 16;
+constexpr int32_t kNonceLength = 12;
+
+// Module types
+constexpr int8_t kFooter = 0;
+constexpr int8_t kColumnMetaData = 1;
+constexpr int8_t kDataPage = 2;
+constexpr int8_t kDictionaryPage = 3;
+constexpr int8_t kDataPageHeader = 4;
+constexpr int8_t kDictionaryPageHeader = 5;
+constexpr int8_t kColumnIndex = 6;
+constexpr int8_t kOffsetIndex = 7;
+constexpr int8_t kBloomFilterHeader = 8;
+constexpr int8_t kBloomFilterBitset = 9;
+
+/// Performs AES encryption operations with GCM or CTR ciphers.
+class PARQUET_EXPORT AesEncryptor {
+ public:
+ /// Can serve one key length only. Possible values: 16, 24, 32 bytes.
+ /// If write_length is true, prepend ciphertext length to the ciphertext
+ explicit AesEncryptor(ParquetCipher::type alg_id, int32_t key_len, bool metadata,
+ bool write_length = true);
+
+ static std::unique_ptr<AesEncryptor> Make(ParquetCipher::type alg_id, int32_t key_len,
+ bool metadata, bool write_length = true);
+
+ ~AesEncryptor();
+
+ /// The size of the ciphertext, for this cipher and the specified plaintext length.
+ [[nodiscard]] int32_t CiphertextLength(int64_t plaintext_len) const;
+
+ /// Encrypts plaintext with the key and aad. Key length is passed only for validation.
+ /// If different from value in constructor, exception will be thrown.
+ int32_t Encrypt(::arrow::util::span<const uint8_t> plaintext,
+ ::arrow::util::span<const uint8_t> key,
+ ::arrow::util::span<const uint8_t> aad,
+ ::arrow::util::span<uint8_t> ciphertext);
+
+ /// Encrypts plaintext footer, in order to compute footer signature (tag).
+ int32_t SignedFooterEncrypt(::arrow::util::span<const uint8_t> footer,
+ ::arrow::util::span<const uint8_t> key,
+ ::arrow::util::span<const uint8_t> aad,
+ ::arrow::util::span<const uint8_t> nonce,
+ ::arrow::util::span<uint8_t> encrypted_footer);
+
+ private:
+ // PIMPL Idiom
+ class AesEncryptorImpl;
+ std::unique_ptr<AesEncryptorImpl> impl_;
+};
+
+/// Performs AES decryption operations with GCM or CTR ciphers.
+class PARQUET_EXPORT AesDecryptor {
+ public:
+ /// \brief Construct an AesDecryptor
+ ///
+ /// \param alg_id the encryption algorithm to use
+ /// \param key_len key length. Possible values: 16, 24, 32 bytes.
+ /// \param metadata if true then this is a metadata decryptor
+ /// \param contains_length if true, expect ciphertext length prepended to the ciphertext
+ explicit AesDecryptor(ParquetCipher::type alg_id, int32_t key_len, bool metadata,
+ bool contains_length = true);
+
+ static std::unique_ptr<AesDecryptor> Make(ParquetCipher::type alg_id, int32_t key_len,
+ bool metadata);
+
+ ~AesDecryptor();
+
+ /// The size of the plaintext, for this cipher and the specified ciphertext length.
+ [[nodiscard]] int32_t PlaintextLength(int32_t ciphertext_len) const;
+
+ /// The size of the ciphertext, for this cipher and the specified plaintext length.
+ [[nodiscard]] int32_t CiphertextLength(int32_t plaintext_len) const;
+
+ /// Decrypts ciphertext with the key and aad. Key length is passed only for
+ /// validation. If different from value in constructor, exception will be thrown.
+ /// The caller is responsible for ensuring that the plaintext buffer is at least as
+ /// large as PlaintextLength(ciphertext_len).
+ int32_t Decrypt(::arrow::util::span<const uint8_t> ciphertext,
+ ::arrow::util::span<const uint8_t> key,
+ ::arrow::util::span<const uint8_t> aad,
+ ::arrow::util::span<uint8_t> plaintext);
+
+ private:
+ // PIMPL Idiom
+ class AesDecryptorImpl;
+ std::unique_ptr<AesDecryptorImpl> impl_;
+};
+
+std::string CreateModuleAad(const std::string& file_aad, int8_t module_type,
+ int16_t row_group_ordinal, int16_t column_ordinal,
+ int32_t page_ordinal);
+
+std::string CreateFooterAad(const std::string& aad_prefix_bytes);
+
+// Update last two bytes of page (or page header) module AAD
+void QuickUpdatePageAad(int32_t new_page_ordinal, std::string* AAD);
+
+// Wraps OpenSSL RAND_bytes function
+void RandBytes(unsigned char* buf, size_t num);
+
+// Ensure OpenSSL is initialized.
+//
+// This is only necessary in specific situations since OpenSSL otherwise
+// initializes itself automatically. For example, under Valgrind, a memory
+// leak will be reported if OpenSSL is initialized for the first time from
+// a worker thread; calling this function from the main thread prevents this.
+void EnsureBackendInitialized();
+
+} // namespace parquet::encryption
--- ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/encryption_internal.h.orig 2024-10-06 07:18:41.000000000 -0400
+++ ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/encryption_internal.h 2025-07-08 07:40:29.809908891 -0400
@@ -17,98 +17,8 @@
#pragma once
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "parquet/properties.h"
-#include "parquet/types.h"
-
-using parquet::ParquetCipher;
-
-namespace parquet {
-namespace encryption {
-
-constexpr int kGcmTagLength = 16;
-constexpr int kNonceLength = 12;
-
-// Module types
-constexpr int8_t kFooter = 0;
-constexpr int8_t kColumnMetaData = 1;
-constexpr int8_t kDataPage = 2;
-constexpr int8_t kDictionaryPage = 3;
-constexpr int8_t kDataPageHeader = 4;
-constexpr int8_t kDictionaryPageHeader = 5;
-constexpr int8_t kColumnIndex = 6;
-constexpr int8_t kOffsetIndex = 7;
-
-/// Performs AES encryption operations with GCM or CTR ciphers.
-class AesEncryptor {
- public:
- static AesEncryptor* Make(ParquetCipher::type alg_id, int key_len, bool metadata,
- std::vector<AesEncryptor*>* all_encryptors);
-
- ~AesEncryptor();
-
- /// Size difference between plaintext and ciphertext, for this cipher.
- int CiphertextSizeDelta();
-
- /// Encrypts plaintext with the key and aad. Key length is passed only for validation.
- /// If different from value in constructor, exception will be thrown.
- int Encrypt(const uint8_t* plaintext, int plaintext_len, const uint8_t* key,
- int key_len, const uint8_t* aad, int aad_len, uint8_t* ciphertext);
-
- /// Encrypts plaintext footer, in order to compute footer signature (tag).
- int SignedFooterEncrypt(const uint8_t* footer, int footer_len, const uint8_t* key,
- int key_len, const uint8_t* aad, int aad_len,
- const uint8_t* nonce, uint8_t* encrypted_footer);
-
- void WipeOut();
-
- private:
- /// Can serve one key length only. Possible values: 16, 24, 32 bytes.
- explicit AesEncryptor(ParquetCipher::type alg_id, int key_len, bool metadata);
- // PIMPL Idiom
- class AesEncryptorImpl;
- std::unique_ptr<AesEncryptorImpl> impl_;
-};
-
-/// Performs AES decryption operations with GCM or CTR ciphers.
-class AesDecryptor {
- public:
- static AesDecryptor* Make(ParquetCipher::type alg_id, int key_len, bool metadata,
- std::vector<AesDecryptor*>* all_decryptors);
-
- ~AesDecryptor();
- void WipeOut();
-
- /// Size difference between plaintext and ciphertext, for this cipher.
- int CiphertextSizeDelta();
-
- /// Decrypts ciphertext with the key and aad. Key length is passed only for
- /// validation. If different from value in constructor, exception will be thrown.
- int Decrypt(const uint8_t* ciphertext, int ciphertext_len, const uint8_t* key,
- int key_len, const uint8_t* aad, int aad_len, uint8_t* plaintext);
-
- private:
- /// Can serve one key length only. Possible values: 16, 24, 32 bytes.
- explicit AesDecryptor(ParquetCipher::type alg_id, int key_len, bool metadata);
- // PIMPL Idiom
- class AesDecryptorImpl;
- std::unique_ptr<AesDecryptorImpl> impl_;
-};
-
-std::string CreateModuleAad(const std::string& file_aad, int8_t module_type,
- int16_t row_group_ordinal, int16_t column_ordinal,
- int16_t page_ordinal);
-
-std::string CreateFooterAad(const std::string& aad_prefix_bytes);
-
-// Update last two bytes of page (or page header) module AAD
-void QuickUpdatePageAad(const std::string& AAD, int16_t new_page_ordinal);
-
-// Wraps OpenSSL RAND_bytes function
-void RandBytes(unsigned char* buf, int num);
-
-} // namespace encryption
-} // namespace parquet
+#if ARROW_VERSION_MAJOR < 20
+#include "encryption_internal_19.h"
+#else
+#include "encryption_internal_20.h"
+#endif
--- ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/internal_file_decryptor_19.h.orig 2025-07-08 07:40:29.814292389 -0400
+++ ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/internal_file_decryptor_19.h 2025-07-08 07:40:29.813727465 -0400
@@ -0,0 +1,121 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#pragma once
+
+#include <map>
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "parquet/schema.h"
+
+namespace parquet {
+
+namespace encryption {
+class AesDecryptor;
+class AesEncryptor;
+} // namespace encryption
+
+class FileDecryptionProperties;
+
+class PARQUET_EXPORT Decryptor {
+ public:
+ Decryptor(encryption::AesDecryptor* decryptor, const std::string& key,
+ const std::string& file_aad, const std::string& aad,
+ ::arrow::MemoryPool* pool);
+
+ const std::string& file_aad() const { return file_aad_; }
+ void UpdateAad(const std::string& aad) { aad_ = aad; }
+ ::arrow::MemoryPool* pool() { return pool_; }
+
+ int CiphertextSizeDelta();
+ int Decrypt(const uint8_t* ciphertext, int ciphertext_len, uint8_t* plaintext);
+
+ private:
+ encryption::AesDecryptor* aes_decryptor_;
+ std::string key_;
+ std::string file_aad_;
+ std::string aad_;
+ ::arrow::MemoryPool* pool_;
+};
+
+class InternalFileDecryptor {
+ public:
+ explicit InternalFileDecryptor(FileDecryptionProperties* properties,
+ const std::string& file_aad,
+ ParquetCipher::type algorithm,
+ const std::string& footer_key_metadata,
+ ::arrow::MemoryPool* pool);
+
+ std::string& file_aad() { return file_aad_; }
+
+ std::string GetFooterKey();
+
+ ParquetCipher::type algorithm() { return algorithm_; }
+
+ std::string& footer_key_metadata() { return footer_key_metadata_; }
+
+ FileDecryptionProperties* properties() { return properties_; }
+
+ void WipeOutDecryptionKeys();
+
+ ::arrow::MemoryPool* pool() { return pool_; }
+
+ std::shared_ptr<Decryptor> GetFooterDecryptor();
+ std::shared_ptr<Decryptor> GetFooterDecryptorForColumnMeta(const std::string& aad = "");
+ std::shared_ptr<Decryptor> GetFooterDecryptorForColumnData(const std::string& aad = "");
+ std::shared_ptr<Decryptor> GetColumnMetaDecryptor(
+ const std::string& column_path, const std::string& column_key_metadata,
+ const std::string& aad = "");
+ std::shared_ptr<Decryptor> GetColumnDataDecryptor(
+ const std::string& column_path, const std::string& column_key_metadata,
+ const std::string& aad = "");
+
+ private:
+ FileDecryptionProperties* properties_;
+ // Concatenation of aad_prefix (if exists) and aad_file_unique
+ std::string file_aad_;
+ std::map<std::string, std::shared_ptr<Decryptor>> column_data_map_;
+ std::map<std::string, std::shared_ptr<Decryptor>> column_metadata_map_;
+
+ std::shared_ptr<Decryptor> footer_metadata_decryptor_;
+ std::shared_ptr<Decryptor> footer_data_decryptor_;
+ ParquetCipher::type algorithm_;
+ std::string footer_key_metadata_;
+ std::vector<encryption::AesDecryptor*> all_decryptors_;
+
+ /// Key must be 16, 24 or 32 bytes in length. Thus there could be up to three
+ // types of meta_decryptors and data_decryptors.
+ std::unique_ptr<encryption::AesDecryptor> meta_decryptor_[3];
+ std::unique_ptr<encryption::AesDecryptor> data_decryptor_[3];
+
+ ::arrow::MemoryPool* pool_;
+
+ std::shared_ptr<Decryptor> GetFooterDecryptor(const std::string& aad, bool metadata);
+ std::shared_ptr<Decryptor> GetColumnDecryptor(const std::string& column_path,
+ const std::string& column_key_metadata,
+ const std::string& aad,
+ bool metadata = false);
+
+ encryption::AesDecryptor* GetMetaAesDecryptor(size_t key_size);
+ encryption::AesDecryptor* GetDataAesDecryptor(size_t key_size);
+
+ int MapKeyLenToDecryptorArrayIndex(int key_len);
+};
+
+} // namespace parquet
--- ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/internal_file_decryptor_20.h.orig 2025-07-08 07:40:29.815411998 -0400
+++ ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/internal_file_decryptor_20.h 2025-07-08 07:40:29.815245155 -0400
@@ -0,0 +1,148 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#pragma once
+
+#include <memory>
+#include <mutex>
+#include <string>
+#include <vector>
+
+#include "parquet/schema.h"
+
+namespace parquet {
+
+namespace encryption {
+class AesDecryptor;
+class AesEncryptor;
+} // namespace encryption
+
+class ColumnCryptoMetaData;
+class FileDecryptionProperties;
+
+// An object handling decryption using well-known encryption parameters
+//
+// CAUTION: Decryptor objects are not thread-safe.
+class PARQUET_EXPORT Decryptor {
+ public:
+ Decryptor(std::unique_ptr<encryption::AesDecryptor> decryptor, const std::string& key,
+ const std::string& file_aad, const std::string& aad,
+ ::arrow::MemoryPool* pool);
+ ~Decryptor();
+
+ const std::string& file_aad() const { return file_aad_; }
+ void UpdateAad(const std::string& aad) { aad_ = aad; }
+ ::arrow::MemoryPool* pool() { return pool_; }
+
+ [[nodiscard]] int32_t PlaintextLength(int32_t ciphertext_len) const;
+ [[nodiscard]] int32_t CiphertextLength(int32_t plaintext_len) const;
+ int32_t Decrypt(::arrow::util::span<const uint8_t> ciphertext,
+ ::arrow::util::span<uint8_t> plaintext);
+
+ private:
+ std::unique_ptr<encryption::AesDecryptor> aes_decryptor_;
+ std::string key_;
+ std::string file_aad_;
+ std::string aad_;
+ ::arrow::MemoryPool* pool_;
+};
+
+class InternalFileDecryptor {
+ public:
+ explicit InternalFileDecryptor(std::shared_ptr<FileDecryptionProperties> properties,
+ const std::string& file_aad,
+ ParquetCipher::type algorithm,
+ const std::string& footer_key_metadata,
+ ::arrow::MemoryPool* pool);
+
+ const std::string& file_aad() const { return file_aad_; }
+
+ std::string GetFooterKey();
+
+ ParquetCipher::type algorithm() const { return algorithm_; }
+
+ const std::string& footer_key_metadata() const { return footer_key_metadata_; }
+
+ const std::shared_ptr<FileDecryptionProperties>& properties() const {
+ return properties_;
+ }
+
+ ::arrow::MemoryPool* pool() const { return pool_; }
+
+ // Get a Decryptor instance for the Parquet footer
+ std::unique_ptr<Decryptor> GetFooterDecryptor();
+
+ // Get a Decryptor instance for column chunk metadata.
+ std::unique_ptr<Decryptor> GetColumnMetaDecryptor(
+ const std::string& column_path, const std::string& column_key_metadata,
+ const std::string& aad = "") {
+ return GetColumnDecryptor(column_path, column_key_metadata, aad, /*metadata=*/true);
+ }
+
+ // Get a Decryptor instance for column chunk data.
+ std::unique_ptr<Decryptor> GetColumnDataDecryptor(
+ const std::string& column_path, const std::string& column_key_metadata,
+ const std::string& aad = "") {
+ return GetColumnDecryptor(column_path, column_key_metadata, aad, /*metadata=*/false);
+ }
+
+ // Get a Decryptor factory for column chunk metadata.
+ //
+ // This is typically useful if multi-threaded decryption is expected.
+ // This is a static function as it accepts a null `InternalFileDecryptor*`
+ // argument if the column is not encrypted.
+ static std::function<std::unique_ptr<Decryptor>()> GetColumnMetaDecryptorFactory(
+ InternalFileDecryptor*, const ColumnCryptoMetaData* crypto_metadata,
+ const std::string& aad = "");
+ // Get a Decryptor factory for column chunk data.
+ //
+ // This is typically useful if multi-threaded decryption is expected.
+ // This is a static function as it accepts a null `InternalFileDecryptor*`
+ // argument if the column is not encrypted.
+ static std::function<std::unique_ptr<Decryptor>()> GetColumnDataDecryptorFactory(
+ InternalFileDecryptor*, const ColumnCryptoMetaData* crypto_metadata,
+ const std::string& aad = "");
+
+ private:
+ std::shared_ptr<FileDecryptionProperties> properties_;
+ // Concatenation of aad_prefix (if exists) and aad_file_unique
+ std::string file_aad_;
+ ParquetCipher::type algorithm_;
+ std::string footer_key_metadata_;
+ ::arrow::MemoryPool* pool_;
+
+ // Protects footer_key_ updates
+ std::mutex mutex_;
+ std::string footer_key_;
+
+ std::string GetColumnKey(const std::string& column_path,
+ const std::string& column_key_metadata);
+
+ std::unique_ptr<Decryptor> GetFooterDecryptor(const std::string& aad, bool metadata);
+
+ std::unique_ptr<Decryptor> GetColumnDecryptor(const std::string& column_path,
+ const std::string& column_key_metadata,
+ const std::string& aad, bool metadata);
+
+ std::function<std::unique_ptr<Decryptor>()> GetColumnDecryptorFactory(
+ const ColumnCryptoMetaData* crypto_metadata, const std::string& aad, bool metadata);
+};
+
+void UpdateDecryptor(Decryptor* decryptor, int16_t row_group_ordinal,
+ int16_t column_ordinal, int8_t module_type);
+
+} // namespace parquet
--- ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/internal_file_decryptor.h.orig 2024-10-06 07:18:41.000000000 -0400
+++ ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/internal_file_decryptor.h 2025-07-08 07:40:29.813623143 -0400
@@ -17,105 +17,8 @@
#pragma once
-#include <map>
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "parquet/schema.h"
-
-namespace parquet {
-
-namespace encryption {
-class AesDecryptor;
-class AesEncryptor;
-} // namespace encryption
-
-class FileDecryptionProperties;
-
-class PARQUET_EXPORT Decryptor {
- public:
- Decryptor(encryption::AesDecryptor* decryptor, const std::string& key,
- const std::string& file_aad, const std::string& aad,
- ::arrow::MemoryPool* pool);
-
- const std::string& file_aad() const { return file_aad_; }
- void UpdateAad(const std::string& aad) { aad_ = aad; }
- ::arrow::MemoryPool* pool() { return pool_; }
-
- int CiphertextSizeDelta();
- int Decrypt(const uint8_t* ciphertext, int ciphertext_len, uint8_t* plaintext);
-
- private:
- encryption::AesDecryptor* aes_decryptor_;
- std::string key_;
- std::string file_aad_;
- std::string aad_;
- ::arrow::MemoryPool* pool_;
-};
-
-class InternalFileDecryptor {
- public:
- explicit InternalFileDecryptor(FileDecryptionProperties* properties,
- const std::string& file_aad,
- ParquetCipher::type algorithm,
- const std::string& footer_key_metadata,
- ::arrow::MemoryPool* pool);
-
- std::string& file_aad() { return file_aad_; }
-
- std::string GetFooterKey();
-
- ParquetCipher::type algorithm() { return algorithm_; }
-
- std::string& footer_key_metadata() { return footer_key_metadata_; }
-
- FileDecryptionProperties* properties() { return properties_; }
-
- void WipeOutDecryptionKeys();
-
- ::arrow::MemoryPool* pool() { return pool_; }
-
- std::shared_ptr<Decryptor> GetFooterDecryptor();
- std::shared_ptr<Decryptor> GetFooterDecryptorForColumnMeta(const std::string& aad = "");
- std::shared_ptr<Decryptor> GetFooterDecryptorForColumnData(const std::string& aad = "");
- std::shared_ptr<Decryptor> GetColumnMetaDecryptor(
- const std::string& column_path, const std::string& column_key_metadata,
- const std::string& aad = "");
- std::shared_ptr<Decryptor> GetColumnDataDecryptor(
- const std::string& column_path, const std::string& column_key_metadata,
- const std::string& aad = "");
-
- private:
- FileDecryptionProperties* properties_;
- // Concatenation of aad_prefix (if exists) and aad_file_unique
- std::string file_aad_;
- std::map<std::string, std::shared_ptr<Decryptor>> column_data_map_;
- std::map<std::string, std::shared_ptr<Decryptor>> column_metadata_map_;
-
- std::shared_ptr<Decryptor> footer_metadata_decryptor_;
- std::shared_ptr<Decryptor> footer_data_decryptor_;
- ParquetCipher::type algorithm_;
- std::string footer_key_metadata_;
- std::vector<encryption::AesDecryptor*> all_decryptors_;
-
- /// Key must be 16, 24 or 32 bytes in length. Thus there could be up to three
- // types of meta_decryptors and data_decryptors.
- std::unique_ptr<encryption::AesDecryptor> meta_decryptor_[3];
- std::unique_ptr<encryption::AesDecryptor> data_decryptor_[3];
-
- ::arrow::MemoryPool* pool_;
-
- std::shared_ptr<Decryptor> GetFooterDecryptor(const std::string& aad, bool metadata);
- std::shared_ptr<Decryptor> GetColumnDecryptor(const std::string& column_path,
- const std::string& column_key_metadata,
- const std::string& aad,
- bool metadata = false);
-
- encryption::AesDecryptor* GetMetaAesDecryptor(size_t key_size);
- encryption::AesDecryptor* GetDataAesDecryptor(size_t key_size);
-
- int MapKeyLenToDecryptorArrayIndex(int key_len);
-};
-
-} // namespace parquet
+#if ARROW_VERSION_MAJOR < 20
+#include "internal_file_decryptor_19.h"
+#else
+#include "internal_file_decryptor_20.h"
+#endif
--- ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/s3select_parquet_intrf.h.orig 2024-10-06 07:18:41.000000000 -0400
+++ ceph-20.0.0-2362-ga9d20fc0/src/s3select/include/s3select_parquet_intrf.h 2025-07-08 07:40:29.816727417 -0400
@@ -1002,6 +1002,7 @@
throw ParquetException("Encrypted files cannot contain more than 32767 row groups");
}
+#if ARROW_VERSION_MAJOR < 20
// The column is encrypted
std::shared_ptr<::parquet::Decryptor> meta_decryptor;
std::shared_ptr<Decryptor> data_decryptor;
@@ -1035,6 +1036,25 @@
false,
#endif
properties_.memory_pool(), &ctx);
+#else
+ // Arrow 20+ version uses factory functions instead of shared_ptr for decryptors
+ std::function<std::unique_ptr<Decryptor>()> meta_decryptor_factory =
+ InternalFileDecryptor::GetColumnMetaDecryptorFactory(file_decryptor_.get(), crypto_metadata.get());
+ std::function<std::unique_ptr<Decryptor>()> data_decryptor_factory =
+ InternalFileDecryptor::GetColumnDataDecryptorFactory(file_decryptor_.get(), crypto_metadata.get());
+
+ const CryptoContext ctx {
+ col->has_dictionary_page(),
+ row_group_ordinal_,
+ static_cast<int16_t>(i),
+ meta_decryptor_factory,
+ data_decryptor_factory,
+ };
+
+ return PageReader::Open(stream, col->num_values(), col->compression(),
+ false,
+ properties_.memory_pool(), &ctx);
+#endif
}
private:
@@ -1071,7 +1091,9 @@
}
void Close() override {
+#if ARROW_VERSION_MAJOR < 20
if (file_decryptor_) file_decryptor_->WipeOutDecryptionKeys();
+#endif
}
std::shared_ptr<RowGroupReader> GetRowGroup(int i) override {
@@ -1249,9 +1271,17 @@
// Handle AAD prefix
EncryptionAlgorithm algo = file_crypto_metadata->encryption_algorithm();
std::string file_aad = HandleAadPrefix(file_decryption_properties, algo);
+#if ARROW_VERSION_MAJOR < 20
file_decryptor_ = std::make_shared<::parquet::InternalFileDecryptor>(
file_decryption_properties, file_aad, algo.algorithm,
file_crypto_metadata->key_metadata(), properties_.memory_pool());
+#else
+ // Arrow 20+ takes a shared_ptr to FileDecryptionProperties
+ file_decryptor_ = std::make_shared<::parquet::InternalFileDecryptor>(
+ std::shared_ptr<FileDecryptionProperties>(file_decryption_properties),
+ file_aad, algo.algorithm,
+ file_crypto_metadata->key_metadata(), properties_.memory_pool());
+#endif
int64_t metadata_offset = source_size_ - kFooterSize - footer_len + crypto_metadata_len;
uint32_t metadata_len = footer_len - crypto_metadata_len;
@@ -1282,9 +1312,18 @@
EncryptionAlgorithm algo = file_metadata_->encryption_algorithm();
// Handle AAD prefix
std::string file_aad = HandleAadPrefix(file_decryption_properties, algo);
+#if ARROW_VERSION_MAJOR < 20
file_decryptor_ = std::make_shared<::parquet::InternalFileDecryptor>(
file_decryption_properties, file_aad, algo.algorithm,
file_metadata_->footer_signing_key_metadata(), properties_.memory_pool());
+#else
+ // Arrow 20+ takes a shared_ptr to FileDecryptionProperties
+ file_decryptor_ = std::make_shared<::parquet::InternalFileDecryptor>(
+ std::shared_ptr<FileDecryptionProperties>(file_decryption_properties),
+ file_aad, algo.algorithm,
+ file_metadata_->footer_signing_key_metadata(), properties_.memory_pool());
+ // In Arrow 20+, no need to set file_decryptor in metadata
+#endif
// set the InternalFileDecryptor in the metadata as well, as it's used
// for signature verification and for ColumnChunkMetaData creation.
#if GAL_set_file_decryptor_declare_private
@@ -0,0 +1,10 @@
--- ceph-20.2.0/src/crimson/common/smp_helpers.h.orig 2025-12-04 10:38:34.906915674 -0500
+++ ceph-20.2.0/src/crimson/common/smp_helpers.h 2025-12-04 10:38:45.200845804 -0500
@@ -8,6 +8,7 @@
#include <optional>
#include <type_traits>
#include <vector>
+#include <coroutine>
#include <seastar/core/shared_future.hh>
#include <seastar/core/smp.hh>
+70
View File
@@ -0,0 +1,70 @@
--- ceph-20.2.0/src/common/Formatter.h.orig 2026-01-06 17:47:18.437014517 -0500
+++ ceph-20.2.0/src/common/Formatter.h 2026-01-06 17:47:53.015404074 -0500
@@ -12,6 +12,7 @@
#include <memory>
#include <vector>
#include <stdarg.h>
+#include <cstdint>
#include <sstream>
#include <map>
#include <vector>
--- ceph-20.2.0/src/mds/Locker.cc.orig 2026-01-07 10:34:12.731210930 -0500
+++ ceph-20.2.0/src/mds/Locker.cc 2026-01-07 10:34:35.627823155 -0500
@@ -4489,7 +4489,7 @@
dout(7) << "handle_client_lease client." << client << " renew on " << *dn
<< (!dn->lock.can_lease(client)?", revoking lease":"") << dendl;
if (dn->lock.can_lease(client)) {
- auto reply = make_message<MClientLease>(*m);
+ auto reply = ceph::make_message<MClientLease>(*m);
int pool = 1; // fixme.. do something smart!
reply->h.duration_ms = (int)(1000 * mdcache->client_lease_durations[pool]);
reply->h.seq = ++l->seq;
--- ceph-20.2.0/src/mds/Server.cc.orig 2026-01-07 11:27:13.532097596 -0500
+++ ceph-20.2.0/src/mds/Server.cc 2026-01-07 11:28:42.411581266 -0500
@@ -150,7 +150,7 @@
}
}
batch_reqs.clear();
- server->reply_client_request(mdr, make_message<MClientReply>(*mdr->client_request, r));
+ server->reply_client_request(mdr, ceph::make_message<MClientReply>(*mdr->client_request, r));
}
void print(std::ostream& o) const override {
o << "[batch front=" << *mdr << "]";
@@ -2142,7 +2142,7 @@
dout(20) << __func__ << ": batch head " << *mdr << dendl;
mdr->release_batch_op()->respond(r);
} else {
- reply_client_request(mdr, make_message<MClientReply>(*mdr->client_request, r));
+ reply_client_request(mdr, ceph::make_message<MClientReply>(*mdr->client_request, r));
}
} else if (mdr->internal_op > -1) {
dout(10) << __func__ << ": completing with result " << cpp_strerror(r) << " on internal " << *mdr << dendl;
@@ -2290,7 +2290,7 @@
}
- auto reply = make_message<MClientReply>(*req, 0);
+ auto reply = ceph::make_message<MClientReply>(*req, 0);
reply->set_unsafe();
// mark xlocks "done", indicating that we are exposing uncommitted changes.
@@ -2632,7 +2632,7 @@
req->get_op() != CEPH_MDS_OP_OPEN &&
req->get_op() != CEPH_MDS_OP_CREATE)) {
dout(5) << "already completed " << req->get_reqid() << dendl;
- auto reply = make_message<MClientReply>(*req, 0);
+ auto reply = ceph::make_message<MClientReply>(*req, 0);
if (created != inodeno_t()) {
bufferlist extra;
set_reply_extra_bl(req, created, extra);
--- ceph-20.2.0/src/mds/MDCache.cc.orig 2026-01-07 11:28:48.882470871 -0500
+++ ceph-20.2.0/src/mds/MDCache.cc 2026-01-07 11:29:12.405069562 -0500
@@ -10535,7 +10535,7 @@
CInode *cur = 0;
- auto reply = make_message<MDiscoverReply>(*dis);
+ auto reply = ceph::make_message<MDiscoverReply>(*dis);
snapid_t snapid = dis->get_snapid();
+873 -1205
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
SHA512 (ceph-16.2.7.tar.gz) = eab047e646970d444acf1064d98237b8b1677fb16b5e771082d55880f7bc6d8bdb278c2fe514c82ae12c438878d9ecea29139fa6b8d890f9f737138f10fb740c
SHA512 (ceph-20.2.0.tar.gz) = 5678586fe663ddc3d8ca4ded7a2b811025784abc5f493164d2f1e590608a72176a722d5984d83400c501deeb526e0a108c2e7e3d969dea7bf6ce0d0b42190ea5