Nim is a fast, statically typed language that compiles to C (and other languages).


Nim in Debian

The nim compiler is packaged.

Packaging Nim

Nim-specific packaging helpers are not available yet.

Add the "nim" package to Build-Depends. You might want to specify a minimum and maximum version of Nim as the compiler is still evolving (2015).

Get involved with the packaging

Packaging best practices

Host your packaging under Git in collab-maint. This will allow people to comaintain the packages or even take over easily.

Build using git-buildpackage

Create packages using dh-make-nim - it will provide reasonable default (Warning: not ready yet)

Do not package experimental software. If an upstream project does not have a version number you can use 0.0_gitYYYYMMDD-x as a version number. (x is the Debian version number)

dh-nim comes with an example debian/rules file:;a=blob_plain;f=example/rules

Libraries are packaged to allow building other Nim libraries and applications. End users will not install them.

Build-Depends and Depends lines: The dependencies need to be available at build time to run the tests (if any) and at installation time so that other packages can be built.

Pure libraries

The source package name should be "nim-<name>".

Impure libraries

The source package name should be "nim-<name>". Make sure to specify the Depends: to the right shared library and version.


The binary package name should *not* start with "nim-"

Javascript "binaries"

Nim can generate ?JavaScript "binaries". The binary package name should be "libjs-<name>".

dh_nim will detect the name and run Nim with a JS target. (Not implemented yet)