blob: 1805ae576abfa0bc6fdeb7d1c10e65d15436e01a (
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
|
# Maintainer: DeepChirp <DeepChirp@outlook.com>
pkgname=rustnet-git
_pkgname=${pkgname%-git}
_reponame=${pkgname%-git}
pkgver=r223.df38754
pkgrel=1
pkgdesc="Real-time network monitoring TUI with process identification via eBPF and deep packet inspection"
arch=('x86_64' 'armv7h' 'aarch64')
_author=domcyrus
url="https://github.com/${_author}/${_reponame}"
license=('Apache-2.0')
depends=('libpcap' 'libelf' 'zlib' 'gcc-libs' 'glibc')
makedepends=('git' 'cargo' 'pkgconf' 'clang' 'llvm' 'lld' 'libbpf')
provides=(${pkgname%-git})
conflicts=("${pkgname%-git}" "${pkgname%-git}-bin")
install=$_pkgname.install
source=("git+https://github.com/${_author}/${_reponame}.git"
"rustnet-setcap.hook")
sha256sums=('SKIP'
'b14ba212f2a589ca327a2e59563a4fdd3787c022baf43b6dc249b03814757cc4')
pkgver() {
cd "$srcdir/$_reponame"
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
prepare() {
cd "$srcdir/$_reponame"
export RUSTUP_TOOLCHAIN=stable
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd "$srcdir/$_reponame"
export RUSTUP_TOOLCHAIN=stable
# https://github.com/briansmith/ring/issues/1444#issuecomment-1763272308
# So we use Clang instead of GCC.
export CC="$(command -v clang)"
export AR="$(command -v llvm-ar)"
export NM="$(command -v llvm-nm)"
export RANLIB="$(command -v llvm-ranlib)"
_LD_LLD="$(command -v ld.lld)"
export RUSTFLAGS="-Clinker=$CC -Clink-arg=-fuse-ld=${_LD_LLD}"
export RUSTDOCFLAGS="$RUSTFLAGS"
export CARGO_PROFILE_RELEASE_LTO=thin
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
# Use ebpf for better performance
CFLAGS='-flto=auto' cargo build --frozen --release --features ebpf
}
check() {
cd "$srcdir/$_reponame"
export RUSTUP_TOOLCHAIN=stable
export CC="$(command -v clang)"
export AR="$(command -v llvm-ar)"
export NM="$(command -v llvm-nm)"
export RANLIB="$(command -v llvm-ranlib)"
_LD_LLD="$(command -v ld.lld)"
export RUSTFLAGS="-Clinker=$CC -Clink-arg=-fuse-ld=${_LD_LLD}"
export RUSTDOCFLAGS="$RUSTFLAGS"
export CARGO_PROFILE_RELEASE_LTO=thin
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
CFLAGS='-flto=auto' cargo test --frozen --release --features ebpf
}
package() {
cd "$srcdir/$_reponame"
install -Dm0755 -t "$pkgdir/usr/bin/" "target/release/$_pkgname"
install -Dm644 -t "$pkgdir/usr/share/$_pkgname/hooks/" "$srcdir/rustnet-setcap.hook"
}
|