From 2dcb64eefab1e3841b98b8256a2685a4a80a1009 Mon Sep 17 00:00:00 2001 From: Markus Wamser Date: Thu, 19 May 2022 14:34:33 +0200 Subject: [PATCH] cpp-ipfs-api: 2017-01-04 -> 2022-01-30, unbreak build, rename to cpp-ipfs-client-api (#173197) Co-authored-by: Sandro --- .../libraries/cpp-ipfs-api/default.nix | 28 --------------- .../cpp-ipfs-http-client/default.nix | 35 +++++++++++++++++++ .../unvendor-nlohmann-json.patch | 27 ++++++++++++++ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 +- 5 files changed, 64 insertions(+), 29 deletions(-) delete mode 100644 pkgs/development/libraries/cpp-ipfs-api/default.nix create mode 100644 pkgs/development/libraries/cpp-ipfs-http-client/default.nix create mode 100644 pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch diff --git a/pkgs/development/libraries/cpp-ipfs-api/default.nix b/pkgs/development/libraries/cpp-ipfs-api/default.nix deleted file mode 100644 index 315a477e72a..00000000000 --- a/pkgs/development/libraries/cpp-ipfs-api/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, curl, cmake, nlohmann_json }: - -stdenv.mkDerivation { - pname = "cpp-ipfs-api"; - version = "2017-01-04"; - - src = fetchFromGitHub { - owner = "vasild"; - repo = "cpp-ipfs-api"; - rev = "96a890f4518665a56581a2a52311eaa65928eac8"; - sha256 = "1z6gbd7npg4pd9wmdyzcp9h12sg84d7a43c69pp4lzqkyqg8pz1g"; - }; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ curl ]; - propagatedBuildInputs = [ nlohmann_json ]; - - NIX_CFLAGS_COMPILE = [ - "-Wno-error=range-loop-construct" - ]; - - meta = with lib; { - description = "IPFS C++ API client library"; - homepage = "https://github.com/vasild/cpp-ipfs-api"; - license = licenses.mit; - platforms = platforms.all; - }; -} diff --git a/pkgs/development/libraries/cpp-ipfs-http-client/default.nix b/pkgs/development/libraries/cpp-ipfs-http-client/default.nix new file mode 100644 index 00000000000..44fcbe5463c --- /dev/null +++ b/pkgs/development/libraries/cpp-ipfs-http-client/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, curl, cmake, nlohmann_json }: + +stdenv.mkDerivation { + pname = "cpp-ipfs-http-client"; + version = "unstable-2022-01-30"; + + src = fetchFromGitHub { + owner = "vasild"; + repo = "cpp-ipfs-http-client"; + rev = "3cdfa7fc6326e49fc81b3c7ca43ce83bdccef6d9"; + sha256 = "sha256-/oyafnk4SbrvoCh90wkZXNBjknMKA6EEUoEGo/amLUo="; + }; + + patches = [ ./unvendor-nlohmann-json.patch ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace '# Fetch "JSON for Modern C++"' "include_directories(${nlohmann_json}/include)" + ''; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ curl ]; + propagatedBuildInputs = [ nlohmann_json ]; + + NIX_CFLAGS_COMPILE = [ + "-Wno-error=range-loop-construct" + ]; + + meta = with lib; { + description = "IPFS C++ API client library"; + homepage = "https://github.com/vasild/cpp-ipfs-http-client"; + license = licenses.mit; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; +} diff --git a/pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch b/pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch new file mode 100644 index 00000000000..e21b4e9a7a7 --- /dev/null +++ b/pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch @@ -0,0 +1,27 @@ +--- source/CMakeLists.txt ++++ source/CMakeLists.txt +@@ -56,11 +56,6 @@ target_include_directories(${IPFS_API_LIBNAME} + ) + + # Fetch "JSON for Modern C++" +-include(FetchContent) +-message(STATUS "Fetching nlohmann/JSON") +-# Retrieve Nlohmann JSON +-FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.10.5/json.tar.xz) +-FetchContent_MakeAvailable(json) + + # libcurl requires additional libs only for static Windows builds + if(WIN32) +@@ -71,12 +66,11 @@ set_target_properties(${IPFS_API_LIBNAME} PROPERTIES + SOVERSION ${PROJECT_VERSION_MAJOR} + VERSION ${PROJECT_VERSION} + ) +-target_link_libraries(${IPFS_API_LIBNAME} ${CURL_LIBRARIES} ${WINDOWS_CURL_LIBS} nlohmann_json::nlohmann_json) ++target_link_libraries(${IPFS_API_LIBNAME} ${CURL_LIBRARIES} ${WINDOWS_CURL_LIBS}) + if(NOT DISABLE_INSTALL) + install(TARGETS ${IPFS_API_LIBNAME} DESTINATION lib) + install(FILES include/ipfs/client.h DESTINATION include/ipfs) + install(FILES include/ipfs/http/transport.h DESTINATION include/ipfs/http) +- install(FILES ${json_SOURCE_DIR}/include/nlohmann/json.hpp DESTINATION include/nlohmann) + endif() + # Tests, use "CTEST_OUTPUT_ON_FAILURE=1 make test" to see output from failed tests diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eb5340740ef..b926e36bc9a 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -170,6 +170,7 @@ mapAliases ({ cifs_utils = throw "'cifs_utils' has been renamed to/replaced by 'cifs-utils'"; # Converted to throw 2022-02-22 cipherscan = throw "cipherscan was removed from nixpkgs, as it was unmaintained"; # added 2021-12-11 ckb = throw "'ckb' has been renamed to/replaced by 'ckb-next'"; # Converted to throw 2022-02-22 + cpp-ipfs-api = cpp-ipfs-http-client; # Project has been renamed. Added 2022-05-15 creddump = throw "creddump has been removed from nixpkgs as the upstream has abandoned the project"; # Added 2022-01-01 # these are for convenience, not for backward compat and shouldn't expire diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b8e46eeafce..0a6746b7c8c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16887,7 +16887,7 @@ with pkgs; cpp-hocon = callPackage ../development/libraries/cpp-hocon { }; - cpp-ipfs-api = callPackage ../development/libraries/cpp-ipfs-api { }; + cpp-ipfs-http-client = callPackage ../development/libraries/cpp-ipfs-http-client { }; cpp-netlib = callPackage ../development/libraries/cpp-netlib { boost = boost169; # fatal error: 'boost/asio/stream_socket_service.hpp' file not found