From b6c830d2fe820f8c632314c409e1d1fdb68c3b38 Mon Sep 17 00:00:00 2001 From: c0bw3b Date: Fri, 16 Nov 2018 00:01:19 +0100 Subject: procdump: init at 1.0.1 --- pkgs/os-specific/linux/procdump/default.nix | 48 +++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 50 insertions(+) create mode 100644 pkgs/os-specific/linux/procdump/default.nix diff --git a/pkgs/os-specific/linux/procdump/default.nix b/pkgs/os-specific/linux/procdump/default.nix new file mode 100644 index 00000000000..aa7d0ec4604 --- /dev/null +++ b/pkgs/os-specific/linux/procdump/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, fetchpatch, bash, coreutils, gdb, zlib }: + +stdenv.mkDerivation rec { + name = "procdump-${version}"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "Microsoft"; + repo = "ProcDump-for-Linux"; + rev = version; + sha256 = "1lkm05hq4hl1vadj9ifm18hi7cbf5045xlfxdfbrpsl6kxgfwcc4"; + }; + + nativeBuildInputs = [ zlib ]; + buildInputs = [ bash coreutils gdb ]; + + patches = [ + # Fix name conflict when built with musl + # TODO: check if fixed upstream https://github.com/Microsoft/ProcDump-for-Linux/pull/50 + (fetchpatch { + url = "https://github.com/Microsoft/ProcDump-for-Linux/commit/1b7b50b910f20b463fb628c8213663c8a8d11d0d.patch"; + sha256 = "0h0dj3gi6hw1wdpc0ih9s4kkagv0d9jzrg602cr85r2z19lmb7yk"; + }) + ]; + + postPatch = '' + substituteInPlace src/CoreDumpWriter.c \ + --replace '"gcore ' '"${gdb}/bin/gcore ' \ + --replace '"rm ' '"${coreutils}/bin/rm ' \ + --replace '/bin/bash' '${bash}/bin/bash' + ''; + + makeFlags = [ + "DESTDIR=$(out)" + "INSTALLDIR=/bin" + "MANDIR=/share/man/man1" + ]; + + doCheck = false; # needs root + + meta = with stdenv.lib; { + description = "A Linux version of the ProcDump Sysinternals tool"; + homepage = https://github.com/Microsoft/ProcDump-for-Linux; + license = licenses.mit; + maintainers = with maintainers; [ c0bw3b ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 42da2b7d712..76dea34f973 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14884,6 +14884,8 @@ with pkgs; procps = if stdenv.isLinux then callPackage ../os-specific/linux/procps-ng { } else unixtools.procps; + procdump = callPackage ../os-specific/linux/procdump { }; + qemu_kvm = lowPrio (qemu.override { hostCpuOnly = true; }); # See `xenPackages` source for explanations. -- cgit 1.4.1