aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CLAUDE.md48
1 files changed, 46 insertions, 2 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 96f0fdd..7316637 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -324,8 +324,34 @@ 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.
+sources. Remove them before staging; they must never be committed. Run it from
+the repo root so no package is missed:
+
+```bash
+find . -type l -print -delete
+```
+
+The `pre-commit` hook also strips staged symlinks to source archives and blocks
+staged *real* archives, but do not rely on that as the only guard.
+
+### File modes: 0644
+
+SBo requires 0644 for files and 0755 for directories, and the upload form
+rejects otherwise. Git tracks the exec bit, so a `.SlackBuild` that was ever
+`chmod +x` carries 0755 into the repo. `sbolint` catches it
+(`must have mode 0644, not 0755`), which is one reason the pre-commit hook has
+to actually run. To fix, both on disk and in the index:
+
+```bash
+chmod 644 <category>/<pkg>/<file>
+git add --chmod=-x <category>/<pkg>/<file>
+```
+
+Audit the whole repo (`.extras/hooks/` at 0755 is correct, those are hooks):
+
+```bash
+git ls-files --stage | awk '$1!="100644" && $4 !~ /^\.extras/ {print $1, $4}'
+```
---
@@ -368,6 +394,24 @@ have unrelated histories:
user.name = danix (local override, matches .info MAINTAINER)
```
+To recreate it (the clone is ~265MB, and `.git/config` is not tracked, so a
+fresh clone silently loses the name override and commits revert to the global
+`Danilo M.`):
+
+```bash
+gh repo fork SlackBuildsOrg/slackbuilds --clone=false
+git clone github:danixland/slackbuilds.git ~/Programming/GIT/GITHUB/slackbuilds
+cd ~/Programming/GIT/GITHUB/slackbuilds
+git remote add upstream https://github.com/SlackBuildsOrg/slackbuilds.git
+git config --local user.name danix # email + GPG signing come from global
+```
+
+Identity must satisfy three things, all verifiable on a pushed commit with
+`gh api repos/SlackBuildsOrg/slackbuilds/pulls/<n>/commits`: the author email
+matches `.info` EMAIL, the email is verified on the `danixland` account (so
+`.author.login` is set, not null), and the GPG key is uploaded there (so
+`.commit.verification.verified` is true). All three held as of 2026-08-08.
+
Because this repo mirrors SBo's `<category>/<package>/` layout, a package
directory copies across at the identical relative path, no mapping needed: