depot/third_party/nixpkgs/pkgs/tools/networking/davix/default.nix

90 lines
2.4 KiB
Nix

{
lib,
stdenv,
fetchurl,
cmake,
pkg-config,
openssl,
libxml2,
boost,
python3,
libuuid,
curl,
gsoap,
rapidjson,
Security,
enableTools ? true,
# Use libcurl instead of libneon
# Note that the libneon used is bundled in the project
# See https://github.com/cern-fts/davix/issues/23
defaultToLibcurl ? false,
enableIpv6 ? true,
enableTcpNodelay ? true,
# Build davix_copy.so
enableThirdPartyCopy ? false,
}:
let
boolToUpper = b: lib.toUpper (lib.boolToString b);
in
stdenv.mkDerivation rec {
version = "0.8.7";
pname = "davix" + lib.optionalString enableThirdPartyCopy "-copy";
nativeBuildInputs = [
cmake
pkg-config
python3
];
buildInputs =
[
boost
curl
libxml2
openssl
rapidjson
]
++ lib.optional stdenv.hostPlatform.isDarwin Security
++ lib.optional (!stdenv.hostPlatform.isDarwin) libuuid
++ lib.optional (enableThirdPartyCopy) gsoap;
# using the url below since the github release page states
# "please ignore the GitHub-generated tarballs, as they are incomplete"
# https://github.com/cern-fts/davix/releases/tag/R_0_8_0
src = fetchurl {
url = "https://github.com/cern-fts/davix/releases/download/R_${
lib.replaceStrings [ "." ] [ "_" ] version
}/davix-${version}.tar.gz";
sha256 = "sha256-eMJOFO3X5OVgOS1nFH7IZYwqoNNkBBW99rxROvz2leY=";
};
preConfigure = ''
find . -mindepth 1 -maxdepth 1 -type f -name "patch*.sh" -print0 | while IFS= read -r -d ''' file; do
patchShebangs "$file"
done
'';
cmakeFlags = [
"-DENABLE_TOOLS=${boolToUpper enableTools}"
"-DEMBEDDED_LIBCURL=OFF"
"-DLIBCURL_BACKEND_BY_DEFAULT=${boolToUpper defaultToLibcurl}"
"-DENABLE_IPV6=${boolToUpper enableIpv6}"
"-DENABLE_TCP_NODELAY=${boolToUpper enableTcpNodelay}"
"-DENABLE_THIRD_PARTY_COPY=${boolToUpper enableThirdPartyCopy}"
];
meta = with lib; {
description = "Toolkit for Http-based file management";
longDescription = "Davix is a toolkit designed for file
operations with Http based protocols (WebDav, Amazon S3, ...).
Davix provides an API and a set of command line tools";
license = licenses.lgpl2Plus;
homepage = "https://github.com/cern-fts/davix";
changelog = "https://github.com/cern-fts/davix/blob/R_${
lib.replaceStrings [ "." ] [ "_" ] version
}/RELEASE-NOTES.md";
maintainers = with maintainers; [ adev ];
platforms = platforms.all;
};
}