diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libpar2')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libpar2/default.nix | 25 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libpar2/libpar2-0.4-external-verification.patch | 16 |
2 files changed, 41 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libpar2/default.nix b/nixpkgs/pkgs/development/libraries/libpar2/default.nix new file mode 100644 index 000000000000..772f3ff719d5 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libpar2/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchurl, pkg-config, libsigcxx }: + +stdenv.mkDerivation rec { + pname = "libpar2"; + version = "0.4"; + + src = fetchurl { + url = "https://launchpad.net/libpar2/trunk/${version}/+download/${pname}-${version}.tar.gz"; + sha256 = "1m4ncws1h03zq7zyqbaymvjzzbh1d3lc4wb1aksrdf0ync76yv9i"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libsigcxx ]; + + patches = [ ./libpar2-0.4-external-verification.patch ]; + + CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11"; + + meta = { + homepage = "https://parchive.sourceforge.net/"; + license = lib.licenses.gpl2Plus; + description = "A library for using Parchives (parity archive volume sets)"; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libpar2/libpar2-0.4-external-verification.patch b/nixpkgs/pkgs/development/libraries/libpar2/libpar2-0.4-external-verification.patch new file mode 100644 index 000000000000..74879c4fe9b8 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libpar2/libpar2-0.4-external-verification.patch @@ -0,0 +1,16 @@ +diff -aud -U 5 libpar2-0.4-original/par2repairer.h libpar2-0.4-patched/par2repairer.h +--- libpar2-0.4-original/par2repairer.h 2013-07-18 15:03:10.000000000 +0200 ++++ libpar2-0.4-patched/par2repairer.h 2014-08-06 15:52:59.000000000 +0200 +@@ -94,11 +94,11 @@ + // Perform a sliding window scan of the DiskFile looking for blocks of data that + // might belong to any of the source files (for which a verification packet was + // available). If a block of data might be from more than one source file, prefer + // the one specified by the "sourcefile" parameter. If the first data block + // found is for a different source file then "sourcefile" is changed accordingly. +- bool ScanDataFile(DiskFile *diskfile, // [in] The file being scanned ++ virtual bool ScanDataFile(DiskFile *diskfile, // [in] The file being scanned + Par2RepairerSourceFile* &sourcefile, // [in/out] The source file matched + MatchType &matchtype, // [out] The type of match + MD5Hash &hashfull, // [out] The full hash of the file + MD5Hash &hash16k, // [out] The hash of the first 16k + u32 &count); // [out] The number of blocks found |