dpkg - Debian's package maintenance system

The primary interface for the dpkg suite is the ‘dselect’ program;
a more low-level and less user-friendly interface is available in
the form of the ‘dpkg’ command.


Releases
--------

The current legacy, stable and development releases can be found at:

  <http://ftp.debian.org/debian/pool/main/d/dpkg/>

For older releases check:

  <http://snapshot.debian.org/package/dpkg/>


Mailing List
------------

The subscription interface and web archives can be found at:

  <http://lists.debian.org/debian-dpkg/>

The mailing list address is (no subscription required to post):

  debian-dpkg@lists.debian.org


Source Repository
-----------------

  <http://anonscm.debian.org/gitweb/?p=dpkg/dpkg.git>
  <git://anonscm.debian.org/dpkg/dpkg.git>


Building from git source
------------------------

To prepare the dpkg source tree from git before starting the build process
some required software needs to be installed:

  GNU autoconf >= 2.60
  GNU automake >= 1.11
  GNU gettext >= 0.18.2 (or just autopoint if using --disable-nls)
  flex

After installing the needed software, and running the following command on
the git tree:

  $ autoreconf -f -i

the source should be roughly equivalent to the distributed tar source.


Building from tar source
------------------------

The minimum software required to configure and build dpkg from a tarball is:

  C89 compiler with few C99 extensions (see doc/coding-style.txt)
  GNU make
  pkg-config
  perl

To enable optional functionality or programs, this software might be needed:

  zlib (used instead of gzip command-line tool)
  xz's liblzma (used instead of xz command-line tool)
  libbzip2 (used instead of bzip2 command-line tool)
  libselinux
  curses compatible library (needed on --enable-dselect)

To run the test suite («make check»):

  TimeDate perl module
  IO-String perl module
  Test::Pod perl module (optional)
  Test::Perl::Critic perl module (optional)
  Perl::Critic::Utils perl module (optional)

  Define the environment variable DPKG_DEVEL_MODE to run the test suite
  in development mode, to include tests that might not be pertinent during
  normal release builds.

To enable additional developer's documentation («make doc») this software
will be needed:

  pod2man
  doxygen
  dot

To enable translated documentation this software will be needed:

  po4a >= 0.36.4 (>= 0.41 for VPATH builds)

To enable code coverage («./configure --enable-coverage; make coverage»)
this software is needed:

  lcov (from the Linux Test Project)
  Devel-Cover perl module

The build process is done by running the usual «./configure; make». To
see all available configuration options please run «./configure --help».
The following configure options might be of interest to disable specific
programs:

  --disable-dselect
  --disable-start-stop-daemon
  --disable-update-alternatives

And the following to disable modifications to the build flags:

  --disable-compiler-warnings
  --disable-compiler-optimisations
  --disable-linker-optimisations
