2017-06-04 22:50:58 +01:00
|
|
|
{ stdenv
|
|
|
|
, fetchurl, lzip
|
|
|
|
, hostPlatform, buildPlatform
|
|
|
|
}:
|
|
|
|
|
|
|
|
let inherit (stdenv.lib) optionals; in
|
2009-11-18 09:39:59 +00:00
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2017-02-14 18:40:39 +00:00
|
|
|
name = "ddrescue-1.22";
|
2010-04-13 09:56:07 +01:00
|
|
|
|
2009-11-18 09:39:59 +00:00
|
|
|
src = fetchurl {
|
2014-03-06 14:22:37 +00:00
|
|
|
url = "mirror://gnu/ddrescue/${name}.tar.lz";
|
2017-02-14 18:40:39 +00:00
|
|
|
sha256 = "19qhx9ggkkjl0g3a88g501wmybkj1y4n5lm5kp0km0blh0p7p189";
|
2009-11-18 09:39:59 +00:00
|
|
|
};
|
|
|
|
|
2016-07-18 18:10:33 +01:00
|
|
|
nativeBuildInputs = [ lzip ];
|
2014-03-06 14:22:37 +00:00
|
|
|
|
2017-06-04 22:50:58 +01:00
|
|
|
doCheck = hostPlatform == buildPlatform;
|
2017-12-15 05:13:46 +00:00
|
|
|
configureFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
|
2017-06-04 22:50:58 +01:00
|
|
|
|
2014-08-10 20:05:41 +01:00
|
|
|
meta = with stdenv.lib; {
|
2010-04-13 09:56:07 +01:00
|
|
|
description = "GNU ddrescue, a data recovery tool";
|
|
|
|
|
|
|
|
longDescription =
|
|
|
|
'' GNU ddrescue is a data recovery tool. It copies data from one file
|
|
|
|
or block device (hard disc, cdrom, etc) to another, trying hard to
|
|
|
|
rescue data in case of read errors.
|
|
|
|
|
|
|
|
The basic operation of ddrescue is fully automatic. That is, you
|
|
|
|
don't have to wait for an error, stop the program, read the log, run
|
|
|
|
it in reverse mode, etc.
|
|
|
|
|
|
|
|
If you use the logfile feature of ddrescue, the data is rescued very
|
|
|
|
efficiently (only the needed blocks are read). Also you can
|
|
|
|
interrupt the rescue at any time and resume it later at the same
|
|
|
|
point.
|
|
|
|
|
|
|
|
Automatic merging of backups: If you have two or more damaged copies
|
|
|
|
of a file, cdrom, etc, and run ddrescue on all of them, one at a
|
|
|
|
time, with the same output file, you will probably obtain a complete
|
|
|
|
and error-free file. This is so because the probability of having
|
|
|
|
damaged areas at the same places on different input files is very
|
|
|
|
low. Using the logfile, only the needed blocks are read from the
|
|
|
|
second and successive copies.
|
|
|
|
'';
|
|
|
|
|
|
|
|
homepage = http://www.gnu.org/software/ddrescue/ddrescue.html;
|
|
|
|
|
2014-08-10 20:05:41 +01:00
|
|
|
license = licenses.gpl3Plus;
|
2010-04-13 09:56:07 +01:00
|
|
|
|
2014-08-10 20:05:41 +01:00
|
|
|
platforms = platforms.all;
|
2016-05-17 12:57:28 +01:00
|
|
|
maintainers = with maintainers; [ domenkozar fpletz ];
|
2009-11-18 09:39:59 +00:00
|
|
|
};
|
|
|
|
}
|