default-butane-spec.sh appended "local.ign" to the merge list outside of
the duplicate detection. An empty local.bu (as written by packaging
scripts) compiles to the same content as an empty "-examples" ignition
file, and butane rejects the duplicate entry: "make package" failed on
base/build/fcos-dev.ign since the coreos split.
local.ign is now passed as the last argument, so it keeps its place at
the end of the merge list and is skipped when its content duplicates a
previous file.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KuHAbQsFqabSuCuzQ1PrRK
- coreos: everything specific to Fedora CoreOS (virtiofs discovery and
mount, qemu-guest-agent, SSH host key persistence, DNS configuration).
- base: everything else (install-tools, fastfetch, resolv.conf resync,
base images, users and groups).
common.mk now injects both as implicit dependencies: coreos has none,
base depends on coreos and every other project depends on coreos and base.
default-butane-spec.sh skips ignition files whose content duplicates a
previous one: butane rejects duplicate merge entries, which happens with
empty "-examples" ignition files (e.g. coreos-examples and nftables-examples).
The virtiofs tags are now discovered in /run/quadlets/coreos/virtiofs
(seedbox mounts updated accordingly) and the tmpfiles.d file is named
coreos.conf so that make install/uninstall picks it up.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The /dev/vdb -> /var partitioning in cookbooks/base/overlay.bu was merged
into every project's main spec, so it ended up in the production/test
ignition even though the second disk (var.qcow2) only exists in the libvirt
dev/test VM. A real host should not have `base` blindly repartition /dev/vdb.
Move it to local.bu / local.bu.template, which feeds local.ign and is merged
into both fcos-dev.ign and fcos-test.ign but is never part of the shipped
package. This restores partitioning for all VMs while keeping it out of
production.
Also add the overlay-examples.bu merge mechanism to scripts/common.mk (mirror
of the existing overlay.bu merge) for future per-project example overlays, and
whitelist overlay-examples.bu in .gitignore.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`make fcos-vm` builds build/fcos-dev.ign but never merged the current
project's own *-examples.ign, even though it was listed as a prerequisite
and staged into butane's -d dir. The generated .bu only referenced what
was passed to default-butane-spec.sh, and -examples was appended to the
dependencies but never to $(PROJECT_NAME). Units gated on config that
ships only as an example (e.g. ConditionPathExists) therefore stayed
inactive on a fresh dev VM.
Introduce a SELF variable so the dev spec includes the project's own
examples while the test spec is left unchanged. base is filtered out of
DEPS for its own build, so base-examples is not duplicated.
Fixes#4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>