Last updated:

genpack-overlay Profile Reference

Overview

genpack-overlay profiles define the base environment for genpack images. When you specify a profile like profile: "paravirt" in genpack.json5, the packages, USE flags, and keyword settings associated with that profile are automatically applied.

Profiles are structured using Gentoo's Portage profile mechanism and have hierarchical inheritance relationships.

Profile Hierarchy

All profiles inherit from the genpack root profile and are further organized through architecture-specific layers.

When actually selecting a profile, the architecture layer is automatically inserted:

genpack.json5: profile: "paravirt"
  → genpack/amd64/paravirt  (for x86_64)
  → genpack/arm64/paravirt  (for aarch64)

Available Profiles

paravirt

Purpose: For QEMU/KVM virtual machines

Mutually exclusive with systemimg. Includes packages optimized for virtualization (guest agents, virtio support) and excludes physical hardware drivers.

Added Packages (genpack/paravirt metapackage):

PackagePurpose
genpack/baseBase system (described below)
app-emulation/qemu-guest-agentQEMU guest agent
sys-libs/liburingAsynchronous I/O support
net-misc/socatMulti-purpose relay tool

USE Flags:

media-libs/mesa video_cards_zink video_cards_lavapipe

Virtual machines use software rendering (lavapipe) and Zink (OpenGL on Vulkan).

systemimg

Purpose: For disk image-based installation (format written by genpack-install)

Mutually exclusive with paravirt. Includes packages necessary for disk writing and bootloader installation by genpack-install.

Added Packages (genpack/systemimg metapackage):

PackagePurpose
genpack/baseBase system
genpack/genpack-installDisk writing and self-update tool
sys-apps/kbdKeyboard utilities

USE Flags:

sys-libs/zlib minizip

baremetal (systemimg/baremetal)

Purpose: For physical machines (inherits from systemimg)

Specified with profile: "baremetal". Adds tools necessary for physical hardware detection and management.

Added Packages (enabled by the baremetal USE flag in genpack/systemimg):

PackagePurpose
sys-kernel/linux-firmwareHardware firmware
sys-fs/lsscsiSCSI device enumeration
sys-apps/lshwHardware information display
sys-apps/hwlocHardware topology
sys-apps/usbutilsUSB device management
sys-apps/pciutilsPCI device management
sys-apps/dmidecodeDMI/SMBIOS information
sys-apps/lm-sensorsHardware monitoring
sys-apps/usb_modeswitchUSB mode switching
sys-power/cpupowerCPU frequency management
sys-apps/smartmontoolsS.M.A.R.T. monitoring
sys-apps/nvme-cliNVMe management
sys-apps/hdparmDisk parameters
sys-apps/ethtoolNetwork configuration

x86_64 specific:

PackagePurpose
app-misc/beepBeep sound
sys-apps/msr-toolsMSR register access
sys-apps/memtest86+Memory testing

gnome/baremetal

Purpose: Physical machine + GNOME desktop

Specified with profile: "gnome/baremetal". Includes the GNOME desktop environment in addition to all baremetal packages.

Added Packages (genpack/gnome metapackage):

PackagePurpose
gnome-base/gnomeGNOME desktop environment suite
media-fonts/noto-cjkCJK fonts
media-fonts/noto-emojiEmoji fonts
x11-apps/mesa-progsOpenGL test tools
dev-util/vulkan-toolsVulkan test tools
net-libs/libnslNIS support library
app-misc/evtestInput event testing
net-misc/gnome-remote-desktopRemote desktop
app-i18n/mozcJapanese input (enabled by default)

Inherited From: Includes the gentoo:targets/desktop/gnome profile, so comprehensive USE flags required for GNOME are automatically configured.

weston/paravirt

Purpose: Virtual machine + Wayland (Weston) desktop

Specified with profile: "weston/paravirt". Provides a lightweight desktop environment based on the Weston compositor.

Added Packages (genpack/weston metapackage):

PackagePurpose
dev-libs/westonWayland compositor
app-misc/wayland-utilsWayland utilities
app-i18n/mozcJapanese input
app-i18n/fcitx-gtkInput method framework
gui-apps/wl-clipboardWayland clipboard
gui-apps/tuigreetLogin greeter (enabled by default)
media-fonts/noto-cjkCJK fonts
media-fonts/noto-emojiEmoji fonts
x11-apps/mesa-progsOpenGL test tools
dev-util/vulkan-toolsVulkan test tools

