nixpkgs/pkgs/tools/system/ddrescue/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

52 lines
1.7 KiB
Nix

{ lib, stdenv
, fetchurl, lzip
}:
stdenv.mkDerivation rec {
name = "ddrescue-1.25";
src = fetchurl {
url = "mirror://gnu/ddrescue/${name}.tar.lz";
sha256 = "0qqh38izl5ppap9a5izf3hijh94k65s3zbfkczd4b7x04syqwlyf";
};
nativeBuildInputs = [ lzip ];
doCheck = true; # not cross;
configureFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
meta = with lib; {
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 = "https://www.gnu.org/software/ddrescue/ddrescue.html";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [ domenkozar fpletz ];
};
}