nixpkgs-suyu/pkgs/tools/networking/darkstat/default.nix
Claudio Bley fae6a45e92 darkstat: Fix build on darwin
On recent macOS the build fails with:
```
now.c:33:16: error: typedef redefinition with different types ('int' vs 'enum clockid_t')
   typedef int clockid_t;
               ^
/nix/store/4df4jhlj71vblmxhrr7dkkqpak8a42c8-Libsystem-1238.60.2/include/time.h:171:3: note: previous definition is here
} clockid_t;
  ^
now.c:34:11: warning: 'CLOCK_REALTIME' macro redefined [-Wmacro-redefined]
          ^
/nix/store/4df4jhlj71vblmxhrr7dkkqpak8a42c8-Libsystem-1238.60.2/include/time.h:154:9: note: previous definition is here
        ^
now.c:35:11: warning: 'CLOCK_MONOTONIC' macro redefined [-Wmacro-redefined]
          ^
/nix/store/4df4jhlj71vblmxhrr7dkkqpak8a42c8-Libsystem-1238.60.2/include/time.h:156:9: note: previous definition is here
        ^
2 warnings and 1 error generated.
```
2022-05-12 17:42:27 +02:00

40 lines
1.3 KiB
Nix

{ lib, stdenv, fetchpatch, fetchurl, libpcap, zlib }:
stdenv.mkDerivation rec {
version = "3.0.719";
pname = "darkstat";
src = fetchurl {
url = "${meta.homepage}/${pname}-${version}.tar.bz2";
sha256 = "1mzddlim6dhd7jhr4smh0n2fa511nvyjhlx76b03vx7phnar1bxf";
};
patches = [
# Avoid multiple definitions of CLOCK_REALTIME on macOS 11,
# see https://github.com/emikulic/darkstat/pull/2
(fetchpatch {
url = "https://github.com/emikulic/darkstat/commit/d2fd232e1167dee6e7a2d88b9ab7acf2a129f697.diff";
sha256 = "0z5mpyc0q65qb6cn4xcrxl0vx21d8ibzaam5kjyrcw4icd8yg4jb";
})
];
buildInputs = [ libpcap zlib ];
enableParallelBuilding = true;
meta = with lib; {
description = "Network statistics web interface";
longDescription = ''
Captures network traffic, calculates statistics about usage, and serves
reports over HTTP. Features:
- Traffic graphs, reports per host, shows ports for each host.
- Embedded web-server with deflate compression.
- Asynchronous reverse DNS resolution using a child process.
- Small. Portable. Single-threaded. Efficient.
- Supports IPv6.
'';
homepage = "http://unix4lyfe.org/darkstat";
license = licenses.gpl2;
platforms = with platforms; unix;
};
}