[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#707601: ITP: debmake -- helper script to make the Debian source package



Package: wnpp
Severity: wishlist
Owner: Osamu Aoki <osamu@debian.org>

* Package name    : debmake
  Version         : 4.0.0
  Upstream Author : Osamu Aoki <osamu@debian.org>
* URL             : <none yet>
* License         : MIT
  Programming Lang: Python3
  Description     : helper script to make the Debian source package

 This package helps you to convert a upstream source package (or VCS contents)
 into the Debian package by adding files required for the Debian source
 package.  The generated debian/rules file uses the new dh command syntax from
 the debhelper (>9) package.
 .
 The debmake command invoked in the upstream source tree without any option
 can generate template files which is good enough to create a single arch=any
 Debian binary package for local use.  The generated files should be edited to
 make it conform to the Debian policy if the package is uploaded to the Debian
 archive.  By adding few options, this command can generate template files for
 the arbitrary combination of the multi-binary and multi-arch package, etc.
 .
 This debmake command also scans copyright and license texts in the source
 files to help crafting the proper DEP-5 compatible debian/copyright file.
----

This is working here.  This generates proper dh command line with "--with ..."
for python2 and python3 (with override lines).  This also has options to use
upstream "make dist" or tarball as the starting point. I am cleaning up code
before upload.  No problem for running multiple times and no more extra
template files unless requested.

FYI:
The author thanks previous efforts on this topic (GPL):
 * 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)
            (not in wheezy)

 * dh-make: 1998-2012 Craig Small <csmall@debian.org>
            command: dh_make                             (perl script)

Version starts from 4.0.0 since old debmake was 3.8.

=======================================================================
$ debmake -h
usage: debmake [-h] [-a upstream-version.tar.gz | -d] [-p package_name]
               [-u upstream_version] [-r debian_revision] [-z extension]
               [-b package[:type]] [-c license_file] [-e foo@example.org]
               [-f "firstname lastname"] [-i] [-m] [-n] [-o] [-q] [-v] [-x]

debmake: make Debian source package    Version: 4.0.0
Copyright © 2013 Osamu Aoki <osamu@debian.org>

debmake builds the Debian package from the upstream source.  
Normally, this is done as follows:
 * The upstream tarball is downloaded as the upstream-version.tar.gz file.
 * The upstream_version.orig.tar.gz symlink is generated pointing to the upstream tarball.
 * It is untared to create many files under the upstream-version/ directory.  
 * debmake is invoked in the upstream-version/ directory without any arguments.
 * Files in the upstream-version/debian/ directory are manually adjusted.
 * dpkg-buildpackage is invoked in the upstream-version/ directory to make debian packages.

optional arguments:
  -h, --help            show this help message and exit
  -a upstream-version.tar.gz, --archive upstream-version.tar.gz
                        use the upstream source tarball directly (-p, -u, -z:
                        overridden)
  -d, --dist            run "make dist" equivalent first to generate upstream
                        tarball and use it
  -p package_name, --package package_name
                        set the Debian package name
  -u upstream_version, --upstreamversion upstream_version
                        set the upstream package version
  -r debian_revision, --revision debian_revision
                        set the Debian package revision
  -z extension, --targz extension
                        set the tarball type,
                        extension=(tar.gz|tar.bz2|tar.xz)
  -b package[:type], --binaryspec package[:type]
                        set binary package specs,
                        package=(-|-doc|-dev|-common|-bin|-dbg),
                        type=(all|any|foreign|same)

   (This can have -b"package1:type1,package2:type2,package3:type3")

  -c license_file, --copyright license_file
                        add formatted license to debian/copyright
  -e foo@example.org, --email foo@example.org
                        set e-mail address
  -f "firstname lastname", --fullname "firstname lastname"
                        set the fullname
  -i, --initialize      set-up debhelper to run "autoreconf -ivf" to
                        initialize for Autotools
  -m, --monoarch        force packages to be non-multiarch
  -n, --native          make a native source package without .orig.tar.gz
  -o, --overwrite       overwrite existing configuration files
  -q, --quitearly       quit early before creating files in the debian
                        directory
  -v, --version         show version information
  -x, --extra           generate extra configuration files as templates

Osamu


Reply to: