blob: 58ba3de93c8d9f5655c1f59715ea1ff2db18ae63 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# jaclang-git (AUR)
`jaclang-git` builds the self-contained native **`jac`** binary from the latest
git HEAD of [jaseci-labs/jaseci](https://github.com/jaseci-labs/jaseci).
It is the from-source counterpart to upstream's one-liner installer
(`scripts/install.sh`), which ships the prebuilt release binary. This package
clones the source and runs the documented upstream build (`cd jac && zig build`)
to produce the very same binary.
## What it installs
A single executable at `/usr/bin/jac`. The binary bundles its own private CPython
runtime (materialized into `~/.cache/jac/rt/<hash>/` on first run), so it needs
**no system Python, pip, uv, or llvmlite** — only glibc.
## Build requirements
- `zig >= 0.16.0` (pinned in `jac/build.zig.zon`)
- `base-devel`, `git`, `cmake`
- **~10 GB free disk** during build
- **Network access during build** — the build fetches:
- a pinned LLVM 22.1.x slice (~80 MB) via `zig build fetch-llvm` (builds the
`LLVMPY_*` shim that the default release binary requires)
- a python-build-standalone tree (~600 MB download + extract)
- typeshed stdlib stubs
- zig dependencies (the fused neovim editor fork, mini.nvim, tree-sitter-jac)
A full build takes ~15-20 min. The LLVM + pbs trees are cached in your zig global
cache, so rebuilds after a `pkgver` bump are much faster.
## Lighter build (no editor)
The default build fuses a neovim fork (the `jac ninja` editor). To build a
smaller, faster binary without it, edit `build()` in `PKGBUILD` to use:
```
zig build -Dno-ninja
```
## Notes
- `options=('!strip')` is **mandatory** — the binary layout is
`[ELF stub][runtime payload .tar.gz][80-byte trailer]`, and makepkg's default
`strip` would drop the appended payload and break the binary.
- Conflicts with / provides `jac` and `jaclang`.
- The repo's git tags track the jaseci release (`v2.3.x`); the `jac` binary
reports its own version (`0.30.x`) via `jac --version`.
## Build & install
```
makepkg -si
```
|