Land #5658, MSF version includes git hash now

bug/bundler_fix 4.11.4-2015071402
Samuel Huckins 2015-07-14 09:21:25 -05:00
commit 60444c208b
No known key found for this signature in database
GPG Key ID: 5FD48AA28C03C944
6 changed files with 41 additions and 22 deletions

View File

@ -1,7 +1,7 @@
PATH PATH
remote: . remote: .
specs: specs:
metasploit-framework (4.11.3.pre.dev) metasploit-framework (4.11.3)
actionpack (>= 4.0.9, < 4.1.0) actionpack (>= 4.0.9, < 4.1.0)
activesupport (>= 4.0.9, < 4.1.0) activesupport (>= 4.0.9, < 4.1.0)
bcrypt bcrypt
@ -20,14 +20,14 @@ PATH
rubyzip (~> 1.1) rubyzip (~> 1.1)
sqlite3 sqlite3
tzinfo tzinfo
metasploit-framework-db (4.11.3.pre.dev) metasploit-framework-db (4.11.3)
activerecord (>= 4.0.9, < 4.1.0) activerecord (>= 4.0.9, < 4.1.0)
metasploit-credential (= 1.0.0) metasploit-credential (= 1.0.0)
metasploit-framework (= 4.11.3.pre.dev) metasploit-framework (= 4.11.3)
metasploit_data_models (= 1.2.5) metasploit_data_models (= 1.2.5)
pg (>= 0.11) pg (>= 0.11)
metasploit-framework-pcap (4.11.3.pre.dev) metasploit-framework-pcap (4.11.3)
metasploit-framework (= 4.11.3.pre.dev) metasploit-framework (= 4.11.3)
network_interface (~> 0.0.1) network_interface (~> 0.0.1)
pcaprub pcaprub

View File

@ -16,4 +16,4 @@ module Metasploit
GEM_VERSION = Gem::Version.new(Metasploit::Framework::GEM_VERSION) GEM_VERSION = Gem::Version.new(Metasploit::Framework::GEM_VERSION)
end end
end end
end end

View File

@ -1,13 +1,43 @@
require 'rbconfig'
require 'yaml'
module Metasploit module Metasploit
module Framework module Framework
module Version module Version
# Determines the git hash for this source tree
#
# @return [String] the git hash for this source tree
def self.get_hash
@@git_hash ||= begin
root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..'))
version_yml = File.join(root, 'version.yml')
hash = ''
if File.exist?(version_yml)
version_info = YAML.load_file(version_yml)
hash = '-' + version_info['build_framework_rev']
else
# determine if git is installed
void = RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL' : '/dev/null'
git_installed = system("git --version >>#{void} 2>&1")
# get the hash of the HEAD commit
if git_installed && File.exist?(File.join(root, '.git'))
hash = '-' + `git rev-parse HEAD`[0, 8]
end
end
hash.strip
end
end
MAJOR = 4 MAJOR = 4
MINOR = 11 MINOR = 11
PATCH = 3 PATCH = 3
PRERELEASE = 'dev' PRERELEASE = 'dev'
HASH = get_hash
end end
VERSION = "#{Version::MAJOR}.#{Version::MINOR}.#{Version::PATCH}-#{Version::PRERELEASE}" VERSION = "#{Version::MAJOR}.#{Version::MINOR}.#{Version::PATCH}-#{Version::PRERELEASE}#{Version::HASH}"
GEM_VERSION = VERSION.gsub('-', '.pre.') GEM_VERSION = "#{Version::MAJOR}.#{Version::MINOR}.#{Version::PATCH}"
end end
end end

View File

@ -11,6 +11,7 @@ require 'monitor'
# #
require 'metasploit/framework/version' require 'metasploit/framework/version'
require 'msf/base/config'
require 'msf/core' require 'msf/core'
require 'msf/util' require 'msf/util'
@ -33,16 +34,10 @@ class Framework
Minor = Metasploit::Framework::Version::MINOR Minor = Metasploit::Framework::Version::MINOR
Point = Metasploit::Framework::Version::PATCH Point = Metasploit::Framework::Version::PATCH
Release = "-#{Metasploit::Framework::Version::PRERELEASE}" Release = "-#{Metasploit::Framework::Version::PRERELEASE}"
Version = Metasploit::Framework::VERSION
if(Point)
Version = "#{Major}.#{Minor}.#{Point}#{Release}"
else
Version = "#{Major}.#{Minor}#{Release}"
end
Revision = "$Revision$" Revision = "$Revision$"
# Repository information # Repository information
RepoRevision = ::Msf::Util::SVN.revision RepoRevision = ::Msf::Util::SVN.revision
RepoUpdated = ::Msf::Util::SVN.updated RepoUpdated = ::Msf::Util::SVN.updated

View File

@ -418,7 +418,7 @@ class Core
avdwarn = nil avdwarn = nil
banner_trailers = { banner_trailers = {
:version => "%yelmetasploit v#{Msf::Framework::Version} [core:#{Metasploit::Framework::Core::GEM_VERSION} api:#{Metasploit::Framework::API::GEM_VERSION}]%clr", :version => "%yelmetasploit v#{Metasploit::Framework::VERSION}%clr",
:exp_aux_pos => "#{framework.stats.num_exploits} exploits - #{framework.stats.num_auxiliary} auxiliary - #{framework.stats.num_post} post", :exp_aux_pos => "#{framework.stats.num_exploits} exploits - #{framework.stats.num_auxiliary} auxiliary - #{framework.stats.num_post} post",
:pay_enc_nop => "#{framework.stats.num_payloads} payloads - #{framework.stats.num_encoders} encoders - #{framework.stats.num_nops} nops", :pay_enc_nop => "#{framework.stats.num_payloads} payloads - #{framework.stats.num_encoders} encoders - #{framework.stats.num_nops} nops",
:free_trial => "Free Metasploit Pro trial: http://r-7.co/trymsp", :free_trial => "Free Metasploit Pro trial: http://r-7.co/trymsp",

View File

@ -17,16 +17,10 @@ describe Msf::Framework do
end end
describe "#version" do describe "#version" do
CURRENT_VERSION = "4.11.3-dev"
subject(:framework) do subject(:framework) do
described_class.new described_class.new
end end
it "should return the current version" do
framework.version.should == CURRENT_VERSION
end
it "should return the Version constant" do it "should return the Version constant" do
described_class.const_get(:Version).should == framework.version described_class.const_get(:Version).should == framework.version
end end