fsblame
LOW
maintainer arinerron
0 votes
scanned 2026-10-17 05:17:05.948410
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Aaron Esau <git at aaronesau dot com>
2
#
3
# Builds the release tag from source (glibc, dynamically linked), with the man pages the
4
# repository's xtask renders. GitHub tag archives omit submodules, so the tracekit
5
# submodule comes from its own tag archive (update _tracekit when the submodule moves).
6
# fsblame needs Linux >= 5.17 with BTF and CAP_BPF + CAP_PERFMON (sudo, or setcap).
7
# fsblame-record.service is installed but not enabled: set FSBLAME_PATHS in
8
# /etc/default/fsblame, then `systemctl enable --now fsblame-record`.
9
10
pkgname=fsblame
11
pkgver=0.1.1
12
pkgrel=1
13
_tracekit=0.1.0
14
pkgdesc="Which command changed this file? Live eBPF attribution of file changes to the full process lineage"
15
arch=(x86_64 aarch64)
16
url=https://github.com/Arinerron/fsblame
17
license=(MIT)
18
depends=(glibc libgcc)
19
# clang compiles the BPF programs; fsblame needs Rust >= 1.94.
20
makedepends=(cargo clang)
21
backup=(etc/default/fsblame)
22
source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
23
"tracekit-$_tracekit.tar.gz::https://github.com/Arinerron/tracekit/archive/v$_tracekit.tar.gz")
24
sha256sums=('1e1a8c88b510295a55fa2e8024ec1d3dbbe1f042bbcf98464ec9250b25d71d0a'
25
'c5d39a2c096b5e743a5b62085e84184cd682e0b6e127bfac23dd37dcfb058252')
26
27
prepare() {
28
cd "$pkgname-$pkgver"
29
rmdir tracekit
30
mv ../"tracekit-$_tracekit" tracekit
31
# rust-toolchain.toml asks rustup for the musl targets the releases use; build for the
32
# host with the system toolchain instead.
33
export RUSTUP_TOOLCHAIN=stable
34
cargo fetch --locked --target "$(rustc -vV | sed -n 's/^host: //p')"
35
}
36
37
build() {
38
cd "$pkgname-$pkgver"
39
export RUSTUP_TOOLCHAIN=stable
40
export CARGO_TARGET_DIR=target
41
cargo build --frozen --release -p fsblame
42
cargo run --frozen -p xtask -- man man
43
}
44
45
check() {
46
cd "$pkgname-$pkgver"
47
export RUSTUP_TOOLCHAIN=stable
48
export CARGO_TARGET_DIR=target
49
cargo test --frozen -p fsblame
50
}
51
52
package() {
53
cd "$pkgname-$pkgver"
54
local bin=target/release/fsblame
55
install -Dm755 "$bin" -t "$pkgdir/usr/bin"
56
install -Dm644 man/*.1 -t "$pkgdir/usr/share/man/man1"
57
"$bin" completions bash | install -Dm644 /dev/stdin "$pkgdir/usr/share/bash-completion/completions/fsblame"
58
"$bin" completions zsh | install -Dm644 /dev/stdin "$pkgdir/usr/share/zsh/site-functions/_fsblame"
59
"$bin" completions fish | install -Dm644 /dev/stdin "$pkgdir/usr/share/fish/vendor_completions.d/fsblame.fish"
60
# The unit runs /usr/local/bin/fsblame, the README's path for a tarball install.
61
sed '/^ExecStart=/s|/usr/local/bin/fsblame|/usr/bin/fsblame|' contrib/systemd/fsblame-record.service |
62
install -Dm644 /dev/stdin "$pkgdir/usr/lib/systemd/system/fsblame-record.service"
63
install -Dm644 contrib/systemd/fsblame.default "$pkgdir/etc/default/fsblame"
64
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
65
}
66
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-17 05:17:05 | Low | 1 |