From d85e36a1156a25681d81c84ff1c0b47b4eb88a35 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 10 Jul 2026 19:36:30 +0200 Subject: Initial import: r8125, UrbanTerror SBo-official packages maintained by danix, split out of my-slackbuilds. Co-Authored-By: Claude Opus 4.8 --- CLAUDE.md | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 CLAUDE.md (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..41d25a8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,163 @@ +# SBo SlackBuilds Repository + +SlackBuild scripts maintained by Danilo (danix) and submitted to +[SlackBuilds.org (SBo)](https://slackbuilds.org). This repo holds ONLY the +packages for which danix is the **official SBo maintainer**. Lead and +experimental packages not on SBo under danix live in the separate +`my-slackbuilds` repository. + +--- + +## Repo Structure + +Each package lives in its own top-level subfolder: + +``` +/ +├── .SlackBuild # Main build script +├── .info # Metadata (version, checksums, URLs) +├── README # Description and usage notes +├── slack-desc # Package description (11-line format) +├── .desktop # (optional) Desktop entry for GUI apps +└── [...] # other optional files +``` + +Version tracking is handled by a single file: + +``` +.extras/nvchecker.toml # nvchecker config listing all packages +``` + +### `.extras/` holds all non-package repo files + +Anything that is not a SlackBuild package must live under `.extras/`, never at +the repo root. + +--- + +## SlackBuild Scripting Guidelines + +- Follow the [SBo template](https://slackbuilds.org/templates/) as the base for all scripts +- Use `set -e` to abort on errors +- Honor `$TMP`, `$BUILD`, `$TAG`, `$OUTPUT` variables; default values must be set if unset +- Use `$ARCH` detection with proper `SLKCFLAGS` and `LIBDIRSUFFIX` +- Strip binaries and libraries unless upstream explicitly discourages it +- Install docs to `/usr/doc/$PRGNAM-$VERSION/` +- Always include `find -L` + `chown`/`chmod` cleanup block before packaging +- Copy repo files into `$PKG` with `cat src > dest`, never `cp`. `cat` writes + through a fresh destination so the build's umask/root ownership sets the + perms; `cp` bleeds the git working-tree mode/ownership into the package. + Applies to `slack-desc`, `doinst.sh`, and any file staged from `$CWD` + (SlackBuild, README, `.nvchecker`) into `$PKG`. +- Use `makepkg -l y -c n` to create the final package + +### `.info` file + +Must contain: +``` +PRGNAM, VERSION, HOMEPAGE, DOWNLOAD, MD5SUM (or SHA256SUM), REQUIRES, MAINTAINER, EMAIL +``` +- Checksums must match the exact source archive +- MAINTAINER/EMAIL are danix's, since this repo is his SBo-official packages +- Use `REQUIRES=""` if no SBo dependencies; list space-separated SBo package names otherwise + +### `slack-desc` + +- Exactly 11 lines in the `package-name: description` format +- First line: `package-name: package-name (short one-liner)` +- Lines 2–11: description, leave blank lines as `package-name:` +- Handy ruler line must be included (but not shipped) + +--- + +## Version Tracking: nvchecker + +A single `.extras/nvchecker.toml` tracks upstream versions for all packages. + +To check for new upstream versions: + +```bash +nvchecker -c .extras/nvchecker.toml +``` + +When a new version is detected, update `VERSION` in both `.SlackBuild` and +`.info`, then run `sbofixinfo` to refresh checksums. + +**Every package added to this repo must have a corresponding entry in +`.extras/nvchecker.toml`.** + +For **nvchecker** github stanzas prefer `use_latest_release` (hits +`releases/latest`, lenient) over `use_max_tag` (hits `git/refs/tags`, tightly +rate-limited and 403s under the shared anon budget); use `use_max_tag` only for +repos that tag but don't cut Releases (a `use_latest_release` probe 404s on +those). Probe ONE stanza with `nvchecker -c -e `. + +--- + +## Tooling: sbo-maintainer-tools + +Source: https://slackware.uk/~urchlay/repos/sbo-maintainer-tools + +| Tool | Purpose | +|------|---------| +| `sbolint` | Lint `.SlackBuild`, `README`, `.info`, `slack-desc` | +| `sbopkglint` | Lint the built package | +| `sbofixinfo` | Auto-fix common `.info` file issues | +| `sbodl` | Download sources and verify `MD5SUM`/`SHA256SUM` from `.info` | + +### Git hook setup + +Both hooks are tracked in `.extras/hooks/`. Install them after cloning: + +```bash +cp .extras/hooks/pre-commit .git/hooks/pre-commit +cp .extras/hooks/post-commit .git/hooks/post-commit +chmod +x .git/hooks/pre-commit .git/hooks/post-commit +``` + +To bypass the pre-commit lint check in exceptional cases: +```bash +SBOLINT=no git commit -m'Message here' +``` + +Note: `sbodl` creates symlinks in the package directory pointing to downloaded +sources. Remove them before staging (`find . -type l -delete`); they must never +be committed. + +--- + +## Who builds SlackBuilds + +Only the user builds SlackBuilds, on their own infra. Claude authors/edits the +sources (`.SlackBuild`, `.info`, `README`, `slack-desc`, `doinst.sh`, nvchecker +stanzas) and runs only the non-building checks (`sbolint`, `sbodl`, +`sbofixinfo`); the user builds and reports back. Never run or offer +`bash .SlackBuild`, `sbopkglint`, or `slackrepo build`. + +--- + +## SBo Submission Guidelines + +Before submitting or updating a package on SlackBuilds.org: + +1. **Pass all lint checks** — `sbolint` and `sbopkglint` must report no errors +2. **Test the build** on a clean Slackware installation (or VM snapshot) +3. **Verify checksums** via `sbodl` before committing +4. **Check `README`** includes all non-SBo dependencies and any special build notes +5. **Follow the SBo submission guidelines**: https://slackbuilds.org/guidelines/ +6. **Bump `VERSION`** in both `.SlackBuild` and `.info` when updating +7. **Run `sbofixinfo`** after every version bump to catch stale checksums/URLs + +--- + +## Commit Conventions + +- One commit per package add/update +- Commit message format: `: add version X.Y.Z` or `: update to X.Y.Z` +- For fixes: `: fix ` + +--- + +## Maintainer + +danix -- cgit v1.2.3