Bug 340173 - Rework l10n part of NSIS installer. r=l10n, sr=bsmedberg

This commit is contained in:
rob_strong%exchangecode.com 2006-06-22 00:24:53 +00:00
parent 9c1bc7d3ad
commit 2641b37500
16 changed files with 1158 additions and 662 deletions

View File

@ -55,8 +55,7 @@ PP_LOCALIZED_FILES = \
INSTALLER_FILES = \
app.tag \
nsis/instfiles-extra.nsi \
nsis/uninstfiles-extra.nsi \
nsis/installer.nsi \
nsis/SetProgramAccess.nsi \
$(NULL)
@ -74,12 +73,12 @@ DEFINES += \
$(NULL)
include $(topsrcdir)/config/config.mk
include $(call EXPAND_LOCALE_SRCDIR,toolkit/locales)/installer/windows/charset.mk
installer::
$(MAKE) -C .. installer-stage
$(RM) -rf instgen && mkdir instgen
$(INSTALL) $(addprefix $(srcdir)/,$(INSTALLER_FILES)) instgen
$(INSTALL) $(call EXPAND_LOCALE_SRCDIR,browser/locales)/installer/appLocale.nsi instgen
$(INSTALL) $(addprefix $(DIST)/branding/,$(BRANDING_FILES)) instgen
cp $(topsrcdir)/browser/EULA instgen/license.txt
$(EXIT_ON_ERROR) \
@ -90,6 +89,9 @@ installer::
../removed-files > instgen/removed-files.log
$(PERL) $(topsrcdir)/config/preprocessor.pl -Fsubstitution $(DEFINES) $(ACDEFINES) \
$(srcdir)/nsis/defines.nsi.in > instgen/defines.nsi
$(PERL) $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.pl \
$(topsrcdir) $(call EXPAND_LOCALE_SRCDIR,browser/locales)/installer $(AB_CD) \
$(WIN_INSTALLER_CHARSET)
include $(topsrcdir)/config/rules.mk
include $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/makensis.mk

View File

