diff options
| author | Danilo M. <danix@danix.xyz> | 2026-07-13 09:56:51 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-07-13 09:56:51 +0200 |
| commit | b4c286efff30dc6667fc49d5f7895ae6af8c296c (patch) | |
| tree | 8e982c0d43a3c1b8a11f6167d4c7052c8bfae2df /CLAUDE.md | |
| parent | fa86f5b48d09f7367ae20434bf8d007354496e14 (diff) | |
| download | sbo-slackbuilds-b4c286efff30dc6667fc49d5f7895ae6af8c296c.tar.gz sbo-slackbuilds-b4c286efff30dc6667fc49d5f7895ae6af8c296c.zip | |
docs: test-build design spec; refine CLAUDE.md purpose and docker workflow
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 94 |
1 files changed, 82 insertions, 12 deletions
@@ -1,10 +1,27 @@ # 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. +SlackBuild scripts for which danix is the **official SBo maintainer** on +[SlackBuilds.org (SBo)](https://slackbuilds.org). + +## Purpose: tracking, not development + +This repo is a **maintenance mirror of already-published SBo packages**. No new +packages are developed here. Its job is the ongoing upkeep of packages already +on SBo: + +1. Track upstream version changes (via nvchecker). +2. Reflect a new upstream version in the package's `.SlackBuild` / `.info`. +3. Test-build in a throwaway docker image (see below). +4. Generate the SBo submission tarball to upload. + +New-package development happens in **other** repos, not here: + +- `../GITHUB/my-slackbuilds/` — regular packages, plus SBo packages whose + upstream moves faster than SBo review (worked ahead of the SBo copy). +- `../GITHUB/Slackware-Pentesting-Suite/` — cybersecurity packages. + +When a new package is uploaded to SBo and approved, it **moves here** and this +repo takes over its maintenance. --- @@ -31,7 +48,9 @@ Version tracking is handled by a single file: ### `.extras/` holds all non-package repo files Anything that is not a SlackBuild package must live under `.extras/`, never at -the repo root. +the repo root. Exception: a top-level `docs/` for design docs and specs is fine +in this repo (the subtree-leak concern that bans it applies to the development +repos, not here). Existing specs live under `.extras/docs/specs/`. --- @@ -122,9 +141,52 @@ compiled binaries. No stripping needed. --- +## Test-building in docker + +Because these packages are already published on SBo, the build here is a +**verification step** on a version bump, not development. It runs in a +throwaway Slackware container, so it is hermetic and disposable: unlike a real +`slackrepo build` on the buildsystem VM, **Claude may run it directly**. + +Images (Slackware official, pull fresh each time — they are throwaway): + +- `-current`: `registry.slackware.nl/slackware/slackware-builder:current` +- `15.0` (stable): `registry.slackware.nl/slackware/slackware-builder:15.0` + +Mount the package dir into a `--rm` container and run its SlackBuild. Anything +built is discarded with the container; nothing lands in the working tree. + +No wrapper script exists yet — write the `docker run` invocation inline, or add +one under `.extras/` if this gets repetitive. The build's only outputs that +matter are the exit status and lint result; the package tarball it produces is +throwaway. + +The one artifact worth keeping from a clean bump is the **SBo submission +tarball** (`SBo/<pkg>.tar.gz`), produced by the `post-commit` hook — that is +what gets uploaded to SlackBuilds.org. + +--- + ## SlackBuild Scripting Guidelines -- Follow the [SBo template](https://slackbuilds.org/templates/) as the base for all scripts +### Templates (local clone) + +A clone of the SBo templates lives at `~/Templates/SlackBuilds/sbo/` (refreshed +by `~/Templates/SlackBuilds/update-templates.sh`). **Start from the matching +file there** rather than from memory: + +- Per-build-type SlackBuilds: `autotools-`, `cmake-`, `meson-`, `python-`, + `perl-`, `rubygem-`, `haskell-template.SlackBuild`. +- Shared support files: `slack-desc`, `template.info`, `doinst.sh`, + `douninst.sh`. + +The [online SBo template](https://slackbuilds.org/templates/) remains the +authority; the local clone mirrors it. Refresh the clone if it looks stale +before relying on it. + +### General + +- Follow the SBo template (local clone above) 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` @@ -215,11 +277,19 @@ 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 <pkg>.SlackBuild`, `sbopkglint`, or `slackrepo build`. +Claude authors/edits the sources (`.SlackBuild`, `.info`, `README`, +`slack-desc`, `doinst.sh`, nvchecker stanzas) and runs the non-building checks +(`sbolint`, `sbodl`, `sbofixinfo`). + +**The one exception in this repo** is the throwaway-docker test-build (see +[Test-building in docker](#test-building-in-docker)): it is hermetic and +disposable, so Claude may run it to verify a bump, including `sbopkglint` on +the throwaway package it produces. + +Everything else stays with the user: never run or offer a **real**, persistent +build — `slackrepo build`, or `bash <pkg>.SlackBuild` / `sudo bash ...` on the +host (as opposed to inside the throwaway container). Those install to the +user's system or the buildsystem VM; the user runs them and reports back. --- |
