1 Commits

Author SHA1 Message Date
s1d3sw1ped_bot 4b2bc70766 PKGBUILD: Point desktop Exec at update shim
Build Arch package / build (push) Successful in 27s
0.30 shipped Exec="/opt/Grok Bot/grok-bot", so the app menu skipped
/usr/bin/grok-bot and never auto-updated. Always rewrite the desktop
Exec to the PATH shim after unpacking the .deb so that cannot regress.
Bump pkgrel to 2; clearer sudo failure hint in the launch shim.
2026-09-02 15:21:20 +00:00
4 changed files with 14 additions and 4 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
pkgbase = grok-bot-bin pkgbase = grok-bot-bin
pkgdesc = Grok Bot desktop agent (official .deb repackaged) pkgdesc = Grok Bot desktop agent (official .deb repackaged)
pkgver = 0.35.0 pkgver = 0.35.0
pkgrel = 1 pkgrel = 2
url = https://cursor.com/download/bot url = https://cursor.com/download/bot
arch = x86_64 arch = x86_64
license = LicenseRef-proprietary license = LicenseRef-proprietary
@@ -30,6 +30,6 @@ pkgbase = grok-bot-bin
source = grok-bot-launch.sh source = grok-bot-launch.sh
noextract = grok-bot_0.35.0_amd64.deb noextract = grok-bot_0.35.0_amd64.deb
sha256sums = ed254e819d0f0419a1df9771009363074f65f80d8175d2ee0fc62900087ebd99 sha256sums = ed254e819d0f0419a1df9771009363074f65f80d8175d2ee0fc62900087ebd99
sha256sums = 886c8b55eb44d2f7812be50dcc1571907dc2d7e755171e67e916f497634f09eb sha256sums = 1c5a3599db15816caa839fc9e088ba9798757e44fec89c066ef5f6f3c0972aee
pkgname = grok-bot-bin pkgname = grok-bot-bin
+10 -2
View File
@@ -10,7 +10,7 @@
pkgname=grok-bot-bin pkgname=grok-bot-bin
pkgver=0.35.0 pkgver=0.35.0
_commit=1c5a6ceb364c4dd53f0069f72cc4239220ed471e _commit=1c5a6ceb364c4dd53f0069f72cc4239220ed471e
pkgrel=1 pkgrel=2
pkgdesc="Grok Bot desktop agent (official .deb repackaged)" pkgdesc="Grok Bot desktop agent (official .deb repackaged)"
arch=('x86_64') arch=('x86_64')
url="https://cursor.com/download/bot" url="https://cursor.com/download/bot"
@@ -44,7 +44,7 @@ source=(
noextract=("grok-bot_${pkgver}_amd64.deb") noextract=("grok-bot_${pkgver}_amd64.deb")
sha256sums=( sha256sums=(
'ed254e819d0f0419a1df9771009363074f65f80d8175d2ee0fc62900087ebd99' 'ed254e819d0f0419a1df9771009363074f65f80d8175d2ee0fc62900087ebd99'
'886c8b55eb44d2f7812be50dcc1571907dc2d7e755171e67e916f497634f09eb' '1c5a3599db15816caa839fc9e088ba9798757e44fec89c066ef5f6f3c0972aee'
) )
package() { package() {
@@ -56,6 +56,14 @@ package() {
# Keep provides(sand) on PATH; both names run the same shim. # Keep provides(sand) on PATH; both names run the same shim.
ln -sf grok-bot "$pkgdir/usr/bin/sand" ln -sf grok-bot "$pkgdir/usr/bin/sand"
# Always point the menu entry at the PATH shim. Upstream .desktop has used
# Exec="/opt/Grok Bot/grok-bot" (0.30) which bypasses auto-update; rewrite
# every build so a future /opt regression cannot ship again.
if [[ -f "$pkgdir/usr/share/applications/grok-bot.desktop" ]]; then
sed -i 's|^Exec=.*|Exec=grok-bot %U|' \
"$pkgdir/usr/share/applications/grok-bot.desktop"
fi
# Path contains a space, so Chromium cannot use the SUID sandbox. # Path contains a space, so Chromium cannot use the SUID sandbox.
# Arch/CachyOS kernels have user namespaces; keep chrome-sandbox non-setuid. # Arch/CachyOS kernels have user namespaces; keep chrome-sandbox non-setuid.
if [[ -f "$pkgdir/opt/Grok Bot/chrome-sandbox" ]]; then if [[ -f "$pkgdir/opt/Grok Bot/chrome-sandbox" ]]; then
+1
View File
@@ -58,5 +58,6 @@ Scheduled Gitea Actions will do the same and build a release package.
## 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/…`.
- 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` bumps the PKGBUILD from Cursor's feed when packaging a new upstream version.
- `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.
+1
View File
@@ -53,6 +53,7 @@ _maybe_update() {
# Prefer passwordless sudo; fall back to interactive sudo. Fail soft either way. # Prefer passwordless sudo; fall back to interactive sudo. Fail soft either way.
if ! sudo -n pacman -U --noconfirm "$pkg" 2>/dev/null; then if ! sudo -n pacman -U --noconfirm "$pkg" 2>/dev/null; then
if ! sudo pacman -U --noconfirm "$pkg"; then if ! sudo pacman -U --noconfirm "$pkg"; then
echo "grok-bot: need sudo to auto-update; run: sudo pacman -U <pkg> or launch /usr/bin/grok-bot from a terminal" >&2
echo "grok-bot: pacman -U failed; launching installed version" >&2 echo "grok-bot: pacman -U failed; launching installed version" >&2
return 0 return 0
fi fi