You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hyprpacker is the official build system of the Hyprside operating system.
It compiles the kernel, assembles the immutable system image, builds the initramfs, and can boot the OS inside a QEMU VM for testing β all through a unified CLI.
β¨ Features
Modular package management:
Local PKGBUILDs
Remote Git repositories
Precompiled Arch Linux binary packages
Incremental build with cached sources
Final system image built as a SquashFS filesystem
Containerized kernel build pipeline (Docker)
Initrd build automation via manifest-defined script
Builds all packages and assembles the final .squashfs image
packages fetch
Pre-downloads all sources and validates the manifest
packages build
Builds all packages without assembling the image
packages gc
Removes unused source tarballs
push
(Unimplemented) Pushes the image to an update server
kernel Subcommands
Subcommand
Description
build
Compiles the Linux kernel defined in the manifest
initrd Subcommands
Subcommand
Description
build
Runs the build script defined in the manifest to generate the initramfs
vm Subcommands
Subcommand
Description
run
Builds everything (kernel, initrd, image) and launches the system in QEMU
reset
Recreates the user data disk (user.qcow2)
π§Ύ Example Manifest (manifest.toml)
version = "0.1-dev"
[kernel]
url = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.10.tar.xz"
[kernel.options]
DEBUG_INFO = falseKALLSYMS_ALL = false
[initrd]
build_script = "scripts/build-initramfs.sh"
[[packages]]
name = "glibc"version = "2.39"source = { type = "binary", url = "https://archlinux.org/packages/core/x86_64/glibc/download" }
[[packages]]
name = "mesa"version = "git"source = { type = "git", repo = "https://gitlab.freedesktop.org/mesa/mesa.git", rev = "main" }
[[packages]]
name = "tibs"version = "0.1"source = { type = "pkgbuild", path = "./pkgs/tibs" }
βοΈ Requirements
Rust Compiler
Docker (for kernel and package builds)
squashfs-tools (for final image creation)
QEMU (for VM testing)
π Usage Examples
# Download all sources
hyprpacker image packages fetch
# Build packages only
hyprpacker image packages build
# Assemble the final system image
hyprpacker image assemble
# Build the kernel
hyprpacker kernel build
# Build the initramfs
hyprpacker initrd build
# Run the full system inside a UEFI QEMU VM
hyprpacker vm run
# Recreate the VM user data disk
hyprpacker vm reset
# Clean the build directory
hyprpacker clean
All build artifacts are stored inside the ./build directory.
π Generated Directory Layout
build/
βββ downloads/ # Source tarballs
βββ src/ # Source code and temporary build trees
βββ out/ # Build artifacts
βββ images/ # Final SquashFS system image
βββ kernel/ # Kernel build output
βββ vm/ # Virtual machine files (OVMF, qcow2 disks, etc.)
βββ sysroot/ # Temporary root used during image assembly