summary refs log tree commit diff
path: root/pkgs/tools/security/metasploit/default.nix
diff options
context:
space:
mode:
authorJörg Thalheim <joerg@thalheim.io>2017-05-14 21:52:58 +0100
committerJörg Thalheim <joerg@thalheim.io>2017-05-15 21:44:00 +0100
commitcf726bc31abac068180173b0de8a899c2f3edd40 (patch)
treef9519a640670bfd78f4156660955f51252ac288e /pkgs/tools/security/metasploit/default.nix
parentae9e73125f8ea5055ad8da63719831cab1c3e1f0 (diff)
downloadnixpkgs-cf726bc31abac068180173b0de8a899c2f3edd40.tar
nixpkgs-cf726bc31abac068180173b0de8a899c2f3edd40.tar.gz
nixpkgs-cf726bc31abac068180173b0de8a899c2f3edd40.tar.bz2
nixpkgs-cf726bc31abac068180173b0de8a899c2f3edd40.tar.lz
nixpkgs-cf726bc31abac068180173b0de8a899c2f3edd40.tar.xz
nixpkgs-cf726bc31abac068180173b0de8a899c2f3edd40.tar.zst
nixpkgs-cf726bc31abac068180173b0de8a899c2f3edd40.zip
metasploit: 3.3.1 -> 4.14.17
use bundler env now

fixes #8870
Diffstat (limited to 'pkgs/tools/security/metasploit/default.nix')
-rw-r--r--pkgs/tools/security/metasploit/default.nix51
1 files changed, 34 insertions, 17 deletions
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 41d9934191d..5e21996caac 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 ];
   };
 }