diff --git a/dev-ruby/metasploit-payloads/Manifest b/dev-ruby/metasploit-payloads/Manifest
index 3fb2e14b0..f11ac07e9 100644
--- a/dev-ruby/metasploit-payloads/Manifest
+++ b/dev-ruby/metasploit-payloads/Manifest
@@ -1,6 +1,6 @@
-DIST metasploit-payloads-1.2.32.gem 11548160 SHA256 2fc5c12db9fce964e0fa734ad1bcdf303cddcbaef22efb2672463560eef716b7 SHA512 785aaf345967f42dbb61ec13a5a562a9454fc80cba8a37674d7bf812b0097c3fc8b28f33fcb5089519f97574ade45d8d7639546c0436eea763d6b4efe401fb42 WHIRLPOOL 538b8e4d4b0f0cee912a21f7ad085ed158b92d0869c6c1c7210fabe77833b53375bb7e4a401ca1d6ff7101d4db9c79113d73265a7b1e6f289e6deb0da0e0d347
-DIST metasploit-payloads-1.2.37.gem 11979776 SHA256 8338af2d06e2d39319b9204b4446cfe7959dedca6406d83860a2c8f97aa51181 SHA512 5b9403ffcbc0705185d2aefc0f9f9be31720b634d83f1a8bf0eafdde398525b3b35f5daf30bd5930f545053d3a2b79bfe774971591ed3dcc37b8d4cbf5380dd8 WHIRLPOOL 9a00f40dbd859f60cf17115de0d2f51fcd9eaaab20b2c61e542f0d110ef290a2c09d1265f30bdc3705d5cc41c8f81070451574dd63093a317b5cf7c69c207a7c
-DIST metasploit-payloads-1.2.40.gem 11980800 SHA256 72392ee2057b92376dabbd18a3dceb01c39466769f71e3792223e634920102a0 SHA512 786247e141a98891b0329bbeb9aa62304988aa4ec67aff9cffe0d1da09c5ae31fe69a6862473b6e3959cf874988cf68c0d8160b439dd79658b6d4d6070d851ba WHIRLPOOL 56e92b088fde4c9aa7308748ce2d64750b354602f8293fb6e7e135525ac6b6502279e5ad87d2d7162baa0c3df38dbb50c81800cc42c744b455a74ae5651a8c55
-DIST metasploit-payloads-1.3.13.gem 11930112 SHA256 c65ca1000ac4019a3314c19ca858cc17e5b31c8db32a875bea5c978a1aafb8e8 SHA512 4f3eaf45f21579b53284853e835ee3a06ce5a67134991f50745df1d3df44df7e95f8531a447bb062e5086c2a5b2cab3fcabf7e800ae4584fb19b581e0293b955 WHIRLPOOL 135829f0b7cf3e1c1cc3fc97110965fe5240573ef3b7a5ede387ba77b938c122dcb18aeb9123c9f4c0ac4b523871fa1e7db863b7afccb31472cc607cf825e932
-DIST metasploit-payloads-1.3.25.gem 11934720 SHA256 7e89e57a16a58fe8b69583be19c27fa475ffb974861a50d83ab5b626ef7d541c SHA512 d176229c38172c0c5949f63b84501d3f2dca19f1bd0cc799eb964e5a508be6dd903f2b3a3328ede2e6b915399adf8b6b4fb6961c88152f0d7f0f19749caf4e1a WHIRLPOOL 634a1bb902137ba992acbe254544f3a74c2178f112c4f786ec72a9b3a2550d7284f43a4e983cda7ac9930a891de2468f8972d7d7e3b179af7ed6400941f254ff
-DIST metasploit-payloads-1.3.9.gem 11930112 SHA256 44d883f777f844a24928fb4934f5e3aac96e290e3364a8c19f0ab9a745713a1e SHA512 821c4e15572355f9df7e9eddd6eaadfc289a38d6e934d636d9182b189531f7c13df48c0830a29973f1496d3da22bfdc2fe66a391b5c90811444601cca3ce7a8a WHIRLPOOL de0b8098b0e056cc0cd74d63700fa25a88c20d14849cc7d84076d81f4417b68806b3e0a4d0dece62db5d4494871925c64e78423662427bf0c369d9ee01ba6eaf
+DIST metasploit-payloads-1.2.32.gem 11548160 BLAKE2B c9641ed120d5fad970e2c5534b5c9e79711d525e9d7fb39d18258fcba42f6b54f5e4dcdbbf600d843181e391fa0c3a55b5004389bf8bfe9ff5ed29e1a83c5aae SHA512 785aaf345967f42dbb61ec13a5a562a9454fc80cba8a37674d7bf812b0097c3fc8b28f33fcb5089519f97574ade45d8d7639546c0436eea763d6b4efe401fb42
+DIST metasploit-payloads-1.2.37.gem 11979776 BLAKE2B a6ef0eea5d953d1b1c1609e0a88d5b8bccc031a9307d76c7d114e6a41d8198f2fc67dcb840e4f274cb756d2effd8b8d41cc69821f75b7bb90ac723efd55ff202 SHA512 5b9403ffcbc0705185d2aefc0f9f9be31720b634d83f1a8bf0eafdde398525b3b35f5daf30bd5930f545053d3a2b79bfe774971591ed3dcc37b8d4cbf5380dd8
+DIST metasploit-payloads-1.2.40.gem 11980800 BLAKE2B 4012f5b586db8b8df9220374d236d2966134253f50f003e2e8fc57109daa1f6a13207e5febcf77f10a1f527d144f1778c1de40c81ce97430797c8981779ac26b SHA512 786247e141a98891b0329bbeb9aa62304988aa4ec67aff9cffe0d1da09c5ae31fe69a6862473b6e3959cf874988cf68c0d8160b439dd79658b6d4d6070d851ba
+DIST metasploit-payloads-1.3.13.gem 11930112 BLAKE2B 7575f492493fb6f549440e40eaa82790f8ccad72197b74dffb9d8ca11a621849fd37be9be328fb25184c188c1ed369456726b4eb58c591d022ec7b49e209ea79 SHA512 4f3eaf45f21579b53284853e835ee3a06ce5a67134991f50745df1d3df44df7e95f8531a447bb062e5086c2a5b2cab3fcabf7e800ae4584fb19b581e0293b955
+DIST metasploit-payloads-1.3.25.gem 11934720 BLAKE2B 0d11e013e88a5e334727d798bf3374139a92348d06d426f889398ea58f06630458402b26a237aa0c98977faf7e2b292a47380f70dea4a259060c17d112ae9039 SHA512 d176229c38172c0c5949f63b84501d3f2dca19f1bd0cc799eb964e5a508be6dd903f2b3a3328ede2e6b915399adf8b6b4fb6961c88152f0d7f0f19749caf4e1a
+DIST metasploit-payloads-1.3.31.gem 11935232 BLAKE2B a454b03da76d847f85edccd3845adc67608e40c60797665d82ba0c0be985b88b1b032836f0a14fb00abde2ca7f75b73d6e1d39165e57887e54cbb86995039f19 SHA512 062efd0b3e80009f03344bb6c2907ca452650bc581cafacbedbfda6717038dce6a0cc2a9ddbac2ff3bda993935005b1b49f4b7653f08230434295137f48e4c1e
diff --git a/dev-ruby/metasploit-payloads/metasploit-payloads-1.3.9.ebuild b/dev-ruby/metasploit-payloads/metasploit-payloads-1.3.31.ebuild
similarity index 100%
rename from dev-ruby/metasploit-payloads/metasploit-payloads-1.3.9.ebuild
rename to dev-ruby/metasploit-payloads/metasploit-payloads-1.3.31.ebuild
diff --git a/dev-ruby/metasploit_payloads-mettle/Manifest b/dev-ruby/metasploit_payloads-mettle/Manifest
index 54df0bb6b..1350c9c26 100644
--- a/dev-ruby/metasploit_payloads-mettle/Manifest
+++ b/dev-ruby/metasploit_payloads-mettle/Manifest
@@ -1,3 +1,4 @@
-DIST metasploit_payloads-mettle-0.2.2.gem 10176512 SHA256 c7faf12418a83026c70422440cae878c7a3809b1d9fc4dc380d65e429316cb7f SHA512 d7dca148895a409a6478da0dfb12db17967d75a2fdd0643759a83cacc8cb596125d59f723b8c9cadde63b2863b97af04ff44f0e50fd1854b485dbb5c44f9e24e WHIRLPOOL fb315573c2bc5a17bbde38da4f2eb9c89ed516a43bdc9d6d004e175b8d3e9e2a316643c5a620b7e6d4690e484d0033d3d2ab9b16f416bfbf861ffbbbec99390b
-DIST metasploit_payloads-mettle-0.2.5.gem 11428864 SHA256 45e4c362d7f11dc1e46a8dfb43e2c8116bf68bddc385e53806a499d129f96f2b SHA512 eefb719edb68aca7154ecf987a35409d56d1d4547adfd03b5da63be11fca55a336ba0f3c02623943147b3110e445e2e96237d2f6006e2d51c27c0223d494c84d WHIRLPOOL 88320cc3f625eed450be27a98bf6605e8e44c4f6335d3eed33fafc562b2c2e79f01a80f12687190253cc80a3c036d7afcbc4bb7a553257fe1b38420e90205e8d
-DIST metasploit_payloads-mettle-0.3.3.gem 17652224 SHA256 d521f236c1e619b8bb9033486cac535514c4e90397b314f675bc9a4ae30312cd SHA512 6b4173ad0134cf18ea87bba62477c5d0dfc7091be7ce1f4f26531f4779b2c2379f3c9563b547fac720943ab254308b24f70ac1c378621308186431f24f91d120 WHIRLPOOL 46ae205617a44df1124d795c4ff6bc8665a0585f7f7f26806eb9de85021430d273811557d1996e19e21a613608e4978f791a4d18cd8ba9961954f7ee6f0d2730
+DIST metasploit_payloads-mettle-0.2.2.gem 10176512 BLAKE2B 2bfb1dc2c86cc6a84b2100375beb98b317e71bd01a669fa111bd57da7e3a2189b25135723f92334e512800f05fb6d2730001abfdb75c9821b071874e815a838c SHA512 d7dca148895a409a6478da0dfb12db17967d75a2fdd0643759a83cacc8cb596125d59f723b8c9cadde63b2863b97af04ff44f0e50fd1854b485dbb5c44f9e24e
+DIST metasploit_payloads-mettle-0.2.5.gem 11428864 BLAKE2B 948d6ea4fa6e649da929b1c6ea731da580f49b4abaca46e21ce2d4d48014d942519b7201504d18adb076b04c24e4efa565eb9f1ffd7b2040b27c887fd3c11b2e SHA512 eefb719edb68aca7154ecf987a35409d56d1d4547adfd03b5da63be11fca55a336ba0f3c02623943147b3110e445e2e96237d2f6006e2d51c27c0223d494c84d
+DIST metasploit_payloads-mettle-0.3.3.gem 17652224 BLAKE2B e5e7a9f6e845429a61812ec943f8f8e390f2cd64a27f901f2341a7a566d3ca4f4b903bf40f395aa16cd28e7880ca1bc70fbae23175135a37eab9b3ea2a60aaa0 SHA512 6b4173ad0134cf18ea87bba62477c5d0dfc7091be7ce1f4f26531f4779b2c2379f3c9563b547fac720943ab254308b24f70ac1c378621308186431f24f91d120
+DIST metasploit_payloads-mettle-0.3.7.gem 17677312 BLAKE2B 8c807d6c9f5ca0b615ab8e834dcf5e5be8bb5fa20073015fb3cee621cccd453e250fc55846d9388e4c10ceec26575725478fad7300bc07ba33f7206f405a9d35 SHA512 badb6ee5d56c1883044cc9504328ac4b5d7fd9d930aa3a3678fbe7b93e55f76f86cf7c6fad187812151fc58dcfe00c399f3aaf5d28dd97f958be42cb0e2c6e42
diff --git a/dev-ruby/metasploit_payloads-mettle/metasploit_payloads-mettle-0.3.7.ebuild b/dev-ruby/metasploit_payloads-mettle/metasploit_payloads-mettle-0.3.7.ebuild
new file mode 100644
index 000000000..cde9acedb
--- /dev/null
+++ b/dev-ruby/metasploit_payloads-mettle/metasploit_payloads-mettle-0.3.7.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+USE_RUBY="ruby21 ruby22 ruby23 ruby24"
+
+RUBY_FAKEGEM_TASK_DOC=""
+
+RUBY_FAKEGEM_EXTRAINSTALL="build"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Compiled binaries for Metasploit's next-gen Meterpreter"
+HOMEPAGE="https://rubygems.org/gems/metasploit_payloads-mettle"
+
+LICENSE="BSD"
+
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+#no tests
+RESTRICT="test strip"
+
+QA_PREBUILT="
+ usr/lib*/ruby/gems/*/gems/${P}/build/aarch64-linux-musl/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/aarch64-linux-musl/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/armv5b-linux-musleabi/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/armv5b-linux-musleabi/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/armv5l-linux-musleabi/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/armv5l-linux-musleabi/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/i486-linux-musl/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/i486-linux-musl/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips64-linux-muslsf/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips64-linux-muslsf/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips64-linux-muslsf/bin/sniffer
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips64-linux-muslsf/bin/sniffer.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/mipsel-linux-muslsf/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/mipsel-linux-muslsf/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/mipsel-linux-muslsf/bin/sniffer
+ usr/lib*/ruby/gems/*/gems/${P}/build/mipsel-linux-muslsf/bin/sniffer.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips-linux-muslsf/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips-linux-muslsf/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips-linux-muslsf/bin/sniffer
+ usr/lib*/ruby/gems/*/gems/${P}/build/mips-linux-muslsf/bin/sniffer.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/powerpc64le-linux-musl/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/powerpc64le-linux-musl/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/powerpc-linux-muslsf/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/powerpc-linux-muslsf/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/s390x-linux-musl/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/s390x-linux-musl/bin/mettle.bin
+ usr/lib*/ruby/gems/*/gems/${P}/build/x86_64-linux-musl/bin/mettle
+ usr/lib*/ruby/gems/*/gems/${P}/build/x86_64-linux-musl/bin/mettle.bin
+ "
+
+src_install() {
+ ruby-ng_src_install
+ #tell revdep-rebuild to ignore binaries meant for the target
+ dodir /etc/revdep-rebuild
+ cat <<-EOF > "${ED}"/etc/revdep-rebuild/99-${PN}-${SLOT} || die
+ #These dirs contain prebuilt binaries for running on the TARGET not the HOST
+ SEARCH_DIRS_MASK="/usr/lib*/ruby/gems/*/gems/${P}/build"
+ EOF
+}
diff --git a/dev-ruby/ruby-macho/Manifest b/dev-ruby/ruby-macho/Manifest
new file mode 100644
index 000000000..d8dd49d4d
--- /dev/null
+++ b/dev-ruby/ruby-macho/Manifest
@@ -0,0 +1 @@
+DIST ruby-macho-1.1.0.gem 29696 BLAKE2B 65a167767dcc174862e2c10899f0c8b20357a9fa2ccdbb6680be0fee391b1624898188b7df010b475cf032e961b337d89c922a40ee9a50bc630dd3ec98b52bd1 SHA512 69ee6a03ea365ff1715c147d8481613628c97f353ed08e3ad9eae3418dd7b5857589dff564ae88f4090ff96915ee4e9667b74309bc74746d8b2683a52fbe4796
diff --git a/dev-ruby/ruby-macho/ruby-macho-1.1.0.ebuild b/dev-ruby/ruby-macho/ruby-macho-1.1.0.ebuild
new file mode 100644
index 000000000..fc86d8892
--- /dev/null
+++ b/dev-ruby/ruby-macho/ruby-macho-1.1.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+USE_RUBY="ruby23 ruby24 ruby25"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A library for viewing and manipulating Mach-O files in Ruby"
+HOMEPAGE="https://github.com/Homebrew/ruby-macho"
+SRC_URI="mirror://rubygems/${P}.gem"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
diff --git a/dev-ruby/ruby_smb/Manifest b/dev-ruby/ruby_smb/Manifest
new file mode 100644
index 000000000..932f8ae79
--- /dev/null
+++ b/dev-ruby/ruby_smb/Manifest
@@ -0,0 +1 @@
+DIST ruby_smb-0.0.18.gem 76800 BLAKE2B 2f1156746d2a2c1bb60e60c69a6457c162023789f534f47857f25457c1c0a13c88cb6f4438c60c20509a1e13776b7e3e0fccde6b9aa987d82b37a4fe5db97598 SHA512 1700e1730fde8d5007c224bedfbdf6f258217a04060326d78e200833b349771d7f617878a034c40a3067957720b601f1a2ee6d0a3a7333a376c355003641bf30
diff --git a/dev-ruby/ruby_smb/metadata.xml b/dev-ruby/ruby_smb/metadata.xml
new file mode 100644
index 000000000..bc86728ae
--- /dev/null
+++ b/dev-ruby/ruby_smb/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ zerochaos@gentoo.org
+ Rick Farina
+
+
+ rapid7/ruby_smb
+
+
diff --git a/dev-ruby/ruby_smb/ruby_smb-0.0.18.ebuild b/dev-ruby/ruby_smb/ruby_smb-0.0.18.ebuild
new file mode 100644
index 000000000..80a890009
--- /dev/null
+++ b/dev-ruby/ruby_smb/ruby_smb-0.0.18.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+USE_RUBY="ruby23"
+
+RUBY_FAKEGEM_RECIPE_DOC="rdoc"
+RUBY_FAKEGEM_RECIPE_TEST="rspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="pure Ruby implementation of the SMB Protocol Family"
+HOMEPAGE="https://github.com/rapid7/ruby_smb"
+
+LICENSE="BSD"
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+#I cannot make tests work, and I'm not spending all day on it
+RESTRICT="test"
+
+ruby_add_rdepend "dev-ruby/bindata
+ dev-ruby/rubyntlm
+ dev-ruby/windows_error"
+
+all_ruby_prepare() {
+ sed -i -e '/simple[Cc]ov/d' -e '/coveralls/d' spec/spec_helper.rb
+ sed -i -e '/[Ss]imple[Cc]ov/,/end/d' \
+ -e '/[Cc]overalls/,/end/d' spec/spec_helper.rb
+ sed -i '/TRAVIS/d' spec/spec_helper.rb
+}
diff --git a/net-analyzer/metasploit/Manifest b/net-analyzer/metasploit/Manifest
index 1efd222fc..5f4cac9f2 100644
--- a/net-analyzer/metasploit/Manifest
+++ b/net-analyzer/metasploit/Manifest
@@ -1,3 +1,4 @@
-DIST metasploit-4.16.11.tar.gz 24136858 SHA256 13ce7794bec989bcab6868c1f2d2c5f054b5ea0c167a9baf82fb3ed006a053d8 SHA512 5913962b85e3234fe1e75603b4075f9034c317224619b13f898b1fe5197ce1c7c0161344c9323a092be45184d0faa7a31c3da772c316c5a69b44f7ea90f81846 WHIRLPOOL df26c4fdd341f9aa308f9837d6ac19e4715f6bb3048cea7eb49e8211a881c2fbac9269b037f682a92b39294315b1c7c07e5d954c1e249fc11bab11492d7bb0f7
-DIST metasploit-4.16.15.tar.gz 24149778 SHA256 441c07274f936fbea8f859157048dec4890ee6e80920c49d6c4306129ee00384 SHA512 e8e612ceb80f8edec2cff745be9bfc57032770e24179b4613ef8331a2b48ebcd8eb8fea6f5beda0af98a8ceff62c89a63d5107b37738b2dc724dfe277f8a443f WHIRLPOOL 50a46193f8d89492711e3fba2fbc50c554a6b457f24bb9b846db82ee856304efd19e3975ab58da669eda555b5caa68d2f6373ce700842c09880d66350e7ee145
-DIST metasploit-4.16.32.tar.gz 25520454 SHA256 f4c545aaf9bac1d2767ead6dd3785bde13dcd866ea77ef4175ff3f5212c350f2 SHA512 e4cdc2317be98512c4d9ae9aa8b914059c3f6444708cc132ff24ed5c8491cba555a60289dac113dc75615b1051b6fb8a307e99d95889d2726c81c6e8c36ed4d5 WHIRLPOOL 70550cd7c2a29380d965c1b5ba31096111f69de2cfd41d6cf4607ba321169cab89c716b018a2a5b978e02136af9e9c07e5cbbcaacdd6c5438370941c858e3b84
+DIST metasploit-4.16.11.tar.gz 24136858 BLAKE2B 39a2fd718777c032281ff869fefa8931f2548bc2d402e9cff6447403d4d8e511eb4585cc80973d217d10cb83c79165c311e9ade1e6ae5d05235284e8d9d2c338 SHA512 5913962b85e3234fe1e75603b4075f9034c317224619b13f898b1fe5197ce1c7c0161344c9323a092be45184d0faa7a31c3da772c316c5a69b44f7ea90f81846
+DIST metasploit-4.16.15.tar.gz 24149778 BLAKE2B ab217ed54155bf64f99bf92bb5662faadf41487fc1b5cbb3bd42e770d57189ea73f8bbd2a789e3cf1e700d4e2c0dc9f42e0b49e0eac674fde73c634dacb77183 SHA512 e8e612ceb80f8edec2cff745be9bfc57032770e24179b4613ef8331a2b48ebcd8eb8fea6f5beda0af98a8ceff62c89a63d5107b37738b2dc724dfe277f8a443f
+DIST metasploit-4.16.32.tar.gz 25520454 BLAKE2B ce9e02732210ab5ced750268a1f4e575e6903792f6d55f899c5164932c20a0cdb2aaf6aa2d64ff051f8a29192ba63a305ae698946940b97c6562caa9203c74ac SHA512 e4cdc2317be98512c4d9ae9aa8b914059c3f6444708cc132ff24ed5c8491cba555a60289dac113dc75615b1051b6fb8a307e99d95889d2726c81c6e8c36ed4d5
+DIST metasploit-4.16.46.tar.gz 25847926 BLAKE2B 4dd22001fc29ab8c8731afb04b0dadf6f2803d82f4da4ae8523c33b5061b0604bb22ecc9444a6bc296d1e9cb8106ce827708e5faca0fd57ce1065c88f2d7afa1 SHA512 4fee7fa17b9fb227e63fb6190305afaf238890379a8af392619fee9a88f5b6f62d603245a5df1cf1f096e5244a87458046d7be73eba2f722d461a3bebbd7d5e7
diff --git a/net-analyzer/metasploit/metasploit-4.16.32.ebuild b/net-analyzer/metasploit/metasploit-4.16.32.ebuild
index ff853fcc8..60a94e8d2 100644
--- a/net-analyzer/metasploit/metasploit-4.16.32.ebuild
+++ b/net-analyzer/metasploit/metasploit-4.16.32.ebuild
@@ -17,7 +17,7 @@ else
##Tags https://github.com/rapid7/metasploit-framework/releases
MY_PV=${PV/_p/-}
SRC_URI="https://github.com/rapid7/metasploit-framework/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-# KEYWORDS="~amd64 ~arm"
+ KEYWORDS="~amd64 ~arm"
RUBY_S="${PN}-framework-${MY_PV}"
inherit versionator
SLOT="$(get_version_component_range 1).$(get_version_component_range 2)"
diff --git a/net-analyzer/metasploit/metasploit-4.16.46.ebuild b/net-analyzer/metasploit/metasploit-4.16.46.ebuild
new file mode 100644
index 000000000..7b21aef91
--- /dev/null
+++ b/net-analyzer/metasploit/metasploit-4.16.46.ebuild
@@ -0,0 +1,348 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+#never ever ever have more than one ruby in here
+USE_RUBY="ruby23"
+inherit eutils ruby-ng
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/rapid7/metasploit-framework.git"
+ EGIT_CHECKOUT_DIR="${WORKDIR}"/all
+ inherit git-r3
+# KEYWORDS=""
+ SLOT="9999"
+else
+ ##Tags https://github.com/rapid7/metasploit-framework/releases
+ MY_PV=${PV/_p/-}
+ SRC_URI="https://github.com/rapid7/metasploit-framework/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm"
+ RUBY_S="${PN}-framework-${MY_PV}"
+ inherit versionator
+ SLOT="$(get_version_component_range 1).$(get_version_component_range 2)"
+fi
+
+DESCRIPTION="Advanced framework for developing, testing, and using vulnerability exploit code"
+HOMEPAGE="http://www.metasploit.org/"
+LICENSE="BSD"
+IUSE="development +java nexpose openvas oracle +pcap test"
+
+#multiple known bugs with tests reported upstream and ignored
+#http://dev.metasploit.com/redmine/issues/8418 - worked around (fix user creation when possible)
+RESTRICT="test"
+
+RUBY_COMMON_DEPEND="virtual/ruby-ssl
+ >=dev-ruby/activesupport-4.2.6:4.2
+ >=dev-ruby/actionpack-4.2.6:4.2
+ >=dev-ruby/activerecord-4.2.6:4.2
+ dev-ruby/backports
+ dev-ruby/bcrypt-ruby
+ dev-ruby/bcrypt_pbkdf
+ dev-ruby/bit-struct
+ >=dev-ruby/builder-3.0
+ dev-ruby/bundler
+ dev-ruby/dnsruby
+ dev-ruby/filesize
+ >=dev-ruby/jsobfu-0.3.0
+ dev-ruby/json:*
+ dev-ruby/kissfft
+ dev-ruby/metasm:1.0.2
+ dev-ruby/mqtt
+ >=dev-ruby/metasploit_data_models-2.0.0
+ dev-ruby/meterpreter_bins:0.0.22
+ dev-ruby/metasploit-payloads:1.3.31
+ dev-ruby/metasploit_payloads-mettle:0.3.7
+ >=dev-ruby/metasploit-credential-2.0.0
+ >=dev-ruby/metasploit-concern-2.0.0
+ >=dev-ruby/metasploit-model-2.0.0
+ dev-ruby/msgpack
+ dev-ruby/net-ssh:*
+ dev-ruby/nokogiri
+ dev-ruby/octokit
+ dev-ruby/openssl-ccm:1.2.1
+ dev-ruby/patch_finder
+ dev-ruby/pdf-reader
+ dev-ruby/rbnacl:4
+ dev-ruby/rbnacl-libsodium
+ >=dev-ruby/recog-2.0.14
+ dev-ruby/redcarpet
+ >=dev-ruby/rkelly-remix-0.0.6
+ >=dev-ruby/rex-arch-0.1.13
+ dev-ruby/rex-bin_tools
+ dev-ruby/rex-core
+ dev-ruby/rex-encoder
+ dev-ruby/rex-exploitation
+ dev-ruby/rex-java
+ dev-ruby/rex-mime
+ dev-ruby/rex-nop
+ dev-ruby/rex-ole
+ dev-ruby/rex-powershell
+ dev-ruby/rex-random_identifier
+ dev-ruby/rex-registry
+ >=dev-ruby/rex-socket-0.1.10
+ dev-ruby/rex-sslscan
+ dev-ruby/rex-rop_builder
+ dev-ruby/rex-struct2
+ dev-ruby/rex-text
+ dev-ruby/rex-zip
+ =dev-ruby/ruby_smb-0.0.18
+ dev-ruby/ruby-macho
+ dev-ruby/sqlite3
+ =dev-ruby/pg-0.20.0
+ dev-ruby/packetfu:1.1.13
+ >=dev-ruby/rubyzip-1.1
+ >=dev-ruby/ruby_smb-0.0.18
+ >=dev-ruby/rb-readline-0.5.4
+ dev-ruby/robots
+ dev-ruby/sshkey
+ dev-ruby/tzinfo:*
+ dev-ruby/windows_error
+ dev-ruby/xmlrpc
+ dev-ruby/xdr
+ dev-ruby/mqtt
+ dev-ruby/faker
+ java? ( dev-ruby/rjb )
+ nexpose? ( dev-ruby/nexpose )
+ openvas? ( dev-ruby/openvas-omp )
+ oracle? ( dev-ruby/ruby-oci8 )
+ pcap? ( dev-ruby/pcaprub:*
+ dev-ruby/network_interface )
+ development? ( dev-ruby/fivemat
+ dev-ruby/pry
+ dev-ruby/redcarpet
+ dev-ruby/yard
+ >=dev-ruby/rake-10.0.0
+ >=dev-ruby/factory_girl-4.1.0 )"
+ #lorcon doesn't support ruby21
+ #lorcon? ( net-wireless/lorcon[ruby] )
+ruby_add_bdepend "${RUBY_COMMON_DEPEND}
+ test? ( >=dev-ruby/factory_girl-4.1.0
+ dev-ruby/fivemat
+ dev-ruby/database_cleaner
+ >=dev-ruby/rspec-2.12
+ dev-ruby/shoulda-matchers
+ dev-ruby/timecop
+ >=dev-ruby/rake-10.0.0 )"
+ruby_add_rdepend "${RUBY_COMMON_DEPEND}"
+
+COMMON_DEPEND="dev-db/postgresql[server]
+ >=app-crypt/johntheripper-1.7.9-r1[-minimal]
+ net-analyzer/nmap"
+RDEPEND+=" ${COMMON_DEPEND}
+ >=app-eselect/eselect-metasploit-0.16"
+
+RESTRICT="strip"
+
+QA_PREBUILT="
+ usr/lib*/${PN}${SLOT}/data/templates/template_x86_linux.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_armle_linux.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_x86_solaris.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_x64_linux.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_x64_linux_dll.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_x86_bsd.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_x64_bsd.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_mipsbe_linux.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_mipsle_linux.bin
+ usr/lib*/${PN}${SLOT}/data/meterpreter/msflinker_linux_x86.bin
+ usr/lib*/${PN}${SLOT}/data/meterpreter/ext_server_sniffer.lso
+ usr/lib*/${PN}${SLOT}/data/meterpreter/ext_server_networkpug.lso
+ usr/lib*/${PN}${SLOT}/data/meterpreter/ext_server_stdapi.lso
+ usr/lib*/${PN}${SLOT}/data/exploits/CVE-2013-2171.bin
+ usr/lib*/${PN}${SLOT}/data/exploits/CVE-2014-3153.elf
+ usr/lib*/${PN}${SLOT}/data/exploits/mysql/lib_mysqludf_sys_32.so
+ usr/lib*/${PN}${SLOT}/data/android/libs/x86/libndkstager.so
+ usr/lib*/${PN}${SLOT}/data/android/libs/mips/libndkstager.so
+ usr/lib*/${PN}${SLOT}/data/android/libs/armeabi/libndkstager.so
+ usr/lib*/${PN}${SLOT}/data/templates/template_x86_linux_dll.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_armle_linux_dll.bin
+ usr/lib*/${PN}${SLOT}/data/templates/template_aarch64_linux.bin
+ "
+
+pkg_setup() {
+ if use test; then
+ su postgres -c "dropdb msf_test_database" #this is intentionally allowed to fail
+ su postgres -c "createuser msf_test_user -d -S -R"
+ if [ $? -ne 0 ]; then
+ su postgres -c "dropuser msf_test_user" || die
+ su postgres -c "createuser msf_test_user -d -S -R" || die
+ fi
+ su postgres -c "createdb --owner=msf_test_user msf_test_database" || die
+ fi
+ ruby-ng_pkg_setup
+}
+
+all_ruby_unpack() {
+ if [[ ${PV} == "9999" ]] ; then
+ git-r3_src_unpack
+ else
+ default_src_unpack
+# mv "${WORKDIR}"/all/msf3/* "${WORKDIR}"/all
+# rm -r msf3
+ #msf_version=$(grep --color=never "CURRENT_VERSION =" ${S}/spec/lib/msf/core/framework_spec.rb)
+ #msf_version=${msf_version#*=}
+ fi
+}
+
+all_ruby_prepare() {
+ # add psexec patch from pull request 2657 to allow custom exe templates from any files, bypassing most AVs
+ #epatch "${FILESDIR}/agix_psexec_pull-2657.patch"
+ eapply_user
+
+ #remove random "cpuinfo" binaries which a only needed to detect which bundled john to run
+ rm -r data/cpuinfo
+
+ #remove unneeded ruby bundler versioning files
+ #Gemfile.lock contains the versions tested by the msf team but not the hard requirements
+ #we regen this file in each_ruby_prepare
+ rm Gemfile.lock
+
+ #The Gemfile contains real known deps
+ sed -i "/gem 'fivemat'/s/, '1.2.1'//" Gemfile || die
+ #use released packetfu
+ sed -i "s/1.1.13.pre/1.1.13/" metasploit-framework.gemspec || die
+ #git gems are only for ruby24 support and we are not there yet
+ sed -i "/git:/d" Gemfile || die
+
+ #now we edit the Gemfile based on use flags
+ if ! use pcap; then
+ sed -i -e "/^group :pcap do/,/^end$/d" Gemfile || die
+ fi
+ if ! use nexpose; then
+ sed -i -e "/nexpose/d" metasploit-framework.gemspec || die
+ fi
+ #no support for nessus right now
+ #if ! use nessus; then
+ sed -i -e "/nessus/d" metasploit-framework.gemspec || die
+ #fi
+ if ! use openvas; then
+ sed -i -e "/openvas-omp/d" metasploit-framework.gemspec || die
+ fi
+ #even if we pass --without=blah bundler still calculates the deps and messes us up
+ if ! use development; then
+ sed -i -e "/^group :development do/,/^end$/d" Gemfile || die
+ fi
+ if ! use test; then
+ sed -i -e "/^group :test/,/^end$/d" Gemfile || die
+ fi
+ if ! use test && ! use development; then
+ sed -i -e "/^group :development/,/^end$/d" Gemfile || die
+ fi
+ #We don't need simplecov
+ sed -i -e "/^group :coverage/,/^end$/d" Gemfile || die
+ sed -i -e "s#require 'simplecov'##" spec/spec_helper.rb || die
+
+ #we need to edit the gemspec too, since it tries to call git instead of anything sane
+ #probably a better way to fix this... if I care at some point
+ sed -i -e "/^ spec.files/,/^ }/d" metasploit-framework.gemspec || die
+
+ #https://bugs.gentoo.org/show_bug.cgi?id=584522 no tzinfo-data by choice in gentoo
+ sed -i '/tzinfo-data/d' metasploit-framework.gemspec
+
+ #let's bogart msfupdate
+ rm msfupdate
+ echo "#!/bin/sh" > msfupdate
+ echo "echo \"[*]\"" >> msfupdate
+ echo "echo \"[*] Attempting to update the Metasploit Framework...\"" >> msfupdate
+ echo "echo \"[*]\"" >> msfupdate
+ echo "echo \"\"" >> msfupdate
+ if [[ ${PV} == "9999" ]] ; then
+ echo "if [ -x /usr/bin/smart-live-rebuild ]; then" >> msfupdate
+ echo " smart-live-rebuild -f net-analyzer/metasploit" >> msfupdate
+ echo "else" >> msfupdate
+ echo " echo \"Please install app-portage/smart-live-rebuild for a better experience.\"" >> msfupdate
+ echo "emerge --oneshot \"=${CATEGORY}/${PF}\"" >> msfupdate
+ echo "fi" >> msfupdate
+ else
+ echo "echo \"Unable to update tagged version of metasploit.\"" >> msfupdate
+ echo "echo \"If you want the latest please install and eselect the live version (metasploit9999)\"" >> msfupdate
+ echo "echo \"emerge metasploit:9999 -vat && eselect metasploit set metasploit9999\"" >> msfupdate
+ fi
+ #this is set executable in src_install
+
+ #install our database.yml file before tests are run
+ cp "${FILESDIR}"/database.yml config/
+
+}
+
+each_ruby_prepare() {
+ MSF_ROOT="." BUNDLE_GEMFILE=Gemfile ${RUBY} -S bundle install --local || die
+ MSF_ROOT="." BUNDLE_GEMFILE=Gemfile ${RUBY} -S bundle check || die
+
+ #force all metasploit executables to use desired ruby version
+ #https://dev.metasploit.com/redmine/issues/8357
+ for file in $(ls -1 msf*)
+ do
+ #poorly adapted from python.eclass
+ sed -e "1s:^#![[:space:]]*\([^[:space:]]*/usr/bin/env[[:space:]]\)\?[[:space:]]*\([^[:space:]]*/\)\?ruby\([[:digit:]]\+\(\.[[:digit:]]\+\)\?\)\?\(\$\|[[:space:]].*\):#!\1\2${RUBY}:" -i "${file}" || die "Conversion of shebang in '${file}' failed"
+ done
+}
+
+each_ruby_test() {
+ #review dev-python/pymongo for ways to make the test compatible with FEATURES=network-sandbox
+
+ #we bogart msfupdate so no point in trying to test it
+ rm spec/msfupdate_spec.rb || die
+ #we don't really want to be uploading to virustotal during the tests
+ rm spec/tools/virustotal_spec.rb || die
+
+ # https://dev.metasploit.com/redmine/issues/8425
+ BUNDLE_GEMFILE=Gemfile ${RUBY} -S bundle exec rake db:create || die
+ BUNDLE_GEMFILE=Gemfile ${RUBY} -S bundle exec rake db:migrate || die
+
+ MSF_DATABASE_CONFIG=config/database.yml BUNDLE_GEMFILE=Gemfile ${RUBY} -S bundle exec rake || die
+ su postgres -c "dropuser msf_test_user" || die "failed to cleanup msf_test-user"
+}
+
+each_ruby_install() {
+ #Tests have already been run, we don't need this stuff
+ rm -r spec || die
+ rm -r test || die
+ rm Gemfile.lock || die
+
+ #I'm 99% sure that this will only work for as long as we only support one ruby version. Creativity will be needed if we wish to support multiple.
+ # should be as simple as copying everything into the target...
+ dodir /usr/$(get_libdir)/${PN}${SLOT}
+ cp -R * "${ED}"/usr/$(get_libdir)/${PN}${SLOT} || die "Copy files failed"
+ rm -Rf "${ED}"/usr/$(get_libdir)/${PN}${SLOT}/documentation "${ED}"/usr/$(get_libdir)/${PN}${SLOT}/README.md
+ fowners -R root:0 /
+
+}
+
+all_ruby_install() {
+ # do not remove LICENSE, bug #238137
+ dodir /usr/share/doc/${PF}
+ cp -R {documentation,README.md} "${ED}"/usr/share/doc/${PF} || die
+ dosym /usr/share/doc/${PF}/documentation /usr/$(get_libdir)/${PN}${SLOT}/documentation
+
+ fperms +x /usr/$(get_libdir)/${PN}${SLOT}/msfupdate
+
+ #tell revdep-rebuild to ignore binaries meant for the target
+ dodir /etc/revdep-rebuild
+ cat <<-EOF > "${ED}"/etc/revdep-rebuild/99-metasploit${SLOT}
+ #These dirs contain prebuilt binaries for running on the TARGET not the HOST
+ SEARCH_DIRS_MASK="/usr/lib*/${PN}${SLOT}/data/meterpreter"
+ SEARCH_DIRS_MASK="/usr/lib*/${PN}${SLOT}/data/exploits"
+ EOF
+}
+
+pkg_postinst() {
+ elog "Before use you should run 'env-update' and '. /etc/profile'"
+ elog "otherwise you may be missing important environmental variables."
+
+ elog "You need to prepare the database by running:"
+ elog "emerge --config postgresql"
+ elog "/etc/init.d/postgresql- start"
+ elog "emerge --config =metasploit-${PV}"
+
+ "${EROOT}"/usr/bin/eselect metasploit set --use-old ${PN}${SLOT}
+
+ einfo
+ elog "Adjust /usr/lib/${PN}${SLOT}/config/database.yml if necessary"
+}
+
+pkg_config() {
+ einfo "If the following fails, it is likely because you forgot to start/config postgresql first"
+ su postgres -c "createuser msf_user -D -S -R"
+ su postgres -c "createdb --owner=msf_user msf_database"
+}
diff --git a/profiles/pentoo/base/package.accept_keywords/dev-ruby b/profiles/pentoo/base/package.accept_keywords/dev-ruby
index bc4d76f78..2d38eac46 100644
--- a/profiles/pentoo/base/package.accept_keywords/dev-ruby
+++ b/profiles/pentoo/base/package.accept_keywords/dev-ruby
@@ -189,6 +189,7 @@ dev-ruby/tzinfo-data
~dev-ruby/rubinius-developer_tools-2.0.0
~dev-ruby/rubinius-profiler-2.0.1
=dev-ruby/rubyntlm-0.6*
+~dev-ruby/ruby_smb-0.0.18
~dev-ruby/sdoc-0.3.20
~dev-ruby/shoulda-matchers-2.3.0
~dev-ruby/shoulda-matchers-2.6.0
@@ -207,6 +208,7 @@ dev-ruby/pdf-reader:2
~dev-ruby/kissfft-0.0.2
~dev-ruby/mqtt-0.5.0
~dev-ruby/faker-1.8.7
+~dev-ruby/ruby-macho-1.1.0
#wpscan
~dev-ruby/addressable-2.5.1