diff options
Diffstat (limited to '')
-rw-r--r-- | comm/mail/installer/windows/msi/installer.wxs | 104 | ||||
-rw-r--r-- | comm/mail/installer/windows/msix/AppxManifest.xml.in | 150 | ||||
-rw-r--r-- | comm/mail/installer/windows/msix/Resources.pri | bin | 0 -> 2280 bytes | |||
-rw-r--r-- | comm/mail/installer/windows/msix/distribution/distribution.ini | 12 | ||||
-rw-r--r-- | comm/mail/installer/windows/msix/msix-all-locales | 361 | ||||
-rw-r--r-- | comm/mail/installer/windows/msix/priconfig.xml | 38 |
6 files changed, 665 insertions, 0 deletions
diff --git a/comm/mail/installer/windows/msi/installer.wxs b/comm/mail/installer/windows/msi/installer.wxs new file mode 100644 index 0000000000..255bd81e86 --- /dev/null +++ b/comm/mail/installer/windows/msi/installer.wxs @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="utf-8"?> + +<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> + +<Product Name="Mozilla Thunderbird $(var.Version) $(var.Architecture) $(var.AB_CD)" + Manufacturer="*" Language="0" Codepage="1252" + Version="$(var.EmbeddedVersionCode)" Id="18d4d2f4-b394-48a2-8886-9c68180cead5" + UpgradeCode="53ba97bb-f0fb-476d-baf5-e2d649f39a31" > + + <Package Id="*" InstallerVersion="200" Compressed="yes" + Platform="$(var.Architecture)" InstallScope ="perMachine"/> + + <!-- We need a CAB to avoid failing an ICE, even though we have no payload. --> + <Media Id="1" Cabinet="setup.cab" EmbedCab="yes" /> + + <!-- We need a component and feature, or msiexec will refuse to load us. --> + <Directory Id="TARGETDIR" Name="SourceDir"> + <Directory Id="TempFolder"> + <Component Id="EmptyComponent" Guid="d7fd8e89-04a4-4dd4-affc-35d8695a50a2"> + <CreateFolder /> + </Component> + </Directory> + </Directory> + + <!-- Setting the feature to level 0 marks it hidden, so it can't be installed. + That prevents getting this MSI registered as an installed product, + because it has no features of its own to install. --> + <Feature Id="EmptyFeature" Level="0"> + <ComponentRef Id="EmptyComponent" /> + </Feature> + + <!-- Embed the installer we want to run directly into the MSI database. --> + <Binary Id="WrappedExe" SourceFile="$(var.ExeSourcePath)" /> + + <!-- User-configurable properties. One of these corresponds to each documented + command-line parameter. Properties cannot be present without a value, + so use a conspicuous and difficult to mistake string for the parameters + that have no real default values. --> + <Property Id="INSTALL_DIRECTORY_PATH" Value="__DEFAULT__" /> + <Property Id="INSTALL_DIRECTORY_NAME" Value="__DEFAULT__" /> + <Property Id="TASKBAR_SHORTCUT" Value="true" /> + <Property Id="DESKTOP_SHORTCUT" Value="true" /> + <Property Id="START_MENU_SHORTCUT" Value="true" /> + <Property Id="INSTALL_MAINTENANCE_SERVICE" Value="true" /> + <Property Id="REMOVE_DISTRIBUTION_DIR" Value="true" /> + <Property Id="PREVENT_REBOOT_REQUIRED" Value="false" /> + <Property Id="OPTIONAL_EXTENSIONS" Value="true" /> + <Property Id="EXTRACT_DIR" Value="__DEFAULT__" /> + + <!-- Always include all of the boolean options on the command line, so we don't + have to conditionally decide when to include each one of them. For the + directory settings though, we can't put them on the command line with the + default values those properties have, so we need a separate action for + each possible configuration of those settings, and conditions to select + the right action to use based on which properties are configured. + WiX throws warning LGHT1076 complaining that these command strings are + too long, but they actually work just fine, the warning is spurious. --> + <CustomAction Id="RunInstallNoDir" Return="check" Execute="deferred" + HideTarget="no" Impersonate="no" BinaryKey="WrappedExe" + ExeCommand="/S /TaskbarShortcut=[TASKBAR_SHORTCUT] /DesktopShortcut=[DESKTOP_SHORTCUT] /StartMenuShortcut=[START_MENU_SHORTCUT] /MaintenanceService=[INSTALL_MAINTENANCE_SERVICE] /RemoveDistributionDir=[REMOVE_DISTRIBUTION_DIR] /PreventRebootRequired=[PREVENT_REBOOT_REQUIRED] /OptionalExtensions=[OPTIONAL_EXTENSIONS] /LaunchedFromMSI" /> + <CustomAction Id="RunInstallDirPath" Return="check" Execute="deferred" + HideTarget="no" Impersonate="no" BinaryKey="WrappedExe" + ExeCommand="/S /InstallDirectoryPath=[INSTALL_DIRECTORY_PATH] /TaskbarShortcut=[TASKBAR_SHORTCUT] /DesktopShortcut=[DESKTOP_SHORTCUT] /StartMenuShortcut=[START_MENU_SHORTCUT] /MaintenanceService=[INSTALL_MAINTENANCE_SERVICE] /RemoveDistributionDir=[REMOVE_DISTRIBUTION_DIR] /PreventRebootRequired=[PREVENT_REBOOT_REQUIRED] /OptionalExtensions=[OPTIONAL_EXTENSIONS] /LaunchedFromMSI" /> + <CustomAction Id="RunInstallDirName" Return="check" Execute="deferred" + HideTarget="no" Impersonate="no" BinaryKey="WrappedExe" + ExeCommand="/S /InstallDirectoryName=[INSTALL_DIRECTORY_NAME] /TaskbarShortcut=[TASKBAR_SHORTCUT] /DesktopShortcut=[DESKTOP_SHORTCUT] /StartMenuShortcut=[START_MENU_SHORTCUT] /MaintenanceService=[INSTALL_MAINTENANCE_SERVICE] /RemoveDistributionDir=[REMOVE_DISTRIBUTION_DIR] /PreventRebootRequired=[PREVENT_REBOOT_REQUIRED] /OptionalExtensions=[OPTIONAL_EXTENSIONS] /LaunchedFromMSI" /> + <CustomAction Id="RunExtractOnly" Return="check" Execute="deferred" + HideTarget="no" Impersonate="no" BinaryKey="WrappedExe" + ExeCommand="/ExtractDir=[EXTRACT_DIR]" /> + + <!-- When we run the custom actions is kind of arbitrary; this sequencing gets + us the least confusing message showing in the MSI progress dialog while + the installer runs. Our actions don't need to be sequenced relative + to one another because only one will ever run. --> + <InstallExecuteSequence> + <Custom Action="RunInstallNoDir" After="ProcessComponents"> + <![CDATA[ + (INSTALL_DIRECTORY_PATH = "__DEFAULT__") AND + (INSTALL_DIRECTORY_NAME = "__DEFAULT__") AND + (EXTRACT_DIR = "__DEFAULT__") + ]]> + </Custom> + <Custom Action="RunInstallDirPath" After="ProcessComponents"> + <![CDATA[ + (INSTALL_DIRECTORY_PATH <> "__DEFAULT__") AND + (INSTALL_DIRECTORY_NAME = "__DEFAULT__") AND + (EXTRACT_DIR = "__DEFAULT__") + ]]> + </Custom> + <Custom Action="RunInstallDirName" After="ProcessComponents"> + <![CDATA[ + (INSTALL_DIRECTORY_NAME <> "__DEFAULT__") AND + (EXTRACT_DIR = "__DEFAULT__") + ]]> + </Custom> + <Custom Action="RunExtractOnly" After="ProcessComponents"> + <![CDATA[ + EXTRACT_DIR <> "__DEFAULT__" + ]]> + </Custom> + </InstallExecuteSequence> +</Product> + +</Wix> diff --git a/comm/mail/installer/windows/msix/AppxManifest.xml.in b/comm/mail/installer/windows/msix/AppxManifest.xml.in new file mode 100644 index 0000000000..80b86f4624 --- /dev/null +++ b/comm/mail/installer/windows/msix/AppxManifest.xml.in @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public +- License, v. 2.0. If a copy of the MPL was not distributed with this file, +- You can obtain one at http://mozilla.org/MPL/2.0/. --> +<!-- #filter substitution --> +<Package + xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" + xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10" + xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10" + xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" + xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" + xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" + xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" + xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" + IgnorableNamespaces="uap uap2 uap3 uap10 rescap"> + + <Identity Name="@APPX_IDENTITY@" Publisher="@APPX_PUBLISHER@" Version="@APPX_VERSION@" + ProcessorArchitecture="@APPX_ARCH@"/> + <Properties> + <DisplayName>@APPX_DISPLAYNAME@</DisplayName> + <PublisherDisplayName>@APPX_PUBLISHER_DISPLAY_NAME@</PublisherDisplayName> + <Description>@APPX_DESCRIPTION@</Description> + <Logo>Assets\StoreLogo.png</Logo> + <uap10:PackageIntegrity> + <uap10:Content Enforcement="on"/> + </uap10:PackageIntegrity> + </Properties> + <Resources> + @APPX_RESOURCE_LANGUAGE_LIST@ + </Resources> + <Dependencies> + <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" + MaxVersionTested="10.0.22621.1555"/> + </Dependencies> + <Capabilities> + <rescap:Capability Name="runFullTrust"/> + </Capabilities> + <Applications> + <Application Id="App" Executable="VFS\ProgramFiles\@APPX_INSTDIR@\@MOZ_APP_NAME@.exe" + EntryPoint="Windows.FullTrustApplication"> + <uap:VisualElements BackgroundColor="#20123A" DisplayName="@APPX_DISPLAYNAME@" + Square150x150Logo="Assets\Square150x150Logo.png" + Square44x44Logo="Assets\Square44x44Logo.png" + Description="@APPX_DESCRIPTION@"> + <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" + Square310x310Logo="Assets\LargeTile.png" + Square71x71Logo="Assets\SmallTile.png"> + <uap:ShowNameOnTiles> + <uap:ShowOn Tile="square150x150Logo"/> + <uap:ShowOn Tile="wide310x150Logo"/> + <uap:ShowOn Tile="square310x310Logo"/> + </uap:ShowNameOnTiles> + </uap:DefaultTile> + </uap:VisualElements> + <Extensions> + <uap3:Extension Category="windows.appExecutionAlias" + EntryPoint="Windows.FullTrustApplication" + Executable="VFS\ProgramFiles\@APPX_INSTDIR@\@MOZ_APP_NAME@.exe"> + <uap3:AppExecutionAlias> + <desktop:ExecutionAlias Alias="@MOZ_APP_NAME@.exe"/> + </uap3:AppExecutionAlias> + </uap3:Extension> + <uap3:Extension Category="windows.fileTypeAssociation"> + <uap3:FileTypeAssociation Name="eml"> + <uap:SupportedFileTypes> + <!-- Keep synchronized with + https://searchfox.org/comm-central/source/mail/installer/windows/nsis/shared.nsh --> + <uap:FileType>.eml</uap:FileType> + </uap:SupportedFileTypes> + <uap:Logo>Assets\Email44x44.png</uap:Logo> + <uap2:SupportedVerbs> + <uap3:Verb Id="open" Parameters="-osint -mail "%1"">open</uap3:Verb> + </uap2:SupportedVerbs> + </uap3:FileTypeAssociation> + </uap3:Extension> + <uap3:Extension Category="windows.fileTypeAssociation"> + <uap3:FileTypeAssociation Name="ics"> + <uap:SupportedFileTypes> + <!-- Keep synchronized with + https://searchfox.org/comm-central/source/mail/installer/windows/nsis/shared.nsh --> + <uap:FileType>.ics</uap:FileType> + </uap:SupportedFileTypes> + <uap:Logo>Assets\Calendar44x44.png</uap:Logo> + <uap2:SupportedVerbs> + <uap3:Verb Id="open" Parameters="-osint "%1"">open</uap3:Verb> + </uap2:SupportedVerbs> + </uap3:FileTypeAssociation> + </uap3:Extension> + <uap3:Extension Category="windows.protocol"> + <uap3:Protocol Name="mailto" Parameters="-osint -url "%1""> + <uap:DisplayName>mailto</uap:DisplayName> + <uap:Logo>Assets\Email44x44.png</uap:Logo> + </uap3:Protocol> + </uap3:Extension> + <uap3:Extension Category="windows.protocol"> + <uap3:Protocol Name="mid" Parameters="-osint -url "%1""> + <uap:DisplayName>mid</uap:DisplayName> + <uap:Logo>Assets\Email44x44.png</uap:Logo> + </uap3:Protocol> + </uap3:Extension> + <uap3:Extension Category="windows.protocol"> + <uap3:Protocol Name="nntp" Parameters="-osint -url "%1""> + <uap:DisplayName>nntp</uap:DisplayName> + <uap:Logo>Assets\News44x44.png</uap:Logo> + </uap3:Protocol> + </uap3:Extension> + <uap3:Extension Category="windows.protocol"> + <uap3:Protocol Name="news" Parameters="-osint -url "%1""> + <uap:DisplayName>news</uap:DisplayName> + <uap:Logo>Assets\News44x44.png</uap:Logo> + </uap3:Protocol> + </uap3:Extension> + <uap3:Extension Category="windows.protocol"> + <uap3:Protocol Name="snews" Parameters="-osint -url "%1""> + <uap:DisplayName>snews</uap:DisplayName> + <uap:Logo>Assets\News44x44.png</uap:Logo> + </uap3:Protocol> + </uap3:Extension> + <uap3:Extension Category="windows.protocol"> + <uap3:Protocol Name="webcal" Parameters="-osint -url "%1""> + <uap:DisplayName>webcal</uap:DisplayName> + <uap:Logo>Assets\Calendar44x44.png</uap:Logo> + </uap3:Protocol> + </uap3:Extension> + <uap3:Extension Category="windows.protocol"> + <uap3:Protocol Name="webcals" Parameters="-osint -url "%1""> + <uap:DisplayName>webcals</uap:DisplayName> + <uap:Logo>Assets\Calendar44x44.png</uap:Logo> + </uap3:Protocol> + </uap3:Extension> + </Extensions> + </Application> + </Applications> + <Extensions> + <!-- These COM registrations allow Windows/MSAA to access Thunderbird accessibility features. --> + <com:Extension Category="windows.comInterface"> + <com:ComInterface> + <com:ProxyStub DisplayName="AccessibleMarshal" + Id="1814ceeb-49e2-407f-af99-fa755a7d2607" + Path="VFS\ProgramFiles\@APPX_INSTDIR@\AccessibleMarshal.dll"/> + <com:Interface Id="4e747be5-2052-4265-8af0-8ecad7aad1c0" + ProxyStubClsid="1814ceeb-49e2-407f-af99-fa755a7d2607"/> + <com:Interface Id="1814ceeb-49e2-407f-af99-fa755a7d2607" + ProxyStubClsid="1814ceeb-49e2-407f-af99-fa755a7d2607"/> + <com:Interface Id="0d68d6d0-d93d-4d08-a30d-f00dd1f45b24" + ProxyStubClsid="1814ceeb-49e2-407f-af99-fa755a7d2607"/> + </com:ComInterface> + </com:Extension> + </Extensions> +</Package> diff --git a/comm/mail/installer/windows/msix/Resources.pri b/comm/mail/installer/windows/msix/Resources.pri Binary files differnew file mode 100644 index 0000000000..aefbf20b1a --- /dev/null +++ b/comm/mail/installer/windows/msix/Resources.pri diff --git a/comm/mail/installer/windows/msix/distribution/distribution.ini b/comm/mail/installer/windows/msix/distribution/distribution.ini new file mode 100644 index 0000000000..192a41637e --- /dev/null +++ b/comm/mail/installer/windows/msix/distribution/distribution.ini @@ -0,0 +1,12 @@ +# Partner Distribution Configuration File +# Author: MZLA Technologies +# Date: 2022-09-05 + +[Global] +id=thunderbird-MSIX +version=1.0 +about=Thunderbird Windows MSIX package + +[Preferences] +intl.locale.requested="" +intl.multilingual.enabled=true diff --git a/comm/mail/installer/windows/msix/msix-all-locales b/comm/mail/installer/windows/msix/msix-all-locales new file mode 100644 index 0000000000..8d73ee6312 --- /dev/null +++ b/comm/mail/installer/windows/msix/msix-all-locales @@ -0,0 +1,361 @@ +# Locale codes supported by Microsoft Windows and MSIX packages. +# +# From https://docs.microsoft.com/en-us/windows/uwp/publish/supported-languages. +# Fetched on September 15, 2021. +# +# The following codes are listed as supported but for reasons unknown, Windows won't install +# packages advertising them: +# +# sr* (Serbian) +# uz* (Uzbek) + +af +af-za +am +am-et +ar +ar-ae +ar-bh +ar-dz +ar-eg +ar-iq +ar-jo +ar-kw +ar-lb +ar-ly +ar-ma +ar-om +ar-qa +ar-sa +ar-sy +ar-tn +ar-ye +as +as-in +az-arab +az-arab-az +az-cyrl +az-cyrl-az +az-latn +az-latn-az +be +be-by +bg +bg-bg +bn +bn-bd +bn-in +bs +bs-cyrl +bs-cyrl-ba +bs-latn +bs-latn-ba +ca +ca-es +ca-es-valencia +chr-cher +chr-cher-us +chr-latn +cs +cs-cz +cy +cy-gb +da +da-dk +de +de-at +de-ch +de-de +de-li +de-lu +el +el-gr +en +en-011 +en-014 +en-018 +en-021 +en-029 +en-053 +en-au +en-bz +en-ca +en-gb +en-hk +en-id +en-ie +en-in +en-jm +en-kz +en-mt +en-my +en-nz +en-ph +en-pk +en-sg +en-tt +en-us +en-vn +en-za +en-zw +es +es-019 +es-419 +es-ar +es-bo +es-cl +es-co +es-cr +es-do +es-ec +es-es +es-gt +es-hn +es-mx +es-ni +es-pa +es-pe +es-pr +es-py +es-sv +es-us +es-uy +es-ve +et +et-ee +eu +eu-es +fa +fa-ir +fi +fi-fi +fil +fil-latn +fil-ph +fr +fr-011 +fr-015 +fr-021 +fr-029 +fr-155 +fr-be +fr-ca +fr-cd +fr-ch +fr-ci +fr-cm +fr-fr +fr-ht +fr-lu +fr-ma +fr-mc +fr-ml +fr-re +frc-latn +frp-latn +ga +ga-ie +gd-gb +gd-latn +gl +gl-es +gu +gu-in +ha +ha-latn +ha-latn-ng +he +he-il +hi +hi-in +hr +hr-ba +hr-hr +hu +hu-hu +hy +hy-am +id +id-id +ig-latn +ig-ng +is +is-is +it +it-ch +it-it +iu-cans +iu-latn +iu-latn-ca +ja +ja-jp +ka +ka-ge +kk +kk-kz +km +km-kh +kn +kn-in +ko +ko-kr +kok +kok-in +ku-arab +ku-arab-iq +ky-cyrl +ky-kg +lb +lb-lu +lo +lo-la +lt +lt-lt +lv +lv-lv +mi +mi-latn +mi-nz +mk +mk-mk +ml +ml-in +mn-cyrl +mn-mn +mn-mong +mn-phag +mr +mr-in +ms +ms-bn +ms-my +mt +mt-mt +nb +nb-no +ne +ne-np +nl +nl-be +nl-nl +nn +nn-no +no +no-no +nso +nso-za +or +or-in +pa +pa-arab +pa-arab-pk +pa-deva +pa-in +pl +pl-pl +prs +prs-af +prs-arab +pt +pt-br +pt-pt +quc-latn +qut-gt +qut-latn +quz +quz-bo +quz-ec +quz-pe +ro +ro-ro +ru +ru-ru +rw +rw-rw +sd-arab +sd-arab-pk +sd-deva +si +si-lk +sk +sk-sk +sl +sl-si +sq +sq-al +# sr # For reasons unknown, Windows won't install packages advertising these locales. +# sr-Latn +# sr-cyrl +# sr-cyrl-ba +# sr-cyrl-cs +# sr-cyrl-me +# sr-cyrl-rs +# sr-latn-ba +# sr-latn-cs +# sr-latn-me +# sr-latn-rs +sv +sv-fi +sv-se +sw +sw-ke +ta +ta-in +te +te-in +tg-arab +tg-cyrl +tg-cyrl-tj +tg-latn +th +th-th +ti +ti-et +tk-cyrl +tk-cyrl-tr +tk-latn +tk-latn-tr +tk-tm +tn +tn-bw +tn-za +tr +tr-tr +tt-arab +tt-cyrl +tt-latn +tt-ru +ug-arab +ug-cn +ug-cyrl +ug-latn +uk +uk-ua +ur +ur-pk +# uz # For reasons unknown, Windows won't install packages advertising these locales. +# uz-cyrl +# uz-latn +# uz-latn-uz +vi +vi-vn +wo +wo-sn +xh +xh-za +yo-latn +yo-ng +zh-Hans +zh-Hant +zh-cn +zh-hans-cn +zh-hans-sg +zh-hant-hk +zh-hant-mo +zh-hant-tw +zh-hk +zh-mo +zh-sg +zh-tw +zu +zu-za diff --git a/comm/mail/installer/windows/msix/priconfig.xml b/comm/mail/installer/windows/msix/priconfig.xml new file mode 100644 index 0000000000..62f0668d5f --- /dev/null +++ b/comm/mail/installer/windows/msix/priconfig.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<resources targetOsVersion="10.0.0" majorVersion="1"> + <!-- Commenting this out yields a single `.pri` declaring all scales. See + https://stackoverflow.com/a/42975692. --> + <!-- <packaging> --> + <!-- <autoResourcePackage qualifier="Language"/> --> + <!-- <autoResourcePackage qualifier="Scale"/> --> + <!-- <autoResourcePackage qualifier="DXFeatureLevel"/> --> + <!-- </packaging> --> + <index root="\" startIndexAt="\"> + <default> + <qualifier name="Language" value="en-US"/> + <qualifier name="Contrast" value="standard"/> + <qualifier name="Scale" value="100"/> + <qualifier name="HomeRegion" value="001"/> + <qualifier name="TargetSize" value="256"/> + <qualifier name="LayoutDirection" value="LTR"/> + <qualifier name="Theme" value="dark"/> + <qualifier name="AlternateForm" value=""/> + <qualifier name="DXFeatureLevel" value="DX9"/> + <qualifier name="Configuration" value=""/> + <qualifier name="DeviceFamily" value="Universal"/> + <qualifier name="Custom" value=""/> + </default> + <indexer-config type="folder" foldernameAsQualifier="true" filenameAsQualifier="true" qualifierDelimiter="."/> + <indexer-config type="resw" convertDotsToSlashes="true" initialPath=""/> + <indexer-config type="resjson" initialPath=""/> + <indexer-config type="PRI"/> + </index> + <!--<index startIndexAt="Start Index Here" root="Root Here">--> + <!-- <indexer-config type="resfiles" qualifierDelimiter="."/>--> + <!-- <indexer-config type="priinfo" emitStrings="true" emitPaths="true" emitEmbeddedData="true"/>--> + <!--</index>--> +</resources> |