ccp4 README: document explicit --tmpdir/--distdir build command

The ~/.Pmodules/Pmodules.yaml route did not reliably set download_dir,
so the maintained recipe now passes both dirs on the command line;
readers must adapt the p-group path to their own.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-18 20:45:49 +02:00
co-authored by Claude Fable 5
parent fcedf651b6
commit c0e4e55fb9
+24 -20
View File
@@ -17,27 +17,31 @@ macromolecular crystallography. https://www.ccp4.ac.uk/
## Build on Ra
One-time per user: put the Pmodules build tmp and download cache on
/das instead of /var/tmp and $HOME (the tarball alone would blow the
home quota):
```bash
mkdir -p /das/work/p21/p21515/.cache/Pmodules/distfiles ~/.Pmodules
cat > ~/.Pmodules/Pmodules.yaml <<'EOF'
tmp_dir: /das/work/p21/p21515/.cache/Pmodules
download_dir: /das/work/p21/p21515/.cache/Pmodules/distfiles
EOF
```
Then:
Build tmp and download cache MUST be on /das, not the defaults
(/var/tmp is too small, the tarball alone blows the $HOME quota — a
download dying with "Failure writing output to destination" means
exactly that). Pass both dirs explicitly on the command line so there
is no doubt where things land — **adapt the p-group path
(`p21/p21515`) to your own**:
```bash
module use unstable && module load modbuild/2.1.3
cd ccp4
modbuild build --prep 9.0 # download/cache only; also verifies tmp_dir took effect
modbuild build 9.0
mkdir -p /das/work/p21/p21515/.cache/Pmodules
modbuild build \
--tmpdir=/das/work/p21/p21515/.cache/Pmodules \
--distdir=/das/work/p21/p21515/.cache/Pmodules \
--clean-install -v --debug 9.0
```
(`--clean-install` removes a previous broken install first; `-v
--debug` make the otherwise silent long steps visible.)
Alternative: `~/.Pmodules/Pmodules.yaml` with top-level `tmp_dir:` and
`download_dir:` keys sets the same defaults per user — but in practice
`download_dir` did not reliably take effect there, so the explicit
flags above are the maintained route.
If the download fails (expired sid), fetch a fresh link from
https://www.ccp4.ac.uk/download/ and update `files/config.yaml`, or drop a
hand-downloaded tarball into the distfiles dir under the `name:` given in
@@ -65,12 +69,12 @@ Growing `du` = working. Only investigate if it's frozen for 10+ min.
- **"done" but broken install**: modbuild has no errexit in hooks — errors in
`pbuild::install` used to scroll by and the build still reported done. The
build script now `std::die`s on every critical step.
- **Interrupted download**: prep now detects a truncated tarball with
`gzip -t` and resumes it with `wget --continue` — just re-run
`modbuild build 9.0`. A download that dies with
- **Interrupted download**: prep detects a truncated tarball with
`gzip -t` and resumes it with `wget --continue` — just re-run the
build command above. A download that dies with
`Failure writing output to destination` means quota/disk full at the
distfiles dir, not a network problem — free space or move `download_dir:`
(see above) before retrying.
distfiles dir, not a network problem — check `--distdir` points to
/das before retrying.
- The tarball unpacks to `ccp4-9` (not `ccp4-9.0` as the CCP4 install doc
implies); the build globs `ccp4-*/` instead of assuming the name.