pkgbuild: Bump grok-bot-bin to 0.36.0 #8
@@ -6,6 +6,8 @@ Not affiliated with Cursor / SpaceXAI. The app binary is unchanged; this only re
|
|||||||
|
|
||||||
## Install (build locally)
|
## 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
|
```bash
|
||||||
git clone https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin.git
|
git clone https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin.git
|
||||||
cd grok-bot-bin
|
cd grok-bot-bin
|
||||||
@@ -28,11 +30,11 @@ makepkg -si
|
|||||||
|
|
||||||
## Install from a release package
|
## Install from a release package
|
||||||
|
|
||||||
When CI has published a `.pkg.tar.zst` on the [Releases](https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/releases) page:
|
`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
|
```bash
|
||||||
curl -LO 'https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/releases/download/v0.35.0-2/grok-bot-bin-0.35.0-2-x86_64.pkg.tar.zst'
|
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.35.0-2-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.
|
Download first, then `pacman -U` the local file (`LocalFileSigLevel = Optional`). Do not pass the remote URL straight to pacman if signatures are required.
|
||||||
@@ -51,13 +53,49 @@ Exact `Server=` URL may change once the first repo DB lands; `makepkg -si` works
|
|||||||
|
|
||||||
## Updating
|
## Updating
|
||||||
|
|
||||||
`./scripts/update.sh` reads Cursor's linux-x64 update feed, downloads the matching `.deb`, and bumps `pkgver` / `_commit` / `sha256sums` in `PKGBUILD` and `.SRCINFO`.
|
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 Gitea Actions will do the same and build a release package.
|
### 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
|
## 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.
|
- `/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/…`.
|
- 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` bumps the PKGBUILD from Cursor's feed when packaging a new upstream version.
|
- 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.
|
- `chrome-sandbox` is left non-setuid because the install path contains a space; user namespaces cover sandboxing on CachyOS.
|
||||||
|
|||||||
Reference in New Issue
Block a user