vifm: 0.13 -> 0.14 (#380559)
[NixPkgs.git] / pkgs / by-name / dd / ddrescue / package.nix
blob0b44929e46b18f80ac78f5cd689422ff6b93b4a2
2   lib,
3   stdenv,
4   fetchurl,
5   lzip,
6 }:
8 stdenv.mkDerivation rec {
9   pname = "ddrescue";
10   version = "1.29";
12   src = fetchurl {
13     url = "mirror://gnu/ddrescue/ddrescue-${version}.tar.lz";
14     sha256 = "sha256-AaQUMnhTs5+6L9Ds4w977i6djI6OsxQxhSSt9aYAOaM=";
15   };
17   nativeBuildInputs = [ lzip ];
19   doCheck = true; # not cross;
20   configureFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
22   meta = with lib; {
23     description = "GNU ddrescue, a data recovery tool";
25     longDescription = ''
26       GNU ddrescue is a data recovery tool.  It copies data from one file
27       or block device (hard disc, cdrom, etc) to another, trying hard to
28       rescue data in case of read errors.
30       The basic operation of ddrescue is fully automatic.  That is, you
31       don't have to wait for an error, stop the program, read the log, run
32       it in reverse mode, etc.
34       If you use the logfile feature of ddrescue, the data is rescued very
35       efficiently (only the needed blocks are read).  Also you can
36       interrupt the rescue at any time and resume it later at the same
37       point.
39       Automatic merging of backups: If you have two or more damaged copies
40       of a file, cdrom, etc, and run ddrescue on all of them, one at a
41       time, with the same output file, you will probably obtain a complete
42       and error-free file.  This is so because the probability of having
43       damaged areas at the same places on different input files is very
44       low.  Using the logfile, only the needed blocks are read from the
45       second and successive copies.
46     '';
48     homepage = "https://www.gnu.org/software/ddrescue/ddrescue.html";
50     license = licenses.gpl3Plus;
52     platforms = platforms.all;
53     maintainers = with maintainers; [
54       domenkozar
55       fpletz
56     ];
57   };