diff --git a/pkgs/by-name/vi/visual-hexdiff/package.nix b/pkgs/by-name/vi/visual-hexdiff/package.nix new file mode 100644 index 0000000000000..d4665c986fac9 --- /dev/null +++ b/pkgs/by-name/vi/visual-hexdiff/package.nix @@ -0,0 +1,57 @@ +{ + stdenv, + lib, + fetchurl, + fetchpatch, + ncurses, +}: +stdenv.mkDerivation { + pname = "visual-hexdiff"; + version = "0.0.53"; + + src = fetchurl { + url = "mirror://ubuntu/pool/universe/h/hexdiff/hexdiff_0.0.53.orig.tar.gz"; + hash = "sha256-M1bmkW63pHlfl9zNWEq0EGN1rpVGo+BTUKM9ot4HWqo="; + }; + + patches = [ + # Some changes the debian/ubuntu developers made over the original source code + # See https://changelogs.ubuntu.com/changelogs/pool/universe/h/hexdiff/hexdiff_0.0.53-0ubuntu4/changelog + (fetchpatch { + url = "mirror://ubuntu/pool/universe/h/hexdiff/hexdiff_0.0.53-0ubuntu4.diff.gz"; + sha256 = "sha256-X5ONNp9jeACxsulyowDQJ6REX6bty6L4in0/+rq8Wz4="; + decode = "gunzip --stdout"; + name = "hexdiff_0.0.53-0ubuntu4.diff"; + stripLen = 1; + }) + ]; + + postPatch = + '' + # Fix compiler error that wants a string literal as format string for `wprintw` + substituteInPlace sel_file.c \ + --replace-fail 'wprintw(win, txt_aide_fs[foo]);' 'wprintw(win, "%s", txt_aide_fs[foo]);' + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + # Fix compiler error on Darwin: conflicting types for 'strdup' + substituteInPlace sel_file.c \ + --replace-fail 'char *strdup(char *);' ' ' + ''; + + buildInputs = [ ncurses ]; + + preInstall = '' + mkdir -p $out/bin/ + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Visual hexadecimal difference editor"; + homepage = "http://tboudet.free.fr/hexdiff/"; + license = licenses.wtfpl; + maintainers = with maintainers; [ erictapen ]; + mainProgram = "hexdiff"; + platforms = platforms.unix; + }; +}