49a15ebb2d
Tell Justin how cron runs update.sh, commits, tags, and pushes, and how to force the same bump by hand. Align the release install example with PKGBUILD 0.36.0 (tag v0.36.0) and keep the makepkg path until CI publishes the asset.
102 lines
4.5 KiB
Markdown
102 lines
4.5 KiB
Markdown
# grok-bot-bin
|
|
|
|
Unofficial Arch / CachyOS package of the official [Grok Bot](https://cursor.com/download/bot) `.deb`. Temporary until upstream packages for Arch.
|
|
|
|
Not affiliated with Cursor / SpaceXAI. The app binary is unchanged; this only repacks it for `pacman`.
|
|
|
|
## Install (build locally)
|
|
|
|
This tree packages **0.36.0** (`pkgver` / `pkgrel=1` in `PKGBUILD`). `makepkg -si` from git tip builds that version even before a release tag exists.
|
|
|
|
```bash
|
|
git clone https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin.git
|
|
cd grok-bot-bin
|
|
makepkg -si
|
|
```
|
|
|
|
With an AUR helper against this git URL:
|
|
|
|
```bash
|
|
paru -S grok-bot-bin --aururl https://git.s1d3sw1ped.com
|
|
# or:
|
|
yay -S grok-bot-bin # after cloning locally / using a custom AUR mirror
|
|
```
|
|
|
|
Simplest reliable path on CachyOS today:
|
|
|
|
```bash
|
|
makepkg -si
|
|
```
|
|
|
|
## Install from a release package
|
|
|
|
`pacman -U` installs whatever `.pkg.tar.zst` is attached on [Releases](https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/releases), which lags git tip until someone **tags** the bump (see Updating). After `v0.36.0` is pushed, CI (`build.yml`) attaches `grok-bot-bin-0.36.0-1-x86_64.pkg.tar.zst`. Until that asset exists, use `makepkg -si` for 0.36.0; the newest published asset may still be `v0.35.0-2`.
|
|
|
|
```bash
|
|
curl -LO 'https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/releases/download/v0.36.0/grok-bot-bin-0.36.0-1-x86_64.pkg.tar.zst'
|
|
sudo pacman -U grok-bot-bin-0.36.0-1-x86_64.pkg.tar.zst
|
|
```
|
|
|
|
Download first, then `pacman -U` the local file (`LocalFileSigLevel = Optional`). Do not pass the remote URL straight to pacman if signatures are required.
|
|
|
|
## Custom pacman repo (optional)
|
|
|
|
After CI publishes a repo database under Releases (or Packages), add to `/etc/pacman.conf`:
|
|
|
|
```ini
|
|
[grok-bot]
|
|
SigLevel = Optional TrustAll
|
|
Server = https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/releases/latest/download
|
|
```
|
|
|
|
Exact `Server=` URL may change once the first repo DB lands; `makepkg -si` works regardless.
|
|
|
|
## Updating
|
|
|
|
Stay-current path when Cursor's linux-x64 Grok Bot feed moves. `PKGBUILD` is currently **0.36.0** (pkgrel 1). One updater: `./scripts/update.sh`.
|
|
|
|
### Scheduled bump (Gitea Actions)
|
|
|
|
`.gitea/workflows/update.yml` runs daily (`cron: '17 6 * * *'`) and on `workflow_dispatch`. It:
|
|
|
|
1. Runs `./scripts/update.sh` against the live Cursor linux-x64 feed.
|
|
2. If `pkgver` changed, commits `PKGBUILD` and `.SRCINFO`.
|
|
3. Tags `v$pkgver` (an upstream bump resets `pkgrel` to 1, so 0.36.0 → tag `v0.36.0`).
|
|
4. Pushes the branch and tag.
|
|
|
|
The tag triggers `.gitea/workflows/build.yml`, which builds the Arch package and attaches `grok-bot-bin-$pkgver-$pkgrel-x86_64.pkg.tar.zst` to the Gitea release.
|
|
|
|
Actions **can** push and tag on this forge. [Run 1190](https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/actions/runs/1190) (schedule on `master`) bumped 0.30.0 → 0.35.0 and pushed `master` plus tag `v0.35.0`.
|
|
|
|
If the script cannot parse the feed, or `curl` / `jq` / `python3` is missing, the job fails. A no-op is only “already at this `pkgver`”.
|
|
|
|
### Manual force path
|
|
|
|
When you do not want to wait for cron, or you are landing a bump on `develop`:
|
|
|
|
```bash
|
|
# requires curl, jq, python3
|
|
./scripts/update.sh
|
|
```
|
|
|
|
If the feed is newer, that rewrites `PKGBUILD` and `.SRCINFO`. Then commit, tag, and push (or open a PR into `develop`):
|
|
|
|
```bash
|
|
git add PKGBUILD .SRCINFO
|
|
git commit -m "pkgbuild: Bump grok-bot-bin to <pkgver>"
|
|
git push origin HEAD:develop # or open a PR into develop
|
|
# After it should cut a release:
|
|
git tag "v<pkgver>" # e.g. v0.36.0
|
|
git push origin "v<pkgver>"
|
|
makepkg -si # install from this tree without waiting for the release asset
|
|
```
|
|
|
|
Install the new version with `makepkg -si`, or (once CI publishes the asset) `pacman -U` from Releases as in the example above.
|
|
|
|
## Notes
|
|
|
|
- `/usr/bin/grok-bot` (and `sand`) is a launch shim: unless `GROK_BOT_NO_UPDATE=1`, it checks the latest Gitea release and may `pacman -U` a newer `.pkg.tar.zst` before exec'ing `/opt/Grok Bot/…`. Network/API failures still launch the installed binary.
|
|
- If the app menu still launches an old binary without updating, run `/usr/bin/grok-bot` once from a terminal, or `sudo pacman -U` the newer `.pkg.tar.zst` from Releases — the menu must call the PATH shim, not `/opt/Grok Bot/…`.
|
|
- Upstream Linux builds still have no in-app updater for the Electron app itself; `scripts/update.sh` (cron or manual) is the packaging bump from Cursor's feed.
|
|
- `chrome-sandbox` is left non-setuid because the install path contains a space; user namespaces cover sandboxing on CachyOS.
|