debmake for Debian
------------------

The debmake command is a helper script to generate basic Debian packaging files
using debhelper version 9 or newer with multiarch conscious way.  See the
debmake(1) manpage in this package and the HTML documentation provided in the
debmake-doc package for more.

The debmake command is written in python and is intended to replace functions
traditionally offered by deb-make and dh_make commands.

This new debmake package has debmake as its command and starts its version from
4.0 to avoid version overlaps.

The author thanks previous efforts on this topic:

 * debmake: 1996-1997 Christoph Lameter <clameter@debian.org>
            1997-2006 Santiago Vila <sanvila@debian.org>
            command: deb-make, version up to 3.8         (shell script)
 * dh-make: 1998-2012 Craig Small <csmall@debian.org>
            command: dh_make                             (perl script)

UPDATE:
 * I wrote most of debmake code in 2013-2014.
 * dh-make were ported from perl to python in 2016 and updated its
   behavior.  So current dh-make is python3 based.

Rationale for debmake
---------------------

debmake was created to address shortcomings of dh_make(1): Notably:
 * semi-automatic scanning of copyright
 * flexible combination of binary package types
 * multiarch aware
 * friendly for the hardening of compiler flags
 * almost automatic process from the upstream VCS (autotools, setup.py, ...)
 * help upstream to manage the non-native package

The design guide line of debmake
--------------------------------

 * Keep it simple.
 * Use the new dh syntax.  (No cdbs nor any make file inclusion system)
 * The basic ability of dh_make (and its predecessor deb-make) should be
   covered.  (The debmake command intends to replace them.)
 * The debmake command should require no or minimum arguments to do useful
   things.
 * The debmake command should help reviewing of the license for all source
   files.
 * The program structure should be friendly for adding the GUI.
 * The native build system of the upstream source should be identified and
   utilized.
 * The debmake command should make it easy to create various combinations of
   binary packages in the multiarch compatible way.
 * The debmake command should not overwrite existing files by default.
 * The debmake command should not generate non-essential template files as
   default except for the first run in which normal template files are
   generated.

UPDATE:
 * Support DEP-8, DEP-12 template
   * https://dep-team.pages.debian.net/deps/dep8/
   * https://dep-team.pages.debian.net/deps/dep12/
 * Support dgit-maint-merge(7) work flow

The above was written around 14 Dec 2014 except for UPDATE.

 -- Osamu Aoki <osamu@debian.org>  Sun, 20 Jun 2021 00:00:00 +0000

