Add packaging guide #5182 (#10384)

This commit is contained in:
Federico Ceratto 2019-01-23 10:12:46 +00:00 • committed by Andreas Rumpf
commit c3229dc1c3
3 changed files with 75 additions and 0 deletions

68
doc/packaging.rst Normal file
View file

@ -0,0 +1,68 @@
Packaging Nim
=============
Supported architectures
-----------------------
Nim runs on a wide variety of platforms. Support on amd64 and i386 is tested regularly, while less popular platforms are tested by the community.
- amd64
- arm64 (aka aarch64)
- armel
- armhf
- i386
- m68k
- mips64el
- mipsel
- powerpc
- ppc64
- ppc64el (aka ppc64le)
- riscv64
The following platforms are seldomly tested:
- alpha
- hppa
- ia64
- mips
- s390x
- sparc64
Packaging for Linux
-------------------
See https://github.com/nim-lang/Nim/labels/Installation for installation-related bugs.
Build Nim from the released tarball at https://nim-lang.org/install_unix.html
It is different from the GitHub sources as it contains Nimble, C sources & other tools.
The Debian package ships bash and ksh completion and manpages that can be reused.
Hints on the build process:
::
# build from C sources and then using koch
./build.sh --os $os_type --cpu $cpu_arch
./bin/nim c koch
./koch boot -d:release
# optionally generate docs into doc/html
./koch docs
./koch tools -d:release
# extract files to be really installed
./install.sh <tempdir>
# also include the tools
for fn in nimble nimsuggest nimgrep; do cp ./bin/$fn <tempdir>/nim/bin/; done
What to install:
- The expected stdlib location is /usr/lib/nim
- Global configuration files under /etc/nim
- Optionally: manpages, documentation, shell completion
- When installing documentation, .idx files are not required
- The "compiler" directory contains compiler sources and should not be part of the compiler binary package

View file

@ -5,6 +5,7 @@ For more information about Nim, including downloads and documentation for
the latest release, check out [Nim's website][nim-site] or [bleeding edge docs](https://nim-lang.github.io/Nim/). the latest release, check out [Nim's website][nim-site] or [bleeding edge docs](https://nim-lang.github.io/Nim/).
## Community ## Community
[![Join the IRC chat][badge-nim-irc]][nim-irc] [![Join the IRC chat][badge-nim-irc]][nim-irc]
[![Join the Gitter chat][badge-nim-gitter]][nim-gitter] [![Join the Gitter chat][badge-nim-gitter]][nim-gitter]
[![Get help][badge-nim-forum-gethelp]][nim-forum] [![Get help][badge-nim-forum-gethelp]][nim-forum]
@ -23,6 +24,7 @@ the latest release, check out [Nim's website][nim-site] or [bleeding edge docs](
* [Github Wiki][nim-wiki] - Misc user-contributed content. * [Github Wiki][nim-wiki] - Misc user-contributed content.
## Compiling ## Compiling
The compiler currently officially supports the following platform and The compiler currently officially supports the following platform and
architecture combinations: architecture combinations:
@ -56,6 +58,8 @@ Nim from source using ``gcc``, ``git`` and the ``koch`` build tool.
For most users, installing the latest stable version is enough. Check out For most users, installing the latest stable version is enough. Check out
the installation instructions on the website to do so: https://nim-lang.org/install.html. the installation instructions on the website to do so: https://nim-lang.org/install.html.
For package mantainers: see [packaging guidelines](https://nim-lang.github.io/Nim/packaging.html).
``` ```
# step 1: # step 1:
git clone https://github.com/nim-lang/Nim.git git clone https://github.com/nim-lang/Nim.git
@ -83,6 +87,7 @@ Finally, once you have finished the build steps (on Windows, Mac or Linux) you
should add the ``bin`` directory to your PATH. should add the ``bin`` directory to your PATH.
## Koch ## Koch
``koch`` is the build tool used to build various parts of Nim and to generate ``koch`` is the build tool used to build various parts of Nim and to generate
documentation and the website, among other things. The ``koch`` tool can also documentation and the website, among other things. The ``koch`` tool can also
be used to run the Nim test suite. be used to run the Nim test suite.
@ -106,6 +111,7 @@ This project exists thanks to all the people who contribute.
<a href="https://github.com/nim-lang/Nim/graphs/contributors"><img src="https://opencollective.com/Nim/contributors.svg?width=890" /></a> <a href="https://github.com/nim-lang/Nim/graphs/contributors"><img src="https://opencollective.com/Nim/contributors.svg?width=890" /></a>
## Contributing ## Contributing
[![Backers on Open Collective](https://opencollective.com/nim/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/nim/sponsors/badge.svg)](#sponsors) [![Backers on Open Collective](https://opencollective.com/nim/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/nim/sponsors/badge.svg)](#sponsors)
[![Setup a bounty via Bountysource][badge-nim-bountysource]][nim-bountysource] [![Setup a bounty via Bountysource][badge-nim-bountysource]][nim-bountysource]
[![Donate Bitcoins][badge-nim-bitcoin]][nim-bitcoin] [![Donate Bitcoins][badge-nim-bitcoin]][nim-bitcoin]

View file

@ -106,6 +106,7 @@ doc/nep1.rst
doc/nims.rst doc/nims.rst
doc/contributing.rst doc/contributing.rst
doc/codeowners.rst doc/codeowners.rst
doc/packaging.rst
doc/manual/var_t_return.rst doc/manual/var_t_return.rst
""".splitWhitespace() """.splitWhitespace()