# vim: set noexpandtab ts=8 sw=8 : # # spec file for package ceph # # Copyright (C) 2004-2016 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/ # %bcond_with ocf %bcond_without cephfs_java %bcond_with tests %bcond_with xio %ifnarch s390 s390x %bcond_without tcmalloc %else # no gperftools/tcmalloc on s390(x) %bcond_with tcmalloc %endif %bcond_without libs_compat %bcond_with lowmem_builder %if 0%{?fedora} || 0%{?rhel} %bcond_without selinux %endif %if 0%{?suse_version} %bcond_with selinux %endif # LTTng-UST enabled on Fedora, RHEL 6+, and SLE (not openSUSE) %if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version} %if ! 0%{?is_opensuse} %bcond_without lttng %endif %endif %if %{with selinux} # get selinux policy version %{!?_selinux_policy_version: %global _selinux_policy_version %(sed -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp 2>/dev/null || echo 0.0.0)} %endif %global _hardened_build 1 %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} # unify libexec for all targets %global _libexecdir %{_exec_prefix}/lib ################################################################################# # common ################################################################################# Name: ceph Version: 10.2.7 Release: 48%{?dist}.1 Epoch: 2 Summary: User space components of the Ceph file system License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT %if 0%{?suse_version} Group: System/Filesystems %endif URL: http://ceph.com/ Source0: https://download.ceph.com/tarballs/%{name}-%{version}.tar.bz2 Source101: 0001-Fix-transfer-encoding-chunked-and-fast_forward_reque.patch # This is a single diff from rocksdb commits 92749e88f5..e15382c09c # since 'patch' could not apply all the individual patches generated # by 'git format-patch' automatically. # This patch excludes the tools/rdb and doc changes since they are not # included in the build, so the files are not present in the tarball. Source102: 0001-update-rocksdb.patch # patches_base=v10.2.7 Patch0004: 0004-rgw_file-implement-reliable-has-children-check-unlin.patch Patch0005: 0005-rgw_file-fix-missing-unlock-in-unlink.patch Patch0006: 0006-pybind-fix-incorrect-exception-format-strings.patch Patch0007: 0007-librbd-is_exclusive_lock_owner-API-should-ping-OSD.patch Patch0008: 0008-ceph-disk-Add-fix-subcommand.patch Patch0009: 0009-ceph-disk-Add-unit-test-for-fix-command.patch Patch0010: 0010-ceph-disk-Add-more-fix-targets.patch Patch0011: 0011-ceph-disk-Add-system-option-for-fix-command.patch Patch0012: 0012-rgw_file-introduce-rgw_lookup-type-hints.patch Patch0013: 0013-rgw_file-chunked-readdir.patch Patch0014: 0014-rgw_file-don-t-expire-directories-being-read.patch Patch0015: 0015-rgw-change-log-level-to-20-for-System-already-conver.patch Patch0016: 0016-rgw_file-fix-readdir-after-dirent-change.patch Patch0017: 0017-rgw_file-pre-compute-unix-attrs-in-write_finish.patch Patch0018: 0018-rgw-error-more-verbosely-in-RGWRados-create_pool.patch Patch0019: 0019-osd-pglog-clean-up-divergent_priors-off-disk-when-ru.patch Patch0020: 0020-pglog-require-users-set-a-config-option-before-ignor.patch Patch0021: 0021-osd-ReplicatedPG-limit-the-number-of-concurrently-tr.patch Patch0022: 0022-PrimaryLogPG-reimplement-osd_snap_trim_sleep-within-.patch Patch0023: 0023-rgw-add-empty_on_enoent-flag-to-RGWSimpleRadosReadCR.patch Patch0024: 0024-rgw-use-RGWShardCollectCR-for-RGWReadDataSyncStatusC.patch Patch0025: 0025-rgw-add-dout_prefix-for-rgw_data_sync.cc.patch Patch0026: 0026-rgw-add-json-decoders-for-data-sync-status.patch Patch0027: 0027-rgw-don-t-ignore-ENOENT-in-RGWRemoteDataLog-read_syn.patch Patch0028: 0028-rgw-expose-sync-managers-through-RGWRados.patch Patch0029: 0029-rgw-change-read_sync_status-interface.patch Patch0030: 0030-rgw-use-separate-cr-manager-for-read_sync_status.patch Patch0031: 0031-rgw-add-rest-handlers-to-query-sync-status.patch Patch0032: 0032-rgw-enable-async-calls-to-time_log_trim.patch Patch0033: 0033-rgw-add-RGWRadosTimelogTrimCR.patch Patch0034: 0034-rgw-add-RGWDataLogTrimCR.patch Patch0035: 0035-rgw-add-RGWSyncLogTrimThread-to-RGWRados.patch Patch0036: 0036-rgw-pass-cr-registry-to-managers.patch Patch0037: 0037-rgw-use-factory-function-to-hide-RGWDataLogTrimCR.patch Patch0038: 0038-rgw-add-static-function-to-generate-lock-cookie.patch Patch0039: 0039-rgw-hold-lock-for-data-log-trimming.patch Patch0040: 0040-rgw-DataLogTrimCR-renamed-zone-to-zone_id.patch Patch0041: 0041-rgw-allow-RGWPeriodConfig-to-be-stored-separately.patch Patch0042: 0042-rgw-synchronize-period-config-with-period-updates.patch Patch0043: 0043-rgw-load-period-config-separately-when-there-s-no-cu.patch Patch0044: 0044-radosgw-admin-new-global-quota-commands-update-perio.patch Patch0045: 0045-doc-rgw-update-section-on-global-quotas.patch Patch0046: 0046-ceph-disk-Populate-mount-options-when-running-list.patch Patch0047: 0047-rgw-don-t-init-rgw_obj-from-rgw_obj_key-when-it-s-in.patch Patch0048: 0048-radosgw-admin-use-zone-id-when-creating-a-zone.patch Patch0049: 0049-rgw-data-sync-skips-slo-data-when-syncing-the-manife.patch Patch0050: 0050-rgw-RGWGetObj-applies-skip_manifest-flag-to-SLO.patch Patch0051: 0051-rgw-allow-system-users-to-read-SLO-parts.patch Patch0052: 0052-radosgw-admin-warn-that-realm-rename-does-not-update.patch Patch0053: 0053-rgw-add-bucket-size-limit-check-to-radosgw-admin.patch Patch0054: 0054-rgw-swift-disable-revocation-thread-if-sleep-0-cache.patch Patch0055: 0055-ceph-disk-enable-directory-backed-OSD-at-boot-time.patch Patch0056: 0056-cls-rgw-list_plain_entries-stops-before-bi_log-entri.patch Patch0057: 0057-rbd-mirror-prevent-infinite-loop-when-computing-repl.patch Patch0058: 0058-librbd-add-no-op-event-when-promoting-an-image.patch Patch0059: 0059-rgw-remove-unnecessary-output.patch Patch0060: 0060-ceph-disk-separate-ceph-osd-check-needs-logs.patch Patch0061: 0061-rgw_file-v3-fix-write-timer-action.patch Patch0062: 0062-rgw_file-remove-hidden-uxattr-objects-from-buckets-o.patch Patch0063: 0063-rgw_file-remove-post-unlink-lookup-check.patch Patch0064: 0064-rgw_file-release-rgw_fh-lock-and-ref-on-ENOTEMPTY.patch Patch0065: 0065-ceph-disk-dmcrypt-activate-must-use-the-same-cluster.patch Patch0066: 0066-rgw_file-store-bucket-uxattrs-on-the-bucket.patch Patch0067: 0067-rgw-admin-fix-bucket-limit-check-argparse-div-0.patch Patch0068: 0068-osd-Reset-the-snaptrimmer-on-shutdown.patch Patch0069: 0069-osd-do-not-default-abort-on-leaked-pg-refs.patch Patch0070: 0070-osd-Object-level-shard-errors-are-tracked-and-used-i.patch Patch0071: 0071-rbd-properly-decode-features-when-using-image-name-o.patch Patch0072: 0072-librbd-filter-expected-error-codes-from-is_exclusive.patch Patch0073: 0073-rgw-dont-spawn-error_repo-until-lease-is-acquired.patch Patch0074: 0074-rgw-fix-memory-leaks.patch Patch0075: 0075-rgw-use-separate-http_manager-for-read_sync_status.patch Patch0076: 0076-rgw-fix-for-broken-yields-in-RGWMetaSyncShardCR.patch Patch0077: 0077-rgw-add-and-operators-for-period-history-cursor.patch Patch0078: 0078-rgw-fix-marker-comparison-to-detect-end-of-mdlog-per.patch Patch0079: 0079-rgw-clean-up-RGWInitDataSyncStatusCoroutine.patch Patch0080: 0080-rgw-RGWBackoffControlCR-only-retries-until-success.patch Patch0081: 0081-rgw-store-realm-epoch-with-sync-status-markers.patch Patch0082: 0082-rgw-change-metadata-read_sync_status-interface.patch Patch0083: 0083-rgw-use-RGWShardCollectCR-for-RGWReadSyncStatusCorou.patch Patch0084: 0084-rgw-period-commit-uses-sync-status-markers.patch Patch0085: 0085-rgw-require-yes-i-really-mean-it-to-promote-zone-wit.patch Patch0086: 0086-rgw-remove-rgw_realm_reconfigure_delay.patch Patch0087: 0087-rgw-add-a-field-to-store-generic-user-data-in-the-bu.patch Patch0088: 0088-rgw-cls-ceph-timespan-tag_timeout-wrong-units.patch Patch0089: 0089-fix-infinite-loop-in-rest-api-for-log-list.patch Patch0090: 0090-rgw-RGWMetadataLog-list_entries-no-longer-splices.patch Patch0091: 0091-rgw-fix-RGWMetadataLog-list_entries-for-null-last_ma.patch Patch0092: 0092-rgw-rest-handlers-for-mdlog-and-datalog-list-dont-lo.patch Patch0093: 0093-message-osd-add-request-response-messages-for-delete.patch Patch0094: 0094-osd-add-a-delete-flag-to-missing-items-and-related-f.patch Patch0095: 0095-osd-PG-handle-deletes-in-MissingLoc.patch Patch0096: 0096-osd-PrimaryLogPG-PGBackend-handle-deletes-during-rec.patch Patch0097: 0097-osd-PrimaryLogPG-check-whether-clones-missing-from-t.patch Patch0098: 0098-osd-PGLog-client-deletes-are-now-part-of-the-missing.patch Patch0099: 0099-osd-PGLog.h-handle-lost-delete-entries-the-same-as-c.patch Patch0100: 0100-osd-PGLog-reset-complete_to-when-appending-lost_dele.patch Patch0101: 0101-include-ceph_features.h-add-feature-bit-for-handling.patch Patch0102: 0102-OSDMap-OSDMonitor-add-flag-for-all-osds-supporting-r.patch Patch0103: 0103-osd_types-Objecter-make-recovery_deletes-feature-cre.patch Patch0104: 0104-osd_types-PGLog-encode-missing-based-on-features.patch Patch0105: 0105-PGLog-PrimaryLogPG-rebuild-the-missing-set-when-the-.patch Patch0106: 0106-osd-ReplicatedPG-explicitly-remove-objects-when-dele.patch Patch0107: 0107-osd-PrimaryLogPG-skip-deleted-missing-objects-in-pg-.patch Patch0108: 0108-osd-PG-downgrade-warning-about-obsolete-rollback-to-.patch Patch0109: 0109-osd-PrimaryLogPG-PGBackend-complete-callback-even-if.patch Patch0110: 0110-PGLog-store-extra-duplicate-ops-beyond-the-normal-lo.patch Patch0111: 0111-PGLog-continuation-store-extra-duplicate-ops-beyond-.patch Patch0112: 0112-osd-PG-fix-lost-unfound-delete-when-there-are-no-mis.patch Patch0113: 0113-osd-PGBackend-delete-reply-if-fails-to-complete-dele.patch Patch0114: 0114-osd-PGBackend-release-a-msg-using-msg-put-not-delete.patch Patch0115: 0115-ceph-disk-dmcrypt-cluster-must-default-to-ceph.patch Patch0116: 0116-osd-PGLog-write-only-changed-dup-entries.patch Patch0117: 0117-mon-OSDMonitor-set-recovery_deletes-on-new-cluster-b.patch Patch0118: 0118-rgw-meta-sync-thread-crash-at-RGWMetaSyncShardCR.patch Patch0119: 0119-rgw-lease_stack-use-reset-method-instead-of-assignme.patch Patch0120: 0120-rgw-fix-race-in-RGWCompleteMultipart.patch Patch0121: 0121-rgw-bucket-index-check-in-radosgw-admin-removes-vali.patch Patch0122: 0122-cls-refcount-store-and-use-list-of-retired-tags.patch Patch0123: 0123-rgw-Fix-up-to-1000-entries-at-a-time-in-check_bad_in.patch Patch0124: 0124-rgw-multipart-copy-part-remove-for-s3-java-sdk-reque.patch Patch0125: 0125-rgw-Do-not-decrement-stats-cache-when-the-cache-valu.patch Patch0126: 0126-rgw-Prevent-overflow-of-stats-cached-values.patch Patch0127: 0127-ceph-disk-Reporting-sys-directory-in-get_partition_d.patch Patch0128: 0128-ceph-disk-Adding-retry-loop-in-get_partition_dev.patch Patch0129: 0129-rgw-replace-with-20-in-canonical-query-string-for-s3.patch Patch0130: 0130-rgw-fix-marker-encoding-problem.patch Patch0131: 0131-ceph-disk-set-the-default-systemd-unit-timeout-to-3h.patch Patch0132: 0132-os-export-compact-interface-in-ObjectStore-and-Objec.patch Patch0133: 0133-osd-new-command-compact-via-tell-daemon.patch Patch0134: 0134-test-add-test-of-ceph-compact-command.patch Patch0135: 0135-osd-default-osd_scrub_during_recovery-false.patch Patch0136: 0136-osd-OSDMap-don-t-set-weight-to-IN-when-OSD-is-destro.patch Patch0137: 0137-radosgw-fix-awsv4-header-line-sort-order.patch Patch0138: 0138-rgw-release-cls-lock-if-taken-in-RGWCompleteMultipar.patch Patch0139: 0139-RGW-Multipart-upload-may-double-the-quota.patch Patch0140: 0140-qa-workunits-cephtool-test.sh-add-sudo-for-daemon-co.patch Patch0141: 0141-rgw-fix-radosgw-admin-data-sync-run-crash.patch Patch0142: 0142-osd-Fixes-for-osd_scrub_during_recovery-handling.patch Patch0143: 0143-kv-RocksDBStore-Add-table-options-for-filter-and-ind.patch Patch0144: 0144-kv-Makefile-fix-rocksdb-build-options-USE_RTTI-1.patch Patch0145: 0145-tests-unittest_rocksdb_option-remove-deprecated-opti.patch Patch0146: 0146-kv-RocksDBStore-convert-get-to-use-rocksdb-Get-inste.patch Patch0147: 0147-RocksDBStore-use-Get-for-multiget.patch Patch0148: 0148-Logging-rocksdb-transaction-in-ceph-log.patch Patch0149: 0149-kv-RocksDBStore-no-reason-to-make-write_batch-using-.patch Patch0150: 0150-kv-RocksDBStore-dump-extended-stats.patch Patch0151: 0151-src-kv-RocksDBStore.cc-fix-typos.patch Patch0152: 0152-os-kv-beautify-kvdb-statistics.patch Patch0153: 0153-kv-RocksDBStore-abort-if-rocksdb-EIO-don-t-return-in.patch Patch0154: 0154-include-assert-define-ceph_abort_msg-cct-msg.patch Patch0155: 0155-rocksdb-remove-experimental-status.patch Patch0156: 0156-tools-Add-backend-option-to-ceph-osdomap-tool-defaul.patch Patch0157: 0157-Makefile-rocksdb.am-update-for-new-rocksdb-version.patch Patch0158: 0158-tools-ceph-kvstore-tool-add-destination-store-type-t.patch Patch0159: 0159-tools-ceph-kvstore-tool-clean-up-destination-store-o.patch Patch0160: 0160-common-options.cc-Set-Filestore-rocksdb-compaction-r.patch Patch0161: 0161-common-options-enable-multiple-rocksdb-compaction-th.patch # patches_ignore=DROP-IN-RPM %if 0%{?suse_version} %if 0%{?is_opensuse} ExclusiveArch: x86_64 aarch64 ppc64 ppc64le %else ExclusiveArch: x86_64 %endif %endif ExclusiveArch: x86_64 ppc64le ################################################################################# # dependencies that apply across all distro families ################################################################################# Requires: ceph-osd = %{epoch}:%{version}-%{release} Requires: ceph-mds = %{epoch}:%{version}-%{release} Requires: ceph-mon = %{epoch}:%{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 BuildRequires: /usr/share/selinux/devel/policyhelp %endif BuildRequires: boost-devel BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel BuildRequires: gcc-c++ BuildRequires: gdbm %if 0%{with tcmalloc} BuildRequires: gperftools-devel %endif BuildRequires: hdparm BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel BuildRequires: libatomic_ops-devel BuildRequires: libblkid-devel >= 2.17 BuildRequires: libcurl-devel BuildRequires: libudev-devel BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: make BuildRequires: parted BuildRequires: perl BuildRequires: pkgconfig BuildRequires: python BuildRequires: python-devel BuildRequires: python-nose BuildRequires: python-requests BuildRequires: python-sphinx BuildRequires: python-virtualenv BuildRequires: snappy-devel BuildRequires: udev BuildRequires: util-linux BuildRequires: valgrind-devel BuildRequires: xfsprogs BuildRequires: xfsprogs-devel BuildRequires: xmlstarlet BuildRequires: yasm ################################################################################# # distro-conditional dependencies ################################################################################# %if 0%{?suse_version} BuildRequires: pkgconfig(systemd) BuildRequires: systemd-rpm-macros BuildRequires: systemd %{?systemd_requires} PreReq: %fillup_prereq BuildRequires: net-tools BuildRequires: libbz2-devel BuildRequires: btrfsprogs BuildRequires: mozilla-nss-devel BuildRequires: keyutils-devel BuildRequires: libopenssl-devel BuildRequires: lsb-release BuildRequires: openldap2-devel BuildRequires: python-Cython %endif %if 0%{?fedora} || 0%{?rhel} Requires: systemd BuildRequires: boost-random BuildRequires: btrfs-progs BuildRequires: nss-devel BuildRequires: keyutils-libs-devel BuildRequires: openldap-devel BuildRequires: openssl-devel BuildRequires: redhat-lsb-core BuildRequires: Cython %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 # expat and fastcgi for RGW %if 0%{?suse_version} BuildRequires: libexpat-devel BuildRequires: FastCGI-devel %endif %if 0%{?rhel} || 0%{?fedora} BuildRequires: expat-devel BuildRequires: fcgi-devel %endif #hardened-cc1 %if 0%{?fedora} || 0%{?rhel} BuildRequires: redhat-rpm-config %endif # Accelio IB/RDMA %if 0%{with xio} BuildRequires: libxio-devel %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. ################################################################################# # packages ################################################################################# %package base Summary: Ceph Base Package Group: System Environment/Base Requires: ceph-common = %{epoch}:%{version}-%{release} Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: librados2 = %{epoch}:%{version}-%{release} Requires: libcephfs1 = %{epoch}:%{version}-%{release} Requires: librgw2 = %{epoch}:%{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{epoch}:%{version}-%{release} %endif Requires: python Requires: python-requests Requires: python-setuptools Requires: grep Requires: xfsprogs Requires: logrotate Requires: util-linux Requires: hdparm Requires: cryptsetup Requires: findutils Requires: which %if 0%{?suse_version} Recommends: ntp-daemon %endif %if 0%{with xio} Requires: libxio %endif Obsoletes: ceph < %{epoch}:10 %description base Base is the package that includes all the files shared amongst ceph servers %package -n ceph-common Summary: Ceph Common Group: System Environment/Base Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: librados2 = %{epoch}:%{version}-%{release} Requires: libcephfs1 = %{epoch}:%{version}-%{release} Requires: python-rados = %{epoch}:%{version}-%{release} Requires: python-rbd = %{epoch}:%{version}-%{release} Requires: python-cephfs = %{epoch}:%{version}-%{release} Requires: python-requests Requires: gperftools-libs >= 2.4-8.el7 %{?systemd_requires} %if 0%{?suse_version} Requires(pre): pwdutils %endif %if 0%{with xio} Requires: libxio %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 Group: System Environment/Base Requires: ceph-base = %{epoch}:%{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 Group: System Environment/Base Requires: ceph-base = %{epoch}:%{version}-%{release} # For ceph-rest-api %if 0%{?fedora} || 0%{?rhel} Requires: python-flask %endif %if 0%{?suse_version} Requires: python-Flask %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 fuse Summary: Ceph fuse-based client Group: System Environment/Base %description fuse FUSE based client for Ceph distributed network file system %package -n rbd-fuse Summary: Ceph fuse-based client Group: System Environment/Base Requires: librados2 = %{epoch}:%{version}-%{release} Requires: librbd1 = %{epoch}:%{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 Group: System Environment/Base Requires: ceph-common = %{epoch}:%{version}-%{release} Requires: librados2 = %{epoch}:%{version}-%{release} %description -n rbd-mirror Daemon for mirroring RBD images between Ceph clusters, streaming changes asynchronously. %package -n rbd-nbd Summary: Ceph RBD client base on NBD Group: System Environment/Base Requires: librados2 = %{epoch}:%{version}-%{release} Requires: librbd1 = %{epoch}:%{version}-%{release} %description -n rbd-nbd NBD based client to map Ceph rbd images to local device %package radosgw Summary: Rados REST gateway Group: Development/Libraries Requires: ceph-common = %{epoch}:%{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{epoch}:%{version}-%{release} %endif Requires: librados2 = %{epoch}:%{version}-%{release} Requires: librgw2 = %{epoch}:%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Requires: mailcap %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. %if %{with ocf} %package resource-agents Summary: OCF-compliant resource agents for Ceph daemons Group: System Environment/Base License: LGPL-2.0 Requires: ceph-base = %{epoch}:%{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 Group: System Environment/Base Requires: ceph-base = %{epoch}:%{version}-%{release} # for sgdisk, used by ceph-disk %if 0%{?fedora} || 0%{?rhel} Requires: gdisk %endif %if 0%{?suse_version} Requires: gptfdisk %endif Requires: parted >= 3.1-26 %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. %package -n librados2 Summary: RADOS distributed object store client library Group: System Environment/Libraries License: LGPL-2.0 %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{epoch}:%{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 librados2-devel Summary: RADOS headers Group: Development/Libraries License: LGPL-2.0 Requires: librados2 = %{epoch}:%{version}-%{release} Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} %description -n librados2-devel This package contains libraries and headers needed to develop programs that use RADOS object store. %package -n librgw2 Summary: RADOS gateway client library Group: System Environment/Libraries License: LGPL-2.0 Requires: librados2 = %{epoch}:%{version}-%{release} Requires: libcurl >= 7.29.0-32 %description -n librgw2 This package provides a library implementation of the RADOS gateway (distributed object store with S3 and Swift personalities). %package -n librgw2-devel Summary: RADOS gateway client library Group: Development/Libraries License: LGPL-2.0 Requires: librados2 = %{epoch}:%{version}-%{release} %description -n librgw2-devel This package contains libraries and headers needed to develop programs that use RADOS gateway client library. %package -n python-rados Summary: Python libraries for the RADOS object store Group: System Environment/Libraries License: LGPL-2.0 Requires: librados2 = %{epoch}:%{version}-%{release} Obsoletes: python-ceph < %{epoch}:%{version}-%{release} %description -n python-rados This package contains Python libraries for interacting with Cephs RADOS object store. %package -n libradosstriper1 Summary: RADOS striping interface Group: System Environment/Libraries License: LGPL-2.0 Requires: librados2 = %{epoch}:%{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 libradosstriper1-devel Summary: RADOS striping interface headers Group: Development/Libraries License: LGPL-2.0 Requires: libradosstriper1 = %{epoch}:%{version}-%{release} Requires: librados2-devel = %{epoch}:%{version}-%{release} Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} %description -n libradosstriper1-devel This package contains libraries and headers needed to develop programs that use RADOS striping interface. %package -n librbd1 Summary: RADOS block device client library Group: System Environment/Libraries License: LGPL-2.0 Requires: librados2 = %{epoch}:%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{epoch}:%{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 librbd1-devel Summary: RADOS block device headers Group: Development/Libraries License: LGPL-2.0 Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: librados2-devel = %{epoch}:%{version}-%{release} Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} %description -n librbd1-devel This package contains libraries and headers needed to develop programs that use RADOS block device. %package -n python-rbd Summary: Python libraries for the RADOS block device Group: System Environment/Libraries License: LGPL-2.0 Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: python-rados = %{epoch}:%{version}-%{release} Obsoletes: python-ceph < %{epoch}:%{version}-%{release} %description -n python-rbd This package contains Python libraries for interacting with Cephs RADOS block device. %package -n libcephfs1 Summary: Ceph distributed file system client library Group: System Environment/Libraries License: LGPL-2.0 %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{epoch}:%{version}-%{release} Obsoletes: ceph-libcephfs %endif %description -n libcephfs1 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 libcephfs1-devel Summary: Ceph distributed file system headers Group: Development/Libraries License: LGPL-2.0 Requires: libcephfs1 = %{epoch}:%{version}-%{release} Requires: librados2-devel = %{epoch}:%{version}-%{release} Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} %description -n libcephfs1-devel This package contains libraries and headers needed to develop programs that use Cephs distributed file system. %package -n python-cephfs Summary: Python libraries for Ceph distributed file system Group: System Environment/Libraries License: LGPL-2.0 Requires: libcephfs1 = %{epoch}:%{version}-%{release} Requires: python-rados = %{epoch}:%{version}-%{release} Obsoletes: python-ceph < %{epoch}:%{version}-%{release} %description -n python-cephfs This package contains Python libraries for interacting with Cephs distributed file system. %package -n ceph-test Summary: Ceph benchmarks and test tools Group: System Environment/Libraries License: LGPL-2.0 Requires: ceph-common Requires: xmlstarlet %description -n ceph-test This package contains Ceph benchmarks and test tools. %if 0%{with cephfs_java} %package -n libcephfs_jni1 Summary: Java Native Interface library for CephFS Java bindings Group: System Environment/Libraries License: LGPL-2.0 Requires: java Requires: libcephfs1 = %{epoch}:%{version}-%{release} %description -n libcephfs_jni1 This package contains the Java Native Interface library for CephFS Java bindings. %package -n libcephfs_jni1-devel Summary: Development files for CephFS Java Native Interface library Group: System Environment/Libraries License: LGPL-2.0 Requires: java Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release} Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} %description -n libcephfs_jni1-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 Group: System Environment/Libraries License: LGPL-2.0 Requires: java Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release} Requires: junit BuildRequires: junit %description -n cephfs-java This package contains the Java libraries for the Ceph File System. %endif %if 0%{with selinux} %package selinux Summary: SELinux support for Ceph MON, OSD and MDS Group: System Environment/Base Requires: ceph-base = %{epoch}:%{version}-%{release} Requires: policycoreutils, libselinux-utils 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 %if 0%{with libs_compat} %package libs-compat Summary: Meta package to include ceph libraries Group: System Environment/Libraries License: LGPL-2.0 Obsoletes: ceph-libs Requires: librados2 = %{epoch}:%{version}-%{release} Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: libcephfs1 = %{epoch}:%{version}-%{release} Provides: ceph-libs %description libs-compat This is a meta package, that pulls in librados2, librbd1 and libcephfs1. It is included for backwards compatibility with distributions that depend on the former ceph-libs package, which is now split up into these three subpackages. Packages still depending on ceph-libs should be fixed to depend on librados2, librbd1 or libcephfs1 instead. %endif %package devel-compat Summary: Compatibility package for Ceph headers Group: Development/Libraries License: LGPL-2.0 Obsoletes: ceph-devel Requires: librados2-devel = %{epoch}:%{version}-%{release} Requires: libradosstriper1-devel = %{epoch}:%{version}-%{release} Requires: librbd1-devel = %{epoch}:%{version}-%{release} Requires: libcephfs1-devel = %{epoch}:%{version}-%{release} %if 0%{with cephfs_java} Requires: libcephfs_jni1-devel = %{epoch}:%{version}-%{release} %endif Provides: ceph-devel %description devel-compat This is a compatibility package to accommodate ceph-devel split into librados2-devel, librbd1-devel and libcephfs1-devel. Packages still depending on ceph-devel should be fixed to depend on librados2-devel, librbd1-devel, or libcephfs1-devel instead. %package -n python-ceph-compat Summary: Compatibility package for Cephs python libraries Group: System Environment/Libraries License: LGPL-2.0 Obsoletes: python-ceph Requires: python-rados = %{epoch}:%{version}-%{release} Requires: python-rbd = %{epoch}:%{version}-%{release} Requires: python-cephfs = %{epoch}:%{version}-%{release} Provides: python-ceph %description -n python-ceph-compat This is a compatibility package to accommodate python-ceph split into python-rados, python-rbd and python-cephfs. Packages still depending on python-ceph should be fixed to depend on python-rados, python-rbd or python-cephfs instead. ################################################################################# # common ################################################################################# %prep %autosetup -p1 # Rewrite .git_version file. # `rdopkg update-patches` will automatically update this macro: %global commit cf7751bcd460c757e596d3ee2991884e13c37b96 # and then the macro gets written into .git_version: echo %{commit} > src/.git_version echo v%{version}-%{release} >> src/.git_version # submodule patches must be handled separately # https://github.com/redhat-openstack/rdopkg/issues/16 pushd src/civetweb patch -p1 --fuzz=0 -i %{SOURCE101} popd # submodule patches must be handled separately # https://github.com/redhat-openstack/rdopkg/issues/16 pushd src/rocksdb patch -p1 --fuzz=0 -i %{SOURCE102} popd %build %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 ./autogen.sh %if %{with lowmem_builder} RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" %endif export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` %{configure} CPPFLAGS="$java_inc" \ --prefix=/usr \ --libexecdir=%{_libexecdir} \ --localstatedir=%{_localstatedir} \ --sysconfdir=%{_sysconfdir} \ %if 0%{?rhel} && ! 0%{?centos} --enable-subman \ %endif --with-systemdsystemunitdir=%_unitdir \ --docdir=%{_docdir}/ceph \ --with-man-pages \ --mandir="%_mandir" \ --with-nss \ --without-cryptopp \ --with-debug \ %if 0%{with cephfs_java} --enable-cephfs-java \ %endif %if 0%{with xio} --enable-xio \ %endif %if 0%{with selinux} --with-selinux \ %endif --with-librocksdb-static=check \ --with-rados \ --with-radosgw \ --with-radosstriper \ %if %{without lttng} --without-lttng \ --without-babeltrace \ %endif $CEPH_EXTRA_CONFIGURE_ARGS \ %{?_with_ocf} \ %if %{without tcmalloc} --without-tcmalloc \ %endif CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" %if %{with lowmem_builder} %if 0%{?jobs} > 8 %define _smp_mflags -j8 %endif %endif make %{?_smp_mflags} %if 0%{with tests} %check # run in-tree unittests make %{?_smp_mflags} check %endif %install make DESTDIR=%{buildroot} install find %{buildroot} -type f -name "*.la" -exec rm -f {} ';' find %{buildroot} -type f -name "*.a" -exec rm -f {} ';' 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}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name} %endif install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf install -m 0755 -D systemd/ceph %{buildroot}%{_sbindir}/rcceph install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_libexecdir}/systemd/system-preset/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 chmod 0644 %{buildroot}%{_docdir}/ceph/sample.fetch_config # firewall templates and /sbin/mount.ceph symlink %if 0%{?suse_version} install -m 0644 -D etc/sysconfig/SuSEfirewall2.d/services/ceph-mon %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon install -m 0644 -D etc/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds 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 install -m 0644 -D udev/60-ceph-by-parttypeuuid.rules %{buildroot}%{_udevrulesdir}/60-ceph-by-parttypeuuid.rules install -m 0644 -D udev/95-ceph-osd.rules %{buildroot}%{_udevrulesdir}/95-ceph-osd.rules #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/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 %clean rm -rf %{buildroot} ################################################################################# # files and systemd scriptlets ################################################################################# %files %files base %defattr(-,root,root,-) %docdir %{_docdir} %dir %{_docdir}/ceph %{_docdir}/ceph/sample.ceph.conf %{_docdir}/ceph/sample.fetch_config %{_bindir}/crushtool %{_bindir}/monmaptool %{_bindir}/osdmaptool %{_bindir}/ceph-run %{_bindir}/ceph-detect-init %{_bindir}/ceph-client-debug %{_bindir}/cephfs %{_unitdir}/ceph-create-keys@.service %{_libexecdir}/systemd/system-preset/50-ceph.preset %{_sbindir}/ceph-create-keys %{_sbindir}/rcceph %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* %if %{with lttng} %{_libdir}/libos_tp.so* %{_libdir}/libosd_tp.so* %endif %config %{_sysconfdir}/bash_completion.d/ceph %config(noreplace) %{_sysconfdir}/logrotate.d/ceph %if 0%{?fedora} || 0%{?rhel} %config(noreplace) %{_sysconfdir}/sysconfig/ceph %endif %if 0%{?suse_version} %{_localstatedir}/adm/fillup-templates/sysconfig.* %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds %endif %{_unitdir}/ceph.target %{python_sitelib}/ceph_detect_init* %{python_sitelib}/ceph_disk* %{_mandir}/man8/ceph-deploy.8* %{_mandir}/man8/ceph-detect-init.8* %{_mandir}/man8/ceph-create-keys.8* %{_mandir}/man8/ceph-run.8* %{_mandir}/man8/crushtool.8* %{_mandir}/man8/osdmaptool.8* %{_mandir}/man8/monmaptool.8* #set up placeholder directories %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 %post base /sbin/ldconfig %if 0%{?suse_version} %fillup_only if [ $1 -ge 1 ] ; then /usr/bin/systemctl preset ceph.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph.target %endif /usr/bin/systemctl start ceph.target >/dev/null 2>&1 || : %preun base %if 0%{?suse_version} %service_del_preun ceph.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph.target %endif %postun base /sbin/ldconfig %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph.target %endif ################################################################################# %files common %defattr(-,root,root,-) %{_bindir}/ceph %{_bindir}/ceph-authtool %{_bindir}/ceph-conf %{_bindir}/ceph-dencoder %{_bindir}/ceph-rbdnamer %{_bindir}/ceph-syn %{_bindir}/ceph-crush-location %{_bindir}/cephfs-data-scan %{_bindir}/cephfs-journal-tool %{_bindir}/cephfs-table-tool %{_bindir}/rados %{_bindir}/rbd %{_bindir}/rbd-replay %{_bindir}/rbd-replay-many %{_bindir}/rbdmap %{_sbindir}/mount.ceph %if 0%{?suse_version} /sbin/mount.ceph %endif %if %{with lttng} %{_bindir}/rbd-replay-prep %endif %{_bindir}/ceph-post-file %{_bindir}/ceph-brag %{_tmpfilesdir}/ceph-common.conf %{_mandir}/man8/ceph-authtool.8* %{_mandir}/man8/ceph-conf.8* %{_mandir}/man8/ceph-dencoder.8* %{_mandir}/man8/ceph-rbdnamer.8* %{_mandir}/man8/ceph-syn.8* %{_mandir}/man8/ceph-post-file.8* %{_mandir}/man8/ceph.8* %{_mandir}/man8/cephfs.8* %{_mandir}/man8/mount.ceph.8* %{_mandir}/man8/rados.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* %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/rados %config %{_sysconfdir}/bash_completion.d/rbd %config(noreplace) %{_sysconfdir}/ceph/rbdmap %{_unitdir}/rbdmap.service %{python_sitelib}/ceph_argparse.py* %{python_sitelib}/ceph_daemon.py* %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 -ge 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 /usr/bin/systemctl start ceph-mds.target >/dev/null 2>&1 || : %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 test -n "$FIRST_ARG" || FIRST_ARG=$1 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-mds@\*.service ceph-mds.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-mds@\*.service ceph-mds.target %endif if [ $FIRST_ARG -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 mon %{_bindir}/ceph-mon %{_bindir}/ceph-rest-api %{_mandir}/man8/ceph-mon.8* %{_mandir}/man8/ceph-rest-api.8* %{python_sitelib}/ceph_rest_api.py* %{_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 -ge 1 ] ; then /usr/bin/systemctl preset ceph-create-keys@\*.service ceph-mon@\*.service ceph-mon.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-create-keys@\*.service ceph-mon@\*.service ceph-mon.target %endif /usr/bin/systemctl start ceph-mon.target >/dev/null 2>&1 || : %preun mon %if 0%{?suse_version} %service_del_preun ceph-create-keys@\*.service ceph-mon@\*.service ceph-mon.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-create-keys@\*.service ceph-mon@\*.service ceph-mon.target %endif %postun mon test -n "$FIRST_ARG" || FIRST_ARG=$1 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-create-keys@\*.service ceph-mon@\*.service ceph-mon.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-create-keys@\*.service ceph-mon@\*.service ceph-mon.target %endif if [ $FIRST_ARG -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-create-keys@\*.service ceph-mon@\*.service > /dev/null 2>&1 || : fi fi ################################################################################# %files fuse %defattr(-,root,root,-) %{_bindir}/ceph-fuse %{_mandir}/man8/ceph-fuse.8* %{_sbindir}/mount.fuse.ceph ################################################################################# %files -n rbd-fuse %defattr(-,root,root,-) %{_bindir}/rbd-fuse %{_mandir}/man8/rbd-fuse.8* ################################################################################# %files -n rbd-mirror %defattr(-,root,root,-) %{_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 -ge 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 /usr/bin/systemctl start ceph-rbd-mirror.target >/dev/null 2>&1 || : %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 test -n "$FIRST_ARG" || FIRST_ARG=$1 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif if [ $FIRST_ARG -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 -n rbd-nbd %defattr(-,root,root,-) %{_bindir}/rbd-nbd %{_mandir}/man8/rbd-nbd.8* ################################################################################# %files radosgw %defattr(-,root,root,-) %{_bindir}/radosgw %{_bindir}/radosgw-admin %{_bindir}/radosgw-token %{_bindir}/radosgw-object-expirer %{_mandir}/man8/radosgw.8* %{_mandir}/man8/radosgw-admin.8* %config %{_sysconfdir}/bash_completion.d/radosgw-admin %dir %{_localstatedir}/lib/ceph/radosgw %{_unitdir}/ceph-radosgw@.service %{_unitdir}/ceph-radosgw.target %post radosgw %if 0%{?suse_version} if [ $1 -ge 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 /usr/bin/systemctl start ceph-radosgw.target >/dev/null 2>&1 || : %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 test -n "$FIRST_ARG" || FIRST_ARG=$1 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-radosgw@\*.service ceph-radosgw.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-radosgw@\*.service ceph-radosgw.target %endif if [ $FIRST_ARG -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-bluefs-tool %{_bindir}/ceph-objectstore-tool %{_bindir}/ceph-osd %{_sbindir}/ceph-disk %{_sbindir}/ceph-disk-udev %{_libexecdir}/ceph/ceph-osd-prestart.sh %dir %{_udevrulesdir} %{_udevrulesdir}/60-ceph-by-parttypeuuid.rules %{_udevrulesdir}/95-ceph-osd.rules %{_mandir}/man8/ceph-clsinfo.8* %{_mandir}/man8/ceph-disk.8* %{_mandir}/man8/ceph-osd.8* %if 0%{?rhel} && ! 0%{?centos} %attr(0755,-,-) %{_sysconfdir}/cron.hourly/subman %endif %{_unitdir}/ceph-osd@.service %{_unitdir}/ceph-osd.target %{_unitdir}/ceph-disk@.service %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd %post osd %if 0%{?suse_version} if [ $1 -ge 1 ] ; then /usr/bin/systemctl preset ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target %endif /usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || : %preun osd %if 0%{?suse_version} %service_del_preun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target %endif %postun osd test -n "$FIRST_ARG" || FIRST_ARG=$1 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target %endif if [ $FIRST_ARG -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-disk@\*.service ceph-osd@\*.service > /dev/null 2>&1 || : fi fi ################################################################################# %if %{with ocf} %files resource-agents %defattr(0755,root,root,-) # N.B. src/ocf/Makefile.am uses $(prefix)/lib %dir %{_prefix}/lib/ocf %dir %{_prefix}/lib/ocf/resource.d %dir %{_prefix}/lib/ocf/resource.d/ceph %{_prefix}/lib/ocf/resource.d/ceph/rbd %endif ################################################################################# %files -n librados2 %defattr(-,root,root,-) %{_libdir}/librados.so.* %if %{with lttng} %{_libdir}/librados_tp.so.* %endif %post -n librados2 /sbin/ldconfig %postun -n librados2 /sbin/ldconfig ################################################################################# %files -n librados2-devel %defattr(-,root,root,-) %dir %{_includedir}/rados %{_includedir}/rados/librados.h %{_includedir}/rados/librados.hpp %{_includedir}/rados/buffer.h %{_includedir}/rados/buffer_fwd.h %{_includedir}/rados/page.h %{_includedir}/rados/crc32c.h %{_includedir}/rados/rados_types.h %{_includedir}/rados/rados_types.hpp %{_includedir}/rados/memory.h %{_libdir}/librados.so %if %{with lttng} %{_libdir}/librados_tp.so %endif %{_bindir}/librados-config %{_mandir}/man8/librados-config.8* ################################################################################# %files -n python-rados %defattr(-,root,root,-) %{python_sitearch}/rados.so %{python_sitearch}/rados-*.egg-info ################################################################################# %files -n libradosstriper1 %defattr(-,root,root,-) %{_libdir}/libradosstriper.so.* %post -n libradosstriper1 /sbin/ldconfig %postun -n libradosstriper1 /sbin/ldconfig ################################################################################# %files -n libradosstriper1-devel %defattr(-,root,root,-) %dir %{_includedir}/radosstriper %{_includedir}/radosstriper/libradosstriper.h %{_includedir}/radosstriper/libradosstriper.hpp %{_libdir}/libradosstriper.so ################################################################################# %files -n librbd1 %defattr(-,root,root,-) %{_libdir}/librbd.so.* %if %{with lttng} %{_libdir}/librbd_tp.so.* %endif %post -n librbd1 /sbin/ldconfig mkdir -p /usr/lib64/qemu/ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %postun -n librbd1 /sbin/ldconfig ################################################################################# %files -n librbd1-devel %defattr(-,root,root,-) %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 %defattr(-,root,root,-) %{_libdir}/librgw.so.* %post -n librgw2 /sbin/ldconfig %postun -n librgw2 /sbin/ldconfig ################################################################################# %files -n librgw2-devel %defattr(-,root,root,-) %dir %{_includedir}/rados %{_includedir}/rados/librgw.h %{_includedir}/rados/rgw_file.h %{_libdir}/librgw.so ################################################################################# %files -n python-rbd %defattr(-,root,root,-) %{python_sitearch}/rbd.so %{python_sitearch}/rbd-*.egg-info ################################################################################# %files -n libcephfs1 %defattr(-,root,root,-) %{_libdir}/libcephfs.so.* %post -n libcephfs1 /sbin/ldconfig %postun -n libcephfs1 /sbin/ldconfig ################################################################################# %files -n libcephfs1-devel %defattr(-,root,root,-) %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h %{_libdir}/libcephfs.so ################################################################################# %files -n python-cephfs %defattr(-,root,root,-) %{python_sitearch}/cephfs.so %{python_sitearch}/cephfs-*.egg-info %{python_sitelib}/ceph_volume_client.py* ################################################################################# %files -n ceph-test %defattr(-,root,root,-) %{_bindir}/ceph_bench_log %{_bindir}/ceph_kvstorebench %{_bindir}/ceph_multi_stress_watch %{_bindir}/ceph_erasure_code %{_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_smalliobench %{_bindir}/ceph_smalliobenchdumb %{_bindir}/ceph_smalliobenchfs %{_bindir}/ceph_smalliobenchrbd %{_bindir}/ceph_test_* %{_bindir}/librgw_file* %{_bindir}/ceph_tpbench %{_bindir}/ceph_xattr_bench %{_bindir}/ceph-coverage %{_bindir}/ceph-monstore-tool %{_bindir}/ceph-osdomap-tool %{_bindir}/ceph-kvstore-tool %{_bindir}/ceph-debugpack %{_mandir}/man8/ceph-debugpack.8* %dir %{_libdir}/ceph %{_libdir}/ceph/ceph-monstore-update-crush.sh ################################################################################# %if 0%{with cephfs_java} %files -n libcephfs_jni1 %defattr(-,root,root,-) %{_libdir}/libcephfs_jni.so.* %post -n libcephfs_jni1 /sbin/ldconfig %postun -n libcephfs_jni1 /sbin/ldconfig ################################################################################# %files -n libcephfs_jni1-devel %defattr(-,root,root,-) %{_libdir}/libcephfs_jni.so ################################################################################# %files -n cephfs-java %defattr(-,root,root,-) %{_javadir}/libcephfs.jar %{_javadir}/libcephfs-test.jar %endif ################################################################################# %if 0%{with selinux} %files selinux %defattr(-,root,root,-) %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 # 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 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 fi # Now, relabel the files /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 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : 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 # 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 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 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 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : fi fi exit 0 %endif # with selinux ################################################################################# %if 0%{with libs_compat} %files libs-compat # We need an empty %%files list for ceph-libs-compat, to tell rpmbuild to actually # build this meta package. %endif ################################################################################# %files devel-compat # We need an empty %%files list for ceph-devel-compat, to tell rpmbuild to # actually build this meta package. ################################################################################# %files -n python-ceph-compat # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to # actually build this meta package. %changelog * Mon Oct 30 2017 Jean-Marc Liger 2:10.2.7-48.1 - reintroduce libradosstriper packages and cephfs binary for COPR build * Wed Oct 11 2017 Ken Dreyer 2:10.2.7-48 - common/options: enable multiple rocksdb compaction threads for filestore (rhbz#1462011) - common/options.cc: Set Filestore rocksdb compaction readahead option. (rhbz#1462011) - tools/ceph-kvstore-tool: clean up destination store object (rhbz#1462011) - tools/ceph-kvstore-tool: add destination store type to store-copy (rhbz#1462011) - Makefile-rocksdb.am: update for new rocksdb version (rhbz#1462011) - tools: Add --backend option to ceph-osdomap-tool default to rocksdb (rhbz#1462011) - rocksdb: remove experimental status (rhbz#1462011) - include/assert: define ceph_abort_msg(cct, msg) (rhbz#1462011) - kv/RocksDBStore: abort if rocksdb EIO, don't return incorrect result (rhbz#1462011) - os/kv: beautify kvdb statistics (rhbz#1462011) - src/kv/RocksDBStore.cc:fix typos (rhbz#1462011) - kv/RocksDBStore: dump extended stats (rhbz#1462011) - kv/RocksDBStore: no reason to make write_batch using new/delete (rhbz#1462011) - Logging rocksdb transaction in ceph log (rhbz#1462011) - RocksDBStore: use Get for multiget (rhbz#1462011) - kv/RocksDBStore: convert get() to use rocksdb Get() instead of iterator (rhbz#1462011) - tests: unittest_rocksdb_option: remove deprecated option (rhbz#1462011) - kv/Makefile: fix rocksdb build options (USE_RTTI=1) (rhbz#1462011) - kv/RocksDBStore: Add table options for filter and index tuning. (rhbz#1462011) * Wed Oct 11 2017 Ken Dreyer 2:10.2.7-47 - osd: Fixes for osd_scrub_during_recovery handling (rhbz#1481830) * Wed Oct 11 2017 Ken Dreyer 2:10.2.7-46 - rgw: fix radosgw-admin data sync run crash (rhbz#1500206) * Mon Oct 09 2017 Ken Dreyer 2:10.2.7-45 - qa/workunits/cephtool/test.sh: add sudo for daemon compact (rhbz#1483224) * Thu Oct 05 2017 Thomas Serlin 2:10.2.7-44 - RGW: Multipart upload may double the quota (rhbz#1498280) * Wed Oct 04 2017 Ken Dreyer 2:10.2.7-43 - RGW: fix a bug about inconsistent unit of comparison (rhbz#1498280) * Wed Oct 04 2017 Ken Dreyer 2:10.2.7-42 - rgw: release cls lock if taken in RGWCompleteMultipart (rhbz#1496847) * Mon Oct 02 2017 Ken Dreyer 2:10.2.7-41 - radosgw: fix awsv4 header line sort order. (rhbz#1456060) * Sun Oct 01 2017 Ken Dreyer 2:10.2.7-40 - client: set client_try_dentry_invalidate to false by default (rhbz#1492977) * Wed Sep 27 2017 Ken Dreyer 2:10.2.7-39 - osd/OSDMap: don't set weight to IN when OSD is destroyed (rhbz#1471939) - osd: default osd_scrub_during_recovery=false (rhbz#1482749) * Wed Sep 20 2017 Ken Dreyer 2:10.2.7-38 - test: add test of ceph compact command (rhbz#1483224) - osd: new command compact via tell/daemon (rhbz#1483224) - os: export compact interface in ObjectStore and ObjectMap (rhbz#1483224) * Tue Sep 19 2017 Ken Dreyer 2:10.2.7-37 - ceph-disk: set the default systemd unit timeout to 3h (rhbz#1472409) * Mon Sep 18 2017 Ken Dreyer 2:10.2.7-36 - rgw: fix marker encoding problem. (rhbz#1470836) * Mon Sep 18 2017 Ken Dreyer 2:10.2.7-35 - rgw: replace '+' with "%20" in canonical query string for s3 v4 auth. (rhbz#1456060) * Mon Sep 18 2017 Ken Dreyer 2:10.2.7-34 - ceph-disk: Adding retry loop in get_partition_dev() (rhbz#1491780) - ceph-disk: Reporting /sys directory in get_partition_dev() (rhbz#1491780) * Thu Sep 14 2017 Ken Dreyer 2:10.2.7-33 - rgw: Prevent overflow of stats cached values (rhbz#1472868) - rgw: Do not decrement stats cache when the cache values are zero (rhbz#1472868) - rgw: multipart copy-part remove '/' for s3 java sdk request header. (rhbz#1470301) - rgw: Fix up to 1000 entries at a time in check_bad_index_multipart (rhbz#1463969) - cls/refcount: store and use list of retired tags (rhbz#1476865) - rgw: bucket index check in radosgw-admin removes valid index. (rhbz#1479949) - rgw : fix race in RGWCompleteMultipart (rhbz#1477754) - rgw: lease_stack: use reset method instead of assignment (rhbz#1476888) - rgw: meta sync thread crash at RGWMetaSyncShardCR (rhbz#1476888) * Fri Aug 25 2017 Ken Dreyer 2:10.2.7-32 - mon/OSDMonitor: set recovery_deletes on new cluster by default (rhbz#1484121) - osd/PGLog: write only changed dup entries (rhbz#1484127) - ceph-disk: dmcrypt cluster must default to ceph (rhbz#1477775) - osd/PGBackend: release a msg using msg->put() not delete (rhbz#1452780) - osd/PGBackend: delete reply if fails to complete delete request (rhbz#1452780) - osd/PG: fix lost unfound + delete when there are no missing objects (rhbz#1452780) * Mon Jul 31 2017 Thomas Serlin 1:10.2.7-31 - Bump epoch in dist-git ceph.spec (rhbz#1466056) * Mon Jul 31 2017 Thomas Serlin 1:10.2.7-30 - PGLog: continuation, store extra duplicate ops beyond the normal log entries (rhbz#1461527) - PGLog: store extra duplicate ops beyond the normal log entries (rhbz#1461527) * Thu Jul 27 2017 Thomas Serlin 1:10.2.7-29 - osd: PrimaryLogPG, PGBackend: complete callback even if interval changes (rhbz#1452780) - osd/PG: downgrade warning about obsolete rollback to debug output (rhbz#1452780) - osd/PrimaryLogPG: skip deleted missing objects in pg[n]ls (rhbz#1452780) - osd/ReplicatedPG: explicitly remove objects when deleting them (rhbz#1452780) - PGLog, PrimaryLogPG: rebuild the missing set when the OSDMap flag is set (rhbz#1452780) - osd_types, PGLog: encode missing based on features (rhbz#1452780) - osd_types, Objecter: make recovery_deletes feature create a new interval (rhbz#1452780) - OSDMap, OSDMonitor: add flag for all osds supporting recovery deletes (rhbz#1452780) - include/ceph_features.h: add feature bit for handling deletes during recovery (rhbz#1452780) - osd/PGLog: reset complete_to when appending lost_delete entries (rhbz#1452780) - osd/PGLog.h: handle lost+delete entries the same as client deletes (rhbz#1452780) - osd/PGLog: client deletes are now part of the missing set (rhbz#1452780) - osd/PrimaryLogPG: check whether clones missing from the cache are recovering (rhbz#1452780) - osd/PrimaryLogPG,PGBackend: handle deletes during recovery (rhbz#1452780) - osd/PG: handle deletes in MissingLoc (rhbz#1452780) - osd: add a 'delete' flag to missing items and related functions (rhbz#1452780) - message, osd: add request/response messages for deletes during recovery (rhbz#1452780) * Wed Jul 05 2017 Ken Dreyer 1:10.2.7-28 - rgw: rest handlers for mdlog and datalog list dont loop (rhbz#1465446) - rgw: fix RGWMetadataLog::list_entries() for null last_marker (rhbz#1465446) - rgw: RGWMetadataLog::list_entries() no longer splices (rhbz#1465446) - fix infinite loop in rest api for log list (rhbz#1465446) - rgw: cls: ceph::timespan tag_timeout wrong units (rhbz#1464099) - rgw: add a field to store generic user data in the bucket index, that can populated/fetched via a configurable custom http header (rhbz#1445891) * Wed Jun 07 2017 Ken Dreyer 1:10.2.7-27 - rgw: remove rgw_realm_reconfigure_delay (rhbz#1458734) - rgw: require --yes-i-really-mean-it to promote zone with stale metadata (rhbz#1458734) - rgw: period commit uses sync status markers (rhbz#1458734) - rgw: use RGWShardCollectCR for RGWReadSyncStatusCoroutine (rhbz#1458734) - rgw: change metadata read_sync_status interface (rhbz#1458734) - rgw: store realm epoch with sync status markers (rhbz#1458734) - rgw: RGWBackoffControlCR only retries until success (rhbz#1458734) - rgw: clean up RGWInitDataSyncStatusCoroutine (rhbz#1458734) - rgw: fix marker comparison to detect end of mdlog period (rhbz#1458734) - rgw: add == and != operators for period history cursor (rhbz#1458734) - rgw: fix for broken yields in RGWMetaSyncShardCR (rhbz#1458734) - rgw: use separate http_manager for read_sync_status (rhbz#1458734) * Wed Jun 07 2017 Ken Dreyer 1:10.2.7-26 - rgw:fix memory leaks (rhbz#1459596) - rgw: dont spawn error_repo until lease is acquired (rhbz#1459593) * Tue Jun 06 2017 Ken Dreyer 1:10.2.7-25 - librbd: filter expected error codes from is_exclusive_lock_owner (rhbz#1439355) - rbd: properly decode features when using image name optional (rhbz#1458715) * Fri Jun 02 2017 Ken Dreyer 1:10.2.7-24 - osd: Object level shard errors are tracked and used if no auth available (rhbz#1457097) * Tue May 30 2017 Thomas Serlin 1:10.2.7-23 - osd: do not default-abort on leaked pg refs (rhbz#1454355) - osd: Reset() the snaptrimmer on shutdown * Mon May 29 2017 Thomas Serlin 1:10.2.7-22 - rgw-admin: fix bucket limit check argparse, div(0) (rhbz#1391650) * Thu May 25 2017 Thomas Serlin 1:10.2.7-21 - rgw_file: store bucket uxattrs on the bucket (rhbz#1450401) - ceph-disk: dmcrypt activate must use the same cluster as prepare (rhbz#1391920) - set subman cron attributes in dist-git spec file (rhbz#1265435) * Tue May 23 2017 Thomas Serlin 1:10.2.7-20 - rgw_file: release rgw_fh lock and ref on ENOTEMPTY (rhbz#1422822 rhbz#1451305) * Tue May 23 2017 Thomas Serlin 1:10.2.7-19 - rgw_file: remove hidden uxattr objects from buckets on delete (rhbz#1422822) * Tue May 16 2017 Thomas Serlin 1:10.2.7-18 - rgw_file: v3: fix write-timer action (rhbz#1450274) * Mon May 15 2017 Thomas Serlin 1:10.2.7-17 - ceph-disk: separate ceph-osd --check-needs-* logs (rhbz#1449826) * Fri May 12 2017 Thomas Serlin 1:10.2.7-16 - rgw: remove unnecessary output (rhbz#1447628) * Tue May 09 2017 Jason Dillaman 1:10.2.7-15 - librbd: add no-op event when promoting an image (rhbz#1448066) - rbd-mirror: prevent infinite loop when computing replay status (rhbz#1448066) * Mon May 08 2017 Thomas Serlin 1:10.2.7-14 - cls/rgw: list_plain_entries() stops before bi_log entries (rhbz#1446665) * Wed Apr 26 2017 Ken Dreyer 1:10.2.7-13 - ceph-disk: enable directory backed OSD at boot time (rhbz#1442265) * Tue Apr 25 2017 Thomas Serlin 1:10.2.7-12 - rgw: swift: disable revocation thread if sleep == 0 || cache_size == 0 (rhbz#1438965) - rgw: add bucket size limit check to radosgw-admin (rhbz#1436386) - radosgw-admin: warn that 'realm rename' does not update other clusters (rhbz#1423886) - Fix transfer-encoding: chunked and fast_forward_request (rhbz#1435003) * Mon Apr 24 2017 Ken Dreyer 1:10.2.7-11 - rgw: allow system users to read SLO parts (rhbz#1423858) - rgw: RGWGetObj applies skip_manifest flag to SLO (rhbz#1423858) - rgw: data sync skips slo data when syncing the manifest object (rhbz#1423858) - radosgw-admin: use zone id when creating a zone (rhbz#1418235) - rgw: don't init rgw_obj from rgw_obj_key when it's incorrect to do so (rhbz#1430887) * Thu Apr 20 2017 Ken Dreyer 1:10.2.7-10 - ceph-disk: Populate mount options when running "list" (rhbz#1378301) * Thu Apr 20 2017 Thomas Serlin 1:10.2.7-9 - doc/rgw: update section on global quotas (rhbz#1437579) - radosgw-admin: new 'global quota' commands update period config (rhbz#1437579) - rgw: load period config separately when there's no current period (rhbz#1437579) - rgw: synchronize period config with period updates (rhbz#1437579) - rgw: allow RGWPeriodConfig to be stored separately (rhbz#1437579) * Wed Apr 19 2017 Thomas Serlin 1:10.2.7-8 - rgw: DataLogTrimCR renamed zone to zone_id (rhbz#1438895) - rgw: hold lock for data log trimming (rhbz#1438895) - rgw: add static function to generate lock cookie (rhbz#1438895) - rgw: use factory function to hide RGWDataLogTrimCR (rhbz#1438895) - rgw: pass cr registry to managers (rhbz#1438895) - rgw: add RGWSyncLogTrimThread to RGWRados (rhbz#1438895) - rgw: add RGWDataLogTrimCR (rhbz#1438895) - rgw: add RGWRadosTimelogTrimCR (rhbz#1438895) - rgw: enable async calls to time_log_trim (rhbz#1438895) - rgw: add rest handlers to query sync status (rhbz#1438895) - rgw: use separate cr manager for read_sync_status (rhbz#1438895) - rgw: change read_sync_status interface (rhbz#1438895) - rgw: expose sync managers through RGWRados (rhbz#1438895) - rgw: don't ignore ENOENT in RGWRemoteDataLog::read_sync_status() (rhbz#1438895) - rgw: add json decoders for data sync status (rhbz#1438895) - rgw: add dout_prefix for rgw_data_sync.cc (rhbz#1438895) - rgw: use RGWShardCollectCR for RGWReadDataSyncStatusCoroutine (rhbz#1438895) - rgw: add empty_on_enoent flag to RGWSimpleRadosReadCR (rhbz#1438895) - PrimaryLogPG: reimplement osd_snap_trim_sleep within the state machine (rhbz#1436752) - osd/ReplicatedPG: limit the number of concurrently trimming pgs (rhbz#1436752) - pglog: require users set a config option before ignoring divergent_priors (rhbz#1436752) - osd: pglog: clean up divergent_priors off disk when running; don't assert on startup (rhbz#1436752) - rgw: error more verbosely in RGWRados::create_pool (rhbz#1397937) * Tue Apr 18 2017 Thomas Serlin 1:10.2.7-7 - rgw_file: pre-compute unix attrs in write_finish() (rhbz#1443150) - rgw_file: fix readdir after dirent-change (rhbz#1443132) * Mon Apr 17 2017 Ken Dreyer 1:10.2.7-6 - rgw: change log level to 20 for 'System already converted' message (rhbz#1421819) * Thu Apr 13 2017 Ken Dreyer 1:10.2.7-5 - rgw_file: don't expire directories being read (rhbz#1422822) - rgw_file: chunked readdir (rhbz#1422822) - rgw_file: introduce rgw_lookup type hints (rhbz#1422822) * Thu Apr 13 2017 Ken Dreyer 1:10.2.7-4 - ceph-disk: Add --system option for fix command (rhbz#1416575) - ceph-disk: Add more fix targets (rhbz#1416575) - ceph-disk: Add unit test for fix command (rhbz#1416575) - ceph-disk: Add fix subcommand (rhbz#1416575) * Wed Apr 12 2017 Jason Dillaman 1:10.2.7-3 - librbd: is_exclusive_lock_owner API should ping OSD (rhbz#1439355) - pybind: fix incorrect exception format strings (rhbz#1439355) * Mon Apr 10 2017 Ken Dreyer 1:10.2.7-2 - rgw_file: fix missing unlock in unlink (rhbz#1439880) - rgw_file: implement reliable has-children check (unlink dir) (rhbz#1439880) * Fri Apr 07 2017 Ken Dreyer - 1:10.2.7-1 - Rebase to version 10.2.7 (rhbz#1378294 rhbz#1428326 rhbz#1430650 rhbz#1330023 rhbz#1425115 rhbz#1352638 rhbz#1381463 rhbz#1428308 rhbz#1428324 rhbz#1396956) * Tue Feb 28 2017 Thomas Serlin 1:10.2.5-37 - rgw_file: RGWFileHandle dtor must also cond-unlink from FHCache (rhbz#1416041) * Tue Feb 28 2017 Ken Dreyer 1:10.2.5-36 - rgw_file: use fh_hook::is_linked() to check residence (rhbz#1416041) * Tue Feb 28 2017 Ken Dreyer 1:10.2.5-35 - rgw: RGWMetaSyncShardControlCR retries with backoff on all error codes (rhbz#1424725) * Sat Feb 25 2017 Thomas Serlin 1:10.2.5-34 - rgw/openssl fix: xenial autoconf logic problem: gcc/ld got too smart... (rhbz#1425710) * Fri Feb 24 2017 Thomas Serlin 1:10.2.5-33 - rgw_file: ensure valid_s3_object_name for directories, too (rhbz#1416041 rhbz#1422822) - rgw_file: return of RGWFileHandle::FLAG_EXACT_MATCH (rhbz#1425763) - rgw_file: rgw_lookup: don't ref for "/" or ".." (rhbz#1425763) * Thu Feb 23 2017 Jason Dillaman 1:10.2.5-32 - rbd-mirror: retry object copy after -ENOENT error (rhbz#1424881) - rbd-mirror: object copy should always reference valid snapshots (rhbz#1424881) - rbd-mirror: replace complex object op tuple with struct (rhbz#1424881) - rgw: set dumpable flag after setuid post ff0e521 (rhbz#1423417) * Wed Feb 22 2017 Thomas Serlin 1:10.2.5-31 - rgw: settle /info implementation across other swift-at-root features. (rhbz#1250713) - swift /info implementation. (rhbz#1250713) - rgw: add support for the healthcheck feature of Swift API. (rhbz#1250713) - rgw: add support for the crossdomain.xml resource of Swift API. (rhbz#1250713) - rgw: fix the handling of rgw_swift_url_prefix. (rhbz#1250713) - rgw_http_errors: add http error code for 503 (rhbz#1250713) - rgw: Allow to serve Swift off the URL root (rhbz#1250713) * Wed Feb 22 2017 Thomas Serlin 1:10.2.5-30 - rgw_file: avoid stranding invalid-name bucket handles in fhcache (rhbz#1425771) * Mon Feb 20 2017 Thomas Serlin 1:10.2.5-29 - rgw_file: fix marker computation (rhbz#1422059 rhbz#1422822 rhbz#1422875) * Mon Feb 20 2017 Jason Dillaman 1:10.2.5-28 - rbd-mirror: fix gmock warnings in bootstrap request unit tests (rhbz#1424687) - rbd-mirror: make 'rbd mirror image resync' work after split-brain (rhbz#1424687) - rbd-mirror: split-brain issues should be clearly visible in mirror status (rhbz#1424687) - rgw_file: rgw_readdir can't list multi-segment dirs (rhbz#1422059 rhbz#1422822 rhbz#1422875) - rgw_file: allow setattr on placeholder directories (rhbz#1422059 rhbz#1422822 rhbz#1422875) - rgw_file: invalid use of RGWFileHandle::FLAG_EXACT_MATCH (rhbz#1422059 rhbz#1422822 rhbz#1422875) * Fri Feb 17 2017 Thomas Serlin 1:10.2.5-27 - rgw: make sending Content-Length in 204 and 304 controllable (rhbz#1252600) * Mon Feb 13 2017 Ken Dreyer 1:10.2.5-26 - rgw_file: fix hiwat behavior (rhbz#1420231 rhbz#1416041 rhbz#1415981) - rgw_file: refcnt bugfixes (rhbz#1420231 rhbz#1416041 rhbz#1415981) - rgw_file: add refcount dout traces at debuglevel 17 (rhbz#1420231 rhbz#1416041 rhbz#1415981) - rgw_file: add pretty-print for RGWFileHandle (rhbz#1420231 rhbz#1416041 rhbz#1415981) - rgw_file: split last argv on ws, if provided (rhbz#1420231 rhbz#1416041 rhbz#1415981) * Mon Feb 13 2017 Ken Dreyer 1:10.2.5-25 - rgw: fix swift cannot disable object versioning (rhbz#1421099) * Fri Feb 10 2017 Ken Dreyer 1:10.2.5-24 - librbd: account m_processing when failing request after refresh (rhbz#1420530) * Fri Feb 10 2017 Ken Dreyer 1:10.2.5-23 - rgw: fix use of marker in List::list_objects() (rhbz#1371212) * Mon Feb 06 2017 Ken Dreyer 1:10.2.5-22 - rgw: complete backport of "bi list --max-entries=1" bugfix (rhbz#1390716) * Fri Feb 03 2017 Ken Dreyer 1:10.2.5-21 - rgw_file: fix RGWLibFS::setattr for directory objects (rhbz#1418606) * Thu Feb 02 2017 Ken Dreyer 1:10.2.5-20 - rgw: Have a flavor of bucket deletion to bypass GC and to trigger object deletions async. (rhbz#1418809) * Wed Feb 01 2017 Ken Dreyer 1:10.2.5-19 - rgw: multipart part copy, fix regression (rhbz#1416160) - rgw: minor optimization (rhbz#1416160) - rgw: rgw_obj_key use adjustment in multipart copy part (rhbz#1416160) - rgw: multipart copy-part handle versionId (rhbz#1416160) - rgw: multipart copy part minor parsing cleanup (rhbz#1416160) - rgw: multipart copy, check for empty bucket, improve logging (rhbz#1416160) - rgw: multipart copy part, chunked read (rhbz#1416160) - rgw: doc: add multipart uploads copy part feature as supported (rhbz#1416160) - rgw: multipart uploads copy part support (rhbz#1416160) * Tue Jan 31 2017 Ken Dreyer 1:10.2.5-18 - rgw_file: fix spurious mount entries w/Linux NFS client (rhbz#1360674) * Tue Jan 31 2017 Ken Dreyer 1:10.2.5-17 - rgw: fix for versioned delete_multi_object (rhbz#1399624) - rgw:fix for deleting objects name beginning and ending with underscores of one bucket using POST method of AWS's js sdk. Fixes: http://tracker.ceph.com/issues/17888 (rhbz#1399624) - rgw: json encode/decode index_type, allow modification (rhbz#1390336) - rgw: fix osd crashes when execute "radosgw-admin bi list --max-entries=1" command (rhbz#1390716) - ceph-disk: enable --runtime ceph-osd systemd units (rhbz#1391197) - build/ops: restart ceph-osd@.service after 20s instead of 100ms (rhbz#1391197) - ceph-disk: trigger must ensure device ownership (rhbz#1391197) - ceph-disk: systemd unit must run after local-fs.target (rhbz#1391197) * Mon Jan 30 2017 Ken Dreyer 1:10.2.5-16 - osd: jewel fix OSD network address in OSD heartbeat_check log message (rhbz#1333809) * Mon Jan 30 2017 Ken Dreyer 1:10.2.5-15 - rgw: fix interface compliance of RGWCivetWeb::write_data() (rhbz#1417178) * Mon Jan 30 2017 Ken Dreyer 1:10.2.5-14 - librbd: ensure owner lock is held before purging cache (rhbz#1408226) * Thu Jan 26 2017 Ken Dreyer 1:10.2.5-13 - radosgw/swift: clean up flush / newline behavior. (rhbz#1385485) * Tue Jan 24 2017 Ken Dreyer 1:10.2.5-12 - mds: use projected path construction for access (rhbz#1415260) * Tue Jan 24 2017 Ken Dreyer 1:10.2.5-11 - rgw_file: interned RGWFileHandle objects need parent refs (rhbz#1414324) * Tue Jan 24 2017 Ken Dreyer 1:10.2.5-10 - ReplicatedPG::failed_push: release read lock on failure (rhbz#1414613) - test.sh: Make check for flags more robust (rhbz#1414613) - test: Remove extra objectstore_tool call which causes a recovery (rhbz#1414613) - test: Handle object removals in a non-racey way (rhbz#1414613) - osd: Fix hang on unfound object after mark_unfound_lost is done (rhbz#1414613) - osd: Handle recovery read errors (rhbz#1414613) - osd: Fix log messages (rhbz#1414613) - osd: CLEANUP: Remove unused pending_read member (rhbz#1414613) - test/osd-scrub-repair.sh: Use test case specific object names to help with diagnostics (rhbz#1414613) * Tue Jan 24 2017 Ken Dreyer 1:10.2.5-9 - rgw_file: add timed namespace invalidation (rhbz#1359403) * Thu Jan 19 2017 Ken Dreyer 1:10.2.5-8 - rgw: Handle multiple listening addreses w/ optional ssl "correctly" with civetweb. (rhbz#1258961) - rgw: s3: secure_port should override port, also apply ssl default right. (rhbz#1258961) - rgw: Get civetweb ssl enhancement: wip-listen3 = mg_get_local_addr (rhbz#1258961) - rgw: Document that radosgw now supports SSL. (rhbz#1258961) - rgw: civetweb/openssl: automagic: load libssl.so and libcrypto.so by soname. (rhbz#1258961) - rgw: civetweb/openssl: Load libssl.so and libcrypto.so by soname. (rhbz#1258961) - rgw: cmake: remove useless civetweb include path side effect. (rhbz#1258961) * Mon Jan 16 2017 Ken Dreyer 1:10.2.5-7 - rgw: look for region_map in rgw_region_root_pool (rhbz#1396956) - rgw: region conversion respects pre-existing rgw_region_root_pool (rhbz#1396956) * Fri Jan 13 2017 Ken Dreyer 1:10.2.5-6 - rgw: fix off-by-one in RGWDataChangesLog::get_info (rhbz#1330952) * Thu Jan 12 2017 Ken Dreyer 1:10.2.5-5 - rgw: add 'rgw log http headers' gloss to config-ref.rst (rhbz#1298571) - use std::map (rhbz#1298571) - rgw: add rgw_log_http_headers option (rhbz#1298571) - rbd-mirror: avoid processing new events after stop requested (rhbz#1410921) * Thu Jan 12 2017 Jason Dillaman 1:10.2.5-4 - rados: optionally support reading omap key from file (rhbz#1400915) - selinux: Allow ceph to manage tmp files (rhbz#1375898) * Wed Jan 11 2017 Ken Dreyer 1:10.2.5-3 - librados: blacklist_add should wait for latest OSD map (rhbz#1408226) - librbd: prevent assertion failure when journal IO is blacklisted (rhbz#1408226) - librbd: ignore blacklist error when releasing exclusive lock (rhbz#1408226) - librbd: fail immediately if the exclusive lock cannot be acquired (rhbz#1408226) - librbd: add new lock_get_owners / lock_break_lock API methods (rhbz#1408226) - librbd: separate break lock logic into standalone state machine (rhbz#1408226) - librbd: separate locker query into standalone state machine (rhbz#1408226) - librbd/exclusive_lock/AcquireRequest.cc: init lock_type (rhbz#1408226) - librbd: API methods to directly acquire and release the exclusive lock (rhbz#1408226) * Wed Jan 11 2017 Ken Dreyer 1:10.2.5-2 - PG: fix cached_removed_snaps bug in PGPool::update after map gap (rhbz#1404419) - core: set dumpable flag after setuid (rhbz#1389159) - common: Remove the runtime dependency on lsb_release (rhbz#1380177) * Tue Dec 13 2016 Ken Dreyer - 1:10.2.5-1 - Rebase to version 10.2.5 (rhbz#1402076) * Thu Dec 08 2016 Ken Dreyer 1:10.2.3-17 - rgw: do not abort when accept a CORS request with short origin (rhbz#1403003) * Thu Dec 08 2016 Ken Dreyer 1:10.2.3-16 - Drop SimpleMessenger patch, it is unneeded for v10.2.3 (rhbz#1402098) * Wed Dec 07 2016 Ken Dreyer 1:10.2.3-15 - msg/simple/Pipe: avoid infinite loop in Pipe::do_recv() (rhbz#1402098) - crush: condition latest tunable encoding on features (rhbz#1402185) - crush/CrushWrapper: encode with features (rhbz#1402185) - crush/CrushWrapper: drop unused 'lean' encode() argument (rhbz#1402185) - osd/osd_types: encode pg_pool_t like hammer if features indicate hammer (rhbz#1402185) - osd/osd_types: conditional pg_pool_t encoding (rhbz#1402185) * Thu Dec 01 2016 Thomas Serlin 1:10.2.3-14 - os/filestore/HashIndex: fix list_by_hash_* termination on reaching end (rhbz#1394007) * Thu Nov 10 2016 Thomas Serlin 1:10.2.3-13 - rgw: clean up RGWShardedOmapCRManager on early return (rhbz#1393665) - rgw: hold a reference on data_sync_cr over run() (rhbz#1393665) - rgw: clear data_sync_cr if RGWDataSyncControlCR fails (rhbz#1393665) - rgw: RGWSimpleRadosReadCR tolerates empty reads (rhbz#1393665) * Tue Nov 01 2016 Thomas Serlin 1:10.2.3-12 - rgw: handle empty POST condition (rhbz#1387332) * Fri Oct 28 2016 Ken Dreyer 1:10.2.3-11 - rgw_rest_s3: apply missed base64 try-catch (rhbz#1381694) * Fri Oct 21 2016 Ken Dreyer 1:10.2.3-10 - rgw: fix put_acls for objects starting and ending with underscore (rhbz#1372346) * Thu Oct 20 2016 Ken Dreyer 1:10.2.3-9 - Don't loop forever when reading data from 0 sized segment. (rhbz#1383728) * Wed Oct 12 2016 Ken Dreyer 1:10.2.3-8 - rgw: avoid corruption when running old radosgw-admin on a newer rgw (rhbz#1383631) - rgw: Fix missing master zone for default region conversion (rhbz#1383631) - rgw: mark configuration as converted to avoid corruption when running older admins (rhbz#1383631) - client: kill QuotaTree (rhbz#1384008) - messages: fix MMDSBeacon constructor (rhbz#1384002) - mon: don't crash on invalid standby_for_fscid (rhbz#1384002) - mds: make mds_role_t member order match constructor (rhbz#1384002) * Tue Oct 11 2016 Ken Dreyer 1:10.2.3-7 - rbd: expose rbd unmap options (rhbz#1382437) - rbd: fix up terminology in help texts (rhbz#1382437) - doc: clarify rbd size units (rhbz#1382437) - rbd: recognize lock_on_read option (rhbz#1382437) - rgw_admin: add a few admin commands to the usage (rhbz#1380601) - rgw_admin: add bi purge command (rhbz#1380601) - rgw: bucket resharding, adjust logging (rhbz#1380601) - cls/rgw: bi_list() fix is_truncated returned param (rhbz#1380601) - rgw_admin: require --yes-i-really-mean-it for bucket reshard (rhbz#1380601) - rgw_admin: better bucket reshard logging (rhbz#1380601) - rgw: limit bucket reshard num shards to max possible (rhbz#1380601) - rgw_admin: fix bi list command (rhbz#1380601) - rgw_admin: use aio operations for bucket resharding (rhbz#1380601) - rgw: bucket reshard updates stats (rhbz#1380601) - cls/rgw: add bucket_update_stats method (rhbz#1380601) - rgw_admin: reshard also links to new bucket instance (rhbz#1380601) - rgw: rgw_link_bucket, use correct bucket structure for entry point (rhbz#1380601) - radosgw-admin: bucket reshard needs --num-shards to be specified (rhbz#1380601) - cls/rgw: fix bi_list objclass command (rhbz#1380601) - rgw_admin: bucket rehsrading, initial work (rhbz#1380601) - rgw: utilities to support raw bucket index operations (rhbz#1380601) - rgw: use bucket_info.bucket_id instead of marker where needed (rhbz#1380601) - cls/rgw: utilities to support raw bucket index operations (rhbz#1380601) - rgw: forward input data when forwarding set_bucket_version to master (rhbz#1350522) - rgw: set args when rebuilding req_info (rhbz#1350522) * Thu Oct 06 2016 Ken Dreyer 1:10.2.3-6 - rgw: forward input data when forwarding set_bucket_version to master (rhbz#1350522) - rgw: set args when rebuilding req_info (rhbz#1350522) * Wed Oct 05 2016 Thomas Serlin 1:10.2.3-5 - journal: fix downstream compile issue (rhbz#1365648) - journal: ensure in-flight ops are complete destroying journaler (rhbz#1365648) - journal: complete action only after notification completed (rhbz#1365648) - rbd-mirror: wait for in-flight event commit notifications (rhbz#1365648) - common: move AsyncOpTracker to common library (rhbz#1365648) - journal: send update notification when tag allocated (rhbz#1365648) - librbd: new journal listener event for force promotion (rhbz#1365648) - librbd: helper class for quiescing in-flight async ops (rhbz#1365648) - librbd: unify journal event callbacks into single interface (rhbz#1365648) - journal: expose ability to retrieve partial tag list (rhbz#1365648) - test/rbd: fix possible mock journal race conditions (rhbz#1365648) - rbd-mirror: option to automatically resync after journal client disconnect (rhbz#1379835) - rbd-mirror: stop replay when client is disconnected (rhbz#1379835) - rbd-mirror: resync was possible only when image replayer start had succeeded (rhbz#1379835) - rbd-mirror: decode_client_meta should return false on error (rhbz#1379835) - rbd: new command to disconnect journal client (rhbz#1379835) - librbd: optionally flag "laggy" journal clients disconnected (rhbz#1379835) - journal: allow to trim journal for "laggy" clients (rhbz#1379835) - cls/journal: add async client_update_state method (rhbz#1379835) - rbd-mirror: use pool id + global image id as deletion primary key (rhbz#1379835) - librbd: support deleting image by id instead of name (rhbz#1379835) - librbd: ignore partial refresh error when acquiring exclusive lock (rhbz#1379837) - librbd: potential seg fault when blacklisting an image client (rhbz#1379837) - librbd: potential double-unwatch of watch handle upon error (rhbz#1379837) - librbd: deadlock when replaying journal during image open (rhbz#1379837) - librbd: improve image state machine debug log messages (rhbz#1379837) - librbd: remove unused refresh request logic (rhbz#1379837) - librbd: interlock image refresh and lock operations (rhbz#1379837) - librbd: image state machine now has hooks for lock requests (rhbz#1379837) - librbd: integrate asynchronous image rewatch state machine (rhbz#1379837) - librbd: helper state machine for asynchronous watch recovery (rhbz#1379837) - librbd: exclusive lock now supports reacquiring a lost lock (rhbz#1379837) - librbd: store exclusive lock cookie instead of recalculating (rhbz#1379837) - librbd: helper state machine to update lock cookie (rhbz#1379837) - cls_lock: support updating the lock cookie without releasing the lock (rhbz#1379837) - librbd: permit disabling journaling if in corrupt state (rhbz#1382044) - librbd: new journal policy to disable initializing the journal (rhbz#1382044) - librbd: always respond to "release lock" request if lock owner (rhbz#1382044) - rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR (rhbz#1368583) - rgw: set correct instance on the object (rhbz#1372346) * Tue Oct 04 2016 Thomas Serlin 1:10.2.3-4 - rgw_file: pre-assign times (rhbz#1358020) - rgw_file: fix set_attrs operation (rhbz#1358020) - rgw_file: implement rgw_setattr (rhbz#1358020) - add ldap auth custom search filter feature patch - http://tracker.ceph.com/issues/17185 (rhbz#1381687) - rgw: remove duplicated calls to getattr (rhbz#1381684) - rgw: rgw file fix bug of rgw_lookup can not exact match file name (rhbz#1381692) - rgw: fix the wrong return value (rhbz#1381693) - rgw ldap: protect rgw::from_base64 from non-base64 input (rhbz#1381694) - rgw_file: restore local definition of RGWLibFS gc interval (rhbz#1381698) - rgw_file: explain semantics of RGWFileHandle::commit (rhbz#1370331) - ceph_timer: prefer using directive to typedef (rhbz#1370331) - librgw: add API version defines for librgw and rgw_file (rhbz#1370331) - rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf (rhbz#1370331) - rgw_file: log on write completion events at level 10 (rhbz#1370331) - rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 (rhbz#1370331) - rgw_file: implement stateless write completion timer (rhbz#1370331) - rgw_file: fix/update rgw_create flag arguments (rhbz#1370331) - rgw_file: fix/update rgw_open flag arguments (rhbz#1370331) - rgw file: remove busy-wait in RGWLibFS::gc() - rgw ldap: enforce simple_bind w/LDAPv3 (rhbz#1364396) - ceph-objectstore-tool: add a way to split filestore directories offline (rhbz#1367442) - tools/ceph_monstore_tool: update pgmap_meta also when rebuilding store.db (rhbz#1374224) - tools/rebuild_mondb: kill compiling warning (rhbz#1374224) - tools/rebuild_mondb: avoid unnecessary result code cast (rhbz#1374224) - tools/ceph_monstore_tool: add "rebuild" command (rhbz#1374224) - tools/ceph-objectstore-tool: add "update-mon-db" command (rhbz#1374224) - mon/AuthMonitor: make AuthMonitor::IncType public (rhbz#1374224) - osd/OSDMap: do not encode crc bits if crc_full is not valid anymore (rhbz#1378549) - MOSDMap: re-encode if CEPH_FEATURE_OSD_HITSET_GMT is not set (rhbz#1378549) * Wed Sep 28 2016 Ken Dreyer 1:10.2.3-3 - log: Log.cc: Assign LOG_INFO priority to syslog calls (rhbz#1378675) * Tue Sep 27 2016 Ken Dreyer 1:10.2.3-2 - rbd-mirror: concurrent access of event might result in heap corruption (rhbz#1349955) - librbd: fix journal create compilation error (rhbz#1349955) - test: fixed unused function warnings in unittest_rbd_mirror (rhbz#1349955) - rbd-mirror: prevent syncing to non-primary image after failover (rhbz#1349955) - rbd-mirror: demote/promote in same cluster results in split-brain (rhbz#1349955) - librbd: normalize journal promotion/demotion events (rhbz#1349955) - librbd: block RPC requests when demoting the image (rhbz#1349955) - librbd: separate journal::TagData predecessor data into new struct (rhbz#1349955) - rbd-mirror: include tag tid in bootstrap debug log messages (rhbz#1349955) - rgw: RGWCoroutinesManager::run returns status of last cr (rhbz#1368562) - rbd: cleanup - Proxied operations shouldn't result in error messages if replayed (rhbz#1340772) - librbd: prevent creation of clone from non-primary mirrored image (rhbz#1349332) - librbd: request exclusive lock if current owner cannot execute op (rhbz#1357611) - rbd: bench io-size should not be larger than image size (rhbz#1362014) - librbd: fix possible inconsistent state when disabling mirroring (rhbz#1362647) - librbd: block name prefix might overflow fixed size C-string (rhbz#1377774) - librbd: corrected use-after-free in ImageWatcher (rhbz#1377777) - librbd: possible deadlock if cluster connection closed after image (rhbz#1377777) - ceph-disk: do not activate device that is not ready (rhbz#1326740) - ceph-disk: timeout ceph-disk to avoid blocking forever (rhbz#1351484) * Tue Sep 27 2016 Ken Dreyer - 1:10.2.3-1 - Rebase to version 10.2.3 (rhbz#1364352, rhbz#1365606, rhbz#1364353, rhbz#1352878, rhbz#1350003, rhbz#1349116, rhbz#1348928, rhbz#1347664, rhbz#1347205, rhbz#1347174, rhbz#1346946, rhbz#1340004, rhbz#1339256, rhbz#1332513, rhbz#1241725) * Tue Aug 30 2016 Ken Dreyer 1:10.2.2-41 - rgw: Do not bother to check against conf values during quota handling (rhbz#1362284) - rgw: Let the default quota settings take effect during user creation (rhbz#1362284) * Thu Aug 25 2016 Ken Dreyer - 1:10.2.2-40 - drop rgw default quota patch (rhbz#1362284) * Wed Aug 24 2016 Ken Dreyer 1:10.2.2-39 - librbd: cache was not switching to writeback after first flush (rhbz#1367891) - logrotate: Run as root/ceph (rhbz#1360229) - mon/PGMonitor: calc the %USED of pool using used/(used+avail) (rhbz#1360230) - mon/PGMonitor: mark dump_object_stat_sum() as static (rhbz#1360230) - rgw: default quota fixes (rhbz#1362284) - test: Fix test to not use jq -S which isn't avail in all distributions (rhbz#1364878) - test: Add testing of new scrub commands in rados (rhbz#1364878) - rados: Don't bother showing list-inconsistent-* errors that aren't set (rhbz#1364878) - osd, rados: Fixes for list-inconsistent-snapset (rhbz#1364878) - include, rados: Fixes for list-inconsistent-obj and librados (rhbz#1364878) - rados: Balance format sections in same do_get_inconsistent_cmd() (rhbz#1364878) - rados: Include epoch in the list-inconsistent-* command output (rhbz#1364878) - rados: Improve error messages for list-inconsistent commands (rhbz#1364878) - rbd-mirror: potential race condition during failure shutdown (rhbz#1365076) * Tue Aug 09 2016 Thomas Serlin 1:10.2.2-38 - rgw_file: unlock() must precede out label (rhbz#1357896) * Tue Aug 09 2016 Ken Dreyer 1:10.2.2-37 - rbd-mirror: potential assertion failure during error-induced shutdown (rhbz#1365076) * Mon Aug 08 2016 Ken Dreyer 1:10.2.2-36 - rgw nfs: fix write continuations (rhbz#1359406) - rgw nfs: don't leak fh->mtx in lookup_handle() (rhbz#1357896) - rgw file: refuse to rename directories (rhbz#1357896) - rgw_file: refuse ops on deleted targets (rhbz#1357896) * Mon Aug 08 2016 Ken Dreyer 1:10.2.2-35 - os: Fix HashIndex::recursive_remove() to remove everything but original path (rhbz#1363807) - filestore: Clear objects before calling collection_list() again (rhbz#1363807) - filestore: Improve logging (rhbz#1363807) * Mon Aug 08 2016 Ken Dreyer 1:10.2.2-34 - rgw: Fix civetweb IPv6 (rhbz#1364345) * Tue Aug 02 2016 Ken Dreyer 1:10.2.2-33 - rgw: add reinit/rebind logic (ldap) (rhbz#1361760) * Thu Jul 28 2016 Ken Dreyer 1:10.2.2-32 - radosgw-admin: zone[group] modify can change realm id (rhbz#1360396) * Thu Jul 28 2016 Ken Dreyer 1:10.2.2-31 - rgw: use endpoints from master zone instead of zonegroup (rhbz#1359696) * Tue Jul 26 2016 Thomas Serlin 1:10.2.2-30 - rgw: clear realm watch on failed watch_restart (rhbz#1360435) * Mon Jul 25 2016 Ken Dreyer 1:10.2.2-29 - rgw: remove -EEXIST error msg for ZoneCreate (rhbz#1359609) * Mon Jul 25 2016 Ken Dreyer 1:10.2.2-28 - rgw: remove bucket index objects when deleting the bucket (rhbz#1353435) * Fri Jul 22 2016 Thomas Serlin 1:10.2.2-27 - rgw multisite: preserve zone's extra pool (rhbz#1359267) - rbd-mirror: do not cancel maintenance ops with missing finish events (rhbz#1356064) - rbd-mirror: potential memory leak when attempting to cancel image sync (rhbz#1356064) - rbd-mirror: fix issues detected when attempting clean shut down (rhbz#1356064) - rbd-mirror: shut down image replayers in parallel (rhbz#1356064) - rbd-mirror: configuration options to control replay throttling (rhbz#1356064) - librbd: new configuration option to restrict journal payload size (rhbz#1356064) - librbd: wait for journal commit op event to be safely recorded (rhbz#1356064) - journal: optimize speed of live replay journal pruning (rhbz#1356064) - journal: possible deadlock during flush of journal entries (rhbz#1356064) - journal: improve debug log messages (rhbz#1356064) - journal: support streaming entry playback (rhbz#1356064) - journal: replay should only read from a single object set (rhbz#1356064) - journal: optionally restrict maximum entry payload size (rhbz#1356064) - journal: optionally fetch entries in small chunks during replay (rhbz#1356064) - journal: helper class for organizing optional settings (rhbz#1356064) - librbd: improve journaling debug log messages (rhbz#1356064) - rbd-mirror: include local pool id in resync throttle unique key (rhbz#1356064) - rbd-mirror: gracefully restart pool replayer when blacklisted (rhbz#1356064) - rbd-mirror: do not clear image replayer error code after shut down (rhbz#1356064) - rbd-mirror: image deleter should use provided librados connection (rhbz#1356064) - rbd-mirror: each pool replayer should use its own librados connection (rhbz#1356064) - rbd-mirror: remove ceph_test_rbd_mirror_image_replay test case (rhbz#1356064) - test: ensure unique template specializations per test case (rhbz#1356064) - test: missing template specialization for unittest_rbd_mirror (rhbz#1356064) - rbd-mirror: fix potential image replayer state transition race (rhbz#1356064) - rbd-mirror: cancel image deletion callback on shut down (rhbz#1356064) - rbd-mirror: fixed potential leaking image deletion context callback (rhbz#1356064) - rbd-mirror: ImageReplayer doesn't need image deleted callback (rhbz#1356064) - rbd-mirror: use async callback when deletion not in-progress (rhbz#1356064) - rbd-mirror: tests: ImageSyncThrottler unit tests (rhbz#1356064) - rbd-mirror: Usage of image-sync throttler in BootstrapRequest (rhbz#1356064) - rbd-mirror: Implementation of image-sync throttler (rhbz#1356064) - rbd-mirror: tests: Support for inflight image sync point update (rhbz#1356064) - rbd-mirror: image-sync: Periodically update sync point object number (rhbz#1356064) - rbd-mirror: image-replayer: Fix bug in resync listener remotion (rhbz#1356064) - librbd: fix lockdep issue when duplicate event detected (rhbz#1356064) - rbd-mirror: resync: Added unit tests (rhbz#1356064) - rbd-mirror: image-replayer: Implementation of resync operation (rhbz#1356064) - rbd: journal: Support for listening updates on client metadata (rhbz#1356064) - journal: Support for registering metadata listeners in the Journaler (rhbz#1356064) - rbd-mirror: fix error messages formatting (rhbz#1356064) * Thu Jul 21 2016 Thomas Serlin 1:10.2.2-26 - rgw: fix collection of object sync errors (rhbz#1358129) - rgw: fix marker tracker completion handling (rhbz#1357641) - rgw: collect() stops if error encoutered (rhbz#1358129) - rgw: back off bucket sync on failures, don't store marker (rhbz#1358129) * Thu Jul 21 2016 Thomas Serlin 1:10.2.2-25 - rgw: fix upgrade from old multisite to new multisite configuration (rhbz#1358704) * Tue Jul 19 2016 Ken Dreyer 1:10.2.2-24 - rgw_file: implement rgw_setattr (rhbz#1358020) - rgw_file: refuse partial, out-of-order writes (rhbz#1358024) - rgw_file: fix rename cases and unify unlink (rhbz#1357896) * Mon Jul 18 2016 Ken Dreyer 1:10.2.2-23 - rgw: RGWMetaSyncCR holds refs to stacks for wakeup (rhbz#1355641) - rgw: collect skips a specific coroutine stack (rhbz#1354156) * Thu Jul 14 2016 Ken Dreyer 1:10.2.2-22 - ceph-fuse: link to libtcmalloc or jemalloc (rhbz#1355848) - rbd-mirror: preprocess journal events prior to applying (rhbz#1353511) - rbd-mirror: event preprocessor to handle snap rename operations (rhbz#1353511) - librbd: separate journal event decoding and processing (rhbz#1353511) - librbd: record original snap name in snap rename journal event (rhbz#1353511) - librbd: simple duplicate op checks for all maintenance operations (rhbz#1353511) - rbd-mirror: block proxied ops with -EROFS return code (rhbz#1348968) - librbd: optionally block proxied requests with an error code (rhbz#1348968) * Tue Jul 12 2016 Ken Dreyer 1:10.2.2-21 - common: fix value of CINIT_FLAG_DEFER_DROP_PRIVILEGES (rhbz#1352396) * Tue Jul 12 2016 Ken Dreyer 1:10.2.2-20 - rgw: fix compilation (rhbz#1349355) - rgw: remove datalog keys from error repo on ENOENT (rhbz#1349355) - rgw: add tenant id to GetBucketInstanceInfo (rhbz#1349355) - rgw: carry tenant id with data sync (rhbz#1349355) - rgw: add tenant to url for RGWRESTStreamWriteRequest (rhbz#1349355) - rgw: add tenant to rgw_bucket json format (rhbz#1349355) - rgw: add rgw_bucket_parse_bucket_key() (rhbz#1349355) - rgw: add tenant name to datalog entries (rhbz#1349355) - rgw: convert bucket instance listings back to metadata key format (rhbz#1349355) - rgw: use tenant/ for bucket instance metadata keys (rhbz#1349355) - rgw: add get_key() methods to format rgw_buckets (rhbz#1349355) - rgw: data sync debug logging (rhbz#1349355) - rgw: add missing master_zone when running with old default region config (rhbz#1352888) * Mon Jul 11 2016 Ken Dreyer 1:10.2.2-19 - Require gperftools-libs >= 2.4-8.el7 (rhbz#1343235) - librbd: flag image as updated after proxying maintenance op (rhbz#1354616) * Fri Jul 08 2016 Ken Dreyer 1:10.2.2-18 - rgw: fix error_repo segfault in data sync (rhbz#1353972) * Thu Jul 07 2016 Ken Dreyer 1:10.2.2-17 - TaskFinisher: cancel all tasks wait until finisher done (rhbz#1353715) * Thu Jul 07 2016 Ken Dreyer 1:10.2.2-16 - mon: Monitor: validate prefix on handle_command() (rhbz#1351264) * Fri Jul 01 2016 Ken Dreyer - 1:10.2.2-15 - Disable aarch64 * Thu Jun 30 2016 Ken Dreyer 1:10.2.2-14 - ObjectCacher: fix bh_read_finish offset logic (rhbz#1308433) - osd: provide some contents on ObjectExtent usage in testing (rhbz#1308433) - test: build a correctness test for the ObjectCacher (rhbz#1308433) - test: split objectcacher test into 'stress' and 'correctness' (rhbz#1308433) - test: add a data-storing MemWriteback for testing ObjectCacher (rhbz#1308433) - librbd: failed assertion after shrinking a clone image twice (rhbz#1351590) - rbd-mirror: keep events from different epochs independent (rhbz#1351590) * Thu Jun 30 2016 Thomas Serlin 1:10.2.2-13 - rgw: finish error_repo cr in stop_spawned_services() (rhbz#1351137) * Thu Jun 30 2016 Ken Dreyer 1:10.2.2-12 - rbd-mirror: gracefully fail if object map is unavailable (rhbz#1351591) * Wed Jun 29 2016 Thomas Serlin 1:10.2.2-11 - automake, ssl: real openssl detection, fix ssl linkage w/NSS (rhbz#1351362) * Wed Jun 29 2016 Ken Dreyer 1:10.2.2-10 - rgw: add pg_ver to tombstone_cache (rhbz#1349285) - rgw: add obj tombstone cache (rhbz#1349285) - rgw: rgw_obj comparison also accounts for bucket id (rhbz#1349285) - cls/rgw: reduce tag_timeout significantly (rhbz#1349285) - cls_rgw: dir_suggest entries bucket index logging (rhbz#1349285) - cls/rgw: fix timespan comparison (rhbz#1349285) - rgw: data sync squash, prioritize object removal (rhbz#1349285) - rgw: squash bi complete bi log entries (rhbz#1349285) - rgw: stop bucket lease only after draining object sync operations (rhbz#1349285) * Mon Jun 27 2016 Ken Dreyer - 1:10.2.2-9 - update libradosstriper patch (rhbz#1339870) * Mon Jun 27 2016 Ken Dreyer 1:10.2.2-8 - librbd: mark exclusive lock as released after journal is closed (rhbz#1349288) - librbd: do not propagate mirror status notification failures (rhbz#1349892) - librbd: journal::Replay no longer holds lock while completing callback (rhbz#1349983) - librbd: potential race when replaying journal ops (rhbz#1349983) - librbd: journal callback to interrupt replay (rhbz#1349983) - rbd-mirror: keep local pointer to image journal (rhbz#1349983) - librbd: memory leak possible if journal op event failed (rhbz#1349402) - librbd: ignore snap unprotect -EBUSY errors during journal replay (rhbz#1349402) - rbd-mirror: clean up ImageReplayer before stopping state machine (rhbz#1350351) * Mon Jun 27 2016 Ken Dreyer 1:10.2.2-7 - rgw: add missing metadata_heap pool to old zones (rhbz#1349746) * Wed Jun 22 2016 Ken Dreyer - 1:10.2.2-6 - librgw2: require updated libcurl (rhbz#1327142) * Fri Jun 17 2016 Ken Dreyer 1:10.2.2-5 - selinux: allow chown for self and setattr for /var/run/ceph (rhbz#1347391) * Thu Jun 16 2016 Ken Dreyer 1:10.2.2-4 - rbd-mirror: ensure replay status formatter has completed before stopping (rhbz#1347405) * Thu Jun 16 2016 Ken Dreyer 1:10.2.2-3 - journal: do not log watch errors against deleted journal (rhbz#1347195) - librbd: force-remove journal when disabling feature and removing image (rhbz#1347195) - librbd: ignore ENOENT error when removing image from mirror directory (rhbz#1347195) - rbd-mirror: prune sync points referencing missing snapshots (rhbz#1346880) - rbd-mirror: ignore empty snapshot sequence mapping (rhbz#1346880) * Wed Jun 15 2016 Ken Dreyer - 1:10.2.2-2 - ceph-base obsoletes ceph < 10 (rhbz#1345789) * Tue Jun 14 2016 Ken Dreyer - 1:10.2.2-1 - Rebase to version 10.2.2 (rhbz#1343110, rhbz#1341859, rhbz#1341604, rhbz#1336931, rhbz#1331058, rhbz#1327412) * Tue Jun 14 2016 Thomas Serlin - 1:10.2.1-19 - rpm: fixes over-broad dependency on parted package (rhbz#1341699) * Wed Jun 08 2016 Ali Maredia 1:10.2.1-18 - Revert "rpm: remove dependency on fcgi in configure.ac" (rhbz#1343189) - Revert "rpm: fixes in configure.ac" (rhbz#1343189) - Revert "rpm: more fixes in configure.ac" (rhbz#1343189) * Wed Jun 08 2016 Ali Maredia 1:10.2.1-17 - rpm: more fixes in configure.ac (rhbz#1343189) * Wed Jun 08 2016 Ali Maredia 1:10.2.1-16 - rpm: fixes in configure.ac (rhbz#1343189) * Wed Jun 08 2016 Ali Maredia 1:10.2.1-15 - rpm: remove dependency on fcgi in configure.ac (rhbz#1343189) * Tue Jun 07 2016 Ali Maredia 1:10.2.1-14 - libradosstriper: remove the rest of the libradosstriper code (rhbz#1339870) - Revert "rados: Added --striper option to the command line" (rhbz#1339870) - rgw ldap: fix ldap bindpw parsing (rhbz#1342486) - rbd-mirror: copy snapshot parent image settings (rhbz#1340484) - cls_rbd: asynchronous helper method to set parent (rhbz#1340484) - rbd-mirror: add support for cloning images from mirrored parent (rhbz#1340484) - librbd: extend internal API to clone from open parent image (rhbz#1340484) - cls_rbd: asynchronous helper methods to retrieve mirror image metadata (rhbz#1340484) - rbd-mirror: helper state machine to open remote/read-only images (rhbz#1340484) - rpm: remove dependency on mod-fcgi in librgw2 package (rhbz#1343189) * Wed Jun 01 2016 Ali Maredia 1:10.2.1-13 - rgw: back off if error repo is empty (rhbz#1327142) - rgw: data sync retries sync on prevously failed bucket shards (rhbz#1327142) - rgw: store failed data sync entries in separate omap (rhbz#1327142) - rgw: configurable window size to RGWOmapAppend (rhbz#1327142) - rgw: add a cr for omap keys removal (rhbz#1327142) * Tue May 31 2016 Ali Maredia 1:10.2.1-12 - ceph-disk: workaround gperftool hang (rhbz#1334636) - rbd-mirror: cluster-level asok commands need to support multiple pools (rhbz#1340476) - rbd-mirror: replayer should only handle a single pool (rhbz#1340476) - rbd-mirror: group peers by local pools (rhbz#1340476) - rbd-mirror: stop stale replayers before starting new replayers (rhbz#1340476) - rbd-mirror: normalize debug log message prefix (rhbz#1340476) - rbd-mirror: image replay now uses asynchronous journal shutdown (rhbz#1340071) - librbd: integrate with async journaler shutdown API (rhbz#1340071) - journal: extend asynchronous shutdown to facade (rhbz#1340071) - journal: trimmer now has asynchronous shutdown (rhbz#1340071) - journal: metadata init and shutdown now asynchronous (rhbz#1340071) - journal: player shutdown is now handled asynchronously (rhbz#1340071) - test: use randomized write sizes for rbd-mirror stress test (rhbz#1336755) - journal: eliminate watch delay for object refetches (rhbz#1336755) - journal: keep active tag to assist with pruning watched objects (rhbz#1336755) - journal: update commit entry object number upon overflow (rhbz#1336755) - journal: cleanup watch refetch flag handling (rhbz#1336755) - librbd: metadata retrieval added to open image state machine (rhbz#1336755) - cls_rbd: async version of metadata_list helper method (rhbz#1336755) - rbd-mirror: Unregister clients from non-primary images journal (rhbz#1340482) - rbd-mirror: test: Added unit test for testing image-deleter thread (rhbz#1340482) - rbd-mirror: test: Fixed test_PoolWatcher to support the new changes in PoolWatcher class (rhbz#1340482) - rbd-mirror: Replayer: bootstrap existing mirrored images (rhbz#1340482) - rbd-mirror: replayer: Added image-deleter thread to replayer (rhbz#1340482) - rbd-mirror: Added image-deleter thread to rbd-mirror (rhbz#1340482) - rbd-mirror: Added implementation of image-deleter thread (rhbz#1340482) - rbd-mirror: librbd::mirror_peer_list never returns -ENOENT (rhbz#1340482) - rbd-mirror: fix typo (rhbz#1340482) - rbd-mirror: calculate behind_master only if mirror tag is not newer than master (rhbz#1340482) - cls::journal: treat empty commit position as minimal (rhbz#1340482) - cls_journal: Select min commit position for new clients (rhbz#1340482) - cls_journal: remove duplicated key generation (rhbz#1340482) - journal: replay position might change after pruning stale tags (rhbz#1340503) - librbd: delay commit of overwritten journal event (rhbz#1340503) - ObjectCacher: pass new journal tid when overwriting extent (rhbz#1340503) - qa/workunits/rbd: record rbd CLI debug messages during mirror stress (rhbz#1340503) - rbd-mirror: disable librbd caching for replicated images (rhbz#1340489) - osd: reset session->osdmap if session is not waiting for a map anymore (rhbz#1339061) - osd/OpRequest: reset connection upon unregister (rhbz#1339061) - osd: remove all stale osdmaps in handle_osd_map() (rhbz#1339061) * Fri May 27 2016 Ken Dreyer - 1:10.2.1-11 - require parted >= 3.1-26 (rhbz#1336756) * Fri May 27 2016 Ali Maredia 1:10.2.1-10 - rgw: properly handle initial slashes in SLO's segment path. (rhbz#1336644) * Thu May 26 2016 Ken Dreyer - drop ceph-radosgw dependency on python-flask (rhbz#1339873) * Wed May 25 2016 Ali Maredia 1:10.2.1-8 - rgw: add_zone only clears master_zone if --master=false (rhbz#1336644) * Tue May 24 2016 Boris Ranto 1:10.2.1-7 - backport PR #9218 (rhbz#1337275) * Fri May 20 2016 Jason Dillaman 1:10.2.1-6 - rbd-mirror: fix potential crash during status update (rhbz#1336755) * Thu May 19 2016 Ken Dreyer 1:10.2.1-5 - radosgw-admin: fix 'period push' handling of --url (rhbz#1336648) * Thu May 19 2016 Ken Dreyer 1:10.2.1-4 - global: don't link lttng into libglobal (rhbz#1336877) * Tue May 17 2016 Ken Dreyer - 1:10.2.1-3 - Correct BZ number in previous changelog entry (rhbz#1333398) * Mon May 16 2016 Ken Dreyer - 1:10.2.1-2 - Drop support for RHEL<7 and above (https://github.com/ceph/ceph/pull/8938) (rhbz#1335619, rhbz#1333398) * Fri May 13 2016 Ken Dreyer - 1:10.2.1-1 - Rebase to version 10.2.1 (rhbz#1333950, rhbz#1333754, rhbz#1333599, rhbz#1332514, rhbz#1332253, rhbz#1331784, rhbz#1331267, rhbz#1331058, rhbz#1330777, rhbz#1328840, rhbz#1327412, rhbz#1327142, rhbz#1326298, rhbz#1326058) * Wed May 11 2016 Ken Dreyer 1:10.2.0-2 - make async messenger experimental downstream (rhbz#1321649) * Fri Apr 22 2016 Ali Maredia - 1:10.2.0-1 - Rebase to version 10.2.0 * Tue Apr 19 2016 Boris Ranto - 1:10.1.1-2 - Perform hardened build * Fri Apr 08 2016 Boris Ranto - 1:10.1.1-1 - Rebase to version 10.1.1 * Thu Mar 31 2016 Boris Ranto - 1:10.1.0-1 - Rebase to version 10.1.0 - Do not package cephfs files * Tue Mar 15 2016 Ken Dreyer - 1:10.0.4-2 - Drop dependencies on "ceph" meta-package - Move CephFS repair tools to ceph-common (rhbz#1314114) * Fri Mar 04 2016 Ken Dreyer - 1:10.0.4-1 - initial jewel pre-release package