Global USE Flags:

USE="wayland -X"

Disables X11 and prioritizes Wayland.

Package-specific USE Flags (74 items, major ones):

sys-apps/systemd policykit
media-libs/mesa X vulkan vaapi
app-i18n/mozc fcitx5
dev-qt/qtbase opengl vulkan

USE flags are configured for numerous applications including Chrome, VS Code, Ghostty, GIMP, Evolution, LibreOffice, and VLC.

Virtual Machine Video Driver:

VIDEO_CARDS="-intel -nouveau -radeon -radeonsi virgl"

raspberrypi

Purpose: For Raspberry Pi (arm64 only)

Specified with profile: "raspberrypi" (exclusive to arm64 architecture). Inherits from baremetal and adds Raspberry Pi-specific kernel and firmware.

Added Packages:

PackagePurpose
sys-kernel/raspberrypi-imageRaspberry Pi kernel
sys-firmware/raspberrypi-wifi-ucodeWi-Fi firmware

Root Profile (genpack)

Common configuration inherited by all profiles.

Packages:

PackagePurpose
genpack/genpack-progsgenpack build utilities (always included)
genpack/baseBase system

Global USE Flags:

sys-libs/glibc audit
sys-kernel/installkernel dracut
sys-fs/squashfs-tools lz4 lzma lzo xattr zstd
app-crypt/libb2 -openmp
dev-lang/perl minimal
app-editors/vim minimal

Package Masks:

>=dev-lang/python-3.14

Base System (genpack/base)

Base packages included across all profiles.

Always Included Packages:

CategoryPackages
Kernelgentoo-kernel-bin or gentoo-kernel (with initramfs)
Initializationdracut-genpack, genpack-init, gentoo-systemd-integration
Basic toolstimezone-data, net-tools, gzip, unzip, grep, coreutils, procps, which
Networkrsync, iputils, iproute2
Runtimepython, requests, ca-certificates

Packages Controlled by USE Flags (all enabled by default):

USE FlagPackagePurpose
sshdnet-misc/opensshSSH server
viapp-editors/vimText editor
stracedev-debug/straceSystem call tracing
wireguardnet-vpn/wireguard-tools, net-vpn/wg-genconfVPN
btrfssys-fs/btrfs-progsBtrfs filesystem tools
xfssys-fs/xfsprogsXFS filesystem tools
cronsys-process/croniecron daemon
auditsys-process/auditAudit framework
logrotateapp-admin/logrotateLog rotation
tcpdumpnet-analyzer/tcpdumpPacket capture
banner(genpack banner display)Login banner

Other Metapackages

Metapackages that can be independently added to the packages section in genpack.json5, separate from profiles.

genpack/wireless

Wireless network support:

PackagePurpose
net-wireless/wpa_supplicant_any80211WPA supplicant
net-wireless/iwWireless LAN configuration
net-wireless/wireless-toolsWireless tools
net-wireless/bluezBluetooth stack
net-wireless/hostapdAccess point

genpack/devel

Development tools:

PackagePurpose
sys-devel/binutilsBinary utilities
sys-devel/gccC/C++ compiler
dev-debug/gdbDebugger

genpack/devlauncher

Development environment for AI agents (includes genpack/devel):

PackagePurpose
www-client/google-chromeWeb browser
gui-apps/waypipeWayland remote display
dev-util/claude-codeAI coding assistant
app-editors/vscodeCode editor
x11-terms/ghosttyTerminal emulator
app-containers/dockerContainer runtime
Otherjq, fd, bat, pip, pytest, pylint, etc.

Profile Selection Guide

Use CaseProfileNotes
QEMU/KVM virtual machinesparavirtMost common
Physical machines (servers)baremetalIncludes hardware detection tools
Physical machines + GNOME desktopgnome/baremetalFull desktop
Virtual machines + GUIweston/paravirtLightweight Wayland desktop
Raspberry Piraspberrypiarm64 only
No profile(none)genpack/base only. Minimal setup for custom builds from scratch

Architecture-Specific Differences

ArchitectureSupported ProfilesNotes
x86_64 (amd64)All profilesWith GRUB EFI-32 support
aarch64 (arm64)paravirt, baremetal, raspberrypiDedicated Raspberry Pi profile available
i686 (x86)base, systemimgNo desktop profiles
riscv64base equivalentLimited support

Source References

This document was written based on the following repository snapshots:

Update History