!137 sync master
From: @wangzengliang1 Reviewed-by: @liuqinfei Signed-off-by: @liuqinfei
This commit is contained in:
parent
582a4eb140
commit
3d00ba56bc
57
0004-cmake-add-support-python-3.10.patch
Normal file
57
0004-cmake-add-support-python-3.10.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
From a13d33c47c0e713429f7cfbd6106a497838f6396 Mon Sep 17 00:00:00 2001
|
||||||
|
From: wangzengliang <wangzengliang1@huawei.com>
|
||||||
|
Date: Fri, 8 Apr 2022 11:35:38 +0800
|
||||||
|
Subject: [PATCH] cmake: add support python 3.10
|
||||||
|
|
||||||
|
---
|
||||||
|
cmake/modules/BuildBoost.cmake | 2 +-
|
||||||
|
cmake/modules/FindPython/Support.cmake | 2 +-
|
||||||
|
src/boost/libs/python/src/exec.cpp | 4 ++--
|
||||||
|
3 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
|
||||||
|
index 468ae419c..320c2dcd5 100644
|
||||||
|
--- a/cmake/modules/BuildBoost.cmake
|
||||||
|
+++ b/cmake/modules/BuildBoost.cmake
|
||||||
|
@@ -70,7 +70,7 @@ function(do_build_boost version)
|
||||||
|
if(c MATCHES "^python([0-9])\$")
|
||||||
|
set(with_python_version "${CMAKE_MATCH_1}")
|
||||||
|
list(APPEND boost_with_libs "python")
|
||||||
|
- elseif(c MATCHES "^python([0-9])\\.?([0-9])\$")
|
||||||
|
+ elseif(c MATCHES "^python([0-9])\\.?([0-9]+)\$")
|
||||||
|
set(with_python_version "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}")
|
||||||
|
list(APPEND boost_with_libs "python")
|
||||||
|
else()
|
||||||
|
diff --git a/cmake/modules/FindPython/Support.cmake b/cmake/modules/FindPython/Support.cmake
|
||||||
|
index c05bbe330..fb362bfe2 100644
|
||||||
|
--- a/cmake/modules/FindPython/Support.cmake
|
||||||
|
+++ b/cmake/modules/FindPython/Support.cmake
|
||||||
|
@@ -17,7 +17,7 @@ if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
|
||||||
|
message (FATAL_ERROR "FindPython: INTERNAL ERROR")
|
||||||
|
endif()
|
||||||
|
if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 3)
|
||||||
|
- set(_${_PYTHON_PREFIX}_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
|
||||||
|
+ set(_${_PYTHON_PREFIX}_VERSIONS 3.10 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
|
||||||
|
elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 2)
|
||||||
|
set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
|
||||||
|
else()
|
||||||
|
diff --git a/src/boost/libs/python/src/exec.cpp b/src/boost/libs/python/src/exec.cpp
|
||||||
|
index 171c6f418..caa7d0864 100644
|
||||||
|
--- a/src/boost/libs/python/src/exec.cpp
|
||||||
|
+++ b/src/boost/libs/python/src/exec.cpp
|
||||||
|
@@ -106,10 +106,10 @@ object BOOST_PYTHON_DECL exec_file(char const *filename, object global, object l
|
||||||
|
char *f = const_cast<char *>(filename);
|
||||||
|
// Let python open the file to avoid potential binary incompatibilities.
|
||||||
|
#if PY_VERSION_HEX >= 0x03040000
|
||||||
|
- FILE *fs = _Py_fopen(f, "r");
|
||||||
|
+ FILE *fs = fopen(f, "r");
|
||||||
|
#elif PY_VERSION_HEX >= 0x03000000
|
||||||
|
PyObject *fo = Py_BuildValue("s", f);
|
||||||
|
- FILE *fs = _Py_fopen(fo, "r");
|
||||||
|
+ FILE *fs = fopen(fo, "r");
|
||||||
|
Py_DECREF(fo);
|
||||||
|
#else
|
||||||
|
PyObject *pyfile = PyFile_FromString(f, const_cast<char*>("r"));
|
||||||
|
--
|
||||||
|
2.30.0
|
||||||
|
|
||||||
40
0005-ceph-volume-lvm-api-function-no-undefined.patch
Normal file
40
0005-ceph-volume-lvm-api-function-no-undefined.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From 9780d28028a40ecbfc327dab779e8a37c9aaed51 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Guillaume Abrioux <gabrioux@redhat.com>
|
||||||
|
Date: Mon, 8 Mar 2021 09:59:26 +0100
|
||||||
|
Subject: [PATCH] ceph-volume: `get_first_*()` refactor
|
||||||
|
|
||||||
|
As indicated by commit 17957d9beb42a04b8f180ccb7ba07d43179a41d3 those
|
||||||
|
fuctions were meant to avoid writing something like following:
|
||||||
|
|
||||||
|
```
|
||||||
|
lvs = get_lvs()
|
||||||
|
if len(lvs) >= 1:
|
||||||
|
lvs = lv[0]
|
||||||
|
```
|
||||||
|
|
||||||
|
Those functions should return `None` if 0 or more than 1 item is returned.
|
||||||
|
The current name of these functions are confusing and can lead to thinking that
|
||||||
|
we just want the first item returned, even though it returns more than 1
|
||||||
|
item, let's rename them to `get_single_pv()`, `get_single_vg()` and
|
||||||
|
`get_single_lv()`
|
||||||
|
|
||||||
|
Closes: https://tracker.ceph.com/issues/49643
|
||||||
|
|
||||||
|
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
|
||||||
|
(cherry picked from commit a5e4216b49704783c55fb83b3ae6dde35b0082ad)
|
||||||
|
---
|
||||||
|
src/ceph-volume/ceph_volume/api/lvm.py | 54 +++--
|
||||||
|
|
||||||
|
diff --git a/src/ceph-volume/ceph_volume/api/lvm.py b/src/ceph-volume/ceph_volume/api/lvm.py
|
||||||
|
index e5551206e16..bbafa06831b 100644
|
||||||
|
--- a/src/ceph-volume/ceph_volume/api/lvm.py
|
||||||
|
+++ b/src/ceph-volume/ceph_volume/api/lvm.py
|
||||||
|
@@ -1144,7 +1144,7 @@ def get_lv_by_fullname(full_name):
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
vg_name, lv_name = full_name.split('/')
|
||||||
|
- res_lv = get_first_lv(filters={'lv_name': lv_name,
|
||||||
|
+ res_lv = get_single_lv(filters={'lv_name': lv_name,
|
||||||
|
'vg_name': vg_name})
|
||||||
|
except ValueError:
|
||||||
|
res_lv = None
|
||||||
@ -0,0 +1,66 @@
|
|||||||
|
From 1a38ea3b96dbe8fd2f2fca8ee9a501ef1423027f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Guillaume Abrioux <gabrioux@redhat.com>
|
||||||
|
Date: Mon, 20 Jun 2022 13:43:43 +0200
|
||||||
|
Subject: [PATCH] ceph-volume: decrease number of `pvs` calls in `lvm list`
|
||||||
|
|
||||||
|
current implementation of `List.create_report()` implies a lot of calls
|
||||||
|
to `pvs` process. This could be avoided.
|
||||||
|
|
||||||
|
current implementation:
|
||||||
|
```
|
||||||
|
>>> import timeit
|
||||||
|
>>> from ceph_volume.devices.lvm.listing import List
|
||||||
|
>>> timeit.timeit(List([]).main, number=1000)
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
93.03700458299136
|
||||||
|
```
|
||||||
|
|
||||||
|
new implementation:
|
||||||
|
|
||||||
|
```
|
||||||
|
>>> import timeit
|
||||||
|
>>> from ceph_volume.devices.lvm.listing import List
|
||||||
|
>>> timeit.timeit(List([]).main, number=1000)
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
62.16391600697534
|
||||||
|
```
|
||||||
|
|
||||||
|
In this example, it improves performance by ~30%
|
||||||
|
|
||||||
|
Fixes: https://tracker.ceph.com/issues/56127
|
||||||
|
|
||||||
|
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
|
||||||
|
---
|
||||||
|
src/ceph-volume/ceph_volume/devices/lvm/listing.py | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/ceph-volume/ceph_volume/devices/lvm/listing.py b/src/ceph-volume/ceph_volume/devices/lvm/listing.py
|
||||||
|
index 44d5063ce37..c16afdaa767 100644
|
||||||
|
--- a/src/ceph-volume/ceph_volume/devices/lvm/listing.py
|
||||||
|
+++ b/src/ceph-volume/ceph_volume/devices/lvm/listing.py
|
||||||
|
@@ -101,6 +101,8 @@ class List(object):
|
||||||
|
|
||||||
|
report = {}
|
||||||
|
|
||||||
|
+ pvs = api.get_pvs()
|
||||||
|
+
|
||||||
|
for lv in lvs:
|
||||||
|
if not api.is_ceph_device(lv):
|
||||||
|
continue
|
||||||
|
@@ -109,8 +111,7 @@ class List(object):
|
||||||
|
report.setdefault(osd_id, [])
|
||||||
|
lv_report = lv.as_dict()
|
||||||
|
|
||||||
|
- pvs = api.get_pvs(filters={'lv_uuid': lv.lv_uuid})
|
||||||
|
- lv_report['devices'] = [pv.name for pv in pvs] if pvs else []
|
||||||
|
+ lv_report['devices'] = [pv.name for pv in pvs if pv.lv_uuid == lv.lv_uuid] if pvs else []
|
||||||
|
report[osd_id].append(lv_report)
|
||||||
|
|
||||||
|
phys_devs = self.create_report_non_lv_device(lv)
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
43
0007-bluestore-use-direct-write-for-bdevlabel.patch
Normal file
43
0007-bluestore-use-direct-write-for-bdevlabel.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From 7672ceb4f09c81ee7a2d5e8672e2c402c3206b4e Mon Sep 17 00:00:00 2001
|
||||||
|
From: luo rixin <luorixin@huawei.com>
|
||||||
|
Date: Wed, 14 Sep 2022 19:50:01 +0800
|
||||||
|
Subject: [PATCH] os/bluestore: use direct write in
|
||||||
|
BlueStore::_write_bdev_label
|
||||||
|
|
||||||
|
On AArch64 with kernel page size 64K, it occurs occasionally
|
||||||
|
"OSD::init(): unable to read osd superblock" when deploying osd.
|
||||||
|
As bluestore use direct write to write the superblock at 0x2000~1000
|
||||||
|
and BlueStore::_write_bdev_label use buffer write to write label at
|
||||||
|
0x0~1000, The OS flush the buffer write algined to page size, it will
|
||||||
|
overwrite the superblock(0x2000~1000). Use driect write to avoid
|
||||||
|
overwriting the superblock.
|
||||||
|
|
||||||
|
Fixes: https://tracker.ceph.com/issues/57537
|
||||||
|
Signed-off-by: luo rixin <luorixin@huawei.com>
|
||||||
|
---
|
||||||
|
src/os/bluestore/BlueStore.cc | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc
|
||||||
|
index 8b893be79d1..534fe780f27 100644
|
||||||
|
--- a/src/os/bluestore/BlueStore.cc
|
||||||
|
+++ b/src/os/bluestore/BlueStore.cc
|
||||||
|
@@ -5104,13 +5104,14 @@ int BlueStore::_write_bdev_label(CephContext *cct,
|
||||||
|
z.zero();
|
||||||
|
bl.append(std::move(z));
|
||||||
|
|
||||||
|
- int fd = TEMP_FAILURE_RETRY(::open(path.c_str(), O_WRONLY|O_CLOEXEC));
|
||||||
|
+ int fd = TEMP_FAILURE_RETRY(::open(path.c_str(), O_WRONLY|O_CLOEXEC|O_DIRECT));
|
||||||
|
if (fd < 0) {
|
||||||
|
fd = -errno;
|
||||||
|
derr << __func__ << " failed to open " << path << ": " << cpp_strerror(fd)
|
||||||
|
<< dendl;
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
+ bl.rebuild_aligned_size_and_memory(BDEV_LABEL_BLOCK_SIZE, BDEV_LABEL_BLOCK_SIZE, IOV_MAX);
|
||||||
|
int r = bl.write_fd(fd);
|
||||||
|
if (r < 0) {
|
||||||
|
derr << __func__ << " failed to write to " << path
|
||||||
|
--
|
||||||
|
2.20.1.windows.1
|
||||||
|
|
||||||
1857
0008-enable-sw64-architecture.patch
Normal file
1857
0008-enable-sw64-architecture.patch
Normal file
File diff suppressed because it is too large
Load Diff
146
0009-fix-CVE-2022-0670.patch
Normal file
146
0009-fix-CVE-2022-0670.patch
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
From dc4d69d6d10cf1748bbdf971cd118db334991697 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kotresh HR <khiremat@redhat.com>
|
||||||
|
Date: Sat, 8 Oct 2022 14:56:08 +0800
|
||||||
|
Subject: [PATCH] fix CVE-2022-0670
|
||||||
|
Fixes the subvolume discover to use the correct
|
||||||
|
metadata file after an upgrade from legacy subvolume
|
||||||
|
to v1. The fix makes sure, it doesn't use the
|
||||||
|
handcrafted metadata file placed in the subvolume
|
||||||
|
root of legacy subvolume.
|
||||||
|
|
||||||
|
Co-authored-by: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@cern.ch>
|
||||||
|
Co-authored-by: Dan van der Ster <daniel.vanderster@cern.ch>
|
||||||
|
Co-authored-by: Ramana Raja <rraja@redhat.com>
|
||||||
|
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||||
|
(cherry picked from commit 7eba9cab6cfb9a13a84062177d7a0fa228311e13)
|
||||||
|
(cherry picked from commit f8c04135150a7fb3c43607b43a8214e0d57547bc)
|
||||||
|
Signed-off-by: Kotresh HR <khiremat@redhat.com>
|
||||||
|
(cherry picked from commit 5bb46ee690591411d4890b613c6380fced9d04b4)
|
||||||
|
|
||||||
|
---
|
||||||
|
.../operations/versions/metadata_manager.py | 17 +++++++++++---
|
||||||
|
.../fs/operations/versions/subvolume_base.py | 23 +++++++++++++++++--
|
||||||
|
.../fs/operations/versions/subvolume_v1.py | 2 +-
|
||||||
|
3 files changed, 36 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/pybind/mgr/volumes/fs/operations/versions/metadata_manager.py b/src/pybind/mgr/volumes/fs/operations/versions/metadata_manager.py
|
||||||
|
index 1b6c43278..cb3059e56 100644
|
||||||
|
--- a/src/pybind/mgr/volumes/fs/operations/versions/metadata_manager.py
|
||||||
|
+++ b/src/pybind/mgr/volumes/fs/operations/versions/metadata_manager.py
|
||||||
|
@@ -40,16 +40,17 @@ class MetadataManager(object):
|
||||||
|
def refresh(self):
|
||||||
|
fd = None
|
||||||
|
conf_data = StringIO()
|
||||||
|
+ log.debug("opening config {0}".format(self.config_path))
|
||||||
|
try:
|
||||||
|
- log.debug("opening config {0}".format(self.config_path))
|
||||||
|
fd = self.fs.open(self.config_path, os.O_RDONLY)
|
||||||
|
while True:
|
||||||
|
data = self.fs.read(fd, -1, MetadataManager.MAX_IO_BYTES)
|
||||||
|
if not len(data):
|
||||||
|
break
|
||||||
|
conf_data.write(data.decode('utf-8'))
|
||||||
|
- conf_data.seek(0)
|
||||||
|
- self.config.readfp(conf_data)
|
||||||
|
+ except UnicodeDecodeError:
|
||||||
|
+ raise MetadataMgrException(-errno.EINVAL,
|
||||||
|
+ "failed to decode, erroneous metadata config '{0}'".format(self.config_path))
|
||||||
|
except cephfs.ObjectNotFound:
|
||||||
|
raise MetadataMgrException(-errno.ENOENT, "metadata config '{0}' not found".format(self.config_path))
|
||||||
|
except cephfs.Error as e:
|
||||||
|
@@ -58,6 +59,16 @@ class MetadataManager(object):
|
||||||
|
if fd is not None:
|
||||||
|
self.fs.close(fd)
|
||||||
|
|
||||||
|
+ conf_data.seek(0)
|
||||||
|
+ try:
|
||||||
|
+ if sys.version_info >= (3, 2):
|
||||||
|
+ self.config.read_file(conf_data)
|
||||||
|
+ else:
|
||||||
|
+ self.config.readfp(conf_data)
|
||||||
|
+ except configparser.Error:
|
||||||
|
+ raise MetadataMgrException(-errno.EINVAL, "failed to parse, erroneous metadata config "
|
||||||
|
+ "'{0}'".format(self.config_path))
|
||||||
|
+
|
||||||
|
def flush(self):
|
||||||
|
# cull empty sections
|
||||||
|
for section in list(self.config.sections()):
|
||||||
|
diff --git a/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py b/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py
|
||||||
|
index 2840a9f2e..0d183e612 100644
|
||||||
|
--- a/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py
|
||||||
|
+++ b/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py
|
||||||
|
@@ -5,6 +5,7 @@ import errno
|
||||||
|
import logging
|
||||||
|
from hashlib import md5
|
||||||
|
from typing import Dict, Union
|
||||||
|
+from pathlib import Path
|
||||||
|
|
||||||
|
import cephfs
|
||||||
|
|
||||||
|
@@ -16,6 +17,7 @@ from ...fs_util import get_ancestor_xattr
|
||||||
|
from ...exception import MetadataMgrException, VolumeException
|
||||||
|
from .op_sm import SubvolumeOpSm
|
||||||
|
from .auth_metadata import AuthMetadataManager
|
||||||
|
+from .subvolume_attrs import SubvolumeStates
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@@ -111,7 +113,7 @@ class SubvolumeBase(object):
|
||||||
|
@property
|
||||||
|
def state(self):
|
||||||
|
""" Subvolume state, one of SubvolumeStates """
|
||||||
|
- raise NotImplementedError
|
||||||
|
+ raise SubvolumeStates.from_value(self.metadata_mgr.get_global_option(MetadataManager.GLOBAL_META_KEY_STATE))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def subvol_type(self):
|
||||||
|
@@ -123,6 +125,15 @@ class SubvolumeBase(object):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def load_config(self):
|
||||||
|
+ try:
|
||||||
|
+ self.fs.stat(self.legacy_config_path)
|
||||||
|
+ self.legacy_mode = True
|
||||||
|
+ except cephfs.Error as e:
|
||||||
|
+ pass
|
||||||
|
+
|
||||||
|
+ log.debug("loding config "
|
||||||
|
+ "'{0}' [mode: {1}]".format(self.subvolname, "legacy"
|
||||||
|
+ if self.legacy_mode else "new"))
|
||||||
|
if self.legacy_mode:
|
||||||
|
self.metadata_mgr = MetadataManager(self.fs, self.legacy_config_path, 0o640)
|
||||||
|
else:
|
||||||
|
@@ -271,8 +282,16 @@ class SubvolumeBase(object):
|
||||||
|
self.fs.stat(self.base_path)
|
||||||
|
self.metadata_mgr.refresh()
|
||||||
|
log.debug("loaded subvolume '{0}'".format(self.subvolname))
|
||||||
|
+ subvolpath = self.metadata_mgr.get_global_option(MetadataManager.GLOBAL_META_KEY_PATH)
|
||||||
|
+ # subvolume with retained snapshots has enpty path, don't mistake it for
|
||||||
|
+ # fabricated metadata.
|
||||||
|
+ if (not self.legacy_mode and self.state != SubvolumeStates.STATE_RETAINED and
|
||||||
|
+ self.base_path.decode('utf-8') !=(Path(subvolpath).parent)):
|
||||||
|
+ raise MetadataMgrException(-errno.ENOENT, 'fabricated .meta')
|
||||||
|
except MetadataMgrException as me:
|
||||||
|
- if me.errno == -errno.ENOENT and not self.legacy_mode:
|
||||||
|
+ if me.errno in (-errno.ENOENT, -errno.EINVAL) and not self.legacy_mode:
|
||||||
|
+ log.warn("subvolume '{0}', {1}, "
|
||||||
|
+ "assuming legacy_mode".format(self.subvolname, me.error_str))
|
||||||
|
self.legacy_mode = True
|
||||||
|
self.load_config()
|
||||||
|
self.discover()
|
||||||
|
diff --git a/src/pybind/mgr/volumes/fs/operations/versions/subvolume_v1.py b/src/pybind/mgr/volumes/fs/operations/versions/subvolume_v1.py
|
||||||
|
index d62effd99..39f256638 100644
|
||||||
|
--- a/src/pybind/mgr/volumes/fs/operations/versions/subvolume_v1.py
|
||||||
|
+++ b/src/pybind/mgr/volumes/fs/operations/versions/subvolume_v1.py
|
||||||
|
@@ -666,7 +666,7 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
|
||||||
|
|
||||||
|
@property
|
||||||
|
def state(self):
|
||||||
|
- return SubvolumeStates.from_value(self.metadata_mgr.get_global_option(MetadataManager.GLOBAL_META_KEY_STATE))
|
||||||
|
+ return super(SubvolumeV1, self).state
|
||||||
|
|
||||||
|
@state.setter
|
||||||
|
def state(self, val):
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
44
ceph.spec
44
ceph.spec
@ -125,7 +125,7 @@
|
|||||||
#################################################################################
|
#################################################################################
|
||||||
Name: ceph
|
Name: ceph
|
||||||
Version: 16.2.7
|
Version: 16.2.7
|
||||||
Release: 2
|
Release: 10
|
||||||
%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}
|
%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
%endif
|
%endif
|
||||||
@ -146,6 +146,12 @@ Source0: %{?_remote_tarball_prefix}ceph-16.2.7.tar.gz
|
|||||||
Patch1: 0001-fix-error-transform-is-not-a-member-of-std.patch
|
Patch1: 0001-fix-error-transform-is-not-a-member-of-std.patch
|
||||||
Patch2: 0002-enable-install-deps-in-openEuler.patch
|
Patch2: 0002-enable-install-deps-in-openEuler.patch
|
||||||
Patch3: 0003-isa-l-update.patch
|
Patch3: 0003-isa-l-update.patch
|
||||||
|
Patch4: 0004-cmake-add-support-python-3.10.patch
|
||||||
|
Patch5: 0005-ceph-volume-lvm-api-function-no-undefined.patch
|
||||||
|
Patch6: 0006-ceph-volume-decrease-number-of-pvs-calls-in-lvm-list.patch
|
||||||
|
Patch7: 0007-bluestore-use-direct-write-for-bdevlabel.patch
|
||||||
|
Patch8: 0008-enable-sw64-architecture.patch
|
||||||
|
Patch9: 0009-fix-CVE-2022-0670.patch
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
# _insert_obs_source_lines_here
|
# _insert_obs_source_lines_here
|
||||||
ExclusiveArch: x86_64 aarch64 ppc64le s390x
|
ExclusiveArch: x86_64 aarch64 ppc64le s390x
|
||||||
@ -193,9 +199,8 @@ BuildRequires: libblkid-devel >= 2.17
|
|||||||
BuildRequires: cryptsetup-devel
|
BuildRequires: cryptsetup-devel
|
||||||
BuildRequires: libcurl-devel
|
BuildRequires: libcurl-devel
|
||||||
BuildRequires: libcap-ng-devel
|
BuildRequires: libcap-ng-devel
|
||||||
BuildRequires: fmt-devel
|
BuildRequires: fmt-devel >= 5.2.1
|
||||||
#BuildRequires: pkgconfig(libudev)
|
BuildRequires: pkgconfig(libudev)
|
||||||
BuildRequires: libudev-devel
|
|
||||||
BuildRequires: libnl3-devel
|
BuildRequires: libnl3-devel
|
||||||
BuildRequires: liboath-devel
|
BuildRequires: liboath-devel
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
@ -1205,6 +1210,9 @@ This package provides Ceph default alerts for Prometheus.
|
|||||||
#################################################################################
|
#################################################################################
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n ceph-16.2.7
|
%autosetup -p1 -n ceph-16.2.7
|
||||||
|
%ifnarch sw_64
|
||||||
|
%patch8 -R -p1
|
||||||
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# LTO can be enabled as soon as the following GCC bug is fixed:
|
# LTO can be enabled as soon as the following GCC bug is fixed:
|
||||||
@ -1240,7 +1248,7 @@ export CXXFLAGS=$(echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g')
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Parallel build settings ...
|
# Parallel build settings ...
|
||||||
CEPH_MFLAGS_JOBS="-j20"
|
CEPH_MFLAGS_JOBS="-j16"
|
||||||
CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//')
|
CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//')
|
||||||
%if 0%{?__isa_bits} == 32
|
%if 0%{?__isa_bits} == 32
|
||||||
# 32-bit builds can use 3G memory max, which is not enough even for -j2
|
# 32-bit builds can use 3G memory max, which is not enough even for -j2
|
||||||
@ -2484,6 +2492,30 @@ exit 0
|
|||||||
%config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml
|
%config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Nov 15 2022 wangzengliang <wangzengliang1@huawei.com> - 2:16.2.7-10
|
||||||
|
- keep the ceph.spec align with native community
|
||||||
|
|
||||||
|
* Mon Nov 14 2022 wangzengliang <wangzengliang1@huawei.com> - 2:16.2.7-9
|
||||||
|
- fix CVE-2022-0670
|
||||||
|
|
||||||
|
* Thu Nov 10 2022 wangzengliang <wangzengliang1@huawei.com> - 2:16.2.7-8
|
||||||
|
- rename sw64 patch and reduce compilation threads
|
||||||
|
|
||||||
|
* Wed Oct 26 2022 wuzx<wuzx1226@qq.com> - 2:16.2.7-7
|
||||||
|
- Add sw64 architecture
|
||||||
|
|
||||||
|
* Wed Sep 28 2022 luo rixin <luorixin@huawei.com> - 2:16.2.7-6
|
||||||
|
- fix osd read superblock error
|
||||||
|
|
||||||
|
* Thu Aug 25 2022 yangxiaoliang <yangxiaoliang07@163.com> - 2:16.2.7-5
|
||||||
|
- fix ceph-volume lvm list calls many times pvs
|
||||||
|
|
||||||
|
* Mon Jul 18 2022 yangxiaoliang <yangxiaoliang07@163.com> - 2:16.2.7-4
|
||||||
|
- fix ceph-volume lvm api function undefined error
|
||||||
|
|
||||||
|
* Fri Mar 11 2022 wangzengliang <wangzengliang1@huawei.com> - 2:16.2.7-3
|
||||||
|
- cmake: add support python 3.10
|
||||||
|
|
||||||
* Fri Mar 11 2022 wangzengliang <wangzengliang1@huawei.com> - 1:16.2.7-2
|
* Fri Mar 11 2022 wangzengliang <wangzengliang1@huawei.com> - 1:16.2.7-2
|
||||||
- fix * recognition error when install
|
- fix * recognition error when install
|
||||||
|
|
||||||
@ -2491,7 +2523,7 @@ exit 0
|
|||||||
- isa-l: update isa-l to fix aarch64 text relocation error
|
- isa-l: update isa-l to fix aarch64 text relocation error
|
||||||
|
|
||||||
* Thu Dec 30 2021 liuqinfei <18138800392@163.com> - 1:16.2.7-0
|
* Thu Dec 30 2021 liuqinfei <18138800392@163.com> - 1:16.2.7-0
|
||||||
- update to 16.2.7
|
- update to 16.2.7 test
|
||||||
|
|
||||||
* Fri Nov 5 2021 Dai Zhiwei <daizhiwei3@huawei.com> - 1:14.2.15-7
|
* Fri Nov 5 2021 Dai Zhiwei <daizhiwei3@huawei.com> - 1:14.2.15-7
|
||||||
- fix aarch64 crc32c unittest error
|
- fix aarch64 crc32c unittest error
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user