Prune legacy void/alpine + customize.sh flows
The golden-image Dockerfile + catalog pipeline replaces the entire
manual rootfs-build stack. With that shipped, the per-distro shell
flows are dead code.
Removed:
- scripts/customize.sh, scripts/interactive.sh, scripts/verify.sh
- scripts/make-rootfs{,-void,-alpine}.sh
- scripts/register-{void,alpine}-image.sh
- scripts/make-{void,alpine}-kernel.sh
- internal/imagepreset/ (only consumer was `banger internal packages`,
which fed customize.sh)
- examples/{void,alpine}.config.toml
- Makefile targets: rootfs, rootfs-void, rootfs-alpine, void-kernel,
alpine-kernel, void-register, alpine-register, void-vm, alpine-vm,
verify-void, verify-alpine, plus the ALPINE_RELEASE / *_IMAGE_NAME
/ *_VM_NAME variables
The void-6.12 kernel catalog entry is also gone — golden image pairs
with generic-6.12 and nothing else in the catalog depended on it.
Consolidated: imagemgr now holds the small DebianBasePackages list +
package-hash helper inline, so the `image build --from-image` flow
(still supported) no longer pulls from a separate imagepreset package.
Net: 3,815 lines deleted, 59 added. No runtime functionality removed
beyond the `banger internal packages` subcommand (hidden, used only
by the deleted customize.sh).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8029b2e1bc
commit
6083e2dde5
23 changed files with 73 additions and 3814 deletions
|
|
@ -8,14 +8,44 @@ package imagemgr
|
|||
|
||||
import (
|
||||
"context"
|
||||
"crypto/sha256"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"banger/internal/imagepreset"
|
||||
"banger/internal/system"
|
||||
)
|
||||
|
||||
// debianBasePackages is the apt package list applied by
|
||||
// `image build --from-image` to Debian-based managed rootfses. Small
|
||||
// curated set: most of the developer tooling the golden image ships
|
||||
// lives in the Dockerfile, not here.
|
||||
var debianBasePackages = []string{
|
||||
"make",
|
||||
"git",
|
||||
"less",
|
||||
"tree",
|
||||
"ca-certificates",
|
||||
"curl",
|
||||
"wget",
|
||||
"iproute2",
|
||||
"vim",
|
||||
"tmux",
|
||||
}
|
||||
|
||||
// DebianBasePackages returns a copy of the base package set.
|
||||
func DebianBasePackages() []string {
|
||||
return append([]string(nil), debianBasePackages...)
|
||||
}
|
||||
|
||||
// hashPackages returns the hex sha256 of the package list, used as
|
||||
// drift-detection metadata alongside a built rootfs.
|
||||
func hashPackages(lines []string) string {
|
||||
sum := sha256.Sum256([]byte(strings.Join(lines, "\n") + "\n"))
|
||||
return fmt.Sprintf("%x", sum)
|
||||
}
|
||||
|
||||
// ValidateRegisterPaths checks that rootfs + kernel exist and that optional
|
||||
// artifacts, when provided, also exist.
|
||||
func ValidateRegisterPaths(rootfsPath, workSeedPath, kernelPath, initrdPath, modulesDir string) error {
|
||||
|
|
@ -102,7 +132,7 @@ func StageOptionalArtifactPath(artifactDir, stagedPath, name string) string {
|
|||
// managed image build. The #feature:docker sentinel is appended when
|
||||
// docker is requested.
|
||||
func BuildMetadataPackages(docker bool) []string {
|
||||
packages := imagepreset.DebianBasePackages()
|
||||
packages := DebianBasePackages()
|
||||
if docker {
|
||||
packages = append(packages, "#feature:docker")
|
||||
}
|
||||
|
|
@ -116,5 +146,5 @@ func WritePackagesMetadata(rootfsPath string, packages []string) error {
|
|||
return nil
|
||||
}
|
||||
metadataPath := rootfsPath + ".packages.sha256"
|
||||
return os.WriteFile(metadataPath, []byte(imagepreset.Hash(packages)+"\n"), 0o644)
|
||||
return os.WriteFile(metadataPath, []byte(hashPackages(packages)+"\n"), 0o644)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import (
|
|||
|
||||
"banger/internal/api"
|
||||
"banger/internal/daemon/imagemgr"
|
||||
"banger/internal/imagepreset"
|
||||
"banger/internal/kernelcat"
|
||||
"banger/internal/model"
|
||||
"banger/internal/system"
|
||||
|
|
@ -86,7 +85,7 @@ func (d *Daemon) BuildImage(ctx context.Context, params api.ImageBuildParams) (i
|
|||
if err != nil {
|
||||
return model.Image{}, err
|
||||
}
|
||||
packages := imagepreset.DebianBasePackages()
|
||||
packages := imagemgr.DebianBasePackages()
|
||||
metadataPackages := imagemgr.BuildMetadataPackages(params.Docker)
|
||||
spec := imageBuildSpec{
|
||||
ID: id,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue