cirrocast
LOW
maintainer yangtsesu
0 votes
scanned 2026-10-06 18:03:40.155073
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: Yangtse Su <yangtsesu at gmail dot com>
2
# SPDX-FileCopyrightText: 2026 Yangtse Su <yangtsesu@gmail.com>
3
# SPDX-License-Identifier: 0BSD
4
#
5
# The packaging files live only in this repository: the project keeps no copy, so this is the
6
# single source of truth for how cirrocast is packaged. The rationale is recorded in the project
7
# (docs/plans/13-packaging-and-release.md) and the release checklist is in its README under
8
# "Packaging and release".
9
#
10
# Every bump is verified with:
11
# namcap PKGBUILD
12
# makepkg --printsrcinfo | diff - .SRCINFO # must print nothing
13
# makepkg -f && namcap cirrocast-*.pkg.tar.zst
14
# pkgctl build # clean chroot
15
# cirrocast --version && man -w cirrocast && pacman -Ql cirrocast | grep -c completions # 3
16
17
pkgname=cirrocast
18
pkgver=1.2.0
19
pkgrel=1
20
pkgdesc="Terminal weather client with pluggable backends and wttr.in-style output"
21
arch=('x86_64' 'aarch64')
22
url="https://github.com/YangtseSu/cirrocast"
23
license=('GPL-3.0-or-later')
24
depends=('gcc-libs' 'glibc')
25
makedepends=('cargo' 'jq' 'rust')
26
options=('!lto' '!debug')
27
source=("$pkgname-$pkgver.tar.gz::https://github.com/YangtseSu/cirrocast/archive/refs/tags/v$pkgver.tar.gz")
28
sha256sums=('dad09fbe53b02a94e27e34b4bfe71064beccf697a754731fdb1773817051719a')
29
30
# Rust's target triple for both supported architectures is exactly `<arch>-unknown-linux-gnu`, and
31
# `$CARCH` already holds the architecture, so nothing has to be mapped by hand. There is no
32
# cross-compilation here: the crate builds with its own toolchain for the machine makepkg runs on.
33
_triple() {
34
echo "${CARCH}-unknown-linux-gnu"
35
}
36
37
build() {
38
cd "$pkgname-$pkgver"
39
cargo build --release --locked --target "$(_triple)"
40
}
41
42
check() {
43
cd "$pkgname-$pkgver"
44
# The tag tarball's crate version must be the one this PKGBUILD claims: a stale PKGBUILD fails
45
# here instead of shipping a package whose metadata lies.
46
local built
47
# By name: the tarball's workspace has a second member (the dev-only `geo-table` builder) and
48
# `packages[0]` resolves to that one.
49
built="$(cargo metadata --format-version 1 --no-deps \
50
| jq -r '.packages[] | select(.name == "cirrocast") | .version')"
51
if [[ "$built" != "$pkgver" ]]; then
52
echo "cirrocast: PKGBUILD says $pkgver but the tarball builds $built" >&2
53
exit 1
54
fi
55
cargo test --release --locked
56
}
57
58
package() {
59
cd "$pkgname-$pkgver"
60
local bin="target/$(_triple)/release/cirrocast"
61
62
install -Dm755 "$bin" "$pkgdir/usr/bin/cirrocast"
63
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
64
65
# The man page and the completions are generated by the binary itself, so they can never drift
66
# from the command line surface they document.
67
"$bin" man > "$srcdir/cirrocast.1"
68
install -Dm644 "$srcdir/cirrocast.1" "$pkgdir/usr/share/man/man1/cirrocast.1"
69
70
"$bin" completion bash > "$srcdir/cirrocast.bash"
71
install -Dm644 "$srcdir/cirrocast.bash" \
72
"$pkgdir/usr/share/bash-completion/completions/cirrocast"
73
"$bin" completion zsh > "$srcdir/_cirrocast"
74
install -Dm644 "$srcdir/_cirrocast" "$pkgdir/usr/share/zsh/site-functions/_cirrocast"
75
"$bin" completion fish > "$srcdir/cirrocast.fish"
76
install -Dm644 "$srcdir/cirrocast.fish" \
77
"$pkgdir/usr/share/fish/vendor_completions.d/cirrocast.fish"
78
}
79
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-06 18:03:40 | Low | 1 |
| 2026-10-06 00:13:36 | Clean | 2 |
| 2026-10-05 23:40:58 | Low | 1 |