1 dpkg - Debian's package maintenance system
3 This is the dpkg suite of programs that form the foundation of the Debian's
4 package management system; on the lower layer there are ‘dpkg-deb’ and
5 ‘dpkg-split’ programs handling the binary formats, and ‘dpkg-source’ program
6 handling the source formats; there is a collection of tools to handle building
7 source packages into binary packages; there is the medium-level and less
8 user-friendly command-line interface (CLI) in the form of the ‘dpkg’ command;
9 and then there is the terminal user interface (TUI) ‘dselect’ program (which
10 has gone out of preference in favor of the apt (CLI) and aptitude (TUI)
13 The dpkg suite also includes some other programs currently maintained
14 on external repositories, namely ‘dpkg-repack’, ‘dpkg-www’, ‘dupload’
21 The current legacy, stable and development releases can be found at:
23 <http://ftp.debian.org/debian/pool/main/d/dpkg/>
25 For older releases check:
27 <http://snapshot.debian.org/package/dpkg/>
33 The subscription interface and web archives can be found at:
35 <https://lists.debian.org/debian-dpkg/>
37 The mailing list address is (no subscription required to post):
39 debian-dpkg@lists.debian.org
45 <https://git.dpkg.org/cgit/dpkg/dpkg.git>
48 Building from git source
49 ------------------------
51 To prepare the dpkg source tree from git before starting the build process
52 some required software needs to be installed:
57 GNU autopoint >= 0.19.7 (from GNU gettext)
58 GNU gettext >= 0.19.7 (only with --enable-nls)
60 After installing the needed software, and running the following command on
65 the source should be roughly equivalent to the distributed tar source.
67 To enable translated documentation this software will be needed:
72 Building from tar source
73 ------------------------
75 The minimum software required to configure and build dpkg from a tarball is:
77 C89 compiler with few C99 extensions (see doc/coding-style.txt)
78 perl (see doc/coding-style.txt)
82 To enable optional functionality or programs, this software might be needed:
84 libmd (used by libdpkg, currently falling back to embedded code)
85 libz (from zlib, used instead of gzip command-line tool)
86 liblzma (from xz utils, used instead of xz command-line tool)
87 libbz2 (from bzip2, used instead of bzip2 command-line tool)
89 curses compatible library (needed on --enable-dselect)
91 To run the test suite («make check»):
93 Test::MinimumVersion perl module (optional, author)
94 Test::Pod perl module (optional)
95 Test::Pod::Coverage perl module (optional, author)
96 Test::Spelling perl module (optional, author)
97 Test::Strict perl module (optional)
98 Test::Synopsis perl module (optional, author)
99 Test::Perl::Critic perl module (optional, author)
100 aspell (optional, author)
101 aspell-en (optional, author)
102 codespell (optional, author)
103 cppcheck (optional, author)
106 i18nspector (optional, author)
107 shellcheck (optional, author)
109 Define the environment variable DPKG_DEVEL_MODE or AUTHOR_TESTING to run
110 the test suite in development mode, to include tests that might not be
111 pertinent during normal release builds.
113 To enable additional developer's documentation («make doc») this software
120 To enable code coverage («./configure --enable-coverage; make coverage»)
121 this software is needed:
123 lcov (from the Linux Test Project)
124 Devel-Cover perl module
126 The build process is done by running the usual «./configure; make». To
127 see all available configuration options please run «./configure --help».
128 The following configure options might be of interest to disable specific
132 --disable-start-stop-daemon
133 --disable-update-alternatives
135 And the following to disable modifications to the build flags:
137 --disable-compiler-warnings
138 --disable-compiler-optimizations
139 --disable-linker-optimizations