diff --git a/_service b/_service index 3e7398c..e8a805d 100644 --- a/_service +++ b/_service @@ -1,13 +1,13 @@ - 11.0.0+git.%ct.%h + 12.0.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..40eb723 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ git://github.com/SUSE/ceph.git - a17726c4326ee895bf40686e3340c04c6963c153 \ No newline at end of file + 410e200be5f33c0f2079a3ad1c0cbc2464236e53 \ 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-12.0.0+git.1489159457.410e200.tar.bz2 b/ceph-12.0.0+git.1489159457.410e200.tar.bz2 new file mode 100644 index 0000000..5f6dde0 --- /dev/null +++ b/ceph-12.0.0+git.1489159457.410e200.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c397c17e3fd6743368d7349bece0faf35f166dad3d3aec0ae1ae67c7498e53 +size 103823168 diff --git a/ceph-test.changes b/ceph-test.changes index c376bb6..ec224c4 100644 --- a/ceph-test.changes +++ b/ceph-test.changes @@ -1,3 +1,385 @@ +------------------------------------------------------------------- +Fri Mar 10 15:55:53 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.0+git.1489159457.410e200: + + build/ops: fix Group strings for library packages + +------------------------------------------------------------------- +Fri Mar 3 15:32:06 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.0+git.1488553020.e902441: + + Recent upstream master (3c0af07629dc661aba84e2fef696339ac7171914) + + Builds with GCC7 (boo#1025891) + +------------------------------------------------------------------- +Wed Feb 08 21:28:28 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1486588482.ba197ae: + + Update to latest upstream master (3d740bd) + + cmake: added empty RPATH to several executables + + rocksdb: sync with upstream + +------------------------------------------------------------------- +Fri Jan 20 14:00:36 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484919552.9216e9a: + + Revert "rpm: put distro conditionals around Source0 in spec file" + + Revert "ceph.spec.in: revert Source0 line to upstream version" + +------------------------------------------------------------------- +Fri Jan 20 10:18:44 UTC 2017 - ncutler@suse.com + +- pre_checkin.sh: add logic to remove s390 architectures from ExclusiveArch + line in ceph-test.spec (rationale: ceph-test is not shipped for s390x) + +------------------------------------------------------------------- +Fri Jan 20 10:06:54 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484745543.7b08de5: + + Update to latest upstream master (36874c8) - significant changes: + * cmake: Turn libcommon into a shared library (PR#12840) + * cmake: fix rpath on shared libraries and executables (PR#12927) + + Fix build failure in ppc64le and s390x, caused by missing + "-momit-leaf-frame-pointer" gcc option in these architectures: + + rocksdb: build with ppc64 (PR#12908) + +------------------------------------------------------------------- +Tue Jan 17 14:14:45 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484659687.3472421: + + rpm: tell openSUSE to never clean the spec file + + Enable ppc64le and s390x builds in SLE + + rpm: lttng only on x86_64 and aarch64 + +------------------------------------------------------------------- +Thu Jan 05 10:43:34 UTC 2017 - jfajerski@suse.com + +- Update to version 11.1.0+git.1483528076.d86680e (latest master) + + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: + conflicts in qa/ where resolved with theirs + conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename + int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp + +------------------------------------------------------------------- +Tue Dec 13 21:21:41 UTC 2016 - ncutler@suse.com + +- Update to version 11.1.0+git.1481663255.bf42706: + + Update to upstream 11.1.0 release; for details see + http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + + move ceph_ver_hack.sh script from build service package to git repo + (bsc#1015419) + +------------------------------------------------------------------- +Tue Nov 29 20:39:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480437645.66595d3 + + Update to latest upstream master (boost library is now included in the + tarball, so the tarball is much larger than before and the build takes + longer to complete) + + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + + rocksdb: do not build with --march=native (bsc#1012553) + +------------------------------------------------------------------- +Fri Nov 25 20:42:45 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480105120.6b8e9e5: + + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it + conflicted with upstream + + update to latest upstream kraken (11.0.2) - for details, see + http://ceph.com/releases/kraken-11-0-2-released/ + +------------------------------------------------------------------- +Mon Sep 12 12:48:33 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473684054.73e4b4a: + + safe_io: Improve portability by replacing loff_t type usage with off_t. + + mon: remove the redundant list swap in paxos commit_proposal + + msg/EventPoll.h: add override to virtual functions + + msg/EventKqueue.h: add override to virtual func + + msg/EventSelect.h: add override to virtual funct + + ceph-disk: Compatibility fixes for Python 3 + + ceph-disk: Use true integer division in get_dev_size + + ceph-disk: Fix bug in FileLock + + ceph-disk: Allow ConfigObj to write in binary mode + + ceph-disk: Use context manager with FileLock + + ceph-disk: Use os.path.isabs instead of .startswith('/') + + ceph-disk: Set space_symlink to the path, not file object + + ceph-disk: PEP8ify + + rgw: rgw file fix bug of rgw_lookup can not exact match file name + + rgw: fix the wrong return value + + rgw/rgw_coroutine: move WaitContext to .cc file + + client: pass a mask parameter to path_walk + + mds/mdstypes: add btime to inode + + mds/Server: set btime=ctime on creation + + mds/MDCache: set btime on system inodes + + include/ceph_features: add FS_BTIME features + + mds: pass btime in InodeStat MClientReply, if feature is present + + client: keep btime in Inode and InodeStat + + ceph: break up ll_getattr into two functions + + client: move the device bitshift handling macros to Client.h + + libcephfs: add a ceph_ll_getattrx and ceph_statx + + libcephfs: add a test for "lazy" statx + + mds/client: add btime to CapSnap and MClientCaps + + mds/mdstypes: add change attribute to inode + + mds/Server: set change_attr to 0 on creation + + mds/MDCache: set change_attr to 0 on system_inodes + + include/ceph_features: add FS_CHANGE_ATTR feature + + mds: pass change_attr in InodeStat MClientReply, if feature is present + + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + + mds/client: bump the change_attr at the appropriate time for files + + libcephfs: return the change_attr in the statx.stx_version field + + tests: add a ChangeAttr test + + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + + mds: add change_attr to frag_info_t + + test: add test for change attribute of directories + + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + + MDS: allow the MDS to accept requests to set the btime + + client: add the ability to set the btime + + client: add a ceph_fstatx + + client: extend the Btime test to cover fstatx as well + + journal/JournalTrimmer: move C_RemoveSet struct + + rbd_mirror/ImageSynceThrottler: move struct to .cc + + libcephfs: add unmount function in cephfs.pyx + + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + + rgw/rgw_lc.cc: fix sleep time according to the error message + + crush: don't normalize input of crush_ln iteratively + + crush: remove clutter + + mds: remove max_mds config option + + vstart.sh: add option to turn on multimds + + rgw: right parenthesis is missing in radosgw-admin help message on caps + + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + + SQUASH: client: always take a change_attr update from the server if it's newer + + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + + rgw/rgw_rados.h: remove unneeded class C_Tick + + SQUASH: client: querying for stx_version field requires getting all shared caps + + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + + client: properly set inode number of created inode in replay request + + test/librbd/fsx: enable exclusive-lock feature in krbd mode + + os/bluestore/BlueFS: fix async compaction txn + + scripts/bdev_grep: parse bluefs style extents too + + SQUASH: client: request all shared caps if ctime was requested + + os/bluestore/BlueFS: factor unflushed log into runway calculation + + osd/ReplicatedBackend: move classes to cc file + + os/bluestore: honour allow-eio flag during read + + CmakeLists.txt: use LIB_RESOLV instead of resolv. + + osd/ReplicatedPG: move classes to .cc file + + librbd: potential double-unwatch of watch handle upon error + + cls/journal: add async client_update_state method + + journal: allow to trim journal for "laggy" clients + + librbd: optionally flag "laggy" journal clients disconnected + + rbd: new command to disconnect journal client + + rbd-mirror: decode_client_meta should return false on error + + rbd-mirror: resync was possible only when image replayer start had succeeded + + rbd-mirror: stop replay when client is disconnected + + rbd-mirror: option to automatically resync after journal client disconnect + + qa/workunits/cephtool/test.sh: fix omision of ceph-command + + os/bluestore: use global compressor if possible + + build/ops: fix /etc/os-release parsing in install-deps.sh + + osd/OSD.cc: remove repeated searching of map + + test/cephfs: add mount&&unmount test + + mds: s/used_ions/used_inos/ + + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + + ceph_test_objectstore: add SyntheticMatrixSharding + + ceph_test_objectstore: occasional umount/fsck/mount + + ceph_test_objectstore: test shards for longer + + crush/CrushCompiler.cc:884 bug fix: index out of range + + Makfile: Fix rocksdb error when make dist + + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + + src/pybind/CMakeLists.txt: conditionaly build cython tools + + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + + src/test/objectstore/CMakeLists.txt: conditionaly build tests + + mds: trim null dentries proactively + + cmake: include(SIMDExt) in src/CMakeLists.txt + + mds: log path with CDir damage messages + + hint in extent_alloc code + + remove wrap argument and handle in wrappers + + Hint argument in alloc_blocks + test case changes + + os/bluestore: shard extent map + + os/bluestore: make nid and blobid allocation less racy + + os/bluestore: optimize compress_extent_map + + os/bluestore: fix fsck used_block bitmap + + os/bluestore: use block_size for allocator unit + + os/bluestore: make blob_t unused helpers use logical length + + os/bluestore: instrument big/small writes + + os/bluestore: instrument transaction count + + os/bluestore: instrument onode reshard events + + os/bluestore: dump some stats after fsck + + os/bluestore: assert shared blob cache cleared on split + + remove autotools + + test/objectstore/CMakeLists.txt: fix libaio conditional + + buffer: clear append_buffer on clear() + + os/bluestore: tunable prealloc size for ExtentMap inline_bl + + os/bluestore: don't dirty onode if its size is already at desired offset + + os/bluestore: remove never reachable asserts + + os/bluestore: drop unnecessary separator between fields + + os/bluestore: fix key+name sort wonkiness + + os/bluestore: encode shard id in single byte + + os/bluestore: small put_ref cleanup + + os/bluestore: remove faulted debug hackery + + os/bluestore: bits for unit tests + + unittest_bluestore_types: resurrect blob and extent_map unit tests + + os/bluestore/BlueFS: do not start racing async compaction + + os/bluestore/BlueFS: fix Dir memory leak + + buffer: implement buffer::list::reserve(n) + + os/bluestore: do not waste memory on cached encoded blobs + + qa/workunits/objectstore: fix test_fuse.sh + + os/FuseStore: only flush if dirty + + build: drop dryrun of autogen.sh from run-cmake-check.sh script + + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + + os/bluestore: remove some copy-pastes + + cmake: make py3 a nice-to-have + + os/bluestore/BlueFS: only extend extent on same bdev + + msg/AsyncConnection: add const to mem functions + + msg/AsyncMessenger: add const to function + + client/barrier: move C_Block_Sync class to .cc + + osd/OSD.cc: remove unneeded searching of map + + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + + rpm: Renamed bcond tests flag to make_check + + rbd-nbd: fix kernel deadlock during teuthology testing + + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + + librbd: invalidate cache before trimming image + + librbd: ignore cache busy errors when shrinking an image + + librbd: potential seg fault when blacklisting an image client + + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + + deb: Moved ceph-client-debug from ceph-base to ceph-test package + + ceph-objectstore-tool: add a way to split filestore directories offline + + install-deps: exit non-zero when we cannot match distro + + librbd: possible deadlock if cluster connection closed after image + + osd/ReplicatedPG: remove class redeclaration + + librbd: ignore partial refresh error when acquiring exclusive lock + + osd/OSD.cc: remove unneeded returns + +------------------------------------------------------------------- +Fri Sep 09 12:53:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473424516.3b8b524: + + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + + rpm: put distro conditionals around Source0 in spec file + +------------------------------------------------------------------- +Fri Sep 09 10:59:53 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473418476.095f67c: + + ceph.spec.in: revert Source0 line to upstream version + + ceph.spec.in: conditionalize %prep command + +------------------------------------------------------------------- +Fri Sep 09 08:16:40 UTC 2016 - ncutler@suse.com + +- ceph.spec.in: enable cephfs_java build unconditionally +- new (merged) commits from upstream master branch: + + mailmap updates + + rgw: fix the handling of rgw_swift_url_prefix. + + rgw: ONLY improve code formatting around RGWRESTMgr. + + rgw: add support for the crossdomain.xml resource of Swift API. + + rgw: add support for the healthcheck feature of Swift API. + + swift /info implementation. + + rgw: settle /info implementation across other swift-at-root features. + + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + + mon: tear down standby replays on MDS rank stop + + mon/MDSMonitor: move C_Updated class to .cc file + + rgw_file: fix/update rgw_open flag arguments + + rgw_file: fix/update rgw_create flag arguments + + doc: remove btrfs contradiction + + msg: make async backend default + + msg/simple: wait dispatch_queue until all pipes closed + + rgw_file: implement stateless write completion timer + + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + + rgw_file: log on write completion events at level 10 + + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + + osdc/Journaler: move C_DelayFlush class to .cc + + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + + librgw: add API version defines for librgw and rgw_file + + make-dist/ceph.spec.in: Fix srpm build breakage. + + ceph_timer: prefer using directive to typedef + + rgw_file: explain semantics of RGWFileHandle::commit + + compressor: Better arch ifdefs for isal code + + mds/MDSTable: add const to member functions + + os/bluestore: fix some #includes + + vstart.sh: -b for bluestore + + os/bluestore/bluestore_types: make blob_t get_chunk_size const + + os/bluestore: use Blob const and non-const accessors + + os/bluestore: avoid reencoding unchanged blobs + + os/bluestore: decode blobs on demand + + mds/SnapRealm.h: add const to member functions + + os/bluestore/bluefs: avoid check "locked" field for newly created file + + os/bluestore/bluefs: check against locked field during unlink + + os/bluestore/bluefs: assert refs of file don't underflow + + os/kstore: kill dead code + + rgw: remove duplicated calls to getattr + + debian: should dh_python3 python3-* not python-* + + pybind: silence -Wsign-compare warning + + test/ceph_test_msgr: fix -Wsign-compare warnings + + test/unittest_alloc: fix -Wsign-compare warnings + + librbd: API methods to directly acquire and release the exclusive lock + + doc: add graphic for cap bit field + + mds/MDCache.h: remove unneeded access specifier + + librbd: skeleton implementation of client-side image cache + + librbd: blocking parent IO completion no longer required + + librbd: remove use of owner_lock on IO path + + Revert "osdc: ObjectCacher flusher might needs additional locks" + + librbd: support bufferlist payload for AioImageWrite + + librbd: add internal support for scatter/gather IO + + librbd: initial integration of ImageWriteback to AioImageRequest + + librbd: consolidate IO clipping to reusable method + + librbd: differentiate between image and object cache + + librbd: C_ImageCacheRead bridge from Context to AioCompletion + + librbd: integrate image cache hooks into IO path + + common/Throttle.h: remove unneeded class + + cmake: fix the tracing header dependencies + + src/test/bench/CMakeLists.txt: RBD exclude + + src/CMakeLists.txt: RBD|KVS|FUSE exclude + + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + + src/os/CMakeLists.txt: AIO|FUSE exclude + + src/test/CMakeLists.txt: RADOSGW|RBD exclude + + src/test/common/CMakeLists.txt: BLKID exclude + + install-deps.sh: initial distro detection based on /etc/os-release + + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + + ceph_test_objectstore: disable statfs checks on available space + + messages/MOSDMap: mark as enlighten OSDMap encoder + + cmake: remove unused librados_api target + + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + + cmake: let librados_api_obj depend on librados-tp + + os/bluestore: yet another statfs test fix + + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + + doc/release-notes: v0.94.9 + + os/bluestore/bluefs: use map to track dirty files + + os/bluestore/bluefs: update mtime of inode in unified path + + os/bluestore/bluefs: drop redundant eof check for read_random() + + os/CMakeLists.txt: undubble kv.cc usage. + + test,pybind: silence -Wsign-compare warnings + + test/perf_local: fix -Wmaybe-uninitialized warnings + + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + + Allow compressor build without YASM + + script/bdev_grep: update to use hex + + os/bluestore: improve failed csum debug output + + librbd: improve image state machine debug log messages + + librbd: deadlock when replaying journal during image open + + os/bluestore: end scope of std::hex properly + + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + + os/bluestore: use _setattr for SETATTR + + os/bluestore: make object existence check robust + + ceph_test_objectstore: assert umount succeeds + + ceph_test_objectstore: clean up Rename test a bit + + ceph_test_objectstore: fix TryMoveRename test + + os/bluestore: add onode/buffer cache statistics + + os/bluestore: end scope of std::hex properly + + cmake: pass -DINTEL* to gf-complete cflags + + os/bluestore: conditional checking label of bluefs devices + + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + + os/bluestore: don't overwrite type if it does already exist and at desired type + + os/bluestore: trivial cleanups + + os/bluestore: replace store with logger in Cache + + os/bluestore: check iterator before using during fsck + ------------------------------------------------------------------- Mon Aug 29 07:24:44 UTC 2016 - ncutler@suse.com diff --git a/ceph-test.spec b/ceph-test.spec index 01eaf27..4e1fcc9 100644 --- a/ceph-test.spec +++ b/ceph-test.spec @@ -13,6 +13,7 @@ # # Please submit bugfixes or comments via http://tracker.ceph.com/ # +%bcond_with cephfs_java %if 0%{?suse_version} %bcond_without ceph_test_package %else @@ -26,15 +27,13 @@ # no gperftools/tcmalloc on s390(x) %bcond_with tcmalloc %endif -%bcond_with lowmem_builder +%bcond_without 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 @@ -45,9 +44,11 @@ # LTTng-UST enabled on Fedora, RHEL 6+, and SLE (not openSUSE) %if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version} %if ! 0%{?is_opensuse} +%ifarch x86_64 aarch64 %bcond_without lttng %endif %endif +%endif %if %{with selinux} # get selinux policy version @@ -66,7 +67,7 @@ # common ################################################################################# Name: ceph-test -Version: 11.0.0+git.1472455009.a17726c +Version: 12.0.0+git.1489159457.410e200 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 @@ -75,7 +76,6 @@ Group: System/Filesystems %endif URL: http://ceph.com/ Source0: ceph-%{version}.tar.bz2 -Source97: ceph_ver_hack.sh Source98: README-ceph-test.txt Source99: ceph-rpmlintrc # _insert_obs_source_lines_here @@ -83,7 +83,7 @@ Source99: ceph-rpmlintrc %if 0%{?is_opensuse} ExclusiveArch: x86_64 aarch64 ppc64 ppc64le %else -ExclusiveArch: x86_64 aarch64 +ExclusiveArch: x86_64 aarch64 ppc64le %endif %endif ################################################################################# @@ -92,6 +92,7 @@ ExclusiveArch: x86_64 aarch64 + Requires: ceph-common Requires: xmlstarlet Requires(post): binutils @@ -104,7 +105,7 @@ BuildRequires: checkpolicy BuildRequires: selinux-policy-devel BuildRequires: /usr/share/selinux/devel/policyhelp %endif -BuildRequires: boost-devel +BuildRequires: bc BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel @@ -113,7 +114,6 @@ BuildRequires: gdbm %if 0%{with tcmalloc} BuildRequires: gperftools-devel %endif -BuildRequires: hdparm BuildRequires: jq BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel @@ -218,46 +218,125 @@ This package contains Ceph benchmarks and test tools. ################################################################################# # packages ################################################################################# +%if 0%{?suse_version} +%endif %if 0%{with selinux} %endif %if 0%{?suse_version} %endif -%if 0%{?fedora} || 0%{?rhel} -%endif %if 0%{with xio} %endif %if 0%{?suse_version} %endif +%if 0%{?suse_version} +%endif %if 0%{with xio} %endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif %if 0%{?fedora} || 0%{?rhel} %endif %if 0%{?suse_version} %endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif %if 0%{with selinux} %endif %if 0%{?rhel} || 0%{?fedora} %endif %if %{with ocf} +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} %endif %if 0%{?fedora} || 0%{?rhel} %endif %if 0%{?suse_version} %endif -%if 0%{?rhel} || 0%{?fedora} +%if 0%{?suse_version} %endif %if 0%{?rhel} || 0%{?fedora} %endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif %if 0%{?rhel} || 0%{?fedora} %endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?rhel} || 0%{?fedora} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif %if 0%{with ceph_test_package} +%if 0%{?suse_version} +%endif %endif %if 0%{with cephfs_java} +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif +%if 0%{?suse_version} +%endif %endif %if 0%{with selinux} +%if 0%{?suse_version} +%endif +%endif +%if 0%{?suse_version} %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 +358,8 @@ export CPPFLAGS="$java_inc" export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" +env | sort + mkdir build cd build cmake .. \ @@ -289,7 +370,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 +447,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 +483,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 +502,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 +575,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 +589,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 @@ -537,11 +626,13 @@ rm -rf %{buildroot}%{_unitdir}/ceph-osd.target rm -rf %{buildroot}%{_unitdir}/ceph-disk@.service rm -rf %{buildroot}%{_prefix}/lib/ocf/resource.d/ceph/rbd rm -rf %{buildroot}%{_libdir}/librados.so.* +rm -rf %{buildroot}%{_libdir}/ceph/libceph-common.so* rm -rf %{buildroot}%{_libdir}/librados_tp.so.* rm -rf %{buildroot}%{_includedir}/rados/librados.h rm -rf %{buildroot}%{_includedir}/rados/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 +661,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 +772,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} @@ -755,3 +861,4 @@ rm -rf %{buildroot} %if 0%{with selinux} %endif # with selinux %changelog +# nospeccleaner diff --git a/ceph.changes b/ceph.changes index c376bb6..ec224c4 100644 --- a/ceph.changes +++ b/ceph.changes @@ -1,3 +1,385 @@ +------------------------------------------------------------------- +Fri Mar 10 15:55:53 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.0+git.1489159457.410e200: + + build/ops: fix Group strings for library packages + +------------------------------------------------------------------- +Fri Mar 3 15:32:06 UTC 2017 - ncutler@suse.com + +- Update to version 12.0.0+git.1488553020.e902441: + + Recent upstream master (3c0af07629dc661aba84e2fef696339ac7171914) + + Builds with GCC7 (boo#1025891) + +------------------------------------------------------------------- +Wed Feb 08 21:28:28 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1486588482.ba197ae: + + Update to latest upstream master (3d740bd) + + cmake: added empty RPATH to several executables + + rocksdb: sync with upstream + +------------------------------------------------------------------- +Fri Jan 20 14:00:36 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484919552.9216e9a: + + Revert "rpm: put distro conditionals around Source0 in spec file" + + Revert "ceph.spec.in: revert Source0 line to upstream version" + +------------------------------------------------------------------- +Fri Jan 20 10:18:44 UTC 2017 - ncutler@suse.com + +- pre_checkin.sh: add logic to remove s390 architectures from ExclusiveArch + line in ceph-test.spec (rationale: ceph-test is not shipped for s390x) + +------------------------------------------------------------------- +Fri Jan 20 10:06:54 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484745543.7b08de5: + + Update to latest upstream master (36874c8) - significant changes: + * cmake: Turn libcommon into a shared library (PR#12840) + * cmake: fix rpath on shared libraries and executables (PR#12927) + + Fix build failure in ppc64le and s390x, caused by missing + "-momit-leaf-frame-pointer" gcc option in these architectures: + + rocksdb: build with ppc64 (PR#12908) + +------------------------------------------------------------------- +Tue Jan 17 14:14:45 UTC 2017 - ncutler@suse.com + +- Update to version 11.1.0+git.1484659687.3472421: + + rpm: tell openSUSE to never clean the spec file + + Enable ppc64le and s390x builds in SLE + + rpm: lttng only on x86_64 and aarch64 + +------------------------------------------------------------------- +Thu Jan 05 10:43:34 UTC 2017 - jfajerski@suse.com + +- Update to version 11.1.0+git.1483528076.d86680e (latest master) + + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: + conflicts in qa/ where resolved with theirs + conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename + int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp + +------------------------------------------------------------------- +Tue Dec 13 21:21:41 UTC 2016 - ncutler@suse.com + +- Update to version 11.1.0+git.1481663255.bf42706: + + Update to upstream 11.1.0 release; for details see + http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + + move ceph_ver_hack.sh script from build service package to git repo + (bsc#1015419) + +------------------------------------------------------------------- +Tue Nov 29 20:39:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480437645.66595d3 + + Update to latest upstream master (boost library is now included in the + tarball, so the tarball is much larger than before and the build takes + longer to complete) + + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + + rocksdb: do not build with --march=native (bsc#1012553) + +------------------------------------------------------------------- +Fri Nov 25 20:42:45 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.2+git.1480105120.6b8e9e5: + + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it + conflicted with upstream + + update to latest upstream kraken (11.0.2) - for details, see + http://ceph.com/releases/kraken-11-0-2-released/ + +------------------------------------------------------------------- +Mon Sep 12 12:48:33 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473684054.73e4b4a: + + safe_io: Improve portability by replacing loff_t type usage with off_t. + + mon: remove the redundant list swap in paxos commit_proposal + + msg/EventPoll.h: add override to virtual functions + + msg/EventKqueue.h: add override to virtual func + + msg/EventSelect.h: add override to virtual funct + + ceph-disk: Compatibility fixes for Python 3 + + ceph-disk: Use true integer division in get_dev_size + + ceph-disk: Fix bug in FileLock + + ceph-disk: Allow ConfigObj to write in binary mode + + ceph-disk: Use context manager with FileLock + + ceph-disk: Use os.path.isabs instead of .startswith('/') + + ceph-disk: Set space_symlink to the path, not file object + + ceph-disk: PEP8ify + + rgw: rgw file fix bug of rgw_lookup can not exact match file name + + rgw: fix the wrong return value + + rgw/rgw_coroutine: move WaitContext to .cc file + + client: pass a mask parameter to path_walk + + mds/mdstypes: add btime to inode + + mds/Server: set btime=ctime on creation + + mds/MDCache: set btime on system inodes + + include/ceph_features: add FS_BTIME features + + mds: pass btime in InodeStat MClientReply, if feature is present + + client: keep btime in Inode and InodeStat + + ceph: break up ll_getattr into two functions + + client: move the device bitshift handling macros to Client.h + + libcephfs: add a ceph_ll_getattrx and ceph_statx + + libcephfs: add a test for "lazy" statx + + mds/client: add btime to CapSnap and MClientCaps + + mds/mdstypes: add change attribute to inode + + mds/Server: set change_attr to 0 on creation + + mds/MDCache: set change_attr to 0 on system_inodes + + include/ceph_features: add FS_CHANGE_ATTR feature + + mds: pass change_attr in InodeStat MClientReply, if feature is present + + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + + mds/client: bump the change_attr at the appropriate time for files + + libcephfs: return the change_attr in the statx.stx_version field + + tests: add a ChangeAttr test + + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + + mds: add change_attr to frag_info_t + + test: add test for change attribute of directories + + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + + MDS: allow the MDS to accept requests to set the btime + + client: add the ability to set the btime + + client: add a ceph_fstatx + + client: extend the Btime test to cover fstatx as well + + journal/JournalTrimmer: move C_RemoveSet struct + + rbd_mirror/ImageSynceThrottler: move struct to .cc + + libcephfs: add unmount function in cephfs.pyx + + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + + rgw/rgw_lc.cc: fix sleep time according to the error message + + crush: don't normalize input of crush_ln iteratively + + crush: remove clutter + + mds: remove max_mds config option + + vstart.sh: add option to turn on multimds + + rgw: right parenthesis is missing in radosgw-admin help message on caps + + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + + SQUASH: client: always take a change_attr update from the server if it's newer + + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + + rgw/rgw_rados.h: remove unneeded class C_Tick + + SQUASH: client: querying for stx_version field requires getting all shared caps + + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + + client: properly set inode number of created inode in replay request + + test/librbd/fsx: enable exclusive-lock feature in krbd mode + + os/bluestore/BlueFS: fix async compaction txn + + scripts/bdev_grep: parse bluefs style extents too + + SQUASH: client: request all shared caps if ctime was requested + + os/bluestore/BlueFS: factor unflushed log into runway calculation + + osd/ReplicatedBackend: move classes to cc file + + os/bluestore: honour allow-eio flag during read + + CmakeLists.txt: use LIB_RESOLV instead of resolv. + + osd/ReplicatedPG: move classes to .cc file + + librbd: potential double-unwatch of watch handle upon error + + cls/journal: add async client_update_state method + + journal: allow to trim journal for "laggy" clients + + librbd: optionally flag "laggy" journal clients disconnected + + rbd: new command to disconnect journal client + + rbd-mirror: decode_client_meta should return false on error + + rbd-mirror: resync was possible only when image replayer start had succeeded + + rbd-mirror: stop replay when client is disconnected + + rbd-mirror: option to automatically resync after journal client disconnect + + qa/workunits/cephtool/test.sh: fix omision of ceph-command + + os/bluestore: use global compressor if possible + + build/ops: fix /etc/os-release parsing in install-deps.sh + + osd/OSD.cc: remove repeated searching of map + + test/cephfs: add mount&&unmount test + + mds: s/used_ions/used_inos/ + + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + + ceph_test_objectstore: add SyntheticMatrixSharding + + ceph_test_objectstore: occasional umount/fsck/mount + + ceph_test_objectstore: test shards for longer + + crush/CrushCompiler.cc:884 bug fix: index out of range + + Makfile: Fix rocksdb error when make dist + + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + + src/pybind/CMakeLists.txt: conditionaly build cython tools + + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + + src/test/objectstore/CMakeLists.txt: conditionaly build tests + + mds: trim null dentries proactively + + cmake: include(SIMDExt) in src/CMakeLists.txt + + mds: log path with CDir damage messages + + hint in extent_alloc code + + remove wrap argument and handle in wrappers + + Hint argument in alloc_blocks + test case changes + + os/bluestore: shard extent map + + os/bluestore: make nid and blobid allocation less racy + + os/bluestore: optimize compress_extent_map + + os/bluestore: fix fsck used_block bitmap + + os/bluestore: use block_size for allocator unit + + os/bluestore: make blob_t unused helpers use logical length + + os/bluestore: instrument big/small writes + + os/bluestore: instrument transaction count + + os/bluestore: instrument onode reshard events + + os/bluestore: dump some stats after fsck + + os/bluestore: assert shared blob cache cleared on split + + remove autotools + + test/objectstore/CMakeLists.txt: fix libaio conditional + + buffer: clear append_buffer on clear() + + os/bluestore: tunable prealloc size for ExtentMap inline_bl + + os/bluestore: don't dirty onode if its size is already at desired offset + + os/bluestore: remove never reachable asserts + + os/bluestore: drop unnecessary separator between fields + + os/bluestore: fix key+name sort wonkiness + + os/bluestore: encode shard id in single byte + + os/bluestore: small put_ref cleanup + + os/bluestore: remove faulted debug hackery + + os/bluestore: bits for unit tests + + unittest_bluestore_types: resurrect blob and extent_map unit tests + + os/bluestore/BlueFS: do not start racing async compaction + + os/bluestore/BlueFS: fix Dir memory leak + + buffer: implement buffer::list::reserve(n) + + os/bluestore: do not waste memory on cached encoded blobs + + qa/workunits/objectstore: fix test_fuse.sh + + os/FuseStore: only flush if dirty + + build: drop dryrun of autogen.sh from run-cmake-check.sh script + + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + + os/bluestore: remove some copy-pastes + + cmake: make py3 a nice-to-have + + os/bluestore/BlueFS: only extend extent on same bdev + + msg/AsyncConnection: add const to mem functions + + msg/AsyncMessenger: add const to function + + client/barrier: move C_Block_Sync class to .cc + + osd/OSD.cc: remove unneeded searching of map + + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + + rpm: Renamed bcond tests flag to make_check + + rbd-nbd: fix kernel deadlock during teuthology testing + + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + + librbd: invalidate cache before trimming image + + librbd: ignore cache busy errors when shrinking an image + + librbd: potential seg fault when blacklisting an image client + + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + + deb: Moved ceph-client-debug from ceph-base to ceph-test package + + ceph-objectstore-tool: add a way to split filestore directories offline + + install-deps: exit non-zero when we cannot match distro + + librbd: possible deadlock if cluster connection closed after image + + osd/ReplicatedPG: remove class redeclaration + + librbd: ignore partial refresh error when acquiring exclusive lock + + osd/OSD.cc: remove unneeded returns + +------------------------------------------------------------------- +Fri Sep 09 12:53:16 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473424516.3b8b524: + + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + + rpm: put distro conditionals around Source0 in spec file + +------------------------------------------------------------------- +Fri Sep 09 10:59:53 UTC 2016 - ncutler@suse.com + +- Update to version 11.0.0+git.1473418476.095f67c: + + ceph.spec.in: revert Source0 line to upstream version + + ceph.spec.in: conditionalize %prep command + +------------------------------------------------------------------- +Fri Sep 09 08:16:40 UTC 2016 - ncutler@suse.com + +- ceph.spec.in: enable cephfs_java build unconditionally +- new (merged) commits from upstream master branch: + + mailmap updates + + rgw: fix the handling of rgw_swift_url_prefix. + + rgw: ONLY improve code formatting around RGWRESTMgr. + + rgw: add support for the crossdomain.xml resource of Swift API. + + rgw: add support for the healthcheck feature of Swift API. + + swift /info implementation. + + rgw: settle /info implementation across other swift-at-root features. + + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + + mon: tear down standby replays on MDS rank stop + + mon/MDSMonitor: move C_Updated class to .cc file + + rgw_file: fix/update rgw_open flag arguments + + rgw_file: fix/update rgw_create flag arguments + + doc: remove btrfs contradiction + + msg: make async backend default + + msg/simple: wait dispatch_queue until all pipes closed + + rgw_file: implement stateless write completion timer + + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + + rgw_file: log on write completion events at level 10 + + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + + osdc/Journaler: move C_DelayFlush class to .cc + + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + + librgw: add API version defines for librgw and rgw_file + + make-dist/ceph.spec.in: Fix srpm build breakage. + + ceph_timer: prefer using directive to typedef + + rgw_file: explain semantics of RGWFileHandle::commit + + compressor: Better arch ifdefs for isal code + + mds/MDSTable: add const to member functions + + os/bluestore: fix some #includes + + vstart.sh: -b for bluestore + + os/bluestore/bluestore_types: make blob_t get_chunk_size const + + os/bluestore: use Blob const and non-const accessors + + os/bluestore: avoid reencoding unchanged blobs + + os/bluestore: decode blobs on demand + + mds/SnapRealm.h: add const to member functions + + os/bluestore/bluefs: avoid check "locked" field for newly created file + + os/bluestore/bluefs: check against locked field during unlink + + os/bluestore/bluefs: assert refs of file don't underflow + + os/kstore: kill dead code + + rgw: remove duplicated calls to getattr + + debian: should dh_python3 python3-* not python-* + + pybind: silence -Wsign-compare warning + + test/ceph_test_msgr: fix -Wsign-compare warnings + + test/unittest_alloc: fix -Wsign-compare warnings + + librbd: API methods to directly acquire and release the exclusive lock + + doc: add graphic for cap bit field + + mds/MDCache.h: remove unneeded access specifier + + librbd: skeleton implementation of client-side image cache + + librbd: blocking parent IO completion no longer required + + librbd: remove use of owner_lock on IO path + + Revert "osdc: ObjectCacher flusher might needs additional locks" + + librbd: support bufferlist payload for AioImageWrite + + librbd: add internal support for scatter/gather IO + + librbd: initial integration of ImageWriteback to AioImageRequest + + librbd: consolidate IO clipping to reusable method + + librbd: differentiate between image and object cache + + librbd: C_ImageCacheRead bridge from Context to AioCompletion + + librbd: integrate image cache hooks into IO path + + common/Throttle.h: remove unneeded class + + cmake: fix the tracing header dependencies + + src/test/bench/CMakeLists.txt: RBD exclude + + src/CMakeLists.txt: RBD|KVS|FUSE exclude + + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + + src/os/CMakeLists.txt: AIO|FUSE exclude + + src/test/CMakeLists.txt: RADOSGW|RBD exclude + + src/test/common/CMakeLists.txt: BLKID exclude + + install-deps.sh: initial distro detection based on /etc/os-release + + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + + ceph_test_objectstore: disable statfs checks on available space + + messages/MOSDMap: mark as enlighten OSDMap encoder + + cmake: remove unused librados_api target + + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + + cmake: let librados_api_obj depend on librados-tp + + os/bluestore: yet another statfs test fix + + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + + doc/release-notes: v0.94.9 + + os/bluestore/bluefs: use map to track dirty files + + os/bluestore/bluefs: update mtime of inode in unified path + + os/bluestore/bluefs: drop redundant eof check for read_random() + + os/CMakeLists.txt: undubble kv.cc usage. + + test,pybind: silence -Wsign-compare warnings + + test/perf_local: fix -Wmaybe-uninitialized warnings + + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + + Allow compressor build without YASM + + script/bdev_grep: update to use hex + + os/bluestore: improve failed csum debug output + + librbd: improve image state machine debug log messages + + librbd: deadlock when replaying journal during image open + + os/bluestore: end scope of std::hex properly + + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + + os/bluestore: use _setattr for SETATTR + + os/bluestore: make object existence check robust + + ceph_test_objectstore: assert umount succeeds + + ceph_test_objectstore: clean up Rename test a bit + + ceph_test_objectstore: fix TryMoveRename test + + os/bluestore: add onode/buffer cache statistics + + os/bluestore: end scope of std::hex properly + + cmake: pass -DINTEL* to gf-complete cflags + + os/bluestore: conditional checking label of bluefs devices + + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + + os/bluestore: don't overwrite type if it does already exist and at desired type + + os/bluestore: trivial cleanups + + os/bluestore: replace store with logger in Cache + + os/bluestore: check iterator before using during fsck + ------------------------------------------------------------------- Mon Aug 29 07:24:44 UTC 2016 - ncutler@suse.com diff --git a/ceph.spec b/ceph.spec index 1ba4254..5241ac9 100644 --- a/ceph.spec +++ b/ceph.spec @@ -13,6 +13,7 @@ # # Please submit bugfixes or comments via http://tracker.ceph.com/ # +%bcond_with cephfs_java %if 0%{?suse_version} %bcond_with ceph_test_package %else @@ -26,15 +27,13 @@ # no gperftools/tcmalloc on s390(x) %bcond_with tcmalloc %endif -%bcond_with lowmem_builder +%bcond_without 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 @@ -45,9 +44,11 @@ # LTTng-UST enabled on Fedora, RHEL 6+, and SLE (not openSUSE) %if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version} %if ! 0%{?is_opensuse} +%ifarch x86_64 aarch64 %bcond_without lttng %endif %endif +%endif %if %{with selinux} # get selinux policy version @@ -66,12 +67,12 @@ # common ################################################################################# Name: ceph -Version: 11.0.0+git.1472455009.a17726c +Version: 12.0.0+git.1489159457.410e200 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 %if 0%{?suse_version} -Group: System/Filesystems +Group: System/Filesystems %endif URL: http://ceph.com/ Source0: %{name}-%{version}.tar.bz2 @@ -80,7 +81,7 @@ Source0: %{name}-%{version}.tar.bz2 %if 0%{?is_opensuse} ExclusiveArch: x86_64 aarch64 ppc64 ppc64le %else -ExclusiveArch: x86_64 aarch64 +ExclusiveArch: x86_64 aarch64 ppc64le s390x %endif %endif ################################################################################# @@ -88,6 +89,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} @@ -99,7 +101,7 @@ BuildRequires: checkpolicy BuildRequires: selinux-policy-devel BuildRequires: /usr/share/selinux/devel/policyhelp %endif -BuildRequires: boost-devel +BuildRequires: bc BuildRequires: cmake BuildRequires: cryptsetup BuildRequires: fuse-devel @@ -108,7 +110,6 @@ BuildRequires: gdbm %if 0%{with tcmalloc} BuildRequires: gperftools-devel %endif -BuildRequires: hdparm BuildRequires: jq BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel @@ -217,11 +218,13 @@ on commodity hardware and delivers object, block and file system storage. ################################################################################# %package base Summary: Ceph Base Package -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif 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 +236,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 @@ -252,13 +250,16 @@ Base is the package that includes all the files shared amongst ceph servers %package -n ceph-common Summary: Ceph Common -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif 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} @@ -274,7 +275,9 @@ Comprised of files that are common to Ceph clients and servers. %package mds Summary: Ceph Metadata Server Daemon -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: ceph-base = %{version}-%{release} %description mds ceph-mds is the metadata server daemon for the Ceph distributed file system. @@ -283,7 +286,9 @@ namespace, coordinating access to the shared OSD cluster. %package mon Summary: Ceph Monitor Daemon -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: ceph-base = %{version}-%{release} # For ceph-rest-api %if 0%{?fedora} || 0%{?rhel} @@ -298,15 +303,33 @@ 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 +%if 0%{?suse_version} +Group: System/Filesystems +%endif +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 +%if 0%{?suse_version} +Group: System/Filesystems +%endif %description fuse FUSE based client for Ceph distributed network file system %package -n rbd-fuse Summary: Ceph fuse-based client -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: librados2 = %{version}-%{release} Requires: librbd1 = %{version}-%{release} %description -n rbd-fuse @@ -314,7 +337,9 @@ FUSE based client to map Ceph rbd images to files %package -n rbd-mirror Summary: Ceph daemon for mirroring RBD images -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: ceph-common = %{version}-%{release} Requires: librados2 = %{version}-%{release} %description -n rbd-mirror @@ -323,7 +348,9 @@ changes asynchronously. %package -n rbd-nbd Summary: Ceph RBD client base on NBD -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: librados2 = %{version}-%{release} Requires: librbd1 = %{version}-%{release} %description -n rbd-nbd @@ -331,7 +358,9 @@ NBD based client to map Ceph rbd images to local device %package radosgw Summary: Rados REST gateway -Group: Development/Libraries +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: ceph-common = %{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{version}-%{release} @@ -350,7 +379,9 @@ service as well as the OpenStack Object Storage ("Swift") API. %if %{with ocf} %package resource-agents Summary: OCF-compliant resource agents for Ceph daemons -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif License: LGPL-2.0 Requires: ceph-base = %{version} Requires: resource-agents @@ -362,7 +393,9 @@ managers such as Pacemaker. %package osd Summary: Ceph Object Storage Daemon -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: ceph-base = %{version}-%{release} # for sgdisk, used by ceph-disk %if 0%{?fedora} || 0%{?rhel} @@ -379,7 +412,9 @@ and providing access to them over the network. %package -n librados2 Summary: RADOS distributed object store client library -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: System/Libraries +%endif License: LGPL-2.0 %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{version}-%{release} @@ -392,7 +427,9 @@ store using a simple file-like interface. %package -n librados-devel Summary: RADOS headers -Group: Development/Libraries +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif License: LGPL-2.0 Requires: librados2 = %{version}-%{release} Obsoletes: ceph-devel < %{version}-%{release} @@ -404,7 +441,9 @@ that use RADOS object store. %package -n librgw2 Summary: RADOS gateway client library -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: System/Libraries +%endif License: LGPL-2.0 Requires: librados2 = %{version}-%{release} %description -n librgw2 @@ -413,7 +452,9 @@ This package provides a library implementation of the RADOS gateway %package -n librgw-devel Summary: RADOS gateway client library -Group: Development/Libraries +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif License: LGPL-2.0 Requires: librados-devel = %{version}-%{release} Requires: librgw2 = %{version}-%{release} @@ -423,9 +464,36 @@ 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 +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif +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 +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif +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 +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif License: LGPL-2.0 Requires: librados2 = %{version}-%{release} Obsoletes: python-ceph < %{version}-%{release} @@ -435,7 +503,9 @@ object store. %package -n python%{python3_pkgversion}-rados Summary: Python 3 libraries for the RADOS object store -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif License: LGPL-2.0 Requires: python%{python3_pkgversion} Requires: librados2 = %{version}-%{release} @@ -445,7 +515,9 @@ object store. %package -n libradosstriper1 Summary: RADOS striping interface -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: System/Libraries +%endif License: LGPL-2.0 Requires: librados2 = %{version}-%{release} %description -n libradosstriper1 @@ -455,7 +527,9 @@ an interface very similar to the rados one. %package -n libradosstriper-devel Summary: RADOS striping interface headers -Group: Development/Libraries +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif License: LGPL-2.0 Requires: libradosstriper1 = %{version}-%{release} Requires: librados-devel = %{version}-%{release} @@ -468,7 +542,9 @@ that use RADOS striping interface. %package -n librbd1 Summary: RADOS block device client library -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: System/Libraries +%endif License: LGPL-2.0 Requires: librados2 = %{version}-%{release} %if 0%{?rhel} || 0%{?fedora} @@ -482,7 +558,9 @@ shared library allowing applications to manage these block devices. %package -n librbd-devel Summary: RADOS block device headers -Group: Development/Libraries +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif License: LGPL-2.0 Requires: librbd1 = %{version}-%{release} Requires: librados-devel = %{version}-%{release} @@ -495,7 +573,9 @@ that use RADOS block device. %package -n python-rbd Summary: Python 2 libraries for the RADOS block device -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif License: LGPL-2.0 Requires: librbd1 = %{version}-%{release} Requires: python-rados = %{version}-%{release} @@ -506,7 +586,9 @@ block device. %package -n python%{python3_pkgversion}-rbd Summary: Python 3 libraries for the RADOS block device -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif License: LGPL-2.0 Requires: librbd1 = %{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{version}-%{release} @@ -514,15 +596,17 @@ 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 +%if 0%{?suse_version} +Group: System/Libraries +%endif License: LGPL-2.0 %if 0%{?rhel} || 0%{?fedora} 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 @@ -530,23 +614,29 @@ POSIX-like interface. %package -n libcephfs-devel Summary: Ceph distributed file system headers -Group: Development/Libraries +%if 0%{?suse_version} +Group: Development/Libraries/C and C++ +%endif 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. %package -n python-cephfs Summary: Python 2 libraries for Ceph distributed file system -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif License: LGPL-2.0 -Requires: libcephfs1 = %{version}-%{release} -Requires: python-rados = %{version}-%{release} +Requires: libcephfs2 = %{version}-%{release} +%if 0%{?suse_version} +Recommends: python-rados = %{version}-%{release} +%endif Obsoletes: python-ceph < %{version}-%{release} %description -n python-cephfs This package contains Python 2 libraries for interacting with Cephs distributed @@ -554,9 +644,11 @@ file system. %package -n python%{python3_pkgversion}-cephfs Summary: Python 3 libraries for Ceph distributed file system -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif 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 @@ -564,7 +656,9 @@ file system. %package -n python%{python3_pkgversion}-ceph-argparse Summary: Python 3 utility libraries for Ceph CLI -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif License: LGPL-2.0 %description -n python%{python3_pkgversion}-ceph-argparse This package contains types and routines for Python 3 used by the Ceph CLI as @@ -575,7 +669,9 @@ descriptions, and submitting the command to the appropriate daemon. %if 0%{with ceph_test_package} %package -n ceph-test Summary: Ceph benchmarks and test tools -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: System/Benchmark +%endif License: LGPL-2.0 Requires: ceph-common Requires: xmlstarlet @@ -587,17 +683,21 @@ This package contains Ceph benchmarks and test tools. %package -n libcephfs_jni1 Summary: Java Native Interface library for CephFS Java bindings -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: System/Libraries +%endif 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. %package -n libcephfs_jni-devel Summary: Development files for CephFS Java Native Interface library -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Libraries/Java +%endif License: LGPL-2.0 Requires: java Requires: libcephfs_jni1 = %{version}-%{release} @@ -610,7 +710,9 @@ library. %package -n cephfs-java Summary: Java libraries for the Ceph File System -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: System/Libraries +%endif License: LGPL-2.0 Requires: java Requires: libcephfs_jni1 = %{version}-%{release} @@ -625,7 +727,9 @@ This package contains the Java libraries for the Ceph File System. %package selinux Summary: SELinux support for Ceph MON, OSD and MDS -Group: System Environment/Base +%if 0%{?suse_version} +Group: System/Filesystems +%endif Requires: ceph-base = %{version}-%{release} Requires: policycoreutils, libselinux-utils Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk @@ -639,24 +743,32 @@ populated file-systems. %package -n python-ceph-compat Summary: Compatibility package for Cephs python libraries -Group: System Environment/Libraries +%if 0%{?suse_version} +Group: Development/Languages/Python +%endif License: LGPL-2.0 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 +790,8 @@ export CPPFLAGS="$java_inc" export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" +env | sort + mkdir build cd build cmake .. \ @@ -688,7 +802,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 +879,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 +915,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 +946,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 +1100,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 +1162,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 +1268,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 +1343,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 +1453,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 @@ -1311,6 +1463,8 @@ fi %files -n librados2 %defattr(-,root,root,-) %{_libdir}/librados.so.* +%dir %{_libdir}/ceph +%{_libdir}/ceph/libceph-common.so* %if %{with lttng} %{_libdir}/librados_tp.so.* %endif @@ -1326,6 +1480,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 +1558,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 +1578,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 @@ -1597,3 +1763,4 @@ exit 0 %changelog +# nospeccleaner 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..e4a2111 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -169,8 +169,11 @@ function transform_spec_file { "Source0:"*) line=`echo $line | sed 's/%{name}/ceph/g'` ;; + "ExclusiveArch:"*) + line=`echo $line | sed 's/s390\S*//g'` + ;; "%autosetup -p1") - line="$line -n ceph-%version" + line="%autosetup -p1 -n ceph-%version" ;; "Requires:"*) if [[ $in_package == false ]]; then @@ -284,5 +287,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