The package rpms/ceph.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ceph.git/commit/?id=de4da99414a1b....
Change:
-%ifarch x86_64
Thanks.
Full change:
============
commit afd1749306ce4741a380c2a0c17ea5d4739564e8
Merge: 8fba3c4 f30bd24
Author: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
Date: Wed Mar 4 16:20:05 2020 -0500
Merge remote-tracking branch 'origin/f32' into f31
commit f30bd24a7b8db81f3a849b257293625dcd3dc9e4
Author: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
Date: Wed Mar 4 10:31:51 2020 -0500
ceph 14.2.8 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
diff --git a/0005-cmake-modules-CheckCxxAtomic.cmake.patch
b/0005-cmake-modules-CheckCxxAtomic.cmake.patch
new file mode 100644
index 0000000..71b7045
--- /dev/null
+++ b/0005-cmake-modules-CheckCxxAtomic.cmake.patch
@@ -0,0 +1,39 @@
+--- a/cmake/modules/CheckCxxAtomic.cmake 2020-03-02 12:49:20.000000000 -0500
++++ b/cmake/modules/CheckCxxAtomic.cmake 2020-01-29 12:53:56.952149798 -0500
+@@ -10,18 +10,29 @@
+ check_cxx_source_compiles("
+ #include <atomic>
+ #include <cstdint>
++
++#if __s390x__
++// Boost needs 16-byte atomics for tagged pointers.
++// These are implemented via inline instructions on the platform
++// if 16-byte alignment can be proven, and are delegated to libatomic
++// library routines otherwise. Whether or not alignment is provably
++// OK for a std::atomic unfortunately depends on compiler version and
++// optimization levels, and also on the details of the expression.
++// We specifically test access via an otherwise unknown pointer here
++// to ensure we get the most complex case. If this access can be
++// done without libatomic, then all accesses can be done.
++bool atomic16(std::atomic<unsigned __int128> *ptr)
++{
++ return *ptr != 0;
++}
++#endif
++
+ int main() {
+ std::atomic<uint8_t> w1;
+ std::atomic<uint16_t> w2;
+ std::atomic<uint32_t> w4;
+ std::atomic<uint64_t> w8;
+-#ifdef __s390x__
+- // Boost needs 16-byte atomics for tagged pointers.
+- std::atomic<unsigned __int128> w16;
+-#else
+- #define w16 0
+-#endif
+- return w1 + w2 + w4 + w8 + w16;
++ return w1 + w2 + w4 + w8;
+ }
+ " ${var})
+ endfunction(check_cxx_atomics)
diff --git a/ceph.spec b/ceph.spec
index 8002d20..8087bd5 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -128,6 +128,7 @@ Source0: %{?_remote_tarball_prefix}ceph-%{version}.tar.gz
Patch002: 0002-src-common-CMakeLists.txt.patch
Patch003: 0003-src-common-bitstr.h.patch
Patch004: 0004-src-librbd-api-PoolMetadata.h.patch
+Patch005: 0005-cmake-modules-CheckCxxAtomic.cmake.patch
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
ExcludeArch: i686 armv7hl
#################################################################################
commit de4da99414a1bda4f2ec6ec65832a6277e5eae8c
Author: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
Date: Tue Mar 3 09:38:35 2020 -0500
ceph 14.2.8 GA
Signed-off-by: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
diff --git a/0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch
b/0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch
deleted file mode 100644
index 3d951ea..0000000
--- a/0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 8db2a44c9438749be98d41fb309f10d5084805df Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton(a)redhat.com>
-Date: Fri, 17 Jan 2020 07:48:12 -0500
-Subject: [PATCH] mount.ceph: remove arbitrary limit on size of name= option
-
-Aaron was getting back -ERANGE errors when trying to mount using
-a long name= option. The issue is that the destination buffer for the
-"key=" string is not big enough to hold long names.
-
-When I overhauled the mount.ceph code recently, I made this buffer much
-smaller than before figuring that it didn't need to be any larger than
-the length of "secret=<base64 encoded key>".
-
-In the case where the secret is set in the keyring though, this buffer
-needs to be able to hold a string like "key=client.<cephx name>". The
-cephx name can be of arbitrary length, however.
-
-Rework the code to just safe_cat the strings directly into the options
-buffer, eliminating an extra copy and the need for an arbitrary limit.
-This also allows us to remove get_secret_option() from the the common
-code as well.
-
-Fixes:
https://tracker.ceph.com/issues/43649
-Reported-by: Aaron <aarongmldt(a)gmail.com>
-Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
----
- src/common/secret.h | 7 ------
- src/mount/mount.ceph.c | 45 ++++++++++++++++++++++++-------------
- src/mount/mount.ceph.h | 3 ---
- 4 files changed, 30 insertions(+), 75 deletions(-)
-
-diff --git a/src/common/secret.h b/src/common/secret.h
-index b681fa1ec7..5d2ad179dd 100644
---- a/src/common/secret.h
-+++ b/src/common/secret.h
-@@ -7,13 +7,6 @@ extern "C" {
-
- int read_secret_from_file(const char *filename, char *secret, size_t max_len);
-
--/*
-- * Attempts to add the secret to the kernel, but falls back to
-- * the old secret= option if the kernel is too old.
-- */
--int get_secret_option(const char *secret, const char *key_name,
-- char *secret_option, size_t secret_option_len);
--
- int set_kernel_secret(const char *secret, const char *key_name);
-
- int is_kernel_secret(const char *key_name);
-diff --git a/src/mount/mount.ceph.c b/src/mount/mount.ceph.c
-index e970648c59..133bc554f5 100644
---- a/src/mount/mount.ceph.c
-+++ b/src/mount/mount.ceph.c
-@@ -425,24 +425,39 @@ static void ceph_mount_info_free(struct ceph_mount_info *cmi)
- free(cmi->cmi_conf);
- }
-
--static int finalize_options(struct ceph_mount_info *cmi)
-+static int append_key_or_secret_option(struct ceph_mount_info *cmi)
- {
-- int pos;
-+ int pos = strlen(cmi->cmi_opts);
-
-- if (cmi->cmi_secret[0] || is_kernel_secret(cmi->cmi_name)) {
-- int ret;
-- char secret_option[SECRET_OPTION_BUFSIZE];
-+ if (!cmi->cmi_secret[0] && !is_kernel_secret(cmi->cmi_name))
-+ return 0;
-
-- ret = get_secret_option(cmi->cmi_secret, cmi->cmi_name,
-- secret_option, sizeof(secret_option));
-- if (ret < 0)
-+ if (pos)
-+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, ",");
-+
-+ /* when parsing kernel options (-o remount) we get '<hidden>' as the
secret */
-+ if (cmi->cmi_secret[0] && (strcmp(cmi->cmi_secret,
"<hidden>") != 0)) {
-+ int ret = set_kernel_secret(cmi->cmi_secret, cmi->cmi_name);
-+ if (ret < 0) {
-+ if (ret == -ENODEV || ret == -ENOSYS) {
-+ /* old kernel; fall back to secret= in options */
-+ pos = safe_cat(&cmi->cmi_opts,
-+ &cmi->cmi_opts_len, pos,
-+ "secret=");
-+ pos = safe_cat(&cmi->cmi_opts,
-+ &cmi->cmi_opts_len, pos,
-+ cmi->cmi_secret);
-+ return 0;
-+ }
-+ fprintf(stderr, "adding ceph secret key to kernel failed: %s\n",
-+ strerror(-ret));
- return ret;
--
-- pos = strlen(cmi->cmi_opts);
-- if (pos)
-- pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos,
",");
-- pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, secret_option);
-+ }
- }
-+
-+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos,
"key=");
-+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos,
cmi->cmi_name);
-+
- return 0;
- }
-
-@@ -493,9 +508,9 @@ int main(int argc, char *argv[])
- /* Ensure the ceph key_type is available */
- modprobe();
-
-- retval = finalize_options(&cmi);
-+ retval = append_key_or_secret_option(&cmi);
- if (retval) {
-- fprintf(stderr, "couldn't finalize options: %d\n", retval);
-+ fprintf(stderr, "couldn't append secret option: %d\n", retval);
- retval = EX_USAGE;
- goto out;
- }
-diff --git a/src/mount/mount.ceph.h b/src/mount/mount.ceph.h
-index c563597c43..b61176923d 100644
---- a/src/mount/mount.ceph.h
-+++ b/src/mount/mount.ceph.h
-@@ -21,9 +21,6 @@ extern "C" {
- /* Max Including null terminator */
- #define SECRET_BUFSIZE (MAX_SECRET_LEN + 1)
-
--/* Buffer size for secret= option */
--#define SECRET_OPTION_BUFSIZE (sizeof("secret=") + MAX_SECRET_LEN + 1)
--
- /* 2k should be enough for anyone? */
- #define MON_LIST_BUFSIZE 2048
-
---
-2.24.1
-
diff --git a/ceph.spec b/ceph.spec
index 8301f46..8002d20 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -108,8 +108,8 @@
# main package definition
#################################################################################
Name: ceph
-Version: 14.2.7
-Release: 2%{?dist}
+Version: 14.2.8
+Release: 1%{?dist}
%if 0%{?fedora} || 0%{?rhel}
Epoch: 2
%endif
@@ -128,7 +128,6 @@ Source0: %{?_remote_tarball_prefix}ceph-%{version}.tar.gz
Patch002: 0002-src-common-CMakeLists.txt.patch
Patch003: 0003-src-common-bitstr.h.patch
Patch004: 0004-src-librbd-api-PoolMetadata.h.patch
-Patch005: 0005-mount.ceph-remove-arbitrary-limit-on-size-of-name-op.patch
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
ExcludeArch: i686 armv7hl
#################################################################################
@@ -158,12 +157,8 @@ BuildRequires: fuse-devel
%if 0%{?rhel} == 7
# devtoolset offers newer make and valgrind-devel, but the old ones are good
# enough.
-%ifarch x86_64
BuildRequires: devtoolset-8-gcc-c++ >= 8.2.1
%else
-BuildRequires: devtoolset-7-gcc-c++ >= 7.3.1-5.13
-%endif
-%else
BuildRequires: gcc-c++
%endif
BuildRequires: gdbm
@@ -296,6 +291,7 @@ BuildRequires: python%{_python_buildid}-PyJWT
BuildRequires: python%{_python_buildid}-Routes
BuildRequires: python%{_python_buildid}-Werkzeug
BuildRequires: python%{_python_buildid}-numpy-devel
+BuildRequires: rpmbuild
BuildRequires: xmlsec1-devel
%endif
%endif
@@ -1544,6 +1540,7 @@ fi
%files mgr
%{_bindir}/ceph-mgr
%dir %{_datadir}/ceph/mgr
+%{_datadir}/ceph/mgr/alerts
%{_datadir}/ceph/mgr/ansible
%{_datadir}/ceph/mgr/balancer
%{_datadir}/ceph/mgr/crash
@@ -2268,6 +2265,9 @@ exit 0
%endif
%changelog
+* Tue Mar 3 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:14.2.8-1
+- ceph 14.2.8 GA
+
* Mon Feb 3 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:14.2.7-2
- ceph 14.2.7 python3-remoto #1784216
diff --git a/sources b/sources
index d574db2..eb20e86 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (ceph-14.2.7.tar.gz) =
59f475e56053ba5e7e3a482a3a91b4d44272e6ec8051b92783de76c09c0d967a7ef76676db998968a709e48f08e90828dd8f86bd96a7c3fd111d48bfb7fd93b1
+SHA512 (ceph-14.2.8.tar.gz) =
38b0c6df58579377528c8f8e06d0cbc40f471f6eb2fb4a05b395f6fddbd3f2117674545b2147d8730973b01967ddcd4322a769ba03f9c625417ed35cc39f195a