зеркало из https://github.com/mozilla/gecko-dev.git
Add MSI package generation for Thunderbird. This is an extension of work
supporting bug 231062. (cmp)
This commit is contained in:
Родитель
e51a8420fb
Коммит
89629fd466
|
@ -20,6 +20,7 @@
|
|||
#
|
||||
# Contributor(s):
|
||||
# Brian Ryner <bryner@brianryner.com>
|
||||
# Chase Phillips <cmp@mozilla.org>
|
||||
#
|
||||
# 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
|
||||
|
@ -52,6 +53,7 @@ endif
|
|||
|
||||
installer:
|
||||
cd $(topsrcdir)/toolkit/mozapps/installer && perl build_static.pl -config "$(CONFIG_DIR)" -srcDir "$(SRC_DIR)" -objDir "$(OBJ_DIR)" -aurl "$(INSTALLER_URL)"
|
||||
cd $(topsrcdir)/toolkit/mozapps/installer/windows/msi && perl make-msi.pl -config "$(CONFIG_DIR)" -srcDir "$(SRC_DIR)" -objDir "$(OBJ_DIR)" -project thunderbird
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ VersionProduct = 0.6.0+
|
|||
DistSubdir = bin
|
||||
packagesFile = basemail-win
|
||||
FileInstallerEXE = ThunderbirdSetup.exe
|
||||
FileInstallerMSI = ThunderbirdSetup.msi
|
||||
FileMainEXE = thunderbird.exe
|
||||
FileUninstall = UninstallThunderbird.exe
|
||||
FileUninstallZIP = UninstallThunderbird.zip
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
;--- Include MAKEMSI support ------------------------------------------------
|
||||
#include "thunderbird.mmh"
|
||||
|
||||
<$AbortIf Condition=^not VersionNT OR (VersionNT < 400)^ Message=^Can only be installed on WinNT, Windows 2000, XP or greater.^>
|
||||
|
||||
<$DirectoryTree Key="INSTALLDIR" DIR="[ProgramFilesFolder]\Mozilla Thunderbird Installer" CHANGE="\" PrimaryFolder="Y">
|
||||
|
||||
<$Feature "F_ThunderbirdMain" Title="Browser" Description="Thunderbird installer files" Attributes="FavorLocal">
|
||||
|
||||
<$Icon KEY="@Thunderbirdicon" "..\branding\thunderbird.ico">
|
||||
|
||||
<$Files "..\install\setup\*.*" SubDir="TREE" DestDir="INSTALLDIR" EXLIST="NotThese">
|
||||
<$Files "..\install\xpi\*.*" SubDir="TREE" DestDir="INSTALLDIR" EXLIST="NotThese">
|
||||
|
||||
#(
|
||||
<$ExeCA
|
||||
EXE="[INSTALLDIR]setup.exe"
|
||||
Args="-ma -ira -nosplash -setDefaultBrowser"
|
||||
Seq="6401" ;; Run this between PublishProduct and InstallFinalize
|
||||
Type="AnyRC"
|
||||
>
|
||||
#)
|
||||
<$/Feature>
|
||||
|
||||
; fix dialog picture and make it pretty
|
||||
<$Table "Control">
|
||||
#(
|
||||
<$Row
|
||||
@Where="Control = 'Bitmap'"
|
||||
@OK="=8"
|
||||
Attributes="1048577"
|
||||
>
|
||||
#)
|
||||
<$/Table>
|
|
@ -0,0 +1,202 @@
|
|||
; thunderbird.mmh
|
||||
;
|
||||
; Derived from MakeMSI's dennis.mmh:
|
||||
; (C)opyright Dennis Bareis, Australia, 2003. All rights reserved.
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;--- Set up some options specific to my requirements ------------------------
|
||||
;----------------------------------------------------------------------------
|
||||
#define? DEPT_ARP_URL_PUBLISHER <?PpwizardAuthorHomePage> ;;My main web page
|
||||
#define? DEPT_ARP_URL_TECHNICAL_SUPPORT <?PpwizardAuthorHomePage> ;;Default to my web site (root)
|
||||
#define? COMPANY_CONTACT_NAME <$DEPT_NAME> ;;My name
|
||||
#define? COMPANY_CONTACT_NAME_PHONE ;;My phone contact (don't even think about it :-)
|
||||
#define? DEFAULT_FILE_WANT_FILEHASH Y ;;My box can generate MD5 hashes!
|
||||
#define? COMPANY_PREPROCESS_LICENCE_FILE Y ;;Default is to preprocess licence files
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;--- I want to "mark" my development MSIs -----------------------------------
|
||||
;----------------------------------------------------------------------------
|
||||
#define? COMPANY_MSINAME_SUFFIX.D (test)
|
||||
#define? COMPANY_MSINAME_SUFFIX.P
|
||||
#define? COMPANY_MSINAME_SUFFIX <$COMPANY_MSINAME_SUFFIX.[MMMODE]> ;;Adds "(test)" in development mode
|
||||
#define? COMPANY_PRODUCT_NAME_PREFIX.D !!! ;;Developer friendy - sorts up front in ARP (in development mode)
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;--- Some options more as examples than anything else (sets to defaults anyway) ---
|
||||
;----------------------------------------------------------------------------
|
||||
#define? MAKEMSI_HTML_EXTENSION hta ;;Default extension (HTML Application - gets around WINXP SP2 issue)
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;--- The Graphics I want to use (at least by default) -----------------------
|
||||
;----------------------------------------------------------------------------
|
||||
#define? UISAMPLE_DIALOG_FILE_dlgbmp ;;My replacement graphic for the left hand side (vertical) bitmap
|
||||
;#define? UISAMPLE_DIALOG_FILE_dlgbmp ../branding/Watermrk.bmp ;;My replacement graphic for the left hand side (vertical) bitmap
|
||||
#define? UISAMPLE_LEFTSIDE_TEXT ;;Disable "left side text"
|
||||
#define? UISAMPLE_BITMAP_WHITE_BANNER white.bmp ;;Use "white.bmp" if you just want it plain
|
||||
#define? UISAMPLE_BITMAP_BANNER_GRAPHIC ../branding/Header.bmp ;;The graphic on the right of the "UISAMPLE_BITMAP_WHITE_BANNER"
|
||||
#define? COMPANY_PRODUCT_ICON ../branding/thunderbird.ico ;;Add-Remove (control panel) icon
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;--- Define the types of boxes that I support -------------------------------
|
||||
;----------------------------------------------------------------------------
|
||||
#(
|
||||
;--- The VER file will refer to one or more of these platforms or groups ---
|
||||
#define COMPANY_DEFINE_DEPARTMENTS_PLATFORMS
|
||||
|
||||
;--- WINXP ---------------------------------------------------------------
|
||||
#define PD_WINXP Windows\XP
|
||||
<$Platform "WINDOWS_XP_SERVER" DESC=^Windows XP Server^ PLATDIR="<$PD_WINXP>\Servers">
|
||||
<$Platform "WINDOWS_XP_PRO" DESC=^Windows XP PRO^ PLATDIR="<$PD_WINXP>\PRO">
|
||||
#(
|
||||
<$Platform "WINDOWS_XP" DESC=^Windows XP (Server/PRO)^
|
||||
Contains="WINDOWS_XP_SERVER WINDOWS_XP_PRO"
|
||||
>
|
||||
#)
|
||||
|
||||
;--- WIN2000 -------------------------------------------------------------
|
||||
#define PD_WIN2000 Windows\2000
|
||||
<$Platform "WINDOWS_2000_SERVER" DESC=^Windows 2000 Server^ PLATDIR="<$PD_WIN2000>\Servers">
|
||||
<$Platform "WINDOWS_2000_PRO" DESC=^Windows 2000 PRO^ PLATDIR="<$PD_WIN2000>\PRO">
|
||||
#(
|
||||
<$Platform "WINDOWS_2000" DESC=^Windows 2000 (Server/PRO)^
|
||||
Contains="WINDOWS_2000_SERVER WINDOWS_2000_PRO"
|
||||
>
|
||||
#)
|
||||
|
||||
;--- Others --------------------------------------------------------------
|
||||
<$Platform "WINDOWS_NT4" DESC=^Windows NT 4^ PLATDIR="Windows\NT4">
|
||||
<$Platform "WINDOWS_ME" DESC=^Windows ME^ PLATDIR="Windows\ME">
|
||||
<$Platform "WINDOWS_98" DESC=^Windows 98^ PLATDIR="Windows\98">
|
||||
<$Platform "WINDOWS_95" DESC=^Windows 95^ PLATDIR="Windows\95">
|
||||
|
||||
;--- A generic one for testing (Maybe it will never be supported) --------
|
||||
<$Platform "TEST" DESC=^Testing (NOT SUPPORTED)^ PLATDIR="Testing-Unsupported">
|
||||
|
||||
;--- Now create a group for all WINDOWS (groups can contain groups) ------
|
||||
#(
|
||||
<$Platform "WINDOWS_ALL" DESC=^Any Windows workstations or servers^
|
||||
Contains="WINDOWS_95 WINDOWS_98 WINDOWS_ME WINDOWS_NT4 WINDOWS_2000 WINDOWS_XP"
|
||||
>
|
||||
#)
|
||||
#)
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;--- I want local build logs & platform logs updated only for production ----
|
||||
;----------------------------------------------------------------------------
|
||||
#define? DENNIS_LOCAL_LOG_ROOT <??*APPDATA>\MAKEMSI.LOGS
|
||||
#( ';'
|
||||
;--- Local files for Development Mode Build -----------------------------
|
||||
#define? DENNIS_MAKEMSI_LOCAL_LOGS_FOR_DEVELOPER_MODE
|
||||
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\ALL.LOG ;;Dev+Prod
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\DEVELOPER.LOG ;;Dev Only
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\Product\{ProductName}.LOG ;;Dev+Prod
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\Product\Developer\{ProductName}.LOG ;;Dev Only
|
||||
#)
|
||||
#( ';'
|
||||
;--- Local files for Production Mode Build ------------------------------
|
||||
#define? DENNIS_MAKEMSI_LOCAL_LOGS_FOR_PRODUCTION_MODE
|
||||
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\ALL.LOG ;;Dev+Prod
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\PRODUCTION.LOG ;;Prod Only
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\Product\{ProductName}.LOG ;;Dev+Prod
|
||||
<$DENNIS_LOCAL_LOG_ROOT>\Product\Production\{ProductName}.LOG ;;Prod Only
|
||||
#)
|
||||
#( ';'
|
||||
;--- Development Build --------------------------------------------------
|
||||
#define? PLATFORM_LOG_FILES.D
|
||||
|
||||
;--- Only local files (don't touch platform logs) -----------------------
|
||||
<$DENNIS_MAKEMSI_LOCAL_LOGS_FOR_DEVELOPER_MODE>
|
||||
#)
|
||||
#( ';'
|
||||
;--- Production build ---------------------------------------------------
|
||||
#define? PLATFORM_LOG_FILES.P
|
||||
|
||||
;--- Logs in other directories ------------------------------------------
|
||||
<$DENNIS_MAKEMSI_LOCAL_LOGS_FOR_PRODUCTION_MODE>
|
||||
|
||||
;--- The normal log files in platform directories (prod only) -----------
|
||||
<$PLATFORM_DEFAULT_LOG_FILES>
|
||||
#)
|
||||
#define? PLATFORM_LOG_FILES <$PLATFORM_LOG_FILES.[MmMode]>
|
||||
|
||||
|
||||
;---[ReadMeMacros4MakemsiDoco]----
|
||||
;----------------------------------------------------------------------------
|
||||
;--- ReadMe Macros (creates and adds readme.txt to current component) -------
|
||||
;----------------------------------------------------------------------------
|
||||
#(
|
||||
;--- Define README start macro ------------------------------------------
|
||||
#define ReadMe
|
||||
|
||||
;--- Open the output file (following lines placed in the file) ----------
|
||||
#define+ @@ReadmeName <$MAKEMSI_OUT_LOG_DIR_RELATIVE>\ReadmeFiles\Readme-<$Component?>.TXT ;;Only once per-component!
|
||||
#define+ @@IsKeyFile {$KeyFile=^N^}
|
||||
<$FileMake "<$@@ReadmeName>">
|
||||
|
||||
;--- Want to keep blank lines! ------------------------------------------
|
||||
#option PUSH LeaveBlankLines=ON
|
||||
|
||||
;--- You add readme text lines between the "<$readme>" and "<$/readme>" tags ---
|
||||
#)
|
||||
#(
|
||||
;--- Define README end macro --------------------------------------------
|
||||
#define /ReadMe
|
||||
|
||||
;--- Restore options to original state ----------------------------------
|
||||
#option POP
|
||||
|
||||
;--- Close the file -----------------------------------------------------
|
||||
<$/FileMake>
|
||||
|
||||
;--- Add the file to the current component ------------------------------
|
||||
<$File Source="<$@@ReadmeName>" Destination="{$Destination=^ReadMe.TXT^}" KEYPATH=^<$@@IsKeyFile>^>
|
||||
#)
|
||||
;---[ReadMeMacros4MakemsiDoco]----
|
||||
|
||||
|
||||
;---[4Doco-FindWscript.exe]----
|
||||
;----------------------------------------------------------------------------
|
||||
;--- Macro to find "WSCRIPT.EXE"
|
||||
;--- MS stupidly place this file in logically different locations
|
||||
;--- "C:\windows" in WIN98. Also just to make like difficult it is not
|
||||
;--- possible to search by attribute, or search path and thus not possible
|
||||
;--- to avoid possible incorrect matches in fixpack bacup directories, all in
|
||||
;--- all nearly a handful of reasons to swear at MS in one go....
|
||||
;----------------------------------------------------------------------------
|
||||
#(
|
||||
#define WSCRIPT.EXE
|
||||
|
||||
;--- Can't do this! Can find files in "$NtServicePackUninstall" type directories ---
|
||||
;<$FileFind File="WSCRIPT.EXE" Property="WSCRIPT.EXE" PATH="[WindowsFolder]" Depth="1">
|
||||
|
||||
;--- Thanks MS... -------------------------------------------------------
|
||||
<$FileFind File="WSCRIPT.EXE" Property="WSCRIPT.EXE.WF" PATH="[WindowsFolder]" Depth="0" Default="">
|
||||
<$FileFind File="WSCRIPT.EXE" Property="WSCRIPT.EXE.SF" PATH="[SystemFolder]" Depth="0" Default="">
|
||||
<$PropertyCa "WSCRIPT.EXE" Value="[WSCRIPT.EXE.WF]" Seq="AppSearch-" Condition="WSCRIPT.EXE.WF and (<$CONDITION_EXCEPT_UNINSTALL>)" SeqTable="InstallUISequence InstallExecuteSequence">
|
||||
<$PropertyCa "WSCRIPT.EXE" Value="[WSCRIPT.EXE.SF]" Seq="AppSearch-" Condition="WSCRIPT.EXE.SF and (<$CONDITION_EXCEPT_UNINSTALL>)" SeqTable="InstallUISequence InstallExecuteSequence">
|
||||
<$AbortIf
|
||||
Condition="not WSCRIPT.EXE and (<$CONDITION_EXCEPT_UNINSTALL>)"
|
||||
Message=^The file "WSCRIPT.EXE" was not found in the "[WindowsFolder]" or "[SystemFolder]" directories!^
|
||||
SeqTable="InstallUISequence InstallExecuteSequence"
|
||||
Seq="AppSearch-"
|
||||
>
|
||||
#)
|
||||
;---[4Doco-FindWscript.exe]----
|
||||
|
||||
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
;--- Include MAKEMSI support ------------------------------------------------
|
||||
;----------------------------------------------------------------------------
|
||||
#include "mozilla-dept.mmh"
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
;----------------------------------------------------------------------------
|
||||
; ProductName = Mozilla Thunderbird Installer
|
||||
; Description = Mozilla Thunderbird Installer is a delivery vehicle for Mozilla
|
||||
; = Thunderbird for easy, large-scale deployment.
|
||||
; Installed = WINDOWS_ALL
|
||||
; MsiName = thunderbird
|
||||
; Guid.UpgradeCode = {06863EB1-787F-462D-89BD-D7A82A276303}
|
||||
|
||||
VERSION : 1.0
|
||||
DATE : 07 Jan 2005
|
||||
CHANGES : Initial version.
|
Загрузка…
Ссылка в новой задаче