Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / botan / generic.nix
blob795cd5189efe4e854f5eff11d746f0bad203b043
1 { lib, stdenv, fetchurl, python3, bzip2, zlib, gmp, boost
2 # Passed by version specific builders
3 , baseVersion, revision, sha256
4 , sourceExtension ? "tar.xz"
5 , extraConfigureFlags ? ""
6 , extraPatches ? [ ]
7 , badPlatforms ? [ ]
8 , postPatch ? null
9 , knownVulnerabilities ? [ ]
10 , CoreServices ? null
11 , Security ? null
12 , ...
15 stdenv.mkDerivation rec {
16   pname = "botan";
17   version = "${baseVersion}.${revision}";
19   outputs = [ "out" "dev" ];
21   src = fetchurl {
22     name = "Botan-${version}.${sourceExtension}";
23     urls = [
24        "http://files.randombit.net/botan/v${baseVersion}/Botan-${version}.${sourceExtension}"
25        "http://botan.randombit.net/releases/Botan-${version}.${sourceExtension}"
26     ];
27     inherit sha256;
28   };
29   patches = extraPatches;
30   inherit postPatch;
32   nativeBuildInputs = [ python3 ];
33   buildInputs = [ bzip2 zlib gmp boost ]
34     ++ lib.optionals stdenv.isDarwin [ CoreServices Security ];
36   configurePhase = ''
37     runHook preConfigure
38     python configure.py --prefix=$out --with-bzip2 --with-zlib ${extraConfigureFlags}${lib.optionalString stdenv.cc.isClang " --cc=clang"} ${lib.optionalString stdenv.hostPlatform.isAarch64 " --cpu=aarch64"}
39     runHook postConfigure
40   '';
42   enableParallelBuilding = true;
44   preInstall = ''
45     if [ -d src/scripts ]; then
46       patchShebangs src/scripts
47     fi
48   '';
50   postInstall = ''
51     cd "$out"/lib/pkgconfig
52     ln -s botan-*.pc botan.pc || true
53   '';
55   doCheck = true;
57   meta = with lib; {
58     description = "Cryptographic algorithms library";
59     maintainers = with maintainers; [ raskin thillux ];
60     platforms = platforms.unix;
61     license = licenses.bsd2;
62     inherit badPlatforms;
63     inherit knownVulnerabilities;
64   };
65   passthru.updateInfo.downloadPage = "http://files.randombit.net/botan/";