Debian Patches

Status for ceph/20.2.2+ds-8

Patch Description Author Forwarded Bugs Origin Last update
0001-enable-strsignal.patch This defines HAVE_REENTRANT_STRSIGNAL as sys_siglist no longer exists with glibc 2.32 and all programs should use strsignal instead.

===================================================================
James Page <james.page@ubuntu.com> no
0002-update-java-source-target-flags.patch use --release 7 instead of -source/-target (Closes: LP:1756854, LP: 1766998) Instead of -source/-target ceph should be build with --release for OpenJDK 9
or later so that the bootclasspath is also set, as per JEP-247, otherwise it
risks incurring into binary incompatibility when run with an earlier OpenJDK.
.
OpenJDK 21 minimum compatibility release has been updated to 8.

===================================================================
Tiago Stürmer Daitx <tiago.daitx@ubuntu.com> no
0003-disable-crypto.patch Using qat/isal optimizations on amd64 architecture only.
===================================================================
James Page <james.page@ubuntu.com> no
0004-civetweb-755-1.8-somaxconn-configurable_conf.patch Adds max_connections to reference configuration. Jesse Williamson <jesse.williamson@canonical.com> yes upstream upstream, https://github.com/civetweb/civetweb/pull/776/commits/3b8eb36676f70d06f8918ccf62029207c49cdda0
0005-civetweb-755-1.8-somaxconn-configurable.patch Makes SOMAXCONN user-configurable. Jesse Williamson <jesse.williamson@canonical.com> yes upstream upstream, https://github.com/civetweb/civetweb/pull/776/commits/febab7dc38c9671577603425c54c20f841e27f97
0006-civetweb-755-1.8-somaxconn-configurable_test.patch Adds max_connections to test display. Jesse Williamson <jesse.williamson@canonical.com> yes upstream upstream, https://github.com/civetweb/civetweb/pull/776/commits/3b8eb36676f70d06f8918ccf62029207c49cdda0
0007-debian-armel-armhf-buildflags.patch =================================================================== no
0008-fix-bash-completion-location.patch no
0009-32bit-fixes.patch Misc fixes for 32 bit architecture builds.
===================================================================
James Page <james.page@ubuntu.com> no
0010-add-option-to-disable-ceph-dencoder.patch =================================================================== no
0011-riscv64-link-pthread.patch Link with -pthread instead of -lpthread to fix FTBFS on riscv64
===================================================================
no 2020-03-01
0012-fix-ceph-osd-systemd-target.patch Fix systemd ceph-osd.target This helps when rebooting.

===================================================================
Thomas Goirand <zigo@debian.org> no 2021-01-28
0013-fix-CheckCxxAtomic-riscv64.patch Fix CheckCxxAtomic to detect more accurately Some platforms like riscv64 does not have full support for atomic primitives,
yet passes the test. Adding operator++ fixes this issue.
===================================================================
Eric Long <i@hack3r.moe> no 2022-08-30
0015-add-mips-support-to-toku-time.patch Add mips support to toku_time.h Thomas Goirand <zigo@debian.org> no 2023-10-04
0018-cmake-populate-liburing-include-and-library-paths-do.patch cmake: populate liburing include and library paths down to rocksdb external project

There are two problems:

1) The librocksdb does not use the built liburing if present.
2) You cannot turn off rocksdb's use of liburing with WITH_LIBURING=OFF.

This is to fix errors like:

