about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/exiv2
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-07-14 15:50:11 +0000
committerAlyssa Ross <hi@alyssa.is>2019-08-14 00:01:17 +0000
commit69a15dd2dc85051ba1436613805f9286850e0596 (patch)
treed53cec2bb5b8d07df1d1919b212cb2deb3628cd6 /nixpkgs/pkgs/development/libraries/exiv2
parent6941276da135c3eb3b50e0be33d92e7d01ccba9a (diff)
parentbeff2f8d75ef2c65017fb25e251337c6bb2e950d (diff)
downloadnixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar
nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.gz
nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.bz2
nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.lz
nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.xz
nixlib-69a15dd2dc85051ba1436613805f9286850e0596.tar.zst
nixlib-69a15dd2dc85051ba1436613805f9286850e0596.zip
Merge commit 'beff2f8d75ef2c65017fb25e251337c6bb2e950d'
v#	modified:   nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/exiv2')
-rw-r--r--nixpkgs/pkgs/development/libraries/exiv2/default.nix88
-rw-r--r--nixpkgs/pkgs/development/libraries/exiv2/fix-cmake.patch16
2 files changed, 93 insertions, 11 deletions
diff --git a/nixpkgs/pkgs/development/libraries/exiv2/default.nix b/nixpkgs/pkgs/development/libraries/exiv2/default.nix
index d3095099d3c1..9b05165e1b2b 100644
--- a/nixpkgs/pkgs/development/libraries/exiv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/exiv2/default.nix
@@ -1,28 +1,94 @@
-{ stdenv, fetchFromGitHub, zlib, expat, gettext
-, autoconf }:
+{ stdenv
+, fetchFromGitHub
+, zlib
+, expat
+, cmake
+, which
+, libxml2
+, python3
+, gettext
+, doxygen
+, graphviz
+, libxslt
+}:
 
 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";
+  patches = [
+    # https://github.com/Exiv2/exiv2/commit/aae88060ca85a483cd7fe791ba116c04d96c0bf9#comments
+    ./fix-cmake.patch
+  ];
 
-  preConfigure = "make config"; # needed because not using tarball
+  cmakeFlags = [
+    "-DEXIV2_BUILD_PO=ON"
+    "-DEXIV2_BUILD_DOC=ON"
+  ];
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "doc" "man" ];
 
   nativeBuildInputs = [
+    cmake
+    doxygen
     gettext
-    autoconf # needed because not using tarball
+    graphviz
+    libxslt
+  ];
+
+  propagatedBuildInputs = [
+    expat
+    zlib
+  ];
+
+  checkInputs = [
+    libxml2.bin
+    python3
+    which
+  ];
+
+  buildFlags = [
+    "doc"
   ];
-  propagatedBuildInputs = [ zlib expat ];
+
+  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/;
diff --git a/nixpkgs/pkgs/development/libraries/exiv2/fix-cmake.patch b/nixpkgs/pkgs/development/libraries/exiv2/fix-cmake.patch
new file mode 100644
index 000000000000..1e19aed8b904
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/exiv2/fix-cmake.patch
@@ -0,0 +1,16 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 34087004..41b3a068 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -239,9 +239,9 @@ install(FILES
+     ${CMAKE_BINARY_DIR}/exiv2lib_export.h
+     DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/exiv2)
+ 
+-install(EXPORT exiv2Config DESTINATION "${CMAKE_INSTALL_LIBDIR}/exiv2/cmake")
++install(EXPORT exiv2Config DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/exiv2")
+ 
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2ConfigVersion.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/exiv2/cmake")
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/exiv2ConfigVersion.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/exiv2")
+ 
+ # ******************************************************************************
+ # exiv2 application