dh_make

DH_MAKE(8)                  System Manager's Manual                 DH_MAKE(8)



NAME
       dh_make - prepare Debian packaging for an original source archive

SYNOPSIS
       dh_make [-nlsmiadhry] [-c license] [-e address] [-f file] [-t
       directory] [-o directory] [-p name] [--copyright license] [--email
       address] [--native] [--file file] [--library] [--single] [--indep]
       [--multi] [--kmod] [--kpatch] [--addmissing] [--yes] [--templates
       directory] [--defaultless] [--overlay directory] [--packagename name]
       [--rulesformat format] [--help] [--version]

DESCRIPTION
       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, digits and dashes. If the directory 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.

   PACKAGE CLASSES
       Classes can be set with the single direct options (such as --s for
       single) 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-
              independent.

       Multiple binary (m)
              The package will generate multiple binary .deb packages from one
              source package. Choose this for larger packages that need to be
              split.

       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.

       Kernel module (k)
              The package will generate a binary-all kernel module -source
              package for use with the make-kpkg(1) command. It also generates
              a binary package for additional utilities, daemons, etc. that
              may come with the source.

       Kernel patch
              The package will generate a package that can be used for kernel
              patches.

   ACTIONS PERFORMED
       Unless --native was given, dh_make makes sure a original source archive
       (<packagename>_<version>.orig.tar.gz) exists. The archive can either
       end with .gz or one of the other supported compression 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>-<version>.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 reasons
       against it, this file should be the pristine upstream archive.

       Then dh_make proceeds to generate a "debian" subdirectory and the
       necessary 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
       $LOGNAME 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.

OPTIONS
       -c, --copyright license
              Use license type in copyright file.  license can be gpl, gpl2,
              gpl3, lgpl, lgpl2 lgpl3, artistic, apache, bsd or mit.  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-insensitive 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.

       -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
              revision 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
              question.

       -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.

       -m, --multi
              Automatically set the package class to Multiple binary, skipping
              the question.

       -k, --kmod
              Automatically set the package class to Kernel module, skipping
              the question.

       --kpatch
              Automatically set package class to kpatch, 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
              directory.

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

       -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
              directory.

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

       -r, --rulesformat format
              Set the format for the debian/rules file to format. The options
              are the default Debhelper v7 minimal rules (dh7), the old rules
              format (old) or CDBS format (cdbs).

       -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.

ENVIRONMENT
       The following environment settings are used by dh_make:

       DEBEMAIL
              Email address to use in control and changelog entries.

       DEBFULLNAME
              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.

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

FILES
       /usr/share/debhelper/dh_make
              Directory that contains all the template files, separated in six
              directories:

       debian/
              with files for all package classes,

       debians/
              with files specific to the Single binary class,

       debianm/
              with files specific to the Multiple binary class,

       debianl/
              with files specific to the Library class, and finally,

       native/
              with files specific to the native Debian packages.

       licenses/
              template files for the more common licenses used in Debian
              packages

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

           dh_make


       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


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

SEE ALSO
       dpkg(1),dpkg-buildpackage(1),dh(1),make-kpkg(1),debhelper(7)

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



Debian Project                    2012-06-24                        DH_MAKE(8)