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

NextBSD/src ff9b6c8 — 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 d2014ef — 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 6d18cdf — 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 eef4669 — .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 e624a87 — .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 f21c172 — . build.sh, tests boot-test.sh iso-boot-test.sh

rpi: boot normally, not verbose (#506)

* rpi: boot normally, not verbose

The Pi boot partition shipped `FreeBSD: -v` in cmdline.txt, from when the
board was being brought up and its serial log was the only instrument
there was. That is no longer the right default, and leaving it was a trap
rather than a nicety.

The Pi rootfs carries nextbsd-overlays' loader.conf.d, so it already gets
boot_mutemsgs="YES" (#363). RB_VERBOSE is exactly what that mute exempts,
so a -v that arrived would turn the quiet console back off on this board
alone, while every other machine stayed quiet.

It does not arrive today: parse_fdt_bootargs() only parses when
fdt_get_chosen_bootargs() succeeds, and a tryboot with that line produced
a boot that was not verbose, so the firmware appears not to be writing
/chosen/bootargs at all (nextbsd-kernel#93). So the flag was inert -- and
would have started working silently, on every Pi image, the day that was

    [198 lines not shown]
DeltaFile
+88-18tests/img-boot-test.sh
+76-16tests/iso-boot-test.sh
+59-23tests/boot-test.sh
+21-13build.sh
+244-704 files

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

rpi: boot normally, not verbose (#506)

* rpi: boot normally, not verbose

The Pi boot partition shipped `FreeBSD: -v` in cmdline.txt, from when the
board was being brought up and its serial log was the only instrument
there was. That is no longer the right default, and leaving it was a trap
rather than a nicety.

The Pi rootfs carries nextbsd-overlays' loader.conf.d, so it already gets
boot_mutemsgs="YES" (#363). RB_VERBOSE is exactly what that mute exempts,
so a -v that arrived would turn the quiet console back off on this board
alone, while every other machine stayed quiet.

It does not arrive today: parse_fdt_bootargs() only parses when
fdt_get_chosen_bootargs() succeeds, and a tryboot with that line produced
a boot that was not verbose, so the firmware appears not to be writing
/chosen/bootargs at all (nextbsd-kernel#93). So the flag was inert -- and
would have started working silently, on every Pi image, the day that was

    [198 lines not shown]
DeltaFile
+1,512-0tests/boot-test.sh
+1,060-0build.sh
+880-0PORTING.md
+553-0.github/workflows/build.yml
+236-0README.md
+218-0tests/img-boot-test.sh
+4,459-010 files not shown
+4,994-016 files