FAILED: bin/ceph_test_keyvaluedb_iterators
: && /opt/rh/gcc-toolset-11/root/usr/bin/g++ -Og -g -rdynamic -pie src/test/ObjectMap/CMakeFiles/ceph_test_keyvaluedb_iterators.dir/test_keyvaluedb_iterators.cc.o src/test/ObjectMap/CMakeFiles/ceph_test_keyvaluedb_iterators.dir/KeyValueDBMemory.cc.o -o bin/ceph_test_keyvaluedb_iterators -Wl,-rpath,/home/pdonnell/scratch/build/lib lib/libos.a lib/libgmock_maind.a lib/libgmockd. a lib/libgtestd.a -lpthread -ldl lib/libglobal.a -ldl /usr/lib64/librt.so -lresolv -ldl lib/libblk.a /lib64/libaio.so src/liburing/src/liburing.a lib/libkv.a lib/libheap_profiler.a /lib64/libtcmalloc.so src/rocksdb/librocksdb.a /lib64/libsnappy.so /usr/lib64/liblz4.so /usr/lib64/libz.so /usr/lib64/libfuse.so lib/libceph-common.so.2 src/opentelemetry-cpp/sdk/src/trace/libopentelemetry_trace.a src/opentelemetry-cpp/sdk/src/resource/libopentelemetry_resources.a src/opentelemetry-cpp/sdk/src/common/libopentelemetry_common.a src/opentelemetry-cpp/exporters/jaeger/libopentelemetry_exporter_jaeger_trace.a src/opentelemetry-cpp/ext/src/http/client/curl/libopentelemetry_http_client_curl.a /usr/lib64/libcurl.so /usr/lib64/libthrift.so lib/libjson_spirit.a lib/libcommon_utf8.a lib/liberasure_code.a lib/libextblkdev.a -lcap boost/lib/libboost_thread.a boost/lib/libboost_chrono.a boost/lib/libboost_atomic.a boost/lib/libboost_system.a boost/lib/libboost_random.a boost/lib/libboost_program_options.a boost/lib/libboost_date_time.a boost/lib/libboost_iostreams.a boost/lib/libboost_regex.a lib/libfmtd.a /usr/lib64/libblkid.so -lpthread /usr/lib64/libcrypto.so /usr/lib64/libudev.so /usr/lib64/libz.so -ldl -lresolv -Wl,--as-needed -latomic && :
/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(fs_posix.cc.o): in function `io_uring_wait_cqe_nr':
/home/pdonnell/scratch/build/src/liburing/src/include/liburing.h:494: undefined reference to `__io_uring_get_cqe'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(fs_posix.cc.o): in function `rocksdb::(anonymous namespace)::PosixFileSystem::AbortIO(std::vector<void*, std::allocator<void*> >&)':
/home/pdonnell/ceph/src/rocksdb/env/fs_posix.cc:1125: undefined reference to `io_uring_get_sqe'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: /home/pdonnell/ceph/src/rocksdb/env/fs_posix.cc:1134: undefined reference to `io_uring_submit'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(fs_posix.cc.o): in function `rocksdb::CreateIOUring()':
/home/pdonnell/ceph/src/rocksdb/env/io_posix.h:272: undefined reference to `io_uring_queue_init'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(io_posix.cc.o): in function `io_uring_wait_cqe_nr':
/home/pdonnell/scratch/build/src/liburing/src/include/liburing.h:494: undefined reference to `__io_uring_get_cqe'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(io_posix.cc.o): in function `rocksdb::PosixRandomAccessFile::MultiRead(rocksdb::FSReadRequest*, unsigned long, rocksdb::IOOptions const&, rocksdb::IODebugContext*)':
/home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:674: undefined reference to `io_uring_get_sqe'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: /home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:684: undefined reference to `io_uring_submit_and_wait'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(io_posix.cc.o): in function `rocksdb::PosixRandomAccessFile::ReadAsync(rocksdb::FSReadRequest&, rocksdb::IOOptions const&, std::function<void (rocksdb::FSReadRequest const&, void*)>, void*, void**, std::function<void (void*)>*, rocksdb::IODebugContext*)':
/home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:901: undefined reference to `io_uring_get_sqe'
/opt/rh/gcc-toolset-11/root/usr/bin/ld: /home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:910: undefined reference to `io_uring_submit'
collect2: error: ld returned 1 exit status

