8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 22:43:03 +01:00

Sync recent windows installer changes for fb3 into trunk

This commit is contained in:
paul_reeves 2016-03-04 09:00:56 +00:00
parent e5fdfec4bf
commit 17192cdf66
14 changed files with 188 additions and 64 deletions

View File

@ -125,6 +125,10 @@ if %FBBUILD_ISX_PACK% EQU 1 (
) else (@echo o Inno Setup found at %INNO5_SETUP_PATH%.)
)
if not defined WIX (
call :ERROR WIX not defined. WiX is needed to build the MSI kits of the CRT runtimes.
@goto :EOF
) else (@echo o WiX found at "%WIX%".)
if not DEFINED FB_EXTERNAL_DOCS (
@echo.
@ -199,8 +203,8 @@ set FBBUILD_FB_LAST_VER=%FBBUILD_FB25_CUR_VER%
:: as well as set up the correct shortcuts
set FBBUILD_FB15_CUR_VER=1.5.6
set FBBUILD_FB20_CUR_VER=2.0.7
set FBBUILD_FB21_CUR_VER=2.1.5
set FBBUILD_FB25_CUR_VER=2.5.2
set FBBUILD_FB21_CUR_VER=2.1.7
set FBBUILD_FB25_CUR_VER=2.5.5
:: Now fix up the major.minor version strings in the readme files.
:: We place output in %FB_GEN_DIR%\readmes
@ -240,7 +244,7 @@ del %temp%.\b$?.txt
@echo Copying MSVC runtime libraries...
if not exist %FB_OUTPUT_DIR%\system32 (mkdir %FB_OUTPUT_DIR%\system32)
@echo on
for %%f in ( msvcp%MSVC_VERSION%?.dll msvcr%MSVC_VERSION%?.dll ) do (
@for %%f in ( msvcp%MSVC_VERSION%?.dll msvcr%MSVC_VERSION%?.dll ) do (
if exist "%VCINSTALLDIR%\redist\%PROCESSOR_ARCHITECTURE%\Microsoft.VC%MSVC_VERSION%0.CRT\%%f" (
copy "%VCINSTALLDIR%\redist\%PROCESSOR_ARCHITECTURE%\Microsoft.VC%MSVC_VERSION%0.CRT\%%f" %FB_OUTPUT_DIR%\
)
@ -357,7 +361,7 @@ for %%v in (IPLicense.txt IDPLicense.txt ) do (
@copy %FB_GEN_DIR%\readmes\readme.txt %FB_OUTPUT_DIR%\ > nul
:: Walk through all docs and transform any that are not .txt, .pdf or .html to .txt
echo Setting .txt filetype to ascii docs.
@echo Setting .txt filetype to ascii docs.
for /R %FB_OUTPUT_DIR%\doc %%v in (.) do (
pushd %%v
for /F %%W in ( 'dir /B /A-D' ) do (
@ -385,18 +389,18 @@ for /R %FB_OUTPUT_DIR%\doc %%v in (.) do (
:BUILD_CRT_MSI
:: Generate runtimes as an MSI file.
:: This requires WiX 2.0 to be installed
:: This requires WiX 3.0 to be installed
::============
:: This is only relevent if we are shipping packages built with MSVS 2005 (MSVC8)
:: We have never shipped packages with MSVS 2008 (MSVC9) and we are hoping not
:: to deploy MSI runtimes if we build with MSVC 2010 (MVC10)
if %MSVC_VERSION% EQU 8 (
:: This is only relevent if we are shipping packages built with Visual Studio 2010 (MSVC10)
:: for Firebird 3.0 there are no plans to ship oficial builds with other MSVC runtimes. But we could.
if %MSVC_VERSION% EQU 10 (
if not exist %FB_OUTPUT_DIR%\system32\vccrt%MSVC_VERSION%_%FB_TARGET_PLATFORM%.msi (
%WIX%\candle.exe -v0 %FB_ROOT_PATH%\builds\win32\msvc%MSVC_VERSION%\VCCRT_%FB_TARGET_PLATFORM%.wxs -out %FB_GEN_DIR%\vccrt_%FB_TARGET_PLATFORM%.wixobj
%WIX%\light.exe %FB_GEN_DIR%\vccrt_%FB_TARGET_PLATFORM%.wixobj -out %FB_OUTPUT_DIR%\system32\vccrt%MSVC_VERSION%_%FB_TARGET_PLATFORM%.msi
"%WIX%\bin\candle.exe" -v -sw1091 %FB_ROOT_PATH%\builds\win32\msvc%MSVC_VERSION%\VCCRT_%FB_TARGET_PLATFORM%.wxs -out %FB_GEN_DIR%\vccrt_%FB_TARGET_PLATFORM%.wixobj
"%WIX%\bin\light.exe" -sw1076 %FB_GEN_DIR%\vccrt_%FB_TARGET_PLATFORM%.wixobj -out %FB_OUTPUT_DIR%\system32\vccrt%MSVC_VERSION%_%FB_TARGET_PLATFORM%.msi
) else (
@echo Using an existing build of %FB_OUTPUT_DIR%\system32\vccrt%MSVC_VERSION%_%FB_TARGET_PLATFORM%.msi
))
)
)
::End of BUILD_CRT_MSI
::--------------------
@ -484,16 +488,6 @@ copy %FB_ROOT_PATH%\builds\install\misc\databases.conf.in %FB_OUTPUT_DIR%\databa
@goto :EOF
::TOUCH_LOCAL
::==========
:: Note 1: This doesn't seem to make any difference to whether local libraries are used.
:: Note 2: MS documentation was incorrectly interpreted. .local files should not be created
:: for libraries, they should be created for executables.
:: Create libname.local files for each locally installed library
::for %%v in ( fbclient msvcrt msvcp%VS_VER%0 ) do touch %FB_OUTPUT_DIR%\%%v.local
::@goto :EOF
:GEN_ZIP
::======
if %FBBUILD_ZIP_PACK% EQU 0 goto :EOF
@ -660,6 +654,9 @@ if NOT DEFINED GNU_TOOLCHAIN (
@echo o sed is required for packaging. Use the sed provided by
@echo gnuwin32. The cygwin one is not guaranteed to work.
@echo.
@echo o WiX v3.0 is required to build installable msi packages of the
@echo MS runtime libraries.
@echo.
::End of HELP
::-----------

View File

@ -42,8 +42,11 @@
function CopyFbClientLib: boolean;
function ShowCopyFbClientLibTask: boolean;
function SummarizeInstalledProducts: String;
function AnalysisAssessment: boolean;
function SummarizeInstalledProducts: String;
function AnalysisAssessment: boolean;
function HasWI30: boolean;
function HasNotWI30: boolean;
*)
@ -1189,3 +1192,24 @@ begin
end;
function HasWI30: boolean;
//We need at least Windows Installer 3.0 available if we
//are installing the msi bundles for the VC10 CRT libraries.
var
VersionStr: String;
VerInt: array of Integer;
begin
Result := False;
VersionStr := WIVersion;
DecodeVersion(VersionStr, VerInt);
if (VerInt[0] >= 3) then
Result := True;
end;
function HasNotWI30: boolean;
//Used to check if O/S does NOT have minimum version of Windows Installer
begin
result := NOT HasWI30;
end;

View File

@ -46,6 +46,7 @@ Function Prototypes
function CheckWinsock2(): Boolean;
function GetAppPath: String;
function GetSysPath: String;
function WIVersion: string;
function ReplaceLine(Filename, StringToFind, NewLine,CommentType: string): boolean;
procedure DecodeVersion( VerStr: String; var VerInt: array of Integer );
function CompareVersion( ver1, ver2: String ) : Integer;
@ -290,6 +291,16 @@ begin
end;
function WIVersion: string;
//Get version of Windows Installer
var
VersionStr: string;
begin
GetVersionNumbersString(GetSysPath + '\msi.dll', VersionStr);
result := VersionStr;
end;
(*Based on InnoSetup KB example at http://www13.brinkster.com/vincenzog/isxart.asp?idart=14)*)
function ReplaceLine(Filename, StringToFind, NewLine,CommentType: string): boolean;
var

View File

@ -392,6 +392,13 @@ Name: EnableLegacyClientAuth; Description: {cm:EnableLegacyClientAuth}; Componen
[Run]
#if msvc_version == 10
Filename: msiexec.exe; Parameters: "/qn /i ""{tmp}\vccrt{#msvc_version}_Win32.msi"" /L*v ""{tmp}\vccrt{#msvc_version}_Win32.log"" "; StatusMsg: "Installing MSVC 32-bit runtime libraries to system directory"; Check: HasWI30; Components: ClientComponent;
#if PlatformTarget == "x64"
Filename: msiexec.exe; Parameters: "/qn /i ""{tmp}\vccrt{#msvc_version}_x64.msi"" /L*v ""{tmp}\vccrt{#msvc_version}_x64.log"" "; StatusMsg: "Installing MSVC 64-bit runtime libraries to system directory"; Check: HasWI30; Components: ClientComponent;
#endif
#endif
;Only register Firebird if we are installing AND configuring
Filename: {app}\instreg.exe; Parameters: "install "; StatusMsg: {cm:instreg}; MinVersion: 4.0,4.0; Components: ClientComponent; Flags: runminimized; Check: ConfigureFirebird;
@ -517,6 +524,17 @@ Source: {#WOW64Dir}\msvcp{#msvc_version}?.dll; DestDir: {app}\WOW64; Components:
#endif
#endif /* if msvc_version >= 10 */
#if msvc_version == 10
;Try to install CRT libraries to <sys> via msi, _IF_ msvc_version is 10.
#if PlatformTarget == "x64"
;MinVersion 0,5.0 means no version of Win9x and at least Win2k if NT O/S
;In addition, O/S must have Windows Installer 3.0.
Source: {#FilesDir}\system32\vccrt10_x64.msi; DestDir: {tmp}; Check: HasWI30; MinVersion: 0,5.0; Components: ClientComponent;
Source: {#WOW64Dir}\system32\vccrt10_Win32.msi; DestDir: {tmp}; Check: HasWI30; MinVersion: 0,5.0; Components: ClientComponent;
#else
Source: {#FilesDir}\system32\vccrt10_Win32.msi; DestDir: {tmp}; Check: HasWI30; MinVersion: 0,5.0; Components: ClientComponent;
#endif
#endif
;Docs
Source: {#ScriptsDir}\installation_scripted.txt; DestDir: {app}\doc; Components: DevAdminComponent; Flags: skipifsourcedoesntexist ignoreversion

View File

@ -19,7 +19,6 @@ Sadrzaj
--------
o Prije instalacije
o Instalacija MS VC runtime biblioteka
o Deployment gds32.dll
o Instalacija Guardian-a
o Re-instalacija Firebird-a 3
@ -42,15 +41,6 @@ firebird-a 3, instalacija ce preimenovati firebid.conf i
security3.fdb jer ove datoteke vise nisu kompatibilne.
Instalacija MS VC runtime biblioteka
---------------------------------------
Firebird 3 vise ne zahtjeva deploy MSVC runtime-a
u windows system direktorije, pa se vise ne radi deploy
redistributable run-time paketa. Firebird 3.0 ucitava runtime
biblioteke iz direktorija gdje je instaliran.
Deployment gds32.dll
-----------------------

View File

@ -25,7 +25,6 @@ Contenu
--------
o Avant l'installation
o Installation des bibliothèques MS VC runtime
o Déployement de gds32.dll
o Installation du Guardian
o Réinstallation de Firebird 3
@ -48,15 +47,6 @@ l'installeur va renommer firebird.conf et security3.fdb, car ces
fichiers ne sont plus compatibles avec la version actuelle.
Installation des bibliothèques MS VC runtime
-------------------------------------------------------------
Firebird 3 n'a plus besoin de déployer les runtimes MSVC dans les
répertoires système de windows. Frebird 3 charge ces bibliothèques depuis
son répertoire d'installation.
Déployement de gds32.dll
------------------------
@ -140,7 +130,7 @@ o La désinstallation laisse cinq fichiers dans le
- firebird.conf
- fbtrace.conf
- firebird.log
- security2.fdb
- security3.fdb
Ceci est intentionnel. Ces fichiers sont tous
potentiellement modifiables par les utilisateurs et peuvent

View File

@ -19,7 +19,6 @@ Contents
--------
o Before installation
o Installation of MS VC runtime libraries
o Deployment of gds32.dll
o Installation of the Guardian
o Re-installation of Firebird $MAJOR.$MINOR
@ -42,15 +41,6 @@ the installer will rename firebird.conf and security3.fdb as
these files are no longer compatible.
Installation of MS VC runtime libraries
---------------------------------------
Firebird $MAJOR.$MINOR no longer needs to deploy the MSVC runtimes
into the windows system directories so no redistributable
run-time package is deployed. Firebird $MAJOR.$MINOR loads the runtime
libraries from the root installation directory.
Deployment of gds32.dll
-----------------------

View File

@ -19,7 +19,6 @@
----------
o Перед установкой
o Установка библиотек MS VC runtime
o Установка gds32.dll
o Установка Firebird Guardian
o Повторная установка Firebird $MAJOR.$MINOR
@ -41,14 +40,6 @@ o Установка из пакетного (bat) файла
из-за их несовместимости с устанавливаемой версией.
Установка библиотек MS VC runtime
---------------------------------
Firebird $MAJOR.$MINOR более не требует размещения библиотек MS VC
runtime в системных папках Windows. Firebird $MAJOR.$MINOR загружает
библиотеки из корневой папки установки.
Установка gds32.dll
-------------------

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?><Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="$(var.PRODUCT_ID)"
Name="MSI to redistribute MS VS2010 CRT libraries"
Language="1033"
Version="$(var.MS_CRT_VER)"
Manufacturer="$(var.MANUFACTURER)"
UpgradeCode="$(var.UPGRADE_CODE)"
>
<Package Id="$(var.PACKAGE_ID)"
Description="$(var.DESCRIPTION)"
Comments="$(var.COMMENTS)"
Manufacturer="$(var.MANUFACTURER)"
InstallerVersion="300"
Compressed="yes"
Platform="$(var.CPUArch)"
/>
<Media Id="1" Cabinet="VCCRT.cab" EmbedCab="yes"
/>
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- <Merge Id="CRT" Language="0" SourceFile="$(var.MMDIR)\$(var.MSM)" DiskId="1" ProcessorArchitecture="$(var.CPUArch)" /> -->
<Merge Id="CRT" Language="0" SourceFile="$(var.MMDIR)\$(var.MSM)" DiskId="1" />
</Directory>
<Feature Id="CRT_WinSXS" Title="CRT WinSXS" Level="1">
<MergeRef Id="CRT" />
</Feature>
<InstallExecuteSequence>
<RemoveRegistryValues />
<RemoveFiles />
<InstallFiles />
<WriteRegistryValues />
</InstallExecuteSequence>
</Product>
</Include>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<!-- This is bad - we really should not be hard coding this
version string, but for now it will have to do. .-->
<?define MS_CRT_VER = "10.0.30319.1" ?>
<?define DESCRIPTION = "MSI to redistribute VS2010 CRT libraries" ?>
<?define COMMENTS = "This MSI specially created for Firebird." ?>
<?define MMDIR = "C:\Program Files (x86)\Common Files\Merge Modules" ?>
<?define MANUFACTURER = "The Firebird Project" ?>
</Include>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?><Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define PRODUCT_ID=3EE48F79-0D53-4FE3-B611-280D1EB6873A ?>
<?define PACKAGE_ID=D97457E5-DA65-48B7-9B6F-56B4B4ED34C6 ?>
<?define UPGRADE_CODE=15373B00-49EF-4122-A7E1-6EF59F9594F9 ?>
<?define MSM="microsoft_vc100_crt_x86.msm" ?>
<?define CPUArch="x86" ?>
</Include>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?include $(sys.SOURCEFILEDIR)\VCCRT_Shared_Header.wxi ?>
<?include $(sys.SOURCEFILEDIR)\VCCRT_Win32.wxi ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include $(sys.SOURCEFILEDIR)\VCCRT_Shared_Body.wxi ?>
</Wix>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define PRODUCT_ID=D9D020C0-B53E-4A40-B2FA-35D47966601B ?>
<?define PACKAGE_ID=C9EF87F4-E3EE-47AB-BCE1-2CFFDF7AEA54 ?>
<?define UPGRADE_CODE=522E3661-6F13-45E9-AE77-9278F52B34FA ?>
<?define MSM="microsoft_vc100_crt_x64.msm" ?>
<?define CPUArch="x64" ?>
</Include>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?include $(sys.SOURCEFILEDIR)\VCCRT_Shared_Header.wxi ?>
<?include $(sys.SOURCEFILEDIR)\VCCRT_x64.wxi ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include $(sys.SOURCEFILEDIR)\VCCRT_Shared_Body.wxi ?>
</Wix>