Initial commit: Alpine Zero-OS initramfs build system with cleaned Docker configuration

This commit is contained in:
2025-08-15 22:11:44 +02:00
commit 9b14d94bbe
34 changed files with 12864 additions and 0 deletions

104
docs/PACKAGES.md Normal file
View File

@@ -0,0 +1,104 @@
# Package Mapping: Build-from-Source → Alpine
This document maps the current build-from-source components to their Alpine Linux package equivalents.
## ✅ Direct Alpine Package Replacements
| Current Build | Version | Alpine Package | Notes |
|---------------|---------|----------------|-------|
| busybox | 1.31.0 | `busybox` | Core system utilities |
| openssl | 1.1.1d | `openssl` | Crypto library |
| ca-certificates | 20190110 | `ca-certificates` | SSL certificates |
| util-linux | 2.34 | `util-linux` | System utilities (lsblk, etc.) |
| e2fsprogs | 1.45.2 | `e2fsprogs` | ext2/3/4 filesystem tools |
| btrfs-progs | 4.20.2 | `btrfs-progs` | Btrfs filesystem tools |
| parted | 3.2 | `parted` | Partition management |
| dnsmasq | 2.80 | `dnsmasq` | DHCP/DNS server |
| nftables | 0.9.1 | `nftables` | Firewall/routing |
| iproute2 | 5.4.0 | `iproute2` | Network namespace support |
| openssh | 8.0p1 | `openssh` | SSH client/server |
| curl | 7.65.1 | `curl` | HTTP client library |
| restic | 0.9.2 | `restic` | Backup tool |
| wireguard-tools | 1.0.20200102 | `wireguard-tools` | VPN userland tools |
| zlib | 1.2.11 | `zlib` | Compression library |
| fuse | 2.9.7 | `fuse` | Filesystem in userspace |
| unionfs-fuse | 2.0 | `unionfs-fuse` | Union filesystem |
| smartmontools | 7.0 | `smartmontools` | S.M.A.R.T monitoring |
| dmidecode | 3.2 | `dmidecode` | Hardware info |
| netcat | 110 | `netcat-openbsd` | Network utility |
| redis | 7.2.1 | `redis` | Key-value store |
| haveged | 1.9.4 | `haveged` | Entropy daemon |
| ethtool | 5.1 | `ethtool` | Ethernet tool |
| dhcpcd | 7.2.2 | `dhcpcd` | DHCP client |
| tcpdump | 4.9.2 | `tcpdump` | Network packet analyzer |
| xfsprogs | 5.4.0 | `xfsprogs` | XFS filesystem tools |
| bcache-tools | master | `bcache-tools` | Bcache utilities |
| keyutils | 1.6.3 | `keyutils` | Kernel key management |
| zstd | 1.5.6 | `zstd` | Compression tool |
| libaio | 0.3.113 | `libaio` | Async I/O library |
## 🔧 Hardware & Kernel Support
| Current Build | Alpine Package | Purpose |
|---------------|----------------|---------|
| eudev | `eudev` | Device manager |
| kmod | `kmod` | Kernel module tools |
| linux-firmware | `linux-firmware` | Hardware firmware |
## 🐹 GitHub Components (Custom Builds)
These components are fetched from GitHub releases instead of building from source:
| Component | Repository | Purpose |
|-----------|------------|---------|
| zinit | `github.com/threefoldtech/zinit` | Init system (PID 1) |
| core-x | `github.com/threefoldtech/core-x` | Container remote control |
| seektime | `github.com/threefoldtech/seektime` | Disk type detection |
| rfs | `github.com/threefoldtech/rfs` | Rust version of 0-fs |
## 📦 Additional Alpine Packages Needed
These packages are required for the Alpine environment but weren't in the original build:
| Package | Purpose |
|---------|---------|
| `alpine-base` | Base Alpine system |
| `musl` | C library |
| `alpine-keys` | Package signing keys |
| `apk-tools` | Package manager |
| `busybox-suid` | SUID busybox utilities |
| `util-linux-misc` | Additional util-linux tools |
## 🏗️ Build Dependencies (Build Container Only)
These are only needed in the build container, not in the final initramfs:
| Package | Purpose |
|---------|---------|
| `build-base` | Compilation tools |
| `linux-headers` | Kernel headers |
| `cmake` | Build system |
| `git` | Source control |
| `wget` | Download tool |
| `cpio` | Archive tool |
| `xz` | Compression |
## 🚫 Removed Components
These are no longer needed with the Alpine approach:
| Removed | Reason |
|---------|--------|
| libvirt + qemu | Too heavy for initramfs, not core functionality |
| Various build toolchains | Using Alpine packages instead |
| Custom musl builds | Alpine already uses musl |
## 📊 Size Comparison
| Metric | Current Build | Alpine Approach |
|--------|---------------|-----------------|
| Build time | 60+ minutes | ~5 minutes |
| Source packages | 50+ | 4 (GitHub only) |
| Dependencies | Complex web | Package manager handled |
| Updates | Manual version bumps | Alpine package updates |
| Security patches | Manual backports | Alpine security team |