diff options
author | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2008-01-04 14:12:22 +0000 |
---|---|---|
committer | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2008-01-04 14:12:22 +0000 |
commit | 105c39452169a99274b933483e93fd3eaf6466d7 (patch) | |
tree | b38a033b45418c2fa2dbbc0293d7af47986889de /packaging/portableapps | |
parent | b6dc767069466ad485f6b53c518c3f1496f14af2 (diff) |
Update to use the generic manifest and make independent of the U3 packaging.
Also tidy up.
svn path=/trunk/; revision=24013
Diffstat (limited to 'packaging/portableapps')
-rwxr-xr-x | packaging/portableapps/win32/WiresharkPortable.ini | 5 | ||||
-rwxr-xr-x | packaging/portableapps/win32/WiresharkPortable.nsi | 68 | ||||
-rw-r--r-- | packaging/portableapps/win32/makefile.nmake | 42 | ||||
-rw-r--r-- | packaging/portableapps/win32/makenmake.pl | 86 | ||||
-rw-r--r-- | packaging/portableapps/win32/readme.txt | 19 |
5 files changed, 150 insertions, 70 deletions
diff --git a/packaging/portableapps/win32/WiresharkPortable.ini b/packaging/portableapps/win32/WiresharkPortable.ini index 22faab0493..590c15175d 100755 --- a/packaging/portableapps/win32/WiresharkPortable.ini +++ b/packaging/portableapps/win32/WiresharkPortable.ini @@ -4,10 +4,11 @@ # $Id$ # [WiresharkPortable] -WiresharkDirectory=App\Wireshark + +WiresharkDirectory=App/Wireshark WiresharkExecutable=wireshark.exe AdditionalParameters= -#DisableSplashScreen=false + DisableWinPcapInstall=false WinPcapInstaller=WinPcap_4_0_2.exe diff --git a/packaging/portableapps/win32/WiresharkPortable.nsi b/packaging/portableapps/win32/WiresharkPortable.nsi index c744ff3f59..7b29822a4c 100755 --- a/packaging/portableapps/win32/WiresharkPortable.nsi +++ b/packaging/portableapps/win32/WiresharkPortable.nsi @@ -30,7 +30,6 @@ !define WEBSITE "www.wireshark.org" !define DEFAULTEXE "wireshark.exe" !define DEFAULTAPPDIR "Wireshark" -!define DEFAULTSETTINGSDIR "settings" !define DEFAULTWINPCAP "WinPcap_4_0_2.exe" ;=== Program Details @@ -61,32 +60,26 @@ RequestExecutionLevel user ;=== Include !include "FileFunc.nsh" !insertmacro GetParameters -;!insertmacro GetRoot -;!include "ReplaceInFile.nsh" -;!include "StrRep.nsh" ;=== Program Icon Icon "Files/App/AppInfo/${APP}.ico" Var PROGRAMDIRECTORY -Var SETTINGSDIRECTORY Var ADDITIONALPARAMETERS Var EXECSTRING Var PROGRAMEXECUTABLE Var INIPATH -Var SECONDARYLAUNCH -Var DISABLESPLASHSCREEN Var DISABLEWINPCAPINSTALL Var WINPCAPINSTALLER Var WINPCAP_UNINSTALL ;declare variable for holding the value of a registry key Var PDRIVE Section "Main" - ;=== Check if already running + ;=== Check if another WiresharkPortable already running System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${NAME}") i .r1 ?e' Pop $0 StrCmp $0 0 CheckINI - StrCpy $SECONDARYLAUNCH "true" + Goto WarnAnotherInstance CheckINI: ;=== Find the INI file, if there is one @@ -103,15 +96,13 @@ Section "Main" ;=== Read the parameters from the INI file ReadINIStr $0 "$INIPATH\${NAME}.ini" "${NAME}" "${APP}Directory" StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\$0" - ReadINIStr $0 "$INIPATH\${NAME}.ini" "${NAME}" "SettingsDirectory" - StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\$0" ;=== Check that the above required parameters are present IfErrors NoINI - ReadINIStr $PROGRAMEXECUTABLE "$INIPATH\${NAME}.ini" "${NAME}" "ProgramExecutable" + ReadINIStr $PROGRAMEXECUTABLE "$INIPATH\${NAME}.ini" "${NAME}" "${APP}Executable" ReadINIStr $ADDITIONALPARAMETERS "$INIPATH\${NAME}.ini" "${NAME}" "AdditionalParameters" - ReadINIStr $DISABLESPLASHSCREEN "$INIPATH\${NAME}.ini" "${NAME}" "DisableSplashScreen" + ReadINIStr $DISABLEWINPCAPINSTALL "$INIPATH\${NAME}.ini" "${NAME}" "DisableWinPcapInstall" ReadINIStr $WINPCAPINSTALLER "$INIPATH\${NAME}.ini" "${NAME}" "WinPcapInstaller" @@ -137,17 +128,15 @@ Section "Main" IfFileExists "$EXEDIR\App\${DEFAULTAPPDIR}\${DEFAULTEXE}" "" CheckPortableProgramDIR StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\App\${DEFAULTAPPDIR}" - StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\Data\${DEFAULTSETTINGSDIR}" GoTo EndINI CheckPortableProgramDIR: IfFileExists "$EXEDIR\${NAME}\App\${DEFAULTAPPDIR}\${DEFAULTEXE}" "" NoProgramEXE StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\${NAME}\App\${DEFAULTAPPDIR}" - StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\${NAME}\Data\${DEFAULTSETTINGSDIR}" GoTo EndINI EndINI: - IfFileExists "$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" FoundProgramEXE + IfFileExists "$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" GetPassedParameters NoProgramEXE: ;=== Program executable not where expected @@ -155,24 +144,16 @@ Section "Main" Abort FoundProgramEXE: - ;=== Check if running - StrCmp $SECONDARYLAUNCH "true" GetPassedParameters + ;=== Check if Wireshark running from somwehere else (e.g. U3 device) ; if the following step fails, you'll need the FindProcDLL plug-in from: ; http://nsis.sourceforge.net/Find_Process_By_Name - FindProcDLL::FindProc "${DEFAULTEXE}" - StrCmp $R0 "1" WarnAnotherInstance DisplaySplash + FindProcDLL::FindProc "${PROGRAMEXECUTABLE}" + StrCmp $R0 "1" WarnAnotherInstance GetPassedParameters WarnAnotherInstance: - MessageBox MB_OK|MB_ICONINFORMATION `Another instance of ${APP} is already running. Please close other instances of ${APP} before launching ${FULLNAME}.` + MessageBox MB_OK|MB_ICONINFORMATION `Another instance of ${APP} is already running. Please close other instances of ${APP} before launching ${FULLNAME}.` Abort - DisplaySplash: -; StrCmp $DISABLESPLASHSCREEN "true" GetPassedParameters - ;=== Show the splash screen while processing registry entries -; InitPluginsDir -; File /oname=$PLUGINSDIR\splash.jpg "${NAME}.jpg" -; newadvsplash::show /NOUNLOAD 1000 100 0 -1 /L $PLUGINSDIR\splash.jpg - GetPassedParameters: ;=== Get any passed parameters ${GetParameters} $0 @@ -221,34 +202,8 @@ Section "Main" System::Call 'Kernel32::SetEnvironmentVariableA(t,t) i("U3_DEVICE_EXEC_PATH", "$EXEDIR\App\Wireshark").r0' System::Call 'Kernel32::SetEnvironmentVariableA(t,t) i("U3_ENV_VERSION", "1.0").r0' System::Call 'Kernel32::SetEnvironmentVariableA(t,t) i("U3_ENV_LANGUAGE", "1033").r0' -; SettingsDirectory: - ;=== Set the settings directory if we have a path -; IfFileExists "$SETTINGSDIRECTORY\*.*" CheckForSettings -; CreateDirectory $SETTINGSDIRECTORY - -; CheckForSettings: StrCmp $SECONDARYLAUNCH "true" LaunchAndExit -; IfFileExists "$PROGRAMDIRECTORY\sumatrapdfprefs.txt" AdjustPaths -; IfFileExists "$SETTINGSDIRECTORY\sumatrapdfprefs.txt" MoveSettings AdjustPaths - ;IfFileExists "$EXEDIR\App\DefaultData\sumatrapdfprefs.txt" "" LaunchNow - ; CopyFiles /SILENT "$EXEDIR\App\DefaultData\sumatrapdfprefs.txt" "$PROGRAMDIRECTORY" - ; Goto LaunchNow - -; MoveSettings: -; Rename "$SETTINGSDIRECTORY\sumatrapdfprefs.txt" "$PROGRAMDIRECTORY\sumatrapdfprefs.txt" - -; AdjustPaths: -; ReadINIStr $LASTDRIVE "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDrive" -; ${GetRoot} $EXEDIR $CURRENTDRIVE -; StrCmp $LASTDRIVE $CURRENTDRIVE RememberPath -; IfFileExists "$PROGRAMDIRECTORY\sumatrapdfprefs.txt" "" RememberPath -; ${ReplaceInFile} "$PROGRAMDIRECTORY\sumatrapdfprefs.txt" 'File: $LASTDRIVE' 'File: $CURRENTDRIVE' -; Delete "$PROGRAMDIRECTORY\sumatrapdfprefs.txt.old" - -; RememberPath: -; WriteINIStr "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDrive" "$CURRENTDRIVE" - ;LaunchNow: ExecWait $EXECSTRING CheckRunning: @@ -256,18 +211,13 @@ Section "Main" FindProcDLL::FindProc "${DEFAULTEXE}" StrCmp $R0 "1" CheckRunning - ;UninstallWinPcap: StrCmp $WINPCAP_UNINSTALL "" TheEnd ;=== if we installed it, uninstall it ExecWait $WINPCAP_UNINSTALL - ;=== Put the settings file back -; Sleep 500 -; Rename "$PROGRAMDIRECTORY\sumatrapdfprefs.txt" "$SETTINGSDIRECTORY\sumatrapdfprefs.txt" Goto TheEnd LaunchAndExit: Exec $EXECSTRING TheEnd: -; newadvsplash::wait SectionEnd diff --git a/packaging/portableapps/win32/makefile.nmake b/packaging/portableapps/win32/makefile.nmake index 5fe3bf2ec8..bcf5fde3d9 100644 --- a/packaging/portableapps/win32/makefile.nmake +++ b/packaging/portableapps/win32/makefile.nmake @@ -13,6 +13,8 @@ APPINFO = AppInfo WIRESHARK = Wireshark SOURCE = WiresharkPortableSource +WSMANIFEST = ../../wireshark.manifest + FINDPROCDLL = $(MAKENSIS)\..\Plugins\FindProcDLL.dll TOPDIR = ..\..\.. @@ -24,6 +26,8 @@ COPY_FLAGS = /d /y WIN32_SETUP_OPT=--download !ENDIF +UPX_FLAGS = -q + PAPPS_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_MICRO).0 all: package @@ -39,13 +43,31 @@ dirs: if not exist $(FILES)\$(OTHER) $(MKDIR) $(FILES)\$(OTHER) if not exist $(FILES)\$(OTHER)\$(SOURCE) $(MKDIR) $(FILES)\$(OTHER)\$(SOURCE) -wireshark: - cd $(U3DIST) - nmake -f makefile.nmake test - cd ../../portableapps/win32 - $(COPY) $(U3DIST)\device\* $(FILES)\$(APP)\$(WIRESHARK) /S $(COPY_FLAGS) - $(COPY) $(U3DIST)\host\* $(FILES)\$(APP)\$(WIRESHARK) /S $(COPY_FLAGS) -# $(UPX) $(FILES)\$(APP)\$(WIRESHARK)\*.dll +nsis-bits: + cd ../../nsis + $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake user-guide.chm NEWS.txt + cd ../u3/win32 + +$(WSMANIFEST): + cd ../.. + $(MAKE) /$(MAKEFLAGS) -f makefile.nmake wireshark.manifest + cd portableapps/win32 + +distribution.nmake: $(WSMANIFEST) makenmake.pl + $(PERL) makenmake.pl $(WSMANIFEST) > $@ + +distribution: distribution.nmake + nmake -f distribution.nmake + +pack: distribution +!IFDEF UPX + -$(UPX) $(UPX_FLAGS) $(FILES)\$(APP)\$(WIRESHARK)\*.exe + -$(UPX) $(UPX_FLAGS) $(FILES)\$(APP)\$(WIRESHARK)\*.dll + -$(UPX) $(UPX_FLAGS) $(FILES)\$(APP)\$(WIRESHARK)\plugins\$(VERSION)\*.dll + -$(UPX) $(UPX_FLAGS) $(FILES)\$(APP)\$(WIRESHARK)\lib\gtk-2.0\$(GTK2_LIB_DIR)\immodules\*.dll + -$(UPX) $(UPX_FLAGS) $(FILES)\$(APP)\$(WIRESHARK)\$(GTK_WIMP_DLLDST_DIR)\*.dll +!ENDIF + appinfo.ini: appinfo.tmpl $(TOPDIR)\config.nmake sed -e 's/$$(PAPPS_VERSION)/$(PAPPS_VERSION)/g' \ @@ -67,7 +89,7 @@ findprocdll: @$(SH) $(TOPDIR)\tools\win32-setup.sh "$(WIN32_SETUP_OPT)" "$(MAKENSIS)\.." \ Plugins FindProc.zip -WiresharkPortable-$(VERSION).paf.exe : dirs appinfo wireshark source Files/WiresharkPortable.exe Installer.nsi +WiresharkPortable-$(VERSION).paf.exe : dirs appinfo nsis-bits pack source Files/WiresharkPortable.exe Installer.nsi $(MAKENSIS) \ /DVERSION=$(PAPPS_VERSION) \ /DWSVERSION=$(VERSION) \ @@ -80,8 +102,12 @@ Files/WiresharkPortable.exe : WiresharkPortable.nsi findprocdll WiresharkPortable.nsi clean: + cd ../../ + $(MAKE) -f makefile.nmake $@ + cd portableapps/win32 rm -rf $(FILES) rm -rf appinfo.ini + rm -rf distribution.nmake rm -rf WiresharkPortable-$(VERSION).paf.exe rm -rf *~ *.*~ diff --git a/packaging/portableapps/win32/makenmake.pl b/packaging/portableapps/win32/makenmake.pl new file mode 100644 index 0000000000..ad2c704d34 --- /dev/null +++ b/packaging/portableapps/win32/makenmake.pl @@ -0,0 +1,86 @@ +# +# makenmake.pl - create a nmake file from a generic manifest file that will create the appropriate PortableApp structure +# $Id$ +# + +print " +include ../../../config.nmake +include <win32.mak> + +FILES = Files +APP = App +WIRESHARK = Wireshark + +TOPDIR = ..\\..\\.. +COPY = xcopy +MOVE = mv +MKDIR = mkdir +COPY_FLAGS = /d /y + +distribution: +"; + +while($line = <>) { + + if($line =~ /^\#/) { # comment + next; + } elsif($line =~ /^\[(\S+)/) { # new directory + $dir = $1; + + $dir =~ s/\$INSTDIR?//; # remove $INSTDIR + + $dir =~ s/\{/\(/g; $dir =~ s/\}/\)/g; # convert curlies to round brackets + + if($dir ne '') { + print "\tif not exist \$(FILES)\\\$(APP)\\\$(WIRESHARK)$dir \$(MKDIR) \$(FILES)\\\$(APP)\\\$(WIRESHARK)$dir\n"; + } + + } else { # this is a file + + $line =~ /^\s+(\S+)/; + $file = $1; + + $file =~ s/\{/\(/g; $file =~ s/\}/\)/g; # convert curlies to round brackets + + if($file =~ /^[^\$]/) { + $file = "\$(TOPDIR)\\" . $file; + } + + if($line =~ /ifdef=(\w+)/) { # dependency + if($define ne $1) { + if(defined $define) { + print "!ENDIF\n"; + } + $define = $1; + print "!IF DEFINED($define)"; + + if($define eq "GTK1_DIR") { + # only include this if GTK2_DIR is not defined + print "& !DEFINED(GTK2_DIR)"; + } + + print "\n"; + } + } else { + + if(defined $define) { + print "!ENDIF\n"; + } + undef $define; + } + + $oname = ""; + + print "\t\$(COPY) $file \$(FILES)\\\$(APP)\\\$(WIRESHARK)$dir \$(COPY_FLAGS)\n"; + + if($line =~ /oname=(\S+)/) { # override this filename + $oname = $1; + $file =~ /\\(.*)$/; + $name = $1; + + print "\t\$(MOVE) \$(FILES)\\\$(APP)\\\$(WIRESHARK)\\$dir\\$name \$(FILES)\\\$(APP)\\\$(WIRESHARK)\\$dir\\$oname\n"; + + } + + } +} diff --git a/packaging/portableapps/win32/readme.txt b/packaging/portableapps/win32/readme.txt index 3cb6411c0c..c6a32c4935 100644 --- a/packaging/portableapps/win32/readme.txt +++ b/packaging/portableapps/win32/readme.txt @@ -25,5 +25,22 @@ NSIS is used by the standard Win32 installation mechansim (packaging/nsis) but a INI Settings ============ +The Wireshark Portable Launcher will look for an ini file called WiresharkPortable.ini within its directory. It is only necessary to have a ini file if you wish to change the default configuration. +There is an example INI included with this package to get you started. The INI file is formatted as follows: -To be documented. +[WiresharkPortable] +WiresharkDirectory +WiresharkExecutable +AdditionalParameters +DisableWinPcapInstall +WinPcapInstaller + +The WiresharkDirectory entry should be set to the *relative* path to the directory containing the Wireshark Portable Launcher (WiresharkPortable.exe). This entry must be present. + +The WiresharkExecutable entry allows you to set the Wireshark Portable Launcher to use an alternate EXE call to launch Wireshark. + +The AdditionalParameters entry allows you to pass additional commandline parameter entries to wireshark.exe. + +The DisableWinPcapInstall allows you to disable the installation of WinPcap, even if it it not present on the host system. + +The WinPcapInstaller allows you to specify a different WinPcap installer than the default one included in the distribution. For example, if you download a later version.
\ No newline at end of file |