From cb77f7e227dd0953beceeebbc8f4842c51e389be Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Thu, 27 Jun 2019 03:16:46 -0400 Subject: exiv2: 0.26.2018.12.30 -> 0.27.1 Also run tests and remove additionally installed stuff. Co-authored-by: periklis Co-authored-by: vcunat --- pkgs/development/libraries/exiv2/default.nix | 73 +++++++++++++++++++++++----- 1 file changed, 62 insertions(+), 11 deletions(-) (limited to 'pkgs/development/libraries/exiv2/default.nix') diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix index d3095099d3c..c37bacefcab 100644 --- a/pkgs/development/libraries/exiv2/default.nix +++ b/pkgs/development/libraries/exiv2/default.nix @@ -1,28 +1,79 @@ -{ stdenv, fetchFromGitHub, zlib, expat, gettext -, autoconf }: +{ stdenv +, fetchFromGitHub +, zlib +, expat +, cmake +, which +, libxml2 +, python3 +, gettext +}: stdenv.mkDerivation rec { - name = "exiv2-0.26.2018.12.30"; + pname = "exiv2"; + version = "0.27.1"; - #url = "https://www.exiv2.org/builds/${name}-trunk.tar.gz"; src = fetchFromGitHub rec { owner = "exiv2"; repo = "exiv2"; - rev = "f5d0b25"; # https://github.com/Exiv2/exiv2/commits/0.26 - sha256 = "1blaz3g8dlij881g14nv2nsgr984wy6ypbwgi2pixk978p0gm70i"; + rev = version; + sha256 = "0b5m921070fkyif0zlyb49gly3p6xd0hv1jyym4j25hx12gzbx0c"; }; - postPatch = "patchShebangs ./src/svn_version.sh"; - - preConfigure = "make config"; # needed because not using tarball + patches = [ + # https://github.com/Exiv2/exiv2/commit/aae88060ca85a483cd7fe791ba116c04d96c0bf9#comments + ./fix-cmake.patch + ]; outputs = [ "out" "dev" ]; nativeBuildInputs = [ + cmake gettext - autoconf # needed because not using tarball ]; - propagatedBuildInputs = [ zlib expat ]; + + propagatedBuildInputs = [ + expat + zlib + ]; + + checkInputs = [ + libxml2.bin + python3 + which + ]; + + doCheck = stdenv.isLinux; + + # Test setup found by inspecting ${src}/.travis/run.sh; problems without cmake. + checkTarget = "tests"; + + preCheck = '' + patchShebangs ../test/ + mkdir ../test/tmp + export LD_LIBRARY_PATH="$(realpath ../build/lib)" + + # Fix tests on Aarch64 + ${stdenv.lib.optionalString stdenv.isAarch64 '' + rm -f ../tests/bugfixes/github/test_CVE_2018_12265.py + ''} + ''; + + postCheck = '' + (cd ../tests/ && python3 runner.py) + ''; + + # With cmake we have to enable samples or there won't be + # a tests target. This removes them. + postInstall = '' + ( cd "$out/bin" + mv exiv2 .exiv2 + rm * + mv .exiv2 exiv2 + ) + ''; + + enableParallelBuilding = true; meta = with stdenv.lib; { homepage = https://www.exiv2.org/; -- cgit 1.4.1