OXYGENHUB
◆ v0.11.0 oxygen / packaging / haikuports / README.md
2.0 KiB · Markdown · last changed HaikuDepot icons for oxy and oh (HVIF and PNGs) and the script that draws them (refs #157) 6 days ago renderedsource blame history raw
1
# oxy and oh on HaikuDepot
2
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).
6
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.
14
15
For a release (oxy shown; oh is the same with `oh` and `oxygenhub`):
16
17
```sh
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
20
```
21
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`).
26
27
Haiku needs the system's zstd (`ZSTD_SYS_USE_PKG_CONFIG=1`: the bundled
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.
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.