diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2019-03-12 19:55:42 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2019-03-12 19:56:01 +0000 |
commit | f07a49721b1899daf3946af4168524cdabfc61ce (patch) | |
tree | 779ab7519a0b8e8814b0188cf22a39b4515e5eff /testing/ceph | |
parent | badb79b87ca2e6f70e31dfdcb9004160ee5f65af (diff) | |
download | aports-f07a49721b1899daf3946af4168524cdabfc61ce.tar.bz2 aports-f07a49721b1899daf3946af4168524cdabfc61ce.tar.xz |
testing/ceph: upgrade to 14.1.0
Diffstat (limited to 'testing/ceph')
-rw-r--r-- | testing/ceph/APKBUILD | 288 | ||||
-rw-r--r-- | testing/ceph/boost-1.67.patch | 164 | ||||
-rw-r--r-- | testing/ceph/boost-python.patch | 26 | ||||
-rw-r--r-- | testing/ceph/make-sure-PATH_MAX-is-defined.patch | 19 | ||||
-rw-r--r-- | testing/ceph/musl-fixes.patch | 229 |
5 files changed, 349 insertions, 377 deletions
diff --git a/testing/ceph/APKBUILD b/testing/ceph/APKBUILD index 4e55fa287c..74d5f9e764 100644 --- a/testing/ceph/APKBUILD +++ b/testing/ceph/APKBUILD @@ -1,7 +1,7 @@ # Contributor: John Coyle <dx9err@gmail.com> # Maintainer: John Coyle <dx9err@gmail.com> pkgname=ceph -pkgver=11.1.1 +pkgver=14.1.0 pkgrel=0 pkgdesc="Ceph is a distributed object store and file system" pkgusers="ceph" @@ -11,6 +11,17 @@ arch="x86_64" 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" depends="ceph-osd ceph-mds ceph-mon" options="!checkroot" +_base_deps=" + cryptsetup + e2fsprogs + logrotate + parted + py2-requests py2-setuptools + util-linux + xfsprogs + " +_osd_deps="lvm2 sudo" +_ceph_test_deps="xmlstarlet" makedepends=" acl-dev argp-standalone @@ -20,8 +31,9 @@ makedepends=" bzip2-dev cmake coreutils - cryptsetup + cunit-dev curl-dev + cython cython-dev diffutils eudev-dev @@ -44,57 +56,53 @@ makedepends=" libxml2-dev linux-headers lvm2-dev + lz4-dev nss-dev openldap-dev - parted procps - python-dev - py-pip - py-nose + python2-dev + py2-pip + py2-nose py-sphinx - py-virtualenv + py2-virtualenv + rabbitmq-c-dev readline-dev rpcgen snappy-dev userspace-rcu-dev - util-linux xfsprogs-dev xmlstarlet yasm + $_base_deps + $_osd_deps + $_ceph_test_deps " source="http://download.ceph.com/tarballs/ceph_$pkgver.orig.tar.gz - boost-python.patch - boost-1.67.patch - allperms.patch" + allperms.patch + musl-fixes.patch + " subpackages=" + $pkgname-doc $pkgname-base $pkgname-common $pkgname-mds $pkgname-mgr $pkgname-mon $pkgname-fuse:ceph_fuse - $pkgname-radosgw $pkgname-osd - $pkgname-doc $pkgname-bash-completion:bash_completion + $pkgname-dev rbd-fuse:rbd_fuse rbd-mirror:rbd_mirror rbd-nbd:rbd_nbd librbd - librbd-dev:librbd_dev libcephfs - libcephfs-dev:libcephfs_dev librados - librados-dev:librados_dev - librgw - librgw-dev:librgw_dev - py-rados:py_rados - py-rgw:py_rgw + py2-rados:_py2_rados libradosstriper - libradosstriper-dev:libradosstriper_dev - py-rbd:py_rbd - py-cephfs:py_cephfs + py2-rbd:_py2_rbd + py2-cephfs:_py2_cephfs " _ceph_uid=167 @@ -113,7 +121,10 @@ _sbindir=/usr/sbin _sysconfdir=/etc _udevrulesdir=/etc/udev/rules.d -_python_sitelib=/usr/lib/python2.7/site-packages + +_py2_sitelib() { + python2 -c "import site; print(site.getsitepackages()[0])" +} build() { export CEPH_BUILD_VIRTUALENV="$builddir" @@ -132,10 +143,17 @@ build() { -DWITH_REENTRANT_STRSIGNAL=ON \ -DWITH_THREAD_SAFE_RES_QUERY=ON \ -DWITH_MANPAGE=ON \ + -DWITH_SYSTEM_BOOST=ON \ + -DWITH_PYTHON2=ON \ -DWITH_PYTHON3=OFF \ + -DMGR_PYTHON_VERSION=2 \ -DWITH_LTTNG=OFF \ - -DWITH_SYSTEM_BOOST=ON \ + -DWITH_RDMA=OFF \ + -DWITH_RADOSGW=OFF \ + -DWITH_BABELTRACE=OFF \ + -DWITH_SYSTEMD=OFF \ -DWITH_EMBEDDED=OFF \ + -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ -DWITH_TESTS=OFF make @@ -149,18 +167,15 @@ package() { rm -f "$pkgdir"$_sysconfdir/init.d/ceph install -m 0644 -D src/etc-rbdmap "$pkgdir"$_sysconfdir/ceph/rbdmap - install -m 0644 -D src/logrotate.conf "$pkgdir"$_sysconfdir/logrotate.d/ceph - + install -m 0644 -D etc/sysctl/90-ceph-osd.conf "$pkgdir"/$_sysconfdir/sysctl.d/90-ceph-osd.conf chmod 0644 "$pkgdir"$_docdir/ceph/sample.ceph.conf - chmod 0644 "$pkgdir"$_docdir/ceph/sample.fetch_config # udev rules install -m 0644 -D udev/50-rbd.rules "$pkgdir"$_udevrulesdir/50-rbd.rules - install -m 0644 -D udev/60-ceph-by-parttypeuuid.rules \ - "$pkgdir"$_udevrulesdir/60-ceph-by-parttypeuuid.rules - install -m 0644 -D udev/95-ceph-osd.rules \ - "$pkgdir"$_udevrulesdir/95-ceph-osd.rules + + # sudoers.d + install -m 0600 -D sudoers.d/ceph-osd-smartctl "$pkgdir"/$_sysconfdir/sudoers.d/ceph-osd-smartctl } check() { @@ -170,30 +185,32 @@ check() { base() { pkgdesc="Base is the package that includes all the files shared amongst ceph servers" - depends=" - ceph-common - cryptsetup - librbd - librados - libcephfs - librgw - logrotate - py-requests - py-setuptools - util-linux - xfsprogs + depends="$_base_deps + ceph-common=$pkgver-r$pkgrel + librbd=$pkgver-r$pkgrel + librados=$pkgver-r$pkgrel + libcephfs=$pkgver-r$pkgrel " - _pkg $_docdir/ceph sample.ceph.conf sample.fetch_config - _pkg $_bindir crushtool monmaptool osdmaptool ceph-run ceph-detect-init - _pkg $_sbindir ceph-create-keys mount.ceph + _pkg $_bindir \ + ceph-crash \ + crushtool \ + monmaptool \ + osdmaptool \ + ceph-kvstore-tool \ + ceph-run + _pkg $_sbindir ceph-create-keys _pkg $_libexecdir/ceph ceph_common.sh - _pkg $_libdir/rados-classes *.so* - _pkg $_libdir/ceph/erasure-code libec_*.so* - _pkg $_libdir/ceph/compressor libceph_*.so* + _pkg $_libdir/rados-classes '*.so*' + _pkg $_libdir/ceph/erasure-code 'libec_*.so*' + _pkg $_libdir/ceph/compressor 'libceph_*.so*' + _pkg $_libdir/ceph/crypto 'libceph_*.so*' _pkg $_sysconfdir/logrotate.d ceph - _pkg $_python_sitelib ceph_detect_init* ceph_disk* - for dir in tmp bootstrap-osd bootstrap-mds bootstrap-rgw; do + _pkg "$(_py2_sitelib)" ceph_volume 'ceph_volume-*' + for dir in crash crash/posted tmp bootstrap-osd bootstrap-mds \ + bootstrap-rgw bootstrap-mgr bootstrap-rbd \ + bootstrap-rbd-mirror; do + install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"$_localstatedir/lib/ceph/$dir done @@ -201,7 +218,7 @@ base() { common() { pkgdesc="Common utilities to mount and interact with a ceph storage cluster." - depends="py-rados py-rbd py-cephfs" + depends="py2-rados py2-rbd py2-cephfs" install="$pkgname-common.pre-install" _pkg $_bindir ceph \ @@ -210,7 +227,6 @@ common() { ceph-dencoder \ ceph-rbdnamer \ ceph-syn \ - ceph-crush-location \ cephfs-data-scan \ cephfs-journal-tool \ cephfs-table-tool \ @@ -219,12 +235,15 @@ common() { rbd-replay \ rbd-replay-many \ rbdmap \ - ceph-post-file \ - ceph-brag - _pkg $_datadir/ceph known_hosts_drop.ceph.com id_rsa_drop.ceph.com \ + ceph-post-file + _pkg $_sbindir mount.ceph + _pkg $_datadir/ceph known_hosts_drop.ceph.com \ + id_rsa_drop.ceph.com \ id_rsa_drop.ceph.com.pub _pkg $_sysconfdir/ceph rbdmap - _pkg $_python_sitelib ceph_argparse.py* ceph_daemon.py* + + _pkg "$(_py2_sitelib)" ceph_argparse.py* ceph_daemon.py* + _pkg $_udevrulesdir 50-rbd.rules install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"$_localstatedir/log/ceph @@ -245,174 +264,104 @@ mon() { pkgdesc="Cluster monitor daemon for the Ceph distributed file system." depends="ceph-base" - _pkg $_bindir ceph-mon ceph-rest-api - _pkg $_python_sitelib ceph_rest_api.py* + _pkg $_bindir ceph-mon \ + ceph-monstore-tool install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"$_localstatedir/lib/ceph/mon } ceph_fuse() { pkgdesc="FUSE based client for Ceph distributed network file system." - + depends= _pkg $_bindir ceph-fuse _pkg $_sbindir mount.fuse.ceph } rbd_fuse() { pkgdesc="FUSE based client to map Ceph rbd images to files." - depends="librados librbd" - + depends= _pkg $_bindir rbd-fuse } rbd_mirror() { pkgdesc="Daemon for mirroring RBD images between Ceph clusters." - depends="ceph-common librados" - + depends="ceph-common=$pkgver-r$pkgrel" _pkg $_bindir rbd-mirror } rbd_nbd() { pkgdesc="NBD based client to map Ceph rbd images to local device." - depends="librbd librados" - + depends= _pkg $_bindir rbd-nbd } -radosgw() { - pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs." - depends="ceph-common" - - _pkg $_bindir radosgw radosgw-admin radosgw-token radosgw-object-expirer - mkdir -p "$subpkgdir"$_localstatedir/lib/ceph/radosgw -} - osd() { pkgdesc="Object storage daemon for the Ceph distributed file system." - depends="ceph-base parted gptfdisk" + depends="$pkgname-base=$pkgver-r$pkgrel $_osd_deps" - _pkg $_bindir ceph-clsinfo ceph-bluefs-tool ceph-objectstore-tool ceph-osd - _pkg $_sbindir ceph-disk ceph-disk-udev + _pkg $_bindir ceph-clsinfo \ + ceph-bluestore-tool \ + ceph-objectstore-tool \ + ceph-osdomap-tool \ + ceph-osd + _pkg $_sbindir ceph-volume ceph-volume-systemd _pkg $_libexecdir/ceph ceph-osd-prestart.sh - _pkg $_udevrulesdir 60-ceph-by-parttypeuuid.rules 95-ceph-osd.rules + _pkg $_sysconfdir/sudoers.d ceph-osd-smartctl + _pkg $_sysconfdir/sysctl.d 90-ceph-osd.conf install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"$_localstatedir/lib/ceph/osd } librados() { pkgdesc="RADOS distributed object store client library" - + depends= _pkg $_libdir librados.so.* + _pkg $_libdir/ceph libceph-common.so.* } -librados_dev() { - pkgdesc="RADOS distributed object store client library headers" - depends="librados" - - _pkg $_includedir/rados librados.h \ - librados.hpp \ - buffer.h \ - buffer_fwd.h \ - inline_memory.h \ - page.h \ - crc32c.h \ - rados_types.h \ - rados_types.hpp \ - memory.h - _pkg $_libdir librados.so - _pkg $_bindir librados-config -} - -librgw() { - pkgdesc="RADOS gateway client library" - depends="librados" - - _pkg $_libdir librgw.so.* -} - -librgw_dev() { - pkgdesc="RADOS gateway client library headers" - depends="librados" - - _pkg $_includedir/rados librgw.h rgw_file.h - _pkg $_libdir librgw.so -} - -py_rgw() { - pkgdesc="Python 2 libraries for the RADOS gateway" - depends="librgw py-rados" - - _pkg $_python_sitelib rgw.so rgw-*.egg-info -} - -py_rados() { +_py2_rados() { pkgdesc="Python libraries for the RADOS object store" - depends="librados" + depends= - _pkg $_python_sitelib rados.so rados-*.egg-info + _pkg "$(_py2_sitelib)" rados.so rados-*.egg-info } libradosstriper() { pkgdesc="RADOS striping library" - depends="librados" + depends= _pkg $_libdir libradosstriper.so.* } -libradosstriper_dev() { - pkgdesc="RADOS striping library headers" - depends="libradosstriper librados-dev" - - _pkg $_includedir/radosstriper libradosstriper.h libradosstriper.hpp - _pkg $_libdir libradosstriper.so -} - librbd() { pkgdesc="RADOS block device client library" - depends="librados" - + depends= _pkg $_libdir librbd.so.* } -librbd_dev() { - pkgdesc="RADOS block device client library headers" - depends="librbd librados-dev" - - _pkg $_includedir/rbd features.h librbd.h librbd.hpp - _pkg $_libdir librbd.so -} - -py_rbd() { +_py2_rbd() { pkgdesc="Python libraries for the RADOS block device" - depends="librbd py-rados" + depends="py2-rados" - _pkg $_python_sitelib rbd.so rbd-*.egg-info + _pkg "$(_py2_sitelib)" rbd.so rbd-*.egg-info } libcephfs() { pkgdesc="Ceph distributed file system client library" - + depends= _pkg $_libdir libcephfs.so.* } -libcephfs_dev() { - pkgdesc="Ceph distributed file system client library headers" - depends="libcephfs librados-devel" - - _pkg $_includedir/cephfs ceph_statx.h libcephfs.h - _pkg $_libdir libcephfs.so -} - -py_cephfs() { +_py2_cephfs() { pkgdesc="Python libraries for Ceph distributed file system" - depends="libcephfs py-rados" + depends="py2-rados" - _pkg $_python_sitelib cephfs.so cephfs-*.egg-info ceph_volume_client.py* + _pkg "$(_py2_sitelib)" cephfs.so cephfs-*.egg-info ceph_volume_client.py* } ceph_test() { pkgdesc="Ceph benchmarks and test tools" - depends="ceph-common xmlstarlet" + depends="ceph-common=$pkgver-r$pkgrel $_ceph_test_deps" _pkg $_bindir ceph-client-debug \ ceph_bench_log \ @@ -449,17 +398,18 @@ ceph_test() { } bash_completion() { - depends="bash-completion" pkgdesc="Bash completions for Ceph" - _pkg $_sysconfdir/bash_completion.d ceph rados radosgw-admin rbd + depends= + install_if="ceph=$pkgver-r$pkgrel bash-completion" + _pkg $_sysconfdir/bash_completion.d '*' } mgr() { pkgdesc="Ceph Manager Daemon" - depends="ceph-base" + depends="ceph-base=$pkgver-r$pkgrel" _pkg $_bindir ceph-mgr - _pkg $_libdir/ceph mgr + _pkg $_datadir/ceph mgr install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"$_localstatedir/lib/ceph/mgr @@ -468,14 +418,16 @@ mgr() { _pkg() { local path=$1 shift - local files=$@ + if ! [ -d "$pkgdir"/$path ]; then + error "$pkgdir/$path is not a directory" + return 1 + fi mkdir -p "$subpkgdir"$path - for _file in $files; do + for _file in "$@"; do mv "$pkgdir"$path/$_file "$subpkgdir"$path done } -sha512sums="9c1c6d211bfc1e5f59e3f0115c09c7f2d8a279eda6ac9ad4b5d3533fe7c6a43d983b20a60a2597fa1340bc94521fb44125c276f18ae9870bc08ff0b02d842a1d ceph_11.1.1.orig.tar.gz -f75b359eb35f0eb7314ed5d05c118aea8894469edb67437189c0cdeadbf28b7ec5c937d8a08da2783871e09014aab7ad039ddf7d0d18148deec10a7407389b0e boost-python.patch -56ad2fa4433ffcb1d672762646d0dead5c8d73bf1d2770e01f1ca144b83140348d3e2020476017b0b785cf47cdb5242f0ed1ad30fe81eb5ea5fbb5ec2a799f0d boost-1.67.patch -e1becd813ed3f28e2e4a6bef78b3b5117c1c0bb9cabe0ba9c912e0a20b551b6b2667495cddb94acd64192e287144911ff1c11e0d636fe04cc458146cfb0daca8 allperms.patch" +sha512sums="902eb4b0b56f864eace3aaf5684b113a05875f7a8d081b45801a73cd883b35b60bcff5f7580727672839e2e68abe1bd0b73e2be4ca44ccde162cd1ce679ab313 ceph_14.1.0.orig.tar.gz +e1becd813ed3f28e2e4a6bef78b3b5117c1c0bb9cabe0ba9c912e0a20b551b6b2667495cddb94acd64192e287144911ff1c11e0d636fe04cc458146cfb0daca8 allperms.patch +35722b11ad52a3145153635b6a96abda2a23ae9c7e63e2eac006c1e5b8014452c4a1a11bbe0292fd731e4c43aa38e27dd75d2ff9d25bcf52290278f71e868570 musl-fixes.patch" diff --git a/testing/ceph/boost-1.67.patch b/testing/ceph/boost-1.67.patch deleted file mode 100644 index ea342ca675..0000000000 --- a/testing/ceph/boost-1.67.patch +++ /dev/null @@ -1,164 +0,0 @@ -diff --git a/src/rbd_replay/Replayer.cc b/src/rbd_replay/Replayer.cc -index ea0f9a0..8d15378 100644 ---- a/src/rbd_replay/Replayer.cc -+++ b/src/rbd_replay/Replayer.cc -@@ -339,7 +339,7 @@ void Replayer::wait_for_actions(const action::Dependencies &deps) { - dout(DEPGRAPH_LEVEL) << "Finished waiting for " << dep.id << " after " << micros << " microseconds" << dendl; - // Apparently the nanoseconds constructor is optional: - // http://www.boost.org/doc/libs/1_46_0/doc/html/date_time/details.html#compile_options -- boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(dep.time_delta * m_latency_multiplier / 1000)); -+ boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(long(dep.time_delta * m_latency_multiplier / 1000))); - if (sub_release_time > release_time) { - release_time = sub_release_time; - } -diff --git a/src/test/librbd/test_mock_Journal.cc b/src/test/librbd/test_mock_Journal.cc -index ced44da..82926dc 100644 ---- a/src/test/librbd/test_mock_Journal.cc -+++ b/src/test/librbd/test_mock_Journal.cc -@@ -465,7 +465,7 @@ public: - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - - MockJournalReplay mock_journal_replay; - expect_stop_replay(mock_journaler); -@@ -513,7 +513,7 @@ TEST_F(TestMockJournal, StateTransitions) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_ready, _1)); -+ std::bind(&invoke_replay_ready, std::placeholders::_1)); - - ::journal::MockReplayEntry mock_replay_entry; - MockJournalReplay mock_journal_replay; -@@ -522,11 +522,11 @@ TEST_F(TestMockJournal, StateTransitions) { - expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); - expect_replay_process(mock_journal_replay); - expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, -- std::bind(&invoke_replay_ready, _1)); -+ std::bind(&invoke_replay_ready, std::placeholders::_1)); - expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); - expect_replay_process(mock_journal_replay); - expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - - expect_stop_replay(mock_journaler); - expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); -@@ -582,7 +582,7 @@ TEST_F(TestMockJournal, ReplayCompleteError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_complete, _1, -EINVAL)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, -EINVAL)); - - MockJournalReplay mock_journal_replay; - expect_stop_replay(mock_journaler); -@@ -596,7 +596,7 @@ TEST_F(TestMockJournal, ReplayCompleteError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - - expect_stop_replay(mock_journaler); - expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); -@@ -628,14 +628,14 @@ TEST_F(TestMockJournal, FlushReplayError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_ready, _1)); -+ std::bind(&invoke_replay_ready, std::placeholders::_1)); - - ::journal::MockReplayEntry mock_replay_entry; - MockJournalReplay mock_journal_replay; - expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); - expect_replay_process(mock_journal_replay); - expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - expect_stop_replay(mock_journaler); - expect_shut_down_replay(mock_image_ctx, mock_journal_replay, -EINVAL); - expect_shut_down_journaler(mock_journaler); -@@ -647,7 +647,7 @@ TEST_F(TestMockJournal, FlushReplayError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - - expect_stop_replay(mock_journaler); - expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); -@@ -679,7 +679,7 @@ TEST_F(TestMockJournal, CorruptEntry) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_ready, _1)); -+ std::bind(&invoke_replay_ready, std::placeholders::_1)); - - ::journal::MockReplayEntry mock_replay_entry; - MockJournalReplay mock_journal_replay; -@@ -696,7 +696,7 @@ TEST_F(TestMockJournal, CorruptEntry) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - expect_stop_replay(mock_journaler); - expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); - expect_start_append(mock_journaler); -@@ -727,7 +727,7 @@ TEST_F(TestMockJournal, StopError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - - MockJournalReplay mock_journal_replay; - expect_stop_replay(mock_journaler); -@@ -760,7 +760,7 @@ TEST_F(TestMockJournal, ReplayOnDiskPreFlushError) { - - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_ready, _1)); -+ std::bind(&invoke_replay_ready, std::placeholders::_1)); - - ::journal::MockReplayEntry mock_replay_entry; - MockJournalReplay mock_journal_replay; -@@ -786,7 +786,7 @@ TEST_F(TestMockJournal, ReplayOnDiskPreFlushError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, { -- std::bind(&invoke_replay_complete, _1, 0) -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0) - }); - - expect_stop_replay(mock_journaler); -@@ -840,14 +840,14 @@ TEST_F(TestMockJournal, ReplayOnDiskPostFlushError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_ready, _1)); -+ std::bind(&invoke_replay_ready, std::placeholders::_1)); - - ::journal::MockReplayEntry mock_replay_entry; - MockJournalReplay mock_journal_replay; - expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); - expect_replay_process(mock_journal_replay); - expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - expect_stop_replay(mock_journaler); - - Context *on_flush = nullptr; -@@ -863,7 +863,7 @@ TEST_F(TestMockJournal, ReplayOnDiskPostFlushError) { - expect_get_max_append_size(mock_journaler, 1 << 16); - expect_start_replay( - mock_image_ctx, mock_journaler, -- std::bind(&invoke_replay_complete, _1, 0)); -+ std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); - - expect_stop_replay(mock_journaler); - expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); diff --git a/testing/ceph/boost-python.patch b/testing/ceph/boost-python.patch deleted file mode 100644 index 77a4402da4..0000000000 --- a/testing/ceph/boost-python.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ebccbee..f9240f1 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -465,7 +465,7 @@ set(Boost_USE_MULTITHREADED ON) - set(BOOST_COMPONENTS - thread system regex random program_options date_time iostreams) - if(WITH_MGR) -- list(APPEND BOOST_COMPONENTS python) -+ list(APPEND BOOST_COMPONENTS python27) - endif() - - # require minimally the bundled version -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 93963cf..15df5ad 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -596,7 +596,7 @@ if (WITH_MGR) - $<TARGET_OBJECTS:heap_profiler_objs>) - target_include_directories(ceph-mgr PRIVATE "${PYTHON_INCLUDE_DIRS}") - target_link_libraries(ceph-mgr mds osdc global -- -lboost_python ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) -+ -lboost_python27 ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) - install(TARGETS ceph-mgr DESTINATION bin) - endif (WITH_MGR) - diff --git a/testing/ceph/make-sure-PATH_MAX-is-defined.patch b/testing/ceph/make-sure-PATH_MAX-is-defined.patch deleted file mode 100644 index 0726359899..0000000000 --- a/testing/ceph/make-sure-PATH_MAX-is-defined.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 972c34465d1f78cc2e2ebe53192905d378c1541e Mon Sep 17 00:00:00 2001 -From: Roberto Oliveira <robertoguimaraes8@gmail.com> -Date: Sun, 29 Oct 2017 14:05:48 +0000 -Subject: [PATCH] rbd-fuse: make sure PATH_MAX is defined - -On systems without glibc, as Alpine Linux, you might lack definition of -PATH_MAX. This patch adds the limits.h header to solve this issue. - -Signed-off-by: Roberto Oliveira <robertoguimaraes8@gmail.com> ---- a/src/rbd_fuse/rbd-fuse.cc -+++ b/src/rbd_fuse/rbd-fuse.cc -@@ -19,6 +19,7 @@ - #include <getopt.h> - #include <assert.h> - #include <string> -+#include <limits.h> - - #if defined(__FreeBSD__) - #include <sys/param.h> diff --git a/testing/ceph/musl-fixes.patch b/testing/ceph/musl-fixes.patch new file mode 100644 index 0000000000..6e50e6ba5b --- /dev/null +++ b/testing/ceph/musl-fixes.patch @@ -0,0 +1,229 @@ +diff --git a/src/common/secret.c b/src/common/secret.c +index b6f26ec3..1b4531f8 100644 +--- a/src/common/secret.c ++++ b/src/common/secret.c +@@ -63,9 +63,18 @@ int set_kernel_secret(const char *secret, const char *key_name) + + ret = ceph_unarmor(payload, payload+sizeof(payload), secret, secret+secret_len); + if (ret < 0) { +- char error_buf[80]; +- fprintf(stderr, "secret is not valid base64: %s.\n", +- strerror_r(-ret, error_buf, sizeof(error_buf))); ++ char error_buf[80] = "unkown error"; ++ char *p; ++#if defined(__GLIBC__) ++ p = strerror_r(-ret, error_buf, sizeof(error_buf)); ++#else ++ if (strerror_r(-ret, error_buf, sizeof(error_buf)) < 0) { ++ p = "unkown error"; ++ } else { ++ p = error_buf; ++ } ++#endif ++ fprintf(stderr, "secret is not valid base64: %s.\n", p); + return ret; + } + +diff --git a/src/dmclock/src/dmclock_util.cc b/src/dmclock/src/dmclock_util.cc +index e8046cdc..aa9000bc 100644 +--- a/src/dmclock/src/dmclock_util.cc ++++ b/src/dmclock/src/dmclock_util.cc +@@ -21,7 +21,7 @@ + #include "dmclock_util.h" + + +-std::string crimson::dmclock::format_time(const Time& time, uint modulo) { ++std::string crimson::dmclock::format_time(const Time& time, unsigned int modulo) { + long subtract = long(time / modulo) * modulo; + std::stringstream ss; + ss << std::fixed << std::setprecision(4) << (time - subtract); +diff --git a/src/dmclock/src/dmclock_util.h b/src/dmclock/src/dmclock_util.h +index d3fd3f19..ee8b6c3a 100644 +--- a/src/dmclock/src/dmclock_util.h ++++ b/src/dmclock/src/dmclock_util.h +@@ -52,7 +52,7 @@ namespace crimson { + #endif + } + +- std::string format_time(const Time& time, uint modulo = 1000); ++ std::string format_time(const Time& time, unsigned int modulo = 1000); + + void debugger(); + +diff --git a/src/seastar/dpdk/config/common_base b/src/seastar/dpdk/config/common_base +index 8907bea3..6d3f7577 100644 +--- a/src/seastar/dpdk/config/common_base ++++ b/src/seastar/dpdk/config/common_base +@@ -96,7 +96,7 @@ CONFIG_RTE_MAX_TAILQ=32 + CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO + CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO + CONFIG_RTE_LOG_HISTORY=256 +-CONFIG_RTE_BACKTRACE=y ++CONFIG_RTE_BACKTRACE=n + CONFIG_RTE_LIBEAL_USE_HPET=n + CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n + CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n +diff --git a/src/spdk/dpdk/config/common_base b/src/spdk/dpdk/config/common_base +index d5fbb3a4..d9561545 100644 +--- a/src/spdk/dpdk/config/common_base ++++ b/src/spdk/dpdk/config/common_base +@@ -80,7 +80,7 @@ CONFIG_RTE_MAX_TAILQ=32 + CONFIG_RTE_ENABLE_ASSERT=n + CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO + CONFIG_RTE_LOG_HISTORY=256 +-CONFIG_RTE_BACKTRACE=y ++CONFIG_RTE_BACKTRACE=n + CONFIG_RTE_LIBEAL_USE_HPET=n + CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n + CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n +diff --git a/src/spdk/dpdk/config/rte_config.h b/src/spdk/dpdk/config/rte_config.h +index a8e47977..7599bd39 100644 +--- a/src/spdk/dpdk/config/rte_config.h ++++ b/src/spdk/dpdk/config/rte_config.h +@@ -30,7 +30,7 @@ + #define RTE_MAX_MEMZONE 2560 + #define RTE_MAX_TAILQ 32 + #define RTE_LOG_DP_LEVEL RTE_LOG_INFO +-#define RTE_BACKTRACE 1 ++//#define RTE_BACKTRACE 1 + #define RTE_EAL_VFIO 1 + #define RTE_MAX_VFIO_CONTAINERS 64 + +diff --git a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c +index a7c14421..aff241e8 100644 +--- a/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c ++++ b/src/spdk/dpdk/drivers/bus/pci/linux/pci_uio.c +@@ -14,6 +14,32 @@ + + #if defined(RTE_ARCH_X86) + #include <sys/io.h> ++#if defined(__GLIBC__) ++#define pci_uio_outl_p outl_p ++#define pci_uio_outw_p outw_p ++#define pci_uio_outb_p outb_p ++#else ++static inline void ++pci_uio_outl_p(unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80" : : "a" (value), ++ "Nd" (port)); ++} ++ ++static inline void ++pci_uio_outw_p(unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80" : : "a" (value), ++ "Nd" (port)); ++} ++ ++static inline void ++pci_uio_outb_p(unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80" : : "a" (value), ++ "Nd" (port)); ++} ++#endif + #endif + + #include <rte_log.h> +@@ -527,21 +553,21 @@ pci_uio_ioport_write(struct rte_pci_ioport *p, + if (len >= 4) { + size = 4; + #if defined(RTE_ARCH_X86) +- outl_p(*(const uint32_t *)s, reg); ++ pci_uio_outl_p(*(const uint32_t *)s, reg); + #else + *(volatile uint32_t *)reg = *(const uint32_t *)s; + #endif + } else if (len >= 2) { + size = 2; + #if defined(RTE_ARCH_X86) +- outw_p(*(const uint16_t *)s, reg); ++ pci_uio_outw_p(*(const uint16_t *)s, reg); + #else + *(volatile uint16_t *)reg = *(const uint16_t *)s; + #endif + } else { + size = 1; + #if defined(RTE_ARCH_X86) +- outb_p(*s, reg); ++ pci_uio_outb_p(*s, reg); + #else + *(volatile uint8_t *)reg = *s; + #endif +diff --git a/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c b/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c +index ba6c4ae3..b9b7d70d 100644 +--- a/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c ++++ b/src/spdk/dpdk/lib/librte_eal/common/eal_common_fbarray.c +@@ -9,6 +9,7 @@ + #include <errno.h> + #include <sys/file.h> + #include <string.h> ++#include <fcntl.h> + + #include <rte_common.h> + #include <rte_log.h> +diff --git a/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c b/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c +index 02a5385d..cf063d5f 100644 +--- a/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c ++++ b/src/spdk/dpdk/lib/librte_eal/common/malloc_heap.c +@@ -1,6 +1,7 @@ + /* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2014 Intel Corporation + */ ++ #include<string.h> + #include <stdint.h> + #include <stddef.h> + #include <stdlib.h> +diff --git a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c +index 3a7d4b22..99b25d3c 100644 +--- a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c ++++ b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c +@@ -17,6 +17,7 @@ + #include <sys/mman.h> + #include <sys/queue.h> + #include <sys/stat.h> ++#include <fcntl.h> + + #include <linux/mman.h> /* for hugetlb-related flags */ + +diff --git a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c +index 0bf2aef3..0c98c74c 100644 +--- a/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c ++++ b/src/spdk/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c +@@ -15,6 +15,7 @@ + #include <sys/mman.h> + #include <sys/types.h> + #include <sys/stat.h> ++#include <fcntl.h> + #include <sys/queue.h> + #include <sys/file.h> + #include <unistd.h> +diff --git a/src/spdk/dpdk/mk/target/generic/rte.vars.mk b/src/spdk/dpdk/mk/target/generic/rte.vars.mk +index 98085cd3..dd149acc 100644 +--- a/src/spdk/dpdk/mk/target/generic/rte.vars.mk ++++ b/src/spdk/dpdk/mk/target/generic/rte.vars.mk +@@ -108,6 +108,9 @@ CFLAGS += -include $(RTE_SDK_BIN)/include/rte_config.h + LDFLAGS += -L$(RTE_SDK_BIN)/lib + endif + ++# always define _GNU_SOURCE ++CFLAGS += -D_GNU_SOURCE ++ + export CFLAGS + export LDFLAGS + +diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc +index cce44e4f..b0988e64 100644 +--- a/src/tools/rbd_nbd/rbd-nbd.cc ++++ b/src/tools/rbd_nbd/rbd-nbd.cc +@@ -552,7 +552,8 @@ private: + for (unsigned i = 0; i < cmdline.size(); i++) { + const char *arg = &cmdline[i]; + if (i == 0) { +- if (strcmp(basename(arg) , "rbd-nbd") != 0) { ++ const char *fname = strrchr(arg, '/'); ++ if (strcmp(fname ? fname+1 : arg, "rbd-nbd") != 0) { + return -EINVAL; + } + } else { |