build: image name clawdie-<codename>-<version>.img #46

Merged
clawdie merged 1 commit from build/image-name-version into main 2026-06-14 10:59:08 +02:00
6 changed files with 46 additions and 49 deletions

View file

@ -137,14 +137,14 @@ sudo ./build.sh
Output:
```text
tmp/output/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img
tmp/output/clawdie-quindecim-0.2.29.img
```
Published/downloaded artifacts are compressed as `.img.gz`. Stream the
compressed image directly into `dd`:
```sh
gzip -dc clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz | sudo dd of=/dev/daX bs=1M status=progress conv=fsync
gzip -dc clawdie-quindecim-0.2.29.img.gz | sudo dd of=/dev/daX bs=1M status=progress conv=fsync
sync
```
@ -153,15 +153,15 @@ For Linux or FreeBSD downloads from the published HTTPS path, prefer resumable
```sh
curl -fL --continue-at - --retry 5 --retry-delay 5 --progress-bar -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz
curl -fL --retry 5 --retry-delay 5 -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz.sha256
```
For a build-local uncompressed image, plain `dd` is also fine:
```sh
sudo dd if=tmp/output/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img of=/dev/daX bs=1M status=progress conv=fsync
sudo dd if=tmp/output/clawdie-quindecim-0.2.29.img of=/dev/daX bs=1M status=progress conv=fsync
sync
```

View file

@ -3,7 +3,7 @@
Published Clawdie operator USB artifacts are compressed:
```text
clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
clawdie-quindecim-0.2.29.img.gz
```
Default policy:
@ -47,15 +47,15 @@ Download with resume and retries:
```sh
curl -fL --continue-at - --retry 5 --retry-delay 5 --progress-bar -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz
curl -fL --retry 5 --retry-delay 5 -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz.sha256
```
Verify the downloaded artifact:
```sh
sha256sum -c clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
sha256sum -c clawdie-quindecim-0.2.29.img.gz.sha256
```
Unmount mounted USB partitions if needed:
@ -68,7 +68,7 @@ Flash by streaming gzip into `dd`:
```sh
set -o pipefail 2>/dev/null || true
gzip -dc clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
gzip -dc clawdie-quindecim-0.2.29.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
sync
```
@ -89,22 +89,22 @@ Download with resume and retries:
```sh
curl -fL --continue-at - --retry 5 --retry-delay 5 --progress-bar -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY.img.gz
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz
curl -fL --retry 5 --retry-delay 5 -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY.img.gz.sha256
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz.sha256
```
Verify the downloaded artifact:
```sh
HASH=$(awk '{print $1}' clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256)
sha256 -c "$HASH" clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
HASH=$(awk '{print $1}' clawdie-quindecim-0.2.29.img.gz.sha256)
sha256 -c "$HASH" clawdie-quindecim-0.2.29.img.gz
```
If `sha256sum` is installed, this GNU-style form is also OK:
```sh
sha256sum -c clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
sha256sum -c clawdie-quindecim-0.2.29.img.gz.sha256
```
Unmount mounted USB partitions if needed:
@ -116,7 +116,7 @@ sudo umount /dev/daXs* 2>/dev/null
Flash by streaming gzip into `dd`:
```sh
gzip -dc clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz | sudo dd of=/dev/daX bs=1M status=progress conv=fsync
gzip -dc clawdie-quindecim-0.2.29.img.gz | sudo dd of=/dev/daX bs=1M status=progress conv=fsync
sync
```
@ -131,21 +131,21 @@ For a local build artifact that already exists as a raw image:
### Linux
```sh
sudo dd if=clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img of=/dev/sdX bs=4M status=progress conv=fsync
sudo dd if=clawdie-quindecim-0.2.29.img of=/dev/sdX bs=4M status=progress conv=fsync
sync
```
### FreeBSD
```sh
sudo dd if=clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img of=/dev/daX bs=1M status=progress conv=fsync
sudo dd if=clawdie-quindecim-0.2.29.img of=/dev/daX bs=1M status=progress conv=fsync
sync
```
Only gunzip first if you specifically need the raw file for inspection or reuse:
```sh
gunzip -k clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
gunzip -k clawdie-quindecim-0.2.29.img.gz
```
---

View file

@ -170,17 +170,17 @@ Artifact names use a short Latin codename for the FreeBSD major line they were
built on. For FreeBSD `15`, that codename is `quindecim`, so:
```text
clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img
clawdie-quindecim-0.2.29.img
```
means:
- `clawdie` — project name
- `xfce` — desktop/session target
- `quindecim` — Latin for `15`, matching the FreeBSD 15 build line
- `usb` — operator USB image
- `DD.MM.YY` — build date
- `abcdef0` — short `clawdie-iso` commit used for that build
- `0.2.29` — version, tracking the zot release the image is built upon
Per-build provenance (build date, `clawdie-iso` commit, zot commit) lives in
`build-manifest.json`, not the filename.
Small reference for the current naming convention:
@ -233,26 +233,26 @@ Download on Linux or FreeBSD with resume and retries:
```sh
curl -fL --continue-at - --retry 5 --retry-delay 5 --progress-bar -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz
curl -fL --retry 5 --retry-delay 5 -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz.sha256
```
Linux:
```sh
sha256sum -c clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
sha256sum -c clawdie-quindecim-0.2.29.img.gz.sha256
set -o pipefail 2>/dev/null || true
gzip -dc clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
gzip -dc clawdie-quindecim-0.2.29.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
sync
```
FreeBSD:
```sh
HASH=$(awk '{print $1}' clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256)
sha256 -c "$HASH" clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
gzip -dc clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz | sudo dd of=/dev/daX bs=1M status=progress conv=fsync
HASH=$(awk '{print $1}' clawdie-quindecim-0.2.29.img.gz.sha256)
sha256 -c "$HASH" clawdie-quindecim-0.2.29.img.gz
gzip -dc clawdie-quindecim-0.2.29.img.gz | sudo dd of=/dev/daX bs=1M status=progress conv=fsync
sync
```

