Initial commit: Alpine Zero-OS initramfs build system with cleaned Docker configuration
This commit is contained in:
104
docs/PACKAGES.md
Normal file
104
docs/PACKAGES.md
Normal 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 |
|
||||
Reference in New Issue
Block a user