diff --git a/pkgs/tools/networking/davix/default.nix b/pkgs/tools/networking/davix/default.nix index d9f368455594..1cdb5677eecd 100644 --- a/pkgs/tools/networking/davix/default.nix +++ b/pkgs/tools/networking/davix/default.nix @@ -1,19 +1,67 @@ -{ lib, stdenv, fetchurl, cmake, pkg-config, openssl, libxml2, boost, python3, libuuid }: +{ lib +, stdenv +, fetchurl +, cmake +, pkg-config +, openssl +, libxml2 +, boost +, python3 +, libuuid +, curl +, gsoap +, enableTools ? true + # Build the bundled libcurl + # and, if defaultToLibCurl, + # use instead of an external one +, useEmbeddedLibcurl ? 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.7.6"; + version = "0.8.0"; pname = "davix"; nativeBuildInputs = [ cmake pkg-config python3 ]; - buildInputs = [ openssl libxml2 boost libuuid ]; + buildInputs = [ + openssl + libxml2 + boost + libuuid + ] ++ lib.optional (defaultToLibcurl && !useEmbeddedLibcurl) curl + ++ 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_7_6 + # https://github.com/cern-fts/davix/releases/tag/R_0_8_0 src = fetchurl { url = "https://github.com/cern-fts/${pname}/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.gz"; - sha256 = "0wq66spnr616cns72f9dvr2xfvkdvfqqmc6d7dx29fpp57zzvrx2"; + sha256 = "LxCNoECKg/tbnwxoFQ02C6cz5LOg/imNRbDTLSircSQ="; }; + 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=${boolToUpper useEmbeddedLibcurl}" + "-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"; @@ -22,10 +70,10 @@ stdenv.mkDerivation rec { operations with Http based protocols (WebDav, Amazon S3, ...). Davix provides an API and a set of command line tools"; - license = licenses.lgpl2Plus; - homepage = "http://dmc.web.cern.ch/projects/davix/home"; - maintainers = [ maintainers.adev ]; - platforms = platforms.all; + license = licenses.lgpl2Plus; + homepage = "http://dmc.web.cern.ch/projects/davix/home"; + changelog = "https://github.com/cern-fts/davix/blob/devel/RELEASE-NOTES.md"; + maintainers = with maintainers; [ adev ]; + platforms = platforms.all; }; } - diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f0ce26d81c31..b277e1a7ed97 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3734,6 +3734,8 @@ with pkgs; davix = callPackage ../tools/networking/davix { }; + davix-copy = appendToName "copy" (davix.override { enableThirdPartyCopy = true; }); + cantata = libsForQt5.callPackage ../applications/audio/cantata { }; cantoolz = python3Packages.callPackage ../tools/networking/cantoolz { };