| 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. |
| 16aa9e03 Andy McCall ↶ |
31 |
|
| 32 |
## Icons |
| 33 |
|
| 34 |
HaikuDepot takes a package's icon from HaikuDepotServer, not from the |
| 35 |
recipe. `icons/` holds them, written by `make-icons.py icons/` (the PNGs |
| 36 |
rendered from the SVGs): Oxygen (`oxy`) is the mark on a pale tile, |
| 37 |
OxygenHub (`oh`) the mark on the hub's dark tile, as the VS Code |
| 38 |
extensions' icons are. Once the packages are listed on |
| 39 |
depot.haiku-os.org, upload `NAME.hvif` with `NAME-16.png`, `-32` and `-64` |
| 40 |
as each package's icon. |