diff options
Diffstat (limited to 'pkgs/tools/security/metasploit/default.nix')
-rw-r--r-- | pkgs/tools/security/metasploit/default.nix | 51 |
1 files changed, 34 insertions, 17 deletions
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix index 41d9934191d7..5e21996caac8 100644 --- a/pkgs/tools/security/metasploit/default.nix +++ b/pkgs/tools/security/metasploit/default.nix @@ -1,34 +1,51 @@ -{ stdenv, fetchurl, makeWrapper, ruby }: - -stdenv.mkDerivation rec { +{ stdenv, fetchFromGitHub, makeWrapper, ruby, bundlerEnv, ncurses }: + +# Maintainer notes for updating: +# 1. increment version number in expression and in Gemfile +# 2. run $ nix-shell --command "bundler install && bundix" +# in metasploit in nixpkgs + +let + env = bundlerEnv { + inherit ruby; + name = "metasploit-bundler-env"; + gemdir = ./.; + }; +in stdenv.mkDerivation rec { name = "metasploit-framework-${version}"; - version = "3.3.1"; + version = "4.14.17"; - src = fetchurl { - url = "http://downloads.metasploit.com/data/releases/archive/framework-${version}.tar.bz2"; - sha256 = "07clzw1zfnqjhyydsc4mza238isai58p7aygh653qxsqb9a0j7qw"; + src = fetchFromGitHub { + owner = "rapid7"; + repo = "metasploit-framework"; + rev = version; + sha256 = "0g666lxin9f0v9vhfh3s913ym8fnh32rpfl1rpj8d8n1azch5fn0"; }; - buildInputs = [makeWrapper]; + buildInputs = [ makeWrapper ]; + + dontPatchelf = true; # stay away from exploit executables installPhase = '' - mkdir -p $out/share/msf - mkdir -p $out/bin + mkdir -p $out/{bin,share/msf} cp -r * $out/share/msf for i in $out/share/msf/msf*; do - makeWrapper $i $out/bin/$(basename $i) --prefix RUBYLIB : $out/share/msf/lib + bin=$out/bin/$(basename $i) + cat > $bin <<EOF +#!/bin/sh -e +exec ${env}/bin/bundle exec ${ruby}/bin/ruby $i "\$@" +EOF + chmod +x $bin done ''; - postInstall = '' - patchShebangs $out/share/msf - ''; - - meta = { + meta = with stdenv.lib; { description = "Metasploit Framework - a collection of exploits"; homepage = https://github.com/rapid7/metasploit-framework/wiki; - platforms = stdenv.lib.platforms.unix; + platforms = platforms.unix; + license = licenses.bsd3; + maintainers = [ maintainers.makefu ]; }; } |