beef: bump the latest, downgrade deps, inherit msf start file. https://github.com/pentoo/pentoo-overlay/issues/296 fixed

This commit is contained in:
blshkv 2018-07-22 16:54:20 +08:00
parent 8bbf2606d8
commit 68cbe1f27b
No known key found for this signature in database
GPG key ID: 273E3E90D1A6294F
7 changed files with 99 additions and 38 deletions

View file

@ -1 +1,2 @@
DIST dm-serializer-0.10.0.gem 16896 BLAKE2B fcce27967c12919ea86faba26a1a6afb096294d6ef7b1b7c403a29d48106a8cdbe689ed64665383b8307b077c9099921968b8f794916ee974e2b6bd451a30d9c SHA512 c6e1c63f3242944b21f653793faa0ef7e2f607ef3164ee0b7ef54145cfbe42414a9ae005c100abaaf06951b8b754a6a937ec2a7cecffed8d632f6ed3696c4ee8
DIST dm-serializer-1.2.2.gem 17408 BLAKE2B 351d93706965fcce70d6c285150818ca79796e280da85969db8668327977326c44af02488b0d4fe7e907e606ff42d9187ecaa87dabb8fc3f2a743aafeed82fe5 SHA512 ce0e58089e88bdaea612a64bd112b6f7648f9937a379f79e2126814996e1042121b462e6eba758e9f3901ec9d127b2758706f2aed66a863c03b23b6b94ae5ad7

View file

@ -0,0 +1,30 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
USE_RUBY="ruby23 ruby24 ruby25"
RUBY_FAKEGEM_TASK_DOC="yard"
RUBY_FAKEGEM_DOCDIR="doc"
RUBY_FAKEGEM_EXTRADOC="README.rdoc"
RUBY_FAKEGEM_TASK_TEST="spec"
inherit ruby-fakegem
DESCRIPTION="DataMapper plugin for serializing Resources and Collections"
HOMEPAGE="https://github.com/datamapper/dm-serializer"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~x86 ~amd64 ~arm"
IUSE=""
RESTRICT="test"
#may be required?
#each_ruby_install() {
# each_fakegem_install
# ruby_fakegem_doins -r {autotest,benchmarks,spec,tasks}
#}

View file

@ -223,8 +223,9 @@ dev-ruby/pdf-reader:2
#beef
=www-apps/beef-0.4.4.5
~dev-ruby/dm-core-1.2.1
~dev-ruby/dm-serializer-1.2.2
~dev-ruby/fastercsv-1.5.5
#~dev-ruby/dm-serializer-1.2.2
=dev-ruby/dm-serializer-0.10*
#~dev-ruby/fastercsv-1.5.5
~dev-ruby/erubis-2.7.0
~dev-ruby/jsmin-1.0.1
~dev-ruby/ansi-1.5.0

View file

@ -1,2 +1,2 @@
DIST beef-0.4.7.0.tar.gz 3345161 BLAKE2B f6a1ad064042a5d348cad47e4ba8245e26167ab4a018595ec6e631747727de7823b9552bd95fbfddbe5a82faf6ae251227166c5f5cf4699819bf83b475e25a4f SHA512 9f40f1292129c20da0ee4f88a1d899dc120a177a026d1bf5f61d49b4878ca193fcfb4000c5cd8689e64fcee4caecb30d5963561226dbe09eee7830ab2c6b9311
DIST beef-0.4.7.0_p20180719.zip 4521552 BLAKE2B a7474ef5e5694b1beffa27febeab5e693fc40be7182cb33fbddf50ba4e9d69e240660ee5e624349e1c431b30582d75e3de4412b113586fb52561e90732cf95b1 SHA512 bfed0b9242e75fe46083562c13db0fc06d46c134b80807142bdba57b11a68b791003b16be07d490cffd4e25ed6b624b08c669499ecba5827d0a1c52bddc27784
DIST beef-0.4.7.0_p20180720.zip 4521994 BLAKE2B 04a3919ef3ddabe578fee19676ed7479162d621bb3c562b8e7c4db99c1fd10c9014130e4f21f961d60da0b00b51ecf73ac36c075403274898a6bfe650f5feed9 SHA512 1cbdab9386ad0e4d71f346bf2a8852ac7d24037cc04f0994ff8e27d35438b9b53692571e7f73f6253aa55fb2060213718968c2abfc0bca76a3b23d9b08ce0344

