Detect Darwin automatically and, on macOS, install the Xcode Command
Line Tools and Homebrew as the first actions before any package work.
Route system packages through brew (formulae and casks), skip the
Flatpak section entirely, refuse to run as root (brew won't), and
adjust custom-package URL/install-path templates with new {os}, {os_go},
{os_zig}, {os_nvim} substitutions. Architecture detection remains
dynamic on both Apple Silicon and Intel.
https://claude.ai/code/session_01R2CnCeEBYT5QoHiwxczDNq
121 lines
3.1 KiB
Python
121 lines
3.1 KiB
Python
"""Package definitions consumed by bootstrap_environment.py.
|
|
|
|
System and Flatpak packages are flat lists of names.
|
|
|
|
Custom packages declare a URL template plus an optional ``fetch_latest`` hint.
|
|
At install time the bootstrap script will attempt to look up the most recent
|
|
release and fall back to the pinned (version, sha256) tuple on failure.
|
|
|
|
URL templates use ``str.format`` with the following substitutions:
|
|
{version} pkg.version (or the latest resolved version)
|
|
{arch} "x86_64" or "aarch64"
|
|
{arch_go} Go-style: "amd64" or "arm64"
|
|
{os} "linux" or "macos"
|
|
{os_go} Go-style: "linux" or "darwin"
|
|
{os_zig} Zig-style: "linux" or "macos"
|
|
{os_nvim} Neovim-style: "linux" or "macos"
|
|
"""
|
|
|
|
SYSTEM_PACKAGES: list[str] = [
|
|
"ansible",
|
|
"ansible-core",
|
|
"aria2",
|
|
"bashtop",
|
|
"build-essential",
|
|
"buildah",
|
|
"containerd.io",
|
|
"docker-buildx-plugin",
|
|
"docker-ce-cli",
|
|
"docker-ce-rootless-extras",
|
|
"docker-ce",
|
|
"docker-compose-plugin",
|
|
"dotnet-sdk-10.0",
|
|
"ffmpeg-free",
|
|
"gcc",
|
|
"gh",
|
|
"git",
|
|
"github-desktop",
|
|
"google-chrome-stable",
|
|
"lua",
|
|
"minisign",
|
|
"minikube",
|
|
"obs-studio",
|
|
"obsidian",
|
|
"pipx",
|
|
"poetry",
|
|
"podman",
|
|
"qemu",
|
|
"restic",
|
|
"rg",
|
|
"shutter",
|
|
"temurin-25-jdk",
|
|
"vagrant",
|
|
"virt-manager",
|
|
"vivaldi-stable",
|
|
"webcamoid",
|
|
"wireshark",
|
|
"yt-dlp",
|
|
"zoom",
|
|
"zsh",
|
|
"bzip2",
|
|
"bzip2-devel",
|
|
"gdbm-libs",
|
|
"libffi-devel",
|
|
"libnsl2",
|
|
"libuuid-devel",
|
|
"libzstd-devel",
|
|
"make",
|
|
"openssl-devel",
|
|
"patch",
|
|
"readline-devel",
|
|
"sqlite",
|
|
"sqlite-devel",
|
|
"tk-devel",
|
|
"xz-devel",
|
|
"zlib-devel",
|
|
]
|
|
|
|
FLATPAK_PACKAGES: list[str] = [
|
|
"com.obsproject.Studio",
|
|
"fr.handbrake.ghb",
|
|
"io.github.webcamoid.Webcamoid",
|
|
"one.ablaze.floorp",
|
|
"com.vivaldi.Vivaldi",
|
|
"org.darktable.Darktable",
|
|
]
|
|
|
|
CUSTOM_PACKAGES: list[dict] = [
|
|
{
|
|
"name": "go",
|
|
"version": "1.26.3",
|
|
"url_template": "https://go.dev/dl/go{version}.{os_go}-{arch_go}.tar.gz",
|
|
"sha256": "2b2cfc7148493da5e73981bffbf3353af381d5f93e789c82c79aff64962eb556",
|
|
"fetch_latest": "go",
|
|
},
|
|
{"name": "neovim"},
|
|
{
|
|
"name": "firecracker",
|
|
"version": "1.15.1",
|
|
"url_template": (
|
|
"https://github.com/firecracker-microvm/firecracker/releases/download/"
|
|
"v{version}/firecracker-v{version}-{arch}.tgz"
|
|
),
|
|
"sha256": "d4a32ab2322d887ca1bc4a4e7afa9cc35393e6362dfc2b3becb389d362e4275a",
|
|
"fetch_latest": "firecracker",
|
|
},
|
|
{
|
|
"name": "zig",
|
|
"version": "0.16.0",
|
|
"url_template": "https://ziglang.org/download/{version}/zig-{arch}-{os_zig}-{version}.tar.xz",
|
|
"sha256_url_template": (
|
|
"https://ziglang.org/download/{version}/zig-{arch}-{os_zig}-{version}.tar.xz.minisig"
|
|
),
|
|
"minisign_key": "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U",
|
|
"fetch_latest": "zig",
|
|
},
|
|
{"name": "nvm"},
|
|
{"name": "pyenv"},
|
|
{"name": "pip"},
|
|
{"name": "oh-my-zsh"},
|
|
]
|