NextBSD/src b1a4d65 — . README.md build.sh

Use nextbsd-kernel-extensions-graphics, failing loudly (#590)

nextbsd-kernel-extensions is now nextbsd-kernel-extensions-graphics
(nextbsd/nextbsd#551). Fetch the kexts and the Raspberry Pi 5 overlays
from the new name before the old one is reused, and fail when any of
them is missing instead of shipping an image without it
(nextbsd/nextbsd#552). README and issue refs follow.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-19build.sh
+5-2README.md
+23-212 files

NextBSD/src 19abeaa — . README.md build.sh

Use nextbsd-kernel-extensions-graphics, failing loudly

nextbsd-kernel-extensions is now nextbsd-kernel-extensions-graphics
(nextbsd/nextbsd#551). Fetch the kexts and the Raspberry Pi 5 overlays
from the new name before the old one is reused, and fail when any of
them is missing instead of shipping an image without it
(nextbsd/nextbsd#552). README and issue refs follow.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-19build.sh
+5-2README.md
+23-212 files

NextBSD/src 99ae9a4 — . build.sh

Fetch NVIDIA kexts from nextbsd-kernel-extensions-nvidia (#589)

Take nvidia-kexts-amd64.tar.gz from the NVIDIA repo instead of
nvidia-kexts.tar.gz from nextbsd-kernel-extensions, and fail when it is
missing instead of shipping an image without it (nextbsd/nextbsd#548).

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+9-5build.sh
+9-51 files

NextBSD/src 02d82b7 — . build.sh

Fetch NVIDIA kexts from nextbsd-kernel-extensions-nvidia

Take nvidia-kexts-amd64.tar.gz from the NVIDIA repo instead of
nvidia-kexts.tar.gz from nextbsd-kernel-extensions, and fail when it is
missing instead of shipping an image without it (nextbsd/nextbsd#548).

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+9-5build.sh
+9-51 files

NextBSD/src 3848e0a — . pkglist.txt build.sh

Merge pull request #588 from nextbsd/pkg/545-nextbsd-pkg-only

build.sh: pkg from NextBSD, config in /private/etc; keep the FreeBSD ports repo
DeltaFile
+43-36build.sh
+4-1pkglist.txt
+47-372 files

NextBSD/src f5718fd — . pkglist.txt build.sh

build.sh: keep shipping the FreeBSD ports repo in /usr/local/etc/pkg/repos

The image still ships /usr/local/etc/pkg/repos/FreeBSD.conf
(pkg.FreeBSD.org/latest) so FreeBSD ports packages install out of the
box. It sits below the NextBSD repo (priority 0 vs 100); NextBSD's pkg
never takes pkg from it and keeps its packages in /usr/local/ and /var/.
No /usr/local/etc/pkg.conf is written. Step 5b uses the same file again.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+22-19build.sh
+2-3pkglist.txt
+24-222 files

NextBSD/src 7fe10eb — . pkglist.txt build.sh

build.sh: ship no pkg config of its own and no FreeBSD repo; pkg from NextBSD

NextBSD's pkg reads /private/etc/pkg.conf and /private/etc/pkg/, and
nextbsd-overlays now ships /private/etc/pkg.conf (IGNORE_OSVERSION only;
pkg detects FreeBSD:15:<arch> from /usr/bin/uname's ELF note) and
/private/etc/pkg/NextBSD.conf (continuous-${MACHINE}, priority 100).

- Step 5 no longer writes /usr/local/etc/pkg.conf or
  /usr/local/etc/pkg/repos/{FreeBSD,NextBSD}.conf; it checks that the
  overlay seed provided both files.
- pkglist.txt drops pkg: it comes from the NextBSD repo through
  NextBSD-everything (nextbsd-pkg#19). The list is now empty.
- When pkglist.txt is not empty, the FreeBSD repo it needs is a build-only
  REPOS_DIR under $WORK, as $NBREPO is, and is never written into the
  image.
- The residue-clean notes name the new config paths.

Closes #545

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+46-42build.sh
+5-1pkglist.txt
+51-432 files

NextBSD/src f0c895c — . build.sh

Merge pull request #544 from nextbsd/fix/pkg-db-private-var

build.sh: lay the /private symlinks before pkg installs, so the package database lands in /private/var
DeltaFile
+27-18build.sh
+27-181 files

NextBSD/src d84ba18 — . build.sh

Merge pull request #544 from nextbsd/fix/pkg-db-private-var

build.sh: lay the /private symlinks before pkg installs, so the package database lands in /private/var
DeltaFile
+27-18build.sh
+27-181 files

NextBSD/src e390ab2 — . build.sh

build.sh: empty the package cache directory after pkg clean

pkg clean's failure is ignored and it leaves files it does not recognise,
so delete whatever remains in private/var/cache/pkg before the image is
baked. No downloaded package ships in the IMG or ISO.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-0build.sh
+4-01 files

NextBSD/src 503952b — . build.sh

build.sh: empty the package cache directory after pkg clean

pkg clean's failure is ignored and it leaves files it does not recognise,
so delete whatever remains in private/var/cache/pkg before the image is
baked. No downloaded package ships in the IMG or ISO.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-0build.sh
+4-01 files

NextBSD/src 27b4856 — . build.sh

build.sh: lay the /private symlinks before pkg installs, so the package database lands in /private/var

Step 3 moved the installed var into private/ after NextBSD-everything was
installed. Since nextbsd-userland#375, NextBSD-userland ships
/private/var/log/com.apple.launchd, so private/var already existed and
mv nested var inside it as private/var/var. The package database and the
package cache were stranded there: the image's pkg info listed only pkg,
and the 101 MiB cache escaped step 5b's clean.

Create private/{etc,var,tmp} and the relative etc/var/tmp symlinks at the
start of the pkg branch instead, and drop the move.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+23-18build.sh
+23-181 files

NextBSD/src b5148ac — . build.sh

build.sh: lay the /private symlinks before pkg installs, so the package database lands in /private/var

Step 3 moved the installed var into private/ after NextBSD-everything was
installed. Since nextbsd-userland#375, NextBSD-userland ships
/private/var/log/com.apple.launchd, so private/var already existed and
mv nested var inside it as private/var/var. The package database and the
package cache were stranded there: the image's pkg info listed only pkg,
and the 101 MiB cache escaped step 5b's clean.

Create private/{etc,var,tmp} and the relative etc/var/tmp symlinks at the
start of the pkg branch instead, and drop the move.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+23-18build.sh
+23-181 files

NextBSD/src 7afef6a — . build.sh

Merge pull request #538 from nextbsd/e2/322-quiet-iso-init

build.sh: gate live-ISO init [init] progress behind verbose boot
DeltaFile
+16-9build.sh
+16-91 files

NextBSD/src 7212ab9 — . build.sh

build.sh: hide NextBSD live-ISO vfs.pivot output unless verbose boot

The pivot's sysctl prints a "vfs.pivot: ... -> ..." line on every
boot, which is the last [init]-phase progress output left on a quiet
NextBSD live-ISO boot. Send its stdout to /dev/null unless VERBOSE is
set. Its stderr still goes to the console, so a failed pivot is still
visible.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2-1build.sh
+2-11 files

NextBSD/src afbefc3 — . build.sh

build.sh: gate live-ISO init [init] progress behind verbose boot

The live-ISO miniroot init printed its [init] progress trace on every
boot. Route the routine lines through a vlog helper that prints only
when debug.bootverbose is set (or init got -s). start_init() only ever
passes -s to init, never -v, so verbose mode comes from the sysctl
rather than $*. The MISSING/ABSENT/EMPTY error cases, the single-user
banner and resume line, the FATAL line and mount errors still always
print.

Closes #322

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+14-8build.sh
+14-81 files

NextBSD/src f198b6c — . build.sh, .github/workflows build.yml

Merge pull request #534 from nextbsd/assembly-from-nextbsd-pkg

Assemble all images from nextbsd-pkg; nextbsd-ci is boot-tests only
DeltaFile
+30-29build.sh
+11-26.github/workflows/build.yml
+41-552 files

NextBSD/src f8b5d93 — . build.sh, .github/workflows build.yml

Assemble all images from nextbsd-pkg again; nextbsd-ci is boot-tests only

96e7330 made ASSEMBLY=artifacts the default for every CI lane, so every image
published since ships no pkg (no binary, no database, no in-image repo config):
pkg update 404s via the base bootstrapper and the installed OS is unowned
(#533). Restore pkg assembly for all images -- build matrix (amd64/arm64) and
the rpi5 lane -- via this repo's own build.sh, and stop checking out nextbsd-ci
for assembly. The img/iso boot tests keep the shared nextbsd-ci harness (the
tests/*-boot-test.sh scripts clone it at the pinned tag themselves), so
nextbsd-ci stays in this repo for boot testing only. The artifacts path remains
available as a manual opt-in.
DeltaFile
+30-29build.sh
+11-26.github/workflows/build.yml
+41-552 files

NextBSD/src 2467551 — . README.md, .github/workflows build.yml

Merge pull request #524 from nextbsd/t7-t9-t11-nextbsd-cleanup

T9+T11+T7: ISO job rename, stop ISO dispatch/schedule, redux sweep, harness v0.3.5
DeltaFile
+26-35.github/workflows/build.yml
+4-4README.md
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+32-414 files

NextBSD/src 2b251af — . README.md, .github/workflows build.yml

T9+T11+T7: rename job, stop the ISO dispatch/schedule, redux sweep, harness v0.3.5

- T9 (nextbsd-ci#11): `name: ci` -> `Build NextBSD ISO/IMG` (the only generic
  name left in the org).
- T11 (nextbsd-ci#13): remove the `repository_dispatch` (ISO) trigger and the
  nightly `schedule`, and the `repository_dispatch` branch in the release
  `if`. ISO is the expensive one (qemu, live boot, ISO boot test); the cheap
  components it re-validated are all gated upstream (kernel continuous on
  push, userland on push per T10, pkg manual-only), so the cascade had no
  unique value. `workflow_dispatch` (manual ISO + release) and `pull_request`
  (PR img lane) remain; img-test and release now fire on `pull_request` or
  manual.
- T7 (nextbsd-ci#7): README `nextbsd-redux` -> `nextbsd`.
- Lockstep: harness pin v0.3.4 -> v0.3.5 (the T8 flake fixes: nextbsd#428
  end-state hold, nextbsd#503 teardown, nextbsd#405 marker protocol).
DeltaFile
+26-35.github/workflows/build.yml
+4-4README.md
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+32-414 files

NextBSD/src d1b2fb6 — . build.sh, .github/workflows build.yml

Merge pull request #521 from nextbsd/t6-lockstep-harness-v0.3.0

T6 lockstep: pin the shared boot harness to v0.3.0
DeltaFile
+148-43build.sh
+43-6.github/workflows/build.yml
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+193-514 files

NextBSD/src 58fb8a6 — .github/workflows build.yml, tests iso-boot-test.sh img-boot-test.sh

Pin nextbsd-ci v0.3.4 (lockstep)
DeltaFile
+2-2.github/workflows/build.yml
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+4-43 files

NextBSD/src 18d93d7 — .github/workflows build.yml, tests iso-boot-test.sh img-boot-test.sh

Converge the lockstep pins on nextbsd-ci v0.3.3
DeltaFile
+2-2.github/workflows/build.yml
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+4-43 files

NextBSD/src 96e7330 — . build.sh, .github/workflows build.yml

Assemble CI images from the shared nextbsd-ci assembly, never pkg

ASSEMBLY=artifacts (the default; every CI lane) now lays the five
component continuous artifacts (base, kernel, userland, contrib, kexts)
into the rootfs via the SHARED assembly script that lives in nextbsd-ci
(checked out into the workspace at the pinned v0.3.1 release tag, rsynced
into the build VM). One recipe, all consumers: this lane, the userland PR
lane, and the kext lane share it. No pkg anywhere in a CI image — packages
are gated release artifacts.

The inline re-derivation of the same layout that was about to ship is gone:
the Apple /private layout, the overlays /etc seed, the runtime skeleton,
kext auth, offline DBs, and cert bundle all come from the shared script
(SKIP_ASSEMBLE=1 so this lane keeps its own 1.5G root + live ISO + rpi500
media tail). build.sh steps 3/3b are pkg-mode-only now (the shared script
already did them in artifacts mode); step 4 runs in both (idempotent DBs +
the certctl refresh the script can't do on a Linux runner).

ASSEMBLY=pkg (release images) is unchanged: pkg install

    [10 lines not shown]
DeltaFile
+148-43build.sh
+43-6.github/workflows/build.yml
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+193-514 files

NextBSD/src 24a30fc — tests iso-boot-test.sh img-boot-test.sh

T6 lockstep: pin the shared boot harness to v0.3.0

v0.3.0 = v0.2.3 plus -device virtio-gpu-pci on the amd64 q35 shape (nextbsd/nextbsd-ci#15). The device is unbound and inert for the img/iso login-only boot gates (no graphics kext in the image); both lanes re-run on this PR to confirm.
DeltaFile
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+2-22 files

NextBSD/src 62f0ea1 — .github/workflows build.yml, tests loader.exp.inc qemu-arch.sh

T4: pin boot tests to shared harness v0.2.3 (banner→prompt login) (#513)

* T4: boot gates run on the shared nextbsd-ci harness @v0.2.1 (login-only)

img-boot-test.sh + iso-boot-test.sh become thin entry points onto the shared
harness (NB_LOGIN_ONLY; the live ISO adds NB_MEDIA=cd): they extract the
zipped artifact, check out nextbsd/nextbsd-ci at v0.2.1 (pinned tag = no drift),
and run harness/boot-test.sh. The loader un-mute dance, the arch-aware qemu
argv, login detection and teardown now come from the shared harness (one place,
every arch, kept green by its selftest) instead of the in-repo copies.

Delete the 1512-line tests/boot-test.sh monolith (nothing in CI invoked it) and
the in-repo tests/loader.exp.inc + tests/qemu-arch.sh (superseded by the
harness's contract.exp.inc + qemu-arch.sh). The jobs' serial-log dumps point at
the harness transcript. Both gates stay NON-GATING as before (not in release's
needs); the gate is the harness exit class.

* Bump the shared-harness pin to v0.2.2 in the thin img/iso boot wrappers


    [4 lines not shown]
DeltaFile
+0-1,512tests/boot-test.sh
+20-198tests/img-boot-test.sh
+18-188tests/iso-boot-test.sh
+0-119tests/qemu-arch.sh
+0-92tests/loader.exp.inc
+8-8.github/workflows/build.yml
+46-2,1171 files not shown
+47-2,1187 files

NextBSD/src c71bf4a — tests iso-boot-test.sh img-boot-test.sh

Re-pin the boot tests to the shared harness v0.2.3 (banner-then-prompt login)
DeltaFile
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+2-22 files

NextBSD/src 3d072b9 — .github/workflows build.yml, tests loader.exp.inc qemu-arch.sh

T4: boot gates run on the shared nextbsd-ci harness @v0.2.1 (login-only)

img-boot-test.sh + iso-boot-test.sh become thin entry points onto the shared
harness (NB_LOGIN_ONLY; the live ISO adds NB_MEDIA=cd): they extract the
zipped artifact, check out nextbsd/nextbsd-ci at v0.2.1 (pinned tag = no drift),
and run harness/boot-test.sh. The loader un-mute dance, the arch-aware qemu
argv, login detection and teardown now come from the shared harness (one place,
every arch, kept green by its selftest) instead of the in-repo copies.

Delete the 1512-line tests/boot-test.sh monolith (nothing in CI invoked it) and
the in-repo tests/loader.exp.inc + tests/qemu-arch.sh (superseded by the
harness's contract.exp.inc + qemu-arch.sh). The jobs' serial-log dumps point at
the harness transcript. Both gates stay NON-GATING as before (not in release's
needs); the gate is the harness exit class.
DeltaFile
+0-1,512tests/boot-test.sh
+20-198tests/img-boot-test.sh
+18-188tests/iso-boot-test.sh
+0-119tests/qemu-arch.sh
+0-92tests/loader.exp.inc
+8-8.github/workflows/build.yml
+46-2,1171 files not shown
+47-2,1187 files

NextBSD/src d2d43e3 — tests iso-boot-test.sh img-boot-test.sh

Bump the shared-harness pin to v0.2.2 in the thin img/iso boot wrappers

v0.2.2 = v0.2.1 (v0.2.0 + login-only) plus a capped post-banner login-wait
window (180s) that probes for a shell quickly instead of waiting out the whole
global budget on an autologin image (the arm64 30-min 'hang').
DeltaFile
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+2-22 files

NextBSD/src 69b3e5f — tests iso-boot-test.sh img-boot-test.sh

Re-pin the boot tests to the shared harness v0.2.3 (banner-then-prompt login)
DeltaFile
+1-1tests/iso-boot-test.sh
+1-1tests/img-boot-test.sh
+2-22 files