deb-mock/docs/configuration.md
2025-08-03 22:16:04 +00:00

5 KiB

Deb-Mock Configuration

Deb-Mock uses YAML configuration files to define build environments and behavior. This document describes all available configuration options.

Configuration File Format

Deb-Mock configuration files use YAML format. Here's a complete example:

# Basic configuration
chroot_name: bookworm-amd64
architecture: amd64
suite: bookworm
output_dir: ./output
keep_chroot: false
verbose: false
debug: false

# Chroot configuration
chroot_dir: /var/lib/deb-mock/chroots
chroot_config_dir: /etc/schroot/chroot.d

# sbuild configuration
sbuild_config: /etc/sbuild/sbuild.conf
sbuild_log_dir: /var/log/sbuild

# Build configuration
build_deps: []
build_env:
  DEB_BUILD_OPTIONS: parallel=4
  DEB_BUILD_PROFILES: nocheck
build_options:
  - --verbose
  - --debug

# Metadata configuration
metadata_dir: ./metadata
capture_logs: true
capture_changes: true

Configuration Options

Basic Configuration

Option Type Default Description
chroot_name string bookworm-amd64 Name of the chroot environment to use
architecture string amd64 Target architecture for builds
suite string bookworm Debian suite (bookworm, sid, bullseye, buster)
output_dir string ./output Directory for build artifacts
keep_chroot boolean false Whether to keep chroot after build
verbose boolean false Enable verbose output
debug boolean false Enable debug output

Chroot Configuration

Option Type Default Description
chroot_dir string /var/lib/deb-mock/chroots Directory for chroot environments
chroot_config_dir string /etc/schroot/chroot.d Directory for schroot configuration files

sbuild Configuration

Option Type Default Description
sbuild_config string /etc/sbuild/sbuild.conf Path to sbuild configuration file
sbuild_log_dir string /var/log/sbuild Directory for sbuild logs

Build Configuration

Option Type Default Description
build_deps list [] Additional build dependencies to install
build_env dict {} Environment variables for builds
build_options list [] Additional sbuild options

Metadata Configuration

Option Type Default Description
metadata_dir string ./metadata Directory for build metadata
capture_logs boolean true Whether to capture build logs
capture_changes boolean true Whether to capture .changes files

Supported Architectures

  • amd64 - 64-bit x86
  • i386 - 32-bit x86
  • arm64 - 64-bit ARM
  • armhf - 32-bit ARM (hard float)
  • ppc64el - 64-bit PowerPC (little endian)
  • s390x - 64-bit IBM S390

Supported Suites

  • bookworm - Debian 12 (stable)
  • sid - Debian unstable
  • bullseye - Debian 11 (oldstable)
  • buster - Debian 10 (oldoldstable)

Environment Variables

Common environment variables you can set in build_env:

build_env:
  DEB_BUILD_OPTIONS: parallel=4,nocheck
  DEB_BUILD_PROFILES: nocheck
  DEB_CFLAGS_SET: -O2
  DEB_CXXFLAGS_SET: -O2
  DEB_LDFLAGS_SET: -Wl,-z,defs

Build Options

Common sbuild options you can add to build_options:

build_options:
  - --verbose
  - --debug
  - --no-clean-source
  - --no-run-lintian
  - --no-run-autopkgtest

Configuration File Locations

Deb-Mock looks for configuration files in the following order:

  1. Command line specified file (--config option)
  2. ./deb-mock.conf
  3. ~/.config/deb-mock/config.yaml
  4. /etc/deb-mock/config.yaml
  5. Default configuration

Example Configurations

Minimal Configuration

chroot_name: bookworm-amd64
architecture: amd64
suite: bookworm

Development Configuration

chroot_name: sid-amd64
architecture: amd64
suite: sid
output_dir: ./build-output
keep_chroot: true
verbose: true
debug: true
build_env:
  DEB_BUILD_OPTIONS: parallel=8,nocheck
  DEB_BUILD_PROFILES: nocheck
build_options:
  - --verbose
  - --no-run-lintian

Production Configuration

chroot_name: bookworm-amd64
architecture: amd64
suite: bookworm
output_dir: /var/lib/deb-mock/output
keep_chroot: false
verbose: false
debug: false
build_env:
  DEB_BUILD_OPTIONS: parallel=4
build_options:
  - --run-lintian
  - --run-autopkgtest
metadata_dir: /var/lib/deb-mock/metadata

Validation

Deb-Mock validates configuration files and will report errors for:

  • Invalid architectures
  • Invalid suites
  • Missing required directories
  • Invalid file paths

Command Line Overrides

Most configuration options can be overridden on the command line:

# Override chroot
deb-mock build --chroot=sid-amd64 package.dsc

# Override architecture
deb-mock build --arch=arm64 package.dsc

# Override output directory
deb-mock build --output-dir=/tmp/build package.dsc

# Keep chroot for debugging
deb-mock build --keep-chroot package.dsc