aboutsummaryrefslogtreecommitdiffstats
path: root/community/below/APKBUILD
blob: bdc1408e4602d42cd752431edc388f3b2873e118 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=below
pkgver=0.6.3
pkgrel=0
pkgdesc="A time traveling resource monitor for modern Linux systems"
url="https://github.com/facebookincubator/below"
# riscv64: blocked by cargo
# s390x: fails to build nix crate
arch="all !riscv64 !s390x"
license="Apache-2.0"
# NOTE: libbpf-cargo requires rustfmt
makedepends="
	cargo
	clang
	libbpf-dev
	rustfmt
	zlib-dev
	zstd-dev
	"
subpackages="
	$pkgname-openrc
	$pkgname-bash-completion
	$pkgname-fish-completion
	$pkgname-zsh-completion
	"
source="https://github.com/facebookincubator/below/archive/v$pkgver/$pkgname-$pkgver.tar.gz
	fix-sudotest.patch
	$pkgname.initd
	$pkgname.confd
	$pkgname.logrotate
	"

case "$CARCH" in
	# XXX: btrfs tests are broken
	armhf | armv7 | x86) options="!check";;
esac

_cargo_opts="--frozen --features no-vendor"

# below may not work correctly with panic=abort.
export CARGO_PROFILE_RELEASE_PANIC="unwind"

prepare() {
	default_prepare

	cargo fetch --locked
}

build() {
	cargo build $_cargo_opts --release

	mkdir -p target/completion
	local sh; for sh in bash fish zsh; do
		./target/release/below generate-completions -s $sh -o target/completion/below.$sh
	done
}

check() {
	# Skip tests that require host to have cgroup2 (copied from upstream's ci.yml)
	cargo test $_cargo_opts -- \
		--skip test_dump \
		--skip advance_forward_and_reverse \
		--skip disable_disk_stat \
		--skip disable_io_stat \
		--skip record_replay_integration \
		--skip test_belowrc_to_event \
		--skip test_event_controller_override \
		--skip test_event_controller_override_failed \
		--skip test_viewrc_collapse_cgroups \
		--skip test_viewrc_default_view
}

package() {
	cd target

	install -D -m755 release/below -t "$pkgdir"/usr/bin/

	install -D -m644 completion/$pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
	install -D -m644 completion/$pkgname.fish "$pkgdir"/usr/share/fish/completions/$pkgname.fish
	install -D -m644 completion/$pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname

	install -D -m755 "$srcdir"/below.initd "$pkgdir"/etc/init.d/$pkgname
	install -D -m644 "$srcdir"/below.confd "$pkgdir"/etc/conf.d/$pkgname
	install -D -m644 "$srcdir"/below.logrotate "$pkgdir"/etc/logrotate.d/$pkgname

	install -d -m755 "$pkgdir"/var/log/$pkgname
}

sha512sums="
4d4f357f50f9aabf6246022d949753622d132b46e303b74de4991cf6b1134748127abf2f6a0101a153dbefdb3583ca1915b8cb17a4a3c2faf30a94592f6720a8  below-0.6.3.tar.gz
1f9a380537bfab93d5b5184ffb82b0b737428c3672344b8d71ed12d18c1c798cfdaa8e5713be21551ad7e8dc1f4c6b653f1309852355daf86d45bfadd3ca37c3  fix-sudotest.patch
e15900998f592e5d519a3698aa861d77269e2196414ed69dacfbdc23a3df355b0f95cc64abc18ddcbf7b4fadafd27ee6cf6a75631d6771cf69c23cb45988c8d9  below.initd
05ca8ad81eaf6f5ccccef2e79dd9b9ec7fc296cf184128da8d99b94a6462db822cd76f42ffbecee7db009e7905c5e4bc31939fb905a80ab4faa9b10e93f9479e  below.confd
f9aa8f1d598603898396bde7404e511ccac0887e6dafd2db0b749efe255855bccb724a4969a93a29e437d344523a24859daedd8d21ad02f8fd2c70f03c6b74e5  below.logrotate
"