ivar
LOW
maintainer mnzs
0 votes
scanned 2026-08-19 03:41:13.749572
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: Gabriel Menezes <gabrielsmenezes99@gmail.com>
2
#
3
# Source package: builds from the GitHub source tag with the local Rust
4
# toolchain. The prebuilt counterpart is `ivar-bin` (PKGBUILD-bin), which
5
# consumes the binaries release-binaries.yml attaches to the same tag.
6
#
7
# This file is the source of truth; the AUR repo is a publish target.
8
# .github/workflows/release-aur.yml rewrites pkgver/pkgrel/sha256sums and
9
# pushes it. Do not hand-edit those three fields in the AUR checkout.
10
11
pkgname=ivar
12
pkgver=0.2.0
13
pkgrel=1
14
pkgdesc="Mount the repos a feature spans into one directory, on one branch, for one agent session"
15
arch=('x86_64' 'aarch64')
16
url="https://github.com/mnzsss/ivar"
17
license=('Apache-2.0')
18
# git is a runtime dependency, not just a build one: ivar reads through libgit2
19
# but every mutation shells out to the git binary (docs/adr/0001 §3).
20
depends=('gcc-libs' 'glibc' 'git')
21
makedepends=('cargo')
22
optdepends=(
23
'github-cli: authentication and pull requests without exporting a token'
24
)
25
conflicts=('ivar-bin')
26
# !lto: the vendored libgit2 is compiled as C through the `cc` crate, which
27
# inherits makepkg's CFLAGS. Feeding GCC LTO objects into the Rust link is a
28
# known way to get an obscure link failure, and [profile.release] already
29
# sets lto = true for the Rust side.
30
# !debug: [profile.release] sets strip = true, so there are no symbols for a
31
# -debug split package to carry.
32
options=('!lto' '!debug')
33
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
34
sha256sums=('440d5c7523ec67e874f56414022b7222447b42d9295938bc4c03c1d2660f9e4e')
35
36
prepare() {
37
cd "$pkgname-$pkgver"
38
export RUSTUP_TOOLCHAIN=stable
39
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
40
}
41
42
build() {
43
cd "$pkgname-$pkgver"
44
# rust-toolchain.toml pins 1.97.1 so a compiler release cannot turn CI red
45
# on an unrelated day. That is a CI reproducibility choice, not a floor:
46
# the published contract is rust-version in Cargo.toml. Overriding it here
47
# is what lets Arch's own rustc build the package, and it is also what the
48
# Arch Rust packaging guidelines ask for.
49
export RUSTUP_TOOLCHAIN=stable
50
export CARGO_TARGET_DIR=target
51
cargo build --frozen --release
52
}
53
54
check() {
55
cd "$pkgname-$pkgver"
56
export RUSTUP_TOOLCHAIN=stable
57
export CARGO_TARGET_DIR=target
58
# Test fixtures force their own identity, but ivar's own commit paths
59
# deliberately do not — a commit landing in a user's repository carries
60
# that user's authorship, not the tool's. So they inherit the machine's
61
# git config, which a build chroot does not have. Without these three
62
# lines the suite dies on `empty ident name`.
63
export HOME="$srcdir/check-home"
64
install -d "$HOME"
65
git config --global user.name "ivar package build"
66
git config --global user.email "ivar@localhost"
67
cargo test --frozen --release
68
}
69
70
package() {
71
cd "$pkgname-$pkgver"
72
73
install -Dm0755 target/release/ivar "$pkgdir/usr/bin/ivar"
74
install -Dm0644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
75
install -Dm0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
76
install -Dm0644 NOTICE "$pkgdir/usr/share/licenses/$pkgname/NOTICE"
77
}
78
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-19 03:41:13 | Low | 1 |