### Build instructions ¶

Make sure that Go 1.22+ is installed. Go can be installed from packages or build manually:

FreeBSD

  `pkg install go`

Debian, Ubuntu

  `apt install golang`

    $ [fetch|wget] http://www.nncpgo.org/download/nncp-8.12.1.tar.xz
    $ [fetch|wget] http://www.nncpgo.org/download/nncp-8.12.1.tar.xz.{asc,sig}
    [verify signature]
    $ xz -d <nncp-8.12.1.tar.xz | tar xf -
    $ cd nncp-8.12.1
    [optionally edit config]
    $ ./build

After that you should get various `bin/nncp-*` binaries and `bin/hjson-cli` command (only for your convenience, not necessary installation). For example, documentation for `nncp-bundle` command can be get with `info doc/nncp.info -n nncp-bundle`.

`config` file contains some environment variables that are respected during installation: `$PREFIX`, `$DESTDIR`, `$GO`, `$MAKEINFO`, `$PLANTUML`, `$PREFIX`, `$SENDMAIL`, `$CFGPATH`, `$SPOOLPATH`, `$LOGPATH`, `$BINDIR`, `$INFODIR`, `$DOCDIR`.

There is `install` script for binaries and info-documentation installation:

    # PREFIX=/usr/local ./install

NNCP depends on `github.com/fsnotify/fsnotify` library, that solely relies on OS-specific mechanisms. There is possibility that you have either broken or unsupported ones. You can still build NNCP with `-tags nofsnotify` build option, to skip `fsnotify` library usage at all:

    $ GO_CFLAGS="-tags nofsnotify" ./build

You can also disable Yggdrasil support with `-tags noyggdrasil`.