(cherry picked from commit 8addb3598701410002688ce8ca8bdfcde2026ece)
Patrick Donnelly <pdonnell@redhat.com> no 2023-10-16
0019-cmake-promote-uring-package-search-to-top-level.patch cmake: promote uring package search to top-level
For use by multiple projects, rocksdb in particular.

(cherry picked from commit 3438de58f2af599901a19cf984e2e7cb1e9f6944)
Patrick Donnelly <pdonnell@redhat.com> no 2023-10-17
0020-cmake-rocksdb-make-sure-dependencies-build-before-ro.patch cmake/rocksdb: make sure dependencies build before rocksdb
some of rocksdb's dependencies may not have built by the time its
ExternalProject starts, so it can fail with missing headers or
libraries. for example, `uring::uring` may itself be an ExternalProject,
and its include directory won't exist until it starts building:

```
[89/1345] Performing configure step for 'rocksdb_ext'
...
CMake Error in CMakeLists.txt:
Imported target "uring::uring" includes non-existent path

"build/src/liburing/src/include"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

* The path was deleted, renamed, or moved to another location.

* An install or uninstall procedure did not complete successfully.

* The installation package was faulty and references files it does not
provide.
...
[91/1345] Performing download step (git clone) for 'liburing_ext'
Cloning into 'liburing'...
```

use `add_dependencies(rocksdb_ext)` to make sure all of its dependencies
are available before starting the build