View file

@ -28,14 +28,14 @@ RDEPEND+="net-analyzer/metasploit"
ruby_add_rdepend "(
dev-ruby/eventmachine
www-servers/thin
dev-ruby/sinatra
dev-ruby/rack
dev-ruby/sinatra:*
dev-ruby/rack:1.6
=dev-ruby/em-websocket-0.3*
dev-ruby/uglifier
dev-ruby/uglifier:*
dev-ruby/ansi
dev-ruby/term-ansicolor
dev-ruby/dm-core
dev-ruby/json
dev-ruby/json:*
dev-ruby/data_objects
dev-ruby/dm-sqlite-adapter
dev-ruby/parseconfig
@ -45,7 +45,7 @@ ruby_add_rdepend "(
dev-ruby/rubyzip:1
>=dev-ruby/rubydns-0.7.0
dev-ruby/sqlite3
dev-ruby/mime-types
dev-ruby/mime-types:*
)"
#rubydns", "0.7.0" # DNS extension

View file

@ -3,8 +3,7 @@
EAPI="6"
#DANGER DANGER DANGER
#This currently supports one ruby at a time, don't put two in here
#Warning: add one ruby at a time
USE_RUBY="ruby23"
inherit eutils ruby-ng
@ -13,16 +12,15 @@ RESTRICT="test"
DESCRIPTION="Browser exploitation framework"
HOMEPAGE="http://beefproject.com/"
MY_COMMIT="0a415b22520057eef565e22620a8ce13dd07e440"
MY_COMMIT="d237c95465a1ad4065cdbdd3972b637f3f93341b"
SRC_URI="https://github.com/beefproject/${PN}/archive/${MY_COMMIT}.zip -> ${P}.zip"
SLOT="0"
LICENSE="AGPL-3"
#https://github.com/beefproject/beef/issues/1590
#KEYWORDS="~amd64 ~x86"
KEYWORDS="~amd64"
IUSE="qrcode dns network geoip notifications"
IUSE="qrcode dns +network geoip notifications msf +sqlite"
#DEPEND+=""
#RDEPEND+="net-analyzer/metasploit"
@ -36,35 +34,39 @@ ruby_add_rdepend "
dev-ruby/rack:2.0
dev-ruby/rack-protection:2
dev-ruby/em-websocket
dev-ruby/mime-types
dev-ruby/uglifier
dev-ruby/uglifier:*
dev-ruby/mime-types:*
dev-ruby/execjs
dev-ruby/ansi
dev-ruby/term-ansicolor
dev-ruby/dm-core
dev-ruby/json
dev-ruby/json:*
dev-ruby/data_objects
dev-ruby/rubyzip
dev-ruby/espeak-ruby
dev-ruby/nokogiri
dev-ruby/rake
dev-ruby/therubyracer
dev-ruby/dm-sqlite-adapter
sqlite? ( dev-ruby/dm-sqlite-adapter )
dev-ruby/parseconfig
dev-ruby/erubis
dev-ruby/dm-migrations
dev-ruby/msfrpc-client
msf? ( dev-ruby/msfrpc-client
dev-ruby/xmlrpc )
network? ( dev-ruby/dm-serializer )
"
# dns? ( =dev-ruby/rubydns-0.7.3 )
#gem 'term-ansicolor', :require => 'term/ansicolor'
#ext_network - outdated
# dev-ruby/dm-serializer
#fixme: add missing deps:
#postgres? dm-postgres-adapter
#mysql? dm-mysql-adapter
#geoip? geoip
#notifications? rushover twitter
#dns? ( =dev-ruby/rubydns-0.7.3 )
#qr? ( qr4r )
all_ruby_unpack() {
default_src_unpack
@ -86,9 +88,6 @@ all_ruby_prepare() {
sed -i -e 's/"abc123"/"secure"/' extensions/metasploit/config.yaml || die "failed to sed"
sed -i -e "s|'osx', path: '/opt/local/msf/'|'pentoo', path: '/usr/lib/metasploit/'|" extensions/metasploit/config.yaml || die "failed to sed"
#https://github.com/beefproject/beef/issues/1590
# sed -i -e "/sinatra/d" Gemfile || die "sed sinatra failed"
#even if we pass --without=blah bundler still calculates the deps and messes us up
if ! use test; then
sed -i -e "/^group :test do/,/^end$/d" Gemfile || die
@ -98,22 +97,18 @@ all_ruby_prepare() {
sed -i -e "/^group :geoip do/,/^end$/d" Gemfile || die
fi
#fixme: add missing ruby packages
if ! use notifications; then
sed -i -e "/^group :ext_notifications do/,/^end$/d" Gemfile || die
fi
#fixme: add missing ruby packages
if ! use dns; then
sed -i -e "/^group :ext_dns do/,/^end$/d" Gemfile || die
fi
#fixme: add missing ruby packages
if ! use network; then
sed -i -e "/^group :ext_network do/,/^end$/d" Gemfile || die
fi
#fixme: add missing ruby packages
if ! use qrcode; then
sed -i -e "/^group :ext_qrcode do/,/^end$/d" Gemfile || die
fi
@ -129,11 +124,5 @@ each_ruby_prepare() {
each_ruby_install() {
dodir /usr/$(get_libdir)/${PN}
cp -R * "${ED}"/usr/$(get_libdir)/${PN} || die "Copy files failed"
dodir /usr/sbin/
cat <<-EOF > "${ED}"/usr/sbin/beef || die
#!/bin/sh
cd /usr/lib/beef
exec ${RUBY} beef "\$@"
EOF
fperms +x /usr/sbin/beef
dobin ${FILESDIR}/beef
}

40
www-apps/beef/files/beef Normal file
View file

@ -0,0 +1,40 @@
#!/bin/sh
#copy of msf file, some functions (eselect, gemspec) are not required
#read the desired version of ruby from the eselected version beef
header="$(head -n1 /usr/lib/beef/beef)"
ruby="${header:2}"
#normally beef makes this dir, however, this script runs first
if [ ! -d ~/.beef ]; then
mkdir ~/.beef
fi
#we cannot control if beef* exits normally so always start with cleanup
if [ -f ~/.beef/Gemfile ]; then
rm ~/.beef/Gemfile
fi
if ls -A ~/.beef/*.gemspec > /dev/zero 2>&1; then
rm ~/.beef/*.gemspec
fi
#fetch the latest Gemfile and gemspecsfrom the selected version of beef
cp /usr/lib/beef/Gemfile ~/.beef/
if ls -A /usr/lib/beef/*.gemspec > /dev/zero 2>&1; then
cp /usr/lib/beef/*.gemspec ~/.beef/
fi
#ensure Gemfile.lock is up to date
BUNDLE_GEMFILE=~/.beef/Gemfile ${ruby} -S bundle check > /dev/null 2>&1
if [ "$?" != "0" ]; then
if [ -f ~/.beef/Gemfile.lock ]; then
rm ~/.beef/Gemfile.lock
else
echo "Something went wrong, please open a bug for beef on https://bugs.gentoo.org"
fi
fi
#ready to go
BUNDLE_GEMFILE=~/.beef/Gemfile ${ruby} -S bundle exec /usr/lib/beef/$(basename $0) "$@"
#profit