Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / by-name / tk / tkdiff / package.nix
blobb057a07e56c42b77fb6f76a5445650dc5f0e716a
1 { diffutils, fetchzip, lib, makeBinaryWrapper, stdenv, tk }:
3 stdenv.mkDerivation (finalAttrs: {
4   pname = "tkdiff";
5   version = "5.6";
7   src = fetchzip {
8     url = "mirror://sourceforge/tkdiff/tkdiff-${builtins.replaceStrings ["."] ["-"] finalAttrs.version}.zip";
9     hash = "sha256-EpbIdjsejkkTaSpoZRM5AHz0r1Cio+YzRryK0BoghBk=";
10   };
12   patches = [
13     # fix regression: allow /dev/null again. eg: "tkdiff /dev/null file"
14     # svn diff --git -r188:189 https://svn.code.sf.net/p/tkdiff/code/trunk
15     ./189.patch
17     # fix regression: trigger redraw when inline recursive diff requested
18     # svn diff --git -r193:194 https://svn.code.sf.net/p/tkdiff/code/trunk | \
19     #   sed -e '/^@@ -4545,7/,14d' -e '/^@@ -18063,7/,$d'
20     ./194.patch
21   ];
23   nativeBuildInputs = [ makeBinaryWrapper ];
25   installPhase = ''
26     runHook preInstall
28     install -Dm755 -t $out/bin tkdiff
29     wrapProgram $out/bin/tkdiff \
30       --prefix PATH : ${lib.makeBinPath [ diffutils tk ]}
32     runHook postInstall
33   '';
35   meta = {
36     description = "A graphical front end to the diff program";
37     homepage = "https://tkdiff.sourceforge.io/";
38     license = lib.licenses.gpl2Plus;
39     longDescription = ''
40       TkDiff is a graphical front end to the diff program. It provides a
41       side-by-side view of the differences between two text files, along
42       with several innovative features such as diff bookmarks, a graphical
43       map of differences for quick navigation, and a facility for slicing
44       diff regions to achieve exactly the merge output desired.
45     '';
46     mainProgram = "tkdiff";
47     maintainers = with lib.maintainers; [ mikaelfangel ];
48     platforms = tk.meta.platforms;
49   };