From 6108fe7e93fe92bda156a71748af479f607ba2e4e71da69daf91aea0eaa70c92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 3 May 2024 11:33:05 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main ceph revision 81a5ffa382d5380db4a9883681d4285a --- .gitattributes | 23 + README-ceph-test.txt | 25 + README-checkin.txt | 19 + README-constraints.txt | 31 + README-packaging.txt | 52 + _multibuild | 4 + ceph-16.2.14-66-g7aa6ce9419f.tar.bz2 | 3 + ceph-cmake-3.28.patch | 38 + ceph-rpmlintrc | 109 + ceph-test.spec | 1283 +++++++++++ ceph.changes | 2916 ++++++++++++++++++++++++++ ceph.spec | 2502 ++++++++++++++++++++++ checkin.sh | 140 ++ pre_checkin.env | 5 + pre_checkin.sh | 310 +++ 15 files changed, 7460 insertions(+) create mode 100644 .gitattributes create mode 100644 README-ceph-test.txt create mode 100644 README-checkin.txt create mode 100644 README-constraints.txt create mode 100644 README-packaging.txt create mode 100644 _multibuild create mode 100644 ceph-16.2.14-66-g7aa6ce9419f.tar.bz2 create mode 100644 ceph-cmake-3.28.patch create mode 100644 ceph-rpmlintrc create mode 100644 ceph-test.spec create mode 100644 ceph.changes create mode 100644 ceph.spec create mode 100644 checkin.sh create mode 100644 pre_checkin.env create mode 100644 pre_checkin.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/README-ceph-test.txt b/README-ceph-test.txt new file mode 100644 index 0000000..3338b5a --- /dev/null +++ b/README-ceph-test.txt @@ -0,0 +1,25 @@ +ceph-test.spec apologia +======================= + +The ceph-test.spec file is generated automatically by running pre_checkin.sh + +Originally, the ceph-test RPM was built by ceph.spec as a subpackage. + +When ceph was first included in Ring1, the build time was too long and ceph +was blocking Factory builds. The ceph-test RPM - a non-user-facing subpackage +that is only used by CI tests - accounted for a significant portion of that +excessive build time. By spinning the ceph-test RPM off to a standalone spec +file spec file, the build time of ceph.spec was reduced and it was no longer +a problem to have ceph in Ring1. + +A script, pre_checkin.sh, which is run before every commit, automatically +generates ceph-test.spec from ceph.spec. Thus, ceph-test.spec should be seen +as a "build artifact" whose purpose is to build the ceph-test RPM as it would +have been built had the original ceph.spec not been split. + +Although this workflow results in a "not-pretty" ceph-test.spec, it has an +advantage in that ceph-test.spec is maintenance-free. Maintaining *two* spec +files for Ceph would be tricky, error-prone, and labor-intensive. + +Nathan Cutler +April 17, 2017 diff --git a/README-checkin.txt b/README-checkin.txt new file mode 100644 index 0000000..ca62eb7 --- /dev/null +++ b/README-checkin.txt @@ -0,0 +1,19 @@ +Use the "checkin.sh" script to generate ceph.spec and tarball from a git repo +and branch. For example: + + $ bash checkin.sh --repo https://github.com/foo/ceph --branch wip-foo + +For more options, try "./checkin.sh --help" + + +FAQ +=== + +Q. What is the pre_checkin.sh script? + +A. The "pre_checkin.sh" script generates ceph-test.spec from ceph.spec. + +Q. Should I run it before running checkin.sh? + +A. It doesn't hurt to run it, but no, you don't need to run it because +checkin.sh does that for you. diff --git a/README-constraints.txt b/README-constraints.txt new file mode 100644 index 0000000..2f92142 --- /dev/null +++ b/README-constraints.txt @@ -0,0 +1,31 @@ +2023-06-13 - Tim Serong + +Ceph needs plenty of disk space and RAM in order to build. To set +minimum requirements for these, we're using #!BuildConstraint directives +in ceph.spec and ceph-test.spec. We were previously using a _constraints +file, but this was shown to not always work correctly with _multibuild. +For more information about #!BuildConstraint directives see +https://github.com/openSUSE/obs-docu/pull/285, and in particular Darix's +comment that you shouldn't mix _constraints and #!BuildConstraint. + +The #!BuildConstraint directives are added to the spec files automatically +by the pre_checkin.sh script. If the disk and memory constraints need to +be changed in future, adjust the variables in the pre_checkin.env file and +re-run pre_checkin.sh. + +The current constraints are based on builds of ceph 16.2.7 on build.suse.de, +which showed the following resource usage (in MB): + +ceph aarch64 max disk: 41568 max mem: 13698 (on ibs-centriq-6:3 disk: 65536 mem: 18432) +ceph x86_64 max disk: 41621 max mem: 9852 (on sheep74:2 disk: 51200 mem: 12500) +ceph ppc64le max disk: 42005 max mem: 8754 (on ibs-power9-10:1 disk: 61440 mem: 20480) +ceph s390x max disk: 40698 max mem: 8875 (on s390zl36:1 disk: 51200 mem: 10240) +ceph-test x86_64 max disk: 51760 max mem: 16835 (on sheep94:2 disk: 112640 mem: 16384) + +Based on the above, and to hopefully provide a little wiggle room for +the future while at the same time not being too demanding of workers, +the minimum disk size is 50GB for ceph and 60GB for ceph-test. Memory +requirements remain at 8GB and 10GB respectively as they were before I +did the above tests - despite the memory usage shown above, AFAIK we +haven't run out of memory during builds, and this keeps the pool of +possible workers noticeably larger than it would be if we required 16GB. diff --git a/README-packaging.txt b/README-packaging.txt new file mode 100644 index 0000000..cdd2a9c --- /dev/null +++ b/README-packaging.txt @@ -0,0 +1,52 @@ +!!! DO NOT SUBMIT CEPH.SPEC MODIFICATIONS TO OBS !!! +!!! CEPH.SPEC IS MAINTAINED UPSTREAM !!! + +So you have an idea for how to improve ceph.spec and are preparing to submit it +to the Factory devel project. You might also intend to test your patch in the +OBS, first. Please read this before proceeding! + +Instructions for submitting +--------------------------- + +The ceph.spec file is maintained upstream at https://github.com/ceph/ceph + +The Ceph package in OBS is built from SUSE's downstream fork at +https://github.com/SUSE/ceph (specifically, the ses7p branch). + +To patch ceph.spec, ideally you should use the following procedure: + +1. find out the current Factory ceph maintainer(s) (e.g. by examining the + most recent entries in the ceph.changes file) +2. open PR targeting the main branch at https://github.com/ceph/ceph + Make sure to sign your commit ("git commit --signoff") using your real name + and real email address. If this is a problem, contact the current Factory + maintainers: they can act as a proxy. +3. ping the Factory ceph maintainers about your PR + +The Factory ceph maintainers will take care of getting your upstream PR +reviewed, tested, merged and, if necessary, backported. They will also take care +of submitting the patch to Factory. + +Alternately, for patches that make no sense to submit to upstream main, +you can open a PR against the ses7p branch of https://github.com/SUSE/ceph +then ping the Factory ceph maintainers to get that reviewed and submitted to +Factory. + +Caveat for testing +------------------ + +If you want to test your patch (e.g. in your home project), please read the +following CAVEAT: + +The ceph.spec file is maintained upstream. As a consequence of that, we cannot +simply run the downstream spec file cleaner on it. (If you are now asking +"why?", here is one reason: the spec file cleaner changes the copyright notice! +Another reason is: the spec file cleaner has been known to munge ceph.spec so +badly that it breaks the build!) + +Now, if special action is not taken, the spec file cleaner will run on the +server each time you commit. That must be avoided at all costs. Fortunately, it +is easy to avoid it by passing the "--noservice" option to "osc commit", e.g.: + + osc commit --noservice + diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..39e1023 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + ceph-test + + diff --git a/ceph-16.2.14-66-g7aa6ce9419f.tar.bz2 b/ceph-16.2.14-66-g7aa6ce9419f.tar.bz2 new file mode 100644 index 0000000..fd128bf --- /dev/null +++ b/ceph-16.2.14-66-g7aa6ce9419f.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60c188e605343df75e862b2475b579418cc56c8894f3d40249c8b79f96203e9e +size 155955920 diff --git a/ceph-cmake-3.28.patch b/ceph-cmake-3.28.patch new file mode 100644 index 0000000..fec4f34 --- /dev/null +++ b/ceph-cmake-3.28.patch @@ -0,0 +1,38 @@ +commit 8615731637a116f7b9299c6122a0e058d43a4f6d +Author: Dominique Leuenberger +Date: Tue Dec 19 13:28:29 2023 +0100 + + cmake: Ensure git exists before executing it + + CMake 3.28 has turned stricter when executing string(REPLACE …) and + expects four or more commands. In case of distro package builds from + tarball, it happens that git is not present. CTags.cmake tries to + catch that by veriying the exit status of the command, but as there + is in fact git | awk, awk returns 0 even when git does not exist. + + Ensure that the variable submodules has been defined before trying + to replace substrings in this variable. + + Signed-off-by: Dominique Leuenberger + +diff --git a/cmake/modules/CTags.cmake b/cmake/modules/CTags.cmake +index c3e1b3799b0..772f647f947 100644 +--- a/cmake/modules/CTags.cmake ++++ b/cmake/modules/CTags.cmake +@@ -3,13 +3,14 @@ find_program(CTAGS_EXECUTABLE ctags) + function(add_tags name) + cmake_parse_arguments(TAGS "" "SRC_DIR;TAG_FILE" "EXCLUDE_OPTS;EXCLUDES" ${ARGN}) + set(excludes ${TAGS_EXCLUDES}) ++ find_package(Git) + if(TAGS_EXCLUDE_OPTS) + # always respect EXCLUDES_OPTS + list(APPEND excludes ${TAGS_EXCLUDE_OPTS}) +- else() ++ elseif(Git_FOUND) + # exclude the submodules under SRC_DIR by default + execute_process( +- COMMAND git config --file .gitmodules --get-regexp path ++ COMMAND ${GIT_EXECUTABLE} config --file .gitmodules --get-regexp path + COMMAND awk "/${TAGS_SRC_DIR}/ { print $2 }" + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE result_code diff --git a/ceph-rpmlintrc b/ceph-rpmlintrc new file mode 100644 index 0000000..d00413a --- /dev/null +++ b/ceph-rpmlintrc @@ -0,0 +1,109 @@ +# Upstream has fixed share library dependencies, all within the +# ceph src package. Eliminating them is a long-term effort. +addFilter("shlib-fixed-dependency") + +# ceph-base RPM ships some internal static libraries +addFilter("ceph-base.*devel-file-in-non-devel-package.*compressor") +addFilter("ceph-base.*devel-file-in-non-devel-package.*rados-classes") +addFilter("ceph-base.*devel-file-in-non-devel-package.*libceph_crypto") +addFilter("ceph-base.*devel-file-in-non-devel-package.*libos_tp") +addFilter("ceph-base.*devel-file-in-non-devel-package.*libosd_tp") + +# env shebang hack is required because the same script has to run in FreeBSD as +# well as Linux (Fedora, CentOS, SUSE, Debian, Ubuntu, etc.) +addFilter("ceph-common.*env-script-interpreter.*rbd-replay-many") +addFilter("ceph-common.*env-script-interpreter.*rbdmap") + +# cephadm intentionally ships an empty file (.ssh/authorized_keys) +# and a hidden directory (/var/lib/cephadm/.ssh) +addFilter("cephadm.*zero-length") +addFilter("cephadm.*hidden-file-or-dir") + +# ceph-mgr-dashboard ships a bunch of empty files and hidden files: need to audit if they are needed (WIP) +addFilter("ceph-mgr-dashboard.*zero-length") +addFilter("ceph-mgr-dashboard.*hidden-file-or-dir") + +# ceph-immutable-object-cache has a weird description (WIP) +addFilter("ceph-immutable-object-cache.*description-shorter-than-summary") + +# ceph-osd depends on libstoragemgmt explicitly (WIP) +addFilter("ceph-osd.*explicit-lib-dependency.*libstoragemgmt") + +# we have a problem with RPM names that are too long for Joliet filesystem (WIP) +addFilter("filename-too-long-for-joliet") + +# ceph-base intentionally calls its logrotate file "etc/logrotate.d/ceph" +addFilter("ceph-base.*incoherent-logrotate-file") + +# many ceph executables might not be relinquishing groups (WIP) +addFilter("missing-call-to-setgroups-before-setuid") + +# package summary might intentionally contain the word "Ceph" +addFilter("name-repeated-in-summary") + +# the ceph RPM should be of the noarch architecture because it contains no binaries (WIP) +addFilter("ceph.*no-binary") + +# cephfs-shell might be missing a Requires (WIP) +addFilter("cephfs-shell.*no-dependency-on.*python-base") + +# ceph-osd ships /etc/sudoers.d/ceph-osd-smartctl without %config (WIP) +addFilter("ceph-osd.*non-conffile-in-etc.*sudoers") + +# cephadm ships /etc/sudoers.d/cephadm without %config (WIP) +addFilter("cephadm.*non-conffile-in-etc.*sudoers") + +# ceph-osd ships /usr/lib/sysctl.d/90-ceph-osd.conf with %config (WIP) +addFilter("ceph-osd.*non-etc-or-var-file-marked-as-conffile.*sysctl.d") + +# ceph-dashboard ships several scripts that don't have executable bit set (WIP) +addFilter("ceph-mgr-dashboard.*non-executable-script") + +# ceph-mgr-rook ships a script that doesn't have executable bit set (WIP) +addFilter("ceph-mgr-rook.*non-executable-script.*generate_rook_ceph_client.sh") + +# some devel packages obsolete the deprecated "ceph-devel" package without providing it (WIP) +addFilter("obsolete-not-provided.*ceph-devel") + +# libcephfs2 obsoletes libcephfs1 without providing it (WIP) +addFilter("libcephfs2.*obsolete-not-provided.*libcephfs1") + +# librgw2 calls exit() or _exit(), probably in a non-fork() context (WIP) +addFilter("librgw2.*shared-lib-calls-exit") + +# ceph-base ships with shared libraries - these are internal and upstream does +# not want to split them into separate RPMS +addFilter("ceph-base.*shlib-policy-missing-suffix") + +# the ceph RPM is a "meta" RPM without any files. These are discouraged by SUSE, +# but upstream relies on this construct and we just have to live with it. +addFilter("ceph\..*suse-filelist-empty") + +# ceph-common ships bash-completion files in the wrong directory (WIP) +addFilter("ceph-common.*suse-filelist-forbidden-bashcomp-userdirs") + +# ceph-base ships a logrotate file in /etc/logrotate.d/ceph but does not not +# package the log directory /var/log/ceph (WIP) +addFilter("ceph-base.*suse-logrotate-log-dir-not-packaged") + +# our packages are missing "rcFOO" symlinks - I doubt if this is worth fixing +addFilter("suse-missing-rclink") + +# %post scriptlets do not call service_add_post (WIP) +addFilter("systemd-service-without-service_add_post") + +# %pre scriptlets do not call service_add_pre (WIP) +addFilter("systemd-service-without-service_add_pre") + +# %postun scriptlets do not call service_del_postun (WIP) +addFilter("systemd-service-without-service_del_postun") + +# %preun scriptlets do not call service_del_preun (WIP) +addFilter("systemd-service-without-service_del_preun") + +# /run/ceph needs to be added to %files section as %ghost (WIP) +addFilter("ceph-common.*tmpfile-not-in-filelist") + +# ceph-radosgw ships a SO that belongs in librgw-devel (WIP) +addFilter("ceph-radosgw.*devel-file-in-non-devel-package") + diff --git a/ceph-test.spec b/ceph-test.spec new file mode 100644 index 0000000..9b9c342 --- /dev/null +++ b/ceph-test.spec @@ -0,0 +1,1283 @@ +#!BuildConstraint: hardware:memory:size unit=G 10 +#!BuildConstraint: hardware:disk:size unit=G 60 +# +# spec file for package ceph +# +# Copyright (C) 2004-2019 The Ceph Project Developers. See COPYING file +# at the top-level directory of this distribution and at +# https://github.com/ceph/ceph/blob/master/COPYING +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. +# +# This file is under the GNU Lesser General Public License, version 2.1 +# +# Please submit bugfixes or comments via http://tracker.ceph.com/ +# + +################################################################################# +# conditional build section +# +# please read http://rpm.org/user_doc/conditional_builds.html for explanation of +# bcond syntax! +################################################################################# +%bcond_with make_check +%bcond_with zbd +%bcond_with cmake_verbose_logging +%bcond_without ceph_test_package +%bcond_with minimal_debugging_information +%ifarch s390 +%bcond_with tcmalloc +%else +%bcond_without tcmalloc +%endif +%if 0%{?rhel} >= 9 +%bcond_without system_pmdk +%else +%bcond_with system_pmdk +%endif +%if 0%{?fedora} || 0%{?rhel} +%bcond_without selinux +%ifarch x86_64 ppc64le +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache +%else +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache +%endif +%if 0%{?rhel} >= 8 +%bcond_with cephfs_java +%else +%bcond_without cephfs_java +%endif +%bcond_without amqp_endpoint +%bcond_without kafka_endpoint +%bcond_without lttng +%bcond_without libradosstriper +%bcond_without ocf +%global luarocks_package_name luarocks +%bcond_without lua_packages +%global _remote_tarball_prefix https://download.ceph.com/tarballs/ +%endif +%if 0%{?suse_version} +%bcond_with amqp_endpoint +%bcond_with cephfs_java +%bcond_with kafka_endpoint +%bcond_with libradosstriper +%ifarch x86_64 aarch64 ppc64le +%bcond_without lttng +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache +%else +%bcond_with lttng +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache +%endif +%bcond_with ocf +%bcond_with selinux +#Compat macro for _fillupdir macro introduced in Nov 2017 +%if ! %{defined _fillupdir} +%global _fillupdir /var/adm/fillup-templates +%endif +#luarocks +%if 0%{?is_opensuse} +# openSUSE +%bcond_without lua_packages +%if 0%{?sle_version} +# openSUSE Leap +%global luarocks_package_name lua53-luarocks +%else +# openSUSE Tumbleweed +%global luarocks_package_name lua54-luarocks +%endif +%else +# SLE +%bcond_with lua_packages +%endif +%endif +%bcond_with seastar +%bcond_with jaeger +%if 0%{?fedora} || 0%{?suse_version} >= 1500 +# distros that ship cmd2 and/or colorama +%bcond_without cephfs_shell +%else +# distros that do _not_ ship cmd2/colorama +%bcond_with cephfs_shell +%endif +%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8 +%global weak_deps 1 +%endif +%if %{with selinux} +# get selinux policy version +# Force 0.0.0 policy version for centos builds to avoid repository sync issues between rhel and centos +%if 0%{?centos} +%global _selinux_policy_version 0.0.0 +%else +%{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0} +%endif +%endif + +%{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} +%{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} +%{!?python3_pkgversion: %global python3_pkgversion 3} +%{!?python3_version_nodots: %global python3_version_nodots 3} +%{!?python3_version: %global python3_version 3} + +# disable dwz which compresses the debuginfo +%global _find_debuginfo_dwz_opts %{nil} + +%if 0%{with seastar} +# disable -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1, as gcc-toolset-{9,10}-annobin +# do not provide gcc-annobin.so anymore, despite that they provide annobin.so. but +# redhat-rpm-config still passes -fplugin=gcc-annobin to the compiler. +%undefine _annotated_build +%endif + +################################################################################# +# main package definition +################################################################################# +Name: ceph-test +Version: 16.2.14.66+g7aa6ce9419f +Release: 0%{?dist} +%if 0%{?fedora} || 0%{?rhel} +Epoch: 2 +%endif + +# define _epoch_prefix macro which will expand to the empty string if epoch is +# undefined +%global _epoch_prefix %{?epoch:%{epoch}:} + +Summary: Ceph benchmarks and test tools +License: LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT +%if 0%{?suse_version} +Group: System/Filesystems +%endif +URL: http://ceph.com/ +Source0: %{?_remote_tarball_prefix}ceph-16.2.14-66-g7aa6ce9419f.tar.bz2 +# PATCH-FIX-UPSTREAM ceph-cmake-3.28.patch -- Fix build with cmake 3.28 but without git +Patch0: ceph-cmake-3.28.patch +%if 0%{?suse_version} +Source92: ceph-rpmlintrc +Source93: checkin.sh +Source94: pre_checkin.sh +Source95: pre_checkin.env +Source96: README-constraints.txt +Source97: README-ceph-test.txt +Source98: README-checkin.txt +Source99: README-packaging.txt +# _insert_obs_source_lines_here +ExclusiveArch: x86_64 +%endif +################################################################################# +# dependencies that apply across all distro families +################################################################################# + + + + +Requires: ceph-common +Requires: xmlstarlet +Requires: jq +Requires: socat +Requires(post): binutils +%if 0%{with cephfs_java} +BuildRequires: java-devel +BuildRequires: sharutils +%endif +%if 0%{with selinux} +BuildRequires: checkpolicy +BuildRequires: selinux-policy-devel +%endif +BuildRequires: gperf +BuildRequires: cmake > 3.5 +BuildRequires: cryptsetup +BuildRequires: fuse-devel +%if 0%{with seastar} +BuildRequires: gcc-toolset-9-gcc-c++ >= 9.2.1-2.3 +%else +BuildRequires: gcc-c++ +%endif +%if 0%{with tcmalloc} +# libprofiler did not build on ppc64le until 2.7.90 +%if 0%{?fedora} || 0%{?rhel} >= 8 +BuildRequires: gperftools-devel >= 2.7.90 +%endif +%if 0%{?rhel} && 0%{?rhel} < 8 +BuildRequires: gperftools-devel >= 2.6.1 +%endif +%if 0%{?suse_version} +BuildRequires: gperftools-devel >= 2.4 +%endif +%endif +BuildRequires: leveldb-devel > 1.2 +BuildRequires: libaio-devel +BuildRequires: libblkid-devel >= 2.17 +BuildRequires: cryptsetup-devel +BuildRequires: libcurl-devel +BuildRequires: libcap-ng-devel +BuildRequires: ((fmt-devel >= 5.2.1 with fmt-devel < 10) or fmt-9-devel) +BuildRequires: pkgconfig(libudev) +BuildRequires: libnl3-devel +BuildRequires: liboath-devel +BuildRequires: libtool +BuildRequires: libxml2-devel +BuildRequires: make +BuildRequires: ncurses-devel +BuildRequires: libicu-devel +BuildRequires: parted +BuildRequires: patch +BuildRequires: perl +BuildRequires: pkgconfig +BuildRequires: procps +BuildRequires: python%{python3_pkgversion} +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: snappy-devel +BuildRequires: sqlite-devel +BuildRequires: sudo +BuildRequires: pkgconfig(udev) +BuildRequires: util-linux +BuildRequires: valgrind-devel +BuildRequires: which +BuildRequires: xfsprogs +BuildRequires: xfsprogs-devel +BuildRequires: xmlstarlet +BuildRequires: nasm +BuildRequires: lua-devel +%if 0%{with amqp_endpoint} +BuildRequires: librabbitmq-devel +%endif +%if 0%{with kafka_endpoint} +BuildRequires: librdkafka-devel +%endif +%if 0%{with lua_packages} +BuildRequires: %{luarocks_package_name} +%endif +%if 0%{with make_check} +BuildRequires: jq +BuildRequires: libuuid-devel +BuildRequires: python%{python3_pkgversion}-bcrypt +BuildRequires: python%{python3_pkgversion}-pecan +BuildRequires: python%{python3_pkgversion}-requests +BuildRequires: python%{python3_pkgversion}-dateutil +BuildRequires: python%{python3_pkgversion}-coverage +BuildRequires: python%{python3_pkgversion}-pyOpenSSL +BuildRequires: socat +%endif +%if 0%{with zbd} +BuildRequires: libzbd-devel +%endif +%if 0%{with jaeger} +BuildRequires: bison +BuildRequires: flex +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: json-devel +%endif +%if 0%{?suse_version} +BuildRequires: nlohmann_json-devel +%endif +BuildRequires: libevent-devel +BuildRequires: yaml-cpp-devel +%endif +%if 0%{with system_pmdk} +BuildRequires: libpmem-devel +BuildRequires: libpmemobj-devel +%endif +%if 0%{with seastar} +BuildRequires: c-ares-devel +BuildRequires: gnutls-devel +BuildRequires: hwloc-devel +BuildRequires: libpciaccess-devel +BuildRequires: lksctp-tools-devel +BuildRequires: protobuf-devel +BuildRequires: ragel +BuildRequires: systemtap-sdt-devel +BuildRequires: yaml-cpp-devel +%if 0%{?fedora} +BuildRequires: libubsan +BuildRequires: libasan +%endif +%if 0%{?rhel} +BuildRequires: gcc-toolset-9-annobin +BuildRequires: gcc-toolset-9-libubsan-devel +BuildRequires: gcc-toolset-9-libasan-devel +BuildRequires: gcc-toolset-9-libatomic-devel +%endif +%endif +################################################################################# +# distro-conditional dependencies +################################################################################# +%if 0%{?suse_version} +BuildRequires: pkgconfig(systemd) +BuildRequires: systemd-rpm-macros +%{?systemd_requires} +PreReq: %fillup_prereq +BuildRequires: fdupes +BuildRequires: net-tools +BuildRequires: libbz2-devel +BuildRequires: mozilla-nss-devel +BuildRequires: keyutils-devel +BuildRequires: libopenssl-devel +BuildRequires: openldap2-devel +#BuildRequires: krb5 +#BuildRequires: krb5-devel +BuildRequires: cunit-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: (python%{python3_pkgversion}-Cython >= 0.29 with python%{python3_pkgversion}-Cython < 3) +BuildRequires: python%{python3_pkgversion}-PrettyTable +BuildRequires: python%{python3_pkgversion}-Sphinx +BuildRequires: rdma-core-devel +BuildRequires: liblz4-devel >= 1.7 +# for prometheus-alerts +BuildRequires: golang-github-prometheus-prometheus +%endif +%if 0%{?fedora} || 0%{?rhel} + +BuildRequires: boost-random +BuildRequires: nss-devel +BuildRequires: keyutils-libs-devel +BuildRequires: libatomic +BuildRequires: libibverbs-devel +BuildRequires: librdmacm-devel +BuildRequires: openldap-devel +#BuildRequires: krb5-devel +BuildRequires: openssl-devel +BuildRequires: CUnit-devel +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-Cython +BuildRequires: python%{python3_pkgversion}-prettytable +BuildRequires: python%{python3_pkgversion}-sphinx +BuildRequires: lz4-devel >= 1.7 +%endif +# distro-conditional make check dependencies +%if 0%{with make_check} +BuildRequires: golang +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: golang-github-prometheus +BuildRequires: libtool-ltdl-devel +BuildRequires: xmlsec1 +BuildRequires: xmlsec1-devel +%ifarch x86_64 +BuildRequires: xmlsec1-nss +%endif +BuildRequires: xmlsec1-openssl +BuildRequires: xmlsec1-openssl-devel +BuildRequires: python%{python3_pkgversion}-cherrypy +BuildRequires: python%{python3_pkgversion}-jwt +BuildRequires: python%{python3_pkgversion}-routes +BuildRequires: python%{python3_pkgversion}-scipy +BuildRequires: python%{python3_pkgversion}-werkzeug +BuildRequires: python%{python3_pkgversion}-pyOpenSSL +%endif +%if 0%{?suse_version} +BuildRequires: golang-github-prometheus-prometheus +BuildRequires: libxmlsec1-1 +BuildRequires: libxmlsec1-nss1 +BuildRequires: libxmlsec1-openssl1 +BuildRequires: python%{python3_pkgversion}-CherryPy +BuildRequires: python%{python3_pkgversion}-PyJWT +BuildRequires: python%{python3_pkgversion}-Routes +BuildRequires: python%{python3_pkgversion}-Werkzeug +BuildRequires: python%{python3_pkgversion}-numpy-devel +BuildRequires: xmlsec1-devel +BuildRequires: xmlsec1-openssl-devel +%endif +%endif +# lttng and babeltrace for rbd-replay-prep +%if %{with lttng} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: lttng-ust-devel +BuildRequires: libbabeltrace-devel +%endif +%if 0%{?suse_version} +BuildRequires: lttng-ust-devel +BuildRequires: babeltrace-devel +%endif +%endif +%if 0%{?suse_version} +BuildRequires: libexpat-devel +%endif +%if 0%{?rhel} || 0%{?fedora} +BuildRequires: expat-devel +%endif +#hardened-cc1 +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: redhat-rpm-config +%endif +%if 0%{with seastar} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: cryptopp-devel +BuildRequires: numactl-devel +BuildRequires: protobuf-compiler +%endif +%if 0%{?suse_version} +BuildRequires: libcryptopp-devel +BuildRequires: libnuma-devel +%endif +%endif +%if 0%{?rhel} >= 8 +BuildRequires: /usr/bin/pathfix.py +%endif + +%description +This package contains Ceph benchmarks and test tools. + +################################################################################# +# subpackages +################################################################################# +%if 0%{?suse_version} +%endif +%if 0%{with selinux} +%endif +%if 0%{?rhel} && 0%{?rhel} < 8 +%if 0%{with tcmalloc} +%endif +%endif +%if 0%{?weak_deps} +%if 0%{?suse_version} +%endif +%endif +%if 0%{?weak_deps} +%endif +%if 0%{?suse_version} +%endif +%if 0%{with jaeger} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{with libradosstriper} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{with jaeger} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?weak_deps} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%if 0%{?weak_deps} +%endif +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} >= 8 +%endif +%if 0%{?suse_version} +%endif +%if 0%{?weak_deps} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?rhel} || 0%{?fedora} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{with selinux} +%endif +%if 0%{?rhel} || 0%{?fedora} +%endif +%if 0%{?weak_deps} +%endif +%if %{with ocf} +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} +%endif +%if 0%{with seastar} +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} +%endif +%if 0%{?rhel} || 0%{?fedora} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{with libradosstriper} +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?rhel} || 0%{?fedora} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?rhel} || 0%{?fedora} +%endif +%if 0%{?suse_version} +%endif +%if 0%{with jaeger} +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} >= 8 +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{with cephfs_shell} +%endif +%if 0%{with ceph_test_package} +%if 0%{?suse_version} +%endif +%endif +%if 0%{with cephfs_java} +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} +%endif +%if 0%{with selinux} +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} +%endif +%prep +%autosetup -p1 -n ceph-16.2.14-66-g7aa6ce9419f + +%build +# Disable lto on systems that do not support symver attribute +# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200 for details +%if ( 0%{?rhel} && 0%{?rhel} < 9 ) || ( 0%{?suse_version} && 0%{?suse_version} <= 1500 ) +%define _lto_cflags %{nil} +%endif + +%if 0%{with seastar} && 0%{?rhel} +. /opt/rh/gcc-toolset-9/enable +%endif + +%if 0%{with cephfs_java} +# Find jni.h +for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do + [ -d $i ] && java_inc="$java_inc -I$i" +done +%endif + +%if 0%{?suse_version} +# the following setting fixed an OOM condition we once encountered in the OBS +RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" +%endif +%if %{with minimal_debugging_information} +RPM_OPT_FLAGS="$(echo $RPM_OPT_FLAGS | sed -e 's/^-g /-g1 /g' -e 's/ -g / -g1 /g' -e 's/ -g$/ -g1/g')" +%endif + +export CPPFLAGS="$java_inc" +export CFLAGS="$RPM_OPT_FLAGS" +export CXXFLAGS="$RPM_OPT_FLAGS -DFMT_DEPRECATED_OSTREAM" +export LDFLAGS="$RPM_LD_FLAGS" +test "$RPM_LD_FLAGS" && echo "RPM_LD_FLAGS == $RPM_LD_FLAGS" || echo "RPM_LD_FLAGS is empty" + +%if 0%{with seastar} +# seastar uses longjmp() to implement coroutine. and this annoys longjmp_chk() +export CXXFLAGS=$(echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g') +%endif + +# Parallel build settings ... +CEPH_MFLAGS_JOBS="%{?_smp_mflags}" +CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//') +%if 0%{?__isa_bits} == 32 +# 32-bit builds can use 3G memory max, which is not enough even for -j2 +CEPH_SMP_NCPUS="1" +%endif +# do not eat all memory +echo "Available memory:" +free -h +echo "System limits:" +ulimit -a +if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then + mem_per_process=2500 + max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") + max_jobs="$(($max_mem / $mem_per_process))" + test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" + test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits" +fi +export CEPH_SMP_NCPUS +export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS" + +env | sort + +mkdir build +cd build +CMAKE=cmake +${CMAKE} .. \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ + -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \ + -DCMAKE_INSTALL_LOCALSTATEDIR=%{_localstatedir} \ + -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \ + -DCMAKE_INSTALL_MANDIR=%{_mandir} \ + -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \ + -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ + -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=%{_unitdir} \ + -DWITH_MANPAGE=ON \ + -DWITH_PYTHON3=%{python3_version} \ + -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ +%if 0%{without ceph_test_package} + -DWITH_TESTS=OFF \ +%endif +%if 0%{with cephfs_java} + -DWITH_CEPHFS_JAVA=ON \ +%endif +%if 0%{with selinux} + -DWITH_SELINUX=ON \ +%endif +%if %{with lttng} + -DWITH_LTTNG=ON \ + -DWITH_BABELTRACE=ON \ +%else + -DWITH_LTTNG=OFF \ + -DWITH_BABELTRACE=OFF \ +%endif + $CEPH_EXTRA_CMAKE_ARGS \ +%if 0%{with ocf} + -DWITH_OCF=ON \ +%endif +%if 0%{with cephfs_shell} + -DWITH_CEPHFS_SHELL=ON \ +%endif +%if 0%{with libradosstriper} + -DWITH_LIBRADOSSTRIPER=ON \ +%else + -DWITH_LIBRADOSSTRIPER=OFF \ +%endif +%if 0%{with amqp_endpoint} + -DWITH_RADOSGW_AMQP_ENDPOINT=ON \ +%else + -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \ +%endif +%if 0%{with kafka_endpoint} + -DWITH_RADOSGW_KAFKA_ENDPOINT=ON \ +%else + -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ +%endif +%if 0%{without lua_packages} + -DWITH_RADOSGW_LUA_PACKAGES=OFF \ +%endif +%if 0%{with zbd} + -DWITH_ZBD=ON \ +%endif +%if 0%{with cmake_verbose_logging} + -DCMAKE_VERBOSE_MAKEFILE=ON \ +%endif +%if 0%{with rbd_rwl_cache} + -DWITH_RBD_RWL=ON \ +%endif +%if 0%{with rbd_ssd_cache} + -DWITH_RBD_SSD_CACHE=ON \ +%endif +%if 0%{with system_pmdk} + -DWITH_SYSTEM_PMDK:BOOL=ON \ +%endif + -DBOOST_J=$CEPH_SMP_NCPUS \ +%if 0%{?rhel} + -DWITH_FMT_HEADER_ONLY:BOOL=ON \ +%endif + -DWITH_GRAFANA=ON + +%if %{with cmake_verbose_logging} +cat ./CMakeFiles/CMakeOutput.log +cat ./CMakeFiles/CMakeError.log +%endif + +make "$CEPH_MFLAGS_JOBS" + + +%if 0%{with make_check} +%check +# run in-tree unittests +cd build +ctest "$CEPH_MFLAGS_JOBS" +%endif + + +%install +pushd build +make DESTDIR=%{buildroot} install +# we have dropped sysvinit bits +rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph +popd + +%if 0%{with seastar} +# package crimson-osd with the name of ceph-osd +install -m 0755 %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-osd +%endif + +install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap +%if 0%{?fedora} || 0%{?rhel} +install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph +%endif +%if 0%{?suse_version} +install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name} +%endif +install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf +install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_presetdir}/50-ceph.preset +mkdir -p %{buildroot}%{_sbindir} +install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph +chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf +install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING +install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf +install -m 0755 -D src/tools/rbd_nbd/rbd-nbd_quiesce %{buildroot}%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce + +install -m 0755 src/cephadm/cephadm %{buildroot}%{_sbindir}/cephadm +mkdir -p %{buildroot}%{_sharedstatedir}/cephadm +chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm +mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh +chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm/.ssh +touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys +chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys + +# firewall templates and /sbin/mount.ceph symlink +%if 0%{?suse_version} && 0%{?suse_version} < 1550 +mkdir -p %{buildroot}/sbin +ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph +%endif + +# udev rules +install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules + +# sudoers.d +install -m 0440 -D sudoers.d/ceph-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-smartctl + +%if 0%{?rhel} >= 8 +pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/* +pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_sbindir}/* +%endif + +#set up placeholder directories +mkdir -p %{buildroot}%{_sysconfdir}/ceph +mkdir -p %{buildroot}%{_localstatedir}/run/ceph +mkdir -p %{buildroot}%{_localstatedir}/log/ceph +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash/posted +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror + +# prometheus alerts +install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml + +%if 0%{?suse_version} +# create __pycache__ directories and their contents +%py3_compile %{buildroot}%{python3_sitelib} +# hardlink duplicate files under /usr to save space +%fdupes %{buildroot}%{_prefix} +%endif + +%if 0%{?rhel} == 8 +%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib} +%endif + +rm -rf %{buildroot}%{_bindir}/ceph-crash +rm -rf %{buildroot}%{_bindir}/crushtool +rm -rf %{buildroot}%{_bindir}/monmaptool +rm -rf %{buildroot}%{_bindir}/osdmaptool +rm -rf %{buildroot}%{_bindir}/ceph-kvstore-tool +rm -rf %{buildroot}%{_bindir}/ceph-run +rm -rf %{buildroot}%{_bindir}/ceph-dencoder +rm -rf %{buildroot}%{_bindir}/cephfs-data-scan +rm -rf %{buildroot}%{_bindir}/cephfs-journal-tool +rm -rf %{buildroot}%{_bindir}/cephfs-table-tool +rm -rf %{buildroot}%{_presetdir}/50-ceph.preset +rm -rf %{buildroot}%{_sbindir}/ceph-create-keys +rm -rf %{buildroot}%{_libexecdir}/ceph/ceph_common.sh +rm -rf %{buildroot}%{_libdir}/rados-classes/* +rm -rf %{buildroot}%{_libdir}/ceph/erasure-code/libec_*.so* +rm -rf %{buildroot}%{_libdir}/ceph/compressor/libceph_*.so* +rm -rf %{buildroot}%{_unitdir}/ceph-crash.service +rm -rf %{buildroot}%{_libdir}/ceph/crypto/libceph_*.so* +rm -rf %{buildroot}%{_libdir}/libos_tp.so* +rm -rf %{buildroot}%{_libdir}/libosd_tp.so* +rm -rf %{buildroot}%{_sysconfdir}/logrotate.d/ceph +rm -rf %{buildroot}%{_sysconfdir}/sysconfig/ceph +rm -rf %{buildroot}%{_fillupdir}/sysconfig.* +rm -rf %{buildroot}%{_unitdir}/ceph.target +rm -rf %{buildroot}%{python3_sitelib}/ceph_volume/* +rm -rf %{buildroot}%{python3_sitelib}/ceph_volume-* +rm -rf %{buildroot}%{_mandir}/man8/ceph-deploy.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-create-keys.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-run.8* +rm -rf %{buildroot}%{_mandir}/man8/crushtool.8* +rm -rf %{buildroot}%{_mandir}/man8/osdmaptool.8* +rm -rf %{buildroot}%{_mandir}/man8/monmaptool.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-kvstore-tool.8* +rm -rf %{buildroot}%{_sysconfdir}/sudoers.d/ceph-smartctl +rm -rf %{buildroot}%{_sbindir}/cephadm +rm -rf %{buildroot}%{_mandir}/man8/cephadm.8* +rm -rf %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys +rm -rf %{buildroot}%doc +rm -rf %{buildroot}%{_docdir}/ceph/sample.ceph.conf +rm -rf %{buildroot}%license +rm -rf %{buildroot}%{_docdir}/ceph/COPYING +rm -rf %{buildroot}%{_bindir}/ceph +rm -rf %{buildroot}%{_bindir}/ceph-authtool +rm -rf %{buildroot}%{_bindir}/ceph-conf +rm -rf %{buildroot}%{_bindir}/ceph-rbdnamer +rm -rf %{buildroot}%{_bindir}/ceph-syn +rm -rf %{buildroot}%{_bindir}/rados +rm -rf %{buildroot}%{_bindir}/radosgw-admin +rm -rf %{buildroot}%{_bindir}/rbd +rm -rf %{buildroot}%{_bindir}/rbd-replay +rm -rf %{buildroot}%{_bindir}/rbd-replay-many +rm -rf %{buildroot}%{_bindir}/rbdmap +rm -rf %{buildroot}%{_sbindir}/mount.ceph +rm -rf %{buildroot}/sbin/mount.ceph +rm -rf %{buildroot}%{_bindir}/rbd-replay-prep +rm -rf %{buildroot}%{_bindir}/ceph-post-file +rm -rf %{buildroot}%{_libdir}/ceph/denc/denc-mod-*.so +rm -rf %{buildroot}%{_tmpfilesdir}/ceph-common.conf +rm -rf %{buildroot}%{_mandir}/man8/ceph-authtool.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-conf.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-dencoder.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-diff-sorted.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-rbdnamer.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-syn.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-post-file.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph.8* +rm -rf %{buildroot}%{_mandir}/man8/mount.ceph.8* +rm -rf %{buildroot}%{_mandir}/man8/rados.8* +rm -rf %{buildroot}%{_mandir}/man8/radosgw-admin.8* +rm -rf %{buildroot}%{_mandir}/man8/rbd.8* +rm -rf %{buildroot}%{_mandir}/man8/rbdmap.8* +rm -rf %{buildroot}%{_mandir}/man8/rbd-replay.8* +rm -rf %{buildroot}%{_mandir}/man8/rbd-replay-many.8* +rm -rf %{buildroot}%{_mandir}/man8/rbd-replay-prep.8* +rm -rf %{buildroot}%{_mandir}/man8/rgw-orphan-list.8* +rm -rf %{buildroot}%{_datadir}/ceph/known_hosts_drop.ceph.com +rm -rf %{buildroot}%{_datadir}/ceph/id_rsa_drop.ceph.com +rm -rf %{buildroot}%{_datadir}/ceph/id_rsa_drop.ceph.com.pub +rm -rf %{buildroot}%{_sysconfdir}/bash_completion.d/ceph +rm -rf %{buildroot}%{_sysconfdir}/bash_completion.d/rados +rm -rf %{buildroot}%{_sysconfdir}/bash_completion.d/rbd +rm -rf %{buildroot}%{_sysconfdir}/bash_completion.d/radosgw-admin +rm -rf %{buildroot}%{_sysconfdir}/ceph/rbdmap +rm -rf %{buildroot}%{_unitdir}/rbdmap.service +rm -rf %{buildroot}%{_udevrulesdir}/50-rbd.rules +rm -rf %{buildroot}%{_bindir}/ceph-mds +rm -rf %{buildroot}%{_mandir}/man8/ceph-mds.8* +rm -rf %{buildroot}%{_unitdir}/ceph-mds@.service +rm -rf %{buildroot}%{_unitdir}/ceph-mds.target +rm -rf %{buildroot}%{_bindir}/ceph-mgr +rm -rf %{buildroot}%{_datadir}/ceph/mgr/mgr_module.* +rm -rf %{buildroot}%{_datadir}/ceph/mgr/mgr_util.* +rm -rf %{buildroot}%{_unitdir}/ceph-mgr@.service +rm -rf %{buildroot}%{_unitdir}/ceph-mgr.target +rm -rf %{buildroot}%{_datadir}/ceph/mgr/dashboard +rm -rf %{buildroot}%{_datadir}/ceph/mgr/diskprediction_local +rm -rf %{buildroot}%{_datadir}/ceph/mgr/alerts +rm -rf %{buildroot}%{_datadir}/ceph/mgr/balancer +rm -rf %{buildroot}%{_datadir}/ceph/mgr/crash +rm -rf %{buildroot}%{_datadir}/ceph/mgr/devicehealth +rm -rf %{buildroot}%{_datadir}/ceph/mgr/influx +rm -rf %{buildroot}%{_datadir}/ceph/mgr/insights +rm -rf %{buildroot}%{_datadir}/ceph/mgr/iostat +rm -rf %{buildroot}%{_datadir}/ceph/mgr/localpool +rm -rf %{buildroot}%{_datadir}/ceph/mgr/mds_autoscaler +rm -rf %{buildroot}%{_datadir}/ceph/mgr/mirroring +rm -rf %{buildroot}%{_datadir}/ceph/mgr/nfs +rm -rf %{buildroot}%{_datadir}/ceph/mgr/orchestrator +rm -rf %{buildroot}%{_datadir}/ceph/mgr/osd_perf_query +rm -rf %{buildroot}%{_datadir}/ceph/mgr/osd_support +rm -rf %{buildroot}%{_datadir}/ceph/mgr/pg_autoscaler +rm -rf %{buildroot}%{_datadir}/ceph/mgr/progress +rm -rf %{buildroot}%{_datadir}/ceph/mgr/prometheus +rm -rf %{buildroot}%{_datadir}/ceph/mgr/rbd_support +rm -rf %{buildroot}%{_datadir}/ceph/mgr/restful +rm -rf %{buildroot}%{_datadir}/ceph/mgr/selftest +rm -rf %{buildroot}%{_datadir}/ceph/mgr/snap_schedule +rm -rf %{buildroot}%{_datadir}/ceph/mgr/stats +rm -rf %{buildroot}%{_datadir}/ceph/mgr/status +rm -rf %{buildroot}%{_datadir}/ceph/mgr/telegraf +rm -rf %{buildroot}%{_datadir}/ceph/mgr/telemetry +rm -rf %{buildroot}%{_datadir}/ceph/mgr/test_orchestrator +rm -rf %{buildroot}%{_datadir}/ceph/mgr/volumes +rm -rf %{buildroot}%{_datadir}/ceph/mgr/zabbix +rm -rf %{buildroot}%{_datadir}/ceph/mgr/rook +rm -rf %{buildroot}%{_datadir}/ceph/mgr/k8sevents +rm -rf %{buildroot}%{_datadir}/ceph/mgr/cephadm +rm -rf %{buildroot}%{_bindir}/ceph-mon +rm -rf %{buildroot}%{_bindir}/ceph-monstore-tool +rm -rf %{buildroot}%{_mandir}/man8/ceph-mon.8* +rm -rf %{buildroot}%{_unitdir}/ceph-mon@.service +rm -rf %{buildroot}%{_unitdir}/ceph-mon.target +rm -rf %{buildroot}%{_bindir}/ceph-fuse +rm -rf %{buildroot}%{_mandir}/man8/ceph-fuse.8* +rm -rf %{buildroot}%{_sbindir}/mount.fuse.ceph +rm -rf %{buildroot}%{_mandir}/man8/mount.fuse.ceph.8* +rm -rf %{buildroot}%{_unitdir}/ceph-fuse@.service +rm -rf %{buildroot}%{_unitdir}/ceph-fuse.target +rm -rf %{buildroot}%{_bindir}/cephfs-mirror +rm -rf %{buildroot}%{_mandir}/man8/cephfs-mirror.8* +rm -rf %{buildroot}%{_unitdir}/cephfs-mirror@.service +rm -rf %{buildroot}%{_unitdir}/cephfs-mirror.target +rm -rf %{buildroot}%{_bindir}/rbd-fuse +rm -rf %{buildroot}%{_mandir}/man8/rbd-fuse.8* +rm -rf %{buildroot}%{_bindir}/rbd-mirror +rm -rf %{buildroot}%{_mandir}/man8/rbd-mirror.8* +rm -rf %{buildroot}%{_unitdir}/ceph-rbd-mirror@.service +rm -rf %{buildroot}%{_unitdir}/ceph-rbd-mirror.target +rm -rf %{buildroot}%{_bindir}/ceph-immutable-object-cache +rm -rf %{buildroot}%{_mandir}/man8/ceph-immutable-object-cache.8* +rm -rf %{buildroot}%{_unitdir}/ceph-immutable-object-cache@.service +rm -rf %{buildroot}%{_unitdir}/ceph-immutable-object-cache.target +rm -rf %{buildroot}%{_bindir}/rbd-nbd +rm -rf %{buildroot}%{_mandir}/man8/rbd-nbd.8* +rm -rf %{buildroot}%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce +rm -rf %{buildroot}%{_bindir}/ceph-diff-sorted +rm -rf %{buildroot}%{_bindir}/radosgw +rm -rf %{buildroot}%{_bindir}/radosgw-token +rm -rf %{buildroot}%{_bindir}/radosgw-es +rm -rf %{buildroot}%{_bindir}/radosgw-object-expirer +rm -rf %{buildroot}%{_bindir}/rgw-gap-list +rm -rf %{buildroot}%{_bindir}/rgw-gap-list-comparator +rm -rf %{buildroot}%{_bindir}/rgw-orphan-list +rm -rf %{buildroot}%{_libdir}/libradosgw.so* +rm -rf %{buildroot}%{_mandir}/man8/radosgw.8* +rm -rf %{buildroot}%{_unitdir}/ceph-radosgw@.service +rm -rf %{buildroot}%{_unitdir}/ceph-radosgw.target +rm -rf %{buildroot}%{_bindir}/ceph-clsinfo +rm -rf %{buildroot}%{_bindir}/ceph-bluestore-tool +rm -rf %{buildroot}%{_bindir}/ceph-erasure-code-tool +rm -rf %{buildroot}%{_bindir}/ceph-objectstore-tool +rm -rf %{buildroot}%{_bindir}/ceph-osdomap-tool +rm -rf %{buildroot}%{_bindir}/ceph-osd +rm -rf %{buildroot}%{_libexecdir}/ceph/ceph-osd-prestart.sh +rm -rf %{buildroot}%{_sbindir}/ceph-volume +rm -rf %{buildroot}%{_sbindir}/ceph-volume-systemd +rm -rf %{buildroot}%{_mandir}/man8/ceph-clsinfo.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-osd.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-bluestore-tool.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-volume.8* +rm -rf %{buildroot}%{_mandir}/man8/ceph-volume-systemd.8* +rm -rf %{buildroot}%{_unitdir}/ceph-osd@.service +rm -rf %{buildroot}%{_unitdir}/ceph-osd.target +rm -rf %{buildroot}%{_unitdir}/ceph-volume@.service +rm -rf %{buildroot}%{_sysctldir}/90-ceph-osd.conf +rm -rf %{buildroot}%{_bindir}/crimson-osd +rm -rf %{buildroot}%{_prefix}/lib/ocf/resource.d/ceph/rbd +rm -rf %{buildroot}%{_libdir}/librados.so.* +rm -rf %{buildroot}%{_libdir}/ceph/libceph-common.so.* +rm -rf %{buildroot}%{_libdir}/librados_tp.so.* +rm -rf %{buildroot}%{_includedir}/rados/librados.h +rm -rf %{buildroot}%{_includedir}/rados/rados_types.h +rm -rf %{buildroot}%{_libdir}/librados.so +rm -rf %{buildroot}%{_libdir}/librados_tp.so +rm -rf %{buildroot}%{_bindir}/librados-config +rm -rf %{buildroot}%{_mandir}/man8/librados-config.8* +rm -rf %{buildroot}%{_includedir}/rados/buffer.h +rm -rf %{buildroot}%{_includedir}/rados/buffer_fwd.h +rm -rf %{buildroot}%{_includedir}/rados/crc32c.h +rm -rf %{buildroot}%{_includedir}/rados/inline_memory.h +rm -rf %{buildroot}%{_includedir}/rados/librados.hpp +rm -rf %{buildroot}%{_includedir}/rados/librados_fwd.hpp +rm -rf %{buildroot}%{_includedir}/rados/page.h +rm -rf %{buildroot}%{_includedir}/rados/rados_types.hpp +rm -rf %{buildroot}%{python3_sitearch}/rados.cpython*.so +rm -rf %{buildroot}%{python3_sitearch}/rados-*.egg-info +rm -rf %{buildroot}%{_libdir}/libcephsqlite.so +rm -rf %{buildroot}%{_includedir}/libcephsqlite.h +rm -rf %{buildroot}%{_libdir}/libradosstriper.so.* +rm -rf %{buildroot}%{_includedir}/radosstriper/libradosstriper.h +rm -rf %{buildroot}%{_includedir}/radosstriper/libradosstriper.hpp +rm -rf %{buildroot}%{_libdir}/libradosstriper.so +rm -rf %{buildroot}%{_libdir}/librbd.so.* +rm -rf %{buildroot}%{_libdir}/librbd_tp.so.* +rm -rf %{buildroot}%{_libdir}/ceph/librbd/libceph_*.so* +rm -rf %{buildroot}%{_includedir}/rbd/librbd.h +rm -rf %{buildroot}%{_includedir}/rbd/librbd.hpp +rm -rf %{buildroot}%{_includedir}/rbd/features.h +rm -rf %{buildroot}%{_libdir}/librbd.so +rm -rf %{buildroot}%{_libdir}/librbd_tp.so +rm -rf %{buildroot}%{_libdir}/librgw.so.* +rm -rf %{buildroot}%{_libdir}/librgw_op_tp.so.* +rm -rf %{buildroot}%{_libdir}/librgw_rados_tp.so.* +rm -rf %{buildroot}%{_includedir}/rados/librgw.h +rm -rf %{buildroot}%{_includedir}/rados/rgw_file.h +rm -rf %{buildroot}%{_libdir}/librgw.so +rm -rf %{buildroot}%{_libdir}/librgw_op_tp.so +rm -rf %{buildroot}%{_libdir}/librgw_rados_tp.so +rm -rf %{buildroot}%{python3_sitearch}/rgw.cpython*.so +rm -rf %{buildroot}%{python3_sitearch}/rgw-*.egg-info +rm -rf %{buildroot}%{python3_sitearch}/rbd.cpython*.so +rm -rf %{buildroot}%{python3_sitearch}/rbd-*.egg-info +rm -rf %{buildroot}%{_libdir}/libcephfs.so.* +rm -rf %{buildroot}%{_includedir}/cephfs/libcephfs.h +rm -rf %{buildroot}%{_includedir}/cephfs/ceph_ll_client.h +rm -rf %{buildroot}%{_includedir}/cephfs/metrics/Types.h +rm -rf %{buildroot}%{_libdir}/libcephfs.so +rm -rf %{buildroot}%{_libdir}/libopentracing.so.* +rm -rf %{buildroot}%{_libdir}/libthrift.so.* +rm -rf %{buildroot}%{_libdir}/libjaegertracing.so.* +rm -rf %{buildroot}%{python3_sitearch}/cephfs.cpython*.so +rm -rf %{buildroot}%{python3_sitearch}/cephfs-*.egg-info +rm -rf %{buildroot}%{python3_sitelib}/ceph_volume_client.py +rm -rf %{buildroot}%{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py* +rm -rf %{buildroot}%{python3_sitelib}/ceph_argparse.py +rm -rf %{buildroot}%{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py* +rm -rf %{buildroot}%{python3_sitelib}/ceph_daemon.py +rm -rf %{buildroot}%{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py* +rm -rf %{buildroot}%{python3_sitelib}/ceph +rm -rf %{buildroot}%{python3_sitelib}/ceph-*.egg-info +rm -rf %{buildroot}%{python3_sitelib}/cephfs_shell-*.egg-info +rm -rf %{buildroot}%{_bindir}/cephfs-shell +rm -rf %{buildroot}%{python3_sitelib}/cephfs_top-*.egg-info +rm -rf %{buildroot}%{_bindir}/cephfs-top +rm -rf %{buildroot}%{_mandir}/man8/cephfs-top.8* +rm -rf %{buildroot}%{_libdir}/libcephfs_jni.so.* +rm -rf %{buildroot}%{_libdir}/libcephfs_jni.so +rm -rf %{buildroot}%{_javadir}/libcephfs.jar +rm -rf %{buildroot}%{_javadir}/libcephfs-test.jar +rm -rf %{buildroot}%{_includedir}/rados/objclass.h +rm -rf %{buildroot}%{_datadir}/selinux/packages/ceph.pp +rm -rf %{buildroot}%{_datadir}/selinux/devel/include/contrib/ceph.if +rm -rf %{buildroot}%{_mandir}/man8/ceph_selinux.8* +rm -rf %{buildroot}%{_sysconfdir}/grafana/dashboards/ceph-dashboard/* +rm -rf %{buildroot}%{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml + +dirs=`find %{buildroot} -type d -empty` +while [[ -n $dirs ]]; do + for d in $dirs; do + rm -rf $d + done +dirs=`find %{buildroot} -type d -empty` +done + +%clean +rm -rf %{buildroot} +# built binaries are no longer necessary at this point, +# but are consuming ~17GB of disk in the build environment +rm -rf build + +################################################################################# +# files and systemd scriptlets +################################################################################# +%files + +%if %{with lttng} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if ! 0%{?suse_version} +%endif +%if 0%{?suse_version} && 0%{?suse_version} < 1550 +%endif +%if %{with lttng} +%endif +%if 0%{?rhel} || 0%{?fedora} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?sysctl_apply} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{with seastar} +%endif +%if %{with ocf} +%endif +%if %{with lttng} +%endif +%if %{with lttng} +%endif +%if 0%{with libradosstriper} +%endif +%if %{with lttng} +%endif +%if %{with lttng} +%endif +%if %{with lttng} +%endif +%if %{with lttng} +%endif +%if %{with jaeger} +%endif +%if 0%{with cephfs_shell} +%endif +%if 0%{with ceph_test_package} +%files -n ceph-test +%{_bindir}/ceph-client-debug +%{_bindir}/ceph_bench_log +%{_bindir}/ceph_kvstorebench +%{_bindir}/ceph_multi_stress_watch +%{_bindir}/ceph_erasure_code_benchmark +%{_bindir}/ceph_omapbench +%{_bindir}/ceph_objectstore_bench +%{_bindir}/ceph_perf_objectstore +%{_bindir}/ceph_perf_local +%{_bindir}/ceph_perf_msgr_client +%{_bindir}/ceph_perf_msgr_server +%{_bindir}/ceph_psim +%{_bindir}/ceph_radosacl +%{_bindir}/ceph_rgw_jsonparser +%{_bindir}/ceph_rgw_multiparser +%{_bindir}/ceph_scratchtool +%{_bindir}/ceph_scratchtoolpp +%{_bindir}/ceph_test_* +%{_bindir}/ceph-coverage +%{_bindir}/ceph-debugpack +%{_bindir}/ceph-dedup-tool +%if 0%{with seastar} +%{_bindir}/crimson-store-nbd +%endif +%{_mandir}/man8/ceph-debugpack.8* +%dir %{_libdir}/ceph +%{_libdir}/ceph/ceph-monstore-update-crush.sh +%endif + +%if 0%{with cephfs_java} +%endif +%if 0%{with selinux} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%changelog diff --git a/ceph.changes b/ceph.changes new file mode 100644 index 0000000..050b1b5 --- /dev/null +++ b/ceph.changes @@ -0,0 +1,2916 @@ +------------------------------------------------------------------- +Tue Dec 19 12:33:41 UTC 2023 - Dominique Leuenberger + +- Add ceph-cmake-3.28.patch: Fix build with cmake 3.28 and no git + command found (https://github.com/ceph/ceph/pull/54963, + boo#1218111). + +------------------------------------------------------------------- +Mon Sep 11 09:06:12 UTC 2023 - Tim Serong + +- Update to 16.2.14-66-g7aa6ce9419f: + + (bsc#1207765) rgw/rados: check_quota() uses real bucket owner + + (bsc#1212559) pacific: os/bluestore: cumulative bluefs backport + This notably includes: + * os/bluestore: BlueFS fine grain locking + * os/bluestore/bluefs: Fix improper vselector tracking in _flush_special() + * os/bluestore: enable 4K allocation unit for BlueFS + * os/bluestore/bluefs: Fix sync compactionA + + (bsc#1213217) ceph.spec.in: Require fmt-devel < 10 + + ceph.spec.in: enable build on riscv64 for openSUSE Factory + + ceph.spec.in: Require Cython >= 0.29 but < 3 + + cephadm: update to the latest container images: + * registry.suse.com/ses/7.1/ceph/prometheus-server:2.37.6 + * registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.5.0 + * registry.suse.com/ses/7.1/ceph/grafana:8.5.22 + * registry.suse.com/ses/7.1/ceph/haproxy:2.0.31 +- Drop ceph-test.changes (no longer necessary since using _multibuild) + +------------------------------------------------------------------- +Wed Aug 16 15:25:39 UTC 2023 - Ana Guerrero + +- restrict to older Cython + +------------------------------------------------------------------- +Tue Jun 27 01:08:52 UTC 2023 - Tim Serong + +- Remove _constraints file, add README-constraints.txt and pre_checkin.env + +------------------------------------------------------------------- +Wed May 24 06:26:03 UTC 2023 - Tim Serong + +- Add "#!BuildConstraint" to spec files for compatibility with _multibuild + +------------------------------------------------------------------- +Thu May 11 04:24:01 UTC 2023 - Tim Serong + +- Update to 16.2.13-66-g54799ee0666: + + (bsc#1199880) mgr: don't dump global config holding gil + + (bsc#1209621) cephadm: fix NFS haproxy failover if active node disappears + + (bsc#1210153) mgr/cephadm: fix handling of mgr upgrades with 3 or more mgrs + + (bsc#1210243, bsc#1210314) ceph-volume: fix regression in activate + + (bsc#1210719) cephadm: mount host /etc/hosts for daemon containers in podman deployments + + (bsc#1210784) mgr/dashboard: Fix SSO error: 'str' object has no attribute 'decode' + + (bsc#1210944) cmake: patch boost source to support python 3.11 + + (bsc#1211090) fix FTBFS on s390x + +------------------------------------------------------------------- +Thu May 4 13:02:24 UTC 2023 - Frederic Crozat + +- Add _multibuild to define additional spec files as additional + flavors. Eliminates the need for source package links in OBS. + +------------------------------------------------------------------- +Tue Mar 28 06:26:33 UTC 2023 - Tim Serong + +- Update to 16.2.11-65-g8b7e6fc0182: + + (bsc#1201088) test/librados: fix FTBFS on gcc 13 + + (bsc#1208820) mgr/dashboard: allow to pass controls on iscsi disk create + +------------------------------------------------------------------- +Fri Mar 10 05:08:15 UTC 2023 - Tim Serong + +- Update to 16.2.11-62-gce6291a3463: + + (bsc#1201088) fix FTBFS on gcc 13 + +------------------------------------------------------------------- +Tue Feb 7 07:46:18 UTC 2023 - Tim Serong + +- Update to 16.2.11-58-g38d6afd3b78: + + test/CMakeLists.txt: move 'APPEND rgw_libs Boost::filesystem' to top level + +------------------------------------------------------------------- +Fri Jan 27 09:47:26 UTC 2023 - Tim Serong + +- Update to 16.2.11-57-g9be7fb44a33: + + ceph.spec.in: Replace %usrmerged macro with regular version check +- checkin.sh: default to ses7p branch + +------------------------------------------------------------------- +Fri Jan 27 00:45:39 UTC 2023 - Michael Fritch + +- Update to 16.2.11-56-gc067055f8f5: + + (bsc#1199183) osd, tools, kv: non-aggressive, on-line trimming of accumulated dups + + (bsc#1200262) ceph-volume: fix fast device alloc size on mulitple device + + (bsc#1200501) cephadm: update monitoring container images + + (bsc#1200978) mgr/dashboard: prevent alert redirect + + (bsc#1201797) mgr/volumes: Add subvolumegroup resize cmd + + (bsc#1201837) mgr/volumes: Fix subvolume discover during upgrade (CVE-2022-0670) + + (bsc#1201976) monitoring/ceph-mixin: add RGW host to label info + + (bsc#1202077) mgr/dashboard: enable addition of custom Prometheus alerts + + (bsc#1203375) python-common: Add 'KB' to supported suffixes in SizeMatcher + + (bsc#1204430) ceph-crash: drop privleges to run as "ceph" user, rather than root (CVE-2022-3650) + + (bsc#1205025) rgw: Guard against malformed bucket URLs (CVE-2022-3854) + + (bsc#1205436) mgr/dashboard: fix rgw connect when using ssl + +------------------------------------------------------------------- +Thu Oct 6 04:06:27 UTC 2022 - Tim Serong + +- Update to 16.2.9-539-gea74dd900cd: + + (bsc#1202292) ceph.spec.in: Add -DFMT_DEPRECATED_OSTREAM to CXXFLAGS + +------------------------------------------------------------------- +Tue Jul 26 03:07:53 UTC 2022 - Tim Serong + +- Update to 16.2.9-538-g9de83fa4064: + + (bsc#1201604) cephfs-shell: move source to separate subdirectory + +------------------------------------------------------------------- +Wed Jul 13 07:18:02 UTC 2022 - Tim Serong + +- Update to 16.2.9-536-g41a9f9a5573: + + (bsc#1195359, bsc#1200553) rgw: check bucket shard init status in RGWRadosBILogTrimCR + + (bsc#1194131) ceph-volume: honour osd_dmcrypt_key_size option (CVE-2021-3979) + + (bsc#1196046) mgr/cephadm: try to get FQDN for configuration files + +------------------------------------------------------------------- +Thu Jun 9 23:37:24 UTC 2022 - Tim Serong + +- Update to 16.2.9-158-gd93952c7eea: + + cmake: check for python(\d)\.(\d+) when building boost + + make-dist: patch boost source to support python 3.10 + +------------------------------------------------------------------- +Thu Jun 2 20:57:56 UTC 2022 - Stefen Allen + +- Update to ceph-16.2.9-58-ge2e5cb80063: + + (bsc#1200064, pr#480) Remove last vestiges of docker.io image paths + +------------------------------------------------------------------- +Mon May 23 23:56:57 UTC 2022 - Michael Fritch + +- Update to 16.2.9.50-g7d9f12156fb: + + (jsc#SES-2515) High-availability NFS export + + (bsc#1196044) cephadm: prometheus: The generatorURL in alerts is only using hostname + + (bsc#1196785) cephadm: avoid crashing on expected non-zero exit + + (bsc#1187748) When an RBD is mapped, it is attempted to be deployed as an OSD. + +------------------------------------------------------------------- +Tue Apr 19 21:15:33 UTC 2022 - Michael Fritch + +- Update to 16.2.7-969-g6195a460d89 + + (jsc#SES-2515) High-availability NFS export + +------------------------------------------------------------------- +Thu Mar 31 17:09:16 UTC 2022 - Stefen Allen + +- Update to v16.2.7-654-gd5a90ff46f0 + + (bsc#1196733) remove build directory during %clean + +------------------------------------------------------------------- +Wed Mar 30 17:38:31 UTC 2022 - Stefen Allen + +- Update to v16.2.7-652-gf5dc462fdb5 + + (bsc#1194875) [SES7P] include/buffer: include + +------------------------------------------------------------------- +Thu Mar 24 14:22:13 UTC 2022 - Stefen Allen + +- Update to 16.2.7-650-gd083eaa3886 + + (pr#469) cephadm: update image paths to registry.suse.com + + (pr#468) cephadm: use snmp-notifier image from registry.suse.de + + (pr#467) cephadm: infer the default container image during pull + + (pr#465) mgr/cephadm: try to get FQDN for inventory address + + Sync _constaints file for IBS and OBS + +------------------------------------------------------------------- +Tue Mar 15 19:31:58 UTC 2022 - Stefen Allen + +- Update to 16.2.7-640-gceb23c7491b + + (bsc#1194875) common: fix FTBFS due to dout & need_dynamic on GCC-12 + + (bsc#1196938) cephadm: preserve authorized_keys file during upgrade + +------------------------------------------------------------------- +Tue Mar 8 22:33:00 UTC 2022 - Stefen Allen + +- Update to 16.2.7-596-g7d574789716 + + Update Prometheus Container image paths (pr #459) + + mgr/dashboard: Fix documentation URL (pr #456) + + mgr/dashboard: Adapt downstream branded navigation page (pr #454) + +------------------------------------------------------------------- +Fri Mar 4 19:35:37 UTC 2022 - Stefen Allen + +- Update to 16.2.7-577-g3e3603b5dd1 + + Update prometheus-server version + +------------------------------------------------------------------- +Mon Jan 10 21:24:48 UTC 2022 - Stefen Allen + +- Update to 16.2.7-37-gb3be69440db: + + (bsc#1194353) Downstream branding breaks dashboard npm build + + (bsc#1188911) OSD marked down causes wrong backfill_toofull + +------------------------------------------------------------------- +Tue Nov 22 12:57:53 UTC 2021 - Nathan Cutler + +- Update to 16.2.6-463-g22e7612f9ad: + + (bsc#1178073) mgr/dashboard: fix downstream NFS doc links + +------------------------------------------------------------------- +Wed Nov 10 10:37:50 UTC 2021 - Nathan Cutler + +- Preservation of Bugzilla, Jira and CVE citations from earlier incarnations of + this changes file after double-checking that none of these fixes got lost in + the pacific rebase: + + bsc#1163764 (--container-init feature cherry-picked to octopus) + + bsc#1170200 (mgr/dashboard: Fix for CrushMap viewer items getting compressed vertically) + + bsc#1172926 (mgr/orchestrator: Sort 'ceph orch device ls' by host) + + bsc#1173079 (mgr/devicehealth: device_health_metrics pool gets created even without any OSDs in the cluster) + + bsc#1174466 (mon: have 'mon stat' output json as well) + + bsc#1174526 (mgr/dashboard: allow getting fresh inventory data from the orchestrator) + + bsc#1174529 (rpm: on SUSE, podman is required for cephadm to work) + + bsc#1174644 (cephadm: log to file) + + bsc#1175120 (downstream branding) + + bsc#1175161 (downstream branding) + + bsc#1175169 (downstream branding) + + bsc#1176390 (mgr/dashboard: enable different URL for users of browser to Grafana) + + bsc#1176451 (Drop patch "rpm: on SUSE, podman is required for cephadm to work") + + bsc#1176489 (mgr/cephadm: lock multithreaded access to OSDRemovalQueue) + + bsc#1176499 (mgr/cephadm: fix RemoveUtil.load_from_store()) + + bsc#1176638 (ceph-volume: batch: call the right prepare method) + + bsc#1176679 (mgr/dashboard: enable different URL for users of browser to Grafana) + + bsc#1176828 (cephadm: command_unit: call systemctl with verbose=True) + + bsc#1177078 (mgr/dashboard: Fix bugs in a unit test and i18n translation) + + bsc#1177151 (python-common: do not skip unavailable devices) + + bsc#1177319 (--container-init feature cherry-picked to octopus) + + bsc#1177344 (mgr/dashboard: support Orchestrator and user-defined Ganesha cluster) + + bsc#1177360 (cephadm: silence "Failed to evict container" log msg) + + bsc#1177450 (ceph-volume: don't exit before empty report can be printed) + + bsc#1177643 (Revert "spec: Podman (temporarily) requires apparmor-abstractions on suse") + + bsc#1177676 (cephadm: allow uid/gid == 0 in copy_tree, copy_files, move_files) + + bsc#1177843 (CVE-2020-25660) + + bsc#1177857 (mgr/cephadm: upgrade: fail gracefully, if daemon redeploy fails) + + bsc#1177933 (cephadm: configure journald as the logdriver) + + bsc#1178531 (cephadm: set default container_image to registry.suse.com/ses/7/ceph/ceph) + + bsc#1178837 (rgw: cls/user: set from_index for reset stats calls) + + bsc#1178860 (mgr/dashboard: Disable TLS 1.0 and 1.1) + + bsc#1178905 (CVE-2020-25678) + + bsc#1178932 (cephadm: reference the last local image by digest) + + bsc#1179016 (rpm: require smartmontools on SUSE) + + bsc#1179452 (mgr/insights: Test environment requires 'six') + + bsc#1179526 (rgw: during GC defer, prevent new GC enqueue) + + bsc#1179569 (cephadm: reference the last local image by digest) + + bsc#1179802 (CVE-2020-27781) + + bsc#1179997 (CVE-2020-27839) + + bsc#1180107 (ceph-volume: pass --filter-for-batch from drive-group subcommand) + + bsc#1180155 (CVE-2020-27781) + + bsc#1181291 (mgr/cephadm: alias rgw-nfs -> nfs) + + bsc#1182766 (cephadm: fix 'inspect' and 'pull') + + bsc#1183074 (CVE-2021-20288) + + bsc#1183561 (mgr/cephadm: on ssh connection error, advice chmod 0600) + + bsc#1183899 (bluestore: fix huge reads/writes at BlueFS) + + bsc#1184231 (cephadm: Allow to use paths in all <_devices> drivegroup sections) + + bsc#1184517 (cls/rgw: look for plane entries in non-ascii plain namespace too) + + bsc#1185246 (rgw: check object locks in multi-object delete) + + bsc#1185619 (CVE-2021-3524) + + bsc#1185619 (CVE-2021-3524) + + bsc#1186020 (CVE-2021-3531) + + bsc#1186021 (CVE-2021-3509) + + bsc#1186348 (mgr/zabbix: adapt zabbix_sender default path) + + bsc#1188979 ("mgr/cephadm: pass --container-init to "cephadm deploy" if specified" and "Revert "cephadm: default container_init to False") + + bsc#1189173 (downstream branding) + + jsc#SES-1071 (ceph-volume: major batch refactor - upstream PR#34740) + + jsc#SES-185 (SES support with cache software) + + jsc#SES-704 (mgr/snap_schedule) + +------------------------------------------------------------------- +Fri Nov 5 16:39:28 UTC 2021 - Nathan Cutler + +- Update to 16.2.6-462-g5fefbbf8888: + + rebased on top of upstream commit SHA1 dd7139c66c1d36da50475ec97d8d6b54b07d1dea + * (bsc#1191751) rgw/tracing: unify SO version numbers within librgw2 package + * spec: make selinux scriptlets respect CEPH_AUTO_RESTART_ON_UPGRADE + +------------------------------------------------------------------- +Mon Sep 20 13:15:38 UTC 2021 - Stefen Allen + +- Update to Version: 16.2.6.45+g8fda9838398: + + rebased on top of upstream commit SHA1 dbc87327c37d0f305c2107e487cb98a072ae858b + upstream 16.2.6 release + https://ceph.io/releases/v16-2-6-pacific-released/ + +------------------------------------------------------------------- +Thu Sep 2 10:02:15 UTC 2021 - Nathan Cutler + +- Update to 16.2.5-504-g6a3a59bd19e: + + rebased on top of upstream commit SHA1 0d1e1f2973cae7645126fc88a72743367c790d9d + + (bsc#1189605) cmake: exclude "grafonnet-lib" target from "all" + +------------------------------------------------------------------- +Fri Jul 30 15:01:29 UTC 2021 - Nathan Cutler + +- Update to 16.2.5-113-g8b5bda7684e: + + (bsc#1188741) compression/snappy: use uint32_t to be compatible with 1.1.9 + improved version of patch that did not work as intended + +------------------------------------------------------------------- +Tue Jul 27 18:31:37 UTC 2021 - Nathan Cutler + +- Update to 16.2.5-111-ga5b472dfcf8: + + (bsc#1188741) compression/snappy: use uint32_t to be compatible with 1.1.9 + +------------------------------------------------------------------- +Thu Jul 22 10:57:24 UTC 2021 - Nathan Cutler + +- Update to 16.2.5-110-gc5d9c915c46: + + rebased on top of upstream commit SHA1 7feddc9819ca05586f230accd67b4e26a328e618 + + (bsc#1186348) mgr/zabbix: adapt zabbix_sender default path + +------------------------------------------------------------------- +Thu Jul 8 19:37:59 UTC 2021 - Nathan Cutler + +- Update to 16.2.5-29-g97c2c82c2f5: + + rebased on top of upstream commit SHA1 0883bdea7337b95e4b611c768c0279868462204a + upstream 16.2.5 release + https://ceph.io/releases/v16-2-5-pacific-released/ + + cherry-pick fix for bsc#1188111: + * include/denc: include used header + * mon,osd: always init local variable + * common/Formatter: include used header + +------------------------------------------------------------------- +Sat Jun 26 08:44:14 UTC 2021 - Nathan Cutler + +- Update to 16.2.4-564-g9689286366a: + + rebased on top of upstream commit SHA1 e57defcbcc91e67aac958c4a52d657a7a907e8ef + +------------------------------------------------------------------- +Thu Jun 24 19:10:24 UTC 2021 - Nathan Cutler + +- Update _constraints: only honor physical memory, not 'any memory' + (e.g. swap). But then, be happy with 8GB (bumping the current + x86_64 worker pool from 16 to 64). (Dominique Leuenberger) + +------------------------------------------------------------------- +Fri May 14 10:20:23 UTC 2021 - Nathan Cutler + +- Update to 16.2.4-26-g555d38aa5a5: + + rebased on top of v16.2.4 tag + https://ceph.io/releases/v16-2-4-pacific-released/ + * mgr/dashboard: fix base-href: revert it to previous approach + * (bsc#1186021) mgr/dashboard: fix cookie injection issue (CVE-2021-3509) + * mgr/dashboard: fix set-ssl-certificate{,-key} commands + * (bsc#1186020) rgw: RGWSwiftWebsiteHandler::is_web_dir checks empty subdir_name (CVE-2021-3531) + * (bsc#1185619) rgw: sanitize \r in s3 CORSConfiguration’s ExposeHeader (CVE-2021-3524) + * systemd: remove ProtectClock=true for ceph-osd@.service + +------------------------------------------------------------------- +Thu May 6 21:46:52 UTC 2021 - Nathan Cutler + +- Update to 16.2.3-26-g422932e923: + + rebased on top of upstream pacific SHA1 381b476cb3900f9a92eb95d03b4850b953cfd79a + Pacific v16.2.3 release + see https://ceph.io/releases/v16-2-3-pacific-released/ + * cephadm: normalize image digest in 'ls' output too + Pacific v16.2.2 release + see https://ceph.io/releases/v16-2-2-pacific-released/ + +------------------------------------------------------------------- +Wed May 5 15:32:31 UTC 2021 - Nathan Cutler + +- Update to 16.2.1-283-g9f37a4bec4: + + rebased on top of upstream pacific SHA1 717ce59b76c659aaef8c5aec1355c0ac5cef7234 + Pacific v16.2.1 release + see https://ceph.io/releases/v16-2-1-pacific-released/ + * (bsc#1183074) - (CVE-2021-20288) ceph: Unauthorized global_id reuse + * (bsc#1184231) cephadm: Allow to use paths in all <_devices> drivegroup sections + +------------------------------------------------------------------- +Tue Apr 13 09:10:55 UTC 2021 - Nathan Cutler + +- _constraints: raise s390x disk constraint to 42G after seeing a build fail + with "write error: No space left on device" + +------------------------------------------------------------------- +Thu Apr 8 12:48:11 UTC 2021 - Nathan Cutler + +- Update to 16.2.0-91-g24bd0c4acf: + + rebase on top of upstream pacific SHA1 4cbaf866034715d053e6259dcd5bd8e4e1d1e1ed + +------------------------------------------------------------------- +Thu Apr 1 15:10:47 UTC 2021 - Nathan Cutler + +- Update to 16.2.0-31-g5922b2b9c1: + + rebase on top of upstream v16.2.0 (first stable release in Pacific series) + see https://ceph.io/releases/v16-2-0-pacific-released/ + + (bsc#1192838) cephadm: Fix iscsi client caps (allow mgr calls) + + (bsc#1200317) mgr/cephadm: fix and improve osd draining + + (bsc#1206158) add iscsi and nfs to upgrade process + +------------------------------------------------------------------- +Fri Mar 26 10:14:59 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1217-g8e1da7347e: + + rpm: drop extraneous explicit sqlite-libs runtime dependency + +------------------------------------------------------------------- +Thu Mar 25 18:21:58 UTC 2021 - Nathan Cutler + +- pre_checkin.sh: add README-packaging.txt as a source file to ceph-test.spec + (to pacify obs-service-source_validator) + +------------------------------------------------------------------- +Thu Mar 25 16:38:00 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1216-gbaca20b112: + + spec: prepare openSUSE usrmerge (boo#1029961) + +------------------------------------------------------------------- +Thu Mar 25 11:15:20 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-1215-gd99465b6ba + + rebase on top of upstream commit 3eb70cf622aace689e45749e8a92fce033d3d55c + (tip of "pacific" branch) + * introduce libnpmem and libpmemobj dependencies to for RBD_RWL and + RBD_SSD_CACHE features backed by system PMDK + * introduce libcephsqlite + +------------------------------------------------------------------- +Thu Mar 25 09:53:31 UTC 2021 - Nathan Cutler + +- Add README-packaging.txt + +------------------------------------------------------------------- +Wed Jan 27 15:17:14 UTC 2021 - Nathan Cutler + +- Update to 16.1.0-46-g571704f730 + + rebase on top of upstream v16.1.0 (Pacific release candidate) + + (bsc#1192840) mgr/mgr_module.py: CLICommand: Fix parsing of kwargs arguments + + drop obsolete downstream patches that were causing conflicts: + * cephadm: use registry.suse.com by default + * cephadm: add global flag --container-init + * mgr/cephadm: append --container-init to basecommand + * cephadm: remove container-init subparser from "deploy" + +------------------------------------------------------------------- +Wed Nov 25 16:52:05 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-7500-g78f6791981: + + cephadm: add global flag --container-init + + mgr/cephadm: append --container-init to basecommand + + cephadm: remove container-init subparser from "deploy" + +------------------------------------------------------------------- +Mon Nov 23 17:12:00 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-7497-g63a0682c7e: + + rebase on tip of upstream "master" branch, SHA1 8c6b533ee85e7fe2cd19e5dbb6f0363898f5a2ee + +------------------------------------------------------------------- +Thu Oct 8 18:11:31 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-6239-g0c2e605e78: + + rebase on tip of upstream "master" branch, SHA1 6d1f1f63b711797e21ff8ff12662d07d86546e66 + * cephadm: Fix error setting 'mgr/cephadm/container_init' config (PR #37500) + +------------------------------------------------------------------- +Thu Oct 8 10:36:10 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-6229-g71574673b0: + + rebase on tip of upstream "master" branch, SHA1 f68197eca4b4dceef9fbf497d640b4600663d3ed + * ceph-volume: don't exit before empty report can be printed (PR #37591) + +------------------------------------------------------------------- +Mon Oct 5 13:57:45 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-6177-g01e4ab745b: + + rebase on tip of upstream "master" branch, SHA1 f8ea1f38aee3d8715186a756331a23d4b51121f2 + * ceph-volume: pass filter_for_batch as keyword argument (PR #37545) + +------------------------------------------------------------------- +Sun Oct 4 16:16:52 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-6162-g892bfa3fef: + + drop the following commits: + + lvmcache: refactor argument parsing and add -h flag + + ceph-volume: install lvmcache plugin + + ceph-volume: add lvmcache plugin and its tests + + rebase on tip of upstream "master" branch, SHA1 0a92d5094fc0baae3af223aa16b271d2e5e6f349 + + mgr/devicehealth: device_health_metrics pool gets created even without + any OSDs in the cluster (bsc#1173079) + +------------------------------------------------------------------- +Fri Sep 18 09:58:45 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-5613-gb1a0951432: + + rebase on tip of upstream "master" branch, SHA1 5df5d8f8ff463f2560180dc8e9722d6690b0fa12 + +------------------------------------------------------------------- +Thu Sep 3 17:51:07 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-4863-g5d95d9d41d: + + cmake: detect and use sigdescr_np() if available (bsc#1175266) + +------------------------------------------------------------------- +Fri Aug 28 12:37:48 UTC 2020 - Nathan Cutler + +- Update to 16.0.0-4862-g8ac6038555: + + rebase on tip of upstream "master" branch, SHA1 46c912978aa6a0b0f67094a27933c7bea829e6c9 + +------------------------------------------------------------------- +Fri Aug 28 12:23:00 UTC 2020 - Nathan Cutler + +- checkin.sh: build only one frontend language (English) by default, to speed + up tarball generation + +------------------------------------------------------------------- +Wed Aug 26 11:57:23 UTC 2020 - Nathan Cutler + +- Update to 15.2.4-822-g24d833526b + + rebase on tip of upstream "octopus" branch, SHA1 0887d548597b9d2381de42c1cc8a5c01d264ae8b + +------------------------------------------------------------------- +Mon Aug 10 10:30:37 UTC 2020 - Tim Serong + +- Update to 15.2.4.557+g4ac763f0b3 + + rebase on tip of upstream "octopus" branch, SHA1 96411838ef6fef9a5285ca4d5c0708e6a599632e + +------------------------------------------------------------------- +Sun Aug 9 21:21:15 UTC 2020 - Nathan Cutler + +- Update to 15.2.4-511-g40953bf9d6 + + rebase on tip of upstream "octopus" branch, SHA1 f3b8bc0d11ca4f8167615007645759e905b1ada5 + +------------------------------------------------------------------- +Sun Jul 26 11:04:15 UTC 2020 - Nathan Cutler + +- Update to 15.2.4-465-g5e8d9ae6bd + + rebase on tip of upstream "octopus" branch, SHA1 213e2c803b4f68c9f0b33119c64638a6813d2692 + +------------------------------------------------------------------- +Fri Jul 17 16:08:29 UTC 2020 - Nathan Cutler + +- Update to 15.2.4-381-g734ae877b4: + + rebase on tip of upstream "octopus" branch, SHA1 d0da4070a19a55ebe9c55904d6da2ad38833aae0 + +------------------------------------------------------------------- +Wed Jul 15 17:05:19 UTC 2020 - Nathan Cutler + +- Update to 15.2.4-342-g6987dec446: + + cmake: add empty RPATH to ceph-diff-sorted + +------------------------------------------------------------------- +Tue Jul 14 18:08:04 UTC 2020 - Nathan Cutler + +- Update to 15.2.4-337-g55cec95eaf: + + rebase on tip of upstream "octopus" branch, SHA1 405556b2629d8274dea2e14ee017c70a7dfb24a1 + + Monitoring: Use downstream container images + +------------------------------------------------------------------- +Fri Jul 3 17:06:22 UTC 2020 - Nathan Cutler + +- Update to 15.2.4-89-g583fe198f6: + + rebase on tip of upstream "octopus" branch, SHA1 5a3693ca1e7148b0365557740d6f70f3db8cd0e8 + * upstream Octopus v15.2.4 release, see https://ceph.io/releases/v15-2-4-octopus-released/ + + mgr/dashboard: Downstream branding (add fix for bsc#1170498) + +------------------------------------------------------------------- +Mon Jun 29 16:24:37 UTC 2020 - Nathan Cutler + +- Update to 15.2.3-579-g762c7116a8: + + mgr/dashboard: Downstream branding + +------------------------------------------------------------------- +Mon Jun 29 13:54:04 UTC 2020 - Nathan Cutler + +- Update to 15.2.3-578-g498d3083b7: + + rebase on tip of upstream "octopus" branch, SHA1 7b12a033c2fbeb415846ddda46d91eeab998e7a4 + +------------------------------------------------------------------- +Tue Jun 16 13:33:00 UTC 2020 - Nathan Cutler + +- Update to 15.2.3-455-g04541bbb8e: + + rebase on tip of upstream "octopus" branch, SHA1 ec315386e94adb4f844f6f3b7ce519e8f7789213 + * python-common: only validate host_pattern if present + +------------------------------------------------------------------- +Mon Jun 8 14:18:25 UTC 2020 - Nathan Cutler + +- Up ceph-test disk constraint to address "no space left on device" + build error seen in OBS + +------------------------------------------------------------------- +Fri Jun 5 09:36:19 UTC 2020 - Nathan Cutler + +- Update to 15.2.3-252-gf2237253cd: + + rebase on tip of upstream "octopus" branch, SHA1 22279597fa9ca40ba2f05af9f186a99ce73a6047 + * upstream v15.2.3 release + https://ceph.io/releases/v15-2-3-octopus-released/ + +------------------------------------------------------------------- +Mon May 25 12:57:39 UTC 2020 - Nathan Cutler + +- Update to 15.2.2-60-gf5864377ab: + + rebase on tip of upstream "octopus" branch, SHA1 9e890709ef53ce29006c6fc754dd80e25df186d0 + +------------------------------------------------------------------- +Tue May 19 15:00:23 UTC 2020 - Nathan Cutler + +- Update to 15.2.2-18-g1dbcddb5d8: + + rebase on tip of upstream "octopus" branch, SHA1 0c857e985a29d90501a285f242ea9c008df49eb8 + * Upstream v15.2.2 release + https://ceph.io/releases/v15-2-2-octopus-released/ + * mon, mgr: require all caps for pre-octopus tell commands (bsc#1170021, CVE-2020-10736) + +------------------------------------------------------------------- +Tue May 5 12:00:09 UTC 2020 - Nathan Cutler + +- Update to 15.2.1-277-g17d346932e: + + rebase on tip of upstream "octopus" branch, SHA1 752b293586d0c8749483e60e43c7a98c1e0d7b19 + * rpm: drop "is_opensuse" conditional in SUSE-specific bcond block + (jsc#SLE-11802) + +------------------------------------------------------------------- +Mon May 4 17:27:20 UTC 2020 - Nathan Cutler + +- Update to 15.2.1-246-g66cd0e5497: + + rebase on tip of upstream "octopus" branch, SHA1 939661f696d3d9eb4d31e998a3ad1487852a4741 + +------------------------------------------------------------------- +Mon Apr 13 18:19:49 UTC 2020 - Nathan Cutler + +- Update to 15.2.1-16-gb3a86250a6: + + rebase on tip of upstream "octopus" branch, SHA1 9fd2f65f91d9246fae2c841a6222d34d121680ee + * upstream 15.2.1 release + https://ceph.io/releases/v15-2-1-octopus-released/ + + fix Nonce reuse in msgr V2 secure mode (bsc#1166403, CVE-2020-1759) + + prevent RGW GetObject header-splitting XSS (bsc#1166484, CVE-2020-1760) + +------------------------------------------------------------------- +Mon Mar 30 13:08:29 UTC 2020 - Nathan Cutler + +- Update to 15.2.0-108-g8cf4f02b08: + + rebase on tip of upstream "octopus" branch, SHA1 9267cc03e1b1612109dd57cc6ce74c34ed1f1d00 + * cephadm: Fix truncated output of "ceph mgr dump" + +------------------------------------------------------------------- +Tue Mar 24 16:20:46 UTC 2020 - Nathan Cutler + +- Update to 15.2.0-29-g274f7bc2e7: + + rebase on tip of upstream "octopus" branch, SHA1 a8062613c81ad08815edcdf06e668fcc77270a03 + * upstream 15.2.0 (first Octopus stable) release + https://ceph.io/releases/v15-2-0-octopus-released/ + +------------------------------------------------------------------- +Mon Mar 23 11:20:40 UTC 2020 - Nathan Cutler + +- Update to 15.1.1-220-g0f87374dc1: + + rebase on tip of upstream "octopus" branch, SHA1 243cbd6224921f7f5c2463705c75cb9eafd0db5c + * upstream 15.1.1 (Octopus release candidate) release + https://github.com/ceph/ceph/releases/tag/v15.1.1 + + cephadm: read everything when calling "ceph mgr dump" + +------------------------------------------------------------------- +Fri Mar 13 11:08:51 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-2160-g310e512e18: + + rebase on tip of upstream "octopus" branch, SHA1 465f3855623e30f3b4694f3090adbe27c8cd49c3 + +------------------------------------------------------------------- +Thu Mar 5 12:33:00 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-1766-g3d31471523: + + rebase on tip of upstream master, SHA1 25b8ecc216b02e848f9719ced8c84670de656e78 + +------------------------------------------------------------------- +Mon Mar 2 14:19:37 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-1521-gcdf35413a0: + + rebase on tip of upstream master, SHA1 28c08615e5c27e5a0986e3191ca4427cdc32f538 + +------------------------------------------------------------------- +Tue Feb 25 12:55:29 UTC 2020 - Nathan Cutler + +- significant changes since the last Factory SR: + + ceph-rpmlintrc: silence RPMLINT warnings and document ones that are in + the process of being fixed ("WIP") + + fix s390x build failure + + fix GCC 10 build failure (boo#1161086) + + spec: + * drop Python 2 support + * make Python 3 build work on CentOS 8 + * globally change %_python_buildid macro to %_python3_pkgversion + * Use pkgconfig() style BuildRequires for udev/libudev-devel + * add cmake_verbose_logging bcond + * rename ceph-daemon subpackage to cephadm + * add scriptlets to cephadm subpackage + * rename ceph-mgr-ssh subpackage to ceph-mgr-cephadm + * stop calling MGR modules "plugins" + * move "always-on" MGR modules into their own subpackage, ceph-mgr-modules-core + * make ceph-mgr-cephadm explicitly require openssh on SUSE + +------------------------------------------------------------------- +Tue Feb 25 10:24:26 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-1207-g89308cc4c6: + + rebase on tip of upstream master, SHA1 0ffbe4a5ef73036309a3c6488be4dbb1b667a4c7 + + drop temporary fix "cephadm: Don't call prepare-host from bootstrap" + +------------------------------------------------------------------- +Fri Feb 21 07:46:56 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-951-g36f83482b6c: + + cephadm: Don't call prepare-host from bootstrap + (temporary fix to keep cephadm running on SUSE after upstream merged + 932ac9342483141f10dbf99d1806d81a4d70a26a) + +------------------------------------------------------------------- +Thu Feb 20 10:21:39 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-950-g0ba22d2e46: + + rebase on tip of upstream master, SHA1 e79e42467970c1be210d674e90dab21ce73e2872 + * mgr/orch: resurrect ServiceDescription, 'orch ls' + +------------------------------------------------------------------- +Mon Feb 17 16:08:29 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-818-g5f8ed0e957: + + rebase on tip of upstream master, SHA1 eb72aebb92f1bfce00aedaebf140789871eb943f + * includes "mgr/orch: new cli, phase 2" patches (PR#33244) needed + by latest ceph-bootstrap + +------------------------------------------------------------------- +Thu Feb 13 13:45:52 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-636-g2280954009: + + rebase on tip of upstream master, SHA1 e36d47a8c3f4181d68a4cd680bdde72064dee910 + +------------------------------------------------------------------- +Mon Feb 3 14:59:02 UTC 2020 - Nathan Cutler + +- Update to 15.1.0-168-gfda88e35c8: + + rebase on tip of upstream master, SHA1 80487f4a604da94778e65f666e1177a3ed84543e + + spec: Use pkgconfig() style BuildRequires for udev/libudev-devel + +------------------------------------------------------------------- +Thu Jan 30 13:08:38 UTC 2020 - Nathan Cutler + +- Update to 15.0.0-10092-gb5fd1b8250: + + rebase on tip of upstream master, SHA1 3913835a8f0b9b34ceffd4dc02e1e8203227be02 + +------------------------------------------------------------------- +Thu Jan 23 12:45:20 UTC 2020 - Nathan Cutler + +- Update to 15.0.0-9544-gefdea72067: + + cmake: Improve test for 16-byte atomic support on IBM Z (bsc#1161688) + +------------------------------------------------------------------- +Tue Jan 21 11:09:45 UTC 2020 - Nathan Cutler + +- Update to 15.0.0-9543-g1c7fc80ba1: + + rebase on tip of upstream master, SHA1 089e97c27013612672099281fad76746f19290e3 + +------------------------------------------------------------------- +Mon Jan 20 16:03:16 UTC 2020 - Nathan Cutler + +- Update to 15.0.0-9494-g22cdfe7b96: + + rebase on tip of upstream master, SHA1 26c66630bd98dfce113f66ab4e081e5a7b0216c0 + +------------------------------------------------------------------- +Tue Jan 7 17:49:34 UTC 2020 - Nathan Cutler + +- Update to 15.0.0-9092-gd050bc3f0a: + + rebase on tip of upstream master, SHA1 dfd90da59c0b2eda9ca61fed1d508ddc2ab32a2b + +------------------------------------------------------------------- +Thu Dec 19 13:09:54 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-8683-gb78b3635a5: + + rebase on tip of upstream master, SHA1 3e1e6a6694bb133c57e2b05a6316dcebae390815 + + drop libxio Provides/Obsoletes (they are no longer necessary because libxio + is long gone) + + drop runtime dependency on gptfdisk (it was needed for ceph-disk, + which has since been removed) + + spec: drop "_python_buildid" macro (it was needed to support py2 builds, + which upstream is finally moving away from) + +------------------------------------------------------------------- +Wed Dec 18 14:21:48 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-8588-g58b5b29433: + + spec, debian: cephadm requires lvm2 (bsc#1159466) + +------------------------------------------------------------------- +Wed Dec 18 08:01:17 UTC 2019 - Nathan Cutler + +- ceph-rpmlintrc: fix syntax error introduced by change mentioned + in previous changelog entry + +------------------------------------------------------------------- +Tue Dec 17 16:08:38 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-8587-gf0521c1db5: + + rebase on tip of upstream master, SHA1 068aafb2ea3c71b5adda79467847ee03b77bb35e + * cephadm: do ceph-volume activate+deactivate as part of systemd unit + +------------------------------------------------------------------- +Mon Dec 16 12:36:02 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-8442-g094a533242: + + spec: + * fix cephadm user/group creation + * cephadm subpackage: start summary with a capital letter + + ceph-rpmlintrc: silence some RPMLINT warnings + +------------------------------------------------------------------- +Thu Dec 12 12:07:37 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-8370-gec9b27b5e0 + + ceph-daemon is renamed to cephadm + + mgr/ssh is renamed to mgr/cephadm + +------------------------------------------------------------------- +Tue Dec 10 15:39:59 UTC 2019 - Adrian Schröter + +- increase disk space needs in _constraints for some architectures + +------------------------------------------------------------------- +Mon Dec 2 11:51:18 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-7866-g639502405f: + + rebase on tip of upstream master, SHA1 95dd54889a9c113f77dd6c2c7e77166335a59794 + +------------------------------------------------------------------- +Sun Nov 24 20:12:13 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-7686-g54042e1a06: + + rebase on tip of upstream master, SHA1 2c06beb5ec38c8b9f7bd84152da3f5708de8d0c0 + * Revert "Merge pull request #16715 from adamemerson/wip-I-Object!" (bsc#1157443) + * spec: add explicit openssh dependency to ceph-mgr-ssh (bsc#1157527) + +------------------------------------------------------------------- +Thu Nov 21 10:10:02 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-7456-ge089cead79: + + rebase on tip of upstream master, SHA1 e4b3036422df70e3c911240e3bba6a8bd3e9c792 + +------------------------------------------------------------------- +Fri Nov 18 13:18:17 UTC 2019 - Nathan Cutler + +- Update to 15.0.0-7219-g353896020b: + + rebase on tip of upstream master, SHA1 7ffb5d9e79207da81af933f4e95655e16558c739 + +------------------------------------------------------------------- +Fri Nov 15 13:33:41 UTC 2019 - Nathan Cutler + +- Update to 14.2.4-386-g73475e3ee1: + + os/bluestore: consolidate extents from the same device only (bsc#1156282) + +------------------------------------------------------------------- +Fri Oct 18 14:19:23 UTC 2019 - Nathan Cutler + +- Update to 14.2.4-378-gac1bcd6547: + + qa/suse: move dashboard-e2e to tier3 and add debugging code to + src/script/dashboard_e2e_tests.sh + +------------------------------------------------------------------- +Wed Oct 2 14:23:24 UTC 2019 - Nathan Cutler + +- Update to 14.2.4-373-gc3e67ed133: + + Support iSCSI target-level CHAP authentication (bsc#1145617) + + Validation and render of iSCSI controls based "type" (bsc#1140491) + + Fix error editing iSCSI image advanced settings (bsc#1146656) + + Fix error during iSCSI target edit + +------------------------------------------------------------------- +Wed Sep 25 13:05:13 UTC 2019 - Nathan Cutler + +- Addendum: + + upstream Nautilus 14.2.4 brings the following notable changes: + * fixed a ceph-volume regression introduced by 14.2.3 (NOTE: SES customers + were never exposed to this regression) (bsc#1132767) + +------------------------------------------------------------------- +Wed Sep 25 12:55:13 UTC 2019 - Nathan Cutler + +- Addendum: + + upstream Nautilus 14.2.3 brings the following notable changes: + * Fixed a denial of service vulnerability where an unauthenticated client + of Ceph Object Gateway could trigger a crash from an uncaught exception + (CVE-2019-10222/bsc#1145093) + * Fixed bsc#1151994 - Nautilus-based librbd clients can not open images on + Jewel clusters + * The RGW num_rados_handles has been removed in Ceph 14.2.3 (bsc#1151995) + * "osd_deep_scrub_large_omap_object_key_threshold" has been lowered in + Nautilus 14.2.3 (bsc#1152002) + * The ceph dashboard now supports silencing Prometheus notifications (bsc#1141174) + +------------------------------------------------------------------- +Wed Sep 25 12:43:54 UTC 2019 - Nathan Cutler + +- Addendum: + + upstream Nautilus 14.2.2 brought the following notable changes: + * The no{up,down,in,out} related commands have been revamped (bsc#1151990) + * radosgw-admin gets two new subcommands for managing expire-stale objects (bsc#1151991) + * Deploying a single new BlueStore OSD on a cluster upgraded to SES6 from + SES5 breaks pool utilization stats reported by ceph df (bsc#1151992) + * As of 14.2.2, Ceph cluster will issue a health warning if CRUSH tunables + are older than "hammer" (bsc#1151993) + +------------------------------------------------------------------- +Tue Sep 17 09:56:09 UTC 2019 - Nathan Cutler + +- Update to 14.2.4-352-g2060e25d1c: + + rebase on top of upstream Nautilus v14.2.4 release, SHA1 75f4de193b3ea58512f204623e6c5a16e6c1e1ba + for details, see https://ceph.io/releases/v14-2-4-nautilus-released/ + +------------------------------------------------------------------- +Thu Sep 5 16:01:28 UTC 2019 - Nathan Cutler + +- Update to 14.2.3-349-g7b1552ea82: + + rebase on top of upstream Nautilus v14.2.3 release, SHA1 0f776cf838a1ae3130b2b73dc26be9c95c6ccc39 + for details, see https://ceph.io/releases/v14-2-3-nautilus-released/ + * ceph-volume: prints errors to stdout with --format json (bsc#1132767) + * mgr/dashboard: Changing rgw-api-host does not get effective without + disable/enable dashboard mgr module (bsc#1137503) + * mgr/dashboard: Silence Alertmanager alerts (bsc#1141174) + * mgr/dashboard: Fix e2e failures caused by webdriver version (bsc#1145759) + + librbd: always try to acquire exclusive lock when removing image (bsc#1149093) + +------------------------------------------------------------------- +Thu Aug 29 14:17:55 UTC 2019 - Nathan Cutler + +- Update to 14.2.2-354-g8878cf2360: + + rgw: Move upload_info declaration out of conditional (bsc#1137189, + https://github.com/SUSE/ceph/pull/325) + +------------------------------------------------------------------- +Wed Aug 14 14:54:26 UTC 2019 - Abhishek Lekshmanan + +- Update to 14.2.2.349+g6716a1e448: + + rgw: fix for CVE-2019-10222/bsc#1145093 for the beast frontend + ("rgw: asio: check the remote endpoint before processing requests") + +------------------------------------------------------------------- +Thu Jul 25 11:48:55 UTC 2019 - Nathan Cutler + +- Update to 14.2.2-348-gf6da3d1d18: + + rebase on top of upstream Nautilus v14.2.2 release, SHA1 4f8fa0a0024755aae7d95567c63f11d6862d55be + + mgr/volumes: add CephFS subvolumes library (bsc#1135205) + + mgr/dashboard: Warn that tcmu-runner backstore is tech-preview (bsc#1137261) + + mgr/dashboard: Add, update and remove translations (bsc#1140737) + + osd/PG: fix cleanup of pgmeta-like objects on PG deletion + +------------------------------------------------------------------- +Fri Jul 12 11:27:58 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-475-g83b977ffbd: + + packaging: remove SuSEfirewall2 support + +------------------------------------------------------------------- +Thu Jul 4 12:10:32 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-469-g454d851f0a: + + lvmcache: refactor argument parsing and add -h flag + + qa/deepsea: expand testing of dashboard (branding and E2E tests) + + spec: + * package the Dashboard E2E tests + * drop explicit systemd BuildRequires in case of building for SUSE + (allow OBS to pick better candidates to shorten rebuild queues) + +------------------------------------------------------------------- +Wed Jun 5 08:00:39 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-468-g994fd9e0cc: + + spec: + * install grafana dashboards world readable (bsc#1136110) + * put "without python2" conditionals around python3-* provides/obsoletes + (align with upstream) + +------------------------------------------------------------------- +Mon Jun 3 19:33:10 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-467-g9e10776aa2: + + mon/Monitor: allow probe if MMonProbe::mon_release == 0 (bsc#1132396) + + spec: make python3-rgw replace python-rgw on upgrade + +------------------------------------------------------------------- +Fri May 31 10:22:35 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-463-g99339b576a: + + qa/deepsea: redirect journalctl output to a logfile + + spec: install/package ceph-volume lvmcache plugin + + common: make ms_bind_msgr2 default to "false" (bsc#1124957) + +------------------------------------------------------------------- +Thu May 30 12:59:55 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-457-gb42e3171b3: + + qa/deepsea/salt: + * 1node5disks salt configuration + * grafana_service_check validation test + * Disk drive replacement test + * use "ceph_cm_ansible: false" instead of "ceph_cm: salt" + + spec: Disable LTO in spec when being used (bsc#1135030) + +------------------------------------------------------------------- +Wed May 22 08:40:01 UTC 2019 - Nathan Cutler + +- civetweb: fix file descriptor leak (bsc#1125080, CVE-2019-3821) + (fix has been in since February 2019) +- rgw: sanitize customer encryption keys from log output in v4 auth + (bsc#1121567, CVE-2018-16889) (fix has been in since February 2019) + +------------------------------------------------------------------- +Tue May 21 13:46:52 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-448-g1bd10a856f: + + monitoring: update Grafana dashboards + + mgr/dashboard: fix some performance data are not displayed + + monitoring: SNMP OID per every Prometheus alert rule + + mgr/dashboard: Validate if any client belongs to more than one group + + mgr/dashboard: Admin resource not honored + + mgr/dashboard: Unable to see tcmu-runner perf counters (bsc#1135388) + + mgr/dashboard: iSCSI form does not support IPv6 + +------------------------------------------------------------------- +Mon May 20 15:28:49 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-440-g0ac6920288: + + rebase on top of upstream nautilus branch, SHA1 1dc43a036fcc0121e3a0c1fe7ca6cd77cde1bf60 + + client: fix vxattr nanosecond field padding (bsc#1135219, bsc#1135221) + +------------------------------------------------------------------- +Tue May 14 12:18:43 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-431-gd032e5dd80: + + ReplicatedPG: add CHECKSUM->CMPEXT req translation (bsc#1123360) + + MDS + libcephfs snapshot btime support (jsc#SES-183) + +------------------------------------------------------------------- +Mon May 13 14:14:44 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-423-g3df171fd28: + + rgw: cloud sync fixes (jsc#SES-97) + +------------------------------------------------------------------- +Mon May 13 09:55:39 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-419-gb72ca927c1: + + rebase on top of upstream nautilus branch, SHA1 8e188313cf2f790f131e21a3a02094e32cf02087 + + replaced ~25 downstream ceph-volume lvmcache commits with a single squashed commit + + rgw: object expirer fixes (bsc#1133139) + + rgw_lc: use a new bl while encoding RGW_ATTR_LC (jsc#SES-327) + + rgw: beast IPv6 (jsc#SES-454) + +------------------------------------------------------------------- +Tue May 7 15:38:51 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-426-g7a12897012: + + nautilus: core: Give recovery for inactive PGs a higher priority (bsc#1133461) + + spec: new subpackage ceph-prometheus-alerts + + nautilus: librbd: re-add support for nautilus clients talking to jewel clusters + + systemd: ceph-mgr: set MemoryDenyWriteExecute to false + +------------------------------------------------------------------- +Tue Apr 30 09:12:48 UTC 2019 - Nathan Cutler + +- Update to 14.2.1-345-g040ffffe0e: + + Upstream v14.2.1 release + draft release notes: https://github.com/ceph/ceph/pull/27793 + + rpm: have pybind RPMs provide/obsolete their python2 predecessors (bsc#1125899) + + ceph-volume: add lvmcache plugin (jsc#SES-267) + +------------------------------------------------------------------- +Thu Apr 18 16:15:53 UTC 2019 - Nathan Cutler + +- Update to 14.2.0-636-g19cfb53b0c: + + rebase on top of upstream nautilus branch, SHA1 d947e804dd316c89c28d25948947927fa290e227 + + downstream branding no longer displays Ceph logo in error popup (bsc#1131984) + + mgr: make run-tox.sh scripts more robust (jsc#SES-478) + +------------------------------------------------------------------- +Tue Apr 9 08:49:36 UTC 2019 - ncutler@suse.com + +- Update to 14.2.0-465-gdfed19b089: + + rebase on top of upstream nautilus branch, SHA1 c09e90d1847fc4ffdd7384c9adf7f60c13479095 + * dashboard improvements: + # Add Polish language + # Add date range and log search functionality + # Add refresh interval to the dashboard landing page + # Add separate option to config SSL port + # Filter iSCSI target images based on required features + # Fixed auth TTL expired error + # Fixed error when trying to create NFS export without "NFSv3" + # Fixed error when trying to create NFS export without "UDP" + +------------------------------------------------------------------- +Fri Mar 29 13:46:45 UTC 2019 - ncutler@suse.com + +- Update to 14.2.0-345-g183e6fe4f5: + + rebase on top of upstream nautilus branch, upstream SHA1 d4290f8edcbadbfecb9396a43a586afe0d0afd00 + * common/blkdev: get_device_id: behave if model is lvm and id_model_enc isn't there + * mon/Monitor.cc: print min_mon_release correctly + * mgr/dashboard: dashboard giving 401 unauthorized + +------------------------------------------------------------------- +Wed Mar 27 16:07:12 UTC 2019 - ncutler@suse.com + +- _constraints: increase x86_64 ceph memory constraint to 10G + after seeing "memory exhausted" build failure on a machine with 9.8G + total memory (including swap) + +------------------------------------------------------------------- +Mon Mar 25 13:49:44 UTC 2019 - ncutler@suse.com + +- Update to 14.2.0-328-gf3638ba646: + + rebase on top of upstream nautilus branch, upstream SHA1 41b9e7f94f1f08e8607ef574befaaaf6998a89dd + * librbd: ignore -EOPNOTSUPP errors when retrieving image group membership + * crush: various fixes for weight-sets, the osd_crush_update_weight_set option, and tests + * osd/OSDMap: add 'zone' to default crush map + * common/blkdev: handle devices with ID_MODEL as "LVM PV ..." but valid ID_MODEL_ENC + * mgr/orchestrator: Add error handling to interface + * mon/OSDMonitor: allow 'osd pool set pgp_num_actual' + * rgw: ldap: fix early return in LDAPAuthEngine::init w/uri not empty() + * mon/MgrStatMonitor: ensure only one copy of initial service map + + drop downstream patch "rgw: dmclock: async scheduler: wrap yield_ctx around + ifdefs" (replaced by https://github.com/ceph/ceph/pull/26634) + +------------------------------------------------------------------- +Mon Mar 25 09:52:01 UTC 2019 - ncutler@suse.com + +- _constraints: increase aarch64 ceph memory constraint to 10G + after seeing "memory exhausted" build failure on a machine with 9.8G + total memory (including swap) + +------------------------------------------------------------------- +Thu Mar 21 08:24:05 UTC 2019 - ncutler@suse.com + +- Update to 14.2.0-300-gacd2f2b9e1: + + spec/ceph-mgr: drop "Recommends: ceph-mgr-ssh" + + cmake: empty INSTALL_RPATH for libceph_crypto_openssl.so (boo#1129921) + +------------------------------------------------------------------- +Tue Mar 19 10:05:12 UTC 2019 - ncutler@suse.com + +- Update to 14.2.0-296-g063d979413: + + rebase on top of upstream nautilus branch, SHA1 3a54b2b6d167d4a2a19e003a705696d4fe619afc + * upstream Nautilus 14.2.0 (stable) release + release notes: http://docs.ceph.com/docs/master/releases/nautilus/ + + rpm: fix "rhel <= 7" conditional (bsc#1129595) + + rpm: refrain from building ceph-resource-agents on SLE (bsc#1129597) + +------------------------------------------------------------------- +Fri Mar 15 12:20:13 UTC 2019 - ncutler@suse.com + +- Update to 14.1.1-457-g1411dbed54: + + rebase on top of upstream nautilus branch, SHA1 98653b3db92f69023cb62526791d4d9aa5d6ec23 + * upstream Nautilus 14.1.1 (RC2) release + * mgr: Fix broken get_localized_module_option function (bsc#1127342) + * spec: ceph-osd gets new runtime dependency, libstoragemgmt + + dashboard: Update downstream branding (bsc#1129224) + + spec: build ceph-test package on x86_64 arch only (bsc#1129274) + +------------------------------------------------------------------- +Mon Mar 4 11:49:18 UTC 2019 - ncutler@suse.com + +- Edge ceph package memory constraint upward to address "virtual memory + exhausted: Cannot allocate memory" build failure sseen in OBS + +------------------------------------------------------------------- +Fri Mar 1 14:51:10 UTC 2019 - ncutler@suse.com + +- Update to 14.1.0-559-gf1a72cff25: + + rebase on top of upstream master branch, SHA1 34f04be35bb9abcb5860b4c975b105adacc7a3aa + * fix GCC-9 build (bsc#1121395) + + SUSE branding for Ceph Dashboard (Sebastian Krah) + + spec: + * Drop use of $FIRST_ARG (Franck Bui) + * fix ceph-mgr-diskprediction-local runtime deps + +------------------------------------------------------------------- +Sun Feb 24 10:39:14 UTC 2019 - ncutler@suse.com + +- Update to 14.1.0-402-ga396e8bf3b: + + rebase on top of upstream master branch, SHA1 1f909bc88be501e58cfbe1bab55efc20de10fa8d + * upstream v14.1.0 (Nautilus RC1) release + + see draft release notes: https://github.com/ceph/ceph/pull/26598 + * rados: provide user with more meaningful error message (bsc#999643) + * librados3 is dead: long live librados2 + * several MGR modules (notably the dashboard) have been split off from + ceph-mgr into dedicated subpackages + * upstream v14.1.0 introduces an optional dependency on rabbitmq-c + + disabled, for now, since openSUSE does not ship this package + + rgw: dmclock: async scheduler: wrap yield_ctx around ifdefs (bsc#1126554) + + arch tweaks (enable lttng build for ppc64le, drop ppc64 openSUSE, add + s390x openSUSE) + +------------------------------------------------------------------- +Fri Feb 15 14:00:09 UTC 2019 - ncutler@suse.com + +- Update to 14.0.1-3975-g14d8f3cab5: + + rebase on top of upstream master branch, SHA1 24fcffb94ccda5cb11eeb74315c78e053fbb1c66 + * Enabling and using the dashboard should be possible and strongly + encouraged - see http://docs.ceph.com/docs/master/mgr/dashboard/ for the + basics + + spec: + * enable s390x build for openSUSE + * disable lttng build on s390x, enable it on ppc64le + * new subpackages for the larger MGR plugins (notably, dashboard) + * drop RHEL-specific subman code blocks + +------------------------------------------------------------------- +Wed Jan 30 17:29:43 UTC 2019 - ncutler@suse.com + +- Update to 14.0.1-3346-g0364ec8d2f: + + rgw: Fix for SignatureMismatchError in s3 commands + +------------------------------------------------------------------- +Wed Jan 30 13:38:11 UTC 2019 - ncutler@suse.com + +- Update to 14.0.1-3344-g0834db3c15: + + spec: drop arch-specific conditional around RGW crypto plugin libraries + + make-dist: prefer Python 3 + +------------------------------------------------------------------- +Tue Jan 29 15:06:56 UTC 2019 - ncutler@suse.com + +- Update to 14.0.1-3341-gb471954ff4: + + rebase on top of upstream master branch, SHA1 602c875bd68a091be485bfba7e2d62b3f08ba7b3 + * msgr V2 + +------------------------------------------------------------------- +Fri Jan 25 15:31:56 UTC 2019 - ncutler@suse.com + +- Update to 14.0.1-3176-ge8d910619e: + + rebase on top of upstream master branch, SHA1 cc26a67890b58c678d4bb26f6a408cf1742317b5 + * spec: fix xmlsec1 build dependency for dashboard make check + +------------------------------------------------------------------- +Mon Jan 14 13:16:35 UTC 2019 - ncutler@suse.com + +- Update to 14.0.1-2789-g6c941e4d76: + + rebase on top of upstream master branch, SHA1 c70a3d8e30be84ea8db41e7329ed1577aeee9ab9 + * MON now supports Kerberos authentication + * MGR now works with Cython >= 0.29 + * spec: add xmlsec1 dependency for dashboard make check + * spec: change rbd-mirror and ceph-radosgw runtime dependency + from ceph-common to ceph-base to address http://tracker.ceph.com/issues/37620 + +------------------------------------------------------------------- +Tue Dec 11 14:34:39 UTC 2018 - ncutler@suse.com + +- Update to 14.0.1-1555-g42662f72f4: + + spec: fix libradospp-devel runtime dependency + + spec: remove redundant "Provides: libxio" and "Obsoletes: libxio" + + spec: explicitly require python3-Cython < 0.29 (bsc#1118611) + +------------------------------------------------------------------- +Mon Dec 10 11:33:38 UTC 2018 - ncutler@suse.com + +- _constraints: Increase aarch64 disk space constraint for ceph-test + to address build failure seen in openSUSE:Factory:ARM + +------------------------------------------------------------------- +Wed Dec 5 13:42:34 UTC 2018 - ncutler@suse.com + +- Update to 14.0.1-1547-g08fca371b5: + + spec file: make ceph-common remove provides for libradosstriper1 + + use root:graphana for the dashboard directories on suse + +------------------------------------------------------------------- +Wed Dec 5 10:28:08 UTC 2018 - Guillaume GARDET + +- _constraints: remove duplicated aarch64 ceph-test entry + +------------------------------------------------------------------- +Mon Dec 3 16:24:29 UTC 2018 - ncutler@suse.com + +- Update to v14.0.1-1546-ge9be8525c8: + + mgr/volumes: Fix Python 3 import error + (fixes cluster deployment in py3 environment) + +------------------------------------------------------------------- +Fri Nov 30 19:09:43 UTC 2018 - ncutler@suse.com + +- Update to v14.0.1-1545-g01bead277f: + + based on upstream master 4d3cc9f9092d8a86d128192a811733ce23ad070a + + plus two spec file fixes: + * make ceph-grafana-dashboards own its directories + http://tracker.ceph.com/issues/37485 + * fix cython package version to less than 0.29 + http://tracker.ceph.com/issues/37472 + +------------------------------------------------------------------- +Wed Nov 28 15:50:12 UTC 2018 - ncutler@suse.com + +- spec file: make ceph-common provide/obsolete libradosstriper1 + (in SES5 ceph-common requires libradosstriper1 with exact version match, + while in SES6 there is no libradosstriper1 at all) + +------------------------------------------------------------------- +Tue Nov 6 21:46:19 UTC 2018 - ncutler@suse.com + +- Update to v14.0.1-154-g7588072b82: + + based on upstream nautilus 5f51cd286b747b1729006a5b98fb08b1b646237a + (v14.0.1 release) + +------------------------------------------------------------------- +Mon Oct 29 14:02:13 UTC 2018 - ncutler@suse.com + +- Bump ceph aarch64 memory constraint from 8 to 9G to address + an EOM build failure seen in IBS + +------------------------------------------------------------------- +Thu Oct 25 09:17:58 UTC 2018 - ncutler@suse.com + +- Update to v14.0.0-4389-g4c34d15e48: + + based on upstream nautilus a0b5445bc8400b9b1f398a414001164b2d8dd290 + + First downstream nautilus build. Notable changes: + * The 'ceph-disk' OSD deployment/introspection/management tool is gone. + Use 'ceph-volume' instead. + * Builds with Python 3.7 (boo#1113946) + * The 'ceph osd rm' command has been deprecated. Users should use + 'ceph osd destroy' or 'ceph osd purge' (but after first confirming it is + safe to do so via the 'ceph osd safe-to-destroy' command). + * The MDS now supports dropping its cache for the purposes of benchmarking: + "ceph tell mds.* cache drop " + * The 'ceph pg list_missing' command has been renamed to + 'ceph pg list_unfound' to better match its behaviour. + * The 'rbd-mirror' daemon can now retrieve remote peer cluster + configuration secrets from the monitor. + * The is fully obsolete and references to it in the docs + have been removed or clarified. + * The libcephfs bindings added the ceph_select_filesystem function + for use with multiple filesystems. + * The cephfs python bindings now include mount_root and filesystem_name + options in the mount() function. + * erasure-code: add experimental *Coupled LAYer (CLAY)* erasure codes + support. + * The 'cache drop' OSD command has been added to drop an OSD's caches: + "ceph tell osd.x cache drop" + * The 'cache status' OSD command has been added to get the cache stats of an + OSD: "ceph tell osd.x cache status" + +------------------------------------------------------------------- +Wed Oct 10 09:42:02 UTC 2018 - ncutler@suse.com + +- Update to 13.2.2-86-g62b49f06c4: + + rebase on upstream 13.2.2 release + https://ceph.com/releases/13-2-2-mimic-released/ + + IMPORTANT NOTE: this release contains a regression in CephFS + which was not yet fixed at the time of this build. Do not use + this build on a production cluster! + For details, see http://tracker.ceph.com/issues/36346 + +------------------------------------------------------------------- +Tue Sep 11 12:35:50 UTC 2018 - ncutler@suse.com + +- Update to 13.2.1-427-g6cd01d4dd2: + + cmake: no libradosstriper headers if WITH_LIBRADOSSTRIPER=OFF + +------------------------------------------------------------------- +Mon Sep 10 13:06:53 UTC 2018 - ncutler@suse.com + +- Update to 13.2.1-426-gd2d4852e84: + + based on upstream mimic 510d48e10be716cf61b9ddd51e8bc847288ae15a + + bsc#1101262 - ceph's SPDK builds with march=native + + migrate DeepSea QA bash scripting from DeepSea repo + +------------------------------------------------------------------- +Fri Aug 17 12:11:27 UTC 2018 - ncutler@suse.com + +- Update to 13.2.1-106-g9a1fcb1b6a: + + based on upstream mimic 0323ca11569b183509129c180dcec427aecf2a0a + * including upstream 13.2.1 release - for details, see + https://ceph.com/releases/13-2-1-mimic-released/ + + ceph-disk: let extract_parted_partition_numbers return a list + (fixes a py3 issue) + +------------------------------------------------------------------- +Tue Jul 10 10:37:41 UTC 2018 - ncutler@suse.com + +- Update to v13.2.0-210-g0e990e900d: + + based on upstream mimic 4ed78ecf2f27aae1e9eb27f83611285ec7445ebd + * bsc#1099162, CVE-2018-10861 + * bsc#1096748, CVE-2018-1128, CVE-2018-1129 + + increase memory constraint for build workers after builds started + failing on workers with exactly 8G of RAM ("free -h" reports + 7.8 GiB for these workers) + +------------------------------------------------------------------- +Tue Jun 5 08:05:13 UTC 2018 - jan.fajerski@suse.com + +- Update to v13.2.0-39-geb7f429568: + + based on upstream mimic f38fff5d093da678f6736c7a008511873c8d0fda + +------------------------------------------------------------------- +Thu May 31 16:34:53 UTC 2018 - ncutler@suse.com + +- Update to 13.1.1-173-g127c33d64e: + + based on upstream mimic dda69eea663bcabc5ad99f5ca8370f43575f475d + * fix GCC8 builds (bsc#1084645) + * fix python3 module loading (bsc#1086613) + * ceph-brag no longer packaged upstream + +------------------------------------------------------------------- +Thu Apr 26 21:27:17 UTC 2018 - ncutler@suse.com + +- Update to 13.0.2-1874-ge31585919b: + + based on upstream master 510762f51e346836492a0a8f83a056944ee6e046 + * add liblz4 build- and runtime dependency + * move ceph-disk runtime dependencies from ceph-osd to ceph-base + +------------------------------------------------------------------- +Fri Apr 20 12:18:30 UTC 2018 - ncutler@suse.com + +- Update to 13.0.2-992-g418baeac64: + + fix ceph-detect-init for recent SUSEs (bsc#1090072) + +------------------------------------------------------------------- +Mon Apr 16 12:46:25 UTC 2018 - ncutler@suse.com + +- rewrite README-ceph-test.txt for clarity + +------------------------------------------------------------------- +Thu Apr 12 19:06:20 UTC 2018 - ncutler@suse.com + +- Update to 13.0.2-984-g852d3f1411: + + based on upstream master aaac83abb516f824f1caef470686b1bffeffa8b4 + + fixes s390x build failure (bsc#1089291) + + introduces liboath0 runtime dependency (bsc#1089302) + + fixes RGW SSL deployment + +------------------------------------------------------------------- +Thu Apr 12 18:13:35 UTC 2018 - ncutler@suse.com + +- Update to 13.0.2-819-gf64b021d4c: + + based on upstream master 3ab655b55d2b363c0352dfbb90caed2ffcd42432 + +------------------------------------------------------------------- +Thu Apr 12 02:11:19 UTC 2018 - ncutler@suse.com + +- reduce ceph-test constraints for ppc64le and s390x + +------------------------------------------------------------------- +Tue Mar 27 14:04:19 UTC 2018 - schwab@suse.de + +- Reduce ceph-test constraints on aarch64 + +------------------------------------------------------------------- +Tue Mar 21 06:03:25 UTC 2018 - ncutler@suse.com + +- Update to 13.0.1-3204-g17e0216271: + + osd: fix s390x build failure (bsc#1081526) + + cmake: add chrono to BOOST_COMPONENTS (bsc#1086017) + +------------------------------------------------------------------- +Mon Mar 19 15:31:24 UTC 2018 - ncutler@suse.com + +- Update to 13.0.1-3202-g7a60121a01: + + latest master (dashboard_v2 MGR module renamed to dashboard) + +------------------------------------------------------------------- +Mon Mar 19 12:49:00 UTC 2018 - ncutler@suse.com + +- checkin.sh: add interactive verification of Ceph version number sanity + +------------------------------------------------------------------- +Fri Mar 16 20:52:48 UTC 2018 - ncutler@suse.com + +- Update to 13.0.1-3023-g71b0480e48: + + mimic-dev2 (including notably dashboard_v2 MGR module) + +------------------------------------------------------------------- +Fri Feb 23 12:10:01 UTC 2018 - ncutler@suse.com + +- forward port DeepSea integration suite from ses5 + +------------------------------------------------------------------- +Tue Feb 20 16:52:18 UTC 2018 - ncutler@suse.com + +- Update to version 13.0.1-2078-g85df538001: + + spec file: + * revert "enable --without-python2 bcond for all distros" (as of Code 15, + Python 2 bindings will not be built by default: projects wishing to build + them will need to provide --with-python2 explicitly) (bsc#1081836) + +------------------------------------------------------------------- +Fri Feb 16 14:18:59 UTC 2018 - ncutler@suse.com + +- Update to version 13.0.1-1987-g4a523803f8: + + py3 MGR fixes (bsc#1080758) + + spec file: + * test/bench: remove smallio bench tools + +------------------------------------------------------------------- +Fri Feb 2 11:17:07 UTC 2018 - ncutler@suse.com + +- Update to version 13.0.1-1567-gae149ea5f9: + + increment upstream version number to 13.0.1 (mimic dev release) + + spec file: + * enable --without-python2 bcond for all distros (the Build Service will + control py2/3 build via this option) + +------------------------------------------------------------------- +Mon Jan 29 13:46:41 UTC 2018 - ncutler@suse.com + +- Update to version 13.0.0-5171-g4d4101fe78: + + spec file: + * change version number format + * define _defined_if_python2_absent if, and only if, building without + python2 bcond + +------------------------------------------------------------------- +Fri Jan 26 19:03:21 UTC 2018 - ncutler@suse.com + +- Update to version 13.0.0-5169-g26918cdcc9: + + rebase to latest upstream master, including spec file changes: + * eliminate Python 2 dependencies (bsc#1076403) + N.B.: this has the consequence that we no longer build or ship + Python 2 versions of the Python bindings for librados, librbd, + libcephfs and librgw + * drop lowmem_builder bcond and rewrite associated code to be distro-agnostic + * move distro-conditional BuildRequires to appropriate section + * use more recent toolchain on RHEL 7 + * ceph-base: put runtime dependencies in alphabetical order + * correct Group for python bindings subpackages + * move ceph-volume to ceph-osd and adjust systemd macros accordingly + * ceph-osd subpackage now requires lvm2 for ceph-volume + * ceph-test: peg version of ceph-common dependency + * drop deprecated scripts rcceph and ceph-crush-location + * fix permissions of rbd resource agent + +------------------------------------------------------------------- +Mon Nov 27 13:49:47 UTC 2017 - ncutler@suse.com + +- ceph-rpmlintrc: add lines to quash RPMLINT warnings + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/crypto/libceph_crypto_isal.so + + librados2.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/libceph-common.so + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libos_tp.so + + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libosd_tp.so + +------------------------------------------------------------------- +Sat Nov 25 21:33:23 UTC 2017 - ncutler@suse.com + +- Replace references to /var/adm/fillup-templates with new %_fillupdir macro + (boo#1069468) + +------------------------------------------------------------------- +Sat Nov 25 14:31:00 UTC 2017 - ncutler@suse.com + +- Update to version 13.0.0-3531.g3692e00bab: + + rebase to latest upstream master + + Add "checkin.sh" script to automate the checkin process, along + with a "README-checkin.txt" file containing basic information. + +------------------------------------------------------------------- +Fri Nov 24 17:23:51 UTC 2017 - ncutler@suse.com + +- Update to version 13.0.0-3512.gb018e431a6: + + rebase to upstream "Mimic" (13.0.0) development snapshot + https://github.com/SUSE/ceph/tree/ses6 + + drop OBS source services in favor of generating the spec file + and tarball using the upstream "make-dist" script + + new version number format, replacing timestamp with git tag + offset + + reduce tarball size from 114 MB to 47 MB by omitting unused parts + of boost + +------------------------------------------------------------------- +Tue Nov 21 16:29:28 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1511279898.8aa892202e: + + bsc#1060904 + * rgw: keystone: bump up logging when error is received + + bsc#1067705 + * rgw: set sync_from_all as true when no value is seen + + bsc#1066182 + * rgw: data sync: set num_shards when building full maps + * dencoder/rgw: expose rgw sync status types + * rgw: set num_shards on 'radosgw-admin data sync init' + +------------------------------------------------------------------- +Thu Nov 09 12:00:20 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1510221942.af9ea5e715: + + bsc#1066502 + * mon/osd_metadata: sync osd_metadata table + * mon/OSDMonitor: tidy prefix definitions + * mon: implement MDSMonitor::get_store_prefixes + * mon/mgr: sync mgr_command_descs table and mgr_metadata table + * mon/MgrMonitor: populate on-disk cmd descs if empty on upgrade + * mon/MgrMonitor: read cmd descs if empty on update_from_paxos() + + bsc#1067088 + * osd: make the PG's SORTBITWISE assert a more generous shutdown + + bsc#1066182 + * rgw: ListBucketIndexesCR spawns entries_index after listing metadata + * rgw: fix error handling in ListBucketIndexesCR + * rgw: RGWDataSyncControlCR retries on all errors + + RGW fixes: + * test/rgw: add test_multipart_object_sync + * cls/rgw: increment header version to avoid overwriting bilog entries + * rgw: disable dynamic resharding in multisite environment + +------------------------------------------------------------------- +Fri Oct 27 19:15:21 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1509128342.9347aa6662: + + common/common_init: disable ms subsystem log gathering for clients + + spec file: add %{_sysctldir}/90-ceph-osd.conf to ceph-osd + * ceph.spec.in,debian/rules: change aio-max-nr to 1048576 + * sysctl.d: set kernel.pid_max=4194304 (bsc#1061461) + +------------------------------------------------------------------- +Sun Oct 15 07:58:18 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1507910930.aea79b8b7a: + + rgw: Remove assertions in IAM Policy (bsc#1063014, CVE-2017-16818) + +------------------------------------------------------------------- +Thu Oct 12 17:08:14 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1507819941.856710ff58: + + rgw: stop/join TokenCache revoke thread only if started (bsc#1059458) + + systemd: reinstate TasksMax=infinity + +------------------------------------------------------------------- +Thu Oct 05 18:49:19 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1507226092.b783a015b9: + + Revert "SIGPIPE suppression for platforms without SO_NOSIGPIPE or MSG_NOSIGNAL" + + msgr: add a mechanism for Solaris to avoid dying on SIGPIPE + +------------------------------------------------------------------- +Wed Oct 04 10:17:16 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1507108986.dc637a73e2: + + rgw: defer constructing keystone engine unless url is configured + (issue#21400, pr#17775) + +------------------------------------------------------------------- +Sat Sep 30 22:41:42 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.1+git.1506764331.9e2e945bd0: + (upstream luminous 9d8acf6f3f85dd1410629cc680474e38f3be9838) + + upstream Luminous v12.2.1 + https://ceph.com/releases/v12-2-1-luminous-released/ + +------------------------------------------------------------------- +Thu Sep 21 16:02:37 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.0+git.1506009682.0e5b4307f3 + (upstream luminous a931cf68120d99661b785cc794e2b6965d621f06): + + ceph-disk: fix mountpoint check for systemctl enable --runtime + (bsc#1051598) + + spec file: + * ceph-fuse requires fuse; make that dependency explicit + * drop obsolete qemu symlink hack in librbd1 %post + +------------------------------------------------------------------- +Mon Sep 11 14:39:08 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.0+git.1505141259.1264bae1a8: + + rgw_file: fix LRU lane lock in evict_block() - bsc#1054061 + + os/bluestore: fix deferred write deadlock, aio short return handling - + bsc#1056125 + + mon/OSDMonitor: don't create pgs if pool was deleted - bsc#1056967 + +------------------------------------------------------------------- +Wed Aug 30 18:46:08 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.0+git.1504118058.706f78da1a: + + fix ceph --version to say "stable" instead of "rc" + + spec file: add python-numpy-devel build dependency for SUSE + + bsc#1053836 + * Revert "osd: adjust osd_min_pg_log_entries" + * osd/PGLog: write only changed dup entries + +------------------------------------------------------------------- +Tue Aug 29 14:16:26 UTC 2017 - ncutler@suse.com + +- Update to version 12.2.0+git.1504013812.01ea30bcc9: + + upstream Luminous v12.2.0 (first stable) release + * increment version number to 12.2.0 + + spec file + * edge mem_per_process upward after seeing some OOM-esque build failures + * package ceph-volume man pages + +------------------------------------------------------------------- +Thu Aug 17 07:21:22 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.4+git.1502953626.155adb5253: + + ceph.spec: provide libxio 1.7 and obsolete libxio <= 1.7 + +------------------------------------------------------------------- +Wed Aug 16 10:40:25 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.4+git.1502878199.4183317204: + + ceph.spec: obsolete libxio + (Note to reviewer: libxio was only ever used by Ceph (for an experimental + IB/RDMA feature), it was never submitted to Factory, and its functionality has + been integrated into Ceph in a different form. For all practical purposes, + libxio has been replaced by Ceph itself.) + +------------------------------------------------------------------- +Wed Aug 16 08:50:51 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.4+git.1502871088.edf82a59df: + + latest upstream luminous (a5f84b37668fc8e03165aaf5cbb380c78e4deba4) + * increment upstream version number to 12.1.4 + +------------------------------------------------------------------- +Mon Aug 14 08:47:38 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.3+git.1502698163.45fc586a51: + + latest upstream luminous (6808af486d3bdce966232810004648502c967b13) + * increment upstream version number to 12.1.3 + +------------------------------------------------------------------- +Sat Aug 05 06:42:53 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.2+git.1501914637.59afe41c49: + + spec file + * ceph-volume added to ceph-base RPM, where it co-exists with ceph-disk + +------------------------------------------------------------------- +Fri Aug 4 16:59:59 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.2+git.1501865907.88dc8cdc9d: + + latest upstream master (7350fa65d79b5f0ace427e609565f07be35cfe62) + * os/bluestore: allow multiple DeferredBatches in flight at once + (pr#16769, issue#20295, bsc#1043399) + +------------------------------------------------------------------- +Thu Aug 03 20:06:55 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.2+git.1501790037.82d6a9c37a: + + osd: move CMPEXT response munging into completion function + (bsc#1047244) + +------------------------------------------------------------------- +Wed Aug 2 14:41:41 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.2+git.1501684697.aa6b0153ef: + + upstream luminous v12.1.2 release candidate + + latest upstream master (e27a78c9ed3984b54a312ced3ad67fcc8f464fc0) + * mon: add mgr metdata commands, and overall 'versions' command for all + daemon versions (bsc#1050063, pr#16460) + +------------------------------------------------------------------- +Wed Aug 02 10:50:22 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.1+git.1501669490.04d0738487: + + mon: extensible output format for health checks + +------------------------------------------------------------------- +Mon Jul 31 14:34:36 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.1+git.1501501507.6dd9e8fd8c: + + update to latest upstream master (fa70335db25f2b661b329d5d8f37039b77f2d1ae) + + spec file: + * build/ops: rpm: Drop legacy libxio support (pr#16449) + + Other notable changes: + * osd: moved OpFinisher logic from OSDOp to OpContext (pr#16617) + +------------------------------------------------------------------- +Fri Jul 28 14:34:34 UTC 2017 - tserong@suse.com + +- Update to version 12.1.1+git.1501231943.67577225bc + + Notable changes: + * rgw_file: properly & |'d flags (bsc#1047977) + +------------------------------------------------------------------- +Wed Jul 19 08:11:53 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.1+git.1500447879.e5aac115d7: + + upstream 12.1.1 (release candidate) + + Other notable changes: + * build/ops: rpm: fix typo WTIH_BABELTRACE (pr#16366) + * build/ops: rpm: put mgr python build dependencies in make_check bcond + (pr#15940) + * ceph-disk: support osd new (pr#15432) + * ceph: allow '-' with -i and -o for stdin/stdout (pr#16359) + * cls/rbd: trash_list should be iterable (pr#16372) + * doc: update quick start to add a note for mgr create command for luminous+ + builds (pr#16350) + * libradosstriper: fix format injection vulnerability (pr#15674) + * mgr/dashboard: add OSD list view (pr#16373) + * mon, osd: misc fixes (pr#16283) + * mon/MDSMonitor: fix segv when multiple MDSs raise same alert (pr#16302) + * mon/MgrMonitor: fix standby addition to mgrmap (pr#16397) + * mon/MgrMonitor: only induce mgr epoch shortly after mkfs (pr#16356) + * mon: Fix output text and doc (pr#16367) + * mon: add force-create-pg back (pr#16353) + * mon: skip crush smoke test when running under valgrind (pr#16346) + * os/bluestore: use reference to avoid string copy (pr#16364) + * osd: combine conditional statements (pr#16391) + * osd: restart boot process if waiting for luminous mons (pr#16341) + * rgw: S3 lifecycle now supports expiration date (pr#15807) + * rgw: acl grants num limit (pr#16291) + * rgw: delete object in error path (pr#16324) + * rgw: drop unused find_replacement() and some function docs (pr#16386) + * rgw: fix err when copy object in bucket with specified placement rule + (pr#15837) + * rgw: fix potential null pointer dereference in rgw_admin (pr#15667) + * rgw: raise debug level of RGWPostObj_ObjStore_S3::get_policy (pr#16203) + * rgw: req xml params size limitation error msg (pr#16310) + * rgw_file: add service map registration (pr#16251) + * test,rgw: fix rgw placement rule pool config option (pr#16380) + * test/fio: print all perfcounters rather than objectstore itself (pr#16339) + +------------------------------------------------------------------- +Mon Jul 17 13:11:35 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.0+git.1500295948.39d2e5f424: + + spec file: + * socat build dependency only for make check + * fix typo WTIH_BABELTRACE + +------------------------------------------------------------------- +Mon Jul 17 10:42:27 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.0+git.1500284183.1ed97736ab: + + Spec file changes: + * bump epoch (not relevant for SUSE) + * add socat buildrequires + * libcephfs2 now obsoletes libcephfs1 (bsc#1047020) + * HAVE_BABELTRACE option renamed to WITH_BABELTRACE + * fix a regression in ceph-base %postun scriptlet + + Selected other changes: + * Revert "msg/async: increase worker reference with local listen table enabled backend" + * build: build erasure-code isa lib without versions + * ceph-disk/ceph_disk/main.py: Replace ST_ISBLK() test by is_diskdevice() + * ceph.in: filter out audit from ceph -w + * common,config: OPT_FLOAT and OPT_DOUBLE output format in config show + * common/Timer: do not add event if already shutdown + * compressor/zlib: remove g_ceph_context/g_conf from compressor plugin + * core: make the conversion from wire error to host OS work + * core:" Stringify needs access to << before reference" src/include/stringify.h + * crush/CrushWrapper: make get_immediate_parent[_id] ignore per-class shadow hierarchy + * doc/mgr/dashboard: update dashboard docs to reflect new defaults + * doc/rados.8: add offset option for put command + * doc: fix link for ceph-mgr cephx authorization + * doc: update intro, quick start docs + * isa-l: update isa-l to v2.18 + * librbd: fail IO request when exclusive lock cannot be obtained + * mgr,librados: service map + * mgr,mon: debug init and mgrdigest subscriptions + * mgr,mon: enable/disable mgr modules via 'ceph mgr module ...' commands + * mgr/ClusterState: do not mangle PGMap outside of Incremental + * mgr/restful: bind to :: and update docs + * mgr: Zabbix monitoring module + * mon,crush: create crush rules using device classes for replicated and ec pools via cli + * mon/MgrStatMonitor: do not crash on luminous dev version upgrades + * mon/MonClient: respect the priority in SRV RR + * mon/Monitor: recreate mon session if features changed + * mon/OSDMonitor: do not allow crush device classes until luminous + * mon/OSDMonitor: guard 'osd crush set-device-class' + * mon/mgr: add detail error infomation + * mon: Fix status output warning for mon_warn_osd_usage_min_max_delta + * mon: add support public_bind_addr option + * mon: collect mon metdata as part of the election + * mon: debug session feature tracking + * mon: do crushtool test with fork and timeout, but w/o exec of crushtool + * mon: fix hang on deprecated/removed 'pg set_\*full_ratio' commands + * mon: include device class in tree view; hide shadow hierarchy + * mon: maintain the "cluster" PerfCounters when using ceph-mgr + * mon: revamp health check/warning system + * msg/async: increase worker reference with local listen table enabled backend + * msg/async: make recv_stamp more precise + * msg: QueueStrategy::wait() joins all threads + * msg: make listen backlog an option, increase from 128 to 512 + * os/blueStore: Failure retry for opening file + * os/bluestore/BlueFS: clean up log_writer aios from compaction + * os/bluestore/BlueFS: clear current log entrys before dump all fnode + * os/bluestore/KernelDevice: batch aio submit + * os/bluestore: Make BitmapFreelistManager kv itereator short lived + * os/bluestore: cap rocksdb cache size + * os/bluestore: clear up redundant size assignment in KernelDevice + * os/bluestore: differ default cache size for hdd/ssd backends + * os/bluestore: fix deferred_aio deadlock + * os/bluestore: move object exist in assign nid + * os/bluestore: only submit deferred if there is any + * os/bluestore: reduce some overhead for _do_clone_range() and _do_remove() + * os/bluestore: use bufferlist functions whenever possible + * os/filestore/FileJournal: FileJournal::open() close journal file before return error + * os/filestore/HashIndex: randomize split threshold by a configurable amount + * os/filestore: call committed_thru when no journal entries are replayed + * os/filestore: do not free event if not added + * os/filestore: queue ondisk completion before apply work + * os/filestore: require experimental flag for btrfs + * osd/OSD: auto class on osd start up + * osd/PrimaryLogPG solve cache tier osd high memory consumption + * osd/ReplicatedBackend: reset thread heartbeat after every omap entry + * osd/filestore: Revert "os/filestore: move ondisk in front + * osd: Check for and automatically repair object info soid during scrub + * osd: Preserve OSDOp information for historic ops + * osd: check queue_transaction return value + * osd: clear_queued_recovery() in on_shutdown() + * osd: compact osd feature + * pybind/mgr/dashboard: bind to :: by default + * pybind/mgr/dashboard: fix get kernel_version error + * rbd-mirror: ignore permission errors on rbd_mirroring object + * rbd: do not attempt to load key if auth is disabled + * rgw: fix compilation with cryptopp + * rgw,test: fix rgw placement rule pool config option + * rgw/rgw_frontend.h: Return negative value for empty uid in RGWLoadGenFrontend::init() + * rgw/rgw_rados: Remove duplicate calls in RGWRados::finalize() + * rgw: /info claims we do support Swift's accounts ACLs + * rgw: Correcting the condition in ceph_assert while parsing an AWS Principal + * rgw: Do not fetch bucket stats by default upon bucket listing + * rgw: Fix a bug that multipart upload may exceed the quota + * rgw: Initialize pointer fields + * rgw: fix leaks with incomplete multiparts + * rgw: fix memory leak in copy_obj_to_remote_dest + * rgw: fix not initialized vars which cause rgw crash with ec data pool + * rgw: fix radosgw-admin data sync run crash + * rgw: fix s3 object uploads with chunked transfers and v4 signatures + * rgw: fix the subdir without slash of s3 website url + * rgw: fix zone did't update realm_id when added to zonegroup + * rgw: log_meta only for more than one zone + * rgw: rgw_file skip policy read for virtual components + * rgw: using RGW_OBJ_NS_MULTIPART in check_bad_index_multipart + * rgw: verify md5 in post obj + * rgw_file: add compression interop to RGW NFS + * rgw:fix s3 aws v2 signature priority between header['X-Amz-Date'] and header['Date'] + * vstart.sh: bind restful, dashboard to ::, not 127.0.0.1 + * vstart: add --rgw_compression to set rgw compression plugin + * vstart: allow to start multiple radosgw when RGW=x + +------------------------------------------------------------------- +Mon Jul 3 19:41:29 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.0+git.1499090920.2c11b88d14: + + With this update, Ceph no longer autocreates a pool called "rbd" with id 0 + Deployment tools must take this into account! + + systemd: Add explicit Before=ceph.target (bsc#1042973) + +------------------------------------------------------------------- +Wed Jun 28 13:33:48 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.0+git.1498654198.20d6a47cc9: + + build/ops: rpm: put mgr python build dependencies in make_check bcond + N.B. this effectively eliminates the following build dependencies: + python-Babel python-beautifulsoup4 python-CherryPy python-coverage + python-flup python-Genshi python-html5lib python-logutils python-nose + python-Paste python-PasteDeploy python-PasteDeploy python-pecan + python-pyquery python-singledispatch python-waitress python-WebOb + python-WebTest python-Werkzeug python-WSGIProxy2 pytyhon-python-openid + +------------------------------------------------------------------- +Mon Jun 26 13:52:31 UTC 2017 - ncutler@suse.com + +- spec file: + + removed BR libatomic_ops-devel as upstream replaced it with std:atomic + + removed defattr as they are no longer needed on sle12 and newer + +------------------------------------------------------------------- +Mon Jun 26 12:25:57 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.0+git.1498478524.117b171715: + + include 12.1.0 tag to make "ceph --version" happy + + tests: drop hadoop-s3a tests + +------------------------------------------------------------------- +Sat Jun 24 20:17:48 UTC 2017 - ncutler@suse.com + +- Update to version 12.1.0+git.1498309403.f4fc02fff4: + + upstream 12.1.0 release; for details, see + http://ceph.com/releases/v12-1-0-luminous-rc-released/ + + revert several pre-release commits that are no longer needed + because the issues have been fixed upstream in the meantime + + build/ops: rpm: sane packaging of %{_docdir}/ceph directory + +------------------------------------------------------------------- +Fri Jun 23 08:11:22 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1498202776.b806032985: + + Integration testing changes: + * add DeepSea integration suite test definitions for teuthology + * re-enable several RGW tests that upstream only runs on Ubuntu + + ceph_ver_hack.sh: use git describe --match + + ReplicatedPG: add CHECKSUM->CMPEXT req translation + +------------------------------------------------------------------- +Wed Jun 14 08:00:43 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1497426468.6984d41b5d: + + qa: add initial deepsea suite (task and test yaml) + + fix "ceph osd df" (regression in latest upstream master) (pr#15675, issue#20256) + * mon: move creating_pgs and reweight_by_utilization into new MonPGStatService + * mon: move most PGMapStatService into PGMap; rename PGMon's to PGMonStatService + * mon: mgr: move 'osd df' handling to manager + * mon: inherit PGMonStatService from the PGMapStatService + * move the OSDUtilizationDumper code into OSDMap + * mon: mgr: enable "osd df" on the manager + * qa: add a check_commands.sh script which looks for commands with no tests + * qa: test 'osd df' in cephtool/test.sh + +------------------------------------------------------------------- +Thu Jun 08 08:36:57 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1496909744.9f667dc335: + + build/ops: rpm: one License line to rule them all + +------------------------------------------------------------------- +Thu Jun 8 07:23:16 UTC 2017 - ncutler@suse.com + +- up memory _constraint for ceph-test to address ppc64le OOM seen in IBS + +------------------------------------------------------------------- +Thu Jun 08 06:31:53 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1496902753.b18dc53186: + + build/ops: rpm, COPYING: drop GPL 2.0 with Autoconf Exception + (autoconf no longer used) + +------------------------------------------------------------------- +Wed Jun 7 12:26:46 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1496754880.35cb2861ce: + + merge upstream master (b1d06a6b54) + +------------------------------------------------------------------- +Sat Jun 3 15:53:05 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1496494491.ba3c561a92: + + merge upstream master (97d6e150e5) + +------------------------------------------------------------------- +Thu Jun 1 08:51:20 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1496306960.2db336d85e: + + merge upstream master (b19352eec3), fixes bsc#1041492 + +------------------------------------------------------------------- +Tue May 30 13:15:47 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1496147556.f1d6115861: + + cmake: build boost::context and coroutine only with rgw Beast frontend + + build/ops: rpm: reverse s390 bcond conditional block + + build/ops: rpm: no rgw Beast frontend on s390x + + build/ops: deb: no rgw Beast frontend on s390x + + cmake: delete excidentail reintroduced line. + + cmake: link radosgw with boost libraries + (bsc#1040119) + +------------------------------------------------------------------- +Sat May 27 08:19:59 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1495849076.4457d36178: + + rgw: remove fastcgi from default rgw frontends + + RGW: Turn off fcgi as a frontend + + build/ops: drop libfcgi build dependency + + build/ops: rpm: apply epoch only if %epoch macro is defined + +------------------------------------------------------------------- +Fri May 26 11:39:01 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1495798013.23dd2b67dc: + + ceph.spec.in: re-drop %{epoch}: prefixes + +------------------------------------------------------------------- +Fri May 26 08:57:00 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1495787939.3f6446f64f: + + build/ops: rpm: adapt License line to Release 2.0 of SPDX spec + (issue#20091) + +------------------------------------------------------------------- +Fri May 26 04:35:06 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.3+git.1495675338.07282a4057: + + upstream 12.0.3 release + + osd/PG: Add two new mClock implementations of the PG sharded operator queue + (pr#14997, bsc#1040103) + + build/ops: rpm: make librbd1 %post scriptlet depend on coreutils (boo#1040230) + + build/ops: rpm: move RDMA build dependency to distro-conditional section + + build/ops: rpm: move python-prettytable to distro-conditional section + + cmake: added empty RPATH to libcls_sdk.so + + rpm: drop %{epoch} from new rados-objclass-devel subpackage + + cmake: fix boost components for WITH_SYSTEM_BOOST + + cmake: build boost::context only if rgw Beast frontend is in use + + build/ops: rpm: reverse s390 bcond conditional block + + build/ops: rpm: no rgw Beast frontend on s390x (bsc#1040119) + + ceph.spec.in, debian/control: build/runtime dependency for cherrypy + +------------------------------------------------------------------- +Wed May 10 09:00:11 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.2+git.1494343993.7527e4f0b8: + + ReplicatedPG: drop CACHE_PIN->WRITESAME req translation (bsc#1038063) + +------------------------------------------------------------------- +Tue May 9 09:17:19 UTC 2017 - ncutler@suse.com + +- _constraints: up ceph.spec disk constraint to 28G after seeing a + build failure in OBS + +------------------------------------------------------------------- +Fri Apr 28 01:22:07 UTC 2017 - ddiss@suse.com + +- Update to version 12.0.2+git.1493341348.9148e53: + + ceph osd: add support for new op cmpext + + ceph_test_rados_api_misc: add cmpext tests + + librados: add cmpext API + + ceph_test_rados_api_aio: add cmpext tests + + test/librados/c_operations: add cmpext tests + This patchset is a straight cherry-pick of the upstream OSD/librados cmpext + changes (bsc#1035937). + +------------------------------------------------------------------- +Thu Apr 27 11:39:24 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.2+git.1493291471.adb6a43: + + rocksdb: sync with upstream (bsc#1025891) + + build/ops: cmake: explicitly disable MSSE 4.2 if not supported + +------------------------------------------------------------------- +Thu Apr 27 08:23:46 UTC 2017 - ncutler@suse.com + +- _constraints: set higher disk and memory constraints so s390x + builds don't fail + +------------------------------------------------------------------- +Wed Apr 26 20:51:56 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.2+git.1493238434.71681fd: + + cmake: added empty RPATH to libceph_crypto_isal.so + +------------------------------------------------------------------- +Wed Apr 26 18:10:40 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.2+git.1493227670.3396ca1: + + rgw: use a vector for options passed to civetweb + +------------------------------------------------------------------- +Wed Apr 26 10:10:21 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.2+git.1493192333.3305a0c + + merge upstream master (0d368d2c8544247a4aed9c71c74e77b0c6bbfb22) + including 12.0.2 development release + +------------------------------------------------------------------- +Tue Apr 25 12:39:36 UTC 2017 - ddiss@suse.com + +- revert commit a9a50f690085091bb4446095418237f9fef712c8 in preparation for + rebasing against the upstream implementation. (bsc#1035937) + +------------------------------------------------------------------- +Fri Apr 7 12:10:55 UTC 2017 - ncutler@suse.com + +- Add ibs_constraints.sh script to address s390 constraints + tweak needed in IBS + +------------------------------------------------------------------- +Fri Apr 7 09:41:22 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.1+git.1491557762.4e47e9f + + merge upstream master (2950ad91d25d0d6e2e3fb6842d5bbc36353ba2a5) + including fixes for: + * bsc#1030068 (s390 build) + * bsc#1031311 (ceph-mon.service not enabled via systemd preset) + +------------------------------------------------------------------- +Tue Apr 4 13:42:40 UTC 2017 - ncutler@suse.com + +- Mention bugs fixed in jewel codestream that are also fixed in the current + codestream: + + msg/simple/Pipe: avoid returning 0 on poll timeout (bsc#1014338) + + build/ops: fix undefined crypto references with --with-xio (bsc#977940) + + ceph-create-keys: add missing argument comma (bsc#1008894) + + common: Improve linux dcache hash algorithm (bsc#1005179) + +------------------------------------------------------------------- +Tue Mar 14 12:09:01 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.0+git.1489432599.165c23f: + + merge upstream master (0c2f5f7214d2410a7519f88e65ed5273d6480227) + including fix for upstream issue#18694 "ceph-disk activate for partition + failing" + +------------------------------------------------------------------- +Fri Mar 10 15:55:53 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.0+git.1489159457.410e200: + + build/ops: fix Group strings for library packages + +------------------------------------------------------------------- +Fri Mar 3 15:32:06 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.0+git.1488553020.e902441: + + Recent upstream master (3c0af07629dc661aba84e2fef696339ac7171914) + + Builds with GCC7 (boo#1025891) + +------------------------------------------------------------------- +Wed Feb 08 21:28:28 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1486588482.ba197ae: + + Update to latest upstream master (3d740bd) + + cmake: added empty RPATH to several executables + + rocksdb: sync with upstream + +------------------------------------------------------------------- +Fri Jan 20 14:00:36 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484919552.9216e9a: + + Revert "rpm: put distro conditionals around Source0 in spec file" + + Revert "ceph.spec.in: revert Source0 line to upstream version" + +------------------------------------------------------------------- +Fri Jan 20 10:18:44 UTC 2017 - ncutler@suse.com + +- pre_checkin.sh: add logic to remove s390 architectures from ExclusiveArch + line in ceph-test.spec (rationale: ceph-test is not shipped for s390x) + +------------------------------------------------------------------- +Fri Jan 20 10:06:54 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484745543.7b08de5: + + Update to latest upstream master (36874c8) - significant changes: + * cmake: Turn libcommon into a shared library (PR#12840) + * cmake: fix rpath on shared libraries and executables (PR#12927) + + Fix build failure in ppc64le and s390x, caused by missing + "-momit-leaf-frame-pointer" gcc option in these architectures: + + rocksdb: build with ppc64 (PR#12908) + +------------------------------------------------------------------- +Tue Jan 17 14:14:45 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484659687.3472421: + + rpm: tell openSUSE to never clean the spec file + + Enable ppc64le and s390x builds in SLE + + rpm: lttng only on x86_64 and aarch64 + +------------------------------------------------------------------- +Thu Jan 05 10:43:34 UTC 2017 - jfajerski@suse.com + +- Update to version 11.1.0+git.1483528076.d86680e (latest master) + + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: + conflicts in qa/ where resolved with theirs + conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename + int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp + +------------------------------------------------------------------- +Tue Dec 13 21:21:41 UTC 2016 - ncutler@suse.com + +- Update to version 11.1.0+git.1481663255.bf42706: + + Update to upstream 11.1.0 release; for details see + http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + + move ceph_ver_hack.sh script from build service package to git repo + (bsc#1015419) + +------------------------------------------------------------------- +Tue Nov 29 20:39:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480437645.66595d3 + + Update to latest upstream master (boost library is now included in the + tarball, so the tarball is much larger than before and the build takes + longer to complete) + + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + + rocksdb: do not build with --march=native (bsc#1012553) + +------------------------------------------------------------------- +Fri Nov 25 20:42:45 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480105120.6b8e9e5: + + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it + conflicted with upstream + + update to latest upstream kraken (11.0.2) - for details, see + http://ceph.com/releases/kraken-11-0-2-released/ + +------------------------------------------------------------------- +Mon Sep 12 12:48:33 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473684054.73e4b4a: + + safe_io: Improve portability by replacing loff_t type usage with off_t. + + mon: remove the redundant list swap in paxos commit_proposal + + msg/EventPoll.h: add override to virtual functions + + msg/EventKqueue.h: add override to virtual func + + msg/EventSelect.h: add override to virtual funct + + ceph-disk: Compatibility fixes for Python 3 + + ceph-disk: Use true integer division in get_dev_size + + ceph-disk: Fix bug in FileLock + + ceph-disk: Allow ConfigObj to write in binary mode + + ceph-disk: Use context manager with FileLock + + ceph-disk: Use os.path.isabs instead of .startswith('/') + + ceph-disk: Set space_symlink to the path, not file object + + ceph-disk: PEP8ify + + rgw: rgw file fix bug of rgw_lookup can not exact match file name + + rgw: fix the wrong return value + + rgw/rgw_coroutine: move WaitContext to .cc file + + client: pass a mask parameter to path_walk + + mds/mdstypes: add btime to inode + + mds/Server: set btime=ctime on creation + + mds/MDCache: set btime on system inodes + + include/ceph_features: add FS_BTIME features + + mds: pass btime in InodeStat MClientReply, if feature is present + + client: keep btime in Inode and InodeStat + + ceph: break up ll_getattr into two functions + + client: move the device bitshift handling macros to Client.h + + libcephfs: add a ceph_ll_getattrx and ceph_statx + + libcephfs: add a test for "lazy" statx + + mds/client: add btime to CapSnap and MClientCaps + + mds/mdstypes: add change attribute to inode + + mds/Server: set change_attr to 0 on creation + + mds/MDCache: set change_attr to 0 on system_inodes + + include/ceph_features: add FS_CHANGE_ATTR feature + + mds: pass change_attr in InodeStat MClientReply, if feature is present + + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + + mds/client: bump the change_attr at the appropriate time for files + + libcephfs: return the change_attr in the statx.stx_version field + + tests: add a ChangeAttr test + + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + + mds: add change_attr to frag_info_t + + test: add test for change attribute of directories + + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + + MDS: allow the MDS to accept requests to set the btime + + client: add the ability to set the btime + + client: add a ceph_fstatx + + client: extend the Btime test to cover fstatx as well + + journal/JournalTrimmer: move C_RemoveSet struct + + rbd_mirror/ImageSynceThrottler: move struct to .cc + + libcephfs: add unmount function in cephfs.pyx + + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + + rgw/rgw_lc.cc: fix sleep time according to the error message + + crush: don't normalize input of crush_ln iteratively + + crush: remove clutter + + mds: remove max_mds config option + + vstart.sh: add option to turn on multimds + + rgw: right parenthesis is missing in radosgw-admin help message on caps + + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + + SQUASH: client: always take a change_attr update from the server if it's newer + + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + + rgw/rgw_rados.h: remove unneeded class C_Tick + + SQUASH: client: querying for stx_version field requires getting all shared caps + + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + + client: properly set inode number of created inode in replay request + + test/librbd/fsx: enable exclusive-lock feature in krbd mode + + os/bluestore/BlueFS: fix async compaction txn + + scripts/bdev_grep: parse bluefs style extents too + + SQUASH: client: request all shared caps if ctime was requested + + os/bluestore/BlueFS: factor unflushed log into runway calculation + + osd/ReplicatedBackend: move classes to cc file + + os/bluestore: honour allow-eio flag during read + + CmakeLists.txt: use LIB_RESOLV instead of resolv. + + osd/ReplicatedPG: move classes to .cc file + + librbd: potential double-unwatch of watch handle upon error + + cls/journal: add async client_update_state method + + journal: allow to trim journal for "laggy" clients + + librbd: optionally flag "laggy" journal clients disconnected + + rbd: new command to disconnect journal client + + rbd-mirror: decode_client_meta should return false on error + + rbd-mirror: resync was possible only when image replayer start had succeeded + + rbd-mirror: stop replay when client is disconnected + + rbd-mirror: option to automatically resync after journal client disconnect + + qa/workunits/cephtool/test.sh: fix omision of ceph-command + + os/bluestore: use global compressor if possible + + build/ops: fix /etc/os-release parsing in install-deps.sh + + osd/OSD.cc: remove repeated searching of map + + test/cephfs: add mount&&unmount test + + mds: s/used_ions/used_inos/ + + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + + ceph_test_objectstore: add SyntheticMatrixSharding + + ceph_test_objectstore: occasional umount/fsck/mount + + ceph_test_objectstore: test shards for longer + + crush/CrushCompiler.cc:884 bug fix: index out of range + + Makfile: Fix rocksdb error when make dist + + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + + src/pybind/CMakeLists.txt: conditionaly build cython tools + + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + + src/test/objectstore/CMakeLists.txt: conditionaly build tests + + mds: trim null dentries proactively + + cmake: include(SIMDExt) in src/CMakeLists.txt + + mds: log path with CDir damage messages + + hint in extent_alloc code + + remove wrap argument and handle in wrappers + + Hint argument in alloc_blocks + test case changes + + os/bluestore: shard extent map + + os/bluestore: make nid and blobid allocation less racy + + os/bluestore: optimize compress_extent_map + + os/bluestore: fix fsck used_block bitmap + + os/bluestore: use block_size for allocator unit + + os/bluestore: make blob_t unused helpers use logical length + + os/bluestore: instrument big/small writes + + os/bluestore: instrument transaction count + + os/bluestore: instrument onode reshard events + + os/bluestore: dump some stats after fsck + + os/bluestore: assert shared blob cache cleared on split + + remove autotools + + test/objectstore/CMakeLists.txt: fix libaio conditional + + buffer: clear append_buffer on clear() + + os/bluestore: tunable prealloc size for ExtentMap inline_bl + + os/bluestore: don't dirty onode if its size is already at desired offset + + os/bluestore: remove never reachable asserts + + os/bluestore: drop unnecessary separator between fields + + os/bluestore: fix key+name sort wonkiness + + os/bluestore: encode shard id in single byte + + os/bluestore: small put_ref cleanup + + os/bluestore: remove faulted debug hackery + + os/bluestore: bits for unit tests + + unittest_bluestore_types: resurrect blob and extent_map unit tests + + os/bluestore/BlueFS: do not start racing async compaction + + os/bluestore/BlueFS: fix Dir memory leak + + buffer: implement buffer::list::reserve(n) + + os/bluestore: do not waste memory on cached encoded blobs + + qa/workunits/objectstore: fix test_fuse.sh + + os/FuseStore: only flush if dirty + + build: drop dryrun of autogen.sh from run-cmake-check.sh script + + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + + os/bluestore: remove some copy-pastes + + cmake: make py3 a nice-to-have + + os/bluestore/BlueFS: only extend extent on same bdev + + msg/AsyncConnection: add const to mem functions + + msg/AsyncMessenger: add const to function + + client/barrier: move C_Block_Sync class to .cc + + osd/OSD.cc: remove unneeded searching of map + + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + + rpm: Renamed bcond tests flag to make_check + + rbd-nbd: fix kernel deadlock during teuthology testing + + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + + librbd: invalidate cache before trimming image + + librbd: ignore cache busy errors when shrinking an image + + librbd: potential seg fault when blacklisting an image client + + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + + deb: Moved ceph-client-debug from ceph-base to ceph-test package + + ceph-objectstore-tool: add a way to split filestore directories offline + + install-deps: exit non-zero when we cannot match distro + + librbd: possible deadlock if cluster connection closed after image + + osd/ReplicatedPG: remove class redeclaration + + librbd: ignore partial refresh error when acquiring exclusive lock + + osd/OSD.cc: remove unneeded returns + +------------------------------------------------------------------- +Fri Sep 09 12:53:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473424516.3b8b524: + + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + + rpm: put distro conditionals around Source0 in spec file + +------------------------------------------------------------------- +Fri Sep 09 10:59:53 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473418476.095f67c: + + ceph.spec.in: revert Source0 line to upstream version + + ceph.spec.in: conditionalize %prep command + +------------------------------------------------------------------- +Fri Sep 09 08:16:40 UTC 2016 - ncutler@suse.com + +- ceph.spec.in: enable cephfs_java build unconditionally +- new (merged) commits from upstream master branch: + + mailmap updates + + rgw: fix the handling of rgw_swift_url_prefix. + + rgw: ONLY improve code formatting around RGWRESTMgr. + + rgw: add support for the crossdomain.xml resource of Swift API. + + rgw: add support for the healthcheck feature of Swift API. + + swift /info implementation. + + rgw: settle /info implementation across other swift-at-root features. + + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + + mon: tear down standby replays on MDS rank stop + + mon/MDSMonitor: move C_Updated class to .cc file + + rgw_file: fix/update rgw_open flag arguments + + rgw_file: fix/update rgw_create flag arguments + + doc: remove btrfs contradiction + + msg: make async backend default + + msg/simple: wait dispatch_queue until all pipes closed + + rgw_file: implement stateless write completion timer + + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + + rgw_file: log on write completion events at level 10 + + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + + osdc/Journaler: move C_DelayFlush class to .cc + + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + + librgw: add API version defines for librgw and rgw_file + + make-dist/ceph.spec.in: Fix srpm build breakage. + + ceph_timer: prefer using directive to typedef + + rgw_file: explain semantics of RGWFileHandle::commit + + compressor: Better arch ifdefs for isal code + + mds/MDSTable: add const to member functions + + os/bluestore: fix some #includes + + vstart.sh: -b for bluestore + + os/bluestore/bluestore_types: make blob_t get_chunk_size const + + os/bluestore: use Blob const and non-const accessors + + os/bluestore: avoid reencoding unchanged blobs + + os/bluestore: decode blobs on demand + + mds/SnapRealm.h: add const to member functions + + os/bluestore/bluefs: avoid check "locked" field for newly created file + + os/bluestore/bluefs: check against locked field during unlink + + os/bluestore/bluefs: assert refs of file don't underflow + + os/kstore: kill dead code + + rgw: remove duplicated calls to getattr + + debian: should dh_python3 python3-* not python-* + + pybind: silence -Wsign-compare warning + + test/ceph_test_msgr: fix -Wsign-compare warnings + + test/unittest_alloc: fix -Wsign-compare warnings + + librbd: API methods to directly acquire and release the exclusive lock + + doc: add graphic for cap bit field + + mds/MDCache.h: remove unneeded access specifier + + librbd: skeleton implementation of client-side image cache + + librbd: blocking parent IO completion no longer required + + librbd: remove use of owner_lock on IO path + + Revert "osdc: ObjectCacher flusher might needs additional locks" + + librbd: support bufferlist payload for AioImageWrite + + librbd: add internal support for scatter/gather IO + + librbd: initial integration of ImageWriteback to AioImageRequest + + librbd: consolidate IO clipping to reusable method + + librbd: differentiate between image and object cache + + librbd: C_ImageCacheRead bridge from Context to AioCompletion + + librbd: integrate image cache hooks into IO path + + common/Throttle.h: remove unneeded class + + cmake: fix the tracing header dependencies + + src/test/bench/CMakeLists.txt: RBD exclude + + src/CMakeLists.txt: RBD|KVS|FUSE exclude + + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + + src/os/CMakeLists.txt: AIO|FUSE exclude + + src/test/CMakeLists.txt: RADOSGW|RBD exclude + + src/test/common/CMakeLists.txt: BLKID exclude + + install-deps.sh: initial distro detection based on /etc/os-release + + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + + ceph_test_objectstore: disable statfs checks on available space + + messages/MOSDMap: mark as enlighten OSDMap encoder + + cmake: remove unused librados_api target + + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + + cmake: let librados_api_obj depend on librados-tp + + os/bluestore: yet another statfs test fix + + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + + doc/release-notes: v0.94.9 + + os/bluestore/bluefs: use map to track dirty files + + os/bluestore/bluefs: update mtime of inode in unified path + + os/bluestore/bluefs: drop redundant eof check for read_random() + + os/CMakeLists.txt: undubble kv.cc usage. + + test,pybind: silence -Wsign-compare warnings + + test/perf_local: fix -Wmaybe-uninitialized warnings + + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + + Allow compressor build without YASM + + script/bdev_grep: update to use hex + + os/bluestore: improve failed csum debug output + + librbd: improve image state machine debug log messages + + librbd: deadlock when replaying journal during image open + + os/bluestore: end scope of std::hex properly + + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + + os/bluestore: use _setattr for SETATTR + + os/bluestore: make object existence check robust + + ceph_test_objectstore: assert umount succeeds + + ceph_test_objectstore: clean up Rename test a bit + + ceph_test_objectstore: fix TryMoveRename test + + os/bluestore: add onode/buffer cache statistics + + os/bluestore: end scope of std::hex properly + + cmake: pass -DINTEL* to gf-complete cflags + + os/bluestore: conditional checking label of bluefs devices + + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + + os/bluestore: don't overwrite type if it does already exist and at desired type + + os/bluestore: trivial cleanups + + os/bluestore: replace store with logger in Cache + + os/bluestore: check iterator before using during fsck + +------------------------------------------------------------------- +Mon Aug 29 07:24:44 UTC 2016 - ncutler@suse.com + +- pre_checkin.sh: add Source line for ceph-rpmlintrc +- move Source line for ceph-rpmlintrc from ceph.spec to ceph-test.spec + (see https://github.com/SUSE/ceph/pull/60 for rationale) + +------------------------------------------------------------------- +Mon Aug 29 07:20:00 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1472455009.a17726c: + + ceph.spec.in: drop ceph-rpmlintrc source line + + ceph.spec.in: drop epoch prefixes + +------------------------------------------------------------------- +Sun Aug 28 11:48:42 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1472384770.c9f3af8: + + test/rgw: add --gateways-per-zone to test_multi.py + + rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR + + rgw: RGWCoroutinesManager::run returns status of last cr + + os/bluestore: fix whitespace in bitset apply helper + + cmake: do not link secret.c if not necessary + + cmake: do not link against keyutils if not necessary + + os/bluestore: fsck on mkfs (on by default) + + os/bluestore: ensure block device size is a multiple of the block size + + Revert "ceph.spec.in: don't try to package __pycache__ for SUSE" + + rpm: force creation of Python 3 __pycache__ on SUSE + + doc: add v0.94.7 changelog + + doc: add v0.94.8 changelog + + doc/releases: add v0.94.8 to timeline + + doc/release-notes: fix v10.2.2 changelog link + + unittest_bluefs: fix block device sizes + + doc: do not list all major versions in get-packages.rst + + doc: add missing PR to hammer 0.94.8 release notes + + doc: release-notes.rst: move misplaced line + + doc: fix two broken links in releases.rst + + doc: add 11.0.0 to releases table + +------------------------------------------------------------------- +Sun Aug 28 10:55:04 UTC 2016 - ncutler@suse.com + +- pre_checkin.sh: forward-port insert_line_before() function from + filesystems:ceph:jewel/ceph version +- README-ceph-test.txt: new file +- ceph-test.spec: add ceph_ver_hack.sh as a source file + +------------------------------------------------------------------- +Fri Aug 26 09:06:41 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1472202104.8999301: + + rgw: add deadlock detection to RGWCoroutinesManager::run() + + src/common/lockdep.cc Reduce logging noise if lockdep is not tested + + osd: fix updating same_interval_since logic of project_pg_history() + + osd: drop duplicated sched_scrub during tick() + + osd: move methods which don't need osd_lock from tick into tick_without_osd_lock() + + mon/PGMonitor: mark dump_object_stat_sum() as static + + mon/PGMonitor: calc the %USED of pool using used/(used+avail) + + rpm: proper packaging of udev directories + + LTTng-UST disabled for openSUSE + + ceph-disk: do not activate device that is not ready + + osd: update reture type of get_pg_or_queue_for_pg() to PGRef + + common/WPQ: add sanity check to avoid potential access violation + + osd/osd_types: kill undefined_shard() method of pg_shard_t + + release-notes.rst: draft 0.94.8 release notes + + PG: introduce and maintain upset + + mon/MonClient: should update sub_sent with sub_new + + osd: set objecter.osdmap when starts + + rgw: fix for assertion in RGWMetaSyncCR + + PG: use upset rather than up for _update_calc_stats + + rgw: do not try to encode or decode time_t + + cls_rgw: fix the compiler warning + + msg/async: fix compiler warnings + + os/filestore: silence compiling warnings + + test/rbd: silence compiling warnings + + rgw: silence a compiling warning + + msg/async/kqueue: avoid remove nonexist kqueue event + + librbd: cache was not switching to writeback after first flush + + mon/OSDMonitor: fix potential division-by-zero error + + mon/OSDMonitor: get rid of snprintf when formatting output string + + mon/OSDMonitor: avoid duplicated calls when determining osdmap boundary + + osd/OSDMonitor: avoid duplicated assignment of oldest_map/newest_map + + osd/OSDMonitor: drop redundant check of exists() + + mon/PGMonitor: skip scrub checking if we can + + mon/PGMonitor: drop redundant loading of dumpcontents + + mon/PGMonitor: fix potential underflow + + debian: replace SysV rbdmap with systemd service + + os/bluestore: break down onode vs bnode_map size in log + + os/bluestore/BlueFS: do direct io by default (not buffered) + + os/bluestore/BlueFS: rename buffered_io option + + os/bluestore: add multiple finishers to bluestore + + os/bluestore: fix decoding hash of bnode + + cmake: fix unmatched endforeach + + debian: enable dh_python3 for python3 packages + + debian: exclude python3* packages in dh_shlibdeps + + debian: drop python-argparse dependency + + os/bluestore: fix race condition during get_fs_usage() + + os/bluestore: use bluefs_max_prefetch for log file prefetch + + os/bluestore: use hex if we are running out of space + + os/bluestore: fix assert + + osd: bail out if transaction size overflows + + os/filestore/FileJournal: bail out if transaction is too large + + os/FuseStore: remove unneeded header file + + os/Memstore.h: add override to virtual functions + + os/MemStore: move OmapIteratorImpl to cc file + + os/bluestore: include bluefs space in statfs result + + common/config_opts: fix comment(radio -> ratio) + + msg: kill unused macros + + mon/OSDMonitor: add output field name of average/overload_utilization + + test/librados: rados_connect() should succeed + + ceph-osd-prestart.sh: check existence of OSD data directory + + osd/ReplicatedPG:wipe off param op from generate_subop() + + ceph-post-file: migrate to RSA SSH keys + + ceph-post-file: Ignore keys offered by ssh-agent + + os/Memstore: move PageSetObject class to .cc file + + yasm-wrapper: dont echo the yasm command line + + arch/arm.c: remove unnecessary variable read for simplicity + + rpm: drop obsolete libs-compat metapackage + + ceph.spec.in: drop trouble-making divider comments + + rpm: do not unnecessarily spawn shells for scriptlets + + cls_lock: support updating the lock cookie without releasing the lock + + librbd: helper state machine to update lock cookie + + librbd: store exclusive lock cookie instead of recalculating + + librbd: exclusive lock now supports reacquiring a lost lock + + librbd: helper state machine for asynchronous watch recovery + + librbd: integrate asynchronous image rewatch state machine + + librbd: image state machine now has hooks for lock requests + + librbd: interlock image refresh and lock operations + + librbd: remove unused refresh request logic + + test/common/test_util.cc: FreeBSD does not have distro information + + README.md: replace package build instructions with tarball instructions + + doc: fix singleton example in Developer Guide + + rgw: delete region map after upgrade to zonegroup map + + rgw: fix period update --commit return error + + cmake: use PERF_LOCAL_FLAGS only if defined + + tests: populate /dev/disk/by-partuuid for scsi_debug + + ceph.spec.in: don't try to package __pycache__ for SUSE + + doc: fix wrong osdkeepalive name in mount.ceph manpage + + rados-striper.sh: Use expect_failure and conditional stringmatching + + Revert "ceph.spec.in: ppc64 build in Tumbleweed only" + + jerasure: include generic objects in neon jerasure lib (like sse3/4) + +------------------------------------------------------------------- +Fri Aug 26 08:59:09 UTC 2016 - rdias@suse.com + +- pre_checkin.sh: fix package files path rewriting + +------------------------------------------------------------------- +Tue Aug 23 18:18:38 UTC 2016 - ncutler@suse.com + +- _constraints: tweak values to pick up maximum number of OBS build workers + +------------------------------------------------------------------- +Tue Aug 23 16:36:21 UTC 2016 - rdias@suse.com + +- Update to version 11.0.0+git.1471969747.79ca12e: + + cmake: fix declaration position of WITH_TESTS option + +------------------------------------------------------------------- +Tue Aug 23 13:47:12 UTC 2016 - rdias@suse.com + +- Update to version 11.0.0+git.1471959548.f013b97: + + rpm: Renamed bcond tests flag to make_check + + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + +------------------------------------------------------------------- +Fri Aug 19 11:29:25 UTC 2016 - tserong@suse.com + +- Update to version 11.0.0+git.1471605408.9203335: + + ceph.spec.in: don't try to package __pycache__ + +------------------------------------------------------------------- +Fri Aug 19 10:27:52 UTC 2016 - tserong@suse.com + +- Update to version 11.0.0+git.1471601504.f312e7e: + + test/libcephfs: add the necessary judgment + + test/librados: add ASSERT_EQ & ASSERT_NE judgment + + rgw: optimize the usage of string.find and some indents + + rgw: patch manifest to handle explicit objs copy issue + + rgw: adjust objs when copying obj with explicit_objs set + + rgw: adjust manifest head object + + rgw: fix the error return variable in log message + + rgw: fix trimming object expirer's hints. + + rgw: fix skipping some objects to delete by RadosGW's object expirer. + + rgw: ONLY improve code formatting in rgw_object_expirer_core.{cc,h}. + + os/bluestore: allow csum verification disable on read. + + os/bluestore: add csum on/off test case + + os/bluestore: add store statfs parameters to bluestore perf counters + + os/bluestore: add perf counters for compress/decompress performance measurement + + tools: fix the core dump when get the crushmap do not exist + + librbd: request exclusive lock if current owner cannot execute op + + src/global/pidfile.cc: Assign elements in structures individually + + rgw: fixes for period puller + + rgw: for the create_bucket api, if the input creation_time is zero, we should set it to 'now" + + pybind: Rework rbd/setup.py for PyPI + + pybind: Add BUILD_DOC env var to rbd/setup.py + + doc: fix rbd map format in rbd manpage + + ceph-disk: change ownership of init file to ceph:ceph + + cmake: Also build Python bindings for Python 3 + + pybind: Make ceph_volume_client's syntax compatible with Python 3 (just so it passes the bytecompilation step) + + debian: Add packages for Python 3 bindings + + rpm: Add packages for Python 3 bindings + + os/bluestore/bluefs_types: fix extent operator<< + + os/bluestore/BlueFS: do not op_file_update deleted files + + os/bluestore: print bluefs_extents in hex + + os/bluestore: do not track bluefs_extents via freelist + + os/bluestore/BitMapAllocator: align to min_alloc_size on init_rm_free + + rgw/doc: fix typo and indent. + + mon/MonDBStore: fix assert which never fires + + osd/OSDMonitor: count pg primed more precisely + + doc: replace cluster name with cluster-name to avoid confusing + + doc: fix typo maximum -> minimal + + doc: fix command format + + batch is_allocated bit checks + + cmake: Move Python detection back outside of pybind + + doc: format 2 now is the default image format + + rgw: Rework of s3 v2 local authentication code. + + rbd: bench io-size should not be larger than image size + + doc/install: Use https:// for download.ceph.com + + librbd: fix possible inconsistent state when disabling mirroring + + os/bluestore/ExtentFreelistManager: move default create out of parent + + librbd: new journal policy to disable initializing the journal + + librbd: permit disabling journaling if in corrupt state + + qa/workunits: support filtering cls_rbd unit test cases + + os/bluestore/BlueFS: _should_compact_log + + os/bluestore/BlueFS: _replay(false) to dump log file + + mon/PGMonitor: move C_Stats struct to cc file + + client: don't use special faked-up inode for /.. + + client: add a testcase for "/.." handling + + os/bluestore/BlueFS: add OP_JUMP + + os/bluestore/BlueFS: allow log position to when doing op_jump + + os/bluestore/BlueFS: move metadata dump (compaction) into a helper + + os/bluestore/BlueFS: interface to get bluefs space usage + + os/bluestore/BlueFS: init in header at decl + + os/bluestore/BlueFS: assert we never extend log at flush + + os/bluestore/BlueFS: use hex + + os/bluestore/BlueFS: Add sync and async compaction + + os/bluestore/BlueFS: Helper functions for the unit test framework + + os/bluestore/BlueFS: unit tests for log compaction + + os/bluestore/BlueFS: Cleanup unused interfaces + + unittest_bluefs: make flush_3 test device larger + + bluestore: initialize csum_order properly + + librbd: fix possible memory leak when image open fails + + script: improve ceph-release-notes regex + + rbdmap: specify bash shell interpreter + + doc: added rbdmap man page to RBD restructured index + + librbd: always respond to "release lock" request if lock owner + + rgw: fix radosgw daemon core when reopen logs + + qa/workunits/rbd: demote/promote image on same cluster + + rbd-mirror: include tag tid in bootstrap debug log messages + + librbd: separate journal::TagData predecessor data into new struct + + librbd: block RPC requests when demoting the image + + librbd: normalize journal promotion/demotion events + + rbd-mirror: demote/promote in same cluster results in split-brain + + rbd-mirror: prevent syncing to non-primary image after failover + + test: fixed unused function warnings in unittest_rbd_mirror + + doc: remove the description of deleted options + + msg/async/Stack: add abstract Stack + + msg/async: add PosixStack support + + msg/async/net_handler: let set_socket_options return value + + msg/async/AsyncConnection: support NetworkStack api instead of posix + + msg/async/Event: debug event address when dispatching and executing + + msg/async/Event: remove event wakeup flag + + msg/async/PosixStack: increase log level + + msg/async/Stack: disable smart thread spawn now + + common/ceph_context: add prefork/postfork wathcher support + + msg/async/Stack: register fork watcher + + msg/async: allow EventCenter::set_owner reentry + + msg/async: readd set_priority call + + msg/async/AsyncConnection: fix _conn_prefix racing when stopped + + test_async_networkstack: add networkstack tests + + msg/async/Event: remove global_centers assert + + test_msgr: ensure wait for ms_dispatch executed + + mon/OSDMonitor: add sanity check before setting use_gmt_hitset attribute + + osd/OSDMonitor: drop redundant null check of max_failed_since + + osd/OSDMonitor: drop redundant check of assert + + mon/LogMonitor: remove "host" and "fsid" from handle_conf_change() + + test: gcc 6.1.1 complains about missing include: . 4.8.3 does not complain about it + + rgw: fix flush_read_list() error msg + + cmake: Fix mismatched librgw VERSION / SOVERSION + + cmake: Add -pie to CMAKE_EXE_LINKER_FLAGS + + rgw_file: restore local definition of RGWLibFS gc interval + + kv: delete store after pg destructor is called in OSD shutdown. + + kv: fix iterator invalidation in memdb. + + kv: fill 'm_key_value' after 'seek_to_first' or 'seek_to_last' + + kv: fix iterator bug in prev + + test/store_test: fix incorrect prompt given by stash callback + + test/store_test: drop redundant transaction of callbacks + + test/store_test: avoid dynamic allocation of trans + + cmake: recompile erasure src for different variants + + rgw ldap: protect rgw::from_base64 from non-base64 input + + qa/workunits/rados/test_python.sh: Allow specifying Python executable (through an environment variable) + + ceph.spec.in: specify local sources + + ceph.spec.in: ppc64 build in Tumbleweed only + + ceph.spec.in: add lowmem_builder_override + + ceph.spec.in: add Prereq: permissions to radosgw package + + ceph.spec.in: remove vim hints line + + ceph.spec.in: remove all mentions of epoch + + ceph_disk.main: s/get_dev_size/get_free_partition_size/ + + ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/ + + ceph_disk tests/test_get_free_partition_size: New unit tests + + ceph_disk tox.ini: add tests/test_get_free_partition_size.py + + ceph.spec.in: replace pwdutils dependency with shadow + + Make systemd-tmpfiles create /var/run/ceph-radosgw at boot + + rpm: fix ownership of logfiles in %pre + + Revert "rbd: update default image features" + + osd: munge cache-pin ops with data into writesame + + ceph osd: add support for new op cmpext + + rpm: make lowmem_builder code much smarter + + rpm: add procps build dependency + + rpm: modify optflags to make debuginfos less huge + + Revert "ceph.spec.in: add lowmem_builder_override" + + rpm: lean_debug_symbols bcond + + rpm: use gcc manpage terminology for debug info bcond + + Revert "Drop any systemd imposed process/thread limits" + + Revert "systemd: Add systemd sandboxing to services." + + rpm: be careful about build parallelism + + rpm: divergent java, ocf conditional builds + + rpm: fix _with_ocf + + rpm: drop obsolete libs-compat metapackage + + rpm: drop obsolete python-ceph-compat metapackage + + ceph.spec.in: drop ceph-brag and ceph-post-file + + ceph.spec.in: move cephfs-* fsck tools to ceph-base + + ceph.spec.in: move ceph-dencoder to ceph-base + + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + + rpm: add udev BuildRequires to provide /usr/lib/udev directory + + rpm: Remove trailing whitespace in usermod command (SUSE) + +------------------------------------------------------------------- +Fri Aug 12 10:37:15 UTC 2016 - tserong@suse.com + +- Update to version 11.0.0+git.1470997027.9c9b8a5: + + doc/radosgw: remove reference of purge-temp.rst + + doc/radosgw: fix the table formatting + + doc: silence sphinx warnings + + global/signal_handler: use sig_str instead of sys_siglist + + librados: use bufferlist instead of buffer::list + + cmake: cleanup Findgperftools.cmake + + cmake: cleanup Findleveldb.cmake + + cmake: cleanup Findxio.cmake + + rgw file: remove busy-wait in RGWLibFS::gc() + + Lowered third example to keep PG count lower. + + run-make-check.sh: pass args to do_cmake.sh + + ceph.spec.in: specify local sources + +------------------------------------------------------------------- +Fri Aug 05 08:27:31 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1470355272.6fed82a: + + initial fork of SES5 diff --git a/ceph.spec b/ceph.spec new file mode 100644 index 0000000..7e9c356 --- /dev/null +++ b/ceph.spec @@ -0,0 +1,2502 @@ +#!BuildConstraint: hardware:memory:size unit=G 8 +#!BuildConstraint: hardware:disk:size unit=G 50 +# +# spec file for package ceph +# +# Copyright (C) 2004-2019 The Ceph Project Developers. See COPYING file +# at the top-level directory of this distribution and at +# https://github.com/ceph/ceph/blob/master/COPYING +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. +# +# This file is under the GNU Lesser General Public License, version 2.1 +# +# Please submit bugfixes or comments via http://tracker.ceph.com/ +# + +################################################################################# +# conditional build section +# +# please read http://rpm.org/user_doc/conditional_builds.html for explanation of +# bcond syntax! +################################################################################# +%bcond_with make_check +%bcond_with zbd +%bcond_with cmake_verbose_logging +%bcond_with ceph_test_package +%bcond_with minimal_debugging_information +%ifarch s390 +%bcond_with tcmalloc +%else +%bcond_without tcmalloc +%endif +%if 0%{?rhel} >= 9 +%bcond_without system_pmdk +%else +%bcond_with system_pmdk +%endif +%if 0%{?fedora} || 0%{?rhel} +%bcond_without selinux +%ifarch x86_64 ppc64le +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache +%else +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache +%endif +%if 0%{?rhel} >= 8 +%bcond_with cephfs_java +%else +%bcond_without cephfs_java +%endif +%bcond_without amqp_endpoint +%bcond_without kafka_endpoint +%bcond_without lttng +%bcond_without libradosstriper +%bcond_without ocf +%global luarocks_package_name luarocks +%bcond_without lua_packages +%global _remote_tarball_prefix https://download.ceph.com/tarballs/ +%endif +%if 0%{?suse_version} +%bcond_with amqp_endpoint +%bcond_with cephfs_java +%bcond_with kafka_endpoint +%bcond_with libradosstriper +%ifarch x86_64 aarch64 ppc64le +%bcond_without lttng +%bcond_without rbd_rwl_cache +%bcond_without rbd_ssd_cache +%else +%bcond_with lttng +%bcond_with rbd_rwl_cache +%bcond_with rbd_ssd_cache +%endif +%bcond_with ocf +%bcond_with selinux +#Compat macro for _fillupdir macro introduced in Nov 2017 +%if ! %{defined _fillupdir} +%global _fillupdir /var/adm/fillup-templates +%endif +#luarocks +%if 0%{?is_opensuse} +# openSUSE +%bcond_without lua_packages +%if 0%{?sle_version} +# openSUSE Leap +%global luarocks_package_name lua53-luarocks +%else +# openSUSE Tumbleweed +%global luarocks_package_name lua54-luarocks +%endif +%else +# SLE +%bcond_with lua_packages +%endif +%endif +%bcond_with seastar +%bcond_with jaeger +%if 0%{?fedora} || 0%{?suse_version} >= 1500 +# distros that ship cmd2 and/or colorama +%bcond_without cephfs_shell +%else +# distros that do _not_ ship cmd2/colorama +%bcond_with cephfs_shell +%endif +%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8 +%global weak_deps 1 +%endif +%if %{with selinux} +# get selinux policy version +# Force 0.0.0 policy version for centos builds to avoid repository sync issues between rhel and centos +%if 0%{?centos} +%global _selinux_policy_version 0.0.0 +%else +%{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0} +%endif +%endif + +%{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} +%{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} +%{!?python3_pkgversion: %global python3_pkgversion 3} +%{!?python3_version_nodots: %global python3_version_nodots 3} +%{!?python3_version: %global python3_version 3} + +# disable dwz which compresses the debuginfo +%global _find_debuginfo_dwz_opts %{nil} + +%if 0%{with seastar} +# disable -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1, as gcc-toolset-{9,10}-annobin +# do not provide gcc-annobin.so anymore, despite that they provide annobin.so. but +# redhat-rpm-config still passes -fplugin=gcc-annobin to the compiler. +%undefine _annotated_build +%endif + +################################################################################# +# main package definition +################################################################################# +Name: ceph +Version: 16.2.14.66+g7aa6ce9419f +Release: 0%{?dist} +%if 0%{?fedora} || 0%{?rhel} +Epoch: 2 +%endif + +# define _epoch_prefix macro which will expand to the empty string if epoch is +# undefined +%global _epoch_prefix %{?epoch:%{epoch}:} + +Summary: User space components of the Ceph file system +License: LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT +%if 0%{?suse_version} +Group: System/Filesystems +%endif +URL: http://ceph.com/ +Source0: %{?_remote_tarball_prefix}ceph-16.2.14-66-g7aa6ce9419f.tar.bz2 +# PATCH-FIX-UPSTREAM ceph-cmake-3.28.patch -- Fix build with cmake 3.28 but without git +Patch0: ceph-cmake-3.28.patch +%if 0%{?suse_version} +# _insert_obs_source_lines_here +ExclusiveArch: x86_64 aarch64 ppc64le s390x riscv64 +%endif +################################################################################# +# dependencies that apply across all distro families +################################################################################# +Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-mds = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release} +Requires(post): binutils +%if 0%{with cephfs_java} +BuildRequires: java-devel +BuildRequires: sharutils +%endif +%if 0%{with selinux} +BuildRequires: checkpolicy +BuildRequires: selinux-policy-devel +%endif +BuildRequires: gperf +BuildRequires: cmake > 3.5 +BuildRequires: cryptsetup +BuildRequires: fuse-devel +%if 0%{with seastar} +BuildRequires: gcc-toolset-9-gcc-c++ >= 9.2.1-2.3 +%else +BuildRequires: gcc-c++ +%endif +%if 0%{with tcmalloc} +# libprofiler did not build on ppc64le until 2.7.90 +%if 0%{?fedora} || 0%{?rhel} >= 8 +BuildRequires: gperftools-devel >= 2.7.90 +%endif +%if 0%{?rhel} && 0%{?rhel} < 8 +BuildRequires: gperftools-devel >= 2.6.1 +%endif +%if 0%{?suse_version} +BuildRequires: gperftools-devel >= 2.4 +%endif +%endif +BuildRequires: leveldb-devel > 1.2 +BuildRequires: libaio-devel +BuildRequires: libblkid-devel >= 2.17 +BuildRequires: cryptsetup-devel +BuildRequires: libcurl-devel +BuildRequires: libcap-ng-devel +BuildRequires: ((fmt-devel >= 5.2.1 with fmt-devel < 10) or fmt-9-devel) +BuildRequires: pkgconfig(libudev) +BuildRequires: libnl3-devel +BuildRequires: liboath-devel +BuildRequires: libtool +BuildRequires: libxml2-devel +BuildRequires: make +BuildRequires: ncurses-devel +BuildRequires: libicu-devel +BuildRequires: parted +BuildRequires: patch +BuildRequires: perl +BuildRequires: pkgconfig +BuildRequires: procps +BuildRequires: python%{python3_pkgversion} +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: snappy-devel +BuildRequires: sqlite-devel +BuildRequires: sudo +BuildRequires: pkgconfig(udev) +BuildRequires: util-linux +BuildRequires: valgrind-devel +BuildRequires: which +BuildRequires: xfsprogs +BuildRequires: xfsprogs-devel +BuildRequires: xmlstarlet +BuildRequires: nasm +BuildRequires: lua-devel +%if 0%{with amqp_endpoint} +BuildRequires: librabbitmq-devel +%endif +%if 0%{with kafka_endpoint} +BuildRequires: librdkafka-devel +%endif +%if 0%{with lua_packages} +BuildRequires: %{luarocks_package_name} +%endif +%if 0%{with make_check} +BuildRequires: jq +BuildRequires: libuuid-devel +BuildRequires: python%{python3_pkgversion}-bcrypt +BuildRequires: python%{python3_pkgversion}-pecan +BuildRequires: python%{python3_pkgversion}-requests +BuildRequires: python%{python3_pkgversion}-dateutil +BuildRequires: python%{python3_pkgversion}-coverage +BuildRequires: python%{python3_pkgversion}-pyOpenSSL +BuildRequires: socat +%endif +%if 0%{with zbd} +BuildRequires: libzbd-devel +%endif +%if 0%{with jaeger} +BuildRequires: bison +BuildRequires: flex +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: json-devel +%endif +%if 0%{?suse_version} +BuildRequires: nlohmann_json-devel +%endif +BuildRequires: libevent-devel +BuildRequires: yaml-cpp-devel +%endif +%if 0%{with system_pmdk} +BuildRequires: libpmem-devel +BuildRequires: libpmemobj-devel +%endif +%if 0%{with seastar} +BuildRequires: c-ares-devel +BuildRequires: gnutls-devel +BuildRequires: hwloc-devel +BuildRequires: libpciaccess-devel +BuildRequires: lksctp-tools-devel +BuildRequires: protobuf-devel +BuildRequires: ragel +BuildRequires: systemtap-sdt-devel +BuildRequires: yaml-cpp-devel +%if 0%{?fedora} +BuildRequires: libubsan +BuildRequires: libasan +%endif +%if 0%{?rhel} +BuildRequires: gcc-toolset-9-annobin +BuildRequires: gcc-toolset-9-libubsan-devel +BuildRequires: gcc-toolset-9-libasan-devel +BuildRequires: gcc-toolset-9-libatomic-devel +%endif +%endif +################################################################################# +# distro-conditional dependencies +################################################################################# +%if 0%{?suse_version} +BuildRequires: pkgconfig(systemd) +BuildRequires: systemd-rpm-macros +%{?systemd_requires} +PreReq: %fillup_prereq +BuildRequires: fdupes +BuildRequires: net-tools +BuildRequires: libbz2-devel +BuildRequires: mozilla-nss-devel +BuildRequires: keyutils-devel +BuildRequires: libopenssl-devel +BuildRequires: openldap2-devel +#BuildRequires: krb5 +#BuildRequires: krb5-devel +BuildRequires: cunit-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: (python%{python3_pkgversion}-Cython >= 0.29 with python%{python3_pkgversion}-Cython < 3) +BuildRequires: python%{python3_pkgversion}-PrettyTable +BuildRequires: python%{python3_pkgversion}-Sphinx +BuildRequires: rdma-core-devel +BuildRequires: liblz4-devel >= 1.7 +# for prometheus-alerts +BuildRequires: golang-github-prometheus-prometheus +%endif +%if 0%{?fedora} || 0%{?rhel} +Requires: systemd +BuildRequires: boost-random +BuildRequires: nss-devel +BuildRequires: keyutils-libs-devel +BuildRequires: libatomic +BuildRequires: libibverbs-devel +BuildRequires: librdmacm-devel +BuildRequires: openldap-devel +#BuildRequires: krb5-devel +BuildRequires: openssl-devel +BuildRequires: CUnit-devel +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-Cython +BuildRequires: python%{python3_pkgversion}-prettytable +BuildRequires: python%{python3_pkgversion}-sphinx +BuildRequires: lz4-devel >= 1.7 +%endif +# distro-conditional make check dependencies +%if 0%{with make_check} +BuildRequires: golang +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: golang-github-prometheus +BuildRequires: libtool-ltdl-devel +BuildRequires: xmlsec1 +BuildRequires: xmlsec1-devel +%ifarch x86_64 +BuildRequires: xmlsec1-nss +%endif +BuildRequires: xmlsec1-openssl +BuildRequires: xmlsec1-openssl-devel +BuildRequires: python%{python3_pkgversion}-cherrypy +BuildRequires: python%{python3_pkgversion}-jwt +BuildRequires: python%{python3_pkgversion}-routes +BuildRequires: python%{python3_pkgversion}-scipy +BuildRequires: python%{python3_pkgversion}-werkzeug +BuildRequires: python%{python3_pkgversion}-pyOpenSSL +%endif +%if 0%{?suse_version} +BuildRequires: golang-github-prometheus-prometheus +BuildRequires: libxmlsec1-1 +BuildRequires: libxmlsec1-nss1 +BuildRequires: libxmlsec1-openssl1 +BuildRequires: python%{python3_pkgversion}-CherryPy +BuildRequires: python%{python3_pkgversion}-PyJWT +BuildRequires: python%{python3_pkgversion}-Routes +BuildRequires: python%{python3_pkgversion}-Werkzeug +BuildRequires: python%{python3_pkgversion}-numpy-devel +BuildRequires: xmlsec1-devel +BuildRequires: xmlsec1-openssl-devel +%endif +%endif +# lttng and babeltrace for rbd-replay-prep +%if %{with lttng} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: lttng-ust-devel +BuildRequires: libbabeltrace-devel +%endif +%if 0%{?suse_version} +BuildRequires: lttng-ust-devel +BuildRequires: babeltrace-devel +%endif +%endif +%if 0%{?suse_version} +BuildRequires: libexpat-devel +%endif +%if 0%{?rhel} || 0%{?fedora} +BuildRequires: expat-devel +%endif +#hardened-cc1 +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: redhat-rpm-config +%endif +%if 0%{with seastar} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: cryptopp-devel +BuildRequires: numactl-devel +BuildRequires: protobuf-compiler +%endif +%if 0%{?suse_version} +BuildRequires: libcryptopp-devel +BuildRequires: libnuma-devel +%endif +%endif +%if 0%{?rhel} >= 8 +BuildRequires: /usr/bin/pathfix.py +%endif + +%description +Ceph is a massively scalable, open-source, distributed storage system that runs +on commodity hardware and delivers object, block and file system storage. + + +################################################################################# +# subpackages +################################################################################# +%package base +Summary: Ceph Base Package +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Provides: ceph-test:/usr/bin/ceph-kvstore-tool +Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} +%if 0%{with selinux} +Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} +%endif +Requires: cryptsetup +Requires: e2fsprogs +Requires: findutils +Requires: grep +Requires: logrotate +Requires: parted +Requires: psmisc +Requires: python%{python3_pkgversion}-setuptools +Requires: util-linux +Requires: xfsprogs +Requires: which +%if 0%{?rhel} && 0%{?rhel} < 8 +# The following is necessary due to tracker 36508 and can be removed once the +# associated upstream bugs are resolved. +%if 0%{with tcmalloc} +Requires: gperftools-libs >= 2.6.1 +%endif +%endif +%if 0%{?weak_deps} +Recommends: chrony +Recommends: nvme-cli +%if 0%{?suse_version} +Requires: smartmontools +%else +Recommends: smartmontools +%endif +%endif +%description base +Base is the package that includes all the files shared amongst ceph servers + +%package -n cephadm +Summary: Utility to bootstrap Ceph clusters +BuildArch: noarch +Requires: lvm2 +Requires: python%{python3_pkgversion} +%if 0%{?weak_deps} +Recommends: podman >= 2.0.2 +%endif +%description -n cephadm +Utility to bootstrap a Ceph cluster and manage Ceph daemons deployed +with systemd and podman. + +%package -n ceph-common +Summary: Ceph Common +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rbd = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-cephfs = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rgw = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release} +%if 0%{with jaeger} +Requires: libjaeger = %{_epoch_prefix}%{version}-%{release} +%endif +%if 0%{?fedora} || 0%{?rhel} +Requires: python%{python3_pkgversion}-prettytable +%endif +%if 0%{?suse_version} +Requires: python%{python3_pkgversion}-PrettyTable +%endif +%if 0%{with libradosstriper} +Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} +%else +Obsoletes: libradosstriper1 <= %{_epoch_prefix}%{version}-%{release} +%endif +%{?systemd_requires} +%if 0%{?suse_version} +PreReq: permissions +Requires(pre): shadow +%endif +%description -n ceph-common +Common utilities to mount and interact with a ceph storage cluster. +Comprised of files that are common to Ceph clients and servers. + +%package mds +Summary: Ceph Metadata Server Daemon +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +%description mds +ceph-mds is the metadata server daemon for the Ceph distributed file system. +One or more instances of ceph-mds collectively manage the file system +namespace, coordinating access to the shared OSD cluster. + +%package mon +Summary: Ceph Monitor Daemon +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Provides: ceph-test:/usr/bin/ceph-monstore-tool +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +%if 0%{with jaeger} +Requires: libjaeger = %{_epoch_prefix}%{version}-%{release} +%endif +%description mon +ceph-mon is the cluster monitor daemon for the Ceph distributed file +system. One or more instances of ceph-mon form a Paxos part-time +parliament cluster that provides extremely reliable and durable storage +of cluster membership, configuration, and state. + +%package mgr +Summary: Ceph Manager Daemon +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release} +Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release} +%if 0%{?weak_deps} +Recommends: ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release} +Recommends: ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release} +Recommends: ceph-mgr-k8sevents = %{_epoch_prefix}%{version}-%{release} +Recommends: ceph-mgr-cephadm = %{_epoch_prefix}%{version}-%{release} +Recommends: python%{python3_pkgversion}-influxdb +%endif +%description mgr +ceph-mgr enables python modules that provide services (such as the REST +module derived from Calamari) and expose CLI hooks. ceph-mgr gathers +the cluster maps, the daemon metadata, and performance counters, and +exposes all these to the python modules. + +%package mgr-dashboard +Summary: Ceph Dashboard +BuildArch: noarch +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-setuptools +%if 0%{?fedora} || 0%{?rhel} +Requires: python%{python3_pkgversion}-cherrypy +Requires: python%{python3_pkgversion}-jwt +Requires: python%{python3_pkgversion}-routes +Requires: python%{python3_pkgversion}-werkzeug +%if 0%{?weak_deps} +Recommends: python%{python3_pkgversion}-saml +%endif +%endif +%if 0%{?suse_version} +Requires: python%{python3_pkgversion}-CherryPy +Requires: python%{python3_pkgversion}-PyJWT +Requires: python%{python3_pkgversion}-Routes +Requires: python%{python3_pkgversion}-Werkzeug +Recommends: python%{python3_pkgversion}-python3-saml +%endif +%description mgr-dashboard +ceph-mgr-dashboard is a manager module, providing a web-based application +to monitor and manage many aspects of a Ceph cluster and related components. +See the Dashboard documentation at http://docs.ceph.com/ for details and a +detailed feature overview. + +%package mgr-diskprediction-local +Summary: Ceph Manager module for predicting disk failures +BuildArch: noarch +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-numpy +%if 0%{?fedora} || 0%{?suse_version} +Requires: python%{python3_pkgversion}-scikit-learn +%endif +Requires: python3-scipy +%description mgr-diskprediction-local +ceph-mgr-diskprediction-local is a ceph-mgr module that tries to predict +disk failures using local algorithms and machine-learning databases. + +%package mgr-modules-core +Summary: Ceph Manager modules which are always enabled +BuildArch: noarch +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: python%{python3_pkgversion}-bcrypt +Requires: python%{python3_pkgversion}-pecan +Requires: python%{python3_pkgversion}-pyOpenSSL +Requires: python%{python3_pkgversion}-requests +Requires: python%{python3_pkgversion}-dateutil +Requires: python%{python3_pkgversion}-setuptools +%if 0%{?fedora} || 0%{?rhel} >= 8 +Requires: python%{python3_pkgversion}-cherrypy +Requires: python%{python3_pkgversion}-pyyaml +Requires: python%{python3_pkgversion}-werkzeug +%endif +%if 0%{?suse_version} +Requires: python%{python3_pkgversion}-CherryPy +Requires: python%{python3_pkgversion}-PyYAML +Requires: python%{python3_pkgversion}-Werkzeug +%endif +%if 0%{?weak_deps} +Recommends: ceph-mgr-rook = %{_epoch_prefix}%{version}-%{release} +%endif +%description mgr-modules-core +ceph-mgr-modules-core provides a set of modules which are always +enabled by ceph-mgr. + +%package mgr-rook +BuildArch: noarch +Summary: Ceph Manager module for Rook-based orchestration +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-kubernetes +Requires: python%{python3_pkgversion}-jsonpatch +%description mgr-rook +ceph-mgr-rook is a ceph-mgr module for orchestration functions using +a Rook backend. + +%package mgr-k8sevents +BuildArch: noarch +Summary: Ceph Manager module to orchestrate ceph-events to kubernetes' events API +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-kubernetes +%description mgr-k8sevents +ceph-mgr-k8sevents is a ceph-mgr module that sends every ceph-events +to kubernetes' events API + +%package mgr-cephadm +Summary: Ceph Manager module for cephadm-based orchestration +BuildArch: noarch +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-remoto +Requires: cephadm = %{_epoch_prefix}%{version}-%{release} +%if 0%{?suse_version} +Requires: openssh +Requires: python%{python3_pkgversion}-Jinja2 +%endif +%if 0%{?rhel} || 0%{?fedora} +Requires: openssh-clients +Requires: python%{python3_pkgversion}-jinja2 +%endif +%description mgr-cephadm +ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using +the integrated cephadm deployment tool management operations. + +%package fuse +Summary: Ceph fuse-based client +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: fuse +Requires: python%{python3_pkgversion} +%description fuse +FUSE based client for Ceph distributed network file system + +%package -n cephfs-mirror +Summary: Ceph daemon for mirroring CephFS snapshots +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +%description -n cephfs-mirror +Daemon for mirroring CephFS snapshots between Ceph clusters. + +%package -n rbd-fuse +Summary: Ceph fuse-based client +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +%description -n rbd-fuse +FUSE based client to map Ceph rbd images to files + +%package -n rbd-mirror +Summary: Ceph daemon for mirroring RBD images +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +%description -n rbd-mirror +Daemon for mirroring RBD images between Ceph clusters, streaming +changes asynchronously. + +%package immutable-object-cache +Summary: Ceph daemon for immutable object cache +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +%description immutable-object-cache +Daemon for immutable object cache. + +%package -n rbd-nbd +Summary: Ceph RBD client base on NBD +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +%description -n rbd-nbd +NBD based client to map Ceph rbd images to local device + +%package radosgw +Summary: Rados REST gateway +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +%if 0%{with selinux} +Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} +%if 0%{?rhel} || 0%{?fedora} +Requires: mailcap +%endif +%if 0%{?weak_deps} +Recommends: gawk +%endif +%description radosgw +RADOS is a distributed object store used by the Ceph distributed +storage system. This package provides a REST gateway to the +object store that aims to implement a superset of Amazon's S3 +service as well as the OpenStack Object Storage ("Swift") API. + +%package -n cephfs-top +Summary: top(1) like utility for Ceph Filesystem +BuildArch: noarch +Requires: python%{python3_pkgversion}-rados +%description -n cephfs-top +This package provides a top(1) like utility to display Ceph Filesystem metrics +in realtime. + +%if %{with ocf} +%package resource-agents +Summary: OCF-compliant resource agents for Ceph daemons +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version} +Requires: resource-agents +%description resource-agents +Resource agents for monitoring and managing Ceph daemons +under Open Cluster Framework (OCF) compliant resource +managers such as Pacemaker. +%endif + +%package osd +Summary: Ceph Object Storage Daemon +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Provides: ceph-test:/usr/bin/ceph-osdomap-tool +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires: lvm2 +Requires: sudo +Requires: libstoragemgmt +Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release} +%description osd +ceph-osd is the object storage daemon for the Ceph distributed file +system. It is responsible for storing objects on a local file system +and providing access to them over the network. + +%if 0%{with seastar} +%package crimson-osd +Summary: Ceph Object Storage Daemon (crimson) +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} +%description crimson-osd +crimson-osd is the object storage daemon for the Ceph distributed file +system. It is responsible for storing objects on a local file system +and providing access to them over the network. +%endif + +%package -n librados2 +Summary: RADOS distributed object store client library +%if 0%{?suse_version} +Group: System/Libraries +%endif +%if 0%{?rhel} || 0%{?fedora} +Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} +%endif +%description -n librados2 +RADOS is a reliable, autonomic distributed object storage cluster +developed as part of the Ceph distributed storage system. This is a +shared library allowing applications to access the distributed object +store using a simple file-like interface. + +%package -n librados-devel +Summary: RADOS headers +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: librados2-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: librados2-devel < %{_epoch_prefix}%{version}-%{release} +%description -n librados-devel +This package contains C libraries and headers needed to develop programs +that use RADOS object store. + +%package -n libradospp-devel +Summary: RADOS headers +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +%description -n libradospp-devel +This package contains C++ libraries and headers needed to develop programs +that use RADOS object store. + +%package -n librgw2 +Summary: RADOS gateway client library +%if 0%{?suse_version} +Group: System/Libraries +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +%description -n librgw2 +This package provides a library implementation of the RADOS gateway +(distributed object store with S3 and Swift personalities). + +%package -n librgw-devel +Summary: RADOS gateway client library +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} +Provides: librgw2-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release} +%description -n librgw-devel +This package contains libraries and headers needed to develop programs +that use RADOS gateway client library. + +%package -n python%{python3_pkgversion}-rgw +Summary: Python 3 libraries for the RADOS gateway +%if 0%{?suse_version} +Group: Development/Libraries/Python +%endif +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-rgw} +Provides: python-rgw = %{_epoch_prefix}%{version}-%{release} +Obsoletes: python-rgw < %{_epoch_prefix}%{version}-%{release} +%description -n python%{python3_pkgversion}-rgw +This package contains Python 3 libraries for interacting with Ceph RADOS +gateway. + +%package -n python%{python3_pkgversion}-rados +Summary: Python 3 libraries for the RADOS object store +%if 0%{?suse_version} +Group: Development/Libraries/Python +%endif +Requires: python%{python3_pkgversion} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-rados} +Provides: python-rados = %{_epoch_prefix}%{version}-%{release} +Obsoletes: python-rados < %{_epoch_prefix}%{version}-%{release} +%description -n python%{python3_pkgversion}-rados +This package contains Python 3 libraries for interacting with Ceph RADOS +object store. + +%package -n libcephsqlite +Summary: SQLite3 VFS for Ceph +%if 0%{?suse_version} +Group: System/Libraries +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +%description -n libcephsqlite +A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS +distributed object store. + +%package -n libcephsqlite-devel +Summary: SQLite3 VFS for Ceph headers +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: sqlite-devel +Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libcephsqlite-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libcephsqlite-devel < %{_epoch_prefix}%{version}-%{release} +%description -n libcephsqlite-devel +A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS +distributed object store. + +%if 0%{with libradosstriper} +%package -n libradosstriper1 +Summary: RADOS striping interface +%if 0%{?suse_version} +Group: System/Libraries +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +%description -n libradosstriper1 +Striping interface built on top of the rados library, allowing +to stripe bigger objects onto several standard rados objects using +an interface very similar to the rados one. + +%package -n libradosstriper-devel +Summary: RADOS striping interface headers +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release} +%description -n libradosstriper-devel +This package contains libraries and headers needed to develop programs +that use RADOS striping interface. +%endif + +%package -n librbd1 +Summary: RADOS block device client library +%if 0%{?suse_version} +Group: System/Libraries +%endif +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +%if 0%{?suse_version} +Requires(post): coreutils +%endif +%if 0%{?rhel} || 0%{?fedora} +Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} +%endif +%description -n librbd1 +RBD is a block device striped across multiple distributed objects in +RADOS, a reliable, autonomic distributed object storage cluster +developed as part of the Ceph distributed storage system. This is a +shared library allowing applications to manage these block devices. + +%package -n librbd-devel +Summary: RADOS block device headers +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: librbd1-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release} +%description -n librbd-devel +This package contains libraries and headers needed to develop programs +that use RADOS block device. + +%package -n python%{python3_pkgversion}-rbd +Summary: Python 3 libraries for the RADOS block device +%if 0%{?suse_version} +Group: Development/Libraries/Python +%endif +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-rbd} +Provides: python-rbd = %{_epoch_prefix}%{version}-%{release} +Obsoletes: python-rbd < %{_epoch_prefix}%{version}-%{release} +%description -n python%{python3_pkgversion}-rbd +This package contains Python 3 libraries for interacting with Ceph RADOS +block device. + +%package -n libcephfs2 +Summary: Ceph distributed file system client library +%if 0%{?suse_version} +Group: System/Libraries +%endif +Obsoletes: libcephfs1 < %{_epoch_prefix}%{version}-%{release} +%if 0%{?rhel} || 0%{?fedora} +Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-libcephfs +%endif +%description -n libcephfs2 +Ceph is a distributed network file system designed to provide excellent +performance, reliability, and scalability. This is a shared library +allowing applications to access a Ceph distributed file system via a +POSIX-like interface. + +%package -n libcephfs-devel +Summary: Ceph distributed file system headers +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libcephfs2-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release} +%description -n libcephfs-devel +This package contains libraries and headers needed to develop programs +that use Ceph distributed file system. + +%if 0%{with jaeger} +%package -n libjaeger +Summary: Ceph distributed file system tracing library +%if 0%{?suse_version} +Group: System/Libraries +%endif +Provides: libjaegertracing.so.0()(64bit) +Provides: libopentracing.so.1()(64bit) +Provides: libthrift.so.0.13.0()(64bit) +%description -n libjaeger +This package contains libraries needed to provide distributed +tracing for Ceph. +%endif + +%package -n python%{python3_pkgversion}-cephfs +Summary: Python 3 libraries for Ceph distributed file system +%if 0%{?suse_version} +Group: Development/Libraries/Python +%endif +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-cephfs} +Provides: python-cephfs = %{_epoch_prefix}%{version}-%{release} +Obsoletes: python-cephfs < %{_epoch_prefix}%{version}-%{release} +%description -n python%{python3_pkgversion}-cephfs +This package contains Python 3 libraries for interacting with Ceph distributed +file system. + +%package -n python%{python3_pkgversion}-ceph-argparse +Summary: Python 3 utility libraries for Ceph CLI +%if 0%{?suse_version} +Group: Development/Libraries/Python +%endif +%{?python_provide:%python_provide python%{python3_pkgversion}-ceph-argparse} +%description -n python%{python3_pkgversion}-ceph-argparse +This package contains types and routines for Python 3 used by the Ceph CLI as +well as the RESTful interface. These have to do with querying the daemons for +command-description information, validating user command input against those +descriptions, and submitting the command to the appropriate daemon. + +%package -n python%{python3_pkgversion}-ceph-common +Summary: Python 3 utility libraries for Ceph +%if 0%{?fedora} || 0%{?rhel} >= 8 +Requires: python%{python3_pkgversion}-pyyaml +%endif +%if 0%{?suse_version} +Requires: python%{python3_pkgversion}-PyYAML +%endif +%if 0%{?suse_version} +Group: Development/Libraries/Python +%endif +%{?python_provide:%python_provide python%{python3_pkgversion}-ceph-common} +%description -n python%{python3_pkgversion}-ceph-common +This package contains data structures, classes and functions used by Ceph. +It also contains utilities used for the cephadm orchestrator. + +%if 0%{with cephfs_shell} +%package -n cephfs-shell +Summary: Interactive shell for Ceph file system +Requires: python%{python3_pkgversion}-cmd2 +Requires: python%{python3_pkgversion}-colorama +Requires: python%{python3_pkgversion}-cephfs +%description -n cephfs-shell +This package contains an interactive tool that allows accessing a Ceph +file system without mounting it by providing a nice pseudo-shell which +works like an FTP client. +%endif + +%if 0%{with ceph_test_package} +%package -n ceph-test +Summary: Ceph benchmarks and test tools +%if 0%{?suse_version} +Group: System/Benchmark +%endif +Requires: ceph-common +Requires: xmlstarlet +Requires: jq +Requires: socat +%description -n ceph-test +This package contains Ceph benchmarks and test tools. +%endif + +%if 0%{with cephfs_java} + +%package -n libcephfs_jni1 +Summary: Java Native Interface library for CephFS Java bindings +%if 0%{?suse_version} +Group: System/Libraries +%endif +Requires: java +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +%description -n libcephfs_jni1 +This package contains the Java Native Interface library for CephFS Java +bindings. + +%package -n libcephfs_jni-devel +Summary: Development files for CephFS Java Native Interface library +%if 0%{?suse_version} +Group: Development/Libraries/Java +%endif +Requires: java +Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release} +%description -n libcephfs_jni-devel +This package contains the development files for CephFS Java Native Interface +library. + +%package -n cephfs-java +Summary: Java libraries for the Ceph File System +%if 0%{?suse_version} +Group: System/Libraries +%endif +Requires: java +Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} +Requires: junit +BuildRequires: junit +%description -n cephfs-java +This package contains the Java libraries for the Ceph File System. + +%endif + +%package -n rados-objclass-devel +Summary: RADOS object class development kit +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif +Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} +%description -n rados-objclass-devel +This package contains libraries and headers needed to develop RADOS object +class plugins. + +%if 0%{with selinux} + +%package selinux +Summary: SELinux support for Ceph MON, OSD and MDS +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires: policycoreutils, libselinux-utils +Requires(post): ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk +Requires(postun): policycoreutils +%description selinux +This package contains SELinux support for Ceph MON, OSD and MDS. The package +also performs file-system relabelling which can take a long time on heavily +populated file-systems. + +%endif + +%package grafana-dashboards +Summary: The set of Grafana dashboards for monitoring purposes +BuildArch: noarch +%if 0%{?suse_version} +Group: System/Filesystems +%endif +%description grafana-dashboards +This package provides a set of Grafana dashboards for monitoring of +Ceph clusters. The dashboards require a Prometheus server setup +collecting data from Ceph Manager "prometheus" module and Prometheus +project "node_exporter" module. The dashboards are designed to be +integrated with the Ceph Manager Dashboard web UI. + +%package prometheus-alerts +Summary: Prometheus alerts for a Ceph deployment +BuildArch: noarch +Group: System/Monitoring +%description prometheus-alerts +This package provides Ceph default alerts for Prometheus. + +################################################################################# +# common +################################################################################# +%prep +%autosetup -p1 -n ceph-16.2.14-66-g7aa6ce9419f + +%build +# Disable lto on systems that do not support symver attribute +# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200 for details +%if ( 0%{?rhel} && 0%{?rhel} < 9 ) || ( 0%{?suse_version} && 0%{?suse_version} <= 1500 ) +%define _lto_cflags %{nil} +%endif + +%if 0%{with seastar} && 0%{?rhel} +. /opt/rh/gcc-toolset-9/enable +%endif + +%if 0%{with cephfs_java} +# Find jni.h +for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do + [ -d $i ] && java_inc="$java_inc -I$i" +done +%endif + +%if 0%{?suse_version} +# the following setting fixed an OOM condition we once encountered in the OBS +RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" +%endif +%if %{with minimal_debugging_information} +RPM_OPT_FLAGS="$(echo $RPM_OPT_FLAGS | sed -e 's/^-g /-g1 /g' -e 's/ -g / -g1 /g' -e 's/ -g$/ -g1/g')" +%endif + +export CPPFLAGS="$java_inc" +export CFLAGS="$RPM_OPT_FLAGS" +export CXXFLAGS="$RPM_OPT_FLAGS -DFMT_DEPRECATED_OSTREAM" +export LDFLAGS="$RPM_LD_FLAGS" +test "$RPM_LD_FLAGS" && echo "RPM_LD_FLAGS == $RPM_LD_FLAGS" || echo "RPM_LD_FLAGS is empty" + +%if 0%{with seastar} +# seastar uses longjmp() to implement coroutine. and this annoys longjmp_chk() +export CXXFLAGS=$(echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g') +%endif + +# Parallel build settings ... +CEPH_MFLAGS_JOBS="%{?_smp_mflags}" +CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//') +%if 0%{?__isa_bits} == 32 +# 32-bit builds can use 3G memory max, which is not enough even for -j2 +CEPH_SMP_NCPUS="1" +%endif +# do not eat all memory +echo "Available memory:" +free -h +echo "System limits:" +ulimit -a +if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then + mem_per_process=2500 + max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") + max_jobs="$(($max_mem / $mem_per_process))" + test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" + test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits" +fi +export CEPH_SMP_NCPUS +export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS" + +env | sort + +mkdir build +cd build +CMAKE=cmake +${CMAKE} .. \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ + -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \ + -DCMAKE_INSTALL_LOCALSTATEDIR=%{_localstatedir} \ + -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \ + -DCMAKE_INSTALL_MANDIR=%{_mandir} \ + -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \ + -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ + -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=%{_unitdir} \ + -DWITH_MANPAGE=ON \ + -DWITH_PYTHON3=%{python3_version} \ + -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ +%if 0%{without ceph_test_package} + -DWITH_TESTS=OFF \ +%endif +%if 0%{with cephfs_java} + -DWITH_CEPHFS_JAVA=ON \ +%endif +%if 0%{with selinux} + -DWITH_SELINUX=ON \ +%endif +%if %{with lttng} + -DWITH_LTTNG=ON \ + -DWITH_BABELTRACE=ON \ +%else + -DWITH_LTTNG=OFF \ + -DWITH_BABELTRACE=OFF \ +%endif + $CEPH_EXTRA_CMAKE_ARGS \ +%if 0%{with ocf} + -DWITH_OCF=ON \ +%endif +%if 0%{with cephfs_shell} + -DWITH_CEPHFS_SHELL=ON \ +%endif +%if 0%{with libradosstriper} + -DWITH_LIBRADOSSTRIPER=ON \ +%else + -DWITH_LIBRADOSSTRIPER=OFF \ +%endif +%if 0%{with amqp_endpoint} + -DWITH_RADOSGW_AMQP_ENDPOINT=ON \ +%else + -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \ +%endif +%if 0%{with kafka_endpoint} + -DWITH_RADOSGW_KAFKA_ENDPOINT=ON \ +%else + -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ +%endif +%if 0%{without lua_packages} + -DWITH_RADOSGW_LUA_PACKAGES=OFF \ +%endif +%if 0%{with zbd} + -DWITH_ZBD=ON \ +%endif +%if 0%{with cmake_verbose_logging} + -DCMAKE_VERBOSE_MAKEFILE=ON \ +%endif +%if 0%{with rbd_rwl_cache} + -DWITH_RBD_RWL=ON \ +%endif +%if 0%{with rbd_ssd_cache} + -DWITH_RBD_SSD_CACHE=ON \ +%endif +%if 0%{with system_pmdk} + -DWITH_SYSTEM_PMDK:BOOL=ON \ +%endif + -DBOOST_J=$CEPH_SMP_NCPUS \ +%if 0%{?rhel} + -DWITH_FMT_HEADER_ONLY:BOOL=ON \ +%endif + -DWITH_GRAFANA=ON + +%if %{with cmake_verbose_logging} +cat ./CMakeFiles/CMakeOutput.log +cat ./CMakeFiles/CMakeError.log +%endif + +make "$CEPH_MFLAGS_JOBS" + + +%if 0%{with make_check} +%check +# run in-tree unittests +cd build +ctest "$CEPH_MFLAGS_JOBS" +%endif + + +%install +pushd build +make DESTDIR=%{buildroot} install +# we have dropped sysvinit bits +rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph +popd + +%if 0%{with seastar} +# package crimson-osd with the name of ceph-osd +install -m 0755 %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-osd +%endif + +install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap +%if 0%{?fedora} || 0%{?rhel} +install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph +%endif +%if 0%{?suse_version} +install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name} +%endif +install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf +install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_presetdir}/50-ceph.preset +mkdir -p %{buildroot}%{_sbindir} +install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph +chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf +install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING +install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf +install -m 0755 -D src/tools/rbd_nbd/rbd-nbd_quiesce %{buildroot}%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce + +install -m 0755 src/cephadm/cephadm %{buildroot}%{_sbindir}/cephadm +mkdir -p %{buildroot}%{_sharedstatedir}/cephadm +chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm +mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh +chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm/.ssh +touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys +chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys + +# firewall templates and /sbin/mount.ceph symlink +%if 0%{?suse_version} && 0%{?suse_version} < 1550 +mkdir -p %{buildroot}/sbin +ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph +%endif + +# udev rules +install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules + +# sudoers.d +install -m 0440 -D sudoers.d/ceph-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-smartctl + +%if 0%{?rhel} >= 8 +pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/* +pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_sbindir}/* +%endif + +#set up placeholder directories +mkdir -p %{buildroot}%{_sysconfdir}/ceph +mkdir -p %{buildroot}%{_localstatedir}/run/ceph +mkdir -p %{buildroot}%{_localstatedir}/log/ceph +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash/posted +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror + +# prometheus alerts +install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml + +%if 0%{?suse_version} +# create __pycache__ directories and their contents +%py3_compile %{buildroot}%{python3_sitelib} +# hardlink duplicate files under /usr to save space +%fdupes %{buildroot}%{_prefix} +%endif + +%if 0%{?rhel} == 8 +%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib} +%endif + +%clean +rm -rf %{buildroot} +# built binaries are no longer necessary at this point, +# but are consuming ~17GB of disk in the build environment +rm -rf build + +################################################################################# +# files and systemd scriptlets +################################################################################# +%files + +%files base +%{_bindir}/ceph-crash +%{_bindir}/crushtool +%{_bindir}/monmaptool +%{_bindir}/osdmaptool +%{_bindir}/ceph-kvstore-tool +%{_bindir}/ceph-run +%{_bindir}/ceph-dencoder +%{_bindir}/cephfs-data-scan +%{_bindir}/cephfs-journal-tool +%{_bindir}/cephfs-table-tool +%{_presetdir}/50-ceph.preset +%{_sbindir}/ceph-create-keys +%dir %{_libexecdir}/ceph +%{_libexecdir}/ceph/ceph_common.sh +%dir %{_libdir}/rados-classes +%{_libdir}/rados-classes/* +%dir %{_libdir}/ceph +%dir %{_libdir}/ceph/erasure-code +%{_libdir}/ceph/erasure-code/libec_*.so* +%dir %{_libdir}/ceph/compressor +%{_libdir}/ceph/compressor/libceph_*.so* +%{_unitdir}/ceph-crash.service +%dir %{_libdir}/ceph/crypto +%{_libdir}/ceph/crypto/libceph_*.so* +%if %{with lttng} +%{_libdir}/libos_tp.so* +%{_libdir}/libosd_tp.so* +%endif +%config(noreplace) %{_sysconfdir}/logrotate.d/ceph +%if 0%{?fedora} || 0%{?rhel} +%config(noreplace) %{_sysconfdir}/sysconfig/ceph +%endif +%if 0%{?suse_version} +%{_fillupdir}/sysconfig.* +%endif +%{_unitdir}/ceph.target +%dir %{python3_sitelib}/ceph_volume +%{python3_sitelib}/ceph_volume/* +%{python3_sitelib}/ceph_volume-* +%{_mandir}/man8/ceph-deploy.8* +%{_mandir}/man8/ceph-create-keys.8* +%{_mandir}/man8/ceph-run.8* +%{_mandir}/man8/crushtool.8* +%{_mandir}/man8/osdmaptool.8* +%{_mandir}/man8/monmaptool.8* +%{_mandir}/man8/ceph-kvstore-tool.8* +#set up placeholder directories +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash/posted +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mgr +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd-mirror +%{_sysconfdir}/sudoers.d/ceph-smartctl + +%post base +/sbin/ldconfig +%if 0%{?suse_version} +%fillup_only +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl preset ceph.target ceph-crash.service >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph.target ceph-crash.service +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph.target ceph-crash.service >/dev/null 2>&1 || : +fi + +%preun base +%if 0%{?suse_version} +%service_del_preun ceph.target ceph-crash.service +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph.target ceph-crash.service +%endif + +%postun base +/sbin/ldconfig +%systemd_postun ceph.target + +%pre -n cephadm +getent group cephadm >/dev/null || groupadd -r cephadm +getent passwd cephadm >/dev/null || useradd -r -g cephadm -s /bin/bash -c "cephadm user for mgr/cephadm" -d %{_sharedstatedir}/cephadm cephadm +exit 0 + +%if ! 0%{?suse_version} +%postun -n cephadm +[ $1 -ne 0 ] || userdel cephadm || : +%endif + +%files -n cephadm +%{_sbindir}/cephadm +%{_mandir}/man8/cephadm.8* +%attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm +%attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm/.ssh +%config(noreplace) %attr(0600,cephadm,cephadm) %{_sharedstatedir}/cephadm/.ssh/authorized_keys + +%files common +%dir %{_docdir}/ceph +%doc %{_docdir}/ceph/sample.ceph.conf +%license %{_docdir}/ceph/COPYING +%{_bindir}/ceph +%{_bindir}/ceph-authtool +%{_bindir}/ceph-conf +%{_bindir}/ceph-rbdnamer +%{_bindir}/ceph-syn +%{_bindir}/rados +%{_bindir}/radosgw-admin +%{_bindir}/rbd +%{_bindir}/rbd-replay +%{_bindir}/rbd-replay-many +%{_bindir}/rbdmap +%{_sbindir}/mount.ceph +%if 0%{?suse_version} && 0%{?suse_version} < 1550 +/sbin/mount.ceph +%endif +%if %{with lttng} +%{_bindir}/rbd-replay-prep +%endif +%exclude %{_bindir}/ceph-post-file +%dir %{_libdir}/ceph/denc +%{_libdir}/ceph/denc/denc-mod-*.so +%{_tmpfilesdir}/ceph-common.conf +%{_mandir}/man8/ceph-authtool.8* +%{_mandir}/man8/ceph-conf.8* +%{_mandir}/man8/ceph-dencoder.8* +%{_mandir}/man8/ceph-diff-sorted.8* +%{_mandir}/man8/ceph-rbdnamer.8* +%{_mandir}/man8/ceph-syn.8* +%{_mandir}/man8/ceph-post-file.8* +%{_mandir}/man8/ceph.8* +%{_mandir}/man8/mount.ceph.8* +%{_mandir}/man8/rados.8* +%{_mandir}/man8/radosgw-admin.8* +%{_mandir}/man8/rbd.8* +%{_mandir}/man8/rbdmap.8* +%{_mandir}/man8/rbd-replay.8* +%{_mandir}/man8/rbd-replay-many.8* +%{_mandir}/man8/rbd-replay-prep.8* +%{_mandir}/man8/rgw-orphan-list.8* +%dir %{_datadir}/ceph/ +%{_datadir}/ceph/known_hosts_drop.ceph.com +%{_datadir}/ceph/id_rsa_drop.ceph.com +%{_datadir}/ceph/id_rsa_drop.ceph.com.pub +%dir %{_sysconfdir}/ceph/ +%config %{_sysconfdir}/bash_completion.d/ceph +%config %{_sysconfdir}/bash_completion.d/rados +%config %{_sysconfdir}/bash_completion.d/rbd +%config %{_sysconfdir}/bash_completion.d/radosgw-admin +%config(noreplace) %{_sysconfdir}/ceph/rbdmap +%{_unitdir}/rbdmap.service +%dir %{_udevrulesdir} +%{_udevrulesdir}/50-rbd.rules +%attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/ +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/ + +%pre common +CEPH_GROUP_ID=167 +CEPH_USER_ID=167 +%if 0%{?rhel} || 0%{?fedora} +/usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || : +/usr/sbin/useradd ceph -u $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : +%endif +%if 0%{?suse_version} +if ! getent group ceph >/dev/null ; then + CEPH_GROUP_ID_OPTION="" + getent group $CEPH_GROUP_ID >/dev/null || CEPH_GROUP_ID_OPTION="-g $CEPH_GROUP_ID" + groupadd ceph $CEPH_GROUP_ID_OPTION -r 2>/dev/null || : +fi +if ! getent passwd ceph >/dev/null ; then + CEPH_USER_ID_OPTION="" + getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID" + useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin 2>/dev/null || : +fi +usermod -c "Ceph storage service" \ + -d %{_localstatedir}/lib/ceph \ + -g ceph \ + -s /sbin/nologin \ + ceph +%endif +exit 0 + +%post common +%tmpfiles_create %{_tmpfilesdir}/ceph-common.conf + +%postun common +# Package removal cleanup +if [ "$1" -eq "0" ] ; then + rm -rf %{_localstatedir}/log/ceph + rm -rf %{_sysconfdir}/ceph +fi + +%files mds +%{_bindir}/ceph-mds +%{_mandir}/man8/ceph-mds.8* +%{_unitdir}/ceph-mds@.service +%{_unitdir}/ceph-mds.target +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds + +%post mds +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-mds@\*.service ceph-mds.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-mds@\*.service ceph-mds.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-mds.target >/dev/null 2>&1 || : +fi + +%preun mds +%if 0%{?suse_version} +%service_del_preun ceph-mds@\*.service ceph-mds.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-mds@\*.service ceph-mds.target +%endif + +%postun mds +%systemd_postun ceph-mds@\*.service ceph-mds.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart ceph-mds@\*.service > /dev/null 2>&1 || : + fi +fi + +%files mgr +%{_bindir}/ceph-mgr +%dir %{_datadir}/ceph/mgr +%{_datadir}/ceph/mgr/mgr_module.* +%{_datadir}/ceph/mgr/mgr_util.* +%{_unitdir}/ceph-mgr@.service +%{_unitdir}/ceph-mgr.target +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mgr + +%post mgr +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-mgr@\*.service ceph-mgr.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-mgr@\*.service ceph-mgr.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-mgr.target >/dev/null 2>&1 || : +fi + +%preun mgr +%if 0%{?suse_version} +%service_del_preun ceph-mgr@\*.service ceph-mgr.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-mgr@\*.service ceph-mgr.target +%endif + +%postun mgr +%systemd_postun ceph-mgr@\*.service ceph-mgr.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart ceph-mgr@\*.service > /dev/null 2>&1 || : + fi +fi + +%files mgr-dashboard +%{_datadir}/ceph/mgr/dashboard + +%post mgr-dashboard +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%postun mgr-dashboard +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%files mgr-diskprediction-local +%{_datadir}/ceph/mgr/diskprediction_local + +%post mgr-diskprediction-local +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%postun mgr-diskprediction-local +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%files mgr-modules-core +%dir %{_datadir}/ceph/mgr +%{_datadir}/ceph/mgr/alerts +%{_datadir}/ceph/mgr/balancer +%{_datadir}/ceph/mgr/crash +%{_datadir}/ceph/mgr/devicehealth +%{_datadir}/ceph/mgr/influx +%{_datadir}/ceph/mgr/insights +%{_datadir}/ceph/mgr/iostat +%{_datadir}/ceph/mgr/localpool +%{_datadir}/ceph/mgr/mds_autoscaler +%{_datadir}/ceph/mgr/mirroring +%{_datadir}/ceph/mgr/nfs +%{_datadir}/ceph/mgr/orchestrator +%{_datadir}/ceph/mgr/osd_perf_query +%{_datadir}/ceph/mgr/osd_support +%{_datadir}/ceph/mgr/pg_autoscaler +%{_datadir}/ceph/mgr/progress +%{_datadir}/ceph/mgr/prometheus +%{_datadir}/ceph/mgr/rbd_support +%{_datadir}/ceph/mgr/restful +%{_datadir}/ceph/mgr/selftest +%{_datadir}/ceph/mgr/snap_schedule +%{_datadir}/ceph/mgr/stats +%{_datadir}/ceph/mgr/status +%{_datadir}/ceph/mgr/telegraf +%{_datadir}/ceph/mgr/telemetry +%{_datadir}/ceph/mgr/test_orchestrator +%{_datadir}/ceph/mgr/volumes +%{_datadir}/ceph/mgr/zabbix + +%files mgr-rook +%{_datadir}/ceph/mgr/rook + +%post mgr-rook +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%postun mgr-rook +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%files mgr-k8sevents +%{_datadir}/ceph/mgr/k8sevents + +%post mgr-k8sevents +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%postun mgr-k8sevents +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%files mgr-cephadm +%{_datadir}/ceph/mgr/cephadm + +%post mgr-cephadm +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%postun mgr-cephadm +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : +fi + +%files mon +%{_bindir}/ceph-mon +%{_bindir}/ceph-monstore-tool +%{_mandir}/man8/ceph-mon.8* +%{_unitdir}/ceph-mon@.service +%{_unitdir}/ceph-mon.target +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon + +%post mon +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-mon@\*.service ceph-mon.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-mon@\*.service ceph-mon.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-mon.target >/dev/null 2>&1 || : +fi + +%preun mon +%if 0%{?suse_version} +%service_del_preun ceph-mon@\*.service ceph-mon.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-mon@\*.service ceph-mon.target +%endif + +%postun mon +%systemd_postun ceph-mon@\*.service ceph-mon.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart ceph-mon@\*.service > /dev/null 2>&1 || : + fi +fi + +%files fuse +%{_bindir}/ceph-fuse +%{_mandir}/man8/ceph-fuse.8* +%{_sbindir}/mount.fuse.ceph +%{_mandir}/man8/mount.fuse.ceph.8* +%{_unitdir}/ceph-fuse@.service +%{_unitdir}/ceph-fuse.target + +%files -n cephfs-mirror +%{_bindir}/cephfs-mirror +%{_mandir}/man8/cephfs-mirror.8* +%{_unitdir}/cephfs-mirror@.service +%{_unitdir}/cephfs-mirror.target + +%post -n cephfs-mirror +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset cephfs-mirror@\*.service cephfs-mirror.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post cephfs-mirror@\*.service cephfs-mirror.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start cephfs-mirror.target >/dev/null 2>&1 || : +fi + +%preun -n cephfs-mirror +%if 0%{?suse_version} +%service_del_preun cephfs-mirror@\*.service cephfs-mirror.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun cephfs-mirror@\*.service cephfs-mirror.target +%endif + +%postun -n cephfs-mirror +%systemd_postun cephfs-mirror@\*.service cephfs-mirror.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart cephfs-mirror@\*.service > /dev/null 2>&1 || : + fi +fi + +%files -n rbd-fuse +%{_bindir}/rbd-fuse +%{_mandir}/man8/rbd-fuse.8* + +%files -n rbd-mirror +%{_bindir}/rbd-mirror +%{_mandir}/man8/rbd-mirror.8* +%{_unitdir}/ceph-rbd-mirror@.service +%{_unitdir}/ceph-rbd-mirror.target + +%post -n rbd-mirror +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-rbd-mirror@\*.service ceph-rbd-mirror.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-rbd-mirror@\*.service ceph-rbd-mirror.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-rbd-mirror.target >/dev/null 2>&1 || : +fi + +%preun -n rbd-mirror +%if 0%{?suse_version} +%service_del_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target +%endif + +%postun -n rbd-mirror +%systemd_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart ceph-rbd-mirror@\*.service > /dev/null 2>&1 || : + fi +fi + +%files immutable-object-cache +%{_bindir}/ceph-immutable-object-cache +%{_mandir}/man8/ceph-immutable-object-cache.8* +%{_unitdir}/ceph-immutable-object-cache@.service +%{_unitdir}/ceph-immutable-object-cache.target + +%post immutable-object-cache +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-immutable-object-cache.target >/dev/null 2>&1 || : +fi + +%preun immutable-object-cache +%if 0%{?suse_version} +%service_del_preun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target +%endif + +%postun immutable-object-cache +%systemd_postun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart ceph-immutable-object-cache@\*.service > /dev/null 2>&1 || : + fi +fi + +%files -n rbd-nbd +%{_bindir}/rbd-nbd +%{_mandir}/man8/rbd-nbd.8* +%dir %{_libexecdir}/rbd-nbd +%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce + +%files radosgw +%{_bindir}/ceph-diff-sorted +%{_bindir}/radosgw +%{_bindir}/radosgw-token +%{_bindir}/radosgw-es +%{_bindir}/radosgw-object-expirer +%{_bindir}/rgw-gap-list +%{_bindir}/rgw-gap-list-comparator +%{_bindir}/rgw-orphan-list +%{_libdir}/libradosgw.so* +%{_mandir}/man8/radosgw.8* +%dir %{_localstatedir}/lib/ceph/radosgw +%{_unitdir}/ceph-radosgw@.service +%{_unitdir}/ceph-radosgw.target + +%post radosgw +/sbin/ldconfig +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-radosgw@\*.service ceph-radosgw.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-radosgw@\*.service ceph-radosgw.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-radosgw.target >/dev/null 2>&1 || : +fi + +%preun radosgw +%if 0%{?suse_version} +%service_del_preun ceph-radosgw@\*.service ceph-radosgw.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-radosgw@\*.service ceph-radosgw.target +%endif + +%postun radosgw +/sbin/ldconfig +%systemd_postun ceph-radosgw@\*.service ceph-radosgw.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart ceph-radosgw@\*.service > /dev/null 2>&1 || : + fi +fi + +%files osd +%{_bindir}/ceph-clsinfo +%{_bindir}/ceph-bluestore-tool +%{_bindir}/ceph-erasure-code-tool +%{_bindir}/ceph-objectstore-tool +%{_bindir}/ceph-osdomap-tool +%{_bindir}/ceph-osd +%{_libexecdir}/ceph/ceph-osd-prestart.sh +%{_sbindir}/ceph-volume +%{_sbindir}/ceph-volume-systemd +%{_mandir}/man8/ceph-clsinfo.8* +%{_mandir}/man8/ceph-osd.8* +%{_mandir}/man8/ceph-bluestore-tool.8* +%{_mandir}/man8/ceph-volume.8* +%{_mandir}/man8/ceph-volume-systemd.8* +%{_unitdir}/ceph-osd@.service +%{_unitdir}/ceph-osd.target +%{_unitdir}/ceph-volume@.service +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd +%config(noreplace) %{_sysctldir}/90-ceph-osd.conf + +%post osd +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || : +fi +%if 0%{?sysctl_apply} + %sysctl_apply 90-ceph-osd.conf +%else + /usr/lib/systemd/systemd-sysctl %{_sysctldir}/90-ceph-osd.conf > /dev/null 2>&1 || : +%endif + +%preun osd +%if 0%{?suse_version} +%service_del_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target +%endif + +%postun osd +%systemd_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target +if [ $1 -ge 1 ] ; then + # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to + # "yes". In any case: if units are not running, do not touch them. + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl try-restart ceph-osd@\*.service ceph-volume@\*.service > /dev/null 2>&1 || : + fi +fi + +%if 0%{with seastar} +%files crimson-osd +%{_bindir}/crimson-osd +%endif + +%if %{with ocf} + +%files resource-agents +%dir %{_prefix}/lib/ocf +%dir %{_prefix}/lib/ocf/resource.d +%dir %{_prefix}/lib/ocf/resource.d/ceph +%attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/ceph/rbd + +%endif + +%files -n librados2 +%{_libdir}/librados.so.* +%dir %{_libdir}/ceph +%{_libdir}/ceph/libceph-common.so.* +%if %{with lttng} +%{_libdir}/librados_tp.so.* +%endif +%dir %{_sysconfdir}/ceph + +%post -n librados2 -p /sbin/ldconfig + +%postun -n librados2 -p /sbin/ldconfig + +%files -n librados-devel +%dir %{_includedir}/rados +%{_includedir}/rados/librados.h +%{_includedir}/rados/rados_types.h +%{_libdir}/librados.so +%if %{with lttng} +%{_libdir}/librados_tp.so +%endif +%{_bindir}/librados-config +%{_mandir}/man8/librados-config.8* + +%files -n libradospp-devel +%dir %{_includedir}/rados +%{_includedir}/rados/buffer.h +%{_includedir}/rados/buffer_fwd.h +%{_includedir}/rados/crc32c.h +%{_includedir}/rados/inline_memory.h +%{_includedir}/rados/librados.hpp +%{_includedir}/rados/librados_fwd.hpp +%{_includedir}/rados/page.h +%{_includedir}/rados/rados_types.hpp + +%files -n python%{python3_pkgversion}-rados +%{python3_sitearch}/rados.cpython*.so +%{python3_sitearch}/rados-*.egg-info + +%files -n libcephsqlite +%{_libdir}/libcephsqlite.so + +%post -n libcephsqlite -p /sbin/ldconfig + +%postun -n libcephsqlite -p /sbin/ldconfig + +%files -n libcephsqlite-devel +%{_includedir}/libcephsqlite.h + +%if 0%{with libradosstriper} +%files -n libradosstriper1 +%{_libdir}/libradosstriper.so.* + +%post -n libradosstriper1 -p /sbin/ldconfig + +%postun -n libradosstriper1 -p /sbin/ldconfig + +%files -n libradosstriper-devel +%dir %{_includedir}/radosstriper +%{_includedir}/radosstriper/libradosstriper.h +%{_includedir}/radosstriper/libradosstriper.hpp +%{_libdir}/libradosstriper.so +%endif + +%files -n librbd1 +%{_libdir}/librbd.so.* +%if %{with lttng} +%{_libdir}/librbd_tp.so.* +%endif +%dir %{_libdir}/ceph/librbd +%{_libdir}/ceph/librbd/libceph_*.so* + +%post -n librbd1 -p /sbin/ldconfig + +%postun -n librbd1 -p /sbin/ldconfig + +%files -n librbd-devel +%dir %{_includedir}/rbd +%{_includedir}/rbd/librbd.h +%{_includedir}/rbd/librbd.hpp +%{_includedir}/rbd/features.h +%{_libdir}/librbd.so +%if %{with lttng} +%{_libdir}/librbd_tp.so +%endif + +%files -n librgw2 +%{_libdir}/librgw.so.* +%if %{with lttng} +%{_libdir}/librgw_op_tp.so.* +%{_libdir}/librgw_rados_tp.so.* +%endif + +%post -n librgw2 -p /sbin/ldconfig + +%postun -n librgw2 -p /sbin/ldconfig + +%files -n librgw-devel +%dir %{_includedir}/rados +%{_includedir}/rados/librgw.h +%{_includedir}/rados/rgw_file.h +%{_libdir}/librgw.so +%if %{with lttng} +%{_libdir}/librgw_op_tp.so +%{_libdir}/librgw_rados_tp.so +%endif + +%files -n python%{python3_pkgversion}-rgw +%{python3_sitearch}/rgw.cpython*.so +%{python3_sitearch}/rgw-*.egg-info + +%files -n python%{python3_pkgversion}-rbd +%{python3_sitearch}/rbd.cpython*.so +%{python3_sitearch}/rbd-*.egg-info + +%files -n libcephfs2 +%{_libdir}/libcephfs.so.* +%dir %{_sysconfdir}/ceph + +%post -n libcephfs2 -p /sbin/ldconfig + +%postun -n libcephfs2 -p /sbin/ldconfig + +%files -n libcephfs-devel +%dir %{_includedir}/cephfs +%{_includedir}/cephfs/libcephfs.h +%{_includedir}/cephfs/ceph_ll_client.h +%dir %{_includedir}/cephfs/metrics +%{_includedir}/cephfs/metrics/Types.h +%{_libdir}/libcephfs.so + +%if %{with jaeger} +%files -n libjaeger +%{_libdir}/libopentracing.so.* +%{_libdir}/libthrift.so.* +%{_libdir}/libjaegertracing.so.* +%post -n libjaeger -p /sbin/ldconfig +%postun -n libjaeger -p /sbin/ldconfig +%endif + +%files -n python%{python3_pkgversion}-cephfs +%{python3_sitearch}/cephfs.cpython*.so +%{python3_sitearch}/cephfs-*.egg-info +%{python3_sitelib}/ceph_volume_client.py +%{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py* + +%files -n python%{python3_pkgversion}-ceph-argparse +%{python3_sitelib}/ceph_argparse.py +%{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py* +%{python3_sitelib}/ceph_daemon.py +%{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py* + +%files -n python%{python3_pkgversion}-ceph-common +%{python3_sitelib}/ceph +%{python3_sitelib}/ceph-*.egg-info + +%if 0%{with cephfs_shell} +%files -n cephfs-shell +%{python3_sitelib}/cephfs_shell-*.egg-info +%{_bindir}/cephfs-shell +%endif + +%files -n cephfs-top +%{python3_sitelib}/cephfs_top-*.egg-info +%{_bindir}/cephfs-top +%{_mandir}/man8/cephfs-top.8* + +%if 0%{with ceph_test_package} +%files -n ceph-test +%{_bindir}/ceph-client-debug +%{_bindir}/ceph_bench_log +%{_bindir}/ceph_kvstorebench +%{_bindir}/ceph_multi_stress_watch +%{_bindir}/ceph_erasure_code_benchmark +%{_bindir}/ceph_omapbench +%{_bindir}/ceph_objectstore_bench +%{_bindir}/ceph_perf_objectstore +%{_bindir}/ceph_perf_local +%{_bindir}/ceph_perf_msgr_client +%{_bindir}/ceph_perf_msgr_server +%{_bindir}/ceph_psim +%{_bindir}/ceph_radosacl +%{_bindir}/ceph_rgw_jsonparser +%{_bindir}/ceph_rgw_multiparser +%{_bindir}/ceph_scratchtool +%{_bindir}/ceph_scratchtoolpp +%{_bindir}/ceph_test_* +%{_bindir}/ceph-coverage +%{_bindir}/ceph-debugpack +%{_bindir}/ceph-dedup-tool +%if 0%{with seastar} +%{_bindir}/crimson-store-nbd +%endif +%{_mandir}/man8/ceph-debugpack.8* +%dir %{_libdir}/ceph +%{_libdir}/ceph/ceph-monstore-update-crush.sh +%endif + +%if 0%{with cephfs_java} +%files -n libcephfs_jni1 +%{_libdir}/libcephfs_jni.so.* + +%post -n libcephfs_jni1 -p /sbin/ldconfig + +%postun -n libcephfs_jni1 -p /sbin/ldconfig + +%files -n libcephfs_jni-devel +%{_libdir}/libcephfs_jni.so + +%files -n cephfs-java +%{_javadir}/libcephfs.jar +%{_javadir}/libcephfs-test.jar +%endif + +%files -n rados-objclass-devel +%dir %{_includedir}/rados +%{_includedir}/rados/objclass.h + +%if 0%{with selinux} +%files selinux +%attr(0600,root,root) %{_datadir}/selinux/packages/ceph.pp +%{_datadir}/selinux/devel/include/contrib/ceph.if +%{_mandir}/man8/ceph_selinux.8* + +%post selinux +# backup file_contexts before update +. /etc/selinux/config +FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts +cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre + +# Install the policy +/usr/sbin/semodule -i %{_datadir}/selinux/packages/ceph.pp + +# Load the policy if SELinux is enabled +if ! /usr/sbin/selinuxenabled; then + # Do not relabel if selinux is not enabled + exit 0 +fi + +if diff ${FILE_CONTEXT} ${FILE_CONTEXT}.pre > /dev/null 2>&1; then + # Do not relabel if file contexts did not change + exit 0 +fi + +# Stop ceph.target while relabeling if CEPH_AUTO_RESTART_ON_UPGRADE=yes +SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph +if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH +fi + +# Check whether the daemons are running +/usr/bin/systemctl status ceph.target > /dev/null 2>&1 +STATUS=$? + +# Stop the daemons if they were running +if test $STATUS -eq 0; then + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 + fi +fi + +# Relabel the files fix for first package install +/usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null + +rm -f ${FILE_CONTEXT}.pre +# The fixfiles command won't fix label for /var/run/ceph +/usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 + +# Start the daemons iff they were running before +if test $STATUS -eq 0; then + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : + fi +fi +exit 0 + +%postun selinux +if [ $1 -eq 0 ]; then + # backup file_contexts before update + . /etc/selinux/config + FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts + cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre + + # Remove the module + /usr/sbin/semodule -n -r ceph > /dev/null 2>&1 + + # Reload the policy if SELinux is enabled + if ! /usr/sbin/selinuxenabled ; then + # Do not relabel if SELinux is not enabled + exit 0 + fi + + # Stop ceph.target while relabeling if CEPH_AUTO_RESTART_ON_UPGRADE=yes + SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph + if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then + source $SYSCONF_CEPH + fi + + # Check whether the daemons are running + /usr/bin/systemctl status ceph.target > /dev/null 2>&1 + STATUS=$? + + # Stop the daemons if they were running + if test $STATUS -eq 0; then + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 + fi + fi + + /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null + rm -f ${FILE_CONTEXT}.pre + # The fixfiles command won't fix label for /var/run/ceph + /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 + + # Start the daemons if they were running before + if test $STATUS -eq 0; then + if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then + /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : + fi + fi +fi +exit 0 +%endif + +%files grafana-dashboards +%if 0%{?suse_version} +%attr(0755,root,root) %dir %{_sysconfdir}/grafana +%attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards +%endif +%attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards/ceph-dashboard +%config %{_sysconfdir}/grafana/dashboards/ceph-dashboard/* + +%files prometheus-alerts +%if 0%{?suse_version} +%attr(0755,root,root) %dir %{_sysconfdir}/prometheus +%endif +%attr(0755,root,root) %dir %{_sysconfdir}/prometheus/ceph +%config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml + +%changelog diff --git a/checkin.sh b/checkin.sh new file mode 100644 index 0000000..ea84a7a --- /dev/null +++ b/checkin.sh @@ -0,0 +1,140 @@ +#!/bin/bash +# +# checkin.sh +# +# This script automates generation of a new tarball and spec file from a +# git clone or repo+branch combination for the "ceph" package in OBS. +# + +set -x + +BASEDIR=$(pwd) + +function usage { + set +x + echo "Usage:" + echo " ${0} [-h,--help] [-e,--existing CLONE]" + echo " [-r,--repo REPO] [-b,--branch BRANCH]" + echo "" + echo "Options:" + echo " --existing Use existing ceph clone CLONE" + echo " --repo Make a fresh clone of ceph repo REPO" + echo " --branch Use branch BRANCH with fresh clone" + echo "" + echo "Notes:" + echo " If existing clone is given, repo and branch are ignored." + echo " Repo defaults to https://github.com/SUSE/ceph.git" + echo " Branch defaults to ses7p" + exit 1 +} + +function _error_exit { + echo >&2 $1 + exit $2 +} + +function _check_ceph_clone { + local OPT="$1" + if [ -z "$OPT" ] ; then + _error_exit "Empty string sent to internal function _check_ceph_clone" + fi + if [ -e "$OPT/make-dist" ] ; then + echo "$OPT looks like a ceph clone; using it" + else + _error_exit "$OPT does not appear to be a ceph clone" 1 + fi +} + +function _verify_git_describe { + git describe --match 'v*' + echo "Does this version number looks sane? y/[N]" + read a + if [ "x$a" != "xy" ] ; then + _error_exit "Aborting!" 1 + fi +} + +GETOPT=$(getopt -o b:e:hr: --long "branch:,existing:,help,repo:" \ + -n 'checkin.sh' -- "$@") +test "$?" -eq 0 || _error_exit "Terminating..." 1 +eval set -- "$GETOPT" + +EXISTING="" +REPO="https://github.com/SUSE/ceph.git" +BRANCH="ses7p" +while true ; do + case "$1" in + -b|--branch) BRANCH="$2" ; shift 2 ;; + -e|--existing) EXISTING="$2" ; shift 2 ;; + -h|--help) usage ;; # does not return + -r|--repo) REPO="$2" ; shift 2 ;; + --) shift ; break ;; + *) echo "Internal error" ; exit 1 ;; + esac +done + +if [ -n "$EXISTING" ] ; then + if [ ! -d "$EXISTING" ] ; then + _error_exit "Alleged directory ->$EXISTING<- is not a directory" 1 + fi + if [ ! -r "$EXISTING" ] ; then + _error_exit "I cannot read directory ->$EXISTING<-" 1 + fi + if [ ! -w "$EXISTING" ] ; then + _error_exit "I cannot write to directory ->$EXISTING<-" 1 + fi + if [ ! -x "$EXISTING" ] ; then + _error_exit "I cannot cd to directory ->$EXISTING<-" 1 + fi + CLONE="$EXISTING" +else + echo "Will make fresh clone of repo ->$REPO<- branch ->$BRANCH<-" + # TMPDIR=$(mktemp -d --tmpdir=$BASEDIR) # does not work due to http://tracker.ceph.com/issues/39556 + TMPDIR=$(mktemp -d) + echo "Created temporary temporary $TMPDIR" + git clone --progress --branch $BRANCH $REPO $TMPDIR + CLONE="$TMPDIR" +fi +_check_ceph_clone "$CLONE" + +pushd $CLONE +#_verify_git_describe +if [ -z "$TMPDIR" ] ; then + echo "Deleting stale tarballs from previous runs" + rm -rf *.bz2 +fi +echo "Running make-dist inside clone" +export DASHBOARD_FRONTEND_LANGS="ALL" +./make-dist +popd + +echo "Running \"osc rm *bz2\" to nuke previous tarball" +if type osc > /dev/null 2>&1 ; then + osc rm *bz2 +else + _error_exit "osc not installed - cannot continue" 1 +fi + +if stat --printf='' *.bz2 2>/dev/null ; then + _error_exit "There are still files ending in bz2 in the current directory - clean up yourself!" 1 +fi + +echo "Copying new spec file and tarball from $CLONE" +cp $CLONE/ceph.spec $CLONE/ceph*bz2 . + +if [ -n "$TMPDIR" ] ; then + echo "Nuking the clone" + rm -rf $TMPDIR +fi + +echo "Running \"osc add *bz2\" to register the new tarball" +osc add *bz2 + +echo "Running pre_checkin.sh" +if [ -f "pre_checkin.sh" ] ; then + bash pre_checkin.sh +else + echo "WARNING: no pre_checkin.sh script found!" +fi + +echo "Done! Run \"osc ci --noservice\" to commit." diff --git a/pre_checkin.env b/pre_checkin.env new file mode 100644 index 0000000..22a70bb --- /dev/null +++ b/pre_checkin.env @@ -0,0 +1,5 @@ +# build constraints in GB (see README-constraints.txt) +CEPH_BUILD_DISK_SIZE_GB="50" +CEPH_BUILD_MEMORY_SIZE_GB="8" +CEPH_TEST_BUILD_DISK_SIZE_GB="60" +CEPH_TEST_BUILD_MEMORY_SIZE_GB="10" diff --git a/pre_checkin.sh b/pre_checkin.sh new file mode 100644 index 0000000..f132fcc --- /dev/null +++ b/pre_checkin.sh @@ -0,0 +1,310 @@ +#!/bin/bash + +set -f + +function packages_files { + local spec_file=$1 + local exclude_pkg=$2 + local in_files=false + local result="" + + while IFS='' read -r line || [[ -n "$line" ]]; do + + case $line in + "%files "*) + pkg=`echo "$line" | sed 's/%files.* \(\w\+\)/\1/g'` + if [[ $pkg == $exclude_pkg ]]; then + in_files=false + continue + fi + in_files=true + continue + ;; + "%post"* | "%pre"* | "%preun"* | "%postun"* | "%changelog") + in_files=false + continue + ;; + esac + + result="" + changed=true + while [[ $in_files == true ]] && [[ $changed == true ]]; do + changed=false + case $line in + "%if"* | "" | "%defattr"* | "%endif"* | "%else"* | "#"* | "%docdir"*) + break + ;; + "%dir"*) + break # for now we'll ignore %dir entries + ;; + *) + result=`echo "$line" | sed -e 's/%config \(.*\)/\1/g' \ + -e 's/%config(.*) \(.*\)/\1/g' \ + -e 's/%attr(.*) \(.*\)/\1/g' \ + -e 's/%exclude \(.*\)/\1/g'` + if [[ ! $line == $result ]]; then + changed=true + line=$result + continue + fi + ;; + esac + + echo "$result" + done + done < $spec_file +} + +function get_package_summary { + local spec_file=$1 + local pkg_name=$2 + local in_package=false + + while IFS='' read -r line || [[ -n "$line" ]]; do + + case $line in + "%package "*) + pkg=`echo "$line" | sed 's/%package.* \(\w\+\)/\1/g'` + if [[ ! $pkg == $pkg_name ]]; then + in_package=false + else + in_package=true + fi + ;; + "%prep"* | "%build"* | "%install"*) + in_package=false + ;; + "Summary:"*) + if [[ $in_package == true ]]; then + echo $line + break + fi + ;; + esac + done < $spec_file +} + +function get_package_requires { + local spec_file=$1 + local pkg_name=$2 + local in_package=false + + while IFS='' read -r line || [[ -n "$line" ]]; do + + case $line in + "%package "*) + pkg=`echo "$line" | sed 's/%package.* \(\w\+\)/\1/g'` + if [[ ! $pkg == $pkg_name ]]; then + in_package=false + else + in_package=true + fi + ;; + "%prep"* | "%build"* | "%install"*) + in_package=false + ;; + "Requires:"*) + if [[ $in_package == true ]]; then + echo $line + fi + ;; + esac + done < $spec_file +} + +function get_package_description { + local spec_file=$1 + local pkg_name=$2 + local in_desc=false + + while IFS='' read -r line || [[ -n "$line" ]]; do + + case $line in + "%description "*) + pkg=`echo "$line" | sed 's/%description.* \(\w\+\)/\1/g'` + if [[ ! $pkg == $pkg_name ]]; then + in_desc=false + else + in_desc=true + fi + continue + ;; + "%prep"* | "%build"* | "%install"* | "%package"* | "%if"* | "%endif"*) + in_desc=false + continue + ;; + esac + + if [[ $in_desc == true ]]; then + echo "$line" + fi + done < $spec_file +} + +function transform_spec_file { + local spec_file=$1 + local include_pkg=$2 + local rm_files=$3 + local summary=$4 + local description=$5 + local requires=$6 + local in_package=false + local in_files=false + local in_desc=false + + while IFS='' read -r line || [[ -n "$line" ]]; do + + case $line in + "%bcond_with ceph_test_package"*) + line="%bcond_without ceph_test_package" + ;; + "Name:"*) + line="Name: $include_pkg" + ;; + "Summary:"*) + if [[ $in_package == false ]]; then + line="$summary" + fi + ;; + "Source0:"*) + line=`echo $line | sed 's/%{name}/ceph/g'` + ;; + "ExclusiveArch:"*) + line="ExclusiveArch: x86_64" + ;; + "%autosetup -p1") + line="%autosetup -p1 -n ceph-%version" + ;; + "Requires:"*) + if [[ $in_package == false ]]; then + line="" + fi + ;; + "Requires(post):"*) + if [[ $in_package == false ]]; then + IFS='' + for r in "$requires"; do + echo "$r" + done + fi + ;; + "%description"*) + if [[ $in_package == false ]]; then + in_desc=true + echo "$line" + echo "$description" + echo "" + continue + fi + ;; + "%package "*) + in_package=true + continue + ;; + "%prep"* | "%build"* | "%install"*) + in_package=false + in_desc=false + ;; + "%files "*) + pkg=`echo "$line" | sed 's/%files.* \(\w\+\)/\1/g'` + if [[ $pkg == $include_pkg ]]; then + in_files=false + else + in_files=true + continue + fi + ;; + "%changelog"*) + in_files=false + ;; + "%clean"*) + in_package=false + IFS='' + for rf in "$rm_files"; do + echo "$rf" + done + echo "" + echo "dirs=\`find %{buildroot} -type d -empty\`" + echo "while [[ -n \$dirs ]]; do" + echo " for d in \$dirs; do" + echo " rm -rf \$d" + echo " done" + echo "dirs=\`find %{buildroot} -type d -empty\`" + echo "done" + echo "" + ;; + "#"* | "%"*) + in_desc=false + ;; + esac + + if [[ $in_package == false ]] && [[ $in_files == false ]] && [[ $in_desc == false ]]; then + echo $line + else + if [[ $line == "%if"* ]] || [[ $line == "%endif"* ]]; then + echo $line + fi + fi + + done < $spec_file +} + +function generate_rm_exclude_files { + local exclude_list=$1 + local buildroot=$2 + + for f in $exclude_list; do + echo "rm -rf $buildroot$f" + done +} + +function insert_line_before { + local FILE=$1 + local line_to_insert=$2 + local match_regex=$3 + sed -i "/${match_regex}/i $line_to_insert" $FILE +} + +function set_build_constraints { + local FILE=$1 + shift + sed -i -e '/#!BuildConstraint/d' $FILE + for constraint in "$@"; do + sed -i -e "1s/^/#!BuildConstraint: $constraint\n/" $FILE + done +} + +PACKAGE="ceph-test" +SPEC_FILE="ceph.spec" + +source ./pre_checkin.env +if [ -z "$CEPH_BUILD_DISK_SIZE_GB" -o \ + -z "$CEPH_BUILD_MEMORY_SIZE_GB" -o \ + -z "$CEPH_TEST_BUILD_DISK_SIZE_GB" -o \ + -z "$CEPH_TEST_BUILD_MEMORY_SIZE_GB" ]; then + echo "ERROR: build constraints not set (see README-constraints.txt)"; + exit 1 +fi + +files=`packages_files $SPEC_FILE $PACKAGE` +if [[ "$?" == "1" ]]; then + echo "ERROR: " + echo $files + exit 0 +fi +rm_files=`generate_rm_exclude_files "$files" "%{buildroot}"` +summ=`get_package_summary $SPEC_FILE $PACKAGE` +desc=`get_package_description $SPEC_FILE $PACKAGE` +reqs=`get_package_requires $SPEC_FILE $PACKAGE` +sed -i -e 's/%bcond_without ceph_test_package/%bcond_with ceph_test_package/' $SPEC_FILE +transform_spec_file $SPEC_FILE $PACKAGE "$rm_files" "$summ" "$desc" "$reqs" > $PACKAGE.spec +insert_line_before "$PACKAGE.spec" "Source99: README-packaging.txt" "_insert_obs_source_lines_here" +insert_line_before "$PACKAGE.spec" "Source98: README-checkin.txt" "^Source99:" +insert_line_before "$PACKAGE.spec" "Source97: README-ceph-test.txt" "^Source98:" +insert_line_before "$PACKAGE.spec" "Source96: README-constraints.txt" "^Source97:" +insert_line_before "$PACKAGE.spec" "Source95: pre_checkin.env" "^Source96:" +insert_line_before "$PACKAGE.spec" "Source94: pre_checkin.sh" "^Source95:" +insert_line_before "$PACKAGE.spec" "Source93: checkin.sh" "^Source94:" +insert_line_before "$PACKAGE.spec" "Source92: ceph-rpmlintrc" "^Source93:" +set_build_constraints $SPEC_FILE "hardware:disk:size unit=G ${CEPH_BUILD_DISK_SIZE_GB}" "hardware:memory:size unit=G ${CEPH_BUILD_MEMORY_SIZE_GB}" +set_build_constraints "$PACKAGE.spec" "hardware:disk:size unit=G ${CEPH_TEST_BUILD_DISK_SIZE_GB}" "hardware:memory:size unit=G ${CEPH_TEST_BUILD_MEMORY_SIZE_GB}"