View file

@ -1,7 +1,7 @@
# Clawdie Operator USB Testing Guide
**Branch:** `xfce-operator-usb`
**Target artifact:** `clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img`
**Target artifact:** `clawdie-quindecim-0.2.29.img`
**Current desktop path:** XFCE via SDDM, interactive login as `clawdie`
---
@ -105,7 +105,7 @@ Run this on the FreeBSD build host after `build.sh` finishes.
### Useful verification commands
```sh
sudo mdconfig -a -t vnode -f tmp/output/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img
sudo mdconfig -a -t vnode -f tmp/output/clawdie-quindecim-0.2.29.img
sudo mount -o ro /dev/md0s2a /mnt
egrep 'hostname|root_rw_mount|tmpmfs|varmfs|sshd|avahi|powerd|powerdxx|pf_enable|sddm|display_manager|clawdie_live_gpu|clawdie_tailscale_up|linux_enable|zfs_enable|kld_list' /mnt/etc/rc.conf
@ -426,12 +426,12 @@ FreeBSD. For a published compressed image on Linux, the default path is:
```sh
curl -fL --continue-at - --retry 5 --retry-delay 5 --progress-bar -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz
curl -fL --retry 5 --retry-delay 5 -O \
https://osa.smilepowered.org/downloads/iso/clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
sha256sum -c clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz.sha256
https://osa.smilepowered.org/downloads/iso/clawdie-quindecim-0.2.29.img.gz.sha256
sha256sum -c clawdie-quindecim-0.2.29.img.gz.sha256
set -o pipefail 2>/dev/null || true
gzip -dc clawdie-xfce-quindecim-usb-DD.MM.YY-abcdef0.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
gzip -dc clawdie-quindecim-0.2.29.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
sync
```

View file

@ -139,19 +139,16 @@ echo " Target : ${TARGET:-baremetal}"
echo " Colibri : ${FEATURE_COLIBRI:-NO} (agent ${ZOT_VERSION:-} / stage ${COLIBRI_STAGE_AGENT:-YES})"
echo ""
# Name the output for the thing we are actually building.
# Keep the date short and operator-facing. Use a recognizable codename for the
# FreeBSD major release when we have one, otherwise fall back to the old
# fbsd<series> stamp.
BUILD_DATE_STAMP="$(date +%d.%m.%y)"
BUILD_REPO_SHORT_COMMIT="$(git -C "${SCRIPT_DIR}" rev-parse --short=7 HEAD 2>/dev/null || echo unknown)"
# Name the output: clawdie-<freebsd-codename>-<version>.img, where the version
# tracks zot (see ISO_VERSION above). Per-build provenance — date, clawdie-iso
# commit, zot commit — lives in build-manifest.json, not the filename.
BUILD_FREEBSD_MAJOR="${FREEBSD_RELEASE_SERIES%%.*}"
BUILD_FREEBSD_STAMP="$(printf '%s' "${FREEBSD_RELEASE_SERIES}" | tr 'A-Z' 'a-z')"
case "${BUILD_FREEBSD_MAJOR}" in
15) BUILD_FREEBSD_CODENAME="quindecim" ;;
*) BUILD_FREEBSD_CODENAME="fbsd${BUILD_FREEBSD_STAMP}" ;;
esac
IMAGE_NAME="clawdie-${DEFAULT_DESKTOP}-${BUILD_FREEBSD_CODENAME}-usb-${BUILD_DATE_STAMP}-${BUILD_REPO_SHORT_COMMIT}.img"
IMAGE_NAME="clawdie-${BUILD_FREEBSD_CODENAME}-${ISO_VERSION}.img"
: > "$NPM_CONFIG_GLOBALCONFIG"
: > "$NPM_CONFIG_USERCONFIG"

View file

@ -47,7 +47,7 @@ ls -lh tmp/output
```
```sh
find tmp/output -maxdepth 1 -type f -name 'clawdie-xfce-*.img*' -ls
find tmp/output -maxdepth 1 -type f -name 'clawdie-*.img*' -ls
```
Confirm the image filename includes the current commit suffix. Do not publish an
@ -61,7 +61,7 @@ steps that write beside the artifact, or use the `sudo` variants shown below.
Set `IMG` to the raw image produced by the current build. Example:
```sh
IMG="tmp/output/clawdie-xfce-quindecim-usb-22.05.26-8c8dd5f.img"
IMG="tmp/output/clawdie-quindecim-0.2.29.img"
```
```sh
@ -131,15 +131,15 @@ Remove only the old public Clawdie image/checksum symlinks, not the new output
files under `tmp/output`:
```sh
sudo find /usr/local/www/osa/downloads/iso -maxdepth 1 -type l -name 'clawdie-xfce-*.img.gz' -delete
sudo find /usr/local/www/osa/downloads/iso -maxdepth 1 -type l -name 'clawdie-*.img.gz' -delete
```
```sh
sudo find /usr/local/www/osa/downloads/iso -maxdepth 1 -type l -name 'clawdie-xfce-*.img.gz.sha256' -delete
sudo find /usr/local/www/osa/downloads/iso -maxdepth 1 -type l -name 'clawdie-*.img.gz.sha256' -delete
```
```sh
sudo find /usr/local/www/osa/downloads/iso -maxdepth 1 -type l -name 'clawdie-xfce-*.manifest.json' -delete
sudo find /usr/local/www/osa/downloads/iso -maxdepth 1 -type l -name 'clawdie-*.manifest.json' -delete
```
## 5. Link the new artifacts