projects/aports·blob master · refs

809 lines · 23.1 KiB

1# Contributor: John Coyle <[email protected]>
2# Contributor: Iggy Jackson <[email protected]>
3# Contributor: Duncan Bellamy <[email protected]>
4# Maintainer: Conrad Hoffmann <[email protected]>
5_pkgname=ceph
6pkgver=20.2.4
7pkgrel=2
8_majorver=${pkgver%%.*}
9pkgname=$_pkgname$_majorver
10pkgdesc="Ceph is a distributed object store and file system, version $_majorver"
11pkgusers="ceph"
12pkggroups="ceph"
13url="https://ceph.io/en/"
14# 32-bit: needs more patching specific to 32bit builds
15# riscv64: might technically build, insane build times
16arch="all !armhf !armv7 !x86 !riscv64"
17# https://github.com/ceph/ceph/blob/master/COPYING
18license="LGPL-2.1-only AND BSD-3-Clause AND CC-BY-SA-3.0 AND BSL-1.0 AND Apache-2.0 AND MIT AND CC0-1.0"
19depends="$pkgname-mds=$pkgver-r$pkgrel $pkgname-mgr=$pkgver-r$pkgrel $pkgname-mon=$pkgver-r$pkgrel $pkgname-osd=$pkgver-r$pkgrel"
20builddir="$srcdir/ceph-$pkgver"
21_lua=5.4
22_base_deps="
23 cryptsetup
24 e2fsprogs
25 logrotate
26 parted
27 psmisc
28 xfsprogs
29 "
30_osd_daemon_deps="fuse snappy lz4-libs"
31_osd_tools_deps="lz4-libs"
32_ceph_volume_deps="$pkgname-common=$pkgver-r$pkgrel $pkgname-osd-tools=$pkgver-r$pkgrel lvm2 py3-$pkgname-common=$pkgver-r$pkgrel"
33_ceph_test_deps="
34 gtest-dev
35 py3-coverage
36 py3-flake8
37 py3-nodeenv
38 py3-pytest
39 py3-tox
40 py3-yaml
41 xmlstarlet
42 "
43_dashboard_deps="
44 py3-bcrypt
45 py3-cherrypy
46 py3-jmespath
47 py3-more-itertools
48 py3-openssl
49 py3-prettytable
50 py3-requests
51 py3-routes
52 py3-xmltodict
53 py3-yaml
54 "
55_mgr_modules_deps="
56 py3-bcrypt
57 py3-cherrypy
58 py3-dateutil
59 py3-natsort
60 py3-openssl
61 py3-requests
62 "
63_arrow_deps="apache-arrow-dev c-ares-dev re2-dev"
64_seastar=275a9103a26ccbaf5a2a8321a040118d1212f156
65_crimson_deps="gnutls-dev libucontext-dev lksctp-tools-dev numactl-dev protobuf-dev ragel valgrind-dev yaml-cpp-dev"
66makedepends="
67 acl-dev
68 argp-standalone
69 bc
70 boost1.89-dev
71 btrfs-progs
72 bzip2-dev
73 cmake
74 coreutils
75 cryptsetup-dev
76 cunit-dev
77 curl-dev
78 cython
79 diffutils
80 doxygen
81 eudev-dev
82 expat-dev
83 fcgi-dev
84 flex
85 fuse-dev
86 git
87 graphviz-dev
88 gperf
89 isa-l-dev
90 isa-l_crypto-dev
91 jq
92 keyutils-dev
93 libaio-dev
94 libatomic_ops-dev
95 libcap-dev
96 libcap-ng-dev
97 libedit-dev
98 librdkafka-dev
99 libnl3-dev
100 libnbd-dev
101 libtirpc-dev
102 libtool
103 liburing-dev
104 libxml2-dev
105 linux-headers
106 lmdb-dev
107 lua$_lua-dev
108 lvm2-dev
109 lz4-dev
110 nss-dev
111 oath-toolkit-dev
112 openldap-dev
113 openssl-dev>3
114 procps
115 python3-dev
116 py3-setuptools
117 py3-sphinx
118 rabbitmq-c-dev
119 readline-dev
120 rocksdb7-dev
121 rpcgen
122 samurai
123 snappy-dev
124 sqlite-dev
125 userspace-rcu-dev
126 util-linux-dev
127 xfsprogs-dev
128 xxhash-dev
129 zstd-dev
130 $_dashboard_deps
131 $_mgr_modules_deps
132 $_base_deps
133 $_osd_daemon_deps
134 $_osd_tools_deps
135 $_ceph_volume_deps
136 $_ceph_test_deps
137 $_arrow_deps
138 "
139checkdepends="bash grep uuidgen"
140install="$pkgname-user.pre-install"
141source="https://download.ceph.com/tarballs/ceph-$pkgver.tar.gz
142 ceph.confd
143 ceph.initd
144 10-isal_crypto.patch
145 10-isal.patch
146 10-musl-fixes.patch
147 10-xxhash.patch
148 11-dump_time_header_impl.patch
149 11-lfs.patch
150 11-parse_rfc1123_alt.patch
151 35-fix_ErasureCodeShec.patch
152 48-arrow20.patch
153 gcc13.patch
154 crimson.patch
155 crimson2.patch
156 crimson3.patch
157 limits_h.patch
158 s390x.patch
159 boost-system-1.89.patch
160 boost-TrackedOp-1.89.patch
161 boost-1.90-1.patch
162 boost-1.90-2.patch
163 boost-1.90-3.patch
164 old_kernel.patch
165 prebuilt-dashboard.patch
166 seastar$_seastar.tar.gz::https://github.com/ceph/seastar/archive/$_seastar.tar.gz
167 https://gitlab.com/api/v4/projects/84054401/packages/generic/dashboard/$pkgver/frontend_dist-$pkgver.tar.gz
168 "
169# Project for prebuilt dashboard https://gitlab.com/bitfehler/ceph-dashboard-dist
170# to prevent things from installing wrong ceph libs, since they have the same SOMAJOR
171sonameprefix="ceph$_majorver:"
172options="net !check" # todo
173subpackages="
174 $pkgname-doc
175 $pkgname-base
176 $pkgname-common
177 $pkgname-common-daemon:common_daemon
178 $pkgname-mds
179 $pkgname-mgr-dashboard:mgr_dashboard:noarch
180 $pkgname-mgr-diskprediction-local:mgr_diskpredicton_local:noarch
181 $pkgname-mgr-modules-core:mgr_modules_core:noarch
182 $pkgname-mgr-rook:mgr_rook:noarch
183 $pkgname-mgr-k8events:mgr_k8events:noarch
184 $pkgname-mgr
185 $pkgname-mon::noarch
186 $pkgname-mon-daemon:mon_daemon
187 $pkgname-mon-tools:mon_tools
188 $pkgname-mount:ceph_mount
189 $pkgname-fuse:ceph_fuse
190 $pkgname-openrc
191 $pkgname-osd::noarch
192 $pkgname-osd-classic-daemon:osd_daemon
193 $pkgname-osd-tools:osd_tools
194 $pkgname-volume:ceph_volume:noarch
195 $pkgname-radosgw
196 $pkgname-bash-completion:bash_completion:noarch
197 $pkgname-dev
198 $pkgname-user::noarch
199 $pkgname-utils
200 $pkgname-cephadm::noarch
201 cephfs$_majorver-mirror:mirror
202 cephfs$_majorver-shell:shell:noarch
203 cephfs$_majorver-top:top:noarch
204 rbd-fuse$_majorver:rbd_fuse
205 rbd-mirror$_majorver:rbd_mirror
206 rbd-nbd$_majorver:rbd_nbd
207 librbd$_majorver:librbd
208 libcephfs$_majorver:libcephfs
209 libcephsqlite$_majorver:libcephsqlite
210 librados$_majorver:librados
211 py3-rados$_majorver:_py3_rados
212 libradosstriper$_majorver:libradosstriper
213 py3-rbd$_majorver:_py3_rbd
214 py3-cephfs$_majorver:_py3_cephfs
215 py3-$pkgname-common:_py3_ceph_common:noarch
216 "
217case "$CARCH" in
218loongarch64|riscv64) _crimson="OFF" ;;
219*) makedepends="$makedepends $_crimson_deps"
220 subpackages="$subpackages $pkgname-osd-crimson-daemon:crimson_daemon"
221 _crimson="ON" ;;
222esac
223
224# Whether this package is the default (latest) ceph version.
225_default_ceph="no"
226
227if [ "$_default_ceph" = yes ]; then
228 provides="ceph=$pkgver-r$pkgrel"
229 replaces="ceph"
230 subpackages="$subpackages ceph-dev:_dev"
231 _libdir="lib"
232 _rpath=""
233else
234 _libdir=lib/ceph$_majorver
235 _rpath="-DCMAKE_INSTALL_RPATH=/usr/$_libdir;/usr/$_libdir/ceph"
236fi
237
238_py3_sitelib() {
239 python3 -c "import site; print(site.getsitepackages()[0][1:])"
240}
241
242prepare() {
243 default_prepare
244 rm -r src/isa-l
245 rm -r src/xxHash
246 rm -r src/seastar
247 ln -s "$srcdir/seastar-$_seastar" src/seastar
248}
249
250build() {
251 export CEPH_BUILD_VIRTUALENV="$builddir"
252 export CFLAGS="${CFLAGS/-fno-plt} -O2 -DNDEBUG"
253 export CXXFLAGS="${CXXFLAGS/-fno-plt} -O2 -DNDEBUG -Wno-deprecated-declarations -fno-permissive"
254
255 cmake -B build -G Ninja -Wno-dev \
256 -DCMAKE_BUILD_TYPE=MinSizeRel \
257 -DCMAKE_INSTALL_PREFIX=/usr \
258 -DCMAKE_INSTALL_LIBDIR=/usr/$_libdir \
259 -DCMAKE_INSTALL_LOCALSTATEDIR=/var \
260 -DCMAKE_INSTALL_SYSCONFDIR=/etc \
261 -DNINJA_MAX_COMPILE_JOBS=2 \
262 -DALLOCATOR=libc \
263 -DDASHBOARD_DIST_DIR="$srcdir/dist" \
264 -DENABLE_GIT_VERSION=ON \
265 -DLUA_LIBRARIES=/usr/lib/lua"$_lua"/liblua.so \
266 -DWITH_BABELTRACE=OFF \
267 -DWITH_CRIMSON="$_crimson" \
268 -DWITH_JAEGER=OFF \
269 -DWITH_LTTNG=OFF \
270 -DWITH_MANPAGE=ON \
271 -DWITH_MGR_DASHBOARD_FRONTEND=ON \
272 -DWITH_PYTHON3=3 \
273 -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
274 -DWITH_RADOSGW_SELECT_PARQUET=ON \
275 -DWITH_RADOSGW_POSIX=OFF \
276 -DWITH_RDMA=OFF \
277 -DWITH_REENTRANT_STRSIGNAL=ON \
278 -DWITH_SPDK=OFF \
279 -DWITH_SYSTEMD=OFF \
280 -DWITH_CEPHFS_SHELL=ON \
281 -DWITH_QATLIB=OFF \
282 -DWITH_QATZIP=OFF \
283 -DWITH_SYSTEM_ARROW=ON \
284 -DWITH_SYSTEM_BOOST=ON \
285 -DWITH_SYSTEM_FMT=OFF \
286 -DWITH_SYSTEM_LIBURING=ON \
287 -DWITH_SYSTEM_LIBNBD=ON \
288 -DWITH_SYSTEM_ROCKSDB=ON \
289 -DWITH_SYSTEM_ZSTD=ON \
290 -DWITH_UADK=OFF \
291 -DWITH_TESTS="$(want_check && echo ON || echo OFF)" \
292 -DWITH_THREAD_SAFE_RES_QUERY=ON $_rpath
293
294 cmake --build build --target common-options-objs
295 cmake --build build
296}
297
298package() {
299 DESTDIR="$pkgdir" cmake --install build
300
301 # remove the upstream init file and put in openrc ones
302 rm -f "$pkgdir"/etc/init.d/ceph
303 install -D -m 755 "$srcdir"/"$_pkgname".initd "$pkgdir"/etc/init.d/ceph
304 install -D -m 644 "$srcdir"/"$_pkgname".confd "$pkgdir"/etc/conf.d/ceph
305
306 # move mount.* binaries to /sbin
307 mkdir -p "$pkgdir"/sbin
308 mv "$pkgdir"/usr/sbin/mount.* "$pkgdir"/sbin
309
310 install -m 644 -D src/etc-rbdmap "$pkgdir"/etc/ceph/rbdmap
311 install -m 644 -D src/logrotate.conf "$pkgdir"/etc/logrotate.d/ceph
312 install -m 644 -D etc/sysctl/90-ceph-osd.conf "$pkgdir"/etc/sysctl.d/90-ceph-osd.conf
313
314 # udev rules
315 install -m 644 -D udev/50-rbd.rules "$pkgdir"/usr/lib/udev/rules.d/50-rbd.rules
316 # sudoers.d
317 install -m 600 -D sudoers.d/ceph-smartctl "$pkgdir"/etc/sudoers.d/ceph-smartctl
318
319 # delete systemd related stuff
320 rm -f "$pkgdir"/usr/sbin/ceph-volume-systemd
321
322 # move docs to docs
323 mkdir -p "$pkgdir"/usr/share/doc/ceph/dashboard
324 mv "$pkgdir"/usr/share/ceph/mgr/dashboard/*.rst "$pkgdir"/usr/share/doc/ceph/dashboard/
325 mv "$pkgdir"/usr/share/ceph/mgr/cephadm/HACKING.rst "$pkgdir"/usr/share/doc/ceph/cephadm-HACKING.rst
326}
327
328check() {
329 cd "$builddir"/build
330 ctest
331}
332
333_dev() {
334 mkdir -p "$subpkgdir"
335 depends="$pkgname-dev=$pkgver-r$pkgrel"
336}
337
338# This subpackage is a little weird and a side effect of trying to keep
339# the daemon packages as small as possible. We might be able to roll this into
340# the base/common package later if we can slim those down or break them up in a
341# different way
342user() {
343 pkgdesc="Minimal package to create a user for other ceph packages."
344 depends=""
345 _default_replace_majorversion
346
347 mkdir -p "$subpkgdir"
348}
349
350base() {
351 pkgdesc="Base is the package that includes all the files shared amongst ceph servers"
352 depends="$_base_deps
353 $pkgname-user=$pkgver-r$pkgrel
354 $pkgname-common=$pkgver-r$pkgrel
355 librbd$_majorver=$pkgver-r$pkgrel
356 librados$_majorver=$pkgver-r$pkgrel
357 libcephfs$_majorver=$pkgver-r$pkgrel
358 "
359 _default_replace_majorversion
360
361 amove usr/bin/ceph-crash \
362 usr/bin/crushtool \
363 usr/bin/*maptool \
364 usr/bin/ceph-kvstore-tool \
365 usr/bin/ceph-run \
366 usr/sbin/ceph-create-keys \
367 usr/libexec/ceph/ceph_common.sh \
368 usr/$_libdir/rados-classes/*.so* \
369 usr/$_libdir/ceph/erasure-code/libec_*.so* \
370 usr/$_libdir/ceph/compressor/libceph_*.so* \
371 usr/$_libdir/ceph/crypto/libceph_*.so* \
372 usr/$_libdir/ceph/extblkdev/*.so* \
373 etc/logrotate.d/ceph
374 for dir in crash crash/posted tmp bootstrap-osd bootstrap-mds \
375 bootstrap-rgw bootstrap-mgr bootstrap-rbd \
376 bootstrap-rbd-mirror; do
377
378 install -m 750 -o $pkgusers -g $pkggroups -d \
379 "$subpkgdir"/var/lib/ceph/$dir
380 done
381}
382
383common() {
384 pkgdesc="Common utilities to mount and interact with a ceph storage cluster."
385 depends="py3-cephfs$_majorver=$pkgver-r$pkgrel
386 py3-prettytable
387 py3-rados$_majorver=$pkgver-r$pkgrel
388 py3-rbd$_majorver=$pkgver-r$pkgrel
389 "
390 _default_replace_majorversion
391
392 amove usr/bin/ceph \
393 usr/bin/ceph-authtool \
394 usr/bin/ceph-conf \
395 usr/bin/ceph-rbdnamer \
396 usr/bin/rados \
397 usr/bin/rbd \
398 usr/bin/rbdmap \
399 usr/share/ceph/*.ceph.com* \
400 etc/ceph/rbdmap
401
402 amove "$(_py3_sitelib)"/ceph_argparse.py* "$(_py3_sitelib)"/ceph_daemon.py*
403
404 amove usr/lib/udev/rules.d/50-rbd.rules
405 install -m 3770 -o $pkgusers -g $pkggroups -d \
406 "$subpkgdir"/var/log/ceph
407 install -m 750 -o $pkgusers -g $pkggroups -d \
408 "$subpkgdir"/var/lib/ceph
409}
410
411mds() {
412 pkgdesc="Metadata server daemon for the Ceph distributed file system."
413 depends="$pkgname-base=$pkgver-r$pkgrel"
414 _default_replace_majorversion
415
416 amove usr/bin/ceph-mds
417 install -m 750 -o $pkgusers -g $pkggroups -d \
418 "$subpkgdir"/var/lib/ceph/mds
419}
420
421mon() {
422 pkgdesc="Cluster monitor daemon virtual package for the Ceph distributed file system."
423 depends="$pkgname-base=$pkgver-r$pkgrel
424 $pkgname-mon-daemon=$pkgver-r$pkgrel
425 $pkgname-mon-tools=$pkgver-r$pkgrel
426 "
427 _default_replace_majorversion
428
429 mkdir -p "$subpkgdir"
430}
431
432mon_daemon() {
433 pkgdesc="Cluster monitor daemon for the Ceph distributed file system."
434 depends="$pkgname-user=$pkgver-r$pkgrel"
435 _default_replace_majorversion
436
437 amove usr/bin/ceph-mon
438 install -m 750 -o $pkgusers -g $pkggroups -d \
439 "$subpkgdir"/var/lib/ceph/mon
440}
441
442mon_tools() {
443 pkgdesc="Cluster monitor tools for the Ceph distributed file system."
444 depends=
445 _default_replace_majorversion
446
447 amove usr/bin/ceph-monstore-tool
448 install -m 750 -o $pkgusers -g $pkggroups -d \
449 "$subpkgdir"/var/lib/ceph/mon
450}
451
452ceph_fuse() {
453 pkgdesc="FUSE based client for Ceph distributed network file system."
454 depends="mount"
455 _default_replace_majorversion
456
457 amove usr/bin/ceph-fuse sbin/mount.fuse.ceph
458}
459
460ceph_mount() {
461 pkgdesc="CephFS mount tools"
462 depends="librados$_majorver=$pkgver-r$pkgrel"
463 _default_replace_majorversion
464
465 amove sbin/mount.ceph
466}
467
468rbd_fuse() {
469 pkgdesc="FUSE based client to map Ceph rbd images to files."
470 depends=
471 _default_replace_majorversion
472
473 amove usr/bin/rbd-fuse
474}
475
476rbd_mirror() {
477 pkgdesc="Daemon for mirroring RBD images between Ceph clusters."
478 depends="$pkgname-common=$pkgver-r$pkgrel"
479 _default_replace_majorversion
480
481 amove usr/bin/rbd-mirror
482}
483
484rbd_nbd() {
485 pkgdesc="NBD based client to map Ceph rbd images to local device."
486 depends=
487 _default_replace_majorversion
488
489 amove usr/bin/rbd-nbd
490}
491
492radosgw() {
493 pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs."
494 depends="$pkgname-common=$pkgver-r$pkgrel oath-toolkit-liboath"
495 _default_replace_majorversion
496
497 amove usr/bin/radosgw*
498 amove usr/bin/rgw-*
499 mkdir -p "$subpkgdir"/var/lib/ceph/radosgw
500}
501
502osd() {
503 pkgdesc="Object storage daemon virtual package for the Ceph distributed file system."
504 depends="$pkgname-osd-daemon=$pkgver-r$pkgrel
505 $pkgname-osd-tools=$pkgver-r$pkgrel
506 $pkgname-volume=$pkgver-r$pkgrel"
507 _default_replace_majorversion
508
509 mkdir -p "$subpkgdir"
510}
511
512common_daemon() {
513 pkgdesc="Common files for object storage daemon for the Ceph distributed file system."
514 depends="$_osd_daemon_deps $pkgname-user=$pkgver-r$pkgrel"
515 _default_replace_majorversion
516
517 amove usr/libexec/ceph/ceph-osd-prestart.sh \
518 etc/sudoers.d/ceph-smartctl \
519 etc/sysctl.d/90-ceph-osd.conf
520 install -m 750 -o $pkgusers -g $pkggroups -d \
521 "$subpkgdir"/var/lib/ceph/osd
522}
523
524crimson_daemon() {
525 pkgdesc="Crimson object storage daemon for the Ceph distributed file system."
526 depends="!$pkgname-osd-classic-daemon $pkgname-common-daemon=$pkgver-r$pkgrel"
527 _default_replace_majorversion
528 provides="$provides $pkgname-osd-daemon=$pkgver-r$pkgrel"
529 provider_priority=50
530
531 install -Dm755 "$pkgdir"/usr/bin/crimson-osd "$subpkgdir"/usr/bin/ceph-osd
532 rm "$pkgdir"/usr/bin/crimson-osd
533}
534
535osd_daemon() {
536 pkgdesc="Object storage daemon for the Ceph distributed file system."
537 depends="!$pkgname-osd-crimson-daemon $pkgname-common-daemon=$pkgver-r$pkgrel"
538 _default_replace_majorversion
539 provides="$provides $pkgname-osd-daemon=$pkgver-r$pkgrel"
540 provider_priority=100
541
542 amove usr/bin/ceph-osd
543}
544
545osd_tools() {
546 pkgdesc="Object storage daemon tools for the Ceph distributed file system."
547 depends="$pkgname-base=$pkgver-r$pkgrel $_osd_tools_deps"
548 _default_replace_majorversion
549
550
551 if [ "$_crimson" = ON ]; then
552 amove usr/bin/crimson-store-nbd
553 fi
554
555 amove usr/bin/ceph-clsinfo usr/bin/ceph-*-tool
556 install -m 750 -o $pkgusers -g $pkggroups -d \
557 "$subpkgdir"/var/lib/ceph/osd
558}
559
560ceph_volume() {
561 pkgdesc="ceph-volume tool for the Ceph distributed file system."
562 depends="$_ceph_volume_deps"
563 _default_replace_majorversion
564
565 amove usr/sbin/ceph-volume \
566 "$(_py3_sitelib)"/ceph_volume "$(_py3_sitelib)"/ceph_volume-*
567}
568
569librados() {
570 pkgdesc="RADOS distributed object store client library"
571 depends=
572 _default_replace_majorversion
573
574 amove usr/$_libdir/librados.so.* usr/$_libdir/ceph/libceph-common.so.*
575}
576
577_py3_rados() {
578 pkgdesc="Python libraries for the RADOS object store"
579 depends=py3-$pkgname-common=$pkgver-r$pkgrel
580 _default_replace_majorversion
581
582 amove "$(_py3_sitelib)"/rados*
583}
584
585libradosstriper() {
586 pkgdesc="RADOS striping library"
587 depends=
588 _default_replace_majorversion
589
590 amove usr/$_libdir/libradosstriper.so.*
591}
592
593librbd() {
594 pkgdesc="RADOS block device client library"
595 depends=
596 _default_replace_majorversion
597
598 amove usr/$_libdir/librbd.so.*
599}
600
601_py3_rbd() {
602 pkgdesc="Python libraries for the RADOS block device"
603 depends="py3-rados$_majorver=$pkgver-r$pkgrel"
604 _default_replace_majorversion
605
606 amove "$(_py3_sitelib)"/rbd*
607}
608
609libcephsqlite() {
610 pkgdesc="SQLite Virtual File System (VFS) on top of RADOS"
611 depends=
612 _default_replace_majorversion
613
614 amove usr/$_libdir/libcephsqlite.so*
615}
616
617libcephfs() {
618 pkgdesc="Ceph distributed file system client library"
619 depends=
620 _default_replace_majorversion
621
622 amove usr/$_libdir/libcephfs.so.*
623}
624
625mirror() {
626 pkgdesc="daemon for mirroring CephFS directory snapshots between Ceph clusters"
627 depends=
628 _default_replace_majorversion
629
630 amove usr/bin/cephfs-mirror
631}
632
633shell() {
634 pkgdesc="interactive shell for the Ceph distributed file system"
635 depends="py3-rados$_majorver=$pkgver-r$pkgrel"
636 _default_replace_majorversion
637
638 amove "$(_py3_sitelib)"/cephfs_shell*
639 amove usr/bin/cephfs-shell
640}
641
642top() {
643 pkgdesc="top like utility to display various filesystem metrics in realtime"
644 depends="py3-rados$_majorver=$pkgver-r$pkgrel"
645 _default_replace_majorversion
646
647 amove "$(_py3_sitelib)"/cephfs_top*
648 amove usr/bin/cephfs-top
649}
650
651_py3_cephfs() {
652 pkgdesc="Python libraries for Ceph distributed file system"
653 depends="py3-rados$_majorver=$pkgver-r$pkgrel"
654 _default_replace_majorversion
655
656 amove "$(_py3_sitelib)"/cephfs*
657}
658
659_py3_ceph_common() {
660 pkgdesc="Python dependencies for $pkgname distributed file system"
661 depends="py3-setuptools py3-yaml"
662 _default_replace_majorversion
663
664 amove "$(_py3_sitelib)"/ceph-*.egg-info "$(_py3_sitelib)"/ceph
665}
666
667utils() {
668 pkgdesc="Ceph utils and recovery tools"
669 depends="$pkgname-common=$pkgver-r$pkgrel"
670 _default_replace_majorversion
671
672 amove usr/bin/ceph-diff-sorted \
673 usr/bin/ceph-post-file \
674 usr/bin/ceph-syn \
675 usr/bin/cephfs-data-scan \
676 usr/bin/ceph-dencoder \
677 usr/$_libdir/ceph/denc \
678 usr/bin/cephfs-journal-tool \
679 usr/bin/cephfs-table-tool \
680 usr/bin/rbd-replay* \
681 usr/bin/crushdiff
682}
683
684bash_completion() {
685 pkgdesc="Bash completions for Ceph"
686 depends=
687 _default_replace_majorversion
688
689 install_if="ceph=$pkgver-r$pkgrel bash-completion"
690 amove etc/bash_completion.d/*
691}
692
693mgr_dashboard() {
694 pkgdesc="Dashboard module for ceph-mgr"
695 depends="
696 $pkgname-common=$pkgver-r$pkgrel
697 $pkgname-mgr=$pkgver-r$pkgrel
698 $_dashboard_deps
699 "
700 _default_replace_majorversion
701
702 amove usr/share/ceph/mgr/dashboard
703}
704
705mgr_diskpredicton_local() {
706 pkgdesc="diskprediction-local module for ceph-mgr"
707 depends="$pkgname-mgr=$pkgver-r$pkgrel
708 py3-numpy
709 py3-scikit-learn
710 py3-scipy
711 "
712 _default_replace_majorversion
713
714 amove usr/share/ceph/mgr/diskprediction_local
715}
716
717mgr_modules_core() {
718 pkgdesc="ceph manager modules which are always enabled"
719 depends="
720 $_mgr_modules_deps
721 "
722 _default_replace_majorversion
723
724 local _mod="alerts balancer crash devicehealth influx insights iostat localpool mirroring nfs orchestrator \
725 osd_perf_query osd_support pg_autoscaler progress prometheus rbd_support snap_schedule \
726 stats status telegraf telemetry test_orchestrator volumes"
727 for _m in ${_mod}; do
728 amove usr/share/ceph/mgr/"$_m"
729 done
730}
731
732mgr_rook() {
733 pkgdesc="rook module for ceph-mgr"
734 depends="$pkgname-mgr=$pkgver-r$pkgrel
735 py3-jsonpatch
736 py3-kubernetes"
737 _default_replace_majorversion
738
739 amove usr/share/ceph/mgr/rook
740}
741
742mgr_k8events() {
743 pkgdesc="kubernetes events module for ceph-mgr"
744 depends="$pkgname-mgr=$pkgver-r$pkgrel
745 py3-kubernetes
746 py3-yaml"
747 _default_replace_majorversion
748
749 amove usr/share/ceph/mgr/k8sevents
750}
751
752mgr() {
753 pkgdesc="Ceph Manager Daemon"
754 depends="$pkgname-base=$pkgver-r$pkgrel
755 $pkgname-mgr-modules-core=$pkgver-r$pkgrel"
756 _default_replace_majorversion
757
758 amove usr/bin/ceph-mgr usr/share/ceph/mgr
759
760 install -m 750 -o $pkgusers -g $pkggroups -d \
761 "$subpkgdir"/var/lib/ceph/mgr
762}
763
764cephadm() {
765 pkgdesc="cephadm tool $pkgver"
766 depends="lvm2"
767 _default_replace_majorversion
768
769 amove usr/sbin/cephadm
770}
771
772_default_replace_majorversion() {
773 if [ "$_default_ceph" = "yes" ]; then
774 local stripped="${subpkgname/"$_majorver"/}"
775 # we want to replace both the generic name (ceph-) and the prior major (ceph1X-)
776 replaces="$stripped ${subpkgname/"$_majorver"/"$(( _majorver - 1 ))"}"
777 provides="$stripped=$pkgver-r$pkgrel"
778 fi
779}
780
781sha512sums="
78259aa027ef3efa67f541518a6a57845de72b4f25a40d959ccf5a91195fa4b728c9b7e9bb269cd01f85e837d5266f36d5aa3438179f275cecc7520ae30dcc8c9f4 ceph-20.2.4.tar.gz
783110bdbcb40216c7ed155a8d23020784741b4992d895f4f04a146d275506e4e68053854d3b063b41e9c9b3e3e4f95b6b90602f92c185c853c0d8f47ad0c6b7121 ceph.confd
784ce5f162501f6b67fe254546dddf880d1a5b1d1a0fa69e0b1918de17e8da45c5c6124512b8cbd98b76f29d931403de0d11c5ffd330ed8ee1f4dc75bb04baecae3 ceph.initd
785c6f71e32897d434a1c02672df02dd8417cc7945ed9be3f28c00ce5015c0b9bdaec7af0865a0243d2b86def1e17faddcb4b0764b09f47376b2b0f6178a503296e 10-isal_crypto.patch
7865a9ee5212124cea4ba0e779bd43547923f69587b330ddcce024b26d0ce9aa75d7dc689cac84902b9087d4e8e496a13cee43855053d7a89a51bbd247c32607bea 10-isal.patch
78794687578411bf0de1b17555ed81c188c88ea63ac4a25993bd8fde9cf68afbbfbdec7b2d7c54fdcfbd4aed4eb78754e8061c308955596cbe037ff15b575874cc6 10-musl-fixes.patch
78856e587cba77202db2ca5de915a384aef023e505437d4a7a35e3e51ec6d159642d46520a124543d5600a62ea107c74e059b05b8326e37e72ba36cba44e5777601 10-xxhash.patch
789211e6f5f8fc962878196ec917984781eb4a8a9495bcc8d1729b34ac66abd2d4a0b7388ae2caee9d5deb664d54860d120a37215924625e82eac9bfca16179667a 11-dump_time_header_impl.patch
790961d39dcd52c22ba13f160710606584434ba42444e7efa3e2789dd48c921aa1d6ec8d4b83c6826198ffc43f64f08ee327cdd1eff63cb855ecd3a47c85a880919 11-lfs.patch
791253a7bf9fa6a68547f2c9269570be86aa659ef75ab0ed4c9d1a53be70de1ca6079508f19fe5ddb02ed9edda349e121037f8ed4d6b5b0e640edaab863ce6b280d 11-parse_rfc1123_alt.patch
792abb3cab9c01cc3d6d42a9858678059a8c9c43bda2649bf97b489fdc205eb10ae27f9fb7302062e0fb41f5cffddbfc2ae529130569034f373732a0a5d33aba86e 35-fix_ErasureCodeShec.patch
79361f5f243c0c320de1155d221bc13db40e56dbc4209e0a872b50a345e6c240657eede51ee91f501dcf97ed1754c537806b0d4ad8e1f123a3ccaee61201776647b 48-arrow20.patch
794afef1cc7e43f500d95d2ffd1687cfcb756e9d8dec729186a25d513d4401b38f00edac922562a161575b1da1a65ded3e99d01cf34f9bc329f6d08cf2b896acd0c gcc13.patch
795f5f46fe92d5470ba2910efea4e5080201f3e9a66e7d79e05c0835b1f8b5b1f53a20c2ac73f23232f0af684f035a6d31086a01a93364d8e464ec84409294e9c95 crimson.patch
7960bf947f3d3ce43727ea059cfda37a9095aeafea17d634b5d67d199ca6e9e98df5d4e9f28a61a22cb0f86dffdaea5b02a6fcafcab711599a5488535a32ff86b09 crimson2.patch
7978c8f09cee299edf3499fd458a1cd684768aad46a5d50f43f3b3a69c6c7b3f179ce8858930bf3861a93e8412b9067a88a1c165b52ba50f144c37062878963ce82 crimson3.patch
7980af6aa64338eebe730016993c1dc2e33342cdbf93dde9e10f682376a98f8d1ae3a78b38323d88557c0dffeef924540e79a25bd639ce3188c0943bcef82af7e6f limits_h.patch
799cffc72597dfa395cac051bb17558b6e680bedb1cc9fdb3b469365ec1bf58eefe1f27947bae6fb20bc747432d8414ef4eaf36798789686db383f1e1e1eee45c37 s390x.patch
80021f37a57b14d8783083890037b4abe28faf595d7a14beebb842ea42ebfc55669cc57628022e0ab952273f9fc035c4178ca1349452da23aaef41202199f4c3ec7 boost-system-1.89.patch
801f2aebf6e4891c766f70fe520787d7d96cfb79984aba80521b362064e7d1b1932ce3f30a257a368bc7aa3efd2a31bacfa212e57c33bd495fdf3ee6192bced32ec boost-TrackedOp-1.89.patch
80215793fba6aa69e7a47ccc0120647bad75829686b28c03f9d472abe01b3c9d521e2ae2537ffbb143fbf342d8142bcb348d6a1721f469715f13aac592025faa01d boost-1.90-1.patch
803c814de76004bc1669d8cab4bdc2344d326cfd424edf4b7f863a297baf2f14cff91319561628803898a87592176bc4abdf468ae31bc1dc4f9ee7b0793ed8549b0 boost-1.90-2.patch
804dc0762a42ac4420e9908aa015926af7a36ae4ba327c7b465502ca576c6789a21577cd2ec08069f786cfc40bb38b7072f90474621479fbc71aa893c8f00ce4c19 boost-1.90-3.patch
8051efa476648c091f87489231fcb5a37cbae0da370e80907c9aea0a78772706260ffaa77bf0bbf1397d1d2f43bba32629f4ce938b46a2dd174f098a86e4e09f220 old_kernel.patch
8063730b330dab7a1345969583dc3ff96ed4b4f34c44ff86a16d1f1cf0b6d9265aab077f052002af7e22840bc2739f6000eb84e60181b05682211b4dade360d2007 prebuilt-dashboard.patch
807c7c9527056bcdae10a947d66b0cc69065fd7de124a43a0ec904240ce09681f9cdfdec70b96a7474fffc2e739fc212a8cfc94a4fa03e237cc925c8485048d0b61 seastar275a9103a26ccbaf5a2a8321a040118d1212f156.tar.gz
8081643dcb863233e43cfecb64d98e6464716442257e365b2b232ac02d43143b01dd237f5ec39a48d672e2acefe0393292ea5ddcf424e87c2ea27174cc58749cad4 frontend_dist-20.2.4.tar.gz
809"