Nim is a fast, statically typed language that compiles to C (and other languages). The language is a recent development and was consequently only recently introduced to Debian. Most (almost all) common libraries are still missing. This page collects/archives all the thoughts to help nim libraries to have a coherent representation in Debian and likely also its derivative distributions.
Disclaimer: Everything collected on this page is new to Debian. If something does not suit your needs, contact the nim-team.
Main (upstream) Nim homepage: http://nim-lang.org/
GitHub repository: https://github.com/nim-lang/Nim
IRC channel: #nim on Freenode
Nim in Debian
The nim compiler is packaged.
Packaging Nim projects
See the packaging guide: https://nim-lang.github.io/Nim/packaging.html
Nim-specific packaging helpers are not yet available in the distribution. See https://salsa.debian.org/nim-team/dh-make-nim to get inspired.
Add the "nim" package to Build-Depends. You likely want to specify a minimum and/or maximum version of Nim as the compiler is always evolving.
Get involved with the packaging
Get in touch with us on IRC
Report bugs and suggest new packages
Contribute to packaging, bug fixing and testing
Packaging best practices
Host your packaging using Git on Salsa under nim-team. This will allow people to comaintain the packages or even take over easily.
Use Maintainer: Debian Nim Team <email@example.com> - see Debian Nim Team
Build using git-buildpackage
Create packages using dh-make-nim - it will provide reasonable default settings - Warning: while usable, it is not yet perfect.
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)
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.
The source package name should be "nim-<name>". (nim- prevents naming collisions with other projects)
The generated package should be "nim-<name>-dev" (because it's a development library used only at build time)
If the library also generates a shared object that can be used by other languages it should be "lib<name>"
See above. Also make sure to specify the Depends: to the right shared library and version.
The source and binary package name does not need to start with "nim-". E.g. vim, nmap, firefox
dh_nim will detect the name and run Nim with a JS target. (Not implemented yet)
- Create a dh-make-nim helper
- Improve the library/application packaging docs (this page)
Package more stuff