diff --git a/testing/ceph17/11-parse_rfc1123_alt.patch b/testing/ceph17/11-parse_rfc1123_alt.patch index 32a7cd8a1306ebc3620fca15c51ec5740a116acd..4c1b5c25f7076fee4af7041fa1a105afda3d4c36 100644 --- a/testing/ceph17/11-parse_rfc1123_alt.patch +++ b/testing/ceph17/11-parse_rfc1123_alt.patch @@ -25,7 +25,7 @@ https://elixir.bootlin.com/glibc/latest/source/time/strptime_l.c#L776 + t->tm_gmtoff = 0; + } else { + if (*s != '+' && *s != '-') -+ return NULL; ++ return false; + bool neg = *s++ == '-'; + int n = 0; + while (n < 4 && *s >= '0' && *s <= '9') { @@ -38,10 +38,10 @@ https://elixir.bootlin.com/glibc/latest/source/time/strptime_l.c#L776 + val *= 100; + else if (n != 4) + /* Only two or four digits recognized. */ -+ return NULL; ++ return false; + else if (val % 100 >= 60) + /* Minutes valid range is 0 through 59. */ -+ return NULL; ++ return false; + t->tm_gmtoff = (val / 100) * 3600 + (val % 100) * 60; + if (neg) + t->tm_gmtoff = -t->tm_gmtoff; diff --git a/testing/ceph17/46-fmt9-1.patch b/testing/ceph17/46-fmt9-1.patch new file mode 100644 index 0000000000000000000000000000000000000000..40788bbee68410b1c97ac41f773d41038ce72ece --- /dev/null +++ b/testing/ceph17/46-fmt9-1.patch @@ -0,0 +1,26 @@ +fix for fmt 9 + +diff --git a/src/mon/LogMonitor.h b/src/mon/LogMonitor.h +index 04d63c5..64dc076 100644 +--- a/src/mon/LogMonitor.h ++++ b/src/mon/LogMonitor.h +@@ -19,6 +19,7 @@ + #include <map> + #include <set> + ++#define FMT_DEPRECATED_OSTREAM + #include <fmt/format.h> + #include <fmt/ostream.h> + +diff --git a/src/tools/neorados.cc b/src/tools/neorados.cc +index 516dfbc..9587acb 100644 +--- a/src/tools/neorados.cc ++++ b/src/tools/neorados.cc +@@ -14,6 +14,7 @@ + */ + + #define BOOST_COROUTINES_NO_DEPRECATION_WARNING ++#define FMT_DEPRECATED_OSTREAM + + #include <algorithm> + #include <cassert> diff --git a/testing/ceph17/46-fmt9-2.patch b/testing/ceph17/46-fmt9-2.patch new file mode 100644 index 0000000000000000000000000000000000000000..936c430604166b527e2b93f7d3e9b6ec8f3882db --- /dev/null +++ b/testing/ceph17/46-fmt9-2.patch @@ -0,0 +1,107 @@ +Patch-Source: https://github.com/ceph/ceph/commit/c0a3d46029757863e6c4b7c317ed31236b8c1345 +From c0a3d46029757863e6c4b7c317ed31236b8c1345 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E8=83=A1=E7=8E=AE=E6=96=87?= <huww98@outlook.com> +Date: Wed, 22 Dec 2021 01:46:32 +0800 +Subject: [PATCH] mon: use fmt::format for stderr cluster logging +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Just like 8e78ca5f958 but for mon cluster log. + +Signed-off-by: 胡玮文 <huww98@outlook.com> +--- + src/mon/LogMonitor.cc | 26 ++++++++++++++------------ + src/mon/LogMonitor.h | 2 +- + 2 files changed, 15 insertions(+), 13 deletions(-) + +diff --git a/src/mon/LogMonitor.cc b/src/mon/LogMonitor.cc +index 094ea54b65247..e6d1029a1f7b3 100644 +--- a/src/mon/LogMonitor.cc ++++ b/src/mon/LogMonitor.cc +@@ -42,6 +42,7 @@ + + #include <boost/algorithm/string/predicate.hpp> + ++#include <iterator> + #include <sstream> + #include <syslog.h> + +@@ -354,10 +355,6 @@ void LogMonitor::log_external(const LogEntry& le) + channel = CLOG_CHANNEL_CLUSTER; + } + +- if (g_conf().get_val<bool>("mon_cluster_log_to_stderr")) { +- cerr << channel << " " << le << std::endl; +- } +- + if (channels.do_log_to_syslog(channel)) { + string level = channels.get_level(channel); + string facility = channels.get_facility(channel); +@@ -386,21 +383,19 @@ void LogMonitor::log_external(const LogEntry& le) + dout(7) << "journald: " << channel << dendl; + } + ++ bool do_stderr = g_conf().get_val<bool>("mon_cluster_log_to_stderr"); ++ int fd = -1; + if (g_conf()->mon_cluster_log_to_file) { + if (this->log_rotated.exchange(false)) { + this->log_external_close_fds(); + } + + auto p = channel_fds.find(channel); +- int fd; + if (p == channel_fds.end()) { + string log_file = channels.get_log_file(channel); + dout(20) << __func__ << " logging for channel '" << channel + << "' to file '" << log_file << "'" << dendl; +- if (log_file.empty()) { +- // do not log this channel +- fd = -1; +- } else { ++ if (!log_file.empty()) { + fd = ::open(log_file.c_str(), O_WRONLY|O_APPEND|O_CREAT|O_CLOEXEC, 0600); + if (fd < 0) { + int err = -errno; +@@ -413,11 +408,12 @@ void LogMonitor::log_external(const LogEntry& le) + } else { + fd = p->second; + } ++ } ++ if (do_stderr || fd >= 0) { ++ fmt::format_to(std::back_inserter(log_buffer), "{}\n", le); + + if (fd >= 0) { +- fmt::format_to(file_log_buffer, "{}\n", le); +- int err = safe_write(fd, file_log_buffer.data(), file_log_buffer.size()); +- file_log_buffer.clear(); ++ int err = safe_write(fd, log_buffer.data(), log_buffer.size()); + if (err < 0) { + dout(1) << "error writing to '" << channels.get_log_file(channel) + << "' for channel '" << channel +@@ -426,6 +422,12 @@ void LogMonitor::log_external(const LogEntry& le) + channel_fds.erase(channel); + } + } ++ ++ if (do_stderr) { ++ fmt::print(std::cerr, "{} {}", channel, std::string_view(log_buffer.data(), log_buffer.size())); ++ } ++ ++ log_buffer.clear(); + } + } + +diff --git a/src/mon/LogMonitor.h b/src/mon/LogMonitor.h +index f6b433096e45a..1eccaa5c20379 100644 +--- a/src/mon/LogMonitor.h ++++ b/src/mon/LogMonitor.h +@@ -51,7 +51,7 @@ class LogMonitor : public PaxosService, + version_t external_log_to = 0; + std::map<std::string, int> channel_fds; + +- fmt::memory_buffer file_log_buffer; ++ fmt::memory_buffer log_buffer; + std::atomic<bool> log_rotated = false; + + struct log_channel_info { diff --git a/testing/ceph17/APKBUILD b/testing/ceph17/APKBUILD index b13ff627933ebd2826e2f4c74a93a3fa2874746f..704fc1f23b0b872d665502660411cffcc5bbb1e6 100644 --- a/testing/ceph17/APKBUILD +++ b/testing/ceph17/APKBUILD @@ -4,7 +4,7 @@ # Maintainer: Duncan Bellamy <dunk@denkimushi.com> _pkgname=ceph pkgver=17.2.3 -pkgrel=3 +pkgrel=4 _majorver=${pkgver%%.*} pkgname=$_pkgname$_majorver pkgdesc="Ceph is a distributed object store and file system, version $_majorver" @@ -92,6 +92,7 @@ makedepends=" openssl-dev>3 procps python3-dev + py3-setuptools py3-sphinx rabbitmq-c-dev readline-dev @@ -133,9 +134,13 @@ source="https://download.ceph.com/tarballs/ceph-$pkgver.tar.gz 46-statx.patch $pkgname-gcc12.patch::https://github.com/ceph/ceph/commit/963d756ded40f5adf2efef53893c917bec1845c1.patch $pkgname-gcc12-memory.patch::https://github.com/ceph/ceph/commit/7c381ba985bd1398ef7d145cc00fae9d0db510e3.patch + 46-fmt9-1.patch + 46-fmt9-2.patch + boost.patch " # to prevent things from installing ceph17 libs, since they have the same SOMAJOR sonameprefix="ceph$_majorver:so:" +options="!check" # todo subpackages=" $pkgname-doc @@ -200,7 +205,7 @@ prepare() { build() { export CEPH_BUILD_VIRTUALENV="$builddir" export NPM_REGISTRY="https://npm.open-registry.dev" - export CXXFLAGS="$CXXFLAGS -fpermissive -D STATX_INO=0x100U" + export CXXFLAGS="$CXXFLAGS -DSTATX_INO=0x100U" case "$CARCH" in s390x) _par="OFF" ;; @@ -209,11 +214,7 @@ build() { cmake -B build \ -G Ninja \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_BUILD_TYPE=MinSizeRel \ - "-DCMAKE_JOB_POOLS:STRING=compile=$((JOBS<16 ? JOBS : 16));link=2" \ - -DCMAKE_JOB_POOL_COMPILE:STRING=compile \ - -DCMAKE_JOB_POOL_LINK:STRING=link \ -DLUA_LIBRARIES=/usr/lib/lua"$_lua"/liblua.so \ -DALLOCATOR=libc \ -DCMAKE_INSTALL_PREFIX=/usr \ @@ -270,7 +271,7 @@ package() { install -m 600 -D sudoers.d/ceph-smartctl "$pkgdir"/etc/sudoers.d/ceph-smartctl # delete systemd related stuff - rm "$pkgdir"/usr/sbin/ceph-volume-systemd + rm -f "$pkgdir"/usr/sbin/ceph-volume-systemd # move docs to docs mkdir -p "$pkgdir"/usr/share/doc/ceph/dashboard @@ -636,7 +637,7 @@ fd6e057ba8440f69423e870dddb2705d68015089ff8d97356bdc359c2ab41e19351fb1c914330de6 ce5f162501f6b67fe254546dddf880d1a5b1d1a0fa69e0b1918de17e8da45c5c6124512b8cbd98b76f29d931403de0d11c5ffd330ed8ee1f4dc75bb04baecae3 ceph.initd 94687578411bf0de1b17555ed81c188c88ea63ac4a25993bd8fde9cf68afbbfbdec7b2d7c54fdcfbd4aed4eb78754e8061c308955596cbe037ff15b575874cc6 10-musl-fixes.patch 211e6f5f8fc962878196ec917984781eb4a8a9495bcc8d1729b34ac66abd2d4a0b7388ae2caee9d5deb664d54860d120a37215924625e82eac9bfca16179667a 11-dump_time_header_impl.patch -ff6e281388432ef864e72e00833f979c7bafe14d56c08968835a123466bf5e82239dfb8a7d89afa9caabba445217ae4ba0d7f89093c2edf243dd7cca3353efbe 11-parse_rfc1123_alt.patch +253a7bf9fa6a68547f2c9269570be86aa659ef75ab0ed4c9d1a53be70de1ca6079508f19fe5ddb02ed9edda349e121037f8ed4d6b5b0e640edaab863ce6b280d 11-parse_rfc1123_alt.patch 52b11dfd157dfb7363d2d3428901559189263caaa1c5f29a924b9be7ea012d4f54a887b22d2e2a3d756f6fd771f626505912dca52e6b19a56e018be45b7acb8b 11-s3_expiration_header.patch 3ba1801d9e2ab427ed14abd01881ef2115cd38309134145ec5a0a2a7adee2007e8b84b66ac1c7d5ea1139946aa87159dfb0768cd80181f42140979d790efe817 13-liburing.patch 03ef3598181c45ecba5600a1e4db7fd897ea9d3c8abdfaad2dcf84c7a241d9ba18e7f7885d69ee0572ee307fc94600a2784a07da909d37a51de27f8ded2e3a70 20-pci.patch @@ -651,4 +652,7 @@ f49427d3420574043e18cad517a6f81ee38a48b827195f564fd728fd2f2b32dbf17f9e21842b01bb f589c85baca2654e54ebd986ddda70a9b38116332c7c10aa5b75cd8a9c37e8d157baf0ad9ac91e36750046e7554d6831d93cb16d3967b5986155b8f38cff66c5 46-statx.patch e54ee5223831b23676f4de7a49fc2548e5deb524ecc0e75a6d4dac1c5e69e9f8fb9bb5fd2e423dd548ad7dd7e3d6c7b4a0e9e68ceaabfa1add8f025687bd4e60 ceph17-gcc12.patch f1b54767d8d3c12ca9fe9eafd0590efa8560a52b5c18f1121f8fd8b7e69d70578bdeae9a1803612a8a8d0032f039f8786b5152a889ba359850e3d3d30a6af8c7 ceph17-gcc12-memory.patch +0dee0e3ebbf49056db06f665084bbf41109f22e513f44b7e3602e8f8717f2f658b0e1cab3893ea2fbc86045bf7982a76bee7af5b90a55d6cc4f2698c95f18aa3 46-fmt9-1.patch +5220e02486ca5881a4902c73a79f903f3799ac352073a0a46eb37d48643a42bb48455768344db1770e27020bae3f11ba997aff6b5170decbdef6f601a89ab9c8 46-fmt9-2.patch +2c258789d8d2c1f3807a1536c88d875c694752a5a94d096da57ce1e779b449a1802b5b4a787a46356e237d0d0e848e95762901bd32ef79f68227f5d730aac5f8 boost.patch " diff --git a/testing/ceph17/boost.patch b/testing/ceph17/boost.patch new file mode 100644 index 0000000000000000000000000000000000000000..031e27c009b67d2aacc893c8bbec2b34c60cb6cd --- /dev/null +++ b/testing/ceph17/boost.patch @@ -0,0 +1,15 @@ +diff --git a/src/common/async/bind_like.h b/src/common/async/bind_like.h +index a7fdbb869..a647869d5 100644 +--- a/src/common/async/bind_like.h ++++ b/src/common/async/bind_like.h +@@ -15,9 +15,9 @@ + + #include <boost/asio/associated_allocator.hpp> + #include <boost/asio/associated_executor.hpp> ++#include <boost/asio/bind_allocator.hpp> + #include <boost/asio/bind_executor.hpp> + +-#include "common/async/bind_allocator.h" + + namespace ceph::async { + template<typename Executor, typename Allocator, typename Completion>