about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/security/b2sum/default.nix
blob: 581feb28ce087fa9ef55c3028df5c0d09125505b (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
{ lib, stdenv, fetchFromGitHub, openmp ? null }:

stdenv.mkDerivation (finalAttrs: {
  pname = "b2sum";
  version = "20190724";

  src = fetchFromGitHub {
    owner = "BLAKE2";
    repo = "BLAKE2";
    rev = finalAttrs.version;
    sha256 = "sha256-6BVl3Rh+CRPQq3QxcUlk5ArvjIj/IcPCA2/Ok0Zu7UI=";
  };

  # Use the generic C implementation rather than the SSE optimised version on non-x86 platforms
  postPatch = lib.optionalString (!stdenv.hostPlatform.isx86) ''
    substituteInPlace makefile \
      --replace "#FILES=b2sum.c ../ref/" "FILES=b2sum.c ../ref/" \
      --replace "FILES=b2sum.c ../sse/" "#FILES=b2sum.c ../sse/"
  '';

  sourceRoot = "${finalAttrs.src.name}/b2sum";

  buildInputs = [ openmp ];

  buildFlags = [ (lib.optional (openmp == null) "NO_OPENMP=1") ];

  # clang builds require at least C99 or the build fails with:
  # error: unknown type name 'inline'
  env.NIX_CFLAGS_COMPILE = "-std=c99";

  installFlags = [ "PREFIX=$(out)" ];

  meta = with lib; {
    description = "The b2sum utility is similar to the md5sum or shasum utilities but for BLAKE2";
    homepage = "https://blake2.net";
    license = with licenses; [ asl20 cc0 openssl ];
    maintainers = with maintainers; [ kirelagin ];
    platforms = platforms.unix;
  };
})