OXYGENHUB
◆ v0.9.0 oxygen / packaging / haikuports / README.md
1.5 KiB · Markdown · last changed Releases carry their source: oxy-VERSION-src.tar.gz, reproducible; haikuports recipes for oxy and oh written from release source tarballs (refs #157) 7 days ago renderedsource blame history raw
04534029 Andy McCall ↶ 1
# oxy and oh on HaikuDepot
a42f9fb4 Andy McCall ↶ 2
04534029 Andy McCall ↶ 3
[haikuports]https://github.com/haikuports/haikuports recipes for oxy
4
(`dev-vcs/oxy`) and OxygenHub's `oh` (`dev-vcs/oh`) are written by
5
`make-recipe.py` from a release's source tarball (oxygen#156, #157).
a42f9fb4 Andy McCall ↶ 6
04534029 Andy McCall ↶ 7
Each release's dist job attaches `NAME-VERSION-src.tar.gz`: the source as
8
released, reproducible (sorted, fixed times and owners, gzip without a
9
timestamp). oh's holds the oxygenhub tree with its subrepos inside, so it
10
builds alone. The recipe fetches it from the release's stable address,
11
`https://oxygenhub.io/andymccall/REPO/releases/download/vVERSION/NAME-VERSION-src.tar.gz`,
12
and every crates.io crate in its `Cargo.lock` as a source of its own with its
13
checksum, building offline as haikuports' other Rust recipes (ripgrep) do.
a42f9fb4 Andy McCall ↶ 14
04534029 Andy McCall ↶ 15
For a release (oxy shown; oh is the same with `oh` and `oxygenhub`):
16
a42f9fb4 Andy McCall ↶ 17
```sh
04534029 Andy McCall ↶ 18
curl -LO https://oxygenhub.io/andymccall/oxygen/releases/download/vX.Y.Z/oxy-X.Y.Z-src.tar.gz
19
python3 packaging/haikuports/make-recipe.py oxy oxy-X.Y.Z-src.tar.gz X.Y.Z > oxy-X.Y.Z.recipe
a42f9fb4 Andy McCall ↶ 20
```
21
04534029 Andy McCall ↶ 22
Test it on Haiku R1/beta6 with haikuports checked out and `haikuporter`
23
installed: copy the recipe to `haikuports/dev-vcs/oxy/` and run
24
`haikuporter --no-source-packages -j1 -y oxy`. Submit it as a pull request
25
to haikuports (`oxy: new recipe`, then `oxy: bump to X.Y.Z`).
a42f9fb4 Andy McCall ↶ 26
27
Haiku needs the system's zstd (`ZSTD_SYS_USE_PKG_CONFIG=1`: the bundled
04534029 Andy McCall ↶ 28
zstd's hidden symbols break the link), which the recipe sets. oh's tests
29
pull in the hub, whose pipeline parser needs a newer Rust than HaikuPorts'
30
1.94, so its recipe tests `hub-api` only.