DH_MAKE(1)                  General Commands Manual                 DH_MAKE(1)

       dh_make - prepare Debian packaging for an original source archive

       dh_make [option]...

       dh_make  is  a  tool  to convert a regular source code package into one
       formatted according to the requirements of the Debian Policy.   dh_make
       must  be  invoked  within a directory containing the source code, which
       must be named <packagename>-<version>.  The <packagename> must  be  all
       lowercase,  The <packagename> and <version> must be all lowercase, dig-
       its and dashes. The <version> can also contain digits, and the  symbols
       plus, dot, tilde. The <version> must start with a digit.  If the direc-
       tory name does not conform to this scheme, you must  rename  it  before
       using dh_make.  Alternatively, you may be able to use the --packagename
       option to force the package name.

       Classes can be set with the single direct options (such as --s for sin-
       gle) or with the -C,--packageclass option (-C=s for single).

       Single binary (s)
              The  package  will  generate a single binary .deb package. It is
              the standard case, so if you don't know what to do, choose this.

       Arch-Independent (i)
              The package will generate a single package that is arch-indepen-

       Library (l)
              The  package  will  generate  at least two binaries. One library
              package  containing  just  the  lib  in  /usr/lib  and   another
              *-dev_*.deb package containing documentation and C headers.

              Unless  --native was given, dh_make makes sure a original source
              archive (<packagename>_<version>.orig.tar.gz)  exists.  The  ar-
              chive can either end with .gz or one of the other supported com-
              pression extensions such as  bz2  or  lzma.   If  no  such  file
              exists, the file specified with -f is copied in place.  If no -f
              is supplied either but --createorig is, the current directory is
              created    into    a    news    archive   ../<packagename>-<ver-
              sion>.orig.tar.gz The  original  archive  is  needed  for  other
              Debian  tools  to  generate  the  diffs  to the original sources
              required by the Debian packaging format.  Unless there are  rea-
              sons  against  it, this file should be the pristine upstream ar-

       Then dh_make proceeds to generate a "debian" subdirectory and the  nec-
       essary  control  files  in  the program source directory. Those control
       files are customized with the packagename and  version  extracted  from
       the directory name.

       dh_make  makes several attempts to obtain the username. It first checks
       for the environment variables $DEBFULLNAME, $LOGNAME is used to find  a
       name in the /etc/passwd file, and through NIS, YP and LDAP.

       The  e-mail  address can either be specified with the -fB--email option
       or dh_make will attempt to find it. It will first check the environment
       variables  $DEBEMAIL  and then $EMAIL. If they are not set then dh_make
       will search an available LDAP directory using ldapsearch(1) using $LOG-
       NAME  as  the  uid  to  search under.  Finally it will use $LOGNAME and
       /etc/mailname to generate an email address.

       dh_make will also generate example files that are also  customized  for
       the  package generated. You can remove all files with *.ex if you wish.
       You can also delete the README.Debian file if you don't  have  anything
       to put in it.  Renaming the example files to their name without the .ex
       at the end (and editing them if necessary) will activate  that  feature
       of debhelper.

       If  the --templates or -o (--overlay) option is used dh_make will apply
       a customizing template to the "debian"  directory.  See  the  templates
       described in the FILES section of this manpage for samples.

       -c, --copyright license
              Use  license  type in copyright file.  license can be gpl, gpl2,
              gpl3, lgpl, lgpl2 lgpl3, artistic, apache, bsd, mit  or  custom.
              If this field is not specified the copyright file has a space to
              fill in which sort of license is used. The field is  case-insen-
              sitive so -c GPL works as well as -c gpl. gpl and lgpl will give
              you version 3  of  the  corresponding  license,  apache  implies
              Apache v2.0. If you need a different version, change the license
              file afterwards or use the  gpl2  and  lgpl2  options.   If  you
              select  custom  here  you  will  need to use the --copyrightfile
              option as well.

       --copyrightfile filename
              When using the custom --copyright option this is the location of
              your  custom copyright file. dh_make will process this file just
              like the standard copyright files. It is suggested you  use  one
              of the existing license files as a starting point.

       --docs Create  a  separate  PACKAGE-doc binary package. All found docu-
              ments in the source package will be installed here.

       -e, --email address
              Use address as the e-mail address in the  Maintainer:  field  of
              debian/control file.

       -n, --native
              Create  a  native  Debian packages, i.e. do not generate a .orig
              archive, since it will be generated  when  building  with  dpkg-
              buildpackage.   The  version number will not have a Debian revi-
              sion number (e.g. -1) appended to it.

       -f, --file file
              Use file as the original source archive, and skip the copying of
              the current program tree to program.orig.

       -l, --library
              Automatically  set  the  package  class to Library, skipping the

       -s, --single
              Automatically set the package class to Single  binary,  skipping
              the question.

       -i, --indep
              Automatically  set the package class to arch-independent binary,
              skipping the question.

       -a, --addmissing
              Adds missing example and control files  on  an  existing  debian
              source directory.

       -t, --templates directory
              Applies  the  customizing  templates  in directory to the debian

       -o, --overlay directory
              Applies a customization template to an  existing  debian  direc-

       -p, --packagename name
              Force  the  package  name  to  be  name,  good for packages with
              hyphens in their name or other strangeness. You  can  also  make
              the  parameter name_version which will set both the package name
              and version and bypass and directory checking.

       -d, --defaultless
              Skips applying the default templates to the target debian direc-
              tory. Generally used in conjunction with either the --overlay or
              --templates options.

       -h, --help
              Display the name, version, available options  and  authors,  and
              exit successfully.

       -v, --version
              Show the program name and version, and exit successfully.

       -y, --yes
              Automatic yes to prompts and run non-interactively.  The package
              class needs to be set for dh_make to run fully automatically.

       The following environment settings are used by dh_make:

              Email address to use in control and changelog entries.

              You full name, eg "John Doe" which will appear  in  the  control
              and changelog entries.

       EMAIL  Email address to use in control and changelog entries, only used
              if DEBEMAIL is no set.

              Default username used for looking up  email  and  full  name  in
              other directories.

              Directory that contains all the template files, separated in six

              with files for all package classes,

              with files specific to the Single binary class,

              with files specific to the Library class, and finally,

              with files specific to the native Debian packages.

              template files for the more common licenses used in Debian pack-

       To  get dh_make to use the defaults and ask you various questions about
       the package


       Create your single class package using the with the GPL license:

           dh_make -s -c gpl

       A more involved example where you set your  name  in  the  environment,
       contact email and license in the options and specify the upstream file:

           DEBFULLNAME="John Doe"
           dh_make --email contact@example.com --copyright=bsd \
            --file ../foo.tar.gz

       dh_make  may  not detect your username and email address correctly when
       using sudo.


       You   may   also   want    to    read    the    Debian    Policy    (in
       /usr/share/doc/debian-policy  )  and  the  New  Maintainers'  Guide (in

Debian Project                    2016-01-08                        DH_MAKE(1)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2022 Hurricane Electric. All Rights Reserved.