@ -55,6 +55,15 @@
; When installing with defaults we should always install into the previous location
; ReadRegStr $0 HKCR "http\shell\open\command" ""
; Sets program access and defaults - hide / show shortcuts on the Desktop and in
; QuickLaunch. This is a royal PITA since the application version can change out
; from under us and there may also be more than one version of the application
; installed. This also needs to respect whether the shortcuts have been modified
; since their initial creation and take into account whether the shortcut is
; located in all users or the current user desktop.
; To remove a shortcut it must point to this installation main executable and it
; must not have additional arguments.
; To create a shortcut a shortcut must not already exist with the same name.
Function un.SetAccess
Call un.GetParameters
Pop $R0
@ -64,25 +73,32 @@ Function un.SetAccess
; Hide icons - initiated from Set Program Access and Defaults
${If} $R0 == '/ua "${AppVersion} (${AB_CD})" /hs browser'
${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk"
Pop $0
${If} $0 == "$INSTDIR\${FileMainEXE}"
Delete "$QUICKLAUNCH\${BrandFullName}.lnk"
WriteRegDWORD HKLM $R1 "IconsVisible" 0
${EndIf}
${EndIf}
WriteRegDWORD HKLM $R1 "IconsVisible" 0
${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
SetShellVarContext current ; Set $DESKTOP to the current user's desktop
${EndUnless}
${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk"
ShellLink::GetShortCutArgs "$DESKTOP\${BrandFullName}.lnk"
Pop $0
${If} $0 == "$INSTDIR\${FileMainEXE}"
Delete "$DESKTOP\${BrandFullName}.lnk"
WriteRegDWORD HKLM $R1 "IconsVisible" 0
${If} $0 == ""
ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk"
Pop $0
${If} $0 == "$INSTDIR\${FileMainEXE}"
Delete "$DESKTOP\${BrandFullName}.lnk"
${EndIf}
${EndIf}
${EndIf}
${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
ShellLink::GetShortCutArgs "$QUICKLAUNCH\${BrandFullName}.lnk"
Pop $0
${If} $0 == ""
ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk"
Pop $0
${If} $0 == "$INSTDIR\${FileMainEXE}"
Delete "$QUICKLAUNCH\${BrandFullName}.lnk"
${EndIf}
${EndIf}
${EndIf}
Abort
@ -91,18 +107,21 @@ Function un.SetAccess
; Show icons - initiated from Set Program Access and Defaults
${If} $R0 == '/ua "${AppVersion} (${AB_CD})" /ss browser'
WriteRegDWORD HKLM $R1 "IconsVisible" 1
${Unless} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
CreateShortCut "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
${EndUnless}
${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
CreateShortCut "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
ShellLink::SetShortCutWorkingDirectory "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR"
${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
SetShellVarContext current ; Set $DESKTOP to the current user's desktop
${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
CreateShortCut "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
ShellLink::SetShortCutWorkingDirectory "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR"
${EndUnless}
${EndUnless}
${EndUnless}
${Unless} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
CreateShortCut "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
ShellLink::SetShortCutWorkingDirectory "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR"
${EndUnless}
Abort
${EndIf}
FunctionEnd

View File

@ -49,6 +49,10 @@ SetDatablockOptimize on
SetCompress off
CRCCheck on
; empty files - except for the comment line - for generating custom pages.
!system 'echo ; > options.ini'
!system 'echo ; > shortcuts.ini'
!addplugindir ./
; Other files may depend upon these includes!
@ -69,7 +73,6 @@ CRCCheck on
!insertmacro TrimNewLines
!insertmacro un.TrimNewLines
!insertmacro WordFind
!insertmacro un.WordFind
!insertmacro WordReplace
; Use the pre-processor where ever possible
@ -84,12 +87,9 @@ Var fhInstallLog
Var fhUninstallLog
!include defines.nsi
!include commonLocale.nsh
!include SetProgramAccess.nsi
!include common.nsh
!include version.nsh
; If/when appLocale.nsi contains required locale strings remove /NONFATAL
!include /NONFATAL appLocale.nsi
!insertmacro RegCleanMain
!insertmacro un.RegCleanMain
@ -108,35 +108,28 @@ OutFile "setup.exe"
InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${BrandFullName} (${AppVersion})" "InstallLocation"
InstallDir "$PROGRAMFILES\${BrandFullName}"
; using " " for BrandingText will hide the "Nullsoft Install System..." branding
BrandingText " "
ShowInstDetails nevershow
ShowUnInstDetails nevershow
################################################################################
# Modern User Interface - MUI
;!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile options.ini
ReserveFile shortcuts.ini
!define MUI_ABORTWARNING
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_ICON setup.ico
!define MUI_UNICON setup.ico
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_WELCOMEFINISHPAGE_BITMAP wizWatermark.bmp
!define MUI_UNWELCOMEFINISHPAGE_BITMAP wizWatermark.bmp
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP wizHeader.bmp
!define MUI_ABORTWARNING
!define MUI_CUSTOMFUNCTION_GUIINIT myGUIINIT
!define MUI_CUSTOMFUNCTION_UNGUIINIT un.myGUIINIT
/**
* Installation Pages
*/
@ -144,20 +137,20 @@ ReserveFile shortcuts.ini
!insertmacro MUI_PAGE_WELCOME
; License Page
LicenseForceSelection radiobuttons
!define MUI_LICENSEPAGE_RADIOBUTTONS
!insertmacro MUI_PAGE_LICENSE license.txt
; Custom Options Page
Page custom Options ChangeOptions
Page custom preOptions ChangeOptions
; Select Install Components Page
!define MUI_PAGE_CUSTOMFUNCTION_PRE preComponents
!insertmacro MUI_PAGE_COMPONENTS
; Select Install Directory Page
!define MUI_PAGE_CUSTOMFUNCTION_PRE CheckCustom
!insertmacro MUI_PAGE_DIRECTORY
; Select Install Components Page
!define MUI_PAGE_CUSTOMFUNCTION_PRE CheckCustom
!insertmacro MUI_PAGE_COMPONENTS
; Custom Shortcuts Page - CheckCustom is Called in Shortcuts
Page custom preShortcuts ChangeShortcuts
@ -199,23 +192,14 @@ Page custom preShortcuts ChangeShortcuts
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_FINISHPAGE_SHOWREADME ""
; Only setup the survey controls, functions, etc. when the appLocale.nsi
; has DO_UNINSTALL_SURVEY defined to indicate the survey has been localized.
!ifdef DO_UNINSTALL_SURVEY
; Setup the survey controls, functions, etc. except when the application has
; defined NO_UNINSTALL_SURVEY
!ifndef NO_UNINSTALL_SURVEY
!define MUI_FINISHPAGE_SHOWREADME_TEXT $(SURVEY_TEXT)
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION un.survey
!endif
!insertmacro MUI_UNPAGE_FINISH
; Languages
; DEF_MUI_LANGUAGE is defined in commonLocale.nsh so MUI_LANGUAGE can be
; easily defined along with the other locale specific settings
!insertmacro DEF_MUI_LANGUAGE
################################################################################
# Modern User Interface - MUI
!insertmacro MUI_UNPAGE_FINISH\
/**
* Adds a section divider to the human readable log.
@ -224,19 +208,6 @@ Function WriteLogSeparator
FileWrite $fhInstallLog "$\r$\n-------------------------------------------------------------------------------$\r$\n"
FunctionEnd
; Runs before the UI has been initialized for install
Function myGUIINIT
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "options.ini"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "shortcuts.ini"
FunctionEnd
; Runs before the UI has been initialized for uninstall
Function un.myGUIINIT
GetFullPathName $INSTDIR "$INSTDIR\.."
; XXXrstrong - should we quit when the app exe is not present?
Call un.SetAccess
FunctionEnd
; Callback used to check if the app being uninstalled is running.
Function un.checkIfAppIsLoaded
; Try to delete the app executable and if we can't delete it try to close the
@ -290,9 +261,9 @@ Function un.GetParameters
Exch $R0
FunctionEnd
; Only setup the survey controls, functions, etc. when the appLocale.nsi
; has DO_UNINSTALL_SURVEY defined to indicate the survey has been localized.
!ifdef DO_UNINSTALL_SURVEY
; Setup the survey controls, functions, etc. except when the application has
; defined NO_UNINSTALL_SURVEY
!ifndef NO_UNINSTALL_SURVEY
Function un.survey
Exec "$\"$TmpVal$\" $\"${SurveyURL}$\""
FunctionEnd
@ -381,7 +352,7 @@ Function FinishInstall
FileClose $fhInstallLog
FunctionEnd
Section "Application" Section1
Section "-Application" Section1
SectionIn 1 RO
SetOutPath $INSTDIR
; For a "Standard" upgrade without talkback installed add the InstallDisabled
@ -455,10 +426,10 @@ Section "Application" Section1
${LogMsg} "App Version: ${AppVersion}"
${LogMsg} "GRE Version: ${GREVersion}"
${If} ${FileExists} "$EXEDIR\config\removed-files.log"
${If} ${FileExists} "$EXEDIR\removed-files.log"
${LogHeader} "Removing Obsolete Files and Directories"
${LineFind} "$EXEDIR\config\removed-files.log" "/NUL" "1:-1" "onInstallDeleteFile"
${LineFind} "$EXEDIR\config\removed-files.log" "/NUL" "1:-1" "onInstallRemoveDir"
${LineFind} "$EXEDIR\removed-files.log" "/NUL" "1:-1" "onInstallDeleteFile"
${LineFind} "$EXEDIR\removed-files.log" "/NUL" "1:-1" "onInstallRemoveDir"
${EndIf}
${DeleteFile} "$INSTDIR\install_wizard.log"
@ -509,7 +480,160 @@ Section "Application" Section1
${EndIf}
${EndIf}
!include /NONFATAL instfiles-extra.nsi
${LogHeader} "Adding Additional Files"
; Only for Firefox and only if they don't already exist
; Check if QuickTime is installed and copy the contents of its plugins
; directory into the app's plugins directory. Previously only the
; nsIQTScriptablePlugin.xpt files was copied which is not enough to enable
; QuickTime as a plugin.
ClearErrors
ReadRegStr $R0 HKLM "Software\Apple Computer, Inc.\QuickTime" "InstallDir"
${Unless} ${Errors}
Push $R0
${GetPathFromRegStr}
Pop $R0
${Unless} ${Errors}
GetFullPathName $R0 "$R0\Plugins"
${Unless} ${Errors}
${LogHeader} "Copying QuickTime Plugin Files"
${LogMsg} "Source Directory: $R0\Plugins"
StrCpy $R1 "$INSTDIR\plugins"
Call DoCopyFiles
${EndUnless}
${EndUnless}
${EndUnless}
ClearErrors
; Default for creating Start Menu folder and shortcuts
; (1 = create, 0 = don't create)
${If} $AddStartMenuSC == ""
StrCpy $AddStartMenuSC "1"
${EndIf}
; Default for creating Quick Launch shortcut (1 = create, 0 = don't create)
${If} $AddQuickLaunchSC == ""
StrCpy $AddQuickLaunchSC "1"
${EndIf}
; Default for creating Desktop shortcut (1 = create, 0 = don't create)
${If} $AddDesktopSC == ""
StrCpy $AddDesktopSC "1"
${EndIf}
; Remove registry entries for non-existent apps and for apps that point to our
; install location in the Software\Mozilla key.
SetShellVarContext current ; Set SHCTX to HKCU
${RegCleanMain} "Software\Mozilla"
SetShellVarContext all ; Set SHCTX to HKLM
${RegCleanMain} "Software\Mozilla"
; Remove uninstall entries that point to our install location
${RegCleanUninstall}
${LogHeader} "Adding Registry Entries"
ClearErrors
WriteRegStr HKLM "Software\Mozilla\InstallerTest" "InstallerTest" "Test"
${If} ${Errors}
SetShellVarContext current ; Set SHCTX to HKCU
StrCpy $TmpVal "HKCU" ; used primarily for logging
${Else}
SetShellVarContext all ; Set SHCTX to HKLM
DeleteRegKey HKLM "Software\Mozilla\InstallerTest"
StrCpy $TmpVal "HKLM" ; used primarily for logging
${EndIf}
; The previous installer adds several regsitry values to both HKLM and HKCU.
; We now try to add to HKLM and if that fails to HKCU
; The order that reg keys and values are added is important if you use the
; uninstall log to remove them on uninstall. When using the uninstall log you
; MUST add children first so they will be removed first on uninstall so they
; will be empty when the key is deleted. This allows the uninstaller to
; specify that only empty keys will be deleted.
StrCpy $0 "Software\Mozilla\${BrandFullName}\${AppVersion} (${AB_CD})\Main"
${WriteRegStr2} $TmpVal "$0" "Install Directory" "$INSTDIR" 0
${WriteRegStr2} $TmpVal "$0" "PathToExe" "$INSTDIR\${FileMainEXE}" 0
${WriteRegStr2} $TmpVal "$0" "Program Folder Path" "$SMPROGRAMS\$StartMenuDir" 0
${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" $AddQuickLaunchSC 0
${WriteRegDWORD2} $TmpVal "$0" "Create Desktop Shortcut" $AddDesktopSC 0
${WriteRegDWORD2} $TmpVal "$0" "Create Start Menu Shortcut" $AddStartMenuSC 0
StrCpy $0 "Software\Mozilla\${BrandFullName}\${AppVersion} (${AB_CD})\Uninstall"
${WriteRegStr2} $TmpVal "$0" "Uninstall Log Folder" "$INSTDIR\uninstall" 0
${WriteRegStr2} $TmpVal "$0" "Description" "${BrandFullName} (${AppVersion})" 0
StrCpy $0 "Software\Mozilla\${BrandFullName}\${AppVersion} (${AB_CD})"
${WriteRegStr2} $TmpVal "$0" "" "${AppVersion} (${AB_CD})" 0
StrCpy $0 "Software\Mozilla\${BrandFullName} ${AppVersion}\bin"
${WriteRegStr2} $TmpVal "$0" "PathToExe" "$INSTDIR\${FileMainEXE}" 0
StrCpy $0 "Software\Mozilla\${BrandFullName} ${AppVersion}\extensions"
${WriteRegStr2} $TmpVal "$0" "Components" "$INSTDIR\components" 0
${WriteRegStr2} $TmpVal "$0" "Plugins" "$INSTDIR\plugins" 0
StrCpy $0 "Software\Mozilla\${BrandFullName} ${AppVersion}"
${WriteRegStr2} $TmpVal "$0" "GeckoVer" "${GREVersion}" 0
StrCpy $0 "Software\Mozilla\${BrandFullName}"
${WriteRegStr2} $TmpVal "$0" "" "${GREVersion}" 0
${WriteRegStr2} $TmpVal "$0" "CurrentVersion" "${AppVersion} (${AB_CD})" 0
; XXXrstrong - there are several values that will be overwritten by and
; overwrite other installs of the same application.
${StrFilter} "${FileMainEXE}" "+" "" "" $R9
StrCpy $0 "Software\Clients\StartMenuInternet\$R9"
${WriteRegStr2} $TmpVal "$0" "" "${BrandFullName}" 0
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\DefaultIcon"
StrCpy $1 "$\"$INSTDIR\${FileMainEXE}$\",0"
${WriteRegStr2} $TmpVal "$0" "" "$1" 0
; The Reinstall Command is defined at
; http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/registeringapps.asp
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
StrCpy $1 "$\"$INSTDIR\uninstall\uninstaller.exe$\" /ua $\"${AppVersion} (${AB_CD})$\" /hs browser"
${WriteRegStr2} $TmpVal "$0" "HideIconsCommand" "$1" 0
${WriteRegDWORD2} $TmpVal "$0" "IconsVisible" 1 0
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
StrCpy $1 "$\"$INSTDIR\${FileMainEXE}$\" -silent -setDefaultBrowser"
${WriteRegStr2} $TmpVal "$0" "ReinstallCommand" "$1" 0
StrCpy $1 "$\"$INSTDIR\uninstall\uninstaller.exe$\" /ua $\"${AppVersion} (${AB_CD})$\" /ss browser"
${WriteRegStr2} $TmpVal "$0" "ShowIconsCommand" "$1" 0
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\shell\open\command"
${WriteRegStr2} $TmpVal "$0" "" "$INSTDIR\${FileMainEXE}" 0
; These need special handling on uninstall since they may be overwritten by
; an install into a different location.
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
${WriteRegStr2} $TmpVal "$0" "" "$INSTDIR\${FileMainEXE}" 0
${WriteRegStr2} $TmpVal "$0" "Path" "$INSTDIR" 0
StrCpy $0 "MIME\Database\Content Type\application/x-xpinstall;app=firefox"
${WriteRegStrHKCR} "HKCR" "$0" "Extension" ".xpi" 0
StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\$R9"
${CreateRegKey} "$TmpVal" "$0" 0
; Write the uninstall registry keys
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${BrandFullName} (${AppVersion})"
StrCpy $1 "$\"$INSTDIR\uninstall\uninstaller.exe$\" $\"/ua ${AppVersion} (${AB_CD})$\""
${WriteRegStr2} $TmpVal "$0" "Comments" "${BrandFullName}" 0
${WriteRegStr2} $TmpVal "$0" "DisplayIcon" "$INSTDIR\${FileMainEXE},0" 0
${WriteRegStr2} $TmpVal "$0" "DisplayName" "${BrandFullName} (${AppVersion})" 0
${WriteRegStr2} $TmpVal "$0" "DisplayVersion" "${AppVersion} (${AB_CD})" 0
${WriteRegStr2} $TmpVal "$0" "InstallLocation" "$INSTDIR" 0
${WriteRegStr2} $TmpVal "$0" "Publisher" "Mozilla" 0
${WriteRegStr2} $TmpVal "$0" "UninstallString" "$1" 0
${WriteRegStr2} $TmpVal "$0" "URLInfoAbout" "${URLInfoAbout}" 0
${WriteRegStr2} $TmpVal "$0" "URLUpdateInfo" "${URLUpdateInfo}" 0
${WriteRegDWORD2} $TmpVal "$0" "NoModify" 1 0
${WriteRegDWORD2} $TmpVal "$0" "NoRepair" 1 0
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
; Create Start Menu shortcuts
${LogHeader} "Adding Shortcuts"
@ -519,50 +643,18 @@ Section "Application" Section1
${LogUninstall} "File: $SMPROGRAMS\$StartMenuDir\${BrandFullName}.lnk"
CreateShortCut "$SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk" "$INSTDIR\${FileMainEXE}" "-safe-mode" "$INSTDIR\${FileMainEXE}" 0
${LogUninstall} "File: $SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk"
${Else}
${If} ${FileExists} "$SMPROGRAMS\$StartMenuDir"
${If} ${FileExists} "$SMPROGRAMS\$StartMenuDir\${BrandFullName}.lnk"
Delete "$SMPROGRAMS\$StartMenuDir\${BrandFullName}.lnk"
${If} ${Errors}
ClearErrors
${LogMsg} "** ERROR Deleting Start Menu Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullName}.lnk **"
${Else}
${LogMsg} "Removed Start Menu Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullName}.lnk"
${EndIf}
${EndIf}
${If} ${FileExists} "$SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk"
Delete "$SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk"
${If} ${Errors}
ClearErrors
${LogMsg} "** ERROR Deleting Start Menu Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk **"
${Else}
${LogMsg} "Removed Start Menu Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk"
${EndIf}
${EndIf}
RmDir "$SMPROGRAMS\$StartMenuDir"
${If} ${Errors}
ClearErrors
${LogMsg} "** ERROR Removing Start Menu Directory: $SMPROGRAMS\$StartMenuDir **"
${Else}
${LogMsg} "Removed Start Menu Shortcut: $SMPROGRAMS\$StartMenuDir"
${EndIf}
${EndIf}
${EndIf}
; perhaps use the uninstall keys
${If} $AddQuickLaunchSC == 1
CreateShortCut "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
${LogUninstall} "File: $QUICKLAUNCH\${BrandFullName}.lnk"
${Else}
${DeleteFile} "$QUICKLAUNCH\${BrandFullName}.lnk"
${EndIf}
${LogHeader} "Updating Quick Launch Shortcuts"
${If} $AddDesktopSC == 1
CreateShortCut "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
${LogUninstall} "File: $DESKTOP\${BrandFullName}.lnk"
${Else}
${DeleteFile} "$DESKTOP\${BrandFullName}.lnk"
${EndIf}
!insertmacro MUI_STARTMENU_WRITE_END
@ -578,7 +670,6 @@ Section /o "Developer Tools" Section2
Call install_inspector
SectionEnd
Section /o "Quality Feedback Agent" Section3
Call install_talkback
SectionEnd
@ -629,7 +720,71 @@ Function install_talkback
FunctionEnd
Section "Uninstall"
!include /NONFATAL uninstfiles-extra.nsi
; Remove registry entries for non-existent apps and for apps that point to our
; install location in the Software\Mozilla key.
SetShellVarContext current ; Sets SHCTX to HKCU
${un.RegCleanMain} "Software\Mozilla"
SetShellVarContext all ; Sets SHCTX to HKLM
${un.RegCleanMain} "Software\Mozilla"
; Remove uninstall entries that point to our install location
${un.RegCleanUninstall}
SetShellVarContext all ; Set SHCTX to HKLM
${un.GetSecondInstallPath} "Software\Mozilla" $R9
${If} $R9 == "false"
SetShellVarContext current ; Set SHCTX to HKCU
${un.GetSecondInstallPath} "Software\Mozilla" $R9
${EndIf}
StrCpy $0 "Software\Clients\StartMenuInternet\${FileMainEXE}\shell\open\command"
ReadRegStr $1 HKLM "$0" ""
Push $1
${GetPathFromRegStr}
Pop $R0
Push $R0
${GetParentDir}
Pop $R1
; Only remove the StartMenuInternet key if it refers to this install location.
; The StartMenuInternet registry key is independent of the default browser
; settings. The XPInstall base un-installer always removes this key if it is
; uninstalling the default browser and it will always replace the keys when
; installing even if there is another install of Firefox that is set as the
; default browser. Now the key is always updated on install but it is only
; removed if it refers to this install location.
${If} $INSTDIR == $R1
; XXXrstrong - if there is another installation of the same app ideally we
; would just modify these values. The GetSecondInstallPath macro could be
; made to provide enough information to do this.
DeleteRegKey HKLM "Software\Clients\StartMenuInternet\${FileMainEXE}"
${EndIf}
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
${If} $R9 == "false"
DeleteRegKey HKLM "$0"
DeleteRegKey HKCU "$0"
StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\$R9"
DeleteRegKey HKLM "$0"
DeleteRegKey HKCU "$0"
StrCpy $0 "MIME\Database\Content Type\application/x-xpinstall;app=firefox"
DeleteRegKey HKCR "$0"
${Else}
ReadRegStr $1 HKLM "$0" ""
Push $1
${GetPathFromRegStr}
Pop $R0
Push $R0
${GetParentDir}
Pop $R1
${If} $INSTDIR == $R1
WriteRegStr HKLM "$0" "" "$R9"
Push $R9
${GetParentDir}
Pop $R1
WriteRegStr HKLM "$0" "Path" "$R1"
${EndIf}
${EndIf}
; Remove files. If we don't have a log file skip
${If} ${FileExists} "$INSTDIR\uninstall\uninstall.log"
@ -657,6 +812,11 @@ Section "Uninstall"
; Remove the installation directory if it is empty
${RemoveDir} "$INSTDIR"
${EndIf}
; Refresh destop icons otherwise the start menu internet item won't be removed
; and other ugly things will happen like recreation of the registry key by the
; OS under some conditions.
System::Call "shell32::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)"
SectionEnd
; When we add an optional action to the finish page the cancel button is
@ -669,9 +829,9 @@ FunctionEnd
Function un.disableCancel
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "settings" "cancelenabled" "0"
; Only setup the survey controls, functions, etc. when the appLocale.nsi
; has DO_UNINSTALL_SURVEY defined to indicate the survey has been localized.
!ifndef DO_UNINSTALL_SURVEY
; Setup the survey controls, functions, etc. except when the application has
; defined NO_UNINSTALL_SURVEY
!ifdef NO_UNINSTALL_SURVEY
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "settings" "NumFields" "3"
!else
StrCpy $TmpVal "SOFTWARE\Microsoft\IE Setup\Setup"
@ -694,37 +854,8 @@ Function un.disableCancel
!endif
FunctionEnd
Function Options
!insertmacro MUI_HEADER_TEXT $(OPTIONS_PAGE_TITLE) $(OPTIONS_PAGE_SUBTITLE)
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "options.ini"
FunctionEnd
Function ChangeOptions
${MUI_INSTALLOPTIONS_READ} $0 "options.ini" "Settings" "State"
; ReadINIStr $0 "$PLUGINSDIR\options.ini" "Settings" "State"
${If} $0 != 0
Abort
${EndIf}
${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 2" "State"
StrCmp $R0 "1" +1 +2
StrCpy $InstallType "1"
${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 3" "State"
StrCmp $R0 "1" +1 +2
StrCpy $InstallType "2"
${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 4" "State"
StrCmp $R0 "1" +1 +2
StrCpy $InstallType "4"
FunctionEnd
Function preShortcuts
Call CheckCustom
!insertmacro MUI_HEADER_TEXT "$(SHORTCUTS_PAGE_TITLE)" "$(SHORTCUTS_PAGE_SUBTITLE)"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "shortcuts.ini"
FunctionEnd
Function ChangeShortcuts
ReadINIStr $0 "$PLUGINSDIR\options.ini" "Settings" "State"
${MUI_INSTALLOPTIONS_READ} $0 "shortcuts.ini" "Settings" "State"
${If} $0 != 0
Abort
${EndIf}
@ -790,49 +921,6 @@ Function CopyFile
Push 0
FunctionEnd
; There must be a cleaner way of doing this but this will suffice for now.
Function un.RemoveRegEntriesCallback
${un.TrimNewLines} "$R9" "$R9"
StrCpy $R3 "$R9" 7
${If} $R3 == "RegVal:"
${OrIf} $R3 == "RegKey:"
StrCpy $R9 "$R9" "" 8
${un.WordFind} "$R9" " | " "+1" $R0
${un.WordFind} "$R9" " | " "+2" $R1
${If} $R3 == "RegVal:"
${un.WordFind} "$R9" " | " "+3" $R2
; When setting the default value the name will be empty and WordFind will
; return the entire string so copy an empty string into $R2 when this
; occurs.
${If} $R2 == $R9
StrCpy $R2 ""
${EndIf}
${EndIf}
${Switch} $R0
${Case} "HKCR"
${If} $R3 == "RegVal:"
DeleteRegValue HKCR "$R1" "$R2"
${EndIf}
DeleteRegKey /ifempty HKCR "$R1"
${Break}
${Case} "HKCU"
${If} $R3 == "RegVal:"
DeleteRegValue HKCU "$R1" "$R2"
${EndIf}
DeleteRegKey /ifempty HKCU "$R1"
${Break}
${Case} "HKLM"
${If} $R3 == "RegVal:"
DeleteRegValue HKLM "$R1" "$R2"
${EndIf}
DeleteRegKey /ifempty HKLM "$R1"
${Break}
${EndSwitch}
${EndIf}
ClearErrors
Push 0
FunctionEnd
Function un.RemoveFilesCallback
${un.TrimNewLines} "$R9" "$R9"
StrCpy $R1 "$R9" 5
@ -1006,22 +1094,79 @@ Function CleanOldLogFilesCallback
Push 0
FunctionEnd
/*
install_wizard1.log
[12/12] Installing: C:\Program Files\Mozilla Thunderbird\extensions\talkback@mozilla.org\components\talkback.cnt
** performInstall() returned: 0
Install completed successfully -- 2005-12-05 11:36:25
** copy file: C:\WINDOWS\UninstallThunderbird.exe to C:\Program Files\Mozilla Thunderbird\uninstall\UninstallThunderbird.exe
UPDATE [Wed, 21 Dec 2005 20:32:51 GMT]
installing: C:\Program Files\Mozilla Thunderbird\softokn3.chk
*/
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(APP_DESC)
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DEV_TOOLS_DESC)
!insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(QFA_DESC)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
!insertmacro MOZ_MUI_LANGUAGE 'baseLocale'
!verbose push
!verbose 3
!include "overrideLocale.nsh"
!include "customLocale.nsh"
!verbose pop
; Set this after the locale files to override it if it is in the locale
; using " " for BrandingText will hide the "Nullsoft Install System..." branding
BrandingText " "
Function preShortcuts
Call CheckCustom
!insertmacro MUI_HEADER_TEXT "$(SHORTCUTS_PAGE_TITLE)" "$(SHORTCUTS_PAGE_SUBTITLE)"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "shortcuts.ini"
FunctionEnd
Function preOptions
!insertmacro MUI_HEADER_TEXT "$(OPTIONS_PAGE_TITLE)" "$(OPTIONS_PAGE_SUBTITLE)"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "options.ini"
FunctionEnd
Function ChangeOptions
${MUI_INSTALLOPTIONS_READ} $0 "options.ini" "Settings" "State"
${If} $0 != 0
Abort
${EndIf}
${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 2" "State"
StrCmp $R0 "1" +1 +2
StrCpy $InstallType "1"
${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 3" "State"
StrCmp $R0 "1" +1 +2
StrCpy $InstallType "4"
FunctionEnd
Function preComponents
Call CheckCustom
; If DOMi isn't available skip the options page
${Unless} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
; If talkback exists always install it enabled.
${If} ${FileExists} "$EXEDIR\optional\extensions\talkback@mozilla.org"
SectionSetFlags 2 1
${EndIf}
Abort
${EndUnless}
FunctionEnd
Function .onInit
StrCpy $LANGUAGE 0
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "options.ini"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "shortcuts.ini"
!insertmacro createShortcutsINI
!insertmacro createBasicCustomOptionsINI
; Hide DOMi in the components page if it isn't available
${Unless} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
SectionSetText 1 ""
${EndUnless}
; Hide Talkback in the components page if it isn't available
${Unless} ${FileExists} "$EXEDIR\optional\extensions\talkback@mozilla.org"
SectionSetText 2 ""
${EndUnless}
FunctionEnd
Function un.onInit
GetFullPathName $INSTDIR "$INSTDIR\.."
StrCpy $LANGUAGE 0
; XXXrstrong - should we quit when the app exe is not present?
Call un.SetAccess
FunctionEnd

View File

@ -1,192 +0,0 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
${LogHeader} "Adding Additional Files"
; Only for Firefox and only if they don't already exist
; Check if QuickTime is installed and copy the contents of its plugins
; directory into the app's plugins directory. Previously only the
; nsIQTScriptablePlugin.xpt files was copied which is not enough to enable
; QuickTime as a plugin.
ClearErrors
ReadRegStr $R0 HKLM "Software\Apple Computer, Inc.\QuickTime" "InstallDir"
${Unless} ${Errors}
Push $R0
${GetPathFromRegStr}
Pop $R0
${Unless} ${Errors}
GetFullPathName $R0 "$R0\Plugins"
${Unless} ${Errors}
${LogHeader} "Copying QuickTime Plugin Files"
${LogMsg} "Source Directory: $R0\Plugins"
StrCpy $R1 "$INSTDIR\plugins"
Call DoCopyFiles
${EndUnless}
${EndUnless}
${EndUnless}
ClearErrors
; Default for creating Start Menu folder and shortcuts
; (1 = create, 0 = don't create)
${If} $AddStartMenuSC == ""
StrCpy $AddStartMenuSC "1"
${EndIf}
; Default for creating Quick Launch shortcut (1 = create, 0 = don't create)
${If} $AddQuickLaunchSC == ""
StrCpy $AddQuickLaunchSC "1"
${EndIf}
; Default for creating Desktop shortcut (1 = create, 0 = don't create)
${If} $AddDesktopSC == ""
StrCpy $AddDesktopSC "1"
${EndIf}
; Remove registry entries for non-existent apps and for apps that point to our
; install location in the Software\Mozilla key.
SetShellVarContext current ; Set SHCTX to HKCU
${RegCleanMain} "Software\Mozilla"
SetShellVarContext all ; Set SHCTX to HKLM
${RegCleanMain} "Software\Mozilla"
; Remove uninstall entries that point to our install location
${RegCleanUninstall}
${LogHeader} "Adding Registry Entries"
ClearErrors
WriteRegStr HKLM "Software\Mozilla\InstallerTest" "InstallerTest" "Test"
${If} ${Errors}
SetShellVarContext current ; Set SHCTX to HKCU
StrCpy $TmpVal "HKCU" ; used primarily for logging
${Else}
SetShellVarContext all ; Set SHCTX to HKLM
DeleteRegKey HKLM "Software\Mozilla\InstallerTest"
StrCpy $TmpVal "HKLM" ; used primarily for logging
${EndIf}
; The previous installer adds several regsitry values to both HKLM and HKCU.
; We now try to add to HKLM and if that fails to HKCU
; The order that reg keys and values are added is important if you use the
; uninstall log to remove them on uninstall. When using the uninstall log you
; MUST add children first so they will be removed first on uninstall so they
; will be empty when the key is deleted. This allows the uninstaller to
; specify that only empty keys will be deleted.
StrCpy $0 "Software\Mozilla\${BrandFullName}\${AppVersion} (${AB_CD})\Main"
${WriteRegStr2} $TmpVal "$0" "Install Directory" "$INSTDIR" 0
${WriteRegStr2} $TmpVal "$0" "PathToExe" "$INSTDIR\${FileMainEXE}" 0
${WriteRegStr2} $TmpVal "$0" "Program Folder Path" "$SMPROGRAMS\$StartMenuDir" 0
${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" $AddQuickLaunchSC 0
${WriteRegDWORD2} $TmpVal "$0" "Create Desktop Shortcut" $AddDesktopSC 0
${WriteRegDWORD2} $TmpVal "$0" "Create Start Menu Shortcut" $AddStartMenuSC 0
StrCpy $0 "Software\Mozilla\${BrandFullName}\${AppVersion} (${AB_CD})\Uninstall"
${WriteRegStr2} $TmpVal "$0" "Uninstall Log Folder" "$INSTDIR\uninstall" 0
${WriteRegStr2} $TmpVal "$0" "Description" "${BrandFullName} (${AppVersion})" 0
StrCpy $0 "Software\Mozilla\${BrandFullName}\${AppVersion} (${AB_CD})"
${WriteRegStr2} $TmpVal "$0" "" "${AppVersion} (${AB_CD})" 0
StrCpy $0 "Software\Mozilla\${BrandFullName} ${AppVersion}\bin"
${WriteRegStr2} $TmpVal "$0" "PathToExe" "$INSTDIR\${FileMainEXE}" 0
StrCpy $0 "Software\Mozilla\${BrandFullName} ${AppVersion}\extensions"
${WriteRegStr2} $TmpVal "$0" "Components" "$INSTDIR\components" 0
${WriteRegStr2} $TmpVal "$0" "Plugins" "$INSTDIR\plugins" 0
StrCpy $0 "Software\Mozilla\${BrandFullName} ${AppVersion}"
${WriteRegStr2} $TmpVal "$0" "GeckoVer" "${GREVersion}" 0
StrCpy $0 "Software\Mozilla\${BrandFullName}"
${WriteRegStr2} $TmpVal "$0" "" "${GREVersion}" 0
${WriteRegStr2} $TmpVal "$0" "CurrentVersion" "${AppVersion} (${AB_CD})" 0
; XXXrstrong - there are several values that will be overwritten by and
; overwrite other installs of the same application.
${StrFilter} "${FileMainEXE}" "+" "" "" $R9
StrCpy $0 "Software\Clients\StartMenuInternet\$R9"
${WriteRegStr2} $TmpVal "$0" "" "${BrandFullName}" 0
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\DefaultIcon"
StrCpy $1 "$\"$INSTDIR\${FileMainEXE}$\",0"
${WriteRegStr2} $TmpVal "$0" "" "$1" 0
; The Reinstall Command is defined at
; http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/registeringapps.asp
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
StrCpy $1 "$\"$INSTDIR\uninstall\uninstaller.exe$\" /ua $\"${AppVersion} (${AB_CD})$\" /hs browser"
${WriteRegStr2} $TmpVal "$0" "HideIconsCommand" "$1" 0
${WriteRegDWORD2} $TmpVal "$0" "IconsVisible" 1 0
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
StrCpy $1 "$\"$INSTDIR\${FileMainEXE}$\" -silent -setDefaultBrowser"
${WriteRegStr2} $TmpVal "$0" "ReinstallCommand" "$1" 0
StrCpy $1 "$\"$INSTDIR\uninstall\uninstaller.exe$\" /ua $\"${AppVersion} (${AB_CD})$\" /ss browser"
${WriteRegStr2} $TmpVal "$0" "ShowIconsCommand" "$1" 0
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\shell\open\command"
${WriteRegStr2} $TmpVal "$0" "" "$INSTDIR\${FileMainEXE}" 0
; These need special handling on uninstall since they may be overwritten by
; an install into a different location.
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
${WriteRegStr2} $TmpVal "$0" "" "$INSTDIR\${FileMainEXE}" 0
${WriteRegStr2} $TmpVal "$0" "Path" "$INSTDIR" 0
StrCpy $0 "MIME\Database\Content Type\application/x-xpinstall;app=firefox"
${WriteRegStrHKCR} "HKCR" "$0" "Extension" ".xpi" 0
StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\$R9"
${CreateRegKey} "$TmpVal" "$0" 0
; Write the uninstall registry keys
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${BrandFullName} (${AppVersion})"
StrCpy $1 "$\"$INSTDIR\uninstall\uninstaller.exe$\" $\"/ua ${AppVersion} (${AB_CD})$\""
${WriteRegStr2} $TmpVal "$0" "Comments" "${BrandFullName}" 0
${WriteRegStr2} $TmpVal "$0" "DisplayIcon" "$INSTDIR\${FileMainEXE},0" 0
${WriteRegStr2} $TmpVal "$0" "DisplayName" "${BrandFullName} (${AppVersion})" 0
${WriteRegStr2} $TmpVal "$0" "DisplayVersion" "${AppVersion} (${AB_CD})" 0
${WriteRegStr2} $TmpVal "$0" "InstallLocation" "$INSTDIR" 0
${WriteRegStr2} $TmpVal "$0" "Publisher" "Mozilla" 0
${WriteRegStr2} $TmpVal "$0" "UninstallString" "$1" 0
${WriteRegStr2} $TmpVal "$0" "URLInfoAbout" "${URLInfoAbout}" 0
${WriteRegStr2} $TmpVal "$0" "URLUpdateInfo" "${URLUpdateInfo}" 0
${WriteRegDWORD2} $TmpVal "$0" "NoModify" 1 0
${WriteRegDWORD2} $TmpVal "$0" "NoRepair" 1 0
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application

View File

@ -1,103 +0,0 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
; Remove registry entries for non-existent apps and for apps that point to our
; install location in the Software\Mozilla key.
SetShellVarContext current ; Sets SHCTX to HKCU
${un.RegCleanMain} "Software\Mozilla"
SetShellVarContext all ; Sets SHCTX to HKLM
${un.RegCleanMain} "Software\Mozilla"
; Remove uninstall entries that point to our install location
${un.RegCleanUninstall}
SetShellVarContext all ; Set SHCTX to HKLM
${un.GetSecondInstallPath} "Software\Mozilla" $R9
${If} $R9 == "false"
SetShellVarContext current ; Set SHCTX to HKCU
${un.GetSecondInstallPath} "Software\Mozilla" $R9
${EndIf}
; ${StrFilter} "${FileMainEXE}" "+" "" "" $R8
StrCpy $0 "Software\Clients\StartMenuInternet\${FileMainEXE}\shell\open\command"
ReadRegStr $1 HKLM "$0" ""
Push $1
${GetPathFromRegStr}
Pop $R0
Push $R0
${GetParentDir}
Pop $R1
; Only remove the StartMenuInternet key if it refers to this install location.
; The StartMenuInternet registry key is independent of the default browser
; settings. The XPInstall base un-installer always removes this key if it is
; uninstalling the default browser and it will always replace the keys when
; installing even if there is another install of Firefox that is set as the
; default browser. Now the key is always updated on install but it is only
; removed if it refers to this install location.
${If} $INSTDIR == $R1
; XXXrstrong - if there is another installation of the same app ideally we
; would just modify these values. The GetSecondInstallPath macro could be
; made to provide enough information to do this.
DeleteRegKey HKLM "Software\Clients\StartMenuInternet\${FileMainEXE}"
${EndIf}
StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
${If} $R9 == "false"
DeleteRegKey HKLM "$0"
DeleteRegKey HKCU "$0"
StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\$R9"
DeleteRegKey HKLM "$0"
DeleteRegKey HKCU "$0"
StrCpy $0 "MIME\Database\Content Type\application/x-xpinstall;app=firefox"
DeleteRegKey HKCR "$0"
${Else}
ReadRegStr $1 HKLM "$0" ""
Push $1
${GetPathFromRegStr}
Pop $R0
Push $R0
${GetParentDir}
Pop $R1
${If} $INSTDIR == $R1
WriteRegStr HKLM "$0" "" "$R9"
Push $R9
${GetParentDir}
Pop $R1
WriteRegStr HKLM "$0" "Path" "$R1"
${EndIf}
${EndIf}

View File

@ -0,0 +1,77 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# LOCALIZATION NOTE:
# This file must be saved as UTF8
# Accesskeys are defined by prefixing the letter that is to be used for the
# accesskey with an ampersand (e.g. &).
# Do not replace ${BrandShortName} or ${BrandFullName} with a custom string.
# You can use \n to create a newline in the string but only when the string
# from en-US contains a \n.
APP_DESC=Required files for the ${BrandShortName} application
DEV_TOOLS_DESC=A tool for inspecting the DOM of HTML, XUL, and XML pages, including the browser chrome.
QFA_DESC=A tool for submitting crash reports to Mozilla.org.
SAFE_MODE=Safe Mode
OPTIONS_PAGE_TITLE=Setup Type
OPTIONS_PAGE_SUBTITLE=Choose setup options
SHORTCUTS_PAGE_TITLE=Set Up Shortcuts
SHORTCUTS_PAGE_SUBTITLE=Create Program Icons
SURVEY_TEXT=&Tell us what you thought of ${BrandShortName}
LAUNCH_TEXT=&Launch ${BrandFullName} now
WARN_APP_RUNNING_INSTALL=${BrandFullName} must be closed to proceed with the installation.\n\nClick "OK" to exit ${BrandFullName} automatically and continue.
WARN_APP_RUNNING_UNINSTALL=${BrandFullName} must be closed to proceed with the uninstall.\n\nClick "OK" to exit ${BrandFullName} automatically and continue.
CREATE_ICONS_DESC=Create icons for ${BrandShortName}:
ICONS_DESKTOP=On my &Desktop
ICONS_STARTMENU=In my &Start Menu Programs folder
ICONS_QUICKLAUNCH=In my &Quick Launch bar
# _DESC strings support approximately 65 characters per line.
# One line
OPTIONS_SUMMARY=Choose the type of setup you prefer, then click Next.
# One line
OPTION_STANDARD_DESC=${BrandShortName} will be installed with the most common options.
OPTION_STANDARD_RADIO=&Standard
# One line
OPTION_COMPLETE_DESC=${BrandShortName} will be installed with all available options.
OPTION_COMPLETE_RADIO=C&omplete
# Two lines
OPTION_CUSTOM_DESC=You may choose individual options to be installed. Recommended for experienced users.
OPTION_CUSTOM_RADIO=&Custom

View File

@ -0,0 +1,96 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# To make the l10n tinderboxen see changes to this file you can change a value
# name by adding - to the end of the name followed by chars (e.g. Branding-2).
# LOCALIZATION NOTE:
# This file must be saved as UTF8
# Accesskeys are defined by prefixing the letter that is to be used for the
# accesskey with an ampersand (e.g. &).
# Do not replace $(^NameDA) or $(^Name) with a custom string.
# Do not change $(^NameDA) to $(^Name) or $(^Name) to $(^NameDA). NameDA allows
# Name to contain an ampersand (e.g. DA stands for double ampersand) and
# prevents the letter following the ampersand being used as an accesskey.
# You can use \n to create a newline in the string but only when the string
# from en-US contains a \n.
MUI_TEXT_WELCOME_INFO_TITLE=Welcome to the $(^NameDA) Setup Wizard
MUI_TEXT_WELCOME_INFO_TEXT=This wizard will guide you through the installation of $(^NameDA).\n\nIt is recommended that you close all other applications before starting Setup. This will make it possible to update relevant system files without having to reboot your computer.\n\n$_CLICK
MUI_TEXT_LICENSE_TITLE=License Agreement
MUI_TEXT_LICENSE_SUBTITLE=Please review the license terms before installing $(^NameDA).
MUI_INNERTEXT_LICENSE_TOP=Press Page Down to see the rest of the agreement.
MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS=If you accept the terms of the agreement, select the first option below. You must accept the agreement to install $(^NameDA). $_CLICK
MUI_TEXT_COMPONENTS_TITLE=Choose Components
MUI_TEXT_COMPONENTS_SUBTITLE=Choose which features of $(^NameDA) you want to install.
MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE=Description
MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO=Position your mouse over a component to see its description.
MUI_TEXT_DIRECTORY_TITLE=Choose Install Location
MUI_TEXT_DIRECTORY_SUBTITLE=Choose the folder in which to install $(^NameDA).
MUI_TEXT_INSTALLING_TITLE=Installing
MUI_TEXT_INSTALLING_SUBTITLE=Please wait while $(^NameDA) is being installed.
MUI_TEXT_FINISH_TITLE=Installation Complete
MUI_TEXT_FINISH_SUBTITLE=Setup was completed successfully.
MUI_TEXT_ABORT_TITLE=Installation Aborted
MUI_TEXT_ABORT_SUBTITLE=Setup was not completed successfully.
MUI_BUTTONTEXT_FINISH=&Finish
MUI_TEXT_FINISH_INFO_TITLE=Completing the $(^NameDA) Setup Wizard
MUI_TEXT_FINISH_INFO_TEXT=$(^NameDA) has been installed on your computer.\n\nClick Finish to close this wizard.
MUI_TEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the installation of $(^NameDA). Do you want to reboot now?
MUI_TEXT_FINISH_REBOOTNOW=Reboot now
MUI_TEXT_FINISH_REBOOTLATER=I want to manually reboot later
MUI_TEXT_STARTMENU_TITLE=Choose Start Menu Folder
MUI_TEXT_STARTMENU_SUBTITLE=Choose a Start Menu folder for the $(^NameDA) shortcuts.
MUI_INNERTEXT_STARTMENU_TOP=Select the Start Menu folder in which you would like to create the program's shortcuts. You can also enter a name to create a new folder.
MUI_TEXT_ABORTWARNING=Are you sure you want to quit $(^Name) Setup?
MUI_UNTEXT_WELCOME_INFO_TITLE=Welcome to the $(^NameDA) Uninstall Wizard
MUI_UNTEXT_WELCOME_INFO_TEXT=This wizard will guide you through the uninstallation of $(^NameDA).\n\nBefore starting the uninstallation, make sure $(^NameDA) is not running.\n\n$_CLICK
MUI_UNTEXT_CONFIRM_TITLE=Uninstall $(^NameDA)
MUI_UNTEXT_CONFIRM_SUBTITLE=Remove $(^NameDA) from your computer.
MUI_UNTEXT_UNINSTALLING_TITLE=Uninstalling
MUI_UNTEXT_UNINSTALLING_SUBTITLE=Please wait while $(^NameDA) is being uninstalled.
MUI_UNTEXT_FINISH_TITLE=Uninstallation Complete
MUI_UNTEXT_FINISH_SUBTITLE=Uninstall was completed successfully.
MUI_UNTEXT_ABORT_TITLE=Uninstallation Aborted
MUI_UNTEXT_ABORT_SUBTITLE=Uninstall was not completed successfully.
MUI_UNTEXT_FINISH_INFO_TITLE=Completing the $(^NameDA) Uninstall Wizard
MUI_UNTEXT_FINISH_INFO_TEXT=$(^NameDA) has been uninstalled from your computer.\n\nClick Finish to close this wizard.
MUI_UNTEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the uninstallation of $(^NameDA). Do you want to reboot now?
MUI_UNTEXT_ABORTWARNING=Are you sure you want to quit $(^Name) Uninstall?

View File

@ -0,0 +1,118 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# LOCALIZATION NOTE:
# This file must be saved as UTF8
# Accesskeys are defined by prefixing the letter that is to be used for the
# accesskey with an ampersand (e.g. &).
# Do not replace $(^NameDA) or $(^Name) with a custom string.
# Do not change $(^NameDA) to $(^Name) or $(^Name) to $(^NameDA). NameDA allows
# Name to contain an ampersand (e.g. DA stands for double ampersand) and
# prevents the letter following the ampersand being used as an accesskey.
# You can use \n to create a newline in the string but only when the string
# from en-US contains a \n.
# Strings that require a space at the end should be enclosed with double
# quotes and the double quotes will be removed. To add quotes to the beginning
# and end of a strong enclose the add and additional double quote to the
# beginning and end of the string (e.g. ""This will include quotes"").
SetupCaption=$(^Name) Setup
UninstallCaption=$(^Name) Uninstall
BackBtn=< &Back
NextBtn=&Next >
AcceptBtn=I &accept the terms in the License Agreement
DontAcceptBtn=I &do not accept the terms in the License Agreement
InstallBtn=&Install
UninstallBtn=&Uninstall
CancelBtn=Cancel
CloseBtn=&Close
BrowseBtn=B&rowse...
ShowDetailsBtn=Show &details
ClickNext=Click Next to continue.
ClickInstall=Click Install to start the installation.
ClickUninstall=Click Uninstall to start the uninstallation.
Completed=Completed
LicenseTextRB=Please review the license agreement before installing $(^NameDA). If you accept all terms of the agreement, select the first option below. $_CLICK
ComponentsText=Check the components you want to install and uncheck the components you don't want to install. $_CLICK
ComponentsSubText2_NoInstTypes=Select components to install:
DirText=Setup will install $(^NameDA) in the following folder. To install in a different folder, click Browse and select another folder. $_CLICK
DirSubText=Destination Folder
DirBrowseText=Select the folder to install $(^NameDA) in:
SpaceAvailable="Space available: "
SpaceRequired="Space required: "
UninstallingText=$(^NameDA) will be uninstalled from the following folder. $_CLICK
UninstallingSubText=Uninstalling from:
FileError=Error opening file for writing: \r\n\r\n$0\r\n\r\nClick Abort to stop the installation,\r\nRetry to try again, or\r\nIgnore to skip this file.
FileError_NoIgnore=Error opening file for writing: \r\n\r\n$0\r\n\r\nClick Retry to try again, or\r\nCancel to stop the installation.
CantWrite="Can't write: "
CopyFailed=Copy failed
CopyTo="Copy to "
Registering="Registering: "
Unregistering="Unregistering: "
SymbolNotFound="Could not find symbol: "
CouldNotLoad="Could not load: "
CreateFolder="Create folder: "
CreateShortcut="Create shortcut: "
CreatedUninstaller="Created uninstaller: "
Delete="Delete file: "
DeleteOnReboot="Delete on reboot: "
ErrorCreatingShortcut="Error creating shortcut: "
ErrorCreating="Error creating: "
ErrorDecompressing=Error decompressing data! Corrupted installer?
ErrorRegistering=Error registering DLL
ExecShell="ExecShell: "
Exec="Execute: "
Extract="Extract: "
ErrorWriting="Extract: error writing to file "
InvalidOpcode=Installer corrupted: invalid opcode
NoOLE="No OLE for: "
OutputFolder="Output folder: "
RemoveFolder="Remove folder: "
RenameOnReboot="Rename on reboot: "
Rename="Rename: "
Skipped="Skipped: "
CopyDetails=Copy Details To Clipboard
LogInstall=Log install process
Byte=B
Kilo=K
Mega=M
Giga=G

View File

@ -1,62 +0,0 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
; Notes
; Possible values for languages that are provided by NSIS are:
; Albanian, Arabic, Belarusian, Bosnian, Breton, Bulgarian, Catalan, Croatian,
; Czech, Danish, Dutch, English, Estonian, Farsi, Finnish, French, German,
; Greek, Hebrew, Hungarian, Icelandic, Indonesian, Italian, Japanese, Korean,
; Kurdish, Latvian, Lithuanian, Luxembourgish, Macedonian, Malay, Mongolian,
; Norwegian, Polish, Portuguese, PortugueseBR, Romanian, Russian, Serbian,
; SerbianLatin, SimpChinese, Slovak, Slovenian, Spanish, Swedish, Thai,
; TradChinese, Turkish, Ukrainian
!macro DEF_MUI_LANGUAGE
!insertmacro MUI_LANGUAGE "English"
!macroend
LangString APP_DESC ${LANG_ENGLISH} "Required files for the ${BrandShortName} application"
LangString DEV_TOOLS_DESC ${LANG_ENGLISH} "A tool for inspecting the DOM of HTML, XUL, and XML pages, including the browser chrome."
LangString QFA_DESC ${LANG_ENGLISH} "A tool for submitting crash reports to Mozilla.org."
LangString SAFE_MODE ${LANG_ENGLISH} "Safe Mode"
LangString OPTIONS_PAGE_TITLE ${LANG_ENGLISH} "Setup Type"
LangString OPTIONS_PAGE_SUBTITLE ${LANG_ENGLISH} "Choose setup options"
LangString SHORTCUTS_PAGE_TITLE ${LANG_ENGLISH} "Set Up Shortcuts"
LangString SHORTCUTS_PAGE_SUBTITLE ${LANG_ENGLISH} "Create Program Icons"
# to enable the survey, see DO_UNINSTALL_SURVEY in appLocale.nsi
LangString SURVEY_TEXT ${LANG_ENGLISH} "&Tell us what you thought of ${BrandShortName}"
LangString LAUNCH_TEXT ${LANG_ENGLISH} '&Launch ${BrandFullName} now'
LangString WARN_APP_RUNNING_INSTALL ${LANG_ENGLISH} '${BrandFullName} must be closed to proceed with the installation.$\r$\n$\r$\nClick "OK" to exit ${BrandFullName} automatically and continue.'
LangString WARN_APP_RUNNING_UNINSTALL ${LANG_ENGLISH} '${BrandFullName} must be closed to proceed with the uninstall.$\r$\n$\r$\nClick "OK" to exit ${BrandFullName} automatically and continue.'

View File

@ -69,6 +69,266 @@ Exch $R9 ; exchange the new $R9 value with the top of the stack
!define MUI_INSTALLOPTIONS_READ "!insertmacro MUI_INSTALLOPTIONS_READ"
!macro MOZ_MUI_LANGUAGE LANGUAGE
!verbose push
!verbose ${MUI_VERBOSE}
!include "${LANGUAGE}.nsh"
!verbose pop
!macroend
!macro MOZ_MUI_LANGUAGEFILE_BEGIN LANGUAGE
!ifndef MUI_INSERT
!define MUI_INSERT
!insertmacro MUI_INSERT
!endif
!ifndef "MUI_LANGUAGEFILE_${LANGUAGE}_USED"
!define "MUI_LANGUAGEFILE_${LANGUAGE}_USED"
LoadLanguageFile "${LANGUAGE}.nlf"
!else
!error "Modern UI language file ${LANGUAGE} included twice!"
!endif
!macroend
; Custom version of MUI_LANGUAGEFILE_END. The macro to add the default MUI
; strings and the macros for several strings that are part of the NSIS MUI and
; not in our locale files have been commented out.
!macro MOZ_MUI_LANGUAGEFILE_END
# !include "${NSISDIR}\Contrib\Modern UI\Language files\Default.nsh"
!ifdef MUI_LANGUAGEFILE_DEFAULT_USED
!undef MUI_LANGUAGEFILE_DEFAULT_USED
!warning "${LANGUAGE} Modern UI language file version doesn't match. Using default English texts for missing strings."
!endif
!insertmacro MUI_LANGUAGEFILE_DEFINE "MUI_${LANGUAGE}_LANGNAME" "MUI_LANGNAME"
!ifndef MUI_LANGDLL_PUSHLIST
!define MUI_LANGDLL_PUSHLIST "'${MUI_${LANGUAGE}_LANGNAME}' ${LANG_${LANGUAGE}} "
!else
!ifdef MUI_LANGDLL_PUSHLIST_TEMP
!undef MUI_LANGDLL_PUSHLIST_TEMP
!endif
!define MUI_LANGDLL_PUSHLIST_TEMP "${MUI_LANGDLL_PUSHLIST}"
!undef MUI_LANGDLL_PUSHLIST
!define MUI_LANGDLL_PUSHLIST "'${MUI_${LANGUAGE}_LANGNAME}' ${LANG_${LANGUAGE}} ${MUI_LANGDLL_PUSHLIST_TEMP}"
!endif
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE WELCOME "MUI_TEXT_WELCOME_INFO_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE WELCOME "MUI_TEXT_WELCOME_INFO_TEXT"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_TEXT_LICENSE_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_TEXT_LICENSE_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_TOP"
# !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_BOTTOM"
# !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE LICENSE "MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE COMPONENTS "MUI_TEXT_COMPONENTS_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE COMPONENTS "MUI_TEXT_COMPONENTS_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE COMPONENTS "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE"
!insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE COMPONENTS "MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE DIRECTORY "MUI_TEXT_DIRECTORY_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE DIRECTORY "MUI_TEXT_DIRECTORY_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE STARTMENU "MUI_TEXT_STARTMENU_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE STARTMENU "MUI_TEXT_STARTMENU_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE STARTMENU "MUI_INNERTEXT_STARTMENU_TOP"
# !insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE STARTMENU "MUI_INNERTEXT_STARTMENU_CHECKBOX"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_INSTALLING_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_INSTALLING_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_FINISH_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_FINISH_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_ABORT_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE INSTFILES "MUI_TEXT_ABORT_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_BUTTONTEXT_FINISH"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_INFO_TITLE"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_INFO_TEXT"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_INFO_REBOOT"
!insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_REBOOTNOW"
!insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_REBOOTLATER"
# !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_RUN"
# !insertmacro MUI_LANGUAGEFILE_MULTILANGSTRING_PAGE FINISH "MUI_TEXT_FINISH_SHOWREADME"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_DEFINE MUI_ABORTWARNING "MUI_TEXT_ABORTWARNING"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE WELCOME "MUI_UNTEXT_WELCOME_INFO_TITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE WELCOME "MUI_UNTEXT_WELCOME_INFO_TEXT"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE CONFIRM "MUI_UNTEXT_CONFIRM_TITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE CONFIRM "MUI_UNTEXT_CONFIRM_SUBTITLE"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNTEXT_LICENSE_TITLE"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNTEXT_LICENSE_SUBTITLE"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNINNERTEXT_LICENSE_BOTTOM"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE LICENSE "MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE COMPONENTS "MUI_UNTEXT_COMPONENTS_TITLE"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE COMPONENTS "MUI_UNTEXT_COMPONENTS_SUBTITLE"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE DIRECTORY "MUI_UNTEXT_DIRECTORY_TITLE"
# !insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE DIRECTORY "MUI_UNTEXT_DIRECTORY_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_UNINSTALLING_TITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_UNINSTALLING_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_FINISH_TITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_FINISH_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_ABORT_TITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE INSTFILES "MUI_UNTEXT_ABORT_SUBTITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE FINISH "MUI_UNTEXT_FINISH_INFO_TITLE"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE FINISH "MUI_UNTEXT_FINISH_INFO_TEXT"
!insertmacro MUI_LANGUAGEFILE_UNLANGSTRING_PAGE FINISH "MUI_UNTEXT_FINISH_INFO_REBOOT"
!insertmacro MUI_LANGUAGEFILE_LANGSTRING_DEFINE MUI_UNABORTWARNING "MUI_UNTEXT_ABORTWARNING"
!macroend
!macro createShortcutsINI
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Settings" NumFields "4"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Type "label"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Text "$(CREATE_ICONS_DESC)"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Left "0"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Right "-1"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Top "5"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Bottom "15"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Type "checkbox"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Text "$(ICONS_DESKTOP)"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Left "15"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Right "-1"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Top "20"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Bottom "30"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" State "1"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Flags "GROUP"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Type "checkbox"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Text "$(ICONS_STARTMENU)"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Left "15"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Right "-1"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Top "40"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Bottom "50"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" State "1"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Type "checkbox"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Text "$(ICONS_QUICKLAUNCH)"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Left "15"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Right "-1"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Top "60"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Bottom "70"
WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" State "1"
!macroend
!macro createBasicCustomOptionsINI
WriteINIStr "$PLUGINSDIR\options.ini" "Settings" NumFields "5"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Type "label"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Text "$(OPTIONS_SUMMARY)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Left "0"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Top "0"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Bottom "10"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Type "RadioButton"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Text "$(OPTION_STANDARD_RADIO)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Left "15"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Top "25"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Bottom "35"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" State "1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Flags "GROUP"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Type "RadioButton"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Text "$(OPTION_CUSTOM_RADIO)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Left "15"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Top "55"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Bottom "65"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" State "0"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Type "label"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Text "$(OPTION_STANDARD_DESC)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Left "30"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Top "37"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Bottom "57"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Type "label"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Text "$(OPTION_CUSTOM_DESC)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Left "30"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Top "67"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Bottom "87"
!macroend
!macro createBasicCompleteCustomOptionsINI
WriteINIStr "$PLUGINSDIR\options.ini" "Settings" NumFields "7"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Type "label"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Text "$(OPTIONS_DESC)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Left "0"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Top "0"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Bottom "10"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Type "RadioButton"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Text "$(OPTION_STANDARD_RADIO)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Left "15"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Top "25"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Bottom "35"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" State "1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Flags "GROUP"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Type "RadioButton"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Text "$(OPTION_COMPLETE_RADIO)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Left "15"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Top "55"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Bottom "65"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" State "0"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Type "RadioButton"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Text "$(OPTION_CUSTOM_RADIO)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Left "15"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Top "85"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Bottom "95"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" State "0"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Type "label"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Text "$(OPTION_STANDARD_DESC)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Left "30"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Top "37"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Bottom "57"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Type "label"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Text "$(OPTION_COMPLETE_DESC)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Left "30"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Top "67"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Bottom "87"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 7" Type "label"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 7" Text "$(OPTION_CUSTOM_DESC)"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 7" Left "30"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 7" Right "-1"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 7" Top "97"
WriteINIStr "$PLUGINSDIR\options.ini" "Field 7" Bottom "117"
!macroend
!macro GetParentDir
Exch $R0
Push $R1
@ -121,9 +381,10 @@ Exch $R9 ; exchange the new $R9 value with the top of the stack
ClearErrors
GetFullPathName $R8 $R0
IfErrors 0 +2
IfErrors +2 0
StrCpy $R0 $R8
ClearErrors
Pop $R9
Pop $R8
Exch $R0
@ -186,7 +447,6 @@ Exch $R9 ; exchange the new $R9 value with the top of the stack
!macroend
!define LogUninstall "!insertmacro LogUninstall"
/**
* Common installer macros used by toolkit applications.
* The macros below will automatically prepend un. to the function names when

View File

@ -0,0 +1,55 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Mozilla Installer code.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
/**
* "One off" locale configuration settings for font name, font size, and RTL
* (e.g. locale text is read right to left).
*/
; Arabic
!define ar_rtl
; Hebrew
!define he_rtl
; Chinese Simplified, China
!define zh-CN_font "ËÎÌå"
!define zh-CN_size "9"
; Chinese Traditional, Taiwan
!define zh-TW_font "·s²Ó©úÅé"
!define zh-TW_size "9"

View File

@ -41,8 +41,6 @@
# deleteThisFile/deleteThisFolder instructions suitable for an install.js
# script. This simply processes <> to stdout.
print "\n\n$1\n\n";
while (<>) {
m|^\s*(\S+)\s*$|;
my $file = $1;

View File

@ -46,9 +46,7 @@ endif
TOOLKIT_NSIS_FILES = \
common.nsh \
installer.nsi \
options.ini \
shortcuts.ini \
locales.nsi \
ShellLink.dll \
version.nsh \
$(NULL)
@ -56,7 +54,6 @@ TOOLKIT_NSIS_FILES = \
installer::
$(INSTALL) $(addprefix $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/,$(TOOLKIT_NSIS_FILES)) $(CONFIG_DIR)
$(INSTALL) $(topsrcdir)/toolkit/mozapps/installer/windows/wizard/setuprsc/setup.ico $(CONFIG_DIR)
$(INSTALL) $(call EXPAND_LOCALE_SRCDIR,toolkit/locales)/installer/windows/commonLocale.nsh $(CONFIG_DIR)
cd $(CONFIG_DIR) && makensis.exe installer.nsi
$(INSTALL) $(CONFIG_DIR)/removed-files.log $(CONFIG_DIR)/setup.exe $(DEPTH)/installer-stage
cd $(DEPTH)/installer-stage && $(CYGWIN_WRAPPER) 7z a -r -t7z $(CONFIG_DIR)/app.7z -mx -m0=BCJ2 -m1=LZMA:d24 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3

View File

@ -1,62 +0,0 @@
[Settings]
NumFields=7
[Field 1]
Type=label
Text=Choose the type of setup you prefer, then click Next.
Left=0
Right=-1
Top=0
Bottom=10
[Field 2]
Type=RadioButton
Text=&Standard
Left=15
Right=-1
Top=25
Bottom=35
State=1
Flags=GROUP
[Field 3]
Type=RadioButton
Text=&Complete
Left=15
Right=-1
Top=55
Bottom=65
State=0
[Field 4]
Type=RadioButton
Text=C&ustom
Left=15
Right=-1
Top=85
Bottom=95
State=0
[Field 5]
Type=label
Text=Browser will be installed with the most common options.
Left=30
Right=-1
Top=37
Bottom=47
[Field 6]
Type=label
Text=Browser will be installed with all available options.
Left=30
Right=-1
Top=67
Bottom=77
[Field 7]
Type=label
Text=You may choose individual options to be installed. Recommended for experienced\nusers.
Left=30
Right=-1
Top=97
Bottom=117

View File

@ -0,0 +1,186 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla installer build scripts.
#
# The Initial Developer of the Original Code is Mozilla Foundation
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert Strong <robert.bugzilla@gmail.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
my $topsrcdir = "$ARGV[0]";
my $appLocaleDir = "$ARGV[1]";
my $AB_CD = "$ARGV[2]";
my $langCP = "$ARGV[3]";
my $nsisVer = "v6";
# Set the language ID to 0 to make this locale the default locale. An actual
# ID will need to be used to create a multi-language installer (e.g. for CD
# distributions, etc.).
my $langID = 0;
my $nsisCP = "-";
my $fontName = "-";
my $fontSize = "-";
my $RTL = "-";
my $line;
my $lnum;
# Read the codepage for the locale and the optional font name, font size, and
# whether the locale is right to left from locales.nsi.
my $inFile = "$topsrcdir/toolkit/mozapps/installer/windows/nsis/locales.nsi";
open(locales, "<$inFile");
$lnum = 1;
while( $line = <locales> ) {
$line =~ s/[\r\n]*//g; # remove \r and \n
if ($line =~ m|^!define $AB_CD\_font .*|) {
$fontName = $line;
$fontName =~ s/^!define $AB_CD\_font[^"]*"([^"]*)".*$/$1/g;
}
if ($line =~ m|^!define $AB_CD\_size .*|) {
$fontSize = $line;
$fontSize =~ s/^!define $AB_CD\_size[^"]*"([^"]*)".*$/$1/g;
}
if ($line =~ m|^!define $AB_CD\_rtl|) {
$RTL = "RTL";
}
$lnum++;
}
close locales;
if ($codepage != "CP1252") {
$nsisCP = $langCP;
$nsisCP =~ s/^CP(.*)$/$1/g;
}
# Create the main NSIS language file with just the codepage, font, and
# RTL information
open(outfile, ">instgen/nlf.in");
print outfile "# Header, don't edit\r\nNLF $nsisVer\r\n# Start editing here\r\n";
print outfile "# Language ID\r\n$langID\r\n";
print outfile "# Font and size - dash (-) means default\r\n$fontName\r\n$fontSize\r\n";
print outfile "# Codepage - dash (-) means ANSI code page\r\n$nsisCP\r\n";
print outfile "# RTL - anything else than RTL means LTR\r\n$RTL\r\n";
close outfile;
&cpConvert("nlf.in", "baseLocale.nlf", $langCP);
# Create the main NSIS language file
$inFile = "$appLocaleDir/override.properties";
if (!-e $inFile) {
die "Error $inFile does not exist!";
}
open(infile, "<$inFile");
open(outfile, ">instgen/override.properties");
$lnum = 1;
while( $line = <infile> ) {
$line =~ s/[\r\n]*//g; # remove \r and \n
next if ($line =~ m|^#|);
my @values = split('=', $line, 2);
next if (@values[0] eq undef) || (@values[1] eq undef);
my $value = @values[1];
$value =~ s/^"(.*)"$/$1/g; # remove " at the beginning and end of the value
$value =~ s/(")/\$\\$1/g; # prefix " with $\
print outfile "LangString ^@values[0] $langID \"$value\"\r\n";
$lnum++;
}
close infile;
close outfile;
&cpConvert("override.properties", "overrideLocale.nsh", $langCP);
# Create the main Modern User Interface language file
$inFile = "$appLocaleDir/mui.properties";
if (!-e $inFile) {
die "Error $inFile does not exist!";
}
open(infile, "<$inFile");
open(outfile, ">instgen/mui.properties");
print outfile ";NSIS Modern User Interface - Language File\r\n";
print outfile ";Compatible with Modern UI 1.68\r\n";
print outfile ";Language: baseLocale ($langID)\r\n";
print outfile "!insertmacro MOZ_MUI_LANGUAGEFILE_BEGIN \"baseLocale\"\r\n";
print outfile "!define MUI_LANGNAME \"baseLocale\"\r\n";
$lnum = 1;
while( $line = <infile> ) {
$line =~ s/[\r\n]*//g; # remove \r and \n
next if ($line =~ m|^#|) || ($line eq "");
my @values = split('=', $line, 2);
next if (@values[0] eq undef) || (@values[1] eq undef);
my $value = @values[1];
$value =~ s/(")/\$\\$1/g; # prefix " with $\
$value =~ s/(\\n)/\\r$1/g; # insert \\r before each occurence of \\n
$value =~ s/(\\r)\\r/$1/g; # replace all ocurrences of \\r\\r with \\r
print outfile "!define @values[0] \"$value\"\r\n";
$lnum++;
}
print outfile "!insertmacro MOZ_MUI_LANGUAGEFILE_END\r\n";
close infile;
close outfile;
&cpConvert("mui.properties", "baseLocale.nsh", $langCP);
# Create the custom language file for our custom strings
$inFile = "$appLocaleDir/custom.properties";
if (!-e $inFile) {
die "Error $inFile does not exist!";
}
open(infile, "<$inFile");
open(outfile, ">instgen/custom.properties");
$lnum = 1;
while( $line = <infile> ) {
$line =~ s/[\r\n]*//g; # remove \r and \n
next if ($line =~ m|^#|) || ($line eq "");
my @values = split('=', $line, 2);
next if (@values[0] eq undef) || (@values[1] eq undef);
my $string = @values[1];
$string =~ s/"/\$\\"/g; # replace " with $\"
$string =~ s/(\\n)/\\r$1/g; # insert \\r before each occurence of \\n
$string =~ s/(\\r)\\r/$1/g; # replace all ocurrences of \\r\\r with \\r
$string =~ s/(\\[rn])/\$$1/g; # prefix all occurences of \\r and \\n with $
print outfile "LangString @values[0] $langID \"$string\"\r\n";
$lnum++;
}
close infile;
close outfile;
&cpConvert("custom.properties", "customLocale.nsh", $langCP);
# Converts a file's codepage
sub cpConvert
{
my $srcFile = $_[0];
my $targetFile = $_[1];
my $targetCodepage = $_[2];
print "iconv -f UTF-8 -t $targetCodepage instgen/$srcFile > instgen/$targetFile\n";
system("iconv -f UTF-8 -t $targetCodepage instgen/$srcFile > instgen/$targetFile") &&
die "Error converting codepage to $targetCodepage for instgen/$srcFile";
unlink <instgen/$srcFile>;
}

View File

@ -1,38 +0,0 @@
[Settings]
NumFields=4
[Field 1]
Type=label
Text=Create icons for Firefox:
Left=0
Right=-1
Top=5
Bottom=15
[Field 2]
Type=checkbox
Text=On my &Desktop
Left=15
Right=-1
Top=20
Bottom=30
State=1
Flags=GROUP
[Field 3]
Type=checkbox
Text=In my &Start Menu Programs folder
Left=15
Right=-1
Top=40
Bottom=50
State=1
[Field 4]
Type=checkbox
Text=In my &Quick Launch bar
Left=15
Right=-1
Top=60
Bottom=70
State=1