dogdns
LOW
maintainer l1a
0 votes
scanned 2026-10-07 06:05:09.924014
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: Ken Tobias <kentobias@gmail.com>
2
#
3
# Generated by scripts/render_packaging.py from packaging/aur/PKGBUILD.in in
4
# https://github.com/l1a/dog. Change the template there, not this file. The version and the source
5
# checksum are the only release-specific values: they are supplied when the package is published,
6
# from the tag and from the tarball actually downloaded, so nothing in the repository records a
7
# release and nothing can drift from one.
8
9
pkgname=dogdns
10
pkgver=0.7.12
11
pkgrel=1
12
pkgdesc="Command-line DNS client with colourful output, DoT, DoH and JSON"
13
arch=('x86_64' 'aarch64')
14
url="https://github.com/l1a/dog"
15
license=('GPL-3.0-or-later')
16
depends=('gcc-libs')
17
# `cargo` is provided by the `rust` package. The man page is Markdown in the tree and is
18
# rendered here rather than committed.
19
makedepends=('cargo' 'pandoc')
20
# ring (via rustls) compiles C and assembly through the `cc` crate. makepkg's default LTO flags make
21
# that C code GCC LTO bytecode, which Rust's linker cannot read, and the build fails with
22
# `undefined symbol: ring_core_*` at the final link. Rust packages with C dependencies disable LTO.
23
options=('!lto')
24
# The installed binary is `dog`, which is also what the official `dog` package ships (the
25
# unmaintained upstream tool), so the two cannot be installed together.
26
provides=('dog')
27
conflicts=('dog')
28
# The GitHub tag tarball unpacks to dog-$pkgver/ (the repository is `dog`, the package `dogdns`).
29
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
30
sha256sums=('c9f7a3a046f9e5862454e5e48ada70aa812a9d82ef16f296e605238b3eab2e34')
31
32
prepare() {
33
cd "dog-$pkgver"
34
export RUSTUP_TOOLCHAIN=stable
35
# Fetch now so the build can run with --frozen (offline, and pinned by Cargo.lock).
36
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
37
}
38
39
build() {
40
cd "dog-$pkgver"
41
export RUSTUP_TOOLCHAIN=stable
42
export CARGO_TARGET_DIR=target
43
cargo build --frozen --release
44
45
# The same substitution `just man` does; man/dog.1.md carries a literal VERSION placeholder.
46
sed "s/{{VERSION}}/$pkgver/g" man/dog.1.md | pandoc --standalone -f markdown -t man > "$srcdir/dog.1"
47
48
# Generated by the binary just built, so they cannot disagree with its actual CLI.
49
./target/release/dog --completions bash > "$srcdir/dog.bash"
50
./target/release/dog --completions zsh > "$srcdir/_dog"
51
./target/release/dog --completions fish > "$srcdir/dog.fish"
52
}
53
54
check() {
55
cd "dog-$pkgver"
56
export RUSTUP_TOOLCHAIN=stable
57
# Hermetic: the suite parses arguments and renders output; it makes no DNS queries.
58
cargo test --frozen
59
}
60
61
package() {
62
cd "dog-$pkgver"
63
install -Dm755 target/release/dog "$pkgdir/usr/bin/dog"
64
install -Dm644 "$srcdir/dog.1" "$pkgdir/usr/share/man/man1/dog.1"
65
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
66
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
67
68
install -Dm644 "$srcdir/dog.bash" "$pkgdir/usr/share/bash-completion/completions/dog"
69
install -Dm644 "$srcdir/_dog" "$pkgdir/usr/share/zsh/site-functions/_dog"
70
install -Dm644 "$srcdir/dog.fish" "$pkgdir/usr/share/fish/vendor_completions.d/dog.fish"
71
}
72
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-07 06:05:09 | Low | 1 |