Differences between revisions 18 and 19
Revision 18 as of 2015-04-22 11:17:16
Size: 3483
Comment:
Revision 19 as of 2015-04-22 11:21:12
Size: 3697
Comment:
Deletions are marked like this. Additions are marked like this.
Line 36: Line 36:
  * '''Perl:''' not supported? {{{cpan -g Oxford::Calendar}}} does nothing here...   * '''Perl:''' not supported? ({{{cpan -g Oxford::Calendar}}} does nothing here...)
  * '''Python:''' not supported?
Line 40: Line 41:
  * '''Python:''' not supported?
Line 46: Line 48:
  * '''Perl:''' {{{dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --build-source}}}   * '''Perl:''' {{{dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --build-source}}} or {{{cpan2dsc MODULE}}}
  * '''Python:''' {{{py2dsc DISTFILE}}}
Line 49: Line 52:
  * '''Perl:''' {{{dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --build}}}   * '''Perl:''' {{{dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --build}}} or {{{cpan2deb MODULE}}}
  * '''Python:''' {{{py2dsc-deb DISTFILE}}}
Line 53: Line 57:
  * '''Ruby:''' not supported   * '''Python, Ruby:''' not supported
Line 56: Line 60:
  * '''Ruby, Python:''' not supported   * '''Python, Ruby:''' not supported

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
    • Perl: not supported? (cpan -g Oxford::Calendar does nothing here...)

    • Python: not supported?

    • Ruby: gem fetch GEMNAME

  • Debianize (without building source)
    • Perl: dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} 

    • Python: not supported?

    • Ruby: gem2deb --only-source-dir GEMNAME|GEMFILE

  • Debianize an unpacked upstream source
    • Perl: dh-make-perl [make] .

    • Python: python3 setup.py --command-packages=stdeb.command debianize

    • Ruby: dh-make-ruby .

  • Debianize and build source package
    • Perl: dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --build-source or cpan2dsc MODULE

    • Python: py2dsc DISTFILE

    • Ruby: gem2deb --only-debian-source GEMNAME|GEMFILE

  • Debianize and build binary packages
    • Perl: dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --build or cpan2deb MODULE

    • Python: py2dsc-deb DISTFILE

    • Ruby: gem2deb GEMNAME|GEMFILE

  • Debianize, build, install
    • Perl: dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --install

    • Python, Ruby: not supported

  • Refresh an already created package, moving old files to .bak:
    • Perl: dh-make-perl refresh

    • Python, Ruby: not supported

TO-DO List