castr

LOW
maintainer mrcode 0 votes scanned 2026-08-20 11:11:30.284264
View on AUR
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: Basem Aljedai <baljedai@gmail.com>
2pkgname=castr
3pkgver=0.1.0
4pkgrel=1
5pkgdesc="Cast your Hyprland screen to an AirPlay receiver: mirror or extend, from a menu or the CLI"
6arch=('x86_64' 'aarch64')
7url="https://github.com/mrCode/castr"
8license=('MIT')
9
10# avahi is the only hard runtime dependency: castr asks it what is on the
11# network rather than running its own mDNS browser, because avahi has been warm
12# since boot and answers instantly while a fresh browser takes seconds.
13depends=('avahi')
14
15# doubletake does the actual AirPlay work. It is an optdepend rather than a
16# depend so `castr list` and the menu still work while you install it -- and
17# because it lives in the AUR, which a depend cannot pull in for you.
18optdepends=(
19 'doubletake-git: AirPlay streaming (REQUIRED to cast; 0.4.0 cannot capture on Hyprland)'
20 'hyprland: required in practice — castr drives its outputs and screen-share portal'
21 'libnotify: desktop notifications'
22 'quickshell: bar widget on Omarchy Quarto and later (see castr-indicator)'
23 'waybar: bar indicator on earlier setups'
24)
25makedepends=('go' 'git')
26
27# The binaries are built with -s -w, so there are no debug symbols to split
28# out. Without this makepkg still emits an empty castr-debug package and warns
29# about it on every build.
30options=('!debug')
31install="${pkgname}.install"
32
33source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz")
34sha256sums=('fd99250e304dfff0e596d2fe94399061297507423cc1812d1b1f2240cabd3e51')
35
36build() {
37 cd "${srcdir}/${pkgname}-${pkgver}"
38 export CGO_ENABLED=0 # a single static binary is the point of the rewrite
39 export GOFLAGS="-trimpath -mod=readonly -modcacherw"
40 export GOPATH="${srcdir}/gopath"
41
42 go build -ldflags "-s -w -X main.version=${pkgver}" -o build/castr ./cmd/castr
43 go build -ldflags "-s -w -X main.version=${pkgver}" -o build/castrd ./cmd/castrd
44}
45
46check() {
47 cd "${srcdir}/${pkgname}-${pkgver}"
48 export GOPATH="${srcdir}/gopath"
49 # The suite needs no compositor, no network, and no receiver: every external
50 # command is injected. The process-group tests do spawn real short-lived
51 # shells, which is the point of them.
52 go test ./...
53}
54
55package() {
56 cd "${srcdir}/${pkgname}-${pkgver}"
57
58 install -Dm755 build/castr "${pkgdir}/usr/bin/castr"
59 install -Dm755 build/castrd "${pkgdir}/usr/bin/castrd"
60
61 install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
62 install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
63
64 # Bar integrations, both shipped: Omarchy Quarto replaced waybar with
65 # Quickshell, and older setups still run waybar.
66 install -Dm644 share/quickshell/castr-indicator/manifest.json \
67 "${pkgdir}/usr/share/${pkgname}/quickshell/castr-indicator/manifest.json"
68 install -Dm644 share/quickshell/castr-indicator/Widget.qml \
69 "${pkgdir}/usr/share/${pkgname}/quickshell/castr-indicator/Widget.qml"
70 install -Dm644 share/waybar/cast-indicator.jsonc \
71 "${pkgdir}/usr/share/${pkgname}/waybar/cast-indicator.jsonc"
72 install -Dm644 share/waybar/cast-indicator.css \
73 "${pkgdir}/usr/share/${pkgname}/waybar/cast-indicator.css"
74}
75

Scan history

Scanned at (UTC)SeverityRules
2026-08-20 11:11:30 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion