diff --git a/builds/install/arch-specific/win32/BuildExecutableInstall.bat b/builds/install/arch-specific/win32/BuildExecutableInstall.bat index 49d07a339c..bb9e27ff9f 100644 --- a/builds/install/arch-specific/win32/BuildExecutableInstall.bat +++ b/builds/install/arch-specific/win32/BuildExecutableInstall.bat @@ -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 ::----------- diff --git a/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc b/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc index 26a911210e..5998c65198 100644 --- a/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc +++ b/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc @@ -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; + diff --git a/builds/install/arch-specific/win32/FirebirdInstallSupportFunctions.inc b/builds/install/arch-specific/win32/FirebirdInstallSupportFunctions.inc index 74d8d92be9..7bfefac449 100644 --- a/builds/install/arch-specific/win32/FirebirdInstallSupportFunctions.inc +++ b/builds/install/arch-specific/win32/FirebirdInstallSupportFunctions.inc @@ -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 diff --git a/builds/install/arch-specific/win32/FirebirdInstall_30.iss b/builds/install/arch-specific/win32/FirebirdInstall_30.iss index 9a038990c5..0f05454d87 100644 --- a/builds/install/arch-specific/win32/FirebirdInstall_30.iss +++ b/builds/install/arch-specific/win32/FirebirdInstall_30.iss @@ -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 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 diff --git a/builds/install/arch-specific/win32/ba/Instalacija_ProcitajMe.txt b/builds/install/arch-specific/win32/ba/Instalacija_ProcitajMe.txt index ef45145c3e..4f3c15f159 100644 --- a/builds/install/arch-specific/win32/ba/Instalacija_ProcitajMe.txt +++ b/builds/install/arch-specific/win32/ba/Instalacija_ProcitajMe.txt @@ -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 ----------------------- diff --git a/builds/install/arch-specific/win32/fr/installation_lisezmoi.txt b/builds/install/arch-specific/win32/fr/installation_lisezmoi.txt index 4b65ba6ec7..7cbbee7688 100644 --- a/builds/install/arch-specific/win32/fr/installation_lisezmoi.txt +++ b/builds/install/arch-specific/win32/fr/installation_lisezmoi.txt @@ -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 diff --git a/builds/install/arch-specific/win32/installation_readme.txt b/builds/install/arch-specific/win32/installation_readme.txt index b2bd802fd9..c158498eef 100644 --- a/builds/install/arch-specific/win32/installation_readme.txt +++ b/builds/install/arch-specific/win32/installation_readme.txt @@ -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 ----------------------- diff --git a/builds/install/arch-specific/win32/ru/installation_readme.txt b/builds/install/arch-specific/win32/ru/installation_readme.txt index a682120bb7..7ced4ddcd7 100644 --- a/builds/install/arch-specific/win32/ru/installation_readme.txt +++ b/builds/install/arch-specific/win32/ru/installation_readme.txt @@ -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 ------------------- diff --git a/builds/win32/msvc10/VCCRT_Shared_Body.wxi b/builds/win32/msvc10/VCCRT_Shared_Body.wxi new file mode 100644 index 0000000000..8d76589d84 --- /dev/null +++ b/builds/win32/msvc10/VCCRT_Shared_Body.wxi @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/builds/win32/msvc10/VCCRT_Shared_Header.wxi b/builds/win32/msvc10/VCCRT_Shared_Header.wxi new file mode 100644 index 0000000000..4cad5d14d5 --- /dev/null +++ b/builds/win32/msvc10/VCCRT_Shared_Header.wxi @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + diff --git a/builds/win32/msvc10/VCCRT_Win32.wxi b/builds/win32/msvc10/VCCRT_Win32.wxi new file mode 100644 index 0000000000..e232a2137e --- /dev/null +++ b/builds/win32/msvc10/VCCRT_Win32.wxi @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/builds/win32/msvc10/VCCRT_Win32.wxs b/builds/win32/msvc10/VCCRT_Win32.wxs new file mode 100644 index 0000000000..9a440d9040 --- /dev/null +++ b/builds/win32/msvc10/VCCRT_Win32.wxs @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/builds/win32/msvc10/VCCRT_x64.wxi b/builds/win32/msvc10/VCCRT_x64.wxi new file mode 100644 index 0000000000..f5625f5f95 --- /dev/null +++ b/builds/win32/msvc10/VCCRT_x64.wxi @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/builds/win32/msvc10/VCCRT_x64.wxs b/builds/win32/msvc10/VCCRT_x64.wxs new file mode 100644 index 0000000000..656cdb215d --- /dev/null +++ b/builds/win32/msvc10/VCCRT_x64.wxs @@ -0,0 +1,12 @@ + + + + + + + + + + + +