diff --git a/pkgs/development/libraries/hyperscan/default.nix b/pkgs/development/libraries/hyperscan/default.nix index 53a3210caca..bc0ce15a083 100644 --- a/pkgs/development/libraries/hyperscan/default.nix +++ b/pkgs/development/libraries/hyperscan/default.nix @@ -1,5 +1,7 @@ -{ lib, stdenv, fetchFromGitHub, cmake, ragel, python27 +{ stdenv, fetchFromGitHub, cmake, ragel, python3 +, coreutils, gnused, utillinux , boost +, withStatic ? false # build only shared libs by default, build static+shared if true }: # NOTICE: pkgconfig, pcap and pcre intentionally omitted from build inputs @@ -8,45 +10,41 @@ # I not see any reason (for now) to backport 8.41. stdenv.mkDerivation rec { - name = "${pname}-${version}"; pname = "hyperscan"; - version = "5.1.0"; + version = "5.1.1"; src = fetchFromGitHub { owner = "intel"; - repo = "hyperscan"; - sha256 = "0r2c7s7alnq14yhbfhpkq6m28a3pyfqd427115k0754afxi82vbq"; + repo = pname; + sha256 = "11adkz5ln2d2jywwlmixfnwqp5wxskq1104hmmcpws590lhkjv6j"; rev = "v${version}"; }; outputs = [ "out" "dev" ]; buildInputs = [ boost ]; - nativeBuildInputs = [ cmake ragel python27 ]; + nativeBuildInputs = [ + cmake ragel python3 + # Consider simply using busybox for these + # Need at least: rev, sed, cut, nm + coreutils gnused utillinux + ]; cmakeFlags = [ "-DFAT_RUNTIME=ON" "-DBUILD_AVX512=ON" - "-DBUILD_STATIC_AND_SHARED=ON" - ]; + ] + ++ stdenv.lib.optional (withStatic) "-DBUILD_STATIC_AND_SHARED=ON" + ++ stdenv.lib.optional (!withStatic) "-DBUILD_SHARED_LIBS=ON"; - prePatch = '' + postPatch = '' sed -i '/examples/d' CMakeLists.txt + substituteInPlace libhs.pc.in \ + --replace "libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@" "libdir=@CMAKE_INSTALL_LIBDIR@" \ + --replace "includedir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@" "includedir=@CMAKE_INSTALL_INCLUDEDIR@" ''; - postInstall = '' - mkdir -p $dev/lib - mv $out/lib/*.a $dev/lib/ - ln -sf $out/lib/libhs.so $dev/lib/ - ln -sf $out/lib/libhs_runtime.so $dev/lib/ - ''; - - postFixup = '' - sed -i "s,$out/include,$dev/include," $dev/lib/pkgconfig/libhs.pc - sed -i "s,$out/lib,$dev/lib," $dev/lib/pkgconfig/libhs.pc - ''; - - meta = { + meta = with stdenv.lib; { description = "High-performance multiple regex matching library"; longDescription = '' Hyperscan is a high-performance multiple regex matching library. @@ -61,9 +59,9 @@ stdenv.mkDerivation rec { Hyperscan is typically used in a DPI library stack. ''; - homepage = https://www.hyperscan.io/; - maintainers = with lib.maintainers; [ avnik ]; - platforms = [ "x86_64-linux" "x86_64-darwin" ]; - license = lib.licenses.bsd3; + homepage = "https://www.hyperscan.io/"; + maintainers = with maintainers; [ avnik ]; + platforms = [ "x86_64-linux" ]; # can't find nm on darwin ; might build on aarch64 but untested + license = licenses.bsd3; }; }