Building
--------
-On a system with a new enough `cargo` and `rustc`:
+Obtain the source code from the canonical server:
+<https://salsa.debian.org/iwj/hippotat/>
+
+### Building with vanilla Debian tooling
+
+On a Debian (or derivative) with compatible dependencies,
+you can use the standard Debian build runes:
```
apt-get build-dep .
- CARGO='cargo --locked' dpkg-buildpackage -uc -b
+ dpkg-buildpackage -uc -b
+```
+
+At the time of writing this works on Debian testing (aka "bookworm").
+
+### Building binary packages with hybrid tooling
+
+Because of impedance mismatches between
+distros' approaches to packaging,
+and the language specifkc package manager treadmill,
+it can easily happy that you can't build on your Debian release.
+You can use a hybrid approach instead:
+
+On a system with a new enough `cargo` and `rustc`:
+
+```
+ apt-get -Pcargo-upstream build-dep .
+ CARGO='cargo --locked' dpkg-buildpackage -Pcargo-upstream -uc -b
```
Sadly, Debian bullseye is not new enough;
are controlled and checked
by the `Cargo.lock` file shipped in the Hippotat source tree,
provided that `cargo --locked` is used.
+So the invocation above is *not* equivalent to some `curl|bash` rune.
+
+### Building executables with upstream Rust ecosystem tooling
If you don't want to install debs,
you can also just use cargo to build the two binaries,
-`hippotat` and `hippotatd`.
-You could perhaps even `cargo install hippotat` on a client machine.
+`hippotat` and `hippotatd`:
+```
+ cargo build --locked --release
+```
+
+Hippotat releases are also published to `crates.io`, so
+you could perhaps even `cargo install hippotat`.
+Like any `cargo install`,
+this *is* morally equivalent to `curl|bash`.
Installation