(cherry picked from commit 353360581a0b802435ecf4273ba79f53deb710e6)
Casey Bodley <cbodley@redhat.com> no 2023-11-23
0027-udev-luks-on-rbd.patch udev rules for rbd to activate LUKS volumes (Closes: #1064970)
diff -Naurp ceph.orig/udev/50-rbd.rules ceph/udev/50-rbd.rules
Daniel Schreiber <daniel.schreiber@hrz.tu-chemnitz.de> no
0029-fix-ftbfs-loongson64.patch Fixing FTBFS on loong64 (Closes: #1055047, #1069022).
diff -Naurp ceph.orig/src/rocksdb/CMakeLists.txt ceph/src/rocksdb/CMakeLists.txt
Dandan Zhang <zhangdandan@loongson.cn> no
0031-cmake4.patch Raising cmake minimum version to 3.5 to fix FTBFS with cmake 4 (Closes: #1112772).
diff -Naurp ceph.orig/src/zstd/build/cmake/CMakeLists.txt ceph/src/zstd/build/cmake/CMakeLists.txt
Daniel Baumann <daniel@debian.org> no
0032-build-Include-cstdint-more-places.patch build: Include <cstdint> more places
Fix needed as of GCC 15.
"Adam C. Emerson" <aemerson@redhat.com> no 2025-05-08
0033-fix-missing-cmake_minimum_required-in-systemd-folder.patch Fix missing cmake_minimum_required in systemd folder. Thomas Goirand <zigo@debian.org> no 2026-06-22
0034-do-not-search-for-boost-system.patch Do not search for Boost::system This is gone from upstream boost, and is now implicit.

===================================================================
Thomas Goirand <zigo@debian.org> no 2026-06-20
0035-test-rgw-tools-Explicitly-use-Boost.Process-v1.patch [PATCH 3/5] {test,rgw,tools}: Explicitly use Boost.Process v1
Boost 1.88 removed the default of using the v1 interface
automatically. See https://github.com/boostorg/process/issues/480 for
an example.

https://www.boost.org/doc/libs/1_88_0/libs/process/doc/html/index.html#version_2
describes the new, preferred version which we probably want to migrate
to eventually.

In this change we simply include the v1 files and change the namespace
we alias.
"Adam C. Emerson" <aemerson@redhat.com> no 2025-05-08
0036-osdc-test-Supply-missing-executors-to-a-couple-calls.patch [PATCH 4/5] {osdc,test}: Supply missing executors to a couple calls in post

Likely due to the `inline_executor` changes, a couple places we
weren't finding an executor were erroring.

https://www.boost.org/doc/libs/latest/doc/html/boost_asio/history.html#boost_asio.history.asio_1_37_0
"Adam C. Emerson" <aemerson@redhat.com> no 2026-01-10
0037-rgw-rgw_ssd_driver-Include-asio-system_executor.hpp.patch [PATCH 5/5] rgw/rgw_ssd_driver: Include `<asio/system_executor.hpp>`
We were using it, but not including it. Boost.Asio 1.90 caused it to
break.
"Adam C. Emerson" <aemerson@redhat.com> no 2026-01-10
0038-common-fix-TrackedOp-intrusive_ptr-compatibility-wit.patch common: fix TrackedOp intrusive_ptr compatibility with boost 1.89+

Boost 1.89+ includes a new header sp_cxx20_constexpr.hpp (Copyright 2025)
that defines BOOST_SP_CXX20_CONSTEXPR macro. When building with C++20/23
mode and a compiler supporting constexpr dynamic allocation, this macro
expands to 'constexpr', making intrusive_ptr constructors and destructors
constexpr.

This change breaks builds that previously worked with boost 1.87 because:

In boost 1.87, the copy constructor was NOT constexpr:
intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px )
{
if( px != 0 ) intrusive_ptr_add_ref( px );
}

In boost 1.89+ with C++20/23, it becomes constexpr:
BOOST_SP_CXX20_CONSTEXPR intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px )
{
if( px != 0 ) intrusive_ptr_add_ref( px );
}

With constexpr, name lookup for intrusive_ptr_add_ref happens at compile
time during template instantiation, not at runtime. This changes the
lookup behavior significantly.

The issue is the "hidden friend" pattern: friend functions defined inside
a class are in the enclosing (global) namespace, but per C++ standard
[basic.lookup.argdep], they are ONLY visible via ADL (Argument-Dependent
Lookup), not via ordinary unqualified lookup.

When boost::intrusive_ptr's constexpr constructor tries to call
intrusive_ptr_add_ref(px) during template instantiation:
1. Ordinary unqualified lookup finds ceph::common::intrusive_ptr_add_ref
2. Since ordinary lookup succeeded, ADL is not performed [basic.lookup.argdep]/1
3. The friend functions in TrackedOp are never considered
4. Compilation fails due to signature mismatch (TrackedOp* vs RefCountedObject*)

In boost 1.87 (non-constexpr), ADL worked normally at runtime and found
the hidden friend functions. With constexpr in 1.89+, compile-time lookup
finds the wrong function before ADL can trigger.

The fix adds forward declarations before boost::intrusive_ptr<TrackedOp>
is first used. This makes the functions visible to ordinary lookup (not
just ADL), allowing the compiler to find them instead of the ceph::common
versions. The friend functions provide the actual definitions.

inline per the C++ standard, so no explicit inline specifier is needed
on the friend function definitions.

This issue manifests when building with:
- Boost 1.89+ (which introduced sp_cxx20_constexpr.hpp)
- C++23 standard mode
- Compiler with constexpr dynamic allocation support

Fixes build errors like:
error: 'intrusive_ptr_add_ref' was not declared in this scope
Kefu Chai <tchaikov@gmail.com> no 2025-12-23
0039-fix-MarkupSafe-cephadm-pinning.patch Fix MarkupSafe cephadm pinning The MarkupSafe version restriction makes cephadm FTBFS:
.
ERROR: Could not find a version that satisfies the requirement MarkupSafe<2.2,>=2.1.3 (from versions: none)
ERROR: No matching distribution found for MarkupSafe<2.2,>=2.1.3

===================================================================
Thomas Goirand <zigo@debian.org> no 2026-06-23
0040-fix-mock-import.patch Fix mock import
+See [the docs](https://docs.pytest.org/en/stable/how-to/cache.html) for more information.
Thomas Goirand <zigo@debian.org> no 2026-06-23
0041-accept-any-openssl-version.patch Accept any openssl version
===================================================================
Thomas Goirand <zigo@debian.org> no 2026-06-23

All known versions for source package 'ceph'

Links