Differences between revisions 1 and 15 (spanning 14 versions)
Revision 1 as of 2015-04-22 06:59:35
Size: 45
Comment:
Revision 15 as of 2015-04-22 10:59:18
Size: 2722
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Rédiger « AutomaticPackagingTools » ici. This page references tools that aim at providing basic working Debian packages.

||<rowstyle="background-color: #EEEEEE;">'''Language'''|| Any || Perl || Ruby || Python ||
||'''Tool (package name)'''|| dh-make || dh-make-perl || gem2deb || python-stdeb ||
||'''Upstream repository'''|| N/A || [[http://www.cpan.org/|CPAN.org]] || [[http://www.rubygems.org/|Rubygems.org]] || [[http://pypi.python.org/|Pypi]] ||
||||||||||<rowstyle="background-color: #EEEEEE;"> Features ||
|| version || || 0.84-2 || 0.14 || 0.8.2-4 ||
|| cdbs or dh? || || dh || dh || dh ||
|| use DEBEMAIL || || yes || yes || no ||
|| Build-Depends || || yes || yes || no ||
|| Depends || || yes || yes || yes ||
|| Homepage || || yes || yes || no ||
|| short/long descriptions || || yes || yes || yes ||
|| DEP8 tests || || no || only template || no ||
|| .docs / .examples / etc. || || docs + examples || docs only || no ||
|| debian/copyright || || yes || only template || no ||
|| debian/watch || || yes|| yes || no ||
|| git repo creation, pristine-tar, etc. || || yes || no || no ||
|| debian/upstream/metadata (UpstreamMetadata) || || yes || no || no ||

== Notes ==
 * There's a [[https://github.com/lnussbaum/autodeb-tests|Git repo]] with some example outputs
 * ''only template'' means that the tool provides a file that is not customized per-package

=== Build-depends and Depends generation ===
 * dh-make-perl uses local packages and apt-file to identify packages ([[https://bugs.debian.org/783110|broken with 0.84-2 and multiarch]])
 * gem2deb converts gem names to Debian package names
 * stdeb also uses apt-file with a fallback on module name conversion ([[https://sources.debian.net/src/stdeb/0.8.2-4/stdeb/util.py/#L265|code]])
 * [[https://wiki.debian.org/DEP-11|DEP-11]] could end up being the proper way to generate language-specific dependencies

=== Copyright file generation ===
TODO. 'cme update dpkg-copyright' is another approach.

== Usage ==
 * Download upstream package from repository
 * Debianize (without building source)
 * Debianize an unpacked upstream source
  * '''Python:''' {{{python3 setup.py --command-packages=stdeb.command debianize}}}
 * Debianize and build source package
 * Debianize and build binary packages
 * Debianize, build, install
 * Refresh an already created package, moving old files to .bak:
  * '''Perl:''' {{{dh-make-perl refresh}}}
  * '''Ruby, Python:''' not supported

== TO-DO List ==
 * Look at:
  * dh-make
  * cabal-debian (haskell)
  * javahelper (Java)
  * npm2deb (Node.js)
  * pkg-php-tools (PHP, PEAR modules)
  * ocaml tool?
 * Investigate meta-helpers
  * debdry
  * https://github.com/FedericoCeratto/debian-package-init

This page references tools that aim at providing basic working Debian packages.

Language

Any

Perl

Ruby

Python

Tool (package name)

dh-make

dh-make-perl

gem2deb

python-stdeb

Upstream repository

N/A

CPAN.org

Rubygems.org

Pypi

Features

version

0.84-2

0.14

0.8.2-4

cdbs or dh?

dh

dh

dh

use DEBEMAIL

yes

yes

no

Build-Depends

yes

yes

no

Depends

yes

yes

yes

Homepage

yes

yes

no

short/long descriptions

yes

yes

yes

DEP8 tests

no

only template

no

.docs / .examples / etc.

docs + examples

docs only

no

debian/copyright

yes

only template

no

debian/watch

yes

yes

no

git repo creation, pristine-tar, etc.

yes

no

no

debian/upstream/metadata (UpstreamMetadata)

yes

no

no

Notes

  • There's a Git repo with some example outputs

  • only template means that the tool provides a file that is not customized per-package

Build-depends and Depends generation

  • dh-make-perl uses local packages and apt-file to identify packages (broken with 0.84-2 and multiarch)

  • gem2deb converts gem names to Debian package names
  • stdeb also uses apt-file with a fallback on module name conversion (code)

  • DEP-11 could end up being the proper way to generate language-specific dependencies

TODO. 'cme update dpkg-copyright' is another approach.

Usage

  • Download upstream package from repository
  • Debianize (without building source)
  • Debianize an unpacked upstream source
    • Python: python3 setup.py --command-packages=stdeb.command debianize

  • Debianize and build source package
  • Debianize and build binary packages
  • Debianize, build, install
  • Refresh an already created package, moving old files to .bak:
    • Perl: dh-make-perl refresh

    • Ruby, Python: not supported

TO-DO List