5846
Comment:
|
5970
|
Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
|| version || 1.20150601 || 0.87-1 || 0.21.1 || 0.8.5-1 || 0.2.2-1 || 4.17.4-1 || 0.0~git20150726.0.fc4210a-1 || | || version || 1.20150601 || 0.87-1 || 0.21.1 || 0.8.5-1 || 0.2.2-1 || 4.31-1 || 0.0~git20150726.0.fc4210a-1 || |
Line 45: | Line 45: |
* '''Ruby:''' {{{dh-make-ruby .}}} | * '''Ruby:''' {{{dh-make-ruby}}} |
Line 47: | Line 47: |
* '''Haskell:''' {{{cabal-debian}}} | * '''Haskell:''' {{{cabal-debian --official}}} (see [[Haskell/CollabMaint/GettingStarted|the step-by-step guide]]) |
Line 74: | Line 74: |
* '''Haskell:''' {{{cabal-debian}}} | * '''Haskell:''' {{{cabal-debian --official --upgrade}}} == Not (yet) covered tools == * OCaml : oasis2debian and opam2debian |
Line 79: | Line 82: |
* Ocaml -- see dh-ocaml for packaging tools |
This page references tools that aim at providing basic working Debian packages.
Language |
Any |
Perl |
Ruby |
Python |
Node.js |
Haskell |
Go |
Tool (package name) |
|||||||
Upstream repository |
N/A |
||||||
Features |
|||||||
version |
1.20150601 |
0.87-1 |
0.21.1 |
0.8.5-1 |
0.2.2-1 |
4.31-1 |
0.0~git20150726.0.fc4210a-1 |
cdbs or dh? |
dh |
dh |
dh |
dh |
dh |
cdbs |
dh |
use DEBEMAIL |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
Build-Depends |
no |
yes |
yes |
partial |
no |
yes |
yes |
Depends |
no |
yes |
yes |
yes |
yes |
at build time |
yes |
Homepage |
no |
yes |
yes |
yes |
yes |
no |
yes |
short/long descriptions |
no |
yes |
yes |
yes |
short only |
yes |
yes |
DEP8 tests |
no |
no |
only template |
no |
basic (only require) |
no |
no |
.docs / .examples / etc. |
no |
docs + examples |
docs only |
no |
docs |
no |
no |
debian/copyright |
only template |
yes |
only template |
no |
yes |
yes |
yes |
debian/watch |
only template |
yes |
yes |
yes |
yes |
yes |
no |
git repo creation, pristine-tar, etc. |
no |
yes |
no |
no |
no |
no |
yes |
no |
yes |
no |
no |
no |
no |
no |
|
ITP mail template |
no |
no |
no |
no |
yes |
no |
yes |
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
- npm2deb only generates the Debian files from metadata, but does not create a proper source package. The upstream source is not downloaded.
- Several tools use wrap-and-sort to unify structure of debian/ files
Build-depends and Depends generation
dh-make-perl uses local packages and apt-file to identify packages (broken with 0.84-2 and multiarch)
stdeb also uses apt-file with a fallback on module name conversion (code)
- npm, gem2deb and cabal-Debian only convert upstream package names found in metadata, to Debian package names
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
Perl: not supported? (cpan -g Oxford::Calendar does nothing here...)
Python: pypi-download NAME --release VERSION, f.e. pypi-download Mako --release 1.0.1
npm: npm install PKGNAME
Ruby: gem fetch GEMNAME
Haskell: cabal get PKGNAME
- Debianize an unpacked upstream source
Perl: dh-make-perl [make] .
Python: python3 setup.py --command-packages=stdeb.command debianize
Ruby: dh-make-ruby
npm: not supported
Haskell: cabal-debian --official (see ?the step-by-step guide)
- Debianize (without building source)
Perl: dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST}
Python: not supported
Ruby: gem2deb --only-source-dir GEMNAME|GEMFILE
npm: npm2deb create PKGNAME
Haskell: not supported, need unpacked source
- 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
npm, Haskell: not supported
- 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
npm, Haskell: not supported
- Debianize, build, install
Perl: dh-make-perl [make] {SOURCE_DIR | --cpan MODULE|DIST} --install
Python: pypi-install NAME
Ruby: not supported
npm, Haskell: not supported
- Refresh an already created package, moving old files to .bak:
All: cme migrate dpkg or cme fix dpkg
Perl: dh-make-perl refresh
Python, Ruby: not supported
npm: not supported
Haskell: cabal-debian --official --upgrade
Not (yet) covered tools
- OCaml : oasis2debian and opam2debian
Other languages without an automated generator
- PHP (PEAR packages) -- see pkg-php-tools for packaging tools (and debpear for a simple generator)
- Java -- see javahelper for packaging tools
See also
- debdry: common frontend for most of the helpers described above
- alien: converts RPM/etc binary packages to deb binary packages
- checkinstall: run an arbitrary upstream build system and auto-package the output
TODO
- The R team seems to have a cran2deb package