From 1ad907d09742c3185127fb991bb9d02d5ca422c5 Mon Sep 17 00:00:00 2001 From: Zero_Chaos Date: Mon, 26 Aug 2013 04:05:38 +0000 Subject: [PATCH] metasploit: time for you to feel the pain. tests don't work yet, need to add rake 10.x to gentoo first. --- net-analyzer/metasploit/Manifest | 4 +-- net-analyzer/metasploit/files/database.yml | 10 +++++++ .../metasploit/metasploit-9999.ebuild | 27 +++++++++++++++---- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/net-analyzer/metasploit/Manifest b/net-analyzer/metasploit/Manifest index eeedf28b2..5c9e928f4 100644 --- a/net-analyzer/metasploit/Manifest +++ b/net-analyzer/metasploit/Manifest @@ -1,5 +1,5 @@ -AUX database.yml 481 SHA256 2db3df7b05f28aa5ba6d6dedc32d8d1a2e24e020d6fd8aea15b2e76ed0f6ab46 SHA512 98a83f972f78ee63d241b58fbdce3171a24b2435371d46cad609f2f2ad50a5853cbfda5cf4632cfd9e69b2fb7ba3ce3c6aa765c7b44fbeb3eed868ffc068241d WHIRLPOOL ac85e47c26dcf56d69028af91513802767a2243ff52f6e031d447dfbda9120bd6436b4a0c6ab118cf3fd09dc3b47613e4e75c8ef83f4528783402bba1ab5e2ba +AUX database.yml 651 SHA256 aa5f0d71de766fd14974d962731abbba36e0d844fe07663e1392c01cdf3fca99 SHA512 95e4625d79cce50f1d7008b1a8b4594b49b7ee4090f37cd4d22260d4746d4ea5b5698aafe9abd5a42ec31f403860892d7cfaaed1db6141bf0c79ac7932c06064 WHIRLPOOL e9e50c4f50c78c19504cd61e53e8f8dd9f156eb2a59e3c163be9774d54ca10773d7102ec0ac53c77e2d033d792c97d31c664cb033aab2b7b89f7c2f29bf0660c AUX metasploit.icon 7630 SHA256 d197dd3b939c35d951c2cd5c19b51200ada7f8f92d90775a9eaebdccf18e3949 SHA512 569db261a3782f3874c30ccaf076be512437a9a5a9df835baf29bacec48dd76b2896e009b5ab165ba82aff72ab15d067155f257787e69c3a7cd034dafa5a9066 WHIRLPOOL 3f66eb2a3b51dc787f5da6b2fd93165fdca3e9ae391db0ea69cb0ea5c6c1d9f2d85fffbdb117da4065e0b3e29daa5b7d7e62740cd3210768aa0cfc4a63679376 DIST framework-4.6.0.tar.bz2 49996884 SHA256 ec6dfe58cb5a897e8c8e56d919dec7c00d56fe758efd1350c2a7a3587ef538c2 SHA512 ff73ebd5e08f96d7ffb63ad59cd4fa608705a1a72f00b82ce074fc537e7037349fedf71f768a895ec4e36aabb4ae07fd6b6a0f12ff88807b8ca9202f0d770633 WHIRLPOOL 952407ce34e0d94f7a824c6a3b963c6321da9aee0626295389b1f4f7d4671b9577e5bfab8f581144696f6c4a1bb073f7b7056d8c54853dbf60a6dcb7c320b336 EBUILD metasploit-4.6.0.ebuild 6293 SHA256 6343754b28505ccec773e20c9a2385890803859d5d38c51f601448d50f39048f SHA512 45cc5cd171bae5f559035bede6bebb7bb81ace641886317c6bf540f34c2c4a645c677c00b72e47daeaa06e195d358d8ad1a95f9c9307ae2f4e65df5fddc7b168 WHIRLPOOL 36fc119489d82c116b822b7742b575f8361f3bb041d8041f309cd4e171502054d0153cd07ef75fc26b9e87fb9104adaa0ed9ce59086d47e34a58d491cdef3885 -EBUILD metasploit-9999.ebuild 8420 SHA256 50f2377d718b540304819a865c4d71378774111a1ebde9cae1b0b3dff5e4c158 SHA512 a868ad6f9611a69ddae051198e0e80eff1e337840fac26800585e2514464fc84aa25653af22bfbb010615d8c90bc4ebc1686a467f8d5da7a9bd4861387519ef4 WHIRLPOOL e6a705863f248d2c97a0e952273923df64b8fcb2c9f49157e73a9fc9e375182ea93cd63b4650b9db5cd4b3562db1f365d5cc0295b616bd8275a9d6bdb4e9dc5e +EBUILD metasploit-9999.ebuild 8959 SHA256 6cacaa93bceabccb8cdfcb6b67df6528c140cc3ebc0b1b5dab5eac70a13abdb8 SHA512 533ca731df5103111f7334ffa1d5f2b511789426adb742be6f87765a09cf7f42a3a9acae5d5d45fd94c9f218888da7d46f07b73c777001111082219e99dd878d WHIRLPOOL feb272a97ce1dd2d1b51d5d19c03cf2ddff841f3756226d47154fe9df850aae45ac8a5e004ec510dc61b55ca53b76511eea448b3fda75e0d2ee726d70ae15619 diff --git a/net-analyzer/metasploit/files/database.yml b/net-analyzer/metasploit/files/database.yml index d7c598c24..351a9edbb 100644 --- a/net-analyzer/metasploit/files/database.yml +++ b/net-analyzer/metasploit/files/database.yml @@ -22,3 +22,13 @@ production: host: "localhost" pool: 256 timeout: 5 + +test: + adapter: "postgresql" + database: "msf_test_database" + username: "msf_test_user" + password: "secure" + port: 5432 + host: "localhost" + pool: 256 + timeout: 5 diff --git a/net-analyzer/metasploit/metasploit-9999.ebuild b/net-analyzer/metasploit/metasploit-9999.ebuild index 5b8973f45..5aa7e3363 100644 --- a/net-analyzer/metasploit/metasploit-9999.ebuild +++ b/net-analyzer/metasploit/metasploit-9999.ebuild @@ -56,7 +56,7 @@ DEPEND="${COMMON_DEPEND} >=dev-ruby/rspec-2.12[ruby_targets_ruby19] dev-ruby/shoulda-matchers[ruby_targets_ruby19] dev-ruby/timecop[ruby_targets_ruby19] ) - =dev-ruby/simplecov-0.5.4 + dev-ruby/simplecov " RDEPEND="${COMMON_DEPEND} @@ -88,6 +88,15 @@ QA_PREBUILT=" usr/$(get_libdir)/${PN}${SLOT}/data/exploits/CVE-2013-2171.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" || su postgres -c "dropuser msf_test_user" + su postgres -c "createuser msf_test_user -d -S -R" || die + su postgres -c "createdb --owner=msf_test_user msf_test_database" || die + fi +} + src_prepare() { #so much cruft is bundled with msf that we will fix it in src_prepare to make intentions more clear @@ -128,6 +137,9 @@ src_prepare() { if ! use test && ! use development; then sed -i -e "/^group :development/,/^end$/d" Gemfile || die fi + if use test; then + sed -i -e 's#, '0.5.4'##' Gemfile || die + fi bundle install --local || die bundle check || die @@ -150,6 +162,9 @@ src_prepare() { fi #this is set executable in src_install + #install our database.yml file before tests are run + cp "${FILESDIR}"/database.yml "${S}"/config/ + #force all metasploit executables to ruby19, ruby18 is not supported anymore and ruby20 is not supported yet #https://dev.metasploit.com/redmine/issues/8357 for file in $(ls -1 "${S}"/msf*) @@ -168,6 +183,12 @@ src_prepare() { # fi #} +src_test() { + #rake --trace spec || die + rake spec || die + su postgres -c "dropuser msf_test_user" || die "failed to cleanup msf_test-user" +} + src_install() { #if ! use test; then #remove unneeded testing stuff @@ -186,10 +207,6 @@ src_install() { cp -R "${S}"/{documentation,README.md} "${ED}"/usr/share/doc/${PF} || die dosym /usr/share/doc/${PF}/documentation /usr/$(get_libdir)/${PN}${SLOT}/documentation - #install our database.yml file - insinto /usr/$(get_libdir)/${PN}${SLOT}/config/ - doins "${FILESDIR}"/database.yml - #does not work with ruby19 at this time #if use serialport; then # cd "${S}"/external/serialport