# Contributor: John Coyle # Contributor: Iggy Jackson # Contributor: Duncan Bellamy # Maintainer: Duncan Bellamy _pkgname=ceph pkgver=17.2.6 pkgrel=7 _majorver=${pkgver%%.*} pkgname=$_pkgname$_majorver pkgdesc="Ceph is a distributed object store and file system, version $_majorver" pkgusers="ceph" pkggroups="ceph" url="https://ceph.io/en/" # 32-bit: doesn't build ui + useless # riscv64: doesn't build arch="all !armhf !armv7 !x86 !riscv64" # https://github.com/ceph/ceph/blob/master/COPYING license="LGPL-2.1-only AND LGPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-only AND CC-BY-SA-1.0 AND BSL-1.0 AND GPL-2.0-or-later WITH Autoconf-exception-2.0 AND BSD-3-Clause AND MIT AND custom" depends="$pkgname-mds=$pkgver-r$pkgrel $pkgname-mgr=$pkgver-r$pkgrel $pkgname-mon=$pkgver-r$pkgrel $pkgname-osd=$pkgver-r$pkgrel" builddir="$srcdir/ceph-$pkgver" _lua=5.4 _base_deps=" cryptsetup e2fsprogs logrotate parted psmisc xfsprogs " _osd_daemon_deps="fuse snappy lz4-libs" _osd_tools_deps="lz4-libs" _ceph_volume_deps="$pkgname-common=$pkgver-r$pkgrel $pkgname-osd-tools=$pkgver-r$pkgrel lvm2 py3-$pkgname-common=$pkgver-r$pkgrel" _ceph_test_deps=" gtest-dev py3-coverage py3-flake8 py3-nodeenv py3-pytest py3-tox py3-yaml xmlstarlet " _dashboard_deps=" py3-bcrypt py3-cherrypy py3-jwt py3-more-itertools py3-openssl py3-prettytable py3-requests py3-routes py3-yaml " _mgr_modules_deps=" py3-cherrypy py3-dateutil py3-natsort py3-openssl py3-pecan py3-requests py3-werkzeug " case "$CARCH" in s390x) _arrow_deps="" ;; *) _arrow_deps="apache-arrow-dev c-ares-dev re2-dev" ;; esac makedepends=" acl-dev argp-standalone bc boost-dev btrfs-progs bzip2-dev cmake coreutils cryptsetup-dev cunit-dev curl-dev cython diffutils doxygen eudev-dev expat-dev fcgi-dev flex fmt-dev fuse3-dev git graphviz-dev gperf jq keyutils-dev libaio-dev libatomic_ops-dev libcap-ng-dev libedit-dev librdkafka-dev libnl3-dev libtirpc-dev libtool liburing-dev libxml2-dev linux-headers lua$_lua-dev lvm2-dev lz4-dev nasm nodejs npm nss-dev oath-toolkit-dev openldap-dev openssl-dev>3 procps python3-dev py3-setuptools py3-sphinx rabbitmq-c-dev readline-dev rocksdb-dev<7.10 rpcgen samurai snappy-dev sqlite-dev userspace-rcu-dev util-linux-dev xfsprogs-dev zstd-dev $_dashboard_deps $_mgr_modules_deps $_base_deps $_osd_daemon_deps $_osd_tools_deps $_ceph_volume_deps $_ceph_test_deps $_arrow_deps " source="https://download.ceph.com/tarballs/ceph-$pkgver.tar.gz ceph.confd ceph.initd fuse3.patch 10-musl-fixes.patch 11-dump_time_header_impl.patch 11-parse_rfc1123_alt.patch 11-s3_expiration_header.patch 13-liburing.patch 20-pci.patch 21-npm.patch 35-fix_ErasureCodeShec.patch 46-statx.patch $pkgname-aio.patch::https://github.com/ceph/ceph/commit/5120789f8842b102554d5ca40ec74fb60dac4189.patch $pkgname-nasm.patch::https://github.com/ceph/ceph/commit/69a1e620e600e7f1dff8a6e39dd19eff8cdb398c.patch $pkgname-req_bytes.patch::https://github.com/ceph/ceph/commit/6190f90a5d5718688465f04854c1a256b931a98f.patch 46-fmt9-1.patch 46-fmt9-2.patch 46-arrow9.patch boost-1.81.patch gcc13.patch " # to prevent things from installing wrong ceph libs, since they have the same SOMAJOR sonameprefix="ceph$_majorver:so:" options="!check" # todo subpackages=" $pkgname-doc $pkgname-base $pkgname-common $pkgname-mds $pkgname-mgr-dashboard:mgr_dashboard:noarch $pkgname-mgr-diskprediction-local:mgr_diskpredicton_local:noarch $pkgname-mgr-modules-core:mgr_modules_core:noarch $pkgname-mgr-rook:mgr_rook:noarch $pkgname-mgr-k8events:mgr_k8events:noarch $pkgname-mgr $pkgname-mon::noarch $pkgname-mon-daemon:mon_daemon $pkgname-mon-tools:mon_tools $pkgname-fuse:ceph_fuse $pkgname-openrc $pkgname-osd::noarch $pkgname-osd-daemon:osd_daemon $pkgname-osd-tools:osd_tools $pkgname-volume:ceph_volume:noarch $pkgname-radosgw $pkgname-bash-completion:bash_completion:noarch $pkgname-dev $pkgname-user::noarch $pkgname-utils $pkgname-cephadm::noarch cephfs$_majorver-mirror:mirror cephfs$_majorver-top:top:noarch rbd-fuse$_majorver:rbd_fuse rbd-mirror$_majorver:rbd_mirror rbd-nbd$_majorver:rbd_nbd librbd$_majorver:librbd libcephfs$_majorver:libcephfs libcephsqlite$_majorver:libcephsqlite librados$_majorver:librados py3-rados$_majorver:_py3_rados libradosstriper$_majorver:libradosstriper py3-rbd$_majorver:_py3_rbd py3-cephfs$_majorver:_py3_cephfs py3-$pkgname-common:_py3_ceph_common ceph-dev:_dev " # Whether this package is the default (latest) ceph version. # remove ceph-dev above if no _default_ceph="yes" if [ "$_default_ceph" = yes ]; then provides="ceph=$pkgver-r$pkgrel" replaces="ceph" fi _ceph_uid=167 _ceph_gid=167 _py3_sitelib() { python3 -c "import site; print(site.getsitepackages()[0])" } build() { export CEPH_BUILD_VIRTUALENV="$builddir" export NPM_REGISTRY="https://npm.open-registry.dev" export CFLAGS="${CFLAGS/-fno-plt} -O2 -DNDEBUG" # XXX: LARGEFILE64 export CXXFLAGS="${CXXFLAGS/-fno-plt} -D_LARGEFILE64_SOURCE -O2 -DNDEBUG -DSTATX_INO=0x100U -Wno-deprecated-declarations" case "$CARCH" in s390x) local par="OFF" ;; *) local par="ON" ;; esac cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib \ -DCMAKE_INSTALL_LOCALSTATEDIR=/var \ -DCMAKE_INSTALL_SYSCONFDIR=/etc \ -DALLOCATOR=libc \ -DLUA_LIBRARIES=/usr/lib/lua"$_lua"/liblua.so \ -DWITH_BABELTRACE=OFF \ -DWITH_LTTNG=OFF \ -DWITH_MANPAGE=ON \ -DWITH_PYTHON3=3 \ -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \ -DWITH_RADOSGW_SELECT_PARQUET="$par" \ -DWITH_RDMA=OFF \ -DWITH_REENTRANT_STRSIGNAL=ON \ -DWITH_SPDK=OFF \ -DWITH_SYSTEMD=OFF \ -DWITH_SYSTEM_ARROW=ON \ -DWITH_SYSTEM_BOOST=ON \ -DWITH_SYSTEM_LIBURING=ON \ -DWITH_SYSTEM_NPM=ON \ -DWITH_SYSTEM_ROCKSDB=ON \ -DWITH_SYSTEM_ZSTD=ON \ -DWITH_TESTS="$(want_check && echo ON || echo OFF)" \ -DWITH_THREAD_SAFE_RES_QUERY=ON export NODE_OPTIONS=--openssl-legacy-provider cmake --build build --target cmake_object_order_depends_target_common-options-objs cmake --build build } package() { DESTDIR="$pkgdir" cmake --install build # remove the upstream init file and put in openrc ones rm -f "$pkgdir"/etc/init.d/ceph install -D -m 755 "$srcdir"/"$_pkgname".initd "$pkgdir"/etc/init.d/ceph install -D -m 644 "$srcdir"/"$_pkgname".confd "$pkgdir"/etc/conf.d/ceph # move mount.* binaries to /sbin mkdir -p "$pkgdir"/sbin mv "$pkgdir"/usr/sbin/mount.* "$pkgdir"/sbin install -m 644 -D src/etc-rbdmap "$pkgdir"/etc/ceph/rbdmap install -m 644 -D src/logrotate.conf "$pkgdir"/etc/logrotate.d/ceph install -m 644 -D etc/sysctl/90-ceph-osd.conf "$pkgdir"/etc/sysctl.d/90-ceph-osd.conf # udev rules install -m 644 -D udev/50-rbd.rules "$pkgdir"/usr/lib/udev/rules.d/50-rbd.rules # sudoers.d install -m 600 -D sudoers.d/ceph-smartctl "$pkgdir"/etc/sudoers.d/ceph-smartctl # delete systemd related stuff rm -f "$pkgdir"/usr/sbin/ceph-volume-systemd # move docs to docs mkdir -p "$pkgdir"/usr/share/doc/ceph/dashboard mv "$pkgdir"/usr/share/ceph/mgr/dashboard/*.rst "$pkgdir"/usr/share/doc/ceph/dashboard/ mv "$pkgdir"/usr/share/ceph/mgr/cephadm/HACKING.rst "$pkgdir"/usr/share/doc/ceph/cephadm-HACKING.rst # cephadm install -Dm 755 "$builddir"/src/cephadm/cephadm "$pkgdir"/usr/bin/cephadm } check() { cd "$builddir"/build CTEST_OUTPUT_ON_FAILURE=TRUE ctest } _dev() { mkdir -p "$subpkgdir" depends="$pkgname-dev=$pkgver-r$pkgrel" } # This subpackage is a little weird and a side effect of trying to keep # the daemon packages as small as possible. We might be able to roll this into # the base/common package later if we can slim those down or break them up in a # different way user() { pkgdesc="Minimal package to create a user for other ceph packages." depends="" install="$pkgname-user.pre-install" _default_replace_majorversion mkdir -p "$subpkgdir" } base() { pkgdesc="Base is the package that includes all the files shared amongst ceph servers" depends="$_base_deps $pkgname-user=$pkgver-r$pkgrel $pkgname-common=$pkgver-r$pkgrel librbd$_majorver=$pkgver-r$pkgrel librados$_majorver=$pkgver-r$pkgrel libcephfs$_majorver=$pkgver-r$pkgrel " _default_replace_majorversion amove usr/bin/ceph-crash \ usr/bin/crushtool \ usr/bin/*maptool \ usr/bin/ceph-kvstore-tool \ usr/bin/ceph-run \ usr/sbin/ceph-create-keys \ usr/libexec/ceph/ceph_common.sh \ usr/lib/rados-classes/*.so* \ usr/lib/ceph/erasure-code/libec_*.so* \ usr/lib/ceph/compressor/libceph_*.so* \ usr/lib/ceph/crypto/libceph_*.so* \ etc/logrotate.d/ceph 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"/var/lib/ceph/$dir done } common() { pkgdesc="Common utilities to mount and interact with a ceph storage cluster." depends="py3-cephfs$_majorver=$pkgver-r$pkgrel py3-prettytable py3-rados$_majorver=$pkgver-r$pkgrel py3-rbd$_majorver=$pkgver-r$pkgrel " _default_replace_majorversion amove usr/bin/ceph \ usr/bin/ceph-authtool \ usr/bin/ceph-conf \ usr/bin/ceph-rbdnamer \ usr/bin/rados \ usr/bin/rbd \ usr/bin/rbdmap \ sbin/mount.ceph \ usr/share/ceph/*.ceph.com* \ etc/ceph/rbdmap amove "$(_py3_sitelib)"/ceph_argparse.py* "$(_py3_sitelib)"/ceph_daemon.py* amove usr/lib/udev/rules.d/50-rbd.rules install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/log/ceph install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/lib/ceph } mds() { pkgdesc="Metadata server daemon for the Ceph distributed file system." depends="$pkgname-base=$pkgver-r$pkgrel" _default_replace_majorversion amove usr/bin/ceph-mds install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/lib/ceph/mds } mon() { pkgdesc="Cluster monitor daemon virtual package for the Ceph distributed file system." depends="$pkgname-base=$pkgver-r$pkgrel $pkgname-mon-daemon=$pkgver-r$pkgrel $pkgname-mon-tools=$pkgver-r$pkgrel " _default_replace_majorversion mkdir -p "$subpkgdir" } mon_daemon() { pkgdesc="Cluster monitor daemon for the Ceph distributed file system." depends="$pkgname-user=$pkgver-r$pkgrel" _default_replace_majorversion amove usr/bin/ceph-mon install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/lib/ceph/mon } mon_tools() { pkgdesc="Cluster monitor tools for the Ceph distributed file system." depends= _default_replace_majorversion amove usr/bin/ceph-monstore-tool install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/lib/ceph/mon } ceph_fuse() { pkgdesc="FUSE based client for Ceph distributed network file system." depends="fuse3" _default_replace_majorversion amove usr/bin/ceph-fuse sbin/mount.fuse.ceph } rbd_fuse() { pkgdesc="FUSE based client to map Ceph rbd images to files." depends= _default_replace_majorversion amove usr/bin/rbd-fuse } rbd_mirror() { pkgdesc="Daemon for mirroring RBD images between Ceph clusters." depends="$pkgname-common=$pkgver-r$pkgrel" _default_replace_majorversion amove usr/bin/rbd-mirror } rbd_nbd() { pkgdesc="NBD based client to map Ceph rbd images to local device." depends= _default_replace_majorversion amove usr/bin/rbd-nbd } radosgw() { pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs." depends="$pkgname-common=$pkgver-r$pkgrel oath-toolkit-liboath" _default_replace_majorversion amove usr/bin/radosgw* amove usr/bin/rgw-* mkdir -p "$subpkgdir"/var/lib/ceph/radosgw } osd() { pkgdesc="Object storage daemon virtual package for the Ceph distributed file system." depends="$pkgname-osd-daemon=$pkgver-r$pkgrel $pkgname-osd-tools=$pkgver-r$pkgrel $pkgname-volume=$pkgver-r$pkgrel" _default_replace_majorversion mkdir -p "$subpkgdir" } osd_daemon() { pkgdesc="Object storage daemon for the Ceph distributed file system." depends="$_osd_daemon_deps $pkgname-user=$pkgver-r$pkgrel" _default_replace_majorversion amove usr/bin/ceph-osd \ usr/libexec/ceph/ceph-osd-prestart.sh \ etc/sudoers.d/ceph-smartctl \ etc/sysctl.d/90-ceph-osd.conf install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/lib/ceph/osd } osd_tools() { pkgdesc="Object storage daemon tools for the Ceph distributed file system." depends="$pkgname-base=$pkgver-r$pkgrel $_osd_tools_deps" _default_replace_majorversion amove usr/bin/ceph-clsinfo usr/bin/ceph-*-tool install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/lib/ceph/osd } ceph_volume() { pkgdesc="ceph-volume tool for the Ceph distributed file system." depends="$_ceph_volume_deps" _default_replace_majorversion amove usr/sbin/ceph-volume \ "$(_py3_sitelib)"/ceph_volume "$(_py3_sitelib)"/ceph_volume-* } librados() { pkgdesc="RADOS distributed object store client library" depends= _default_replace_majorversion amove usr/lib/librados.so.* usr/lib/ceph/libceph-common.so.* } _py3_rados() { pkgdesc="Python libraries for the RADOS object store" depends=py3-$pkgname-common=$pkgver-r$pkgrel _default_replace_majorversion amove "$(_py3_sitelib)"/rados* } libradosstriper() { pkgdesc="RADOS striping library" depends= _default_replace_majorversion amove usr/lib/libradosstriper.so.* } librbd() { pkgdesc="RADOS block device client library" depends= _default_replace_majorversion amove usr/lib/librbd.so.* } _py3_rbd() { pkgdesc="Python libraries for the RADOS block device" depends="py3-rados$_majorver=$pkgver-r$pkgrel" _default_replace_majorversion amove "$(_py3_sitelib)"/rbd* } libcephsqlite() { pkgdesc="SQLite Virtual File System (VFS) on top of RADOS" depends= _default_replace_majorversion amove usr/lib/libcephsqlite.so* } libcephfs() { pkgdesc="Ceph distributed file system client library" depends= _default_replace_majorversion amove usr/lib/libcephfs.so.* } mirror() { pkgdesc="daemon for mirroring CephFS directory snapshots between Ceph clusters" depends= _default_replace_majorversion amove /usr/bin/cephfs-mirror } top() { pkgdesc="top like utility to display various filesystem metrics in realtime" depends="python3 py3-rados17=$pkgver-r$pkgrel" _default_replace_majorversion amove "$(_py3_sitelib)"/cephfs_top* amove /usr/bin/cephfs-top } _py3_cephfs() { pkgdesc="Python libraries for Ceph distributed file system" depends="py3-rados$_majorver=$pkgver-r$pkgrel" _default_replace_majorversion amove "$(_py3_sitelib)"/cephfs* } _py3_ceph_common() { pkgdesc="Python dependencies for $pkgname distributed file system" depends="py3-setuptools py3-yaml" _default_replace_majorversion amove "$(_py3_sitelib)"/ceph-*.egg-info "$(_py3_sitelib)"/ceph } utils() { pkgdesc="Ceph utils and recovery tools" depends="$pkgname-common=$pkgver-r$pkgrel" _default_replace_majorversion amove usr/bin/ceph-diff-sorted \ usr/bin/ceph-post-file \ usr/bin/ceph-syn \ usr/bin/cephfs-data-scan \ usr/bin/ceph-dencoder \ usr/lib/ceph/denc \ usr/bin/cephfs-journal-tool \ usr/bin/cephfs-table-tool \ usr/bin/rbd-replay* \ usr/bin/crushdiff } bash_completion() { pkgdesc="Bash completions for Ceph" depends= _default_replace_majorversion install_if="ceph=$pkgver-r$pkgrel bash-completion" amove etc/bash_completion.d/* } mgr_dashboard() { pkgdesc="Dashboard module for ceph-mgr" depends=" $pkgname-common=$pkgver-r$pkgrel $pkgname-mgr=$pkgver-r$pkgrel $_dashboard_deps " _default_replace_majorversion amove usr/share/ceph/mgr/dashboard } mgr_diskpredicton_local() { pkgdesc="diskprediction-local module for ceph-mgr" depends="$pkgname-mgr=$pkgver-r$pkgrel py3-numpy py3-scikit-learn py3-scipy " _default_replace_majorversion amove usr/share/ceph/mgr/diskprediction_local } mgr_modules_core() { pkgdesc="ceph manager modules which are always enabled" depends=" $_mgr_modules_deps " _default_replace_majorversion local _mod="alerts balancer crash devicehealth influx insights iostat localpool mirroring nfs orchestrator \ osd_perf_query osd_support pg_autoscaler progress prometheus rbd_support restful selftest snap_schedule \ stats status telegraf telemetry test_orchestrator volumes zabbix" for _m in ${_mod}; do amove usr/share/ceph/mgr/"$_m" done } mgr_rook() { pkgdesc="rook module for ceph-mgr" depends="$pkgname-mgr=$pkgver-r$pkgrel py3-jsonpatch py3-kubernetes" _default_replace_majorversion amove usr/share/ceph/mgr/rook } mgr_k8events() { pkgdesc="kubernetes events module for ceph-mgr" depends="$pkgname-mgr=$pkgver-r$pkgrel py3-kubernetes py3-yaml" _default_replace_majorversion amove usr/share/ceph/mgr/k8sevents } mgr() { pkgdesc="Ceph Manager Daemon" depends="$pkgname-base=$pkgver-r$pkgrel $pkgname-mgr-modules-core=$pkgver-r$pkgrel" _default_replace_majorversion amove usr/bin/ceph-mgr usr/share/ceph/mgr install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ "$subpkgdir"/var/lib/ceph/mgr } cephadm() { pkgdesc="cephadm tool $pkgver" depends="lvm2 python3" _default_replace_majorversion amove usr/bin/cephadm } _default_replace_majorversion() { if [ "$_default_ceph" = "yes" ]; then local stripped="${subpkgname/"$_majorver"/}" # we want to replace both the generic name (ceph-) and the prior major (ceph1X-) replaces="$stripped ${subpkgname/"$_majorver"/"$(( _majorver - 1 ))"}" provides="$stripped=$pkgver-r$pkgrel" fi } sha512sums=" dca9aea2ce210c15fcc34cb06a5dc5b4488ffa36d684166d47ebd87e48b54b6fee0882e1c67007a780e1c25754e9bc6e760cc10f60ea1183263f8504ef2dbd9b ceph-17.2.6.tar.gz 110bdbcb40216c7ed155a8d23020784741b4992d895f4f04a146d275506e4e68053854d3b063b41e9c9b3e3e4f95b6b90602f92c185c853c0d8f47ad0c6b7121 ceph.confd ce5f162501f6b67fe254546dddf880d1a5b1d1a0fa69e0b1918de17e8da45c5c6124512b8cbd98b76f29d931403de0d11c5ffd330ed8ee1f4dc75bb04baecae3 ceph.initd eb136eb0df1ee3d246c5d1c65656306a61891cd90ef0013fc8331204c8ab1bcd02933642aa0aeec440bcd91dc3644bed9e07ed3ad7e08328153b8f7c3eabfa88 fuse3.patch 94687578411bf0de1b17555ed81c188c88ea63ac4a25993bd8fde9cf68afbbfbdec7b2d7c54fdcfbd4aed4eb78754e8061c308955596cbe037ff15b575874cc6 10-musl-fixes.patch 211e6f5f8fc962878196ec917984781eb4a8a9495bcc8d1729b34ac66abd2d4a0b7388ae2caee9d5deb664d54860d120a37215924625e82eac9bfca16179667a 11-dump_time_header_impl.patch 253a7bf9fa6a68547f2c9269570be86aa659ef75ab0ed4c9d1a53be70de1ca6079508f19fe5ddb02ed9edda349e121037f8ed4d6b5b0e640edaab863ce6b280d 11-parse_rfc1123_alt.patch 52b11dfd157dfb7363d2d3428901559189263caaa1c5f29a924b9be7ea012d4f54a887b22d2e2a3d756f6fd771f626505912dca52e6b19a56e018be45b7acb8b 11-s3_expiration_header.patch 3ba1801d9e2ab427ed14abd01881ef2115cd38309134145ec5a0a2a7adee2007e8b84b66ac1c7d5ea1139946aa87159dfb0768cd80181f42140979d790efe817 13-liburing.patch 03ef3598181c45ecba5600a1e4db7fd897ea9d3c8abdfaad2dcf84c7a241d9ba18e7f7885d69ee0572ee307fc94600a2784a07da909d37a51de27f8ded2e3a70 20-pci.patch 4570da5c480046cd617a1681821c68aa7140b0153af6dc2c808effdb34b2cf05ea61b1743553be90f7648f3fbfed6ce472f0d04cb742d12c3dcaba0bc652f384 21-npm.patch abb3cab9c01cc3d6d42a9858678059a8c9c43bda2649bf97b489fdc205eb10ae27f9fb7302062e0fb41f5cffddbfc2ae529130569034f373732a0a5d33aba86e 35-fix_ErasureCodeShec.patch f589c85baca2654e54ebd986ddda70a9b38116332c7c10aa5b75cd8a9c37e8d157baf0ad9ac91e36750046e7554d6831d93cb16d3967b5986155b8f38cff66c5 46-statx.patch 45a4e39b6355eb7d2330390c3d1387d70fbee6f51c4692c0d4d3bd88b83488e36de059ad83364dc0c280481d6589a79d2bcf76b46248b61dcc97848f0369d82a ceph17-aio.patch 80500815e01fff241eaa515d7607ea872ca6f530041d0b03092a8c80b383d281c344c0e8539e5a87c8503674c4bd1dcffa63302c952b11f09398c7482d048ef8 ceph17-nasm.patch 85c92c05382d9ab34fde47a8ac0adc3694006a809ad2c68b3d420eddb15152d520913ed9d7852ef61683beab6bc96fbd0e9a3403c1663380168c067ff078e760 ceph17-req_bytes.patch 0dee0e3ebbf49056db06f665084bbf41109f22e513f44b7e3602e8f8717f2f658b0e1cab3893ea2fbc86045bf7982a76bee7af5b90a55d6cc4f2698c95f18aa3 46-fmt9-1.patch ab7c330c2fa8f18f4cc7d2de67b75543a9396daaf8861ca60063c30441c8aae88e1bebad0ff2648e10788b43059bda813da85169393c8260f4b3d4be3017f302 46-fmt9-2.patch dcca6a063cbca26b1a8e5ffe11e1f284ba0efb2a0408428e87948ff83659b17e414ab4562f03fbdce1932548259eac681294b1840435c01a688666c3bd983c0e 46-arrow9.patch ad71fda050df8658d653f9131855c28ff889395dfcc70a3124575c8b063c8e84eca7eb390232b6ee5a05238c4f953c5b55af7e961b1a99360696097a702686cd boost-1.81.patch e48b175658ec5fc35c00001d9e679fbb0819edf7d079fc4968301217c519f3c54e5e44925f41ca369c57bd8f4c2d01d187e11de92f88eafae52639ff23102c31 gcc13.patch "