diff --git a/pkgs/by-name/re/restinio/package.nix b/pkgs/by-name/re/restinio/package.nix new file mode 100644 index 000000000000..ad892070b2f0 --- /dev/null +++ b/pkgs/by-name/re/restinio/package.nix @@ -0,0 +1,102 @@ +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + asio, + boost, + expected-lite, + fmt, + llhttp, + openssl, + pcre2, + zlib, + catch2_3, + # Build with the asio library bundled in boost instead of the standalone asio package. + with_boost_asio ? false, +}: + +assert with_boost_asio -> boost != null; +assert !with_boost_asio -> asio != null; + +stdenv.mkDerivation (finalAttrs: { + pname = "restinio"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "Stiffstream"; + repo = "restinio"; + rev = "v.${finalAttrs.version}"; + hash = "sha256-XodG+dVW4iBgFx0Aq0+/pZyCLyqTBtW7e9r69y176Ro="; + }; + + patches = let + useCommit = {id, name, hash}: + fetchpatch { + inherit name hash; + url = "https://github.com/Stiffstream/restinio/commit/${id}.patch"; + }; + in [ + (useCommit { + id = "57e6ae3f73a03a5120feb80a7bb5dca27179fa38"; + name = "restinio-unvendor-catch2_part1.patch"; + hash = "sha256-2Htt9WTP6nrh+1y7y2xleFj568IpnSEn9Qhb1ObLam8="; + }) + (useCommit { + id = "0060e493b99f03c38dda519763f6d6701bc18112"; + name = "restinio-unvendor-catch2_part2.patch"; + hash = "sha256-Eg/VNxPwNtEYmalP5myn+QvqwU6wln9v0vxbRelRHA8="; + }) + (useCommit { + id = "05bea25f82917602a49b72b8ea10eeb43984762f"; + name = "restinio-unvendor-catch2_part3.patch"; + hash = "sha256-fA+U/Y7FyrxDRiWSVXCy9dMF4gmfDLag7gBWoY74In0="; + }) + ]; + + strictDeps = true; + + nativeBuildInputs = [ cmake ]; + + propagatedBuildInputs = [ + expected-lite + fmt + llhttp + openssl + pcre2 + zlib + ] ++ (if with_boost_asio then [ + boost + ] else [ + asio + ]); + + checkInputs = [ + catch2_3 + ]; + + cmakeDir = "../dev"; + cmakeFlags = [ + "-DRESTINIO_TEST=ON" + "-DRESTINIO_SAMPLE=OFF" + "-DRESTINIO_BENCHMARK=OFF" + "-DRESTINIO_WITH_SOBJECTIZER=OFF" + "-DRESTINIO_ASIO_SOURCE=${if with_boost_asio then "boost" else "standalone"}" + "-DRESTINIO_DEP_EXPECTED_LITE=find" + "-DRESTINIO_DEP_FMT=find" + "-DRESTINIO_DEP_LLHTTP=find" + "-DRESTINIO_DEP_CATCH2=find" + ]; + + doCheck = true; + enableParallelChecking = false; + + meta = with lib; { + description = "Cross-platform, efficient, customizable, and robust asynchronous HTTP(S)/WebSocket server C++ library"; + homepage = "https://github.com/Stiffstream/restinio"; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ tobim ]; + }; +}) diff --git a/pkgs/development/libraries/restinio/default.nix b/pkgs/development/libraries/restinio/default.nix deleted file mode 100644 index 9472bd0a554e..000000000000 --- a/pkgs/development/libraries/restinio/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenvNoCC, fetchurl }: - -stdenvNoCC.mkDerivation rec { - pname = "restinio"; - version = "0.6.19"; - - src = fetchurl { - url = "https://github.com/Stiffstream/restinio/releases/download/v.${version}/${pname}-${version}.tar.bz2"; - hash = "sha256-fyHuvrlm4XDWq1TpsZiskn1DkJASFzngN8D6O7NnskA="; - }; - - sourceRoot = "."; - - installPhase = '' - runHook preInstall - - mkdir -p $out/include - mv restinio-*/dev/restinio $out/include - - runHook postInstall - ''; - - meta = with lib; { - description = "Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library"; - homepage = "https://github.com/Stiffstream/restinio"; - license = licenses.bsd3; - platforms = platforms.all; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b36b4132b3c2..47d842460f08 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24658,8 +24658,6 @@ with pkgs; resolv_wrapper = callPackage ../development/libraries/resolv_wrapper { }; - restinio = callPackage ../development/libraries/restinio { }; - restish = callPackage ../tools/networking/restish { }; rhino = callPackage ../development/libraries/java/rhino {