python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / security / metasploit / default.nix
blob6b3578105cf7b6d500b30236c49ca51978d575a8
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , makeWrapper
5 , ruby
6 , bundlerEnv
7 , python3
8 }:
10 let
11   env = bundlerEnv {
12     inherit ruby;
13     name = "metasploit-bundler-env";
14     gemdir = ./.;
15   };
16 in stdenv.mkDerivation rec {
17   pname = "metasploit-framework";
18   version = "6.2.25";
20   src = fetchFromGitHub {
21     owner = "rapid7";
22     repo = "metasploit-framework";
23     rev = version;
24     sha256 = "sha256-lrooEMmSu7pgG3Nm35G385ipdc4WdlM696Dd5KdwVJ0=";
25   };
27   nativeBuildInputs = [ makeWrapper ];
28   buildInputs = [ (python3.withPackages (ps: [ ps.requests ])) ];
30   dontPatchELF = true; # stay away from exploit executables
32   installPhase = ''
33     mkdir -p $out/{bin,share/msf}
35     cp -r * $out/share/msf
37     grep -rl "^#\!.*python2$" $out/share/msf | xargs -d '\n' rm
39     (
40       cd $out/share/msf/
41       for i in msf*; do
42         makeWrapper ${env}/bin/bundle $out/bin/$i \
43           --add-flags "exec ${ruby}/bin/ruby $out/share/msf/$i"
44       done
45     )
47     makeWrapper ${env}/bin/bundle $out/bin/msf-pattern_create \
48       --add-flags "exec ${ruby}/bin/ruby $out/share/msf/tools/exploit/pattern_create.rb"
50     makeWrapper ${env}/bin/bundle $out/bin/msf-pattern_offset \
51       --add-flags "exec ${ruby}/bin/ruby $out/share/msf/tools/exploit/pattern_offset.rb"
52   '';
54   # run with: nix-shell maintainers/scripts/update.nix --argstr path metasploit
55   passthru.updateScript = ./update.sh;
57   meta = with lib; {
58     description = "Metasploit Framework - a collection of exploits";
59     homepage = "https://docs.metasploit.com/";
60     platforms = platforms.unix;
61     license = licenses.bsd3;
62     maintainers = with maintainers; [ fab makefu ];
63     mainProgram = "msfconsole";
64   };