From 977c8e673c4938fff42b24d80f724e67c6202f4e Mon Sep 17 00:00:00 2001 From: gnidorah Date: Sun, 8 Oct 2017 09:03:54 +0300 Subject: [PATCH] hotpatch: init at 0.2 --- .../libraries/hotpatch/default.nix | 37 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/development/libraries/hotpatch/default.nix diff --git a/pkgs/development/libraries/hotpatch/default.nix b/pkgs/development/libraries/hotpatch/default.nix new file mode 100644 index 00000000000..df3581cc809 --- /dev/null +++ b/pkgs/development/libraries/hotpatch/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchFromGitHub, cmake }: + +stdenv.mkDerivation rec { + name = "hotpatch-0.2"; + + src = fetchFromGitHub { + owner = "vikasnkumar"; + repo = "hotpatch"; + rev = "4b65e3f275739ea5aa798d4ad083c4cb10e29149"; + sha256 = "169vdh55wsbn6fl58lpzqx64v6ifzh7krykav33x1d9hsk98qjqh"; + }; + + enableParallelBuilding = true; + doCheck = true; + + nativeBuildInputs = [ cmake ]; + + preConfigure = '' + substituteInPlace test/loader.c \ + --replace \"/lib64/ld-linux-x86-64.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --replace \"/lib/ld-linux-x86-64.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --replace \"/lib/ld-linux.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --replace \"/lib32/ld-linux.so.2 \""$(cat $NIX_CC/nix-support/dynamic-linker)" + ''; + + checkPhase = '' + LD_LIBRARY_PATH=$(pwd)/src make test + ''; + + meta = with stdenv.lib; { + description = "Hot patching executables on Linux using .so file injection"; + homepage = src.meta.homepage; + license = licenses.bsd3; + maintainers = [ maintainers.gnidorah ]; + platforms = ["i686-linux" "x86_64-linux"]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6d017f39cb5..43a1acd7685 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2593,6 +2593,8 @@ with pkgs; host = bind.host; + hotpatch = callPackage ../development/libraries/hotpatch { }; + hotspot = libsForQt56.callPackage ../development/tools/analysis/hotspot { }; hping = callPackage ../tools/networking/hping { };