BUILDD.CONF(5)

πŸŽ€ hey bestie, welcome to BUILDD.CONF(5) πŸŽ€

ok so this is the manual page for buildd.conf from Debian sbuild, and it's a long one, so we're doing it in parts β€” this is part 1 πŸ’– grab a snack, we're going in.


✨ NAME ✨

buildd.conf β€” the configuration file for buildd πŸ’…


🌸 DESCRIPTION 🌸

okay so buildd.conf is a Perl script that gets sourced by buildd so you can configure stuff. no cap. It's run in a sandbox and it's restricted to setting a small number of variables β€” all listed below β€” which you can set to tweak how buildd behaves 🫢

Each variable has an internal name, shown in ALL CAPS, and a perl variable showing the default setting. Now, important: the internal name is NOT accessible inside buildd.conf β€” only the variable itself may be assigned. That's the vibe, don't fight it πŸ™ˆ

Also heads up bestie, some of the defaults are set to be unique for each build, so some of the defaults shown here are literally unique to the user and system that was used to build sbuild β€” they will be different on your system. not a bug, just how it is ✨

While buildd lets you configure many aspects of its behaviour, it should not normally be required. The defaults should be adequate for most uses, and you should only change them if you're doing something more advanced or you have specialist requirements. periodt πŸŽ€


πŸ‘‘ CONFIGURATION πŸ‘‘

πŸ¦‹ Build environment πŸ¦‹

  • PATH β€” STRING type. PATH to set when running dpkg-buildpackage.

Related sbuild(1) command line options:

  • --use-snapshot

Default:

$path =
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games';

πŸ’œ Build options πŸ’œ

  • DISTRIBUTION β€” STRING type. Default distribution. By default, no distribution is defined, and the user must specify it with the -d option. However, a default may be configured here if desired. Users must take care not to upload to the wrong distribution when this option is set β€” for example, experimental packages will be built for upload to unstable when that is not what's required 😭 In unshare mode, this setting controls how the chroot tarball is created, since rules like $unshare_mmdebstrap_extra_args and $unshare_mmdebstrap_distro_mangle use the value of the distribution and not the chroot name.

Related sbuild(1) command line options:

  • -d
  • --dist

Default:

$distribution = undef;
  • HOST_ARCH β€” STRING type. Host architecture (Arch we are building for).

Related sbuild(1) command line options:

  • --arch
  • --host
host_arch = ...;
  • BUILD_ARCH β€” STRING type. Build architecture (Arch we are building on).

Related sbuild(1) command line options:

  • --arch
  • --build
build_arch = ...;
  • NICE_LEVEL β€” NUMERIC type. Nice level to run sbuild. Dedicated build daemons should not be niced.

Default:

$nice_level = 10;
  • DISTRIBUTIONS β€” ARRAY:HASH:SCALAR type. List of distributions that buildd should take packages from.

Example:

$distributions = [
     {
          # name of the suite to build (also used to query wanna-
build)
          dist_name => ["unstable", "testing"],

          # architecture to be built (will be passed to sbuild and can be
          # used to compute wanna_build_db_name)
          built_architecture => undef,

          # host on which wanna-build is run
          wanna_build_ssh_host => "buildd.debian.org",

          # user as who we are going to connect to the host running wanna-build
          wanna_build_ssh_user => "buildd_arch",

          # SSH control socket path for ssh -S option
          wanna_build_ssh_socket => "",

          # Additional SSH options used when connecting
          wanna_build_ssh_options => [],

          # database used for wanna-build
          wanna_build_db_name => "arch/build-db",

          # Username to use for wanna-build.
          wanna_build_db_user => $Buildd::username,

          # Local queue directory where binaries are stored before uploaded
          # by dupload. You need to configure this directory in
          # @upload_queues to get packages uploaded from there.
          dupload_local_queue_dir => "upload",

          # list of packages which shouldn't be picked up by buildd
          no_auto_build => [],

          # list of packages which should only be taken if there absolutely
          # nothing else to do (probably packages included in no_auto_build
          # because they take too long)
          weak_no_auto_build => [],

          # regex used to filter out unwanted packages:
          #no_build_regex => "^(contrib/|non-free/)?non-US/",

          # regex used to filter packages to build:
          #build_regex => "",

          # mail addr of buildd admin handling packages from this distribution
          logs_mailed_to => $admin_mail,

          # schroot name (or alias) of the chrooted environment to use for
          # building (will be passed to sbuild). sbuild's default is
          # the first of $distribution-$arch-sbuild, $distribution-sbuild,
          # $distribution-$arch and $distribution.
          sbuild_chroot => undef,

     }
];
distributions = ...;

πŸ’… Core options πŸ’…

  • BUILD_USER β€” STRING type. Username used for running dpkg-buildpackage. By default the user running sbuild and sbuild for the unshare mode is used within the chroot as well β€” but that might allow a process from within the chroot to break out of the chroot by attaching to a process running outside the chroot with eg. gdb, and then becoming root inside the chroot through schroot, and thus be able to leave the chroot. yeah. that's a whole thing 😭
build_user = ...;

⭐ Daemon ⭐

  • DAEMON_LOG_FILE β€” STRING type. Main buildd daemon log file.
daemon_log_file = ...;
  • DELAY_AFTER_GIVE_BACK β€” NUMERIC type. Time to avoid packages that have automatically been given back by sbuild (in minutes).

Default:

$delay_after_give_back = 480;
  • IDLE_SLEEP_TIME β€” NUMERIC type. Time to sleep when idle (in seconds) between wanna-build --list=needs-build calls).

Default:

$idle_sleep_time = 300;
  • MAX_SBUILD_FAILS β€” NUMERIC type. Maximum number of times sbuild can fail before sleeping.

Default:

$max_sbuild_fails = 2;
  • MIN_FREE_SPACE β€” NUMERIC type. Minimum free space (in KiB) on build filesystem.

Default:

$min_free_space = 51200;
  • NO_DETACH β€” BOOL type. Disable becoming a daemon, for debugging purposes. Set to 1 to stop daemonising, otherwise set to 0 to become a daemon.

Default:

$no_detach = 0;
  • PIDFILE β€” STRING type. PID file to identify running daemon.
pidfile = ...;
  • SHOULD_BUILD_MSGS β€” BOOL type. Should buildd send "Should I build" messages?

Default:

$should_build_msgs = 1;

πŸ“ Logging options πŸ“

  • VERBOSE β€” NUMERIC type. Verbose logging level.

Default:

$verbose = 0;
  • DEBUG β€” NUMERIC type. Debug logging level.

Default:

$debug = 0;

πŸ’Œ Mail πŸ’Œ

  • ADMIN_MAIL β€” STRING type. email address for admin.

Default:

$admin_mail = 'root';
  • ERROR_MAIL_WINDOW β€” NUMERIC type. If more than five error mails are received within the specified time (in seconds), do not forward (to avoid possible mail loops).

Default:

$error_mail_window = 28800;
  • LOG_QUEUED_MESSAGES β€” BOOL type. Log success messages from upload queue daemon?

Default:

$log_queued_messages = 0;

🧚 Programs 🧚

  • MAILPROG β€” STRING type. Program to use to send mail.

Default:

$mailprog = '/usr/sbin/sendmail';
  • APT_GET β€” STRING type. Path to apt-get binary.

Default:

$apt_get = 'apt-get';
  • DPKG_FILE_SUFFIX β€” STRING type. Value for the sbuild dpkg-file-suffix option, to be passed on to sbuild.

Default:

$dpkg_file_suffix = '';
  • SUDO β€” STRING type. Path to sudo binary.

Default:

$sudo = 'sudo';
  • SSH β€” STRING type. Path to ssh binary.

Default:

$ssh = 'ssh';

🌈 Uploader 🌈

  • UPLOAD_QUEUES β€” ARRAY:HASH:SCALAR type. Package upload queues.

Example:

$upload_queues = [
     {
          # Local queue directory where binaries are stored before uploaded
          # by dupload.
          dupload_local_queue_dir => "upload",

          # Upload site for buildd-upload to pass to dupload(1); see
          # /etc/dupload.conf for possible values.
          dupload_archive_name => "debian-ftp",
     },

     {
          # Local queue directory where binaries are stored before uploaded
          # by dupload.
          dupload_local_queue_dir => "upload-security",

          # Upload site for buildd-upload to pass to dupload(1); see
          # /etc/dupload.conf for possible values.
          dupload_archive_name => "debian-ssh-security",
     }
];
upload_queues = ...;

πŸ¦‹ Watcher πŸ¦‹

  • BUILD_LOG_KEEP β€” NUMERIC type. Number of days until build logs are archived.

Default:

