Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at flake-libs 46 lines 1.3 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5}: 6 7stdenv.mkDerivation rec { 8 pname = "gperf"; 9 version = "3.1"; 10 11 src = fetchurl { 12 url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; 13 sha256 = "1qispg6i508rq8pkajh26cznwimbnj06wq9sd85vg95v8nwld1aq"; 14 }; 15 16 patches = [ 17 # Clang 16 defaults to C++17, which does not allow `register` as a storage class specifier. 18 ./gperf-c++17-register-fix.patch 19 ]; 20 21 enableParallelBuilding = true; 22 23 meta = { 24 description = "Perfect hash function generator"; 25 26 longDescription = '' 27 GNU gperf is a perfect hash function generator. For a given 28 list of strings, it produces a hash function and hash table, in 29 form of C or C++ code, for looking up a value depending on the 30 input string. The hash function is perfect, which means that 31 the hash table has no collisions, and the hash table lookup 32 needs a single string comparison only. 33 34 GNU gperf is highly customizable. There are options for 35 generating C or C++ code, for emitting switch statements or 36 nested ifs instead of a hash table, and for tuning the algorithm 37 employed by gperf. 38 ''; 39 40 license = lib.licenses.gpl3Plus; 41 42 homepage = "https://www.gnu.org/software/gperf/"; 43 platforms = lib.platforms.unix; 44 mainProgram = "gperf"; 45 }; 46}