Files
zosbuilder/docs/PACKAGES.md

4.1 KiB

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