# Nixpkgs overlay with GNUnet-related packages This repository contains experimental packages related to [GNUnet](https://gnunet.org) for the [Nix package manager](https://nixos.org/nix). There exists a GNUnet package in the official nixpkgs repository but as GNUnet is still under heavy development, it is recommended to use a fairly recent version from the master branch of GNUnet's git repository. Currently the overlay provides these packages: - GNUnet itself - libgnurl ## Installation of the GNUnet service (NixOS only) On NixOS we can install this overlay system-wide and then enable the GNUnet service. This will install the *multi-user setup* as described in the [official documentation](https://docs.gnunet.org/handbook/gnunet.html#Installing-GNUnet). We have to add this to our ``/etc/nixos/configuration.nix``: ``` { config, pkgs, ... }: { ... nixpkgs.overlays = [ (import (fetchGit https://code.ulrich.earth/christian/nixpkgs-gnunet.git)) ]; services.gnunet = { enable = true; }; ... } ``` We can add options to the global GNUnet configuration file like this: ``` services.gnunet = { enable = true; extraOptions = '' [NAT] ENABLE_UPNP = NO [FS] IMMEDIATE_START = NO ''; }; ``` After running ``nixos-rebuild switch`` the GNUnet system services should be running (we still have to [start GNUnet per user](https://docs.gnunet.org/handbook/gnunet.html#Starting-GNUnet)): ``` $ touch ~/.config/gnunet.conf $ gnunet-arm -s ``` ## Installation of the GNUnet package into the user environment (Nix on all systems) We can install the overlay into the user environment like this: ```shell $ git clone https://code.ulrich.earth/christian/nixpkgs-gnunet.git $ ln -s $(readlink -e nixpkgs-gnunet/default.nix) ~/.config/nixpkgs/overlays/nixpkgs-gnunet.nix ``` Now we can install the GNUnet package for our user. This will allow a *single-user setup* as described in the [official documentation](https://docs.gnunet.org/handbook/gnunet.html#Installing-GNUnet). ```shell $ nix-env -f '' -iA gnunet ``` Now we can [start GNUnet](https://docs.gnunet.org/handbook/gnunet.html#Starting-GNUnet): ``` $ touch ~/.config/gnunet.conf $ gnunet-arm -s ```