latest versions of ceph can be compiled without "radosgw" please remove radosgw from REQUIRED_USE following dependences should probably be optional or conditional as well: dev-python/sphinx sys-block/parted sys-fs/cryptsetup sys-apps/gptfdisk dev-python/flask[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] Reproducible: Always Steps to Reproduce: 1. merge ceph ebuild 2. 3. Actual Results: radosgw USE flag strictly required Expected Results: radosgw USE flag is optional
In testing ceph 12.2.2, trying to build with USE="-radosgw" results in this: /usr/bin/x86_64-pc-linux-gnu-g++ -O2 -march=native -pipe -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -Wno-unknown-pragmas -rdynamic -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -Wl,-O1 -Wl,--as-needed -pie CMakeFiles/ceph-dencoder.dir/test/encoding/ceph_dencoder.cc.o CMakeFiles/common_texttable_obj.dir/common/TextTable.cc.o -o ../bin/ceph-dencoder -Wl,-rpath,/var/tmp/portage/sys-cluster/ceph-12.2.2/work/ceph-12.2.2_build/lib: ../lib/libglobal.a ../lib/libos.a ../lib/libosd.a ../lib/libmds.a ../lib/libmon.a ../lib/libjournal.a ../lib/libcls_rbd_client.a ../lib/librbd_mirror_types.a ../lib/librbd_types.a ../lib/librbd_replay_types.a ../lib/libkrbd.a ../lib/libcls_lock_client.a ../lib/libcls_refcount_client.a ../lib/libcls_log_client.a ../lib/libcls_statelog_client.a ../lib/libcls_version_client.a ../lib/libcls_replica_log_client.a ../lib/libcls_user_client.a ../lib/libcls_journal_client.a ../lib/libcls_timeindex_client.a -lrt -ldl -lresolv -ldl ../lib/libceph-common.so.0 -lrt -lresolv ../lib/libjson_spirit.a ../lib/libcommon_utf8.a ../lib/liberasure_code.a /usr/lib/libboost_thread-mt.so /usr/lib/libboost_chrono-mt.so /usr/lib/libboost_atomic-mt.so /usr/lib/libboost_random-mt.so /usr/lib/libboost_system-mt.so /usr/lib/libboost_program_options-mt.so /usr/lib/libboost_date_time-mt.so /usr/lib/libboost_iostreams-mt.so /usr/lib/libboost_regex-mt.so -lblkid -lcryptopp -lpthread -laio -lfuse ../lib/libkv.a rocksdb/librocksdb.a -lsnappy -lz -lbz2 -llz4 -ldl -lleveldb ../lib/libdmclock.a ../lib/libosdc.a ../lib/liblua.a -lm -ldl -ltcmalloc -lkeyutils -ludev ../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::SnapEventBase::encode(ceph::buffer::list&) const': Types.cc:(.text+0x2d8b): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::encode(ceph::buffer::list&) const' ../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::SnapEventBase::dump(ceph::Formatter*) const': Types.cc:(.text+0x337b): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::dump(ceph::Formatter*) const' ../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::MirrorPeerSyncPoint::encode(ceph::buffer::list&) const': Types.cc:(.text+0x3534): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::encode(ceph::buffer::list&) const' ../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::MirrorPeerSyncPoint::dump(ceph::Formatter*) const': Types.cc:(.text+0x3b26): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::dump(ceph::Formatter*) const' ../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::MirrorPeerSyncPoint::decode(unsigned char, ceph::buffer::list::iterator&)': Types.cc:(.text+0x3dd1): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)' ../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::SnapEventBase::decode(unsigned char, ceph::buffer::list::iterator&)': Types.cc:(.text+0x4054): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)' ../lib/librbd_types.a(Types.cc.o): In function `librbd::journal::SnapCreateEvent::decode(unsigned char, ceph::buffer::list::iterator&)': Types.cc:(.text+0x424c): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)' ../lib/librbd_types.a(Types.cc.o): In function `librbd::mirroring_watcher::ImageUpdatedPayload::dump(ceph::Formatter*) const': Types.cc:(.text+0x386): undefined reference to `cls::rbd::operator<<(std::ostream&, cls::rbd::MirrorImageState const&)' ../lib/librbd_types.a(Types.cc.o): In function `librbd::mirroring_watcher::ModeUpdatedPayload::dump(ceph::Formatter*) const': Types.cc:(.text+0x1cf): undefined reference to `cls::rbd::operator<<(std::ostream&, cls::rbd::MirrorMode const&)' ../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `librbd::watch_notify::SnapPayloadBase::encode(ceph::buffer::list&) const': WatchNotifyTypes.cc:(.text+0x1358): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::encode(ceph::buffer::list&) const' ../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `librbd::watch_notify::SnapPayloadBase::dump(ceph::Formatter*) const': WatchNotifyTypes.cc:(.text+0x1918): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::dump(ceph::Formatter*) const' ../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `librbd::watch_notify::SnapPayloadBase::decode(unsigned char, ceph::buffer::list::iterator&)': WatchNotifyTypes.cc:(.text+0x1a9c): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)' ../lib/librbd_types.a(WatchNotifyTypes.cc.o): In function `librbd::watch_notify::SnapCreatePayload::decode(unsigned char, ceph::buffer::list::iterator&)': WatchNotifyTypes.cc:(.text+0x1dc4): undefined reference to `cls::rbd::SnapshotNamespaceOnDisk::decode(ceph::buffer::list::iterator&)' collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/ceph-dencoder.dir/build.make:149: bin/ceph-dencoder] Error 1 make[2]: Leaving directory '/var/tmp/portage/sys-cluster/ceph-12.2.2/work/ceph-12.2.2_build' make[1]: *** [CMakeFiles/Makefile2:1307: src/CMakeFiles/ceph-dencoder.dir/all] Error 2 make[1]: Leaving directory '/var/tmp/portage/sys-cluster/ceph-12.2.2/work/ceph-12.2.2_build' make: *** [Makefile:141: all] Error 2
looks like 12.2.2 brings regression, reported to upstream: http://tracker.ceph.com/issues/22321
there is a trivial patch: https://github.com/ceph/ceph/pull/19343/commits/b00ac12f4045cd39ac9a436cf32d233d16bc3485
This is fixed in ceph-12.2.2