From 8ffe7c59c01ae5fbbfae09f25b108f31f94336aff5cc1b136958a3941d71ee02 Mon Sep 17 00:00:00 2001 From: Nathan Cutler Date: Tue, 17 Jan 2017 13:52:30 +0000 Subject: [PATCH] Accepting request 450976 from filesystems:ceph:kraken OBS-URL: https://build.opensuse.org/request/show/450976 OBS-URL: https://build.opensuse.org/package/show/filesystems:ceph/ceph?expand=0&rev=70 --- _service | 4 +- _servicedata | 2 +- ceph-11.0.0+git.1472455009.a17726c.tar.bz2 | 3 - ceph-11.1.0+git.1483528076.d86680e.tar.bz2 | 3 + ceph-test.changes | 329 +++++++++++++++++++++ ceph-test.spec | 53 +++- ceph.changes | 329 +++++++++++++++++++++ ceph.spec | 178 ++++++++--- ceph_ver_hack.sh | 48 --- pre_checkin.sh | 3 +- 10 files changed, 845 insertions(+), 107 deletions(-) delete mode 100644 ceph-11.0.0+git.1472455009.a17726c.tar.bz2 create mode 100644 ceph-11.1.0+git.1483528076.d86680e.tar.bz2 delete mode 100644 ceph_ver_hack.sh diff --git a/_service b/_service index 3e7398c..ead0ea8 100644 --- a/_service +++ b/_service @@ -1,13 +1,13 @@ - 11.0.0+git.%ct.%h + 11.1.0+git.%ct.%h git://github.com/SUSE/ceph.git ses5 ceph git no enable - sh ../../../ceph_ver_hack.sh + sh etc/ceph_ver_hack.sh diff --git a/_servicedata b/_servicedata index 45ef269..d8583a9 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ git://github.com/SUSE/ceph.git - a17726c4326ee895bf40686e3340c04c6963c153 \ No newline at end of file + d86680e01d962df5e9313dad20fcb0f2613da04f \ No newline at end of file diff --git a/ceph-11.0.0+git.1472455009.a17726c.tar.bz2 b/ceph-11.0.0+git.1472455009.a17726c.tar.bz2 deleted file mode 100644 index 8a084d4..0000000 --- a/ceph-11.0.0+git.1472455009.a17726c.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2b78dfb0da332f53f848d774aea562854e5e6d25f6f2f8bc0316ddd6f86b3fe -size 17530394 diff --git a/ceph-11.1.0+git.1483528076.d86680e.tar.bz2 b/ceph-11.1.0+git.1483528076.d86680e.tar.bz2 new file mode 100644 index 0000000..ca8a3e8 --- /dev/null +++ b/ceph-11.1.0+git.1483528076.d86680e.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:417bd05885a14d07231bc5fdfca976ba2a5b54287acd88a251908775aaee0035 +size 102821189 diff --git a/ceph-test.changes b/ceph-test.changes index c376bb6..b08d22d 100644 --- a/ceph-test.changes +++ b/ceph-test.changes @@ -1,3 +1,332 @@ +------------------------------------------------------------------- +Thu Jan 05 10:43:34 UTC 2017 - jfajerski@suse.com + +- Update to version 11.1.0+git.1483528076.d86680e (latest master) + + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: + conflicts in qa/ where resolved with theirs + conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename + int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp + +------------------------------------------------------------------- +Tue Dec 13 21:21:41 UTC 2016 - ncutler@suse.com + +- Update to version 11.1.0+git.1481663255.bf42706: + + Update to upstream 11.1.0 release; for details see + http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + + move ceph_ver_hack.sh script from build service package to git repo + (bsc#1015419) + +------------------------------------------------------------------- +Tue Nov 29 20:39:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480437645.66595d3 + + Update to latest upstream master (boost library is now included in the + tarball, so the tarball is much larger than before and the build takes + longer to complete) + + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + + rocksdb: do not build with --march=native (bsc#1012553) + +------------------------------------------------------------------- +Fri Nov 25 20:42:45 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480105120.6b8e9e5: + + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it + conflicted with upstream + + update to latest upstream kraken (11.0.2) - for details, see + http://ceph.com/releases/kraken-11-0-2-released/ + +------------------------------------------------------------------- +Mon Sep 12 12:48:33 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473684054.73e4b4a: + + safe_io: Improve portability by replacing loff_t type usage with off_t. + + mon: remove the redundant list swap in paxos commit_proposal + + msg/EventPoll.h: add override to virtual functions + + msg/EventKqueue.h: add override to virtual func + + msg/EventSelect.h: add override to virtual funct + + ceph-disk: Compatibility fixes for Python 3 + + ceph-disk: Use true integer division in get_dev_size + + ceph-disk: Fix bug in FileLock + + ceph-disk: Allow ConfigObj to write in binary mode + + ceph-disk: Use context manager with FileLock + + ceph-disk: Use os.path.isabs instead of .startswith('/') + + ceph-disk: Set space_symlink to the path, not file object + + ceph-disk: PEP8ify + + rgw: rgw file fix bug of rgw_lookup can not exact match file name + + rgw: fix the wrong return value + + rgw/rgw_coroutine: move WaitContext to .cc file + + client: pass a mask parameter to path_walk + + mds/mdstypes: add btime to inode + + mds/Server: set btime=ctime on creation + + mds/MDCache: set btime on system inodes + + include/ceph_features: add FS_BTIME features + + mds: pass btime in InodeStat MClientReply, if feature is present + + client: keep btime in Inode and InodeStat + + ceph: break up ll_getattr into two functions + + client: move the device bitshift handling macros to Client.h + + libcephfs: add a ceph_ll_getattrx and ceph_statx + + libcephfs: add a test for "lazy" statx + + mds/client: add btime to CapSnap and MClientCaps + + mds/mdstypes: add change attribute to inode + + mds/Server: set change_attr to 0 on creation + + mds/MDCache: set change_attr to 0 on system_inodes + + include/ceph_features: add FS_CHANGE_ATTR feature + + mds: pass change_attr in InodeStat MClientReply, if feature is present + + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + + mds/client: bump the change_attr at the appropriate time for files + + libcephfs: return the change_attr in the statx.stx_version field + + tests: add a ChangeAttr test + + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + + mds: add change_attr to frag_info_t + + test: add test for change attribute of directories + + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + + MDS: allow the MDS to accept requests to set the btime + + client: add the ability to set the btime + + client: add a ceph_fstatx + + client: extend the Btime test to cover fstatx as well + + journal/JournalTrimmer: move C_RemoveSet struct + + rbd_mirror/ImageSynceThrottler: move struct to .cc + + libcephfs: add unmount function in cephfs.pyx + + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + + rgw/rgw_lc.cc: fix sleep time according to the error message + + crush: don't normalize input of crush_ln iteratively + + crush: remove clutter + + mds: remove max_mds config option + + vstart.sh: add option to turn on multimds + + rgw: right parenthesis is missing in radosgw-admin help message on caps + + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + + SQUASH: client: always take a change_attr update from the server if it's newer + + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + + rgw/rgw_rados.h: remove unneeded class C_Tick + + SQUASH: client: querying for stx_version field requires getting all shared caps + + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + + client: properly set inode number of created inode in replay request + + test/librbd/fsx: enable exclusive-lock feature in krbd mode + + os/bluestore/BlueFS: fix async compaction txn + + scripts/bdev_grep: parse bluefs style extents too + + SQUASH: client: request all shared caps if ctime was requested + + os/bluestore/BlueFS: factor unflushed log into runway calculation + + osd/ReplicatedBackend: move classes to cc file + + os/bluestore: honour allow-eio flag during read + + CmakeLists.txt: use LIB_RESOLV instead of resolv. + + osd/ReplicatedPG: move classes to .cc file + + librbd: potential double-unwatch of watch handle upon error + + cls/journal: add async client_update_state method + + journal: allow to trim journal for "laggy" clients + + librbd: optionally flag "laggy" journal clients disconnected + + rbd: new command to disconnect journal client + + rbd-mirror: decode_client_meta should return false on error + + rbd-mirror: resync was possible only when image replayer start had succeeded + + rbd-mirror: stop replay when client is disconnected + + rbd-mirror: option to automatically resync after journal client disconnect + + qa/workunits/cephtool/test.sh: fix omision of ceph-command + + os/bluestore: use global compressor if possible + + build/ops: fix /etc/os-release parsing in install-deps.sh + + osd/OSD.cc: remove repeated searching of map + + test/cephfs: add mount&&unmount test + + mds: s/used_ions/used_inos/ + + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + + ceph_test_objectstore: add SyntheticMatrixSharding + + ceph_test_objectstore: occasional umount/fsck/mount + + ceph_test_objectstore: test shards for longer + + crush/CrushCompiler.cc:884 bug fix: index out of range + + Makfile: Fix rocksdb error when make dist + + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + + src/pybind/CMakeLists.txt: conditionaly build cython tools + + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + + src/test/objectstore/CMakeLists.txt: conditionaly build tests + + mds: trim null dentries proactively + + cmake: include(SIMDExt) in src/CMakeLists.txt + + mds: log path with CDir damage messages + + hint in extent_alloc code + + remove wrap argument and handle in wrappers + + Hint argument in alloc_blocks + test case changes + + os/bluestore: shard extent map + + os/bluestore: make nid and blobid allocation less racy + + os/bluestore: optimize compress_extent_map + + os/bluestore: fix fsck used_block bitmap + + os/bluestore: use block_size for allocator unit + + os/bluestore: make blob_t unused helpers use logical length + + os/bluestore: instrument big/small writes + + os/bluestore: instrument transaction count + + os/bluestore: instrument onode reshard events + + os/bluestore: dump some stats after fsck + + os/bluestore: assert shared blob cache cleared on split + + remove autotools + + test/objectstore/CMakeLists.txt: fix libaio conditional + + buffer: clear append_buffer on clear() + + os/bluestore: tunable prealloc size for ExtentMap inline_bl + + os/bluestore: don't dirty onode if its size is already at desired offset + + os/bluestore: remove never reachable asserts + + os/bluestore: drop unnecessary separator between fields + + os/bluestore: fix key+name sort wonkiness + + os/bluestore: encode shard id in single byte + + os/bluestore: small put_ref cleanup + + os/bluestore: remove faulted debug hackery + + os/bluestore: bits for unit tests + + unittest_bluestore_types: resurrect blob and extent_map unit tests + + os/bluestore/BlueFS: do not start racing async compaction + + os/bluestore/BlueFS: fix Dir memory leak + + buffer: implement buffer::list::reserve(n) + + os/bluestore: do not waste memory on cached encoded blobs + + qa/workunits/objectstore: fix test_fuse.sh + + os/FuseStore: only flush if dirty + + build: drop dryrun of autogen.sh from run-cmake-check.sh script + + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + + os/bluestore: remove some copy-pastes + + cmake: make py3 a nice-to-have + + os/bluestore/BlueFS: only extend extent on same bdev + + msg/AsyncConnection: add const to mem functions + + msg/AsyncMessenger: add const to function + + client/barrier: move C_Block_Sync class to .cc + + osd/OSD.cc: remove unneeded searching of map + + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + + rpm: Renamed bcond tests flag to make_check + + rbd-nbd: fix kernel deadlock during teuthology testing + + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + + librbd: invalidate cache before trimming image + + librbd: ignore cache busy errors when shrinking an image + + librbd: potential seg fault when blacklisting an image client + + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + + deb: Moved ceph-client-debug from ceph-base to ceph-test package + + ceph-objectstore-tool: add a way to split filestore directories offline + + install-deps: exit non-zero when we cannot match distro + + librbd: possible deadlock if cluster connection closed after image + + osd/ReplicatedPG: remove class redeclaration + + librbd: ignore partial refresh error when acquiring exclusive lock + + osd/OSD.cc: remove unneeded returns + +------------------------------------------------------------------- +Fri Sep 09 12:53:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473424516.3b8b524: + + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + + rpm: put distro conditionals around Source0 in spec file + +------------------------------------------------------------------- +Fri Sep 09 10:59:53 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473418476.095f67c: + + ceph.spec.in: revert Source0 line to upstream version + + ceph.spec.in: conditionalize %prep command + +------------------------------------------------------------------- +Fri Sep 09 08:16:40 UTC 2016 - ncutler@suse.com + +- ceph.spec.in: enable cephfs_java build unconditionally +- new (merged) commits from upstream master branch: + + mailmap updates + + rgw: fix the handling of rgw_swift_url_prefix. + + rgw: ONLY improve code formatting around RGWRESTMgr. + + rgw: add support for the crossdomain.xml resource of Swift API. + + rgw: add support for the healthcheck feature of Swift API. + + swift /info implementation. + + rgw: settle /info implementation across other swift-at-root features. + + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + + mon: tear down standby replays on MDS rank stop + + mon/MDSMonitor: move C_Updated class to .cc file + + rgw_file: fix/update rgw_open flag arguments + + rgw_file: fix/update rgw_create flag arguments + + doc: remove btrfs contradiction + + msg: make async backend default + + msg/simple: wait dispatch_queue until all pipes closed + + rgw_file: implement stateless write completion timer + + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + + rgw_file: log on write completion events at level 10 + + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + + osdc/Journaler: move C_DelayFlush class to .cc + + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + + librgw: add API version defines for librgw and rgw_file + + make-dist/ceph.spec.in: Fix srpm build breakage. + + ceph_timer: prefer using directive to typedef + + rgw_file: explain semantics of RGWFileHandle::commit + + compressor: Better arch ifdefs for isal code + + mds/MDSTable: add const to member functions + + os/bluestore: fix some #includes + + vstart.sh: -b for bluestore + + os/bluestore/bluestore_types: make blob_t get_chunk_size const + + os/bluestore: use Blob const and non-const accessors + + os/bluestore: avoid reencoding unchanged blobs + + os/bluestore: decode blobs on demand + + mds/SnapRealm.h: add const to member functions + + os/bluestore/bluefs: avoid check "locked" field for newly created file + + os/bluestore/bluefs: check against locked field during unlink + + os/bluestore/bluefs: assert refs of file don't underflow + + os/kstore: kill dead code + + rgw: remove duplicated calls to getattr + + debian: should dh_python3 python3-* not python-* + + pybind: silence -Wsign-compare warning + + test/ceph_test_msgr: fix -Wsign-compare warnings + + test/unittest_alloc: fix -Wsign-compare warnings + + librbd: API methods to directly acquire and release the exclusive lock + + doc: add graphic for cap bit field + + mds/MDCache.h: remove unneeded access specifier + + librbd: skeleton implementation of client-side image cache + + librbd: blocking parent IO completion no longer required + + librbd: remove use of owner_lock on IO path + + Revert "osdc: ObjectCacher flusher might needs additional locks" + + librbd: support bufferlist payload for AioImageWrite + + librbd: add internal support for scatter/gather IO + + librbd: initial integration of ImageWriteback to AioImageRequest + + librbd: consolidate IO clipping to reusable method + + librbd: differentiate between image and object cache + + librbd: C_ImageCacheRead bridge from Context to AioCompletion + + librbd: integrate image cache hooks into IO path + + common/Throttle.h: remove unneeded class + + cmake: fix the tracing header dependencies + + src/test/bench/CMakeLists.txt: RBD exclude + + src/CMakeLists.txt: RBD|KVS|FUSE exclude + + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + + src/os/CMakeLists.txt: AIO|FUSE exclude + + src/test/CMakeLists.txt: RADOSGW|RBD exclude + + src/test/common/CMakeLists.txt: BLKID exclude + + install-deps.sh: initial distro detection based on /etc/os-release + + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + + ceph_test_objectstore: disable statfs checks on available space + + messages/MOSDMap: mark as enlighten OSDMap encoder + + cmake: remove unused librados_api target + + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + + cmake: let librados_api_obj depend on librados-tp + + os/bluestore: yet another statfs test fix + + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + + doc/release-notes: v0.94.9 + + os/bluestore/bluefs: use map to track dirty files + + os/bluestore/bluefs: update mtime of inode in unified path + + os/bluestore/bluefs: drop redundant eof check for read_random() + + os/CMakeLists.txt: undubble kv.cc usage. + + test,pybind: silence -Wsign-compare warnings + + test/perf_local: fix -Wmaybe-uninitialized warnings + + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + + Allow compressor build without YASM + + script/bdev_grep: update to use hex + + os/bluestore: improve failed csum debug output + + librbd: improve image state machine debug log messages + + librbd: deadlock when replaying journal during image open + + os/bluestore: end scope of std::hex properly + + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + + os/bluestore: use _setattr for SETATTR + + os/bluestore: make object existence check robust + + ceph_test_objectstore: assert umount succeeds + + ceph_test_objectstore: clean up Rename test a bit + + ceph_test_objectstore: fix TryMoveRename test + + os/bluestore: add onode/buffer cache statistics + + os/bluestore: end scope of std::hex properly + + cmake: pass -DINTEL* to gf-complete cflags + + os/bluestore: conditional checking label of bluefs devices + + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + + os/bluestore: don't overwrite type if it does already exist and at desired type + + os/bluestore: trivial cleanups + + os/bluestore: replace store with logger in Cache + + os/bluestore: check iterator before using during fsck + ------------------------------------------------------------------- Mon Aug 29 07:24:44 UTC 2016 - ncutler@suse.com diff --git a/ceph-test.spec b/ceph-test.spec index 01eaf27..320173d 100644 --- a/ceph-test.spec +++ b/ceph-test.spec @@ -13,6 +13,7 @@ # # Please submit bugfixes or comments via http://tracker.ceph.com/ # +%bcond_without cephfs_java %if 0%{?suse_version} %bcond_without ceph_test_package %else @@ -29,12 +30,10 @@ %bcond_with lowmem_builder %bcond_with minimal_debugging_information %if 0%{?fedora} || 0%{?rhel} -%bcond_without cephfs_java %bcond_with ocf %bcond_without selinux %endif %if 0%{?suse_version} -%bcond_with cephfs_java %bcond_without ocf %if %{with ocf} %global _with_ocf --with-ocf @@ -66,7 +65,7 @@ # common ################################################################################# Name: ceph-test -Version: 11.0.0+git.1472455009.a17726c +Version: 11.1.0+git.1483528076.d86680e Release: 0 Summary: Ceph benchmarks and test tools 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 @@ -74,11 +73,15 @@ License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-auto Group: System/Filesystems %endif URL: http://ceph.com/ +%if 0%{?rhel} +Source0: http://ceph.com/download/@TARBALL_BASENAME@.tar.bz2 +%endif +%if ! 0%{?rhel} Source0: ceph-%{version}.tar.bz2 -Source97: ceph_ver_hack.sh Source98: README-ceph-test.txt Source99: ceph-rpmlintrc # _insert_obs_source_lines_here +%endif %if 0%{?suse_version} %if 0%{?is_opensuse} ExclusiveArch: x86_64 aarch64 ppc64 ppc64le @@ -92,6 +95,7 @@ ExclusiveArch: x86_64 aarch64 + Requires: ceph-common Requires: xmlstarlet Requires(post): binutils @@ -105,6 +109,9 @@ BuildRequires: selinux-policy-devel BuildRequires: /usr/share/selinux/devel/policyhelp %endif BuildRequires: boost-devel +%if ! 0%{?suse_version} +BuildRequires: boost-python +%endif BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel @@ -113,7 +120,6 @@ BuildRequires: gdbm %if 0%{with tcmalloc} BuildRequires: gperftools-devel %endif -BuildRequires: hdparm BuildRequires: jq BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel @@ -222,8 +228,6 @@ This package contains Ceph benchmarks and test tools. %endif %if 0%{?suse_version} %endif -%if 0%{?fedora} || 0%{?rhel} -%endif %if 0%{with xio} %endif %if 0%{?suse_version} @@ -257,7 +261,12 @@ This package contains Ceph benchmarks and test tools. %if 0%{with selinux} %endif %prep +%if 0%{?rhel} +%autosetup -p1 -n @TARBALL_BASENAME@ +%endif +%if ! 0%{?rhel} %autosetup -p1 -n ceph-%version +%endif %build %if 0%{with cephfs_java} @@ -279,6 +288,8 @@ export CPPFLAGS="$java_inc" export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" +env | sort + mkdir build cd build cmake .. \ @@ -289,7 +300,9 @@ cmake .. \ -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \ -DCMAKE_INSTALL_MANDIR=%{_mandir} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \ + -DWITH_EMBEDDED=OFF \ -DWITH_MANPAGE=ON \ + -DWITH_PYTHON3=ON \ -DWITH_SYSTEMD=ON \ %if 0%{?rhel} && ! 0%{?centos} -DWITH_SUBMAN=ON \ @@ -364,7 +377,7 @@ make DESTDIR=%{buildroot} install # we have dropped sysvinit bits rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph popd -install -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap +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 @@ -400,6 +413,7 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds @@ -418,7 +432,6 @@ rm -rf %{buildroot}%{_bindir}/osdmaptool rm -rf %{buildroot}%{_bindir}/ceph-run rm -rf %{buildroot}%{_bindir}/ceph-dencoder rm -rf %{buildroot}%{_bindir}/ceph-detect-init -rm -rf %{buildroot}%{_unitdir}/ceph-create-keys@.service rm -rf %{buildroot}%{_bindir}/cephfs-data-scan rm -rf %{buildroot}%{_bindir}/cephfs-journal-tool rm -rf %{buildroot}%{_bindir}/cephfs-table-tool @@ -492,6 +505,10 @@ rm -rf %{buildroot}%{_bindir}/ceph-mds rm -rf %{buildroot}%{_mandir}/man8/ceph-mds.8* rm -rf %{buildroot}%{_unitdir}/ceph-mds@.service rm -rf %{buildroot}%{_unitdir}/ceph-mds.target +rm -rf %{buildroot}%{_bindir}/ceph-mgr +rm -rf %{buildroot}%{_libdir}/ceph/mgr +rm -rf %{buildroot}%{_unitdir}/ceph-mgr@.service +rm -rf %{buildroot}%{_unitdir}/ceph-mgr.target rm -rf %{buildroot}%{_bindir}/ceph-mon rm -rf %{buildroot}%{_bindir}/ceph-rest-api rm -rf %{buildroot}%{_mandir}/man8/ceph-mon.8* @@ -502,6 +519,8 @@ rm -rf %{buildroot}%{_unitdir}/ceph-mon.target rm -rf %{buildroot}%{_bindir}/ceph-fuse rm -rf %{buildroot}%{_mandir}/man8/ceph-fuse.8* rm -rf %{buildroot}%{_sbindir}/mount.fuse.ceph +rm -rf %{buildroot}%{_unitdir}/ceph-fuse@.service +rm -rf %{buildroot}%{_unitdir}/ceph-fuse.target rm -rf %{buildroot}%{_bindir}/rbd-fuse rm -rf %{buildroot}%{_mandir}/man8/rbd-fuse.8* rm -rf %{buildroot}%{_bindir}/rbd-mirror @@ -542,6 +561,7 @@ rm -rf %{buildroot}%{_includedir}/rados/librados.h rm -rf %{buildroot}%{_includedir}/rados/librados.hpp rm -rf %{buildroot}%{_includedir}/rados/buffer.h rm -rf %{buildroot}%{_includedir}/rados/buffer_fwd.h +rm -rf %{buildroot}%{_includedir}/rados/inline_memory.h rm -rf %{buildroot}%{_includedir}/rados/page.h rm -rf %{buildroot}%{_includedir}/rados/crc32c.h rm -rf %{buildroot}%{_includedir}/rados/rados_types.h @@ -570,12 +590,17 @@ rm -rf %{buildroot}%{_libdir}/librgw.so.* rm -rf %{buildroot}%{_includedir}/rados/librgw.h rm -rf %{buildroot}%{_includedir}/rados/rgw_file.h rm -rf %{buildroot}%{_libdir}/librgw.so +rm -rf %{buildroot}%{python_sitearch}/rgw.so +rm -rf %{buildroot}%{python_sitearch}/rgw-*.egg-info +rm -rf %{buildroot}%{python3_sitearch}/rgw.cpython*.so +rm -rf %{buildroot}%{python3_sitearch}/rgw-*.egg-info rm -rf %{buildroot}%{python_sitearch}/rbd.so rm -rf %{buildroot}%{python_sitearch}/rbd-*.egg-info rm -rf %{buildroot}%{python3_sitearch}/rbd.cpython*.so rm -rf %{buildroot}%{python3_sitearch}/rbd-*.egg-info rm -rf %{buildroot}%{_libdir}/libcephfs.so.* rm -rf %{buildroot}%{_includedir}/cephfs/libcephfs.h +rm -rf %{buildroot}%{_includedir}/cephfs/ceph_statx.h rm -rf %{buildroot}%{_libdir}/libcephfs.so rm -rf %{buildroot}%{python_sitearch}/cephfs.so rm -rf %{buildroot}%{python_sitearch}/cephfs-*.egg-info @@ -676,6 +701,16 @@ rm -rf %{buildroot} %endif %if 0%{?suse_version} %endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?fedora} || 0%{?rhel} +%endif %if 0%{?suse_version} %endif %if 0%{?fedora} || 0%{?rhel} diff --git a/ceph.changes b/ceph.changes index c376bb6..b08d22d 100644 --- a/ceph.changes +++ b/ceph.changes @@ -1,3 +1,332 @@ +------------------------------------------------------------------- +Thu Jan 05 10:43:34 UTC 2017 - jfajerski@suse.com + +- Update to version 11.1.0+git.1483528076.d86680e (latest master) + + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: + conflicts in qa/ where resolved with theirs + conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename + int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp + +------------------------------------------------------------------- +Tue Dec 13 21:21:41 UTC 2016 - ncutler@suse.com + +- Update to version 11.1.0+git.1481663255.bf42706: + + Update to upstream 11.1.0 release; for details see + http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + + move ceph_ver_hack.sh script from build service package to git repo + (bsc#1015419) + +------------------------------------------------------------------- +Tue Nov 29 20:39:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480437645.66595d3 + + Update to latest upstream master (boost library is now included in the + tarball, so the tarball is much larger than before and the build takes + longer to complete) + + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + + rocksdb: do not build with --march=native (bsc#1012553) + +------------------------------------------------------------------- +Fri Nov 25 20:42:45 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480105120.6b8e9e5: + + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it + conflicted with upstream + + update to latest upstream kraken (11.0.2) - for details, see + http://ceph.com/releases/kraken-11-0-2-released/ + +------------------------------------------------------------------- +Mon Sep 12 12:48:33 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473684054.73e4b4a: + + safe_io: Improve portability by replacing loff_t type usage with off_t. + + mon: remove the redundant list swap in paxos commit_proposal + + msg/EventPoll.h: add override to virtual functions + + msg/EventKqueue.h: add override to virtual func + + msg/EventSelect.h: add override to virtual funct + + ceph-disk: Compatibility fixes for Python 3 + + ceph-disk: Use true integer division in get_dev_size + + ceph-disk: Fix bug in FileLock + + ceph-disk: Allow ConfigObj to write in binary mode + + ceph-disk: Use context manager with FileLock + + ceph-disk: Use os.path.isabs instead of .startswith('/') + + ceph-disk: Set space_symlink to the path, not file object + + ceph-disk: PEP8ify + + rgw: rgw file fix bug of rgw_lookup can not exact match file name + + rgw: fix the wrong return value + + rgw/rgw_coroutine: move WaitContext to .cc file + + client: pass a mask parameter to path_walk + + mds/mdstypes: add btime to inode + + mds/Server: set btime=ctime on creation + + mds/MDCache: set btime on system inodes + + include/ceph_features: add FS_BTIME features + + mds: pass btime in InodeStat MClientReply, if feature is present + + client: keep btime in Inode and InodeStat + + ceph: break up ll_getattr into two functions + + client: move the device bitshift handling macros to Client.h + + libcephfs: add a ceph_ll_getattrx and ceph_statx + + libcephfs: add a test for "lazy" statx + + mds/client: add btime to CapSnap and MClientCaps + + mds/mdstypes: add change attribute to inode + + mds/Server: set change_attr to 0 on creation + + mds/MDCache: set change_attr to 0 on system_inodes + + include/ceph_features: add FS_CHANGE_ATTR feature + + mds: pass change_attr in InodeStat MClientReply, if feature is present + + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + + mds/client: bump the change_attr at the appropriate time for files + + libcephfs: return the change_attr in the statx.stx_version field + + tests: add a ChangeAttr test + + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + + mds: add change_attr to frag_info_t + + test: add test for change attribute of directories + + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + + MDS: allow the MDS to accept requests to set the btime + + client: add the ability to set the btime + + client: add a ceph_fstatx + + client: extend the Btime test to cover fstatx as well + + journal/JournalTrimmer: move C_RemoveSet struct + + rbd_mirror/ImageSynceThrottler: move struct to .cc + + libcephfs: add unmount function in cephfs.pyx + + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + + rgw/rgw_lc.cc: fix sleep time according to the error message + + crush: don't normalize input of crush_ln iteratively + + crush: remove clutter + + mds: remove max_mds config option + + vstart.sh: add option to turn on multimds + + rgw: right parenthesis is missing in radosgw-admin help message on caps + + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + + SQUASH: client: always take a change_attr update from the server if it's newer + + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + + rgw/rgw_rados.h: remove unneeded class C_Tick + + SQUASH: client: querying for stx_version field requires getting all shared caps + + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + + client: properly set inode number of created inode in replay request + + test/librbd/fsx: enable exclusive-lock feature in krbd mode + + os/bluestore/BlueFS: fix async compaction txn + + scripts/bdev_grep: parse bluefs style extents too + + SQUASH: client: request all shared caps if ctime was requested + + os/bluestore/BlueFS: factor unflushed log into runway calculation + + osd/ReplicatedBackend: move classes to cc file + + os/bluestore: honour allow-eio flag during read + + CmakeLists.txt: use LIB_RESOLV instead of resolv. + + osd/ReplicatedPG: move classes to .cc file + + librbd: potential double-unwatch of watch handle upon error + + cls/journal: add async client_update_state method + + journal: allow to trim journal for "laggy" clients + + librbd: optionally flag "laggy" journal clients disconnected + + rbd: new command to disconnect journal client + + rbd-mirror: decode_client_meta should return false on error + + rbd-mirror: resync was possible only when image replayer start had succeeded + + rbd-mirror: stop replay when client is disconnected + + rbd-mirror: option to automatically resync after journal client disconnect + + qa/workunits/cephtool/test.sh: fix omision of ceph-command + + os/bluestore: use global compressor if possible + + build/ops: fix /etc/os-release parsing in install-deps.sh + + osd/OSD.cc: remove repeated searching of map + + test/cephfs: add mount&&unmount test + + mds: s/used_ions/used_inos/ + + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + + ceph_test_objectstore: add SyntheticMatrixSharding + + ceph_test_objectstore: occasional umount/fsck/mount + + ceph_test_objectstore: test shards for longer + + crush/CrushCompiler.cc:884 bug fix: index out of range + + Makfile: Fix rocksdb error when make dist + + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + + src/pybind/CMakeLists.txt: conditionaly build cython tools + + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + + src/test/objectstore/CMakeLists.txt: conditionaly build tests + + mds: trim null dentries proactively + + cmake: include(SIMDExt) in src/CMakeLists.txt + + mds: log path with CDir damage messages + + hint in extent_alloc code + + remove wrap argument and handle in wrappers + + Hint argument in alloc_blocks + test case changes + + os/bluestore: shard extent map + + os/bluestore: make nid and blobid allocation less racy + + os/bluestore: optimize compress_extent_map + + os/bluestore: fix fsck used_block bitmap + + os/bluestore: use block_size for allocator unit + + os/bluestore: make blob_t unused helpers use logical length + + os/bluestore: instrument big/small writes + + os/bluestore: instrument transaction count + + os/bluestore: instrument onode reshard events + + os/bluestore: dump some stats after fsck + + os/bluestore: assert shared blob cache cleared on split + + remove autotools + + test/objectstore/CMakeLists.txt: fix libaio conditional + + buffer: clear append_buffer on clear() + + os/bluestore: tunable prealloc size for ExtentMap inline_bl + + os/bluestore: don't dirty onode if its size is already at desired offset + + os/bluestore: remove never reachable asserts + + os/bluestore: drop unnecessary separator between fields + + os/bluestore: fix key+name sort wonkiness + + os/bluestore: encode shard id in single byte + + os/bluestore: small put_ref cleanup + + os/bluestore: remove faulted debug hackery + + os/bluestore: bits for unit tests + + unittest_bluestore_types: resurrect blob and extent_map unit tests + + os/bluestore/BlueFS: do not start racing async compaction + + os/bluestore/BlueFS: fix Dir memory leak + + buffer: implement buffer::list::reserve(n) + + os/bluestore: do not waste memory on cached encoded blobs + + qa/workunits/objectstore: fix test_fuse.sh + + os/FuseStore: only flush if dirty + + build: drop dryrun of autogen.sh from run-cmake-check.sh script + + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + + os/bluestore: remove some copy-pastes + + cmake: make py3 a nice-to-have + + os/bluestore/BlueFS: only extend extent on same bdev + + msg/AsyncConnection: add const to mem functions + + msg/AsyncMessenger: add const to function + + client/barrier: move C_Block_Sync class to .cc + + osd/OSD.cc: remove unneeded searching of map + + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + + rpm: Renamed bcond tests flag to make_check + + rbd-nbd: fix kernel deadlock during teuthology testing + + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + + librbd: invalidate cache before trimming image + + librbd: ignore cache busy errors when shrinking an image + + librbd: potential seg fault when blacklisting an image client + + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + + deb: Moved ceph-client-debug from ceph-base to ceph-test package + + ceph-objectstore-tool: add a way to split filestore directories offline + + install-deps: exit non-zero when we cannot match distro + + librbd: possible deadlock if cluster connection closed after image + + osd/ReplicatedPG: remove class redeclaration + + librbd: ignore partial refresh error when acquiring exclusive lock + + osd/OSD.cc: remove unneeded returns + +------------------------------------------------------------------- +Fri Sep 09 12:53:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473424516.3b8b524: + + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + + rpm: put distro conditionals around Source0 in spec file + +------------------------------------------------------------------- +Fri Sep 09 10:59:53 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473418476.095f67c: + + ceph.spec.in: revert Source0 line to upstream version + + ceph.spec.in: conditionalize %prep command + +------------------------------------------------------------------- +Fri Sep 09 08:16:40 UTC 2016 - ncutler@suse.com + +- ceph.spec.in: enable cephfs_java build unconditionally +- new (merged) commits from upstream master branch: + + mailmap updates + + rgw: fix the handling of rgw_swift_url_prefix. + + rgw: ONLY improve code formatting around RGWRESTMgr. + + rgw: add support for the crossdomain.xml resource of Swift API. + + rgw: add support for the healthcheck feature of Swift API. + + swift /info implementation. + + rgw: settle /info implementation across other swift-at-root features. + + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + + mon: tear down standby replays on MDS rank stop + + mon/MDSMonitor: move C_Updated class to .cc file + + rgw_file: fix/update rgw_open flag arguments + + rgw_file: fix/update rgw_create flag arguments + + doc: remove btrfs contradiction + + msg: make async backend default + + msg/simple: wait dispatch_queue until all pipes closed + + rgw_file: implement stateless write completion timer + + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + + rgw_file: log on write completion events at level 10 + + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + + osdc/Journaler: move C_DelayFlush class to .cc + + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + + librgw: add API version defines for librgw and rgw_file + + make-dist/ceph.spec.in: Fix srpm build breakage. + + ceph_timer: prefer using directive to typedef + + rgw_file: explain semantics of RGWFileHandle::commit + + compressor: Better arch ifdefs for isal code + + mds/MDSTable: add const to member functions + + os/bluestore: fix some #includes + + vstart.sh: -b for bluestore + + os/bluestore/bluestore_types: make blob_t get_chunk_size const + + os/bluestore: use Blob const and non-const accessors + + os/bluestore: avoid reencoding unchanged blobs + + os/bluestore: decode blobs on demand + + mds/SnapRealm.h: add const to member functions + + os/bluestore/bluefs: avoid check "locked" field for newly created file + + os/bluestore/bluefs: check against locked field during unlink + + os/bluestore/bluefs: assert refs of file don't underflow + + os/kstore: kill dead code + + rgw: remove duplicated calls to getattr + + debian: should dh_python3 python3-* not python-* + + pybind: silence -Wsign-compare warning + + test/ceph_test_msgr: fix -Wsign-compare warnings + + test/unittest_alloc: fix -Wsign-compare warnings + + librbd: API methods to directly acquire and release the exclusive lock + + doc: add graphic for cap bit field + + mds/MDCache.h: remove unneeded access specifier + + librbd: skeleton implementation of client-side image cache + + librbd: blocking parent IO completion no longer required + + librbd: remove use of owner_lock on IO path + + Revert "osdc: ObjectCacher flusher might needs additional locks" + + librbd: support bufferlist payload for AioImageWrite + + librbd: add internal support for scatter/gather IO + + librbd: initial integration of ImageWriteback to AioImageRequest + + librbd: consolidate IO clipping to reusable method + + librbd: differentiate between image and object cache + + librbd: C_ImageCacheRead bridge from Context to AioCompletion + + librbd: integrate image cache hooks into IO path + + common/Throttle.h: remove unneeded class + + cmake: fix the tracing header dependencies + + src/test/bench/CMakeLists.txt: RBD exclude + + src/CMakeLists.txt: RBD|KVS|FUSE exclude + + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + + src/os/CMakeLists.txt: AIO|FUSE exclude + + src/test/CMakeLists.txt: RADOSGW|RBD exclude + + src/test/common/CMakeLists.txt: BLKID exclude + + install-deps.sh: initial distro detection based on /etc/os-release + + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + + ceph_test_objectstore: disable statfs checks on available space + + messages/MOSDMap: mark as enlighten OSDMap encoder + + cmake: remove unused librados_api target + + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + + cmake: let librados_api_obj depend on librados-tp + + os/bluestore: yet another statfs test fix + + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + + doc/release-notes: v0.94.9 + + os/bluestore/bluefs: use map to track dirty files + + os/bluestore/bluefs: update mtime of inode in unified path + + os/bluestore/bluefs: drop redundant eof check for read_random() + + os/CMakeLists.txt: undubble kv.cc usage. + + test,pybind: silence -Wsign-compare warnings + + test/perf_local: fix -Wmaybe-uninitialized warnings + + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + + Allow compressor build without YASM + + script/bdev_grep: update to use hex + + os/bluestore: improve failed csum debug output + + librbd: improve image state machine debug log messages + + librbd: deadlock when replaying journal during image open + + os/bluestore: end scope of std::hex properly + + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + + os/bluestore: use _setattr for SETATTR + + os/bluestore: make object existence check robust + + ceph_test_objectstore: assert umount succeeds + + ceph_test_objectstore: clean up Rename test a bit + + ceph_test_objectstore: fix TryMoveRename test + + os/bluestore: add onode/buffer cache statistics + + os/bluestore: end scope of std::hex properly + + cmake: pass -DINTEL* to gf-complete cflags + + os/bluestore: conditional checking label of bluefs devices + + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + + os/bluestore: don't overwrite type if it does already exist and at desired type + + os/bluestore: trivial cleanups + + os/bluestore: replace store with logger in Cache + + os/bluestore: check iterator before using during fsck + ------------------------------------------------------------------- Mon Aug 29 07:24:44 UTC 2016 - ncutler@suse.com diff --git a/ceph.spec b/ceph.spec index 1ba4254..d414c6a 100644 --- a/ceph.spec +++ b/ceph.spec @@ -13,6 +13,7 @@ # # Please submit bugfixes or comments via http://tracker.ceph.com/ # +%bcond_without cephfs_java %if 0%{?suse_version} %bcond_with ceph_test_package %else @@ -29,12 +30,10 @@ %bcond_with lowmem_builder %bcond_with minimal_debugging_information %if 0%{?fedora} || 0%{?rhel} -%bcond_without cephfs_java %bcond_with ocf %bcond_without selinux %endif %if 0%{?suse_version} -%bcond_with cephfs_java %bcond_without ocf %if %{with ocf} %global _with_ocf --with-ocf @@ -66,7 +65,7 @@ # common ################################################################################# Name: ceph -Version: 11.0.0+git.1472455009.a17726c +Version: 11.1.0+git.1483528076.d86680e Release: 0 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 @@ -74,8 +73,13 @@ License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-auto Group: System/Filesystems %endif URL: http://ceph.com/ +%if 0%{?rhel} +Source0: http://ceph.com/download/@TARBALL_BASENAME@.tar.bz2 +%endif +%if ! 0%{?rhel} Source0: %{name}-%{version}.tar.bz2 # _insert_obs_source_lines_here +%endif %if 0%{?suse_version} %if 0%{?is_opensuse} ExclusiveArch: x86_64 aarch64 ppc64 ppc64le @@ -88,6 +92,7 @@ ExclusiveArch: x86_64 aarch64 ################################################################################# Requires: ceph-osd = %{version}-%{release} Requires: ceph-mds = %{version}-%{release} +Requires: ceph-mgr = %{version}-%{release} Requires: ceph-mon = %{version}-%{release} Requires(post): binutils %if 0%{with cephfs_java} @@ -100,6 +105,9 @@ BuildRequires: selinux-policy-devel BuildRequires: /usr/share/selinux/devel/policyhelp %endif BuildRequires: boost-devel +%if ! 0%{?suse_version} +BuildRequires: boost-python +%endif BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel @@ -108,7 +116,6 @@ BuildRequires: gdbm %if 0%{with tcmalloc} BuildRequires: gperftools-devel %endif -BuildRequires: hdparm BuildRequires: jq BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel @@ -221,7 +228,7 @@ Group: System Environment/Base Requires: ceph-common = %{version}-%{release} Requires: librbd1 = %{version}-%{release} Requires: librados2 = %{version}-%{release} -Requires: libcephfs1 = %{version}-%{release} +Requires: libcephfs2 = %{version}-%{release} Requires: librgw2 = %{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{version}-%{release} @@ -233,17 +240,12 @@ Requires: grep Requires: xfsprogs Requires: logrotate Requires: util-linux -Requires: hdparm Requires: cryptsetup Requires: findutils Requires: which %if 0%{?suse_version} -Requires: lsb-release Recommends: ntp-daemon %endif -%if 0%{?fedora} || 0%{?rhel} -Requires: redhat-lsb-core -%endif %if 0%{with xio} Requires: libxio %endif @@ -255,10 +257,11 @@ Summary: Ceph Common Group: System Environment/Base Requires: librbd1 = %{version}-%{release} Requires: librados2 = %{version}-%{release} -Requires: libcephfs1 = %{version}-%{release} +Requires: libcephfs2 = %{version}-%{release} Requires: python-rados = %{version}-%{release} Requires: python-rbd = %{version}-%{release} Requires: python-cephfs = %{version}-%{release} +Requires: python-rgw = %{version}-%{release} Requires: python-requests %{?systemd_requires} %if 0%{?suse_version} @@ -298,6 +301,18 @@ system. One or more instances of ceph-mon form a Paxos part-time parliament cluster that provides extremely reliable and durable storage of cluster membership, configuration, and state. +%package mgr +Summary: Ceph Manager Daemon +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 +Group: System Environment/Base +Requires: ceph-base = %{version}-%{release} + +%description mgr +ceph-mgr enables python modules that provide services (such as the REST +module derived from Calamari) and expose CLI hooks. ceph-mgr gathers +the cluster maps, the daemon metadata, and performance counters, and +exposes all these to the python modules. + %package fuse Summary: Ceph fuse-based client Group: System Environment/Base @@ -423,6 +438,27 @@ Obsoletes: librgw2-devel < %{version}-%{release} This package contains libraries and headers needed to develop programs that use RADOS gateway client library. +%package -n python-rgw +Summary: Python 2 libraries for the RADOS gateway +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librgw2 = %{version}-%{release} +Requires: python-rados = %{version}-%{release} +Obsoletes: python-ceph < %{version}-%{release} +%description -n python-rgw +This package contains Python 2 libraries for interacting with Cephs RADOS +gateway. + +%package -n python%{python3_pkgversion}-rgw +Summary: Python 3 libraries for the RADOS gateway +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librgw2 = %{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{version}-%{release} +%description -n python%{python3_pkgversion}-rgw +This package contains Python 3 libraries for interacting with Cephs RADOS +gateway. + %package -n python-rados Summary: Python 2 libraries for the RADOS object store Group: System Environment/Libraries @@ -514,7 +550,7 @@ Requires: python%{python3_pkgversion}-rados = %{version}-%{release} This package contains Python 3 libraries for interacting with Cephs RADOS block device. -%package -n libcephfs1 +%package -n libcephfs2 Summary: Ceph distributed file system client library Group: System Environment/Libraries License: LGPL-2.0 @@ -522,7 +558,7 @@ License: LGPL-2.0 Obsoletes: ceph-libs < %{version}-%{release} Obsoletes: ceph-libcephfs %endif -%description -n libcephfs1 +%description -n libcephfs2 Ceph is a distributed network file system designed to provide excellent performance, reliability, and scalability. This is a shared library allowing applications to access a Ceph distributed file system via a @@ -532,11 +568,11 @@ POSIX-like interface. Summary: Ceph distributed file system headers Group: Development/Libraries License: LGPL-2.0 -Requires: libcephfs1 = %{version}-%{release} +Requires: libcephfs2 = %{version}-%{release} Requires: librados-devel = %{version}-%{release} Obsoletes: ceph-devel < %{version}-%{release} -Provides: libcephfs1-devel = %{version}-%{release} -Obsoletes: libcephfs1-devel < %{version}-%{release} +Provides: libcephfs2-devel = %{version}-%{release} +Obsoletes: libcephfs2-devel < %{version}-%{release} %description -n libcephfs-devel This package contains libraries and headers needed to develop programs that use Cephs distributed file system. @@ -545,7 +581,7 @@ that use Cephs distributed file system. Summary: Python 2 libraries for Ceph distributed file system Group: System Environment/Libraries License: LGPL-2.0 -Requires: libcephfs1 = %{version}-%{release} +Requires: libcephfs2 = %{version}-%{release} Requires: python-rados = %{version}-%{release} Obsoletes: python-ceph < %{version}-%{release} %description -n python-cephfs @@ -556,7 +592,7 @@ file system. Summary: Python 3 libraries for Ceph distributed file system Group: System Environment/Libraries License: LGPL-2.0 -Requires: libcephfs1 = %{version}-%{release} +Requires: libcephfs2 = %{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{version}-%{release} %description -n python%{python3_pkgversion}-cephfs This package contains Python 3 libraries for interacting with Cephs distributed @@ -590,7 +626,7 @@ Summary: Java Native Interface library for CephFS Java bindings Group: System Environment/Libraries License: LGPL-2.0 Requires: java -Requires: libcephfs1 = %{version}-%{release} +Requires: libcephfs2 = %{version}-%{release} %description -n libcephfs_jni1 This package contains the Java Native Interface library for CephFS Java bindings. @@ -645,18 +681,24 @@ Obsoletes: python-ceph Requires: python-rados = %{version}-%{release} Requires: python-rbd = %{version}-%{release} Requires: python-cephfs = %{version}-%{release} +Requires: python-rgw = %{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. +python-rados, python-rbd, python-rgw and python-cephfs. Packages still +depending on python-ceph should be fixed to depend on python-rados, +python-rbd, python-rgw or python-cephfs instead. ################################################################################# # common ################################################################################# %prep +%if 0%{?rhel} +%autosetup -p1 -n @TARBALL_BASENAME@ +%endif +%if ! 0%{?rhel} %autosetup -p1 +%endif %build %if 0%{with cephfs_java} @@ -678,6 +720,8 @@ export CPPFLAGS="$java_inc" export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" +env | sort + mkdir build cd build cmake .. \ @@ -688,7 +732,9 @@ cmake .. \ -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \ -DCMAKE_INSTALL_MANDIR=%{_mandir} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \ + -DWITH_EMBEDDED=OFF \ -DWITH_MANPAGE=ON \ + -DWITH_PYTHON3=ON \ -DWITH_SYSTEMD=ON \ %if 0%{?rhel} && ! 0%{?centos} -DWITH_SUBMAN=ON \ @@ -763,7 +809,7 @@ make DESTDIR=%{buildroot} install # we have dropped sysvinit bits rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph popd -install -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap +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 @@ -799,6 +845,7 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds +mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds @@ -829,7 +876,6 @@ rm -rf %{buildroot} %{_bindir}/ceph-run %{_bindir}/ceph-dencoder %{_bindir}/ceph-detect-init -%{_unitdir}/ceph-create-keys@.service %{_bindir}/cephfs-data-scan %{_bindir}/cephfs-journal-tool %{_bindir}/cephfs-table-tool @@ -984,11 +1030,6 @@ usermod -c "Ceph storage service" \ -g ceph \ -s /sbin/nologin \ ceph -# fix ownership of log files -[ -d /var/log/ceph ] || exit 0 -[ "$(stat -c %U /var/log/ceph)" = "ceph" ] && exit 0 -find /var/log/ceph -type f -name '*.log' -exec chown ceph.ceph {} \; -chown ceph.ceph /var/log/ceph %endif exit 0 @@ -1051,6 +1092,55 @@ if [ $FIRST_ARG -ge 1 ] ; then fi fi +%files mgr +%{_bindir}/ceph-mgr +%{_libdir}/ceph/mgr +%{_unitdir}/ceph-mgr@.service +%{_unitdir}/ceph-mgr.target +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mgr + +%post mgr +%if 0%{?suse_version} +if [ $1 -eq 1 ] ; then + /usr/bin/systemctl preset ceph-mgr@\*.service ceph-mgr.target >/dev/null 2>&1 || : +fi +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_post ceph-mgr@\*.service ceph-mgr.target +%endif +if [ $1 -eq 1 ] ; then +/usr/bin/systemctl start ceph-mgr.target >/dev/null 2>&1 || : +fi + +%preun mgr +%if 0%{?suse_version} +%service_del_preun ceph-mgr@\*.service ceph-mgr.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_preun ceph-mgr@\*.service ceph-mgr.target +%endif + +%postun mgr +test -n "$FIRST_ARG" || FIRST_ARG=$1 +%if 0%{?suse_version} +DISABLE_RESTART_ON_UPDATE="yes" +%service_del_postun ceph-mgr@\*.service ceph-mgr.target +%endif +%if 0%{?fedora} || 0%{?rhel} +%systemd_postun ceph-mgr@\*.service ceph-mgr.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-mgr@\*.service > /dev/null 2>&1 || : + fi +fi + %files mon %{_bindir}/ceph-mon %{_bindir}/ceph-rest-api @@ -1108,6 +1198,8 @@ fi %{_bindir}/ceph-fuse %{_mandir}/man8/ceph-fuse.8* %{_sbindir}/mount.fuse.ceph +%{_unitdir}/ceph-fuse@.service +%{_unitdir}/ceph-fuse.target %files -n rbd-fuse %defattr(-,root,root,-) @@ -1181,15 +1273,6 @@ fi %{_unitdir}/ceph-radosgw@.service %{_unitdir}/ceph-radosgw.target -%pre radosgw -%if 0%{?suse_version} -# fix ownership of log files -[ -d /var/log/ceph-radosgw ] || exit 0 -[ "$(stat -c %U /var/log/ceph-radosgw)" = "ceph" ] && exit 0 -find /var/log/ceph-radosgw -type f -name '*.log' -exec chown ceph.ceph {} \; -chown ceph.ceph /var/log/ceph-radosgw -%endif - %post radosgw %if 0%{?suse_version} if [ $1 -eq 1 ] ; then @@ -1300,7 +1383,6 @@ fi %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 @@ -1326,6 +1408,7 @@ fi %{_includedir}/rados/librados.hpp %{_includedir}/rados/buffer.h %{_includedir}/rados/buffer_fwd.h +%{_includedir}/rados/inline_memory.h %{_includedir}/rados/page.h %{_includedir}/rados/crc32c.h %{_includedir}/rados/rados_types.h @@ -1403,6 +1486,16 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %{_includedir}/rados/rgw_file.h %{_libdir}/librgw.so +%files -n python-rgw +%defattr(-,root,root,-) +%{python_sitearch}/rgw.so +%{python_sitearch}/rgw-*.egg-info + +%files -n python%{python3_pkgversion}-rgw +%defattr(-,root,root,-) +%{python3_sitearch}/rgw.cpython*.so +%{python3_sitearch}/rgw-*.egg-info + %files -n python-rbd %defattr(-,root,root,-) %{python_sitearch}/rbd.so @@ -1413,18 +1506,19 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %{python3_sitearch}/rbd.cpython*.so %{python3_sitearch}/rbd-*.egg-info -%files -n libcephfs1 +%files -n libcephfs2 %defattr(-,root,root,-) %{_libdir}/libcephfs.so.* -%post -n libcephfs1 -p /sbin/ldconfig +%post -n libcephfs2 -p /sbin/ldconfig -%postun -n libcephfs1 -p /sbin/ldconfig +%postun -n libcephfs2 -p /sbin/ldconfig %files -n libcephfs-devel %defattr(-,root,root,-) %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h +%{_includedir}/cephfs/ceph_statx.h %{_libdir}/libcephfs.so %files -n python-cephfs diff --git a/ceph_ver_hack.sh b/ceph_ver_hack.sh deleted file mode 100644 index 2435a2c..0000000 --- a/ceph_ver_hack.sh +++ /dev/null @@ -1,48 +0,0 @@ -# Don't run this manually. It's only here to be invoked inside the -# git checkout during `osc service dr`. Here's why: -# -# - cmake, when it runs to set up the build system, in turn invokes -# git to set CEPH_GIT_VER and CEPH_GIT_NICE_VER (src/CMakeLists.txt -# line 237+). -# - Those two variables are substituted into src/ceph_ver.h.in.cmake, -# generating build/src/include/ceph_ver.h. -# - When cmake is run inside OBS, it's working off a tarball, so -# there's no git repo information, so CEPH_GIT_VER ends up set to -# GITDIR-NOTFOUND, which breaks the build. -# - cmake *really* wants to be run from a git source checkout (at -# least insofar as getting the version stuff set up goes). -# -# This script uses the old src/make_version script to generate -# src/.git_version (which has the git commit hash on the first line -# and the pretty version on the second), then sed's these two values -# into src/ceph_ver.h.in.cmake in place of @CEPH_GIT_VER@ and -# @CEPH_GIT_NICE_VER@, so when cmake later runs as part of the build, -# it ends up (effectively) just copying that file to -# build/src/include/ceph_ver.h. It doesn't matter that cmake will -# still internally set CEPH_GIT_VER and CEPH_GIT_NICE_VER to bogus -# values, because we've already done the variable substitution. -# -# This script is invoked from the _service file via: -# -# sh ../../../ceph_ver_hack.sh -# -# It works because the cloned git source ends up three directories -# under the OBS source checkout. I had previously tried to do the -# below three commands directly inside the "comandtorun" parameter, -# as follows: -# -# sh -c 'src/make_version -g src/.git_version ; sed -i \"s/@CEPH_GIT_VER@/$(head -n1 src/.git_version)/\" src/ceph_ver.h.in.cmake ; sed -i \"s/@CEPH_GIT_NICE_VER@/$(tail -n1 src/.git_version)/\" src/ceph_ver.h.in.cmake' -# -# ...but that doesn't work, because obs-service-tar_scm runs -# str.split() on it, which splits on whitespace and thus totally -# breaks the big long string I'm trying to pass to `sh -c`. -# -# This is the nastiest hack I've written in recent memory. I'm -# very, very sorry. -# -# -- Tim Serong -# - -src/make_version -g src/.git_version -sed -i "s/@CEPH_GIT_VER@/$(head -n1 src/.git_version)/" src/ceph_ver.h.in.cmake -sed -i "s/@CEPH_GIT_NICE_VER@/$(tail -n1 src/.git_version)/" src/ceph_ver.h.in.cmake diff --git a/pre_checkin.sh b/pre_checkin.sh index 278a6a0..7b4ad6e 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -170,7 +170,7 @@ function transform_spec_file { line=`echo $line | sed 's/%{name}/ceph/g'` ;; "%autosetup -p1") - line="$line -n ceph-%version" + line="%autosetup -p1 -n ceph-%version" ;; "Requires:"*) if [[ $in_package == false ]]; then @@ -284,5 +284,4 @@ reqs=`get_package_requires $SPEC_FILE $PACKAGE` transform_spec_file $SPEC_FILE $PACKAGE "$rm_files" "$summ" "$desc" "$reqs" > $PACKAGE.spec insert_line_before "${PACKAGE}.spec" "Source99: ceph-rpmlintrc" "_insert_obs_source_lines_here" insert_line_before "${PACKAGE}.spec" "Source98: README-ceph-test.txt" "^Source99:" -insert_line_before "${PACKAGE}.spec" "Source97: ceph_ver_hack.sh" "^Source98:" copy_changes_file $PACKAGE