summary refs log tree commit diff
path: root/pkgs/servers/ucarp/default.nix
blob: a3b02d493e2e5091b553ef311843675fbabdc4ea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{ stdenv, lib, fetchurl, libpcap }:

stdenv.mkDerivation rec {
  pname = "ucarp";
  version = "1.5.2";

  src = fetchurl {
    url = "https://download.pureftpd.org/pub/ucarp/ucarp-${version}.tar.bz2";
    sha256 = "0qidz5sr55nxlmnl8kcbjsrff2j97b44h9l1dmhvvjl46iji7q7j";
  };

  buildInputs = [ libpcap ];

  # Workaround build failure on -fno-common toolchains like upstream
  # gcc-10. Otherwise build fails as:
  #   ld: daemonize.o:/build/ucarp-1.5.2/src/ip_carp.h:73: multiple definition of
  #     `__packed'; ucarp.o:/build/ucarp-1.5.2/src/ip_carp.h:73: first defined here
  NIX_CFLAGS_COMPILE = "-fcommon";

  meta = with lib; {
    description = "Userspace implementation of CARP";
    longDescription = ''
      UCARP allows a couple of hosts to share common virtual IP addresses in
      order to provide automatic failover. It is a portable userland
      implementation of the secure and patent-free Common Address Redundancy
      Protocol (CARP, OpenBSD's alternative to the patents-bloated VRRP).

      Warning: This package has not received any upstream updates for a long
      time and can be considered as unmaintained.
    '';
    license = with licenses; [ isc bsdOriginal bsd2 gpl2Plus ];
    maintainers = with maintainers; [ oxzi ];
  };
}