test: Unset DEB_BUILD_MAINT_OPTIONS in build flags tests
[dpkg.git] / README
bloba07c60ce82bfc1a878a907d731777848e65168aa
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)
11 programs).
13 The dpkg suite also includes some other programs currently maintained
14 on external repositories, namely ‘dpkg-repack’, ‘dpkg-www’, ‘dupload’
15 and ‘debsig-verify’.
18 Releases
19 --------
21 The current legacy, stable and development releases can be found at:
23   <https://deb.debian.org/debian/pool/main/d/dpkg/>
25 For older releases check:
27   <https://snapshot.debian.org/package/dpkg/>
30 Mailing List
31 ------------
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
42 Source Repository
43 -----------------
45 The primary repository can be browsed and cloned from:
47   <https://git.dpkg.org/git/dpkg/dpkg.git>
50 Building from git source
51 ------------------------
53 To prepare the dpkg source tree from git before starting the build process
54 some required software needs to be installed:
56   GNU autoconf >= 2.60
57   GNU automake >= 1.11
58   GNU libtool >= 2.0
59   GNU autopoint >= 0.19.7 (from GNU gettext)
60   GNU gettext >= 0.19.7 (only with --enable-nls)
62 After installing the needed software, and running the following command on
63 the git tree:
65   $ ./autogen
67 the source should be roughly equivalent to the distributed tar source.
69 To enable translated documentation this software will be needed:
71   po4a >= 0.59
74 Building from tar source
75 ------------------------
77 The minimum software required to configure and build dpkg from a tarball is:
79   C99 compiler (see doc/coding-style.txt)
80   perl (see doc/coding-style.txt)
81   pkgconf
82   GNU make
84 To enable optional functionality or programs, this software might be needed:
86   libmd (used by libdpkg, required if libc is missing digest functions)
87   libz (from zlib, used instead of gzip command-line tool)
88   liblzma (from xz utils, used instead of xz command-line tool)
89   libzstd (from libzstd, used instead of zstd command-line tool)
90   libbz2 (from bzip2, used instead of bzip2 command-line tool)
91   libselinux
92   curses compatible library (needed on --enable-dselect)
94 To run the test suite («make check» or «make authorcheck» for author tests,
95 those that might not be pertinent during release builds) the following
96 software might be needed:
98   Test::MinimumVersion perl module (optional, author)
99   Test::Pod perl module (optional)
100   Test::Pod::Coverage perl module (optional, author)
101   Test::Spelling perl module (optional, author)
102   Test::Strict perl module (optional)
103   Test::Synopsis perl module (optional, author)
104   Test::Perl::Critic perl module (optional, author)
105   aspell (optional, author)
106   aspell-en (optional, author)
107   codespell (optional, author)
108   cppcheck (optional, author)
109   fakeroot (optional)
110   sop [sqop (from Sequoia-PGP), pgpainless-cli] (optional)
111   sq (from Sequoia-PGP, optional)
112   gpg-sq (from Sequoia-PGP, optional), gpg (optional)
113   i18nspector (optional, author)
114   shellcheck (optional, author)
116 To enable additional developer's documentation («make doc») this software
117 will be needed:
119   pod2man
120   doxygen
121   dot
123 To enable code coverage («./configure --enable-coverage; make coverage»)
124 this software is needed:
126   lcov (from the Linux Test Project)
127   Devel-Cover perl module
129 The build process is done by running the usual «./configure; make». To
130 see all available configuration options please run «./configure --help».
131 The following configure options might be of interest to disable specific
132 programs:
134   --disable-dselect
135   --disable-start-stop-daemon
136   --disable-update-alternatives
138 And the following to disable modifications to the build flags:
140   --disable-compiler-warnings
141   --disable-compiler-optimizations
142   --disable-linker-optimizations