nixpkgs-gnunet/README.md

2.0 KiB

Nixpkgs overlay with GNUnet-related packages

This repository contains experimental packages related to GNUnet for the Nix package manager. 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)

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. We have to add this to our /etc/nixos/configuration.nix:

{ config, pkgs, ... }:

{
  ...
  nixpkgs.overlays = [
    (import (fetchGit https://ulrich.earth/code/nixpkgs-gnunet))
  ];

  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:

$ touch ~/.config/gnunet.conf
$ gnunet-arm -s

Installation of the GNUnet package (Nix on other systems)

We can install the overlay into the user environment like this:

$ ln -s ~/.config/nixpkgs/overlays/gnunet-overlay.nix gnunet-overlay

Now we can install the GNUnet package for our user. This will allow a single-user setup as described in the official documentation.

$ nix-env -f '<nixpkgs>' -iA gnunet

Now we can start GNUnet:

$ touch ~/.config/gnuent.conf
$ gnuent-arm -s