summary refs log tree commit diff
path: root/pkgs/tools/networking/anevicon/default.nix
blob: cff22fa71e6ed1fd815349121dddd767dbf4afd9 (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
35
36
37
38
39
40
41
42
43
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, rustPlatform
, libiconv
, Security
}:

rustPlatform.buildRustPackage rec {
  pname = "anevicon";
  version = "0.1.0";

  src = fetchFromGitHub {
    owner = "rozgo";
    repo = pname;
    rev = "v${version}";
    sha256 = "1m3ci7g7nn28p6x5m85av3ljgszwlg55f1hmgjnarc6bas5bapl7";
  };

  cargoSha256 = "1g15v13ysx09fy0b8qddw5fwql2pvwzc2g2h1ndhzpxvfy7fzpr1";

  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];

  cargoPatches = [
    # Add Cargo.lock file, https://github.com/rozgo/anevicon/pull/1
    (fetchpatch {
      name = "cargo-lock-file.patch";
      url = "https://github.com/rozgo/anevicon/commit/205440a0863aaea34394f30f4255fa0bb1704aed.patch";
      sha256 = "02syzm7irn4slr3s5dwwhvg1qx8fdplwlhza8gfkc6ajl7vdc7ri";
    })
  ];

  # Tries to send large UDP packets that Darwin rejects.
  doCheck = !stdenv.isDarwin;

  meta = with lib; {
    description = "UDP-based load generator";
    homepage = "https://github.com/rozgo/anevicon";
    license = licenses.gpl3Only;
    maintainers = with maintainers; [ fab ];
  };
}