PackagingTools - Debian Wiki

Tools to help with the packaging process. For more information about packaging, see Packaging. For tools to create basic Debian packages, see AutomaticPackagingTools.

Contents

  1. Package maintenance tools
    1. Automatic packaging tools
    2. Automatic debian/copyright tools
    3. Package-checking tools
  2. Package build tools
  3. Debian repository build tools
  4. Tools to create a build system
    1. Wrappers
  5. See also

Package maintenance tools

Tools to manage the overall process of packaging software.

Tools to create basic working Debian packages.

See AutomaticPackagingTools.

Tools to maintain copyright information in debian/copyright.

See CopyrightReviewTools.

Tools to ensure your package conforms to various requirements and guidelines.

  • adequate

    • checks installed packages for bugs and policy violations
    • may be useful as an autopkgtest

    • Features

      • Language: Perl

  • blhc

    • find missing hardening tags in complex build systems

    • Features

      • Language: Perl

  • autopkgtest

    • tests binary packages as specified by their source packages
    • Features

      • Language: Python

  • lintian

    • reports bugs and policy violations
    • Features

      • Language: Perl

  • piuparts

    • checks packages handle installation, upgrading, and removal correctly
    • Features

      • Language: Python

  • ratt

    • rebuilds reverse-build-dependencies of a .changes file

      • e.g. check whether your new library version breaks any existing packages
    • Features

      • Language: C


Tools to build .deb packages from Debian-formatted sources.

  • sbuild

    • used by official buildds

    • chroot/unshare/schroot for isolation
    • calls autopkgtest, which uses schroot/lxc/chroot/qemu/ssh for isolation
    • Features

      • Language: Perl

  • pbuilder

    • chroot for isolation
    • Features

      • Language: Bash

  • cowbuilder

    • chroot for isolation
    • cowdancer via LD_PRELOAD for copy-on-write

    • Features

      • Language: C

  • qemubuilder

    • qemu for isolation
    • Features

      • Language: C

  • debspawn

    • systemd-nspawn for isolation
    • Features

      • Language: Python

  • conbuilder

    • systemd-nspawn for isolation
    • Features

      • Language: Python

  • whalebuilder (package)

    • docker for isolation
    • Features

      • Language: Ruby

  • whalebuilder (script)

    • docker for isolation
    • not related to whalebuilder

    • Features

      • Language: Shell

  • docker-buildpackage

    • docker for isolation
    • Features

      • Language: Bash

  • debocker

    • docker for isolation
    • Features

      • Language: Python

  • debdocker

    • docker for isolation
    • Features

      • Language: Bash

  • deb-build-pkg

    • docker for isolation
    • Features

      • Language: Bash

  • DUE

    • docker for isolation
    • Features

      • Language: Bash

  • rocm-builder

    • docker for isolation
    • Features

      • Language: Bash

  • docker-deb-builder

    • docker for isolation
    • Features

      • Language: Shell

  • debpic

    • docker for isolation
    • integrates with Jenkins & VSCode

    • Features

      • Language: Python

  • Debcraft

    • podman and docker for isolation
    • all steps automated, easiest to use
    • Features

      • Language: shell

  • bampkgbuild

    • docker for isolation
    • Features

      • Language: Python


Tools to maintain APT-compatible repositories of packages.

See DebianRepository/Setup


Tools to create minimal Debian systems for building packages.

  • debootstrap

    • works on systems without apt, used in d-i
    • Features

      • Language: shell, Perl

      • Formats: directory

  • cdebootstrap

    • Features

      • Formats: directory

  • mmdebstrap

    • no superuser privileges required
    • multiple mirrors possible
    • stable includes security mirrors by default
    • twice as fast as debootstrap
    • chroots with only Essential:yes or without apt possible

    • bit-by-bit reproducible with SOURCE_DATE_EPOCH set

    • foreign architecture chroots supported
    • Features

      • Language: Perl, Python

      • Formats: directory, tarball, ext2, squashfs, null

  • sbuild-createchroot

    • deprecated - use mmdebstrap instead

  • zdebootstrap

    • research project for fast install bootstrap through parallelism
    • Features

      • Language: C++

      • Formats: directory

  • crosshurd

    • Features

      • Formats: directory

  • rinse

    • only for rpm packages
    • build rpm distro chroot on Debian
    • Features

      • Language: Perl

      • Formats: directory

  • fai-server

    • fai dirinstall creates a chroot

    • Features

      • Language: shell, Perl

      • Formats: directory

Wrappers

Specialisations of the above tools.

  • vmdb2

    • vmdebootstrap successor
    • Features

      • Language: python, configuration specified in yaml

      • Read-only/Writable: read/write

      • Formats: raw

  • qemu-debootstrap

    • little shell wrapper around debootstrap
    • supports multiple architectures via qemu-user
    • Features

      • Language: shell

      • Formats: directory

  • DQIB

    • wrapper around mmdebstrap
    • Features

      • Language: shell

      • Formats: ZIP file containing rootfs, kernel, initrd

  • bdebstrap

    • wrapper around mmdebstrap for YAML configuration
    • Features

      • Language: Python

  • deb-bpo-builder

    • wrapper around mmdebstrap
    • targeted at building Debian testing → stable backports
    • Features

      • Language: shell

  • debuerreotype

    • wrapper around debootstrap
    • reproducible rootfs builds (especially for application containers)
    • Features

      • Language: Bash

  • grml-debootstrap

    • wrapper around mmdebstrap
    • Features

      • Language: Bash


See also


CategorySoftware CategoryPackaging