diff --git a/external/installer-linux/build.sh b/external/installer-linux/build.sh index 1c08c88ca0..eb9715b726 100755 --- a/external/installer-linux/build.sh +++ b/external/installer-linux/build.sh @@ -1,36 +1,18 @@ #!/bin/sh -VERSION="3.4.0-release" +VERSION="3.4.1-release" BASE=`dirname $0` -# We can only "exclude" directories. For specific files, we just have to rm -# them. -MINI_EXCLUDES=" -data/templates/src -documentation -external/installer-linux -external/installer-win32 -external/source -lib/rex/exploitation/opcodedb.rb -test -" -MINI_RM=" -msfd -msfelfscan -msfgui -msfmachscan -msfopcode -msfpescan -msfrpc -msfrpcd -msfweb -test -$(find tmp/msf3-mini -name '*.rb.ut.rb') -" - +ARCHIVE=$1 +if [ -n "${ARCHIVE}" ]; then + echo "Extracting archive" + rm -rf tmp/msf3-* + tar -C tmp -xjf "${ARCHIVE}" + cp -r tmp/msf3-http tmp/msf3-full +fi # -# Expects tmp/msf3.tar to exist +# Expects tmp/msf3.tar to exist and contain a single directory called msf3 # build_makeself() { TITLE=$1 @@ -48,31 +30,16 @@ build_makeself() { rm -rf ${TMP} } -if [ -f tmp/msf3/msfconsole ]; then - svn up tmp/msf3 -else - svn co https://www.metasploit.com/svn/framework3/trunk msf3 -fi -if [ -f tmp/msf3-mini/msfconsole ]; then - svn up tmp/msf3-mini -else - cp -r tmp/msf3 tmp/msf3-mini - for dir in ${MINI_EXCLUDES}; do - # Supposedly only have to do this once - svn up --set-depth=exclude "$dir" 2>/dev/null - done -fi -for file in ${MINI_RM}; do - rm -rf tmp/msf3-mini/"$file" -done +# Remove any lingering symlinks from previous builds +rm tmp/msf3 - -(cd tmp; tar cf msf3.tar msf3) +(cd tmp; ln -sf msf3-full msf3; tar hcf msf3.tar msf3) TITLE="Metasploit Framework v${VERSION} Installer (64-bit)" INSTALLER_FILENAME="framework-${VERSION}-linux-x86_64.run" BINPATH="${BASE}/bin/linux64.tar.bz2" if [ -f ${BINPATH} ]; then + echo "Making 64-bit" build_makeself "${TITLE}" "${INSTALLER_FILENAME}" "${BINPATH}" fi @@ -80,16 +47,17 @@ TITLE="Metasploit Framework v${VERSION} Installer (32-bit)" INSTALLER_FILENAME="framework-${VERSION}-linux-i686.run" BINPATH="${BASE}/bin/linux32.tar.bz2" if [ -f ${BINPATH} ]; then + echo "Making 32-bit" # Build the regular 32-bit installer # Uses the same msf3.tar as 64-bit, so we don't need to regenerate it. build_makeself "${TITLE}" "${INSTALLER_FILENAME}" "${BINPATH}" - # Set up and build the mini 32-bit installer - mv tmp/msf3 tmp/msf3-full - mv tmp/msf3-mini tmp/msf3 - (cd tmp; tar cf msf3.tar msf3) - mv tmp/msf3 tmp/msf3-mini - mv tmp/msf3-full tmp/msf3 + if [ ! -d tmp/msf3-mini ]; then + ./minify.sh tmp/msf3-full + fi + + rm tmp/msf3 + (cd tmp; ln -sf msf3-mini msf3; tar hcf msf3.tar msf3) TITLE="Metasploit Framework v${VERSION} Miniature Installer (32-bit)" INSTALLER_FILENAME="framework-${VERSION}-mini-linux-i686.run"