]> git.pld-linux.org Git - packages/ceph.git/commitdiff
- updated to 10.2.11 (for now, WIP on newer ones)
authorJakub Bogusz <qboosh@pld-linux.org>
Sun, 24 May 2020 05:43:08 +0000 (07:43 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Sun, 24 May 2020 05:43:08 +0000 (07:43 +0200)
- updated logrotate patch
- removed obsolete cxx patch
- added link,assert,python patches
- use upstream files for systemd
- rocksdb support builds now

ceph-assert.patch [new file with mode: 0644]
ceph-link.patch [new file with mode: 0644]
ceph-mds@.service [deleted file]
ceph-mon@.service [deleted file]
ceph-osd@.service [deleted file]
ceph-python.patch [new file with mode: 0644]
ceph.logrotate.patch
ceph.spec
ceph.target [deleted file]
cxx.patch [deleted file]

diff --git a/ceph-assert.patch b/ceph-assert.patch
new file mode 100644 (file)
index 0000000..3a131bc
--- /dev/null
@@ -0,0 +1,10 @@
+--- ceph-10.2.11/src/test/librados_test_stub/TestWatchNotify.cc.orig   2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/src/test/librados_test_stub/TestWatchNotify.cc        2020-05-23 14:37:53.766463510 +0200
+@@ -1,6 +1,7 @@
+ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+ // vim: ts=8 sw=2 smarttab
++#define BOOST_DISABLE_ASSERTS // broken with ceph assert.h
+ #include "test/librados_test_stub/TestWatchNotify.h"
+ #include "include/Context.h"
+ #include "common/Finisher.h"
diff --git a/ceph-link.patch b/ceph-link.patch
new file mode 100644 (file)
index 0000000..63ab49e
--- /dev/null
@@ -0,0 +1,175 @@
+--- ceph-10.2.11/configure.ac.orig     2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/configure.ac  2020-05-22 21:04:23.958900423 +0200
+@@ -760,12 +760,12 @@
+ if test "x$enable_xio" = x"yes"; then
+    AC_CHECK_HEADER([libxio.h], [], AC_MSG_ERROR([Cannot find header 'libxio.h'.]))
+-   AC_CHECK_LIB([xio], [xio_init], [], AC_MSG_FAILURE([Accelio libxio not found]))
+-   AC_CHECK_LIB([ibverbs], [ibv_query_device], [], AC_MSG_FAILURE([libibverbs not found]))
+-   AC_CHECK_LIB([rdmacm], [rdma_connect], [], AC_MSG_FAILURE([librdmacm not found]))
++   AC_CHECK_LIB([xio], [xio_init], [true], AC_MSG_FAILURE([Accelio libxio not found]))
++   AC_CHECK_LIB([ibverbs], [ibv_query_device], [true], AC_MSG_FAILURE([libibverbs not found]))
++   AC_CHECK_LIB([rdmacm], [rdma_connect], [true], AC_MSG_FAILURE([librdmacm not found]))
+    # Also require boost-regex, used in address_helper
+-   AC_CHECK_LIB(boost_regex, main, [],
++   AC_CHECK_LIB(boost_regex, main, [true],
+       AC_MSG_FAILURE(["Boost regex library not found."]))
+    AC_DEFINE([HAVE_XIO], [1], [Accelio conditional compilation])
+@@ -874,7 +874,7 @@
+ AS_IF([test "x$with_librocksdb" = "xyes"],
+             [PKG_CHECK_MODULES([LIBROCKSDB], [rocksdb], [], [true])])
+ AS_IF([test "x$with_librocksdb" = "xyes"],
+-            [AC_CHECK_LIB([rocksdb], [open], [], [AC_MSG_FAILURE([librocksdb not found])])])
++            [AC_CHECK_LIB([rocksdb], [open], [true], [AC_MSG_FAILURE([librocksdb not found])])])
+ AM_CONDITIONAL(WITH_DLIBROCKSDB, [ test "$with_librocksdb" = "yes" ])
+ AC_ARG_WITH([librocksdb-static],
+@@ -897,8 +897,8 @@
+ # needs libcurl and libxml2
+ if test "x$with_rest_bench" = xyes && test "x$with_system_libs3" = xno; then
+-   AC_CHECK_LIB([curl], [curl_easy_init], [], AC_MSG_ERROR([libcurl not found]))
+-   AC_CHECK_LIB([xml2], [xmlParseChunk], [], AC_MSG_ERROR([libxml2 not found]))
++   AC_CHECK_LIB([curl], [curl_easy_init], [true], AC_MSG_ERROR([libcurl not found]))
++   AC_CHECK_LIB([xml2], [xmlParseChunk], [true], AC_MSG_ERROR([libxml2 not found]))
+ fi
+ # use libaio?
+--- ceph-10.2.11/src/kv/Makefile.am.orig       2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/src/kv/Makefile.am    2020-05-22 21:08:20.037621475 +0200
+@@ -1,12 +1,12 @@
+ if ENABLE_SERVER
+-libkv_a_SOURCES = \
++libkv_la_SOURCES = \
+       kv/KeyValueDB.cc \
+       kv/LevelDBStore.cc
+-libkv_a_CXXFLAGS = ${AM_CXXFLAGS}
+-libkv_a_LIBADD =
++libkv_la_CXXFLAGS = ${AM_CXXFLAGS}
++libkv_la_LIBADD =
+-noinst_LIBRARIES += libkv.a
++noinst_LTLIBRARIES += libkv.la
+ noinst_HEADERS += \
+       kv/KeyValueDB.h \
+@@ -29,22 +29,22 @@
+ rocksdb/librocksdb.a:
+       cd rocksdb && $(ROCKSDB_MAKE_VARS) $(MAKE) -j$(shell ${NPROC}) static_lib
+-libkv_a_CXXFLAGS += -I rocksdb/include -fPIC
+-libkv_a_SOURCES += kv/RocksDBStore.cc
+-libkv_a_LIBADD += rocksdb/librocksdb.a
++libkv_la_CXXFLAGS += -I rocksdb/include -fPIC
++libkv_la_SOURCES += kv/RocksDBStore.cc
++libkv_la_LIBADD += rocksdb/librocksdb.a
+ noinst_HEADERS += kv/RocksDBStore.h
+ endif
+ if WITH_DLIBROCKSDB
+-libkv_a_SOURCES += kv/RocksDBStore.cc
+-libkv_a_LIBADD += -lrocksdb
++libkv_la_SOURCES += kv/RocksDBStore.cc
++libkv_la_LIBADD += -lrocksdb
+ noinst_HEADERS += kv/RocksDBStore.h
+ endif
+ if WITH_KINETIC
+-libkv_a_SOURCES += kv/KineticStore.cc
+-libkv_a_CXXFLAGS += -std=gnu++11
+-libkv_a_LIBADD += -lkinetic_client -lprotobuf -lglog -lgflags libcrypto.a
++libkv_la_SOURCES += kv/KineticStore.cc
++libkv_la_CXXFLAGS += -std=gnu++11
++libkv_la_LIBADD += -lkinetic_client -lprotobuf -lglog -lgflags libcrypto.a
+ noinst_HEADERS += kv/KineticStore.h
+ endif
+--- ceph-10.2.11/src/os/Makefile.am.orig       2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/src/os/Makefile.am    2020-05-22 21:11:02.663407123 +0200
+@@ -12,7 +12,7 @@
+ if ENABLE_SERVER
+-libos_a_SOURCES = \
++libos_la_SOURCES = \
+       os/filestore/chain_xattr.cc \
+       os/filestore/DBObjectMap.cc \
+       os/filestore/FileJournal.cc \
+@@ -31,11 +31,11 @@
+       os/ObjectStore.cc
+ if WITH_FUSE
+-libos_a_SOURCES += os/FuseStore.cc
++libos_la_SOURCES += os/FuseStore.cc
+ endif
+ if WITH_LIBAIO
+-libos_a_SOURCES += \
++libos_la_SOURCES += \
+       os/bluestore/kv.cc \
+       os/bluestore/Allocator.cc \
+       os/bluestore/BlockDevice.cc \
+@@ -48,25 +48,25 @@
+ endif
+ if LINUX
+-libos_a_SOURCES += os/filestore/BtrfsFileStoreBackend.cc
++libos_la_SOURCES += os/filestore/BtrfsFileStoreBackend.cc
+ endif
+ if WITH_LIBXFS
+-libos_a_SOURCES += \
++libos_la_SOURCES += \
+     os/filestore/XfsFileStoreBackend.cc \
+     os/fs/XFS.cc
+ endif
+ if WITH_LIBZFS
+-libos_a_SOURCES += os/filestore/ZFSFileStoreBackend.cc
++libos_la_SOURCES += os/filestore/ZFSFileStoreBackend.cc
+ endif
+-libos_a_CXXFLAGS = ${AM_CXXFLAGS} -I rocksdb/include -fPIC
+-libos_a_LIBADD = libos_types.a libkv.a
+-noinst_LIBRARIES += libos.a
++libos_la_CXXFLAGS = ${AM_CXXFLAGS} -I rocksdb/include -fPIC
++libos_la_LIBADD = libos_types.a libkv.la
++noinst_LTLIBRARIES += libos.la
+ if WITH_LTTNG
+-libos_a_LIBADD += $(LIBOS_TP)
++libos_la_LIBADD += $(LIBOS_TP)
+ endif
+ noinst_HEADERS += \
+@@ -140,11 +140,11 @@
+       ${top_srcdir}/src/spdk/lib/util/libspdk_util.a \
+       ${top_srcdir}/src/spdk/lib/ioat/libspdk_ioat.a
+-libos_a_CXXFLAGS += \
++libos_la_CXXFLAGS += \
+       ${LIBSPDK_CFLAGS} \
+       ${LIBDPDK_CFLAGS} \
+       ${LIBPCIACCESS_CFLAGS}
+-libos_a_SOURCES += os/bluestore/NVMEDevice.cc
++libos_la_SOURCES += os/bluestore/NVMEDevice.cc
+ noinst_HEADERS += os/bluestore/NVMEDevice.h
+ endif
+--- ceph-10.2.11/src/Makefile-env.am.orig      2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/src/Makefile-env.am   2020-05-22 21:11:33.779905217 +0200
+@@ -203,9 +203,9 @@
+ LIBCRUSH = libcrush.la
+ LIBCOMPRESSOR = libcompressor.la
+ LIBJSON_SPIRIT = libjson_spirit.la
+-LIBKV = libkv.a
++LIBKV = libkv.la
+ LIBLOG = liblog.la
+-LIBOS = libos.a
++LIBOS = libos.la
+ LIBOS_TYPES = libos_types.a
+ LIBOSD = libosd.a
+ LIBOSD_TYPES = libosd_types.la
diff --git a/ceph-mds@.service b/ceph-mds@.service
deleted file mode 100644 (file)
index aec46fd..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Ceph metadata server daemon
-After=network-online.target local-fs.target
-Wants=network-online.target local-fs.target
-PartOf=ceph.target
-
-[Service]
-EnvironmentFile=-/etc/sysconfig/ceph
-Environment=CLUSTER=ceph
-ExecStart=/usr/bin/ceph-mds -f --cluster ${CLUSTER} --id %i
-ExecReload=/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=ceph.target
diff --git a/ceph-mon@.service b/ceph-mon@.service
deleted file mode 100644 (file)
index 421897d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Ceph cluster monitor daemon
-After=network-online.target
-Wants=network-online.target
-
-# According to:
-#   http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
-# these can be removed once ceph-mon will dynamically change network
-# configuration.
-After=network-online.target local-fs.target
-Wants=network-online.target local-fs.target
-PartOf=ceph.target
-
-[Service]
-EnvironmentFile=-/etc/sysconfig/ceph
-Environment=CLUSTER=ceph
-ExecStart=/usr/bin/ceph-mon -f --cluster ${CLUSTER} --id %i
-ExecReload=/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=ceph.target
diff --git a/ceph-osd@.service b/ceph-osd@.service
deleted file mode 100644 (file)
index 1e08355..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=Ceph object storage daemon
-After=network-online.target local-fs.target
-Wants=network-online.target local-fs.target
-PartOf=ceph.target
-
-[Service]
-EnvironmentFile=-/etc/sysconfig/ceph
-Environment=CLUSTER=ceph
-ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i
-ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
-ExecReload=/bin/kill -HUP $MAINPID
-LimitNOFILE=131072
-
-[Install]
-WantedBy=ceph.target
diff --git a/ceph-python.patch b/ceph-python.patch
new file mode 100644 (file)
index 0000000..5d93ce4
--- /dev/null
@@ -0,0 +1,47 @@
+--- ceph-10.2.11/src/ceph-detect-init/Makefile.am.orig 2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/src/ceph-detect-init/Makefile.am      2020-05-23 15:54:24.161595205 +0200
+@@ -67,15 +67,9 @@
+ ceph-detect-init-install-data:
+       cd $(srcdir)/ceph-detect-init ; \
+       if test "$(DESTDIR)" ; then \
+-              if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+-                      options=--install-layout=deb ; \
+-              else \
+                       options=--prefix=/usr ; \
+-              fi ; \
+               root="--root=$(DESTDIR)" ; \
+       fi ; \
+-      python setup.py install $$root $$options
++      $(PYTHON) setup.py install $$root $$options --optimize=2
+-LOCAL_ALL += ceph-detect-init-all
+-LOCAL_CLEAN += ceph-detect-init-clean
+ LOCAL_INSTALLDATA += ceph-detect-init-install-data
+--- ceph-10.2.11/src/ceph-disk/Makefile.am.orig        2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/src/ceph-disk/Makefile.am     2020-05-23 15:55:36.397870535 +0200
+@@ -32,7 +32,7 @@
+ export CEPH_DISK_VIRTUALENV = ${CEPH_BUILD_VIRTUALENV}/ceph-disk-virtualenv
+-ceph-disk-all: ${CEPH_DISK_VIRTUALENV}
++ceph-disk-init-all: ${CEPH_DISK_VIRTUALENV}
+ ${CEPH_DISK_VIRTUALENV}:
+       cd $(srcdir)/ceph-disk ; ../tools/setup-virtualenv.sh ${CEPH_DISK_VIRTUALENV} ; test -d wheelhouse && export NO_INDEX=--no-index ; ${CEPH_DISK_VIRTUALENV}/bin/pip install $$NO_INDEX --find-links=file://$$(pwd)/wheelhouse -e .
+@@ -43,15 +43,10 @@
+ ceph-disk-install-data:
+       cd $(srcdir)/ceph-disk ; \
+       if test "$(DESTDIR)" ; then \
+-              if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+-                      options=--install-layout=deb ; \
+-              else \
+                       options=--prefix=/usr ; \
+-              fi ; \
+               root="--root=$(DESTDIR) --install-script=/usr/sbin" ; \
+       fi ; \
+-      python setup.py install $$root $$options
++      $(PYTHON) setup.py install $$root $$options --optimize=2
+-LOCAL_ALL += ceph-disk-all
+ LOCAL_CLEAN += ceph-disk-clean
+ LOCAL_INSTALLDATA += ceph-disk-install-data
index bdde0fadf5c96ec7520f3d6a6feecc49afc9dc95..6702afc02f9549ca53f34af736292c8a308f4231 100644 (file)
@@ -1,29 +1,10 @@
---- ceph-0.94.7/src/logrotate.conf.orig        2016-05-21 07:57:16.259310201 +0200
-+++ ceph-0.94.7/src/logrotate.conf     2016-05-21 07:59:10.385972051 +0200
-@@ -4,26 +4,7 @@
+--- ceph-10.2.11/src/logrotate.conf.orig       2018-07-09 18:23:56.000000000 +0200
++++ ceph-10.2.11/src/logrotate.conf    2020-05-23 15:03:02.828288220 +0200
+@@ -4,7 +4,7 @@
      compress
      sharedscripts
      postrotate
--        if which service > /dev/null 2>&1 && [ -x `which service` ]; then
--            service ceph reload >/dev/null
--        elif which invoke-rc.d > /dev/null 2>&1 && [ -x `which invoke-rc.d` ]; then
--            invoke-rc.d ceph reload >/dev/null
--        fi
--        # Possibly reload twice, but depending on ceph.conf the reload above may be a no-op
--        if which initctl > /dev/null 2>&1 && [ -x `which initctl` ]; then
--            for daemon in osd mon mds ; do
--              find -L /var/lib/ceph/$daemon/ -mindepth 1 -maxdepth 1 -regextype posix-egrep -regex '.*/[A-Za-z0-9]+-[A-Za-z0-9._-]+' -printf '%P\n' \
--                | while read f; do
--                    if [ -e "/var/lib/ceph/$daemon/$f/done" -o -e "/var/lib/ceph/$daemon/$f/ready" ] && [ -e "/var/lib/ceph/$daemon/$f/upstart" ] && [ ! -e "/var/lib/ceph/$daemon/$f/sysvinit" ]; then
--                      cluster="${f%%-*}"
--                      id="${f#*-}"
--
--                      initctl reload ceph-$daemon cluster="$cluster" id="$id" 2>/dev/null || :
--                    fi
--                  done
--            done
--        fi
--        killall -q -1 ceph-fuse || true
+-        killall -q -1 ceph-mon ceph-mds ceph-osd ceph-fuse radosgw || true
 +        cephctl reload >/dev/null 2>/dev/null
      endscript
      missingok
index 4b6958116c4102271984203f837544d29aada8db..d172a067fb4cfbcee3c2fe1a4d774ad690517ee0 100644 (file)
--- a/ceph.spec
+++ b/ceph.spec
@@ -1,16 +1,17 @@
 # TODO:
-#      - proper init scripts if non-systemd boot is too be supported
-#         (upstream scripts seem overcomplicated and hardly useful)
-#      - run as non-root user
+# - SPDK (libpciaccess dpdk/rte_config.h -lrte_eal -lrte_mempool -lrte_ring)
+# - proper init scripts if non-systemd boot is too be supported
+#   (upstream scripts seem overcomplicated and hardly useful)
+# - run as non-root user
 #
 # Note on versioning: http://docs.ceph.com/docs/master/releases/
 #
 # Conditional build:
 %bcond_without java            # Java binding
-%bcond_with    accelio         # Accelio transport support
+%bcond_with    accelio         # Accelio transport support [needs update for internal API changes]
 %bcond_with    kinetic         # Kinetic storage support [needs update for internal API changes]
-%bcond_with    rocksdb         # RocksDB storage support [needs update for internal API changes]
-%bcond_with    zfs             # ZFS support
+%bcond_without rocksdb         # RocksDB storage support
+%bcond_with    zfs             # ZFS support [not ready for zfs 0.8.x]
 %bcond_without lttng           # LTTng tracing
 %bcond_without babeltrace      # Babeltrace traces support
 %bcond_without tcmalloc        # tcmalloc allocator
 Summary:       User space components of the Ceph file system
 Summary(pl.UTF-8):     Działające w przestrzeni użytkownika elementy systemu plików Ceph
 Name:          ceph
-Version:       0.94.10
-Release:       3
+Version:       10.2.11
+Release:       1
 License:       LGPL v2.1 (libraries), GPL v2 (some programs)
 Group:         Base
 Source0:       http://download.ceph.com/tarballs/%{name}-%{version}.tar.gz
-# Source0-md5: 9bf0d6df74e6da3725dcc3b7adf3d849
+# Source0-md5: 09d18eb8d8d06893e9496657f03427a0
 Source1:       ceph.sysconfig
-# based on files from https://github.com/ceph/ceph/tree/master/systemd
-Source10:      cephctl
-Source11:      ceph-mds@.service
-Source12:      ceph-mon@.service
-Source13:      ceph-osd@.service
-Source14:      ceph.target
-Source15:      ceph.tmpfiles
+Source2:       cephctl
+Source3:       ceph.tmpfiles
 Patch0:                %{name}-init-fix.patch
 Patch1:                %{name}.logrotate.patch
-Patch2:                cxx.patch
+Patch2:                %{name}-link.patch
 Patch3:                boost.patch
+Patch4:                %{name}-assert.patch
+Patch5:                %{name}-python.patch
 URL:           https://ceph.io/
 %{?with_accelio:BuildRequires: accelio-devel}
 BuildRequires: autoconf >= 2.59
@@ -64,26 +62,32 @@ BuildRequires:      libfuse-devel
 %{?with_accelio:BuildRequires: libibverbs-devel}
 BuildRequires: libltdl-devel
 %{?with_accelio:BuildRequires: librdmacm-devel}
-BuildRequires: libs3-devel
-BuildRequires: libstdc++-devel
+BuildRequires: libstdc++-devel >= 6:4.7
 %{?with_tcmalloc:BuildRequires:        libtcmalloc-devel}
 BuildRequires: libtool >= 2:1.5
 BuildRequires: libuuid-devel
+BuildRequires: libxml2-devel >= 2.0
 %{?with_lttng:BuildRequires:   lttng-ust-devel}
-BuildRequires: nss-devel
+BuildRequires: nss-devel >= 3
+BuildRequires: openldap-devel
+BuildRequires: openssl-devel
 BuildRequires: perl-base
 BuildRequires: pkgconfig
-BuildRequires: python >= 1:2.4
+BuildRequires: python >= 1:2.7
+BuildRequires: python-Cython
 %{?with_rocksdb:BuildRequires: rocksdb-devel}
 BuildRequires: rpmbuild(macros) >= 1.671
 BuildRequires: sed >= 4.0
 BuildRequires: snappy-devel
+BuildRequires: sphinx-pdg-2 >= 1.0
 BuildRequires: udev-devel
+#BuildRequires:        virtualenv  disabled in python patch
 BuildRequires: xfsprogs-devel
 %ifarch %{x8664}
 BuildRequires: yasm
 %endif
 %{?with_zfs:BuildRequires:     zfs-devel}
+BuildRequires: zlib-devel
 Requires(post,preun):  /sbin/chkconfig
 Requires(preun):       rc-scripts
 Requires:      %{name}-libs = %{version}-%{release}
@@ -93,7 +97,7 @@ Obsoletes:    gcephtool
 Obsoletes:     hadoop-cephfs
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                skip_post_check_so      libcls_.*.so.* libec_.*.so.*
+%define                skip_post_check_so      libceph_example.so.* libceph_snappy.so.* libceph_zlib.so.* libcls_.*.so.* libec_.*.so.*
 
 %description
 Ceph is a distributed network file system designed to provide
@@ -121,10 +125,17 @@ License:  LGPL v2.1
 Group:         Development/Libraries
 Requires:      %{name}-libs = %{version}-%{release}
 Requires:      boost-devel >= 1.34
-Requires:      nss-devel
+Requires:      curl-devel
+Requires:      expat-devel
+Requires:      fcgi-devel
+Requires:      nss-devel >= 3
 Requires:      leveldb-devel
 Requires:      libatomic_ops
+Requires:      libblkid-devel >= 2.17
+Requires:      libstdc++-devel >= 6:4.7
 Requires:      libuuid-devel
+%{?with_lttng:Requires:        lttng-ust-devel}
+Requires:      openldap-devel
 
 %description devel
 This package contains the headers needed to develop programs that use
@@ -218,13 +229,16 @@ Agenci OCF do monitorowania procesów Cepha.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p0
+%patch4 -p1
+%patch5 -p1
 
 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' \
-       src/{ceph-create-keys,ceph-disk,ceph-rest-api} \
-       src/brag/client/ceph-brag
+       src/{ceph-create-keys,ceph-rest-api} \
+       src/brag/client/ceph-brag \
+       src/ceph-disk/ceph_disk/main.py
 
 # adjust rule used to create ceph from ceph.in
-%{__sed} -i -e 's,"#!/usr/bin/env python","#!%{__python}",' src/Makefile-client.am
+%{__sed} -i -e 's,|/usr/bin/env python|,|%{__python}|,' src/Makefile-client.am
 
 %build
 %{__libtoolize}
@@ -239,6 +253,8 @@ CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64"
 %configure \
        %{?with_java:JAVAC=/usr/bin/javac} \
        %{?with_zfs:LIBZFS_CFLAGS="-I/usr/include/libzfs -I/usr/include/libspl"} \
+       PYTHON=%{__python} \
+       SPHINX_BUILD=/usr/bin/sphinx-build-2 \
        ac_cv_prog_uudecode_base64=no \
        --sbindir=/sbin \
        %{!?with_babeltrace:--without-babeltrace} \
@@ -247,12 +263,13 @@ CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64"
        %{!?with_tcmalloc:--without-tcmalloc} \
        %{?with_kinetic:--with-kinetic} \
        %{?with_rocksdb:--with-librocksdb} \
+       --without-librocksdb-static \
        %{?with_zfs:--with-libzfs} \
        %{!?with_lttng:--without-lttng} \
        --with-ocf \
        --with-radosgw \
        --with-system-leveldb \
-       --with-system-libs3 \
+       --with-systemd-unit-dir=%{systemdunitdir} \
        %{?with_java:--enable-cephfs-java --with-jdk-dir=%{_jvmdir}/java} \
        --disable-silent-rules \
        %{?with_accelio:--enable-xio}
@@ -272,15 +289,15 @@ install -d $RPM_BUILD_ROOT%{_localstatedir}/{lib/ceph/{tmp,mon,osd,mds},log/ceph
 install -p src/init-ceph $RPM_BUILD_ROOT/etc/rc.d/init.d/ceph
 install -p src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph
 
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/ceph
-install %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}
-install %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/ceph
+install %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}
 ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/ceph.service
-install %{SOURCE15} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ceph.conf
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ceph.conf
 
 # loadable modules
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/*.{a,la}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/rados-classes/*.{a,la}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/compressor/*.{a,la}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/*.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/rados-classes/*.la
 %if %{with java}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcephfs_jni.{la,a}
 %endif
@@ -323,15 +340,24 @@ fi
 %attr(754,root,root) /etc/rc.d/init.d/ceph
 %config(noreplace) /etc/sysconfig/ceph
 %dir /etc/systemd/system/ceph.target.wants
+%{systemdunitdir}/ceph.service
+%{systemdunitdir}/ceph.target
+%{systemdunitdir}/ceph-create-keys@.service
+%{systemdunitdir}/ceph-disk@.service
+%{systemdunitdir}/ceph-mds.target
 %{systemdunitdir}/ceph-mds@.service
+%{systemdunitdir}/ceph-mon.target
 %{systemdunitdir}/ceph-mon@.service
+%{systemdunitdir}/ceph-osd.target
 %{systemdunitdir}/ceph-osd@.service
-%{systemdunitdir}/ceph.service
-%{systemdunitdir}/ceph.target
+%{systemdunitdir}/ceph-rbd-mirror.target
+%{systemdunitdir}/ceph-rbd-mirror@.service
+%{systemdunitdir}/rbdmap.service
 %{systemdtmpfilesdir}/ceph.conf
 %dir %{_sysconfdir}/ceph
 %attr(755,root,root) %{_bindir}/ceph
 %attr(755,root,root) %{_bindir}/ceph-authtool
+%attr(755,root,root) %{_bindir}/ceph-bluefs-tool
 %attr(755,root,root) %{_bindir}/ceph-brag
 %attr(755,root,root) %{_bindir}/ceph-clsinfo
 %attr(755,root,root) %{_bindir}/ceph-conf
@@ -339,6 +365,7 @@ fi
 %attr(755,root,root) %{_bindir}/ceph-crush-location
 %attr(755,root,root) %{_bindir}/ceph-debugpack
 %attr(755,root,root) %{_bindir}/ceph-dencoder
+%attr(755,root,root) %{_bindir}/ceph-detect-init
 %attr(755,root,root) %{_bindir}/ceph-mds
 %attr(755,root,root) %{_bindir}/ceph-mon
 %attr(755,root,root) %{_bindir}/ceph-objectstore-tool
@@ -350,6 +377,7 @@ fi
 %attr(755,root,root) %{_bindir}/ceph-syn
 %attr(755,root,root) %{_bindir}/cephctl
 %attr(755,root,root) %{_bindir}/cephfs
+%attr(755,root,root) %{_bindir}/cephfs-data-scan
 %attr(755,root,root) %{_bindir}/cephfs-journal-tool
 %attr(755,root,root) %{_bindir}/cephfs-table-tool
 %attr(755,root,root) %{_bindir}/crushtool
@@ -359,33 +387,35 @@ fi
 %attr(755,root,root) %{_bindir}/rados
 %attr(755,root,root) %{_bindir}/rbd
 %attr(755,root,root) %{_bindir}/rbd-fuse
+%attr(755,root,root) %{_bindir}/rbd-mirror
+%attr(755,root,root) %{_bindir}/rbd-nbd
 %attr(755,root,root) %{_bindir}/rbd-replay
 %attr(755,root,root) %{_bindir}/rbd-replay-many
 %attr(755,root,root) %{_bindir}/rbd-replay-prep
+%attr(755,root,root) %{_bindir}/rbdmap
+%attr(755,root,root) %{_sbindir}/ceph-disk
 %attr(755,root,root) /sbin/ceph-create-keys
-%attr(755,root,root) /sbin/ceph-disk
-%attr(755,root,root) /sbin/ceph-disk-activate
-%attr(755,root,root) /sbin/ceph-disk-prepare
 %attr(755,root,root) /sbin/ceph-disk-udev
 %attr(755,root,root) /sbin/mount.ceph
 %attr(755,root,root) /sbin/mount.fuse.ceph
 %if "%{_libexecdir}" != "%{_libdir}"
 %dir %{_libexecdir}/ceph
 %endif
+%attr(755,root,root) %{_libexecdir}/ceph/ceph-monstore-update-crush.sh
 %attr(755,root,root) %{_libexecdir}/ceph/ceph-osd-prestart.sh
 %dir %{_libdir}/ceph
 %{_libdir}/ceph/ceph_common.sh
+%dir %{_libdir}/ceph/compressor
+%attr(755,root,root) %{_libdir}/ceph/compressor/libceph_example.so*
+%attr(755,root,root) %{_libdir}/ceph/compressor/libceph_snappy.so*
+%attr(755,root,root) %{_libdir}/ceph/compressor/libceph_zlib.so*
 %dir %{_libdir}/ceph/erasure-code
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_example.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_register.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_hangs.so*
 %ifarch %{x8664}
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_isa.so*
 %endif
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure.so*
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_generic.so*
-%ifarch arm
+%ifarch %{arm}
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_neon.so*
 %endif
 %ifarch %{ix86} %{x8664} x32
@@ -395,25 +425,27 @@ fi
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse4.so*
 %endif
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_lrc.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_entry_point.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_version.so*
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_generic.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_neon.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse3.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse4.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec_generic.so*
+%ifarch %{ix86} %{x8664} x32
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec_sse3.so*
+%endif
 %dir %{_libdir}/rados-classes
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_hello.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_kvs.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_lock.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_log.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_rbd.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_refcount.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_replica_log.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_rgw.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_statelog.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_user.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_version.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_cephfs.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_hello.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_journal.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_kvs.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_lock.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_log.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_numops.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_rbd.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_refcount.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_replica_log.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_rgw.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_statelog.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_timeindex.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_user.so
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_version.so
 %{_datadir}/ceph
 %config(noreplace) /etc/logrotate.d/ceph
 %config(noreplace) %{_sysconfdir}/bash_completion.d/rados
@@ -427,6 +459,7 @@ fi
 %{_mandir}/man8/ceph-debugpack.8*
 %{_mandir}/man8/ceph-dencoder.8*
 %{_mandir}/man8/ceph-deploy.8*
+%{_mandir}/man8/ceph-detect-init.8*
 %{_mandir}/man8/ceph-disk.8*
 %{_mandir}/man8/ceph-mds.8*
 %{_mandir}/man8/ceph-mon.8*
@@ -447,9 +480,12 @@ fi
 %{_mandir}/man8/radosgw-admin.8*
 %{_mandir}/man8/rbd.8*
 %{_mandir}/man8/rbd-fuse.8*
+%{_mandir}/man8/rbd-mirror.8*
+%{_mandir}/man8/rbd-nbd.8*
 %{_mandir}/man8/rbd-replay.8*
 %{_mandir}/man8/rbd-replay-many.8*
 %{_mandir}/man8/rbd-replay-prep.8*
+%{_mandir}/man8/rbdmap.8*
 
 %dir %{_localstatedir}/lib/ceph
 %dir %{_localstatedir}/lib/ceph/mds
@@ -477,6 +513,8 @@ fi
 %attr(755,root,root) %ghost %{_libdir}/librbd.so.1
 %attr(755,root,root) %{_libdir}/librbd_tp.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/librbd_tp.so.1
+%attr(755,root,root) %{_libdir}/librgw.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/librgw.so.2
 
 %files devel
 %defattr(644,root,root,755)
@@ -488,6 +526,7 @@ fi
 %attr(755,root,root) %{_libdir}/libradosstriper.so
 %attr(755,root,root) %{_libdir}/librbd.so
 %attr(755,root,root) %{_libdir}/librbd_tp.so
+%attr(755,root,root) %{_libdir}/librgw.so
 %{_libdir}/libcephfs.la
 %{_libdir}/libos_tp.la
 %{_libdir}/libosd_tp.la
@@ -496,6 +535,7 @@ fi
 %{_libdir}/libradosstriper.la
 %{_libdir}/librbd.la
 %{_libdir}/librbd_tp.la
+%{_libdir}/librgw.la
 %{_includedir}/cephfs
 %{_includedir}/rados
 %{_includedir}/radosstriper
@@ -511,14 +551,24 @@ fi
 %{_libdir}/libradosstriper.a
 %{_libdir}/librbd.a
 %{_libdir}/librbd_tp.a
+%{_libdir}/librgw.a
 
 %files -n python-ceph
 %defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/cephfs.so
+%attr(755,root,root) %{py_sitedir}/rados.so
+%attr(755,root,root) %{py_sitedir}/rbd.so
+%{py_sitedir}/ceph_detect_init
+%{py_sitedir}/ceph_disk
+%{py_sitedir}/ceph_detect_init-1.0.1-py*.egg-info
+%{py_sitedir}/ceph_disk-1.0.0-py*.egg-info
+%{py_sitedir}/cephfs-0-py*.egg-info
+%{py_sitedir}/rados-0-py*.egg-info
+%{py_sitedir}/rbd-0-py*.egg-info
 %{py_sitescriptdir}/ceph_argparse.py[co]
+%{py_sitescriptdir}/ceph_daemon.py[co]
 %{py_sitescriptdir}/ceph_rest_api.py[co]
-%{py_sitescriptdir}/cephfs.py[co]
-%{py_sitescriptdir}/rados.py[co]
-%{py_sitescriptdir}/rbd.py[co]
+%{py_sitescriptdir}/ceph_volume_client.py[co]
 
 %if %{with java}
 %files -n java-cephfs
@@ -538,13 +588,13 @@ fi
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/radosgw
 %attr(755,root,root) %{_bindir}/radosgw-admin
+%attr(755,root,root) %{_bindir}/radosgw-object-expirer
+%attr(755,root,root) %{_bindir}/radosgw-token
+%{systemdunitdir}/ceph-radosgw.target
+%{systemdunitdir}/ceph-radosgw@.service
 %{_sysconfdir}/bash_completion.d/radosgw-admin
 
 %files resource-agents
 %defattr(644,root,root,755)
 %dir %{_prefix}/lib/ocf/resource.d/ceph
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/ceph
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/mds
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/mon
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/osd
 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/rbd
diff --git a/ceph.target b/ceph.target
deleted file mode 100644 (file)
index 60734ba..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-[Unit]
-Description=ceph target allowing to start/stop all ceph*@.service instances at once
-[Install]
-WantedBy=multi-user.target
diff --git a/cxx.patch b/cxx.patch
deleted file mode 100644 (file)
index af7ecfd..0000000
--- a/cxx.patch
+++ /dev/null
@@ -1,390 +0,0 @@
-diff -ur ceph-0.94.10/src/client/SyntheticClient.cc ceph-0.94.10-cxx/src/client/SyntheticClient.cc
---- ceph-0.94.10/src/client/SyntheticClient.cc 2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/client/SyntheticClient.cc     2017-04-29 12:25:26.633497617 +0200
-@@ -601,7 +601,7 @@
-         int size = iargs.front();  iargs.pop_front();
-         int inflight = iargs.front();  iargs.pop_front();
-         if (run_me()) {
--          dout(2) << "createobjects " << cout << " of " << size << " bytes"
-+          dout(2) << "createobjects " << cout.rdbuf() << " of " << size << " bytes"
-                 << ", " << inflight << " in flight" << dendl;
-           create_objects(count, size, inflight);
-         }
-@@ -617,7 +617,7 @@
-         int rskew = iargs.front();  iargs.pop_front();
-         int wskew = iargs.front();  iargs.pop_front();
-         if (run_me()) {
--          dout(2) << "objectrw " << cout << " " << size << " " << wrpc 
-+          dout(2) << "objectrw " << cout.rdbuf() << " " << size << " " << wrpc 
-                 << " " << overlap << " " << rskew << " " << wskew << dendl;
-           object_rw(count, size, wrpc, overlap, rskew, wskew);
-         }
-diff -ur ceph-0.94.10/src/common/admin_socket.cc ceph-0.94.10-cxx/src/common/admin_socket.cc
---- ceph-0.94.10/src/common/admin_socket.cc    2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/admin_socket.cc        2017-04-29 09:57:25.062251956 +0200
-@@ -352,7 +352,7 @@
-   stringstream errss;
-   cmdvec.push_back(cmd);
-   if (!cmdmap_from_json(cmdvec, &cmdmap, errss)) {
--    ldout(m_cct, 0) << "AdminSocket: " << errss << dendl;
-+    ldout(m_cct, 0) << "AdminSocket: " << errss.rdbuf() << dendl;
-     return false;
-   }
-   cmd_getval(m_cct, cmdmap, "format", format);
-diff -ur ceph-0.94.10/src/common/ceph_json.h ceph-0.94.10-cxx/src/common/ceph_json.h
---- ceph-0.94.10/src/common/ceph_json.h        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/ceph_json.h    2017-04-29 11:13:38.925899980 +0200
-@@ -198,7 +198,7 @@
-     JSONObj *o = *iter;
-     JSONDecoder::decode_json("key", key, o);
-     JSONDecoder::decode_json("val", val, o);
--    m.insert(make_pair<K, V>(key, val));
-+    m.insert(make_pair(key, val));
-   }
- }
-diff -ur ceph-0.94.10/src/common/cmdparse.cc ceph-0.94.10-cxx/src/common/cmdparse.cc
---- ceph-0.94.10/src/common/cmdparse.cc        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/cmdparse.cc    2017-04-29 09:58:13.362841243 +0200
-@@ -224,7 +224,7 @@
-   BackTrace bt(1);
-   ostringstream oss;
-   bt.print(oss);
--  lderr(cct) << oss << dendl;
-+  lderr(cct) << oss.rdbuf() << dendl;
-   if (status == 0)
-     free((char *)typestr);
- }
-diff -ur ceph-0.94.10/src/common/LogClient.h ceph-0.94.10-cxx/src/common/LogClient.h
---- ceph-0.94.10/src/common/LogClient.h        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/LogClient.h    2017-04-29 09:55:08.930587122 +0200
-@@ -137,7 +137,7 @@
-   }
-   bool must_log_to_monitors() { return log_to_monitors; }
--  typedef shared_ptr<LogChannel> Ref;
-+  typedef std::shared_ptr<LogChannel> Ref;
-   /**
-    * update config values from parsed k/v map for each config option
-diff -ur ceph-0.94.10/src/mds/CInode.cc ceph-0.94.10-cxx/src/mds/CInode.cc
---- ceph-0.94.10/src/mds/CInode.cc     2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/mds/CInode.cc 2017-04-29 10:44:49.563391124 +0200
-@@ -3791,7 +3791,7 @@
-       f->dump_int("read_ret_val", backtrace.ondisk_read_retval);
-       f->dump_stream("ondisk_value") << backtrace.ondisk_value;
-       f->dump_stream("memoryvalue") << backtrace.memory_value;
--      f->dump_stream("error_str") << backtrace.error_str;
-+      f->dump_stream("error_str") << backtrace.error_str.rdbuf();
-     }
-     f->close_section(); // backtrace
-     f->open_object_section("raw_rstats");
-@@ -3801,7 +3801,7 @@
-       f->dump_int("read_ret_val", raw_rstats.ondisk_read_retval);
-       f->dump_stream("ondisk_value") << raw_rstats.ondisk_value;
-       f->dump_stream("memory_value") << raw_rstats.memory_value;
--      f->dump_stream("error_str") << raw_rstats.error_str;
-+      f->dump_stream("error_str") << raw_rstats.error_str.rdbuf();
-     }
-     f->close_section(); // raw_rstats
-     // dump failure return code
-diff -ur ceph-0.94.10/src/mds/mdstypes.h ceph-0.94.10-cxx/src/mds/mdstypes.h
---- ceph-0.94.10/src/mds/mdstypes.h    2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/mds/mdstypes.h        2017-04-29 11:15:44.723963614 +0200
-@@ -71,7 +71,7 @@
- #define MDS_TRAVERSE_DISCOVERXLOCK 3    // succeeds on (foreign?) null, xlocked dentries.
--BOOST_STRONG_TYPEDEF(int32_t, mds_rank_t)
-+typedef int32_t mds_rank_t;
- BOOST_STRONG_TYPEDEF(uint64_t, mds_gid_t)
- extern const mds_gid_t MDS_GID_NONE;
- extern const mds_rank_t MDS_RANK_NONE;
-diff -ur ceph-0.94.10/src/mon/OSDMonitor.cc ceph-0.94.10-cxx/src/mon/OSDMonitor.cc
---- ceph-0.94.10/src/mon/OSDMonitor.cc 2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/mon/OSDMonitor.cc     2017-04-29 10:17:06.705748922 +0200
-@@ -4401,7 +4401,7 @@
-        if (err == 0) {
-        k = erasure_code->get_data_chunk_count();
-        } else {
--       ss << __func__ << " get_erasure_code failed: " << tmp;
-+       ss << __func__ << " get_erasure_code failed: " << tmp.rdbuf();
-        return err;;
-        }
-diff -ur ceph-0.94.10/src/msg/simple/Pipe.cc ceph-0.94.10-cxx/src/msg/simple/Pipe.cc
---- ceph-0.94.10/src/msg/simple/Pipe.cc        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/msg/simple/Pipe.cc    2017-04-29 10:05:09.937087135 +0200
-@@ -181,7 +181,7 @@
- void Pipe::DelayedDelivery::discard()
- {
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::discard" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::discard" << dendl;
-   Mutex::Locker l(delay_lock);
-   while (!delay_queue.empty()) {
-     Message *m = delay_queue.front().second;
-@@ -193,7 +193,7 @@
- void Pipe::DelayedDelivery::flush()
- {
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::flush" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::flush" << dendl;
-   Mutex::Locker l(delay_lock);
-   flush_count = delay_queue.size();
-   delay_cond.Signal();
-@@ -202,11 +202,11 @@
- void *Pipe::DelayedDelivery::entry()
- {
-   Mutex::Locker locker(delay_lock);
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry start" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry start" << dendl;
-   while (!stop_delayed_delivery) {
-     if (delay_queue.empty()) {
--      lgeneric_subdout(pipe->msgr->cct, ms, 30) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry sleeping on delay_cond because delay queue is empty" << dendl;
-+      lgeneric_subdout(pipe->msgr->cct, ms, 30) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry sleeping on delay_cond because delay queue is empty" << dendl;
-       delay_cond.Wait(delay_lock);
-       continue;
-     }
-@@ -216,11 +216,11 @@
-     if (!flush_count &&
-         (release > ceph_clock_now(pipe->msgr->cct) &&
-          (delay_msg_type.empty() || m->get_type_name() == delay_msg_type))) {
--      lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry sleeping on delay_cond until " << release << dendl;
-+      lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry sleeping on delay_cond until " << release << dendl;
-       delay_cond.WaitUntil(delay_lock, release);
-       continue;
-     }
--    lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry dequeuing message " << m << " for delivery, past " << release << dendl;
-+    lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry dequeuing message " << m << " for delivery, past " << release << dendl;
-     delay_queue.pop_front();
-     if (flush_count > 0) {
-       --flush_count;
-@@ -245,7 +245,7 @@
-     }
-     active_flush = false;
-   }
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry stop" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry stop" << dendl;
-   return NULL;
- }
-diff -ur ceph-0.94.10/src/osd/PG.cc ceph-0.94.10-cxx/src/osd/PG.cc
---- ceph-0.94.10/src/osd/PG.cc 2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/osd/PG.cc     2017-04-29 10:54:40.743267753 +0200
-@@ -3144,7 +3144,7 @@
-                 info_struct_v < 8 ? OSD::make_pg_log_oid(pg_id) : pgmeta_oid,
-                 info, oss);
-   if (oss.str().length())
--    osd->clog->error() << oss;
-+    osd->clog->error() << oss.rdbuf();
-   // log any weirdness
-   log_weirdness();
-diff -ur ceph-0.94.10/src/rgw/rgw_cache.cc ceph-0.94.10-cxx/src/rgw/rgw_cache.cc
---- ceph-0.94.10/src/rgw/rgw_cache.cc  2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/rgw/rgw_cache.cc      2017-04-29 11:09:17.823000713 +0200
-@@ -105,7 +105,7 @@
-   for (liter = cache_entry_list.begin(); liter != cache_entry_list.end(); ++liter) {
-     ObjectCacheEntry *entry = *liter;
--    entry->chained_entries.push_back(make_pair<RGWChainedCache *, string>(chained_entry->cache, chained_entry->key));
-+    entry->chained_entries.push_back(make_pair(chained_entry->cache, chained_entry->key));
-   }
-   return true;
-diff -ur ceph-0.94.10/src/test/librbd/test_ImageWatcher.cc ceph-0.94.10-cxx/src/test/librbd/test_ImageWatcher.cc
---- ceph-0.94.10/src/test/librbd/test_ImageWatcher.cc  2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/test/librbd/test_ImageWatcher.cc      2017-04-29 11:58:28.225636783 +0200
-@@ -383,8 +383,7 @@
-   ASSERT_EQ(0, open_image(m_image_name, &ictx));
-   ASSERT_EQ(0, register_image_watch(*ictx));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_ACQUIRED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_ACQUIRED_LOCK, {}}};
-   {
-     RWLock::WLocker l(ictx->owner_lock);
-@@ -474,8 +473,7 @@
-   ASSERT_EQ(0, open_image(m_image_name, &ictx));
-   ASSERT_EQ(0, register_image_watch(*ictx));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_ACQUIRED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_ACQUIRED_LOCK, {}}};
-   {
-     RWLock::WLocker l(ictx->owner_lock);
-@@ -528,8 +526,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   {
-     RWLock::WLocker l(ictx->owner_lock);
-@@ -549,9 +546,7 @@
-   ASSERT_EQ(0, unlock_image());
-   m_notifies.clear();
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RELEASED_LOCK, bufferlist()))(
--    std::make_pair(NOTIFY_OP_ACQUIRED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_RELEASED_LOCK, {}}, {NOTIFY_OP_ACQUIRED_LOCK, {}}};
-   bufferlist bl;
-   {
-@@ -578,8 +573,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, {}}};
-   m_expected_aio_restarts = 1;
-   {
-@@ -606,8 +600,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   int orig_notify_timeout = ictx->cct->_conf->client_notify_timeout;
-   ictx->cct->_conf->set_val("client_notify_timeout", "0");
-@@ -645,8 +638,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                           "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   m_expected_aio_restarts = 1;
-   {
-@@ -662,8 +654,7 @@
-   ASSERT_EQ(expected_notify_ops, m_notifies);
-   m_notifies.clear();
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RELEASED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_RELEASED_LOCK, {}}};
-   bufferlist bl;
-   {
-@@ -703,8 +694,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                           "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   m_expected_aio_restarts = 1;
-   {
-@@ -723,8 +713,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_SHARED, "manually 1234"));
-   m_notifies.clear();
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RELEASED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_RELEASED_LOCK, {}}};
-   bufferlist bl;
-   {
-@@ -744,8 +733,7 @@
-   ASSERT_EQ(0, register_image_watch(*ictx));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_HEADER_UPDATE, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_HEADER_UPDATE, {}}};
-   librbd::ImageWatcher::notify_header_update(m_ioctx, ictx->header_oid);
-   ASSERT_TRUE(wait_for_notifies(*ictx));
-@@ -765,8 +753,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(0)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -800,8 +787,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RESIZE, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_RESIZE, create_response_message(0)}};
-   ProgressContext progress_context;
-   ResizeTask resize_task(ictx, &progress_context);
-@@ -835,8 +821,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_SNAP_CREATE, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_SNAP_CREATE, create_response_message(0)}};
-   RWLock::RLocker l(ictx->owner_lock);
-   ASSERT_EQ(0, ictx->image_watcher->notify_snap_create("snap"));
-@@ -856,8 +841,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_SNAP_CREATE, create_response_message(-EEXIST)));
-+  m_notify_acks = {{NOTIFY_OP_SNAP_CREATE, create_response_message(-EEXIST)}};
-   RWLock::RLocker l(ictx->owner_lock);
-   ASSERT_EQ(-EEXIST, ictx->image_watcher->notify_snap_create("snap"));
-@@ -877,8 +861,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, {}}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -898,8 +881,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(-EIO)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(-EIO)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -919,8 +901,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(0)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -960,8 +941,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(0)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
This page took 0.073477 seconds and 4 git commands to generate.