diff --git a/pkgs/tools/misc/ncdu_2/c-import-order.patch b/pkgs/tools/misc/ncdu_2/c-import-order.patch new file mode 100644 index 0000000000000..a094f3237ad6b --- /dev/null +++ b/pkgs/tools/misc/ncdu_2/c-import-order.patch @@ -0,0 +1,17 @@ +diff --git a/src/ui.zig b/src/ui.zig +index 8401910..50171a7 100644 +--- a/src/ui.zig ++++ b/src/ui.zig +@@ -8,11 +8,11 @@ const main = @import("main.zig"); + const util = @import("util.zig"); + + pub const c = @cImport({ ++ @cDefine("_XOPEN_SOURCE", "1"); + @cInclude("stdio.h"); + @cInclude("string.h"); + @cInclude("curses.h"); + @cInclude("time.h"); +- @cDefine("_X_OPEN_SOURCE", "1"); + @cInclude("wchar.h"); + @cInclude("locale.h"); + }); diff --git a/pkgs/tools/misc/ncdu_2/default.nix b/pkgs/tools/misc/ncdu_2/default.nix new file mode 100644 index 0000000000000..a703cf3eca6c2 --- /dev/null +++ b/pkgs/tools/misc/ncdu_2/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, fetchpatch, zig, ncurses }: + +stdenv.mkDerivation rec { + pname = "ncdu"; + version = "2.0"; + + src = fetchurl { + url = "https://dev.yorhel.nl/download/${pname}-${version}.tar.gz"; + sha256 = "sha256-Zs2mgEdnsukbeM/cqCX5/a9qCkxuQAYloBrVWVQYR8w="; + }; + + patches = [ + ./c-import-order.patch # https://code.blicky.net/yorhel/ncdu/issues/183 + ]; + + XDG_CACHE_HOME="Cache"; # FIXME This should be set in stdenv + + nativeBuildInputs = [ + zig + ]; + + buildInputs = [ ncurses ]; + + PREFIX = placeholder "out"; + + meta = with lib; { + description = "Disk usage analyzer with an ncurses interface"; + homepage = "https://dev.yorhel.nl/ncdu"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ pSub SuperSandro2000 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c5312c9877277..1c937d8a0575b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -28170,6 +28170,7 @@ with pkgs; netcoredbg = callPackage ../development/tools/misc/netcoredbg { }; ncdu = callPackage ../tools/misc/ncdu { }; + ncdu_2 = callPackage ../tools/misc/ncdu_2 { }; ncdc = callPackage ../applications/networking/p2p/ncdc { };