diff options
author | Peder Bergebakken Sundt <pbsds@hotmail.com> | 2023-11-30 18:49:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-30 18:49:10 +0100 |
commit | 9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f (patch) | |
tree | 547cfb55f3a19c8b6e102021b587bf3a7f61179a | |
parent | f920fac837d501baf7e042f83550aceebb1f846f (diff) | |
parent | fd304c14596406f5daa11ff1be92eb514d60040f (diff) | |
download | nixlib-9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f.tar nixlib-9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f.tar.gz nixlib-9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f.tar.bz2 nixlib-9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f.tar.lz nixlib-9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f.tar.xz nixlib-9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f.tar.zst nixlib-9b11307f42bb14d8f3ba50eb8bd80ab7dbbbec9f.zip |
Merge pull request #260869 from OPNA2608/init/lomiri/net-cpp
net-cpp: init at 3.1.0
-rw-r--r-- | pkgs/by-name/ne/net-cpp/package.nix | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/pkgs/by-name/ne/net-cpp/package.nix b/pkgs/by-name/ne/net-cpp/package.nix new file mode 100644 index 000000000000..d123e5bea2ec --- /dev/null +++ b/pkgs/by-name/ne/net-cpp/package.nix @@ -0,0 +1,124 @@ +{ stdenv +, lib +, fetchFromGitLab +, fetchpatch +, gitUpdater +, testers +, boost +, cmake +, curl +, doxygen +, graphviz +, gtest +, jsoncpp +, lomiri +, pkg-config +, process-cpp +, properties-cpp +, python3 +}: + +let + pythonEnv = python3.withPackages (ps: with ps; [ + httpbin + ]); +in +stdenv.mkDerivation (finalAttrs: { + pname = "net-cpp"; + version = "3.1.0"; + + src = fetchFromGitLab { + owner = "ubports"; + repo = "development/core/lib-cpp/net-cpp"; + rev = finalAttrs.version; + hash = "sha256-qXKuFLmtPjdqTcBIM07xbRe3DnP7AzieCy7Tbjtl0uc="; + }; + + outputs = [ + "out" + "dev" + "doc" + ]; + + patches = [ + # Enable disabling of Werror + # Remove when version > 3.1.0 + (fetchpatch { + name = "0001-net-cpp-Add-ENABLE_WERROR-option.patch"; + url = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/commit/0945180aa6dd38245688d5ebc11951b272e93dc4.patch"; + hash = "sha256-91YuEgV+Q9INN4BJXYwWgKUNHHtUYz3CG+ROTy24GIE="; + }) + + # Enable opting out of tests + # https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/merge_requests/14 + (fetchpatch { + name = "0002-net-cpp-Make-tests-optional.patch"; + url = "https://gitlab.com/OPNA2608/net-cpp/-/commit/cfbcd55446a4224a4c913ead3a370cd56d07a71b.patch"; + hash = "sha256-kt48txzmWNXyxvx3DWAJl7I90c+o3KlgveNQjPkhfxA="; + }) + + # Be more lenient with how quickly HTTP test server must be up, for slower hardware / archs + (fetchpatch { + url = "https://salsa.debian.org/ubports-team/net-cpp/-/raw/941d9eceaa66a06eabb1eb79554548b47d4a60ab/debian/patches/1007_wait-for-flask.patch"; + hash = "sha256-nsGkZBuqahsg70PLUxn5EluDjmfZ0/wSnOYimfAI4ag="; + }) + ]; + + postPatch = lib.optionalString finalAttrs.doCheck '' + # Use wrapped python. Removing just the /usr/bin doesn't seem to work? + substituteInPlace tests/httpbin.h.in \ + --replace '/usr/bin/python3' '${lib.getExe pythonEnv}' + ''; + + strictDeps = true; + + nativeBuildInputs = [ + cmake + doxygen + graphviz + ]; + + buildInputs = [ + boost + curl + ]; + + nativeCheckInputs = [ + pkg-config + pythonEnv + ]; + + checkInputs = [ + lomiri.cmake-extras + gtest + jsoncpp + process-cpp + properties-cpp + ]; + + cmakeFlags = [ + # https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/issues/4 + "-DENABLE_WERROR=OFF" + ]; + + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; + + # Tests start HTTP server in separate process with fixed URL, parallelism breaks things + enableParallelChecking = false; + + passthru = { + tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + updateScript = gitUpdater { }; + }; + + meta = with lib; { + description = "Simple yet beautiful networking API for C++11"; + homepage = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp"; + license = licenses.lgpl3Only; + maintainers = teams.lomiri.members; + platforms = platforms.linux; + pkgConfigModules = [ + "net-cpp" + ]; + }; +}) |