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

The debmake command is a helper script to generate basic Debian packaging files
using debhelper version 13 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 was ported from perl to python in 2016 and updated its behavior.
   So current dh-make is python3 based.
 * I updated debmake for debhelper v13 in 2024.

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>  Tue, 09 Jul 2024 05:44:29 +0000