$build_log_keep = 2;
  • DAEMON_LOG_KEEP β€” NUMERIC type. Number of days until old daemon logs are archived in a .tar.gz file.

Default:

$daemon_log_keep = 7;
  • DAEMON_LOG_ROTATE β€” NUMERIC type. Number how many days until daemon logs are rotated (one is kept as daemon.log.old, others are moved to old-logs and gzipped).

Default:

$daemon_log_rotate = 1;
  • DAEMON_LOG_SEND β€” BOOL type. email rotated daemon logs to the admin?

Default:

$daemon_log_send = 1;
  • NO_WARN_PATTERN β€” STRING type. Don't complain about old files if they match the regexp.

Default:

$no_warn_pattern = '^build/(SKIP|REDO|SBUILD-GIVEN-
BACK|buildd\.pid|[^/]*.ssh|chroot-[^/]*|current-[^/]*)$';
  • PKG_LOG_KEEP β€” NUMERIC type. Number of days until to package logs are archived

STATISTICS_MAIL πŸ’–

okay bestie, this one's a STRING. It's the email address where your statistics summaries get sent 🫢

Default, no cap:

$statistics_mail = 'root';

STATISTICS_PERIOD 🌸

NUMERIC type. It's how long a period the statistic summaries cover, and yes the unit is days ✨

Default:

$statistics_period = 7;

WARNING_AGE πŸ‘‘

NUMERIC type. The age (in days πŸ—“οΈ) after which a warning gets issued for files in upload and dirs in build. So like, if stuff's just sitting there rotting past this many days, the config lowkey starts side-eyeing it 😭

Default:

$warning_age = 7;

wanna-build client 🧚

this whole lil squad is about how the buildd talks to wanna-build, iykyk πŸ’…

WANNA_BUILD_SSH_USER πŸ¦‹

STRING type. Username for the SSH connection.

Default:

$wanna_build_ssh_user = '';

WANNA_BUILD_SSH_HOST ✨

STRING type. Host for the SSH connection.

Default:

$wanna_build_ssh_host = '';

WANNA_BUILD_SSH_SOCKET πŸŽ€

STRING type. Socket for the SSH connection.

Default:

$wanna_build_ssh_socket = '';

WANNA_BUILD_SSH_OPTIONS πŸ’…

ARRAY:STRING type. SSH options.

⚠️ babe, heads up: this one is an array reference. Not a plain string, fr fr.

Default:

$wanna_build_ssh_options = [];

WANNA_BUILD_DB_NAME πŸ“

STRING type. Database name.

Default:

$wanna_build_db_name = undef;

WANNA_BUILD_DB_USER πŸ’œ

STRING type. Database user.

wanna_build_db_user = ...;

BUILT_ARCHITECTURE 🌈

STRING type. Architecture for the database.

wanna_build_built_architecture = ...;

πŸ—‚οΈ FILES πŸ—‚οΈ

  • /etc/buildd/buildd.conf β€” the config file, maintained by the system administrator πŸ‘©β€πŸ’». You can use this one to override the defaults, periodt.
  • ~/.builddrc β€” user-specific configuration πŸ’–.

πŸ‘‘ AUTHORS πŸ‘‘

Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>. πŸ’«

sbuild is based on debbuild, written by James Troup <james@nocrew.org> and has been modified by Ben Collins <bcollins@debian.org>, Ryan Murray <rmurray@debian.org>, Francesco Paolo Lovergine <frankie@debian.org>, Michael Banck <mbanck@debian.org>, and Roger Leigh <rleigh@debian.org>


Copyright Β© 1998-2000 Roman Hodek <roman@hodek.net>

Copyright Β© 1998-1999 James Troup <troup@debian.org>

Copyright Β© 2003-2006 Ryan Murray <rmurray@debian.org>

Copyright Β© 2001-2003 Rick Younie <younie@debian.org>

Copyright Β© 2003-2004 Francesco Paolo Lovergine <frankie@debian.org>

Copyright Β© 2005 Michael Banck <mbanck@debian.org>

Copyright Β© 2005-2009 Roger Leigh <rleigh@debian.org>


πŸ” SEE ALSO πŸ”

buildd(1), sbuild(1),


and that's the whole page bestie, you ate that πŸ’…βœ¨ this lil masterpiece is Version 0.91.10ubuntu1, dated 29 June 2026, and it lives under BUILDD.CONF(5) β€” go forth and configure, icon 🫢🌸

πŸ“¦ where this page comes from