1DH_MAKE(1) General Commands Manual DH_MAKE(1)
2
3
4
6 dh_make - prepare upstream source for Debian packaging
7
9 dh_make [option]...
10
12 dh_make is a tool that adds necessary files for making Debian source
13 package from upstream source according to the requirements of the
14 Debian Policy. dh_make must be invoked within a directory containing
15 the source code, which must be named <packagename>-<version>. The
16 <packagename> must be all lowercase, The <packagename> and <version>
17 must be all lowercase, digits and dashes. The <version> can also con‐
18 tain digits, and the symbols plus, dot, tilde. The <version> must start
19 with a digit. If the directory name does not conform to this scheme,
20 you must rename it before using dh_make. Alternatively, you may be
21 able to use the --packagename option to force the package name.
22
23 PACKAGE CLASSES
24 Classes can be set with the single direct options (such as --s for sin‐
25 gle) or with the -C,--packageclass option (-C=s for single).
26
27 Single binary (s)
28 The package will generate a single binary .deb package. It is
29 the standard case, so if you don't know what to do, choose this.
30
31 Arch-Independent (i)
32 The package will generate a single package that is arch-indepen‐
33 dent.
34
35 Library (l)
36 The package will generate at least two binaries. One library
37 package containing just the lib in /usr/lib and another
38 *-dev_*.deb package containing documentation and C headers.
39
40
41 ACTIONS PERFORMED
42 Unless --native was given, dh_make makes sure a original source
43 archive (<packagename>_<version>.orig.tar.gz) exists. The ar‐
44 chive can either end with .gz or one of the other supported com‐
45 pression extensions such as bz2 or lzma. If no such file
46 exists, the file specified with -f is copied in place. If no -f
47 is supplied either but --createorig is, the current directory is
48 created into a new archive ../<packagename>-<ver‐
49 sion>.orig.tar.gz The original archive is needed for other
50 Debian tools to generate the diffs to the original sources
51 required by the Debian packaging format. Unless there are rea‐
52 sons against it, this file should be the pristine upstream ar‐
53 chive.
54
55 Then dh_make proceeds to generate a "debian" subdirectory and the nec‐
56 essary control files in the program source directory. Those control
57 files are customized with the packagename and version extracted from
58 the directory name.
59
60 dh_make makes several attempts to obtain the username. It first checks
61 for the environment variables $DEBFULLNAME, $LOGNAME is used to find a
62 name in the /etc/passwd file, and through NIS, YP and LDAP.
63
64 The e-mail address can either be specified with the -fB--email option
65 or dh_make will attempt to find it. It will first check the environment
66 variables $DEBEMAIL and then $EMAIL. If they are not set then dh_make
67 will search an available LDAP directory using ldapsearch(1) using $LOG‐
68 NAME as the uid to search under. Finally it will use $LOGNAME and
69 /etc/mailname to generate an email address.
70
71 dh_make will also generate example files that are also customized for
72 the package generated. You can remove all files with *.ex if you wish.
73 You can also delete the README.Debian file if you don't have anything
74 to put in it. Renaming the example files to their name without the .ex
75 at the end (and editing them if necessary) will activate that feature
76 of debhelper.
77
78 If the --templates or -o (--overlay) option is used dh_make will apply
79 a customizing template to the "debian" directory. See the templates
80 described in the FILES section of this manpage for samples.
81
83 -c, --copyright license
84 Use license type in copyright file. license can be apache,
85 artistic, bsd, gpl, gpl2, gpl3, isc, lgpl, lgpl2, lgl3, mit or
86 custom. If this field is not specified the copyright file has a
87 space to fill in which sort of license is used. The field is
88 case-insensitive so -c GPL works as well as -c gpl. gpl and lgpl
89 will give you version 3 of the corresponding license, apache
90 implies Apache v2.0. If you need a different version, change the
91 license file afterwards or use the gpl2 and lgpl2 options. If
92 you select custom here you will need to use the --copyrightfile
93 option as well.
94
95 --copyrightfile filename
96 When using the custom --copyright option this is the location of
97 your custom copyright file. dh_make will process this file just
98 like the standard copyright files. It is suggested you use one
99 of the existing license files as a starting point.
100
101 --docs Create a separate PACKAGE-doc binary package. All found docu‐
102 ments in the source package will be installed here.
103
104 -e, --email address
105 Use address as the e-mail address in the Maintainer: field of
106 debian/control file.
107
108 -n, --native
109 Create a native Debian packages, i.e. do not generate a .orig
110 archive, since it will be generated when building with dpkg-
111 buildpackage. The version number will not have a Debian revi‐
112 sion number (e.g. -1) appended to it.
113
114 -f, --file file
115 Use file as the original source archive, and skip the copying of
116 the current program tree to program.orig.
117
118 -l, --library
119 Automatically set the package class to Library, skipping the
120 question.
121
122 -s, --single
123 Automatically set the package class to Single binary, skipping
124 the question.
125
126 -i, --indep
127 Automatically set the package class to arch-independent binary,
128 skipping the question.
129
130 -a, --addmissing
131 Adds missing example and control files on an existing debian
132 source directory.
133
134 -t, --templates directory
135 Applies the customizing templates in directory to the debian
136 directory.
137
138 -o, --overlay directory
139 Applies a customization template to an existing debian direc‐
140 tory.
141
142 -p, --packagename name
143 Force the package name to be name, good for packages with
144 hyphens in their name or other strangeness. You can also make
145 the parameter name_version which will set both the package name
146 and version and bypass and directory checking.
147
148 -d, --defaultless
149 Skips applying the default templates to the target debian direc‐
150 tory. Generally used in conjunction with either the --overlay or
151 --templates options.
152
153 -h, --help
154 Display the name, version, available options and authors, and
155 exit successfully.
156
157 -v, --version
158 Show the program name and version, and exit successfully.
159
160 -y, --yes
161 Automatic yes to prompts and run non-interactively. The package
162 class needs to be set for dh_make to run fully automatically.
163
165 The following environment settings are used by dh_make:
166
167 DEBEMAIL
168 Email address to use in control and changelog entries.
169
170 DEBFULLNAME
171 You full name, eg "John Doe" which will appear in the control
172 and changelog entries.
173
174 EMAIL Email address to use in control and changelog entries, only used
175 if DEBEMAIL is no set.
176
177 LOGNAME
178 Default username used for looking up email and full name in
179 other directories.
180
182 /usr/share/debhelper/dh_make
183 Directory that contains all the template files, separated in six
184 directories:
185
186 debian/
187 with files for all package classes,
188
189 debians/
190 with files specific to the Single binary class,
191
192 debianl/
193 with files specific to the Library class, and finally,
194
195 native/
196 with files specific to the native Debian packages.
197
198 licenses/
199 template files for the more common licenses used in Debian pack‐
200 ages
201
203 To get dh_make to use the defaults and ask you various questions about
204 the package
205
206 dh_make
207
208
209 Create your single class package using the with the GPL license:
210
211 dh_make -s -c gpl
212
213
214 A more involved example where you set your name in the environment,
215 contact email and license in the options and specify the upstream file:
216
217 DEBFULLNAME="John Doe"
218 dh_make --email contact@example.com --copyright=bsd \
219 --file ../foo.tar.gz
220
221
223 dh_make may not detect your username and email address correctly when
224 using sudo.
225
227 dpkg(1),dpkg-buildpackage(1),dh(1),make-kpkg(1),debhelper(7)
228
229 You may also want to read the Debian Policy (in
230 /usr/share/doc/debian-policy ) and the New Maintainers' Guide (in
231 /usr/share/doc/maint-guide).
232
233
234
235Debian Project 2018-06-08 DH_MAKE(1)