aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AGENTS.md202
-rw-r--r--CLAUDE.md5
l---------llama.cpp-vulkan/llama.cpp-b8648.tar.gz1
3 files changed, 208 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..b03c109
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,202 @@
+# Agent Instructions — SlackBuilds Repository
+
+This file governs how AI agents must behave in this repository.
+**Read it in full before taking any action.**
+
+---
+
+## Core Rules
+
+1. **Ask before acting.** If anything about the task is ambiguous — target version,
+ which package, whether to commit — stop and ask. Do not infer intent and proceed.
+2. **Use available skills.** For git operations, commits, PRs, and any task covered
+ by a skill, invoke the relevant skill. Do not improvise a workflow that a skill
+ already defines.
+3. **One package per task.** Never modify multiple packages in a single operation
+ unless explicitly instructed.
+4. **Never skip lint.** Every change must pass `sbolint` before committing. No
+ exceptions.
+5. **Never commit without being asked.** Complete all file edits and verification
+ steps, then wait for explicit instruction to commit.
+
+---
+
+## Repository Layout
+
+Each package lives in its own top-level subfolder:
+
+```
+<package-name>/
+├── <package-name>.SlackBuild # Main build script
+├── <package-name>.info # Metadata (version, checksums, download URL)
+├── README # Description and usage notes
+├── slack-desc # 11-line package description
+├── <package-name>.desktop # (optional) Desktop entry for GUI apps
+└── [...] # Other optional files
+```
+
+Root-level files you may need to edit:
+
+```
+nvchecker.toml # Upstream version tracking — one entry per package
+```
+
+---
+
+## Mandatory Workflow: Updating a Package Version
+
+Follow these steps in order. Do not skip or reorder them.
+
+### Step 1 — Update version strings
+
+Edit **both** of the following files, changing the old version to the new one:
+
+- `<package-name>/<package-name>.SlackBuild` — change `VERSION=${VERSION:-<old>}` to the new value
+- `<package-name>/<package-name>.info` — change `VERSION=`, `DOWNLOAD=`, and `MD5SUM=`
+
+For the `DOWNLOAD` field, substitute the new version into the URL pattern.
+Set `MD5SUM` to a placeholder (e.g. `"placeholder"`) — it will be fixed in the next step.
+
+### Step 2 — Fix the checksum
+
+Run `sbofixinfo` from inside the package directory:
+
+```bash
+cd <package-name> && sbofixinfo
+```
+
+If `sbofixinfo` reports no changes (common when the checksum is a placeholder rather
+than a stale real value), use the two-pass `sbodl` procedure instead:
+
+```bash
+# Pass 1 — downloads the source; fails because MD5SUM is wrong/placeholder
+cd <package-name> && sbodl
+
+# Compute the real checksum from the downloaded file
+md5sum <package-name>-<version>.tar.gz # adjust filename as needed
+
+# Update MD5SUM in the .info file with the value from the command above
+
+# Pass 2 — verifies the checksum; must report "md5sum matches OK"
+cd <package-name> && sbodl
+```
+
+Do not proceed past this step until `sbodl` reports `md5sum matches OK`.
+
+### Step 3 — Lint
+
+```bash
+cd <package-name> && sbolint
+```
+
+`sbolint` must report no errors. Fix any issues before continuing.
+
+### Step 4 — Report and wait
+
+Present a summary of all changes made and wait for the user to instruct you to commit.
+
+---
+
+## Mandatory Workflow: Adding a New Package
+
+Before creating any files, ask the user for:
+
+- The exact `PRGNAM` (package name)
+- The upstream source URL and version
+- Any non-SBo runtime dependencies
+
+Then proceed:
+
+1. Create the package directory with all required files:
+ `<prgnam>.SlackBuild`, `<prgnam>.info`, `README`, `slack-desc`
+2. Follow the SlackBuild scripting rules below exactly.
+3. Add an entry for the package in `nvchecker.toml`.
+4. Run `sbofixinfo`, then `sbodl` (two-pass if needed), then `sbolint`.
+5. Report results and wait for commit instruction.
+
+---
+
+## SlackBuild Scripting Rules
+
+- Base all scripts on the SBo template: https://slackbuilds.org/templates/
+- Use `set -e` (abort on error).
+- Honor `$TMP`, `$BUILD`, `$TAG`, `$OUTPUT`; provide defaults if unset.
+- Detect `$ARCH` and set `SLKCFLAGS` and `LIBDIRSUFFIX` accordingly.
+- Strip binaries and libraries (unless upstream explicitly discourages it).
+- Install docs to `/usr/doc/$PRGNAM-$VERSION/`.
+- Always include the `find -L` + `chown`/`chmod` cleanup block before packaging.
+- Build the package with `makepkg -l y -c n`.
+
+### `.info` file — required fields
+
+```
+PRGNAM="..."
+VERSION="..."
+HOMEPAGE="..."
+DOWNLOAD="..."
+MD5SUM="..."
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="danix"
+EMAIL="danix@danix.xyz"
+```
+
+- `REQUIRES=""` if no SBo dependencies; otherwise space-separated SBo package names.
+- Checksums must match the exact source archive — verify with `sbodl`.
+
+### `slack-desc` rules
+
+- Exactly 11 lines, each prefixed with `package-name: `.
+- Line 1: `package-name: package-name (short one-liner description)`
+- Lines 2–11: prose description; blank lines use `package-name:` with nothing after the colon.
+- Do not include the ruler line in the committed file.
+
+---
+
+## Version Tracking: nvchecker.toml
+
+Every package in this repo must have an entry in `nvchecker.toml`.
+Example for a GitHub-hosted package:
+
+```toml
+[package-name]
+source = "github"
+github = "owner/repo"
+use_max_tag = true
+```
+
+When adding or updating a package, verify the entry exists and is correct.
+
+---
+
+## Git Operations
+
+**Use the commit skill for all commits.** Do not run `git commit` manually.
+
+Commit conventions:
+- One commit per package add or update.
+- Message format:
+ - Add: `<package-name>: add version X.Y.Z`
+ - Update: `<package-name>: update to X.Y.Z`
+ - Fix: `<package-name>: fix <short description>`
+
+The pre-commit hook runs `sbolint` automatically. If it blocks the commit, fix
+the reported errors and retry — do not bypass with `SBOLINT=no` unless the user
+explicitly instructs it.
+
+The post-commit hook may prompt to create an SBo archive. This is interactive and
+may fail in non-TTY environments — that failure is harmless and can be ignored.
+
+---
+
+## What Requires User Confirmation
+
+Stop and ask before doing any of the following:
+
+- Committing or pushing changes
+- Modifying files in more than one package directory
+- Deleting any file
+- Bypassing the pre-commit hook (`SBOLINT=no`)
+- Adding or removing entries in `nvchecker.toml`
+- Any action not covered by the workflows above
diff --git a/CLAUDE.md b/CLAUDE.md
index baa1e2a..e98c934 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -122,6 +122,11 @@ SBOLINT=no git commit -m'Message here'
cd <package-name> && sbofixinfo
# 2. Download sources and verify checksums
+# NOTE: when updating to a new version, sbodl will download the source but fail
+# because the .info file still has the old (or placeholder) MD5SUM. In that case:
+# a) compute the checksum manually: md5sum <source-file>
+# b) update MD5SUM in the .info file
+# c) run sbodl again — it should now report "md5sum matches OK"
cd <package-name> && sbodl
# 3. Lint the script and metadata
diff --git a/llama.cpp-vulkan/llama.cpp-b8648.tar.gz b/llama.cpp-vulkan/llama.cpp-b8648.tar.gz
new file mode 120000
index 0000000..e09bb68
--- /dev/null
+++ b/llama.cpp-vulkan/llama.cpp-b8648.tar.gz
@@ -0,0 +1 @@
+/home/danix/sbodl-cache/llama.cpp-b8648.tar.gz \ No newline at end of file