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

Add innosetup install script for fb3.

Misc changes to support new install requirements of fb3
(Note - this is still a work in progress.)
This commit is contained in:
paul_reeves 2012-05-29 10:14:03 +00:00
parent 9d0aef435d
commit 7c722c03dd
10 changed files with 1928 additions and 187 deletions

View File

@ -23,6 +23,8 @@
:SET_PARAMS
@echo off
:: reset ERRLEV to clear error from last run in same cmd shell
set ERRLEV=0
:: Assume we are preparing a production build
set FBBUILD_BUILDTYPE=release
:: Don't ship pdb files by default
@ -43,10 +45,12 @@ set /A FBBUILD_PACKAGE_NUMBER+=1
)
@echo Setting FBBUILD_PACKAGE_NUMBER to %FBBUILD_PACKAGE_NUMBER%
::::If a suffix is defined (usually for an RC) ensure it is prefixed correctly.
::if defined FBBUILD_FILENAME_SUFFIX (
::if not %FBBUILD_FILENAME_SUFFIX:~0,1% == _ (set FBBUILD_FILENAME_SUFFIX=_%FBBUILD_FILENAME_SUFFIX%)
::)
::If a suffix is defined (usually for an RC) ensure it is prefixed correctly.
if defined FBBUILD_FILENAME_SUFFIX (
if not "%FBBUILD_FILENAME_SUFFIX:~0,1%"=="_" (
(set FBBUILD_FILENAME_SUFFIX=_%FBBUILD_FILENAME_SUFFIX%)
)
)
:: See what we have on the command line
::for %%v in ( %1 %2 %3 %4 %5 ) do (
@ -124,16 +128,6 @@ if %FBBUILD_ISX_PACK% EQU 1 (
) else (@echo o Inno Setup found at %INNO5_SETUP_PATH%.)
)
:: If we are not building a snapshot we must check for WIX and
:: the path to the external documentation. If we are building a
:: snapshot then we can ignore them.
if not defined FB2_SNAPSHOT (
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.
@ -193,8 +187,7 @@ set FBBUILD_FILE_ID=%FBBUILD_PRODUCT_VER_STRING%-%FBBUILD_PACKAGE_NUMBER%_%FB_TA
@echo s/define compression/define %ISS_COMPRESS%/ >> %temp%.\b$3.txt
@echo s/FBBUILD_PRODUCT_VER_STRING/%FBBUILD_PRODUCT_VER_STRING%/ >> %temp%.\b$3.txt
sed -f %temp%.\b$3.txt FirebirdInstall_20.iss > FirebirdInstall_%FBBUILD_FILE_ID%.iss
del %temp%.\b$?.txt
sed -f %temp%.\b$3.txt FirebirdInstall_30.iss > FirebirdInstall_%FBBUILD_FILE_ID%.iss
:: This is a better way of achieving what is done in make_all.bat, but we don't
:: test for sed in that script.
@ -207,9 +200,35 @@ set FBBUILD_FB_CUR_VER=%FBBUILD_FB25_CUR_VER%
:: Now set some version strings of our legacy releases.
:: This helps us copy the correct documentation,
:: as well as set up the correct shortcuts
set FBBUILD_FB15_CUR_VER=1.5.5
set FBBUILD_FB20_CUR_VER=2.0.5
set FBBUILD_FB21_CUR_VER=2.1.2
set FBBUILD_FB15_CUR_VER=1.5.6
set FBBUILD_FB20_CUR_VER=2.0.7
set FBBUILD_FB21_CUR_VER=2.1.5
:: Now fix up the major.minor version strings in the readme files.
:: We place output in %FB_GEN_DIR%\readmes
@if not exist %FB_GEN_DIR%\readmes (@mkdir %FB_GEN_DIR%\readmes)
@for %%d in (ba cz de es fr hu it pl pt ru si ) do (
@if not exist %FB_GEN_DIR%\readmes\%%d (@mkdir %FB_GEN_DIR%\readmes\%%d)
)
@echo s/\$MAJOR/%FB_MAJOR_VER%/g > %temp%.\b$4.txt
@echo s/\$MINOR/%FB_MINOR_VER%/g >> %temp%.\b$4.txt
@echo s/\$RELEASE/%FB_REV_NO%/g >> %temp%.\b$4.txt
@for %%f in (Readme.txt installation_readme.txt) do (
@echo Processing version strings in %%f
@sed -f %temp%.\b$4.txt %%f > %FB_GEN_DIR%\readmes\%%f
)
@for %%d in (ba cz de es fr hu it pl pt ru si ) do (
@pushd %%d
@for /F %%f in ( '@dir /B /A-D *.txt' ) do (
@echo Processing version strings in %%d\%%f
@sed -f %temp%.\b$4.txt %%f > %FB_GEN_DIR%\readmes\%%d\%%f
)
@popd
)
del %temp%.\b$?.txt
::End of SED_MAGIC
::----------------
@ -218,61 +237,39 @@ set FBBUILD_FB21_CUR_VER=2.1.2
:COPY_XTRA
:: system dll's we need
:: (You may need to download and extract the
:: vcredist stuff to your MSDevDir for this to work with MSVC6.
:: MSVC7 requires the Framework SDK v1.1 to be installed.
:: MSVC8 should be installed with redistributable packages.
:: MSVC should be installed with redistributable packages.
::=====================
@echo Copying MSVC runtime libraries...
if not exist %FB_OUTPUT_DIR%\system32 (mkdir %FB_OUTPUT_DIR%\system32)
@if DEFINED MSDevDir (
@if %MSVC_VERSION% EQU 6 (
@copy "%MSDevDir%\vcredist\msvcrt.dll" %FB_OUTPUT_DIR%\bin\ > nul
@copy "%MSDevDir%\vcredist\msvcp%MSVC_VERSION%0.dll" %FB_OUTPUT_DIR%\bin\ > nul
)
) else (
if %MSVC_VERSION% EQU 8 (
@copy "%VCINSTALLDIR%\redist\%PROCESSOR_ARCHITECTURE%\Microsoft.VC80.CRT\msvcp%MSVC_VERSION%?.dll" %FB_OUTPUT_DIR%\bin\ > nul
@copy "%VCINSTALLDIR%\redist\%PROCESSOR_ARCHITECTURE%\Microsoft.VC80.CRT\msvcr%MSVC_VERSION%?.dll" %FB_OUTPUT_DIR%\bin\ > nul
@copy "%VCINSTALLDIR%\redist\%PROCESSOR_ARCHITECTURE%\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest" %FB_OUTPUT_DIR%\bin\ > nul
) else (
if %MSVC_VERSION% EQU 7 (
@copy "%FrameworkSDKDir%\bin\msvcp%MSVC_VERSION%?.dll" %FB_OUTPUT_DIR%\bin\ > nul
@copy "%FrameworkSDKDir%\bin\msvcr%MSVC_VERSION%?.dll" %FB_OUTPUT_DIR%\bin\ > nul
)
)
@echo on
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%\
)
)
@echo off
@if %ERRORLEVEL% GEQ 1 ( (call :ERROR Copying MSVC runtime library failed with error %ERRORLEVEL% ) & (goto :EOF))
:: grab some missing bits'n'pieces from different parts of the source tree
::=========================================================================
@echo Copying firebird.conf
@copy %FB_ROOT_PATH%\builds\install\misc\firebird.conf %FB_OUTPUT_DIR%\ > nul
@if %ERRORLEVEL% GEQ 1 ( (call :ERROR COPY of firebird.conf failed with errorlevel %ERRORLEVEL% ) & (goto :EOF))
@echo Copying ib_util etc
copy %FB_ROOT_PATH%\src\extlib\ib_util.h %FB_OUTPUT_DIR%\include > nul || (call :WARNING Copying ib_util.h failed.)
copy %FB_ROOT_PATH%\lang_helpers\ib_util.pas %FB_OUTPUT_DIR%\include > nul || (call :WARNING Copying ib_util.pas failed.)
@echo Copying fbclient lib etc
:: For some unknown reason copy sets the errorlevel even when it succeeds,
:: so the || branch is only executed if copy throws a real error, even though the errorlevel is set.
:: Just another of those fabulous msdos idiosyncracies.
for %%v in (fbclient ib_util) do (
@copy /Y %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\%%v\%%v.lib %FB_OUTPUT_DIR%\lib\%%v_ms.lib || @if %ERRORLEVEL% GEQ 1 (call :ERROR Copying %%v to %%v_ms.lib failed with error %ERRORLEVEL%) & (goto :EOF))
)
@implib.exe | findstr "Borland" > nul
@if errorlevel 0 (
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
@echo Generating fbclient_bor.lib
@implib %FB_OUTPUT_DIR%\lib\fbclient_bor.lib %FB_OUTPUT_DIR%\bin\fbclient.dll > nul
@implib %FB_OUTPUT_DIR%\lib\fbclient_bor.lib %FB_OUTPUT_DIR%\fbclient.dll > nul
)
)
@if "%FBBUILD_SHIP_PDB%"=="ship_pdb" (
@echo Copying pdb files...
for %%v in ( fbembed fb_inet_server fbserver fbclient ) do (
for %%v in ( fbembed firebird fbclient ) do (
@copy %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\%%v\%%v.pdb %FB_OUTPUT_DIR%\bin > nul
@if %ERRORLEVEL% GEQ 1 (
call :ERROR Copying %%v.pdb files failed
@ -280,7 +277,7 @@ if "%PROCESSOR_ARCHITECTURE%"=="x86" (
)
)
)
:: @copy %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\firebird\bin\*.pdb %FB_OUTPUT_DIR%\bin > nul
:: @copy %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\firebird\*.pdb %FB_OUTPUT_DIR%\bin > nul
@echo Started copying docs...
@rmdir /S /Q %FB_OUTPUT_DIR%\doc 2>nul
@ -294,7 +291,7 @@ if "%PROCESSOR_ARCHITECTURE%"=="x86" (
@echo Copying udf library scripts...
for %%v in ( ib_udf.sql ib_udf2.sql ) do (
copy %FB_ROOT_PATH%\src\extlib\%%v %FB_OUTPUT_DIR%\UDF\%%v > nul
@copy %FB_ROOT_PATH%\src\extlib\%%v %FB_OUTPUT_DIR%\UDF\%%v > nul
@if %ERRORLEVEL% GEQ 1 (
call :ERROR Copying %FB_ROOT_PATH%\src\extlib\%%v failed.
goto :EOF
@ -311,14 +308,14 @@ for %%v in ( fbudf.sql fbudf.txt ) do (
::UDF upgrade script and doc
mkdir %FB_OUTPUT_DIR%\misc\upgrade\ib_udf 2>nul
@copy %FB_ROOT_PATH%\src\misc\upgrade\v2\ib_udf*.* %FB_OUTPUT_DIR%\misc\upgrade\ib_udf\
@copy %FB_ROOT_PATH%\src\misc\upgrade\v2\ib_udf*.* %FB_OUTPUT_DIR%\misc\upgrade\ib_udf\ > nul
::INTL script
@copy %FB_ROOT_PATH%\src\misc\intl.sql %FB_OUTPUT_DIR%\misc\
@copy %FB_ROOT_PATH%\src\misc\intl.sql %FB_OUTPUT_DIR%\misc\ > nul
@echo Copying other documentation...
@copy %FB_ROOT_PATH%\builds\install\arch-specific\win32\installation_readme.txt %FB_OUTPUT_DIR%\doc\installation_readme.txt > nul
@copy %FB_GEN_DIR%\readmes\installation_readme.txt %FB_OUTPUT_DIR%\doc\installation_readme.txt > nul
@copy %FB_OUTPUT_DIR%\doc\WhatsNew %FB_OUTPUT_DIR%\doc\WhatsNew.txt > nul
@del %FB_OUTPUT_DIR%\doc\WhatsNew
@ -341,7 +338,7 @@ mkdir %FB_OUTPUT_DIR%\misc\upgrade\ib_udf 2>nul
:: if the docs are available then we can include them.
if defined FB_EXTERNAL_DOCS (
@echo Copying pdf docs...
@for %%v in ( Firebird-2.1-QuickStart.pdf Firebird_v%FBBUILD_FB_CUR_VER%.ReleaseNotes.pdf Firebird_v%FBBUILD_FB_CUR_VER%.InstallationGuide.pdf Firebird_v%FBBUILD_FB_CUR_VER%.BugFixes.pdf Firebird_v%FBBUILD_FB21_CUR_VER%.ReleaseNotes.pdf Firebird_v%FBBUILD_FB21_CUR_VER%.InstallationGuide.pdf Firebird_v%FBBUILD_FB21_CUR_VER%.BugFixes.pdf) do (
@for %%v in ( Firebird-%FB_MAJOR_VER%.%FB_MINOR_VER%-QuickStart.pdf Firebird_v%FBBUILD_FB_CUR_VER%.ReleaseNotes.pdf ) do (
@echo ... %%v
(@copy /Y %FB_EXTERNAL_DOCS%\%%v %FB_OUTPUT_DIR%\doc\%%v > nul) || (call :WARNING Copying %FB_EXTERNAL_DOCS%\%%v failed.)
)
@ -359,7 +356,7 @@ for %%v in (IPLicense.txt IDPLicense.txt ) do (
)
:: And readme
@copy %FB_ROOT_PATH%\builds\install\arch-specific\win32\readme.txt %FB_OUTPUT_DIR%\ > nul
@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.
@ -392,7 +389,10 @@ for /R %FB_OUTPUT_DIR%\doc %%v in (.) do (
:: Generate runtimes as an MSI file.
:: This requires WiX 2.0 to be installed
::============
if %MSVC_VERSION% GEQ 8 (
:: 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 (
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
@ -421,14 +421,15 @@ if not exist %FB_OUTPUT_DIR%\system32\vccrt%MSVC_VERSION%_%FB_TARGET_PLATFORM%.m
setlocal
set OUTPATH=%FB_OUTPUT_DIR%\include
copy %FB_ROOT_PATH%\src\jrd\ibase.h %OUTPATH%\ibase.h > nul
for %%v in ( %FB_ROOT_PATH%\src\include\types_pub.h %FB_ROOT_PATH%\src\include\consts_pub.h %FB_ROOT_PATH%\src\dsql\sqlda_pub.h %FB_ROOT_PATH%\src\jrd\dsc_pub.h %FB_ROOT_PATH%\src\jrd\inf_pub.h %FB_ROOT_PATH%\src\jrd\blr.h ) do (
for %%v in ( %FB_ROOT_PATH%\src\include\types_pub.h %FB_ROOT_PATH%\src\include\consts_pub.h %FB_ROOT_PATH%\src\dsql\sqlda_pub.h %FB_ROOT_PATH%\src\common\dsc_pub.h %FB_ROOT_PATH%\src\jrd\inf_pub.h %FB_ROOT_PATH%\src\jrd\blr.h ) do (
del %OUTPATH%\%%~nxv 2> nul
copy %%v %OUTPATH%\%%~nxv > nul
sed -n -f strip_comments.sed %OUTPATH%\%%~nxv > %OUTPATH%\%%~nv.more
sed -n -f strip_comments.sed %OUTPATH%\%%~nxv > %OUTPATH%\%%~nv.more || call :ERROR Stripping comments from %%v failed.
more /s %OUTPATH%\%%~nv.more > %OUTPATH%\%%~nv.sed
)
move /y %OUTPATH%\ibase.h %OUTPATH%\ibase.sed
sed -e "/#include \"types_pub\.h\"/r %OUTPATH%\types_pub.sed" -e "/#include \"types_pub\.h\"/d" -e "/#include \"consts_pub\.h\"/r %OUTPATH%\consts_pub.sed" -e "/#include \"consts_pub\.h\"/d" -e "/#include \"..\/jrd\/dsc_pub\.h\"/r %OUTPATH%\dsc_pub.sed" -e "/#include \"..\/jrd\/dsc_pub\.h\"/d" -e "/#include \"..\/dsql\/sqlda_pub\.h\"/r %OUTPATH%\sqlda_pub.sed" -e "/#include \"..\/dsql\/sqlda_pub\.h\"/d" -e "/#include \"blr\.h\"/r %OUTPATH%\blr.sed" -e "/#include \"blr\.h\"/d" -e "/#include \"..\/jrd\/inf_pub\.h\"/r %OUTPATH%\inf_pub.sed" -e "/#include \"..\/jrd\/inf_pub\.h\"/d" %OUTPATH%\ibase.sed > %OUTPATH%\ibase.h
sed -e "/#include \"types_pub\.h\"/r %OUTPATH%\types_pub.sed" -e "/#include \"types_pub\.h\"/d" -e "/#include \"consts_pub\.h\"/r %OUTPATH%\consts_pub.sed" -e "/#include \"consts_pub\.h\"/d" -e "/#include \"..\/common\/dsc_pub\.h\"/r %OUTPATH%\dsc_pub.sed" -e "/#include \"..\/jrd\/dsc_pub\.h\"/d" -e "/#include \"..\/dsql\/sqlda_pub\.h\"/r %OUTPATH%\sqlda_pub.sed" -e "/#include \"..\/dsql\/sqlda_pub\.h\"/d" -e "/#include \"blr\.h\"/r %OUTPATH%\blr.sed" -e "/#include \"blr\.h\"/d" -e "/#include \"..\/jrd\/inf_pub\.h\"/r %OUTPATH%\inf_pub.sed" -e "/#include \"..\/jrd\/inf_pub\.h\"/d" %OUTPATH%\ibase.sed > %OUTPATH%\ibase.h
del %OUTPATH%\ibase.sed %OUTPATH%\types_pub.* %OUTPATH%\consts_pub.* %OUTPATH%\sqlda_pub.* %OUTPATH%\dsc_pub.* %OUTPATH%\inf_pub.* %OUTPATH%\blr.*
endlocal
@ -463,11 +464,11 @@ endlocal
::Migration from old security db to new one
mkdir %FB_OUTPUT_DIR%\misc\upgrade\security 2>nul
@copy %FB_ROOT_PATH%\src\misc\upgrade\v2\security_database.* %FB_OUTPUT_DIR%\misc\upgrade\security
@copy %FB_ROOT_PATH%\src\misc\upgrade\v2\security_database.* %FB_OUTPUT_DIR%\misc\upgrade\security > nul
::Metadata migration
mkdir %FB_OUTPUT_DIR%\misc\upgrade\metadata 2>nul
@copy %FB_ROOT_PATH%\src\misc\upgrade\v2.1\metadata_* %FB_OUTPUT_DIR%\misc\upgrade\metadata
@copy %FB_ROOT_PATH%\src\misc\upgrade\v2.1\metadata_* %FB_OUTPUT_DIR%\misc\upgrade\metadata > nul
:: Make sure that qli's help.fdb is available
::===============================================
@ -503,7 +504,7 @@ mkdir %FB_OUTPUT_DIR%\misc\upgrade\metadata 2>nul
:: 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%\bin\%%v.local
::for %%v in ( fbclient msvcrt msvcp%VS_VER%0 ) do touch %FB_OUTPUT_DIR%\%%v.local
::@goto :EOF
@ -542,7 +543,7 @@ if %FB2_SNAPSHOT% EQU 1 (
)
if not "%FBBUILD_SHIP_PDB%"=="ship_pdb" (
@del /q %FBBUILD_ZIP_PACK_ROOT%\bin\*.pdb > nul 2>&1
@del /q %FBBUILD_ZIP_PACK_ROOT%\*.pdb > nul 2>&1
)
:: grab install notes for zip pack
@ -588,19 +589,19 @@ for %%v in (aliases.conf firebird.conf firebird.msg) do ( @copy /Y %FB_OUTPUT_DI
for %%v in ( doc intl udf ) do (@mkdir %FBBUILD_EMB_PACK_ROOT%\%%v 2>nul)
@copy /Y %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\firebird\bin\fbembed.* %FBBUILD_EMB_PACK_ROOT% > nul
@copy /Y %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\firebird\fbembed.* %FBBUILD_EMB_PACK_ROOT% > nul
for %%v in ( icuuc30 icudt30 icuin30 ) do (
@copy %FB_ICU_SOURCE_BIN%\%%v.dll %FBBUILD_EMB_PACK_ROOT% >nul
)
@copy /Y %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\firebird\bin\ib_util.dll %FBBUILD_EMB_PACK_ROOT% > nul
@copy /Y %FB_TEMP_DIR%\%FBBUILD_BUILDTYPE%\firebird\ib_util.dll %FBBUILD_EMB_PACK_ROOT% > nul
@copy /Y %FB_OUTPUT_DIR%\doc\Firebird*.pdf %FBBUILD_EMB_PACK_ROOT%\doc\ > nul
@copy /Y %FB_OUTPUT_DIR%\intl\*.* %FBBUILD_EMB_PACK_ROOT%\intl\ > nul
@copy /Y %FB_OUTPUT_DIR%\udf\*.* %FBBUILD_EMB_PACK_ROOT%\udf\ > nul
@copy /Y %FB_OUTPUT_DIR%\bin\msvc*.* %FBBUILD_EMB_PACK_ROOT% > nul
@copy /Y %FB_OUTPUT_DIR%\msvc*.* %FBBUILD_EMB_PACK_ROOT% > nul
if %MSVC_VERSION% EQU 8 (
@copy /Y %FB_OUTPUT_DIR%\bin\Microsoft.VC80.CRT.manifest %FBBUILD_EMB_PACK_ROOT% > nul
@copy /Y %FB_OUTPUT_DIR%\Microsoft.VC80.CRT.manifest %FBBUILD_EMB_PACK_ROOT% > nul
)
if "%FBBUILD_SHIP_PDB%"=="ship_pdb" (
@ -618,7 +619,7 @@ for %%v in (IPLicense.txt IDPLicense.txt ) do (
)
:: And readme
@copy %FB_ROOT_PATH%\builds\install\arch-specific\win32\readme.txt %FBBUILD_EMB_PACK_ROOT%\ > nul
@copy %FB_GEN_DIR%\readmes\readme.txt %FBBUILD_EMB_PACK_ROOT%\ > nul
::End of GEN_EMBEDDED
@ -685,6 +686,22 @@ if %FBBUILD_ISX_PACK% NEQ 1 goto :EOF
@goto :EOF
:DO_MD5SUMS
::=========
:: Generate the md5sum checksum file
::==================================
if NOT DEFINED GNU_TOOLCHAIN (
call :WARNING GNU_TOOLCHAIN variable not defined. Cannot generate md5 sums.
@goto :EOF
)
@echo Generating md5sums for Firebird-%FBBUILD_PRODUCT_VER_STRING%-%FBBUILD_PACKAGE_NUMBER%
%GNU_TOOLCHAIN%\md5sum.exe %FBBUILD_INSTALL_IMAGES%\Firebird-%FBBUILD_PRODUCT_VER_STRING%?%FBBUILD_PACKAGE_NUMBER%*.* > %FBBUILD_INSTALL_IMAGES%\Firebird-%FBBUILD_PRODUCT_VER_STRING%-%FBBUILD_PACKAGE_NUMBER%.md5sum
::---------------
@goto :EOF
:HELP
::===
@echo.
@ -719,6 +736,21 @@ if %FBBUILD_ISX_PACK% NEQ 1 goto :EOF
@echo.
@echo FB2_EXAMPLES=0 - Don't include examples in the install kit.
@echo.
@echo.
@echo Required Files
@echo.
@echo To successfully package Firebird you will need to make sure several
@echo packages are installed and correctly configured on your system.
@echo.
@echo o InnoSetup is needed to create the binary installer. See the header
@echo of the .iss file to see which minimum version is required.
@echo.
@echo o 7ZIP is required to create the zip and embedded packages
@echo.
@echo o sed is required for packaging. Use the sed provided by
@echo gnuwin32. The cygwin one is not guaranteed to work.
@echo.
::End of HELP
::-----------
@goto :EOF
@ -776,8 +808,6 @@ popd
@if errorlevel 1 (goto :END)
@if not defined FB2_ISS_DEBUG (set FB2_ISS_DEBUG=0)
::@if %FB2_ISS_DEBUG% equ 0 (SETLOCAL)
@if not defined FB2_EXAMPLES (set FB2_EXAMPLES=1)
@Echo.
@ -857,6 +887,9 @@ if %FBBUILD_ISX_PACK% EQU 1 (
@echo.
)
@(@call :DO_MD5SUMS ) || (@echo Error calling DO_MD5SUMS & @goto :EOF)
@echo.
@echo Completed building installation kit(s)
@echo.

View File

@ -44,6 +44,10 @@
function HasWI30: boolean;
function HasNotWI30: boolean;
function SummarizeInstalledProducts: String;
function AnalysisAssessment: boolean;
*)
@ -358,9 +362,9 @@ begin
dbg_Server := ProductsInstalledArray[product].ServerVersion;
dbg_InstallType := ProductsInstalledArray[product].InstallType;
if FileExists(ProductsInstalledArray[product].Path + '\bin\fbclient.dll') then
if FileExists(ProductsInstalledArray[product].Path + '\fbclient.dll') then
ProductsInstalledArray[product].ClientVersion := GetInstalledVersion(
ProductsInstalledArray[product].Path + '\bin\fbclient.dll',VerInt)
ProductsInstalledArray[product].Path + '\fbclient.dll',VerInt)
else
ProductsInstalledArray[product].ClientVersion := gds32VersionString;
@ -375,15 +379,15 @@ begin
///////////
if ((ProductsInstalledArray[product].InstallType AND ClientInstall) = ClientInstall) then begin
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\bin\gbak.exe',
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\gbak.exe',
ProductsInstalledArray[product].GBAKVersion);
If ProductsInstalledArray[product].GBAKVersion <> '' then begin
ProductsInstalledArray[product].ActualVersion := ProductsInstalledArray[product].GBAKVersion;
ProductsInstalledArray[product].InstallType := ProductsInstalledArray[product].InstallType + AdminInstall;
end;
if FileExists(ProductsInstalledArray[product].Path+'\bin\fb_inet_server.exe') then begin
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\bin\fb_inet_server.exe',
if FileExists(ProductsInstalledArray[product].Path+'\fb_inet_server.exe') then begin
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\fb_inet_server.exe',
ProductsInstalledArray[product].ServerVersion);
If ProductsInstalledArray[product].ServerVersion <> '' then begin
ProductsInstalledArray[product].ActualVersion := ProductsInstalledArray[product].ServerVersion;
@ -391,8 +395,8 @@ begin
end;
end;
if FileExists(ProductsInstalledArray[product].Path+'\bin\fbserver.exe') then begin
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\bin\fbserver.exe',
if FileExists(ProductsInstalledArray[product].Path+'\fbserver.exe') then begin
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\fbserver.exe',
ProductsInstalledArray[product].ServerVersion);
If ProductsInstalledArray[product].ServerVersion <> '' then begin
ProductsInstalledArray[product].ActualVersion := ProductsInstalledArray[product].ServerVersion;
@ -400,8 +404,8 @@ begin
end;
end;
if FileExists(ProductsInstalledArray[product].Path+'\bin\ibserver.exe') then begin
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\bin\ibserver.exe',
if FileExists(ProductsInstalledArray[product].Path+'\ibserver.exe') then begin
GetVersionNumbersString( ProductsInstalledArray[product].Path+'\ibserver.exe',
ProductsInstalledArray[product].ServerVersion);
If ProductsInstalledArray[product].ServerVersion <> '' then begin
ProductsInstalledArray[product].ActualVersion := ProductsInstalledArray[product].ServerVersion;
@ -684,7 +688,7 @@ var
procedure SetupSharedFilesArray;
//All shared files go in this list. Use
// find /n "sharedfile" FirebirdInstall_15.iss
// find /n "sharedfile" FirebirdInstall_20.iss
//to list them in the order they appear in the setup script
// Shared Files are defined as either:
// - Files which are absolutely necessary for a functioning installation.
@ -692,56 +696,57 @@ procedure SetupSharedFilesArray;
// - Libraries
// - License files
begin
SetArrayLength(SharedFileArray,36);
SetArrayLength(SharedFileArray,35);
SharedFileArray[0].Filename := ExpandConstant('{app}')+'\IPLicense.txt';
SharedFileArray[1].Filename := ExpandConstant('{app}')+'\IDPLicense.txt';
SharedFileArray[2].Filename := ExpandConstant('{app}')+'\firebird.msg';
SharedFileArray[3].Filename := ExpandConstant('{app}')+'\bin\gbak.exe';
SharedFileArray[4].Filename := ExpandConstant('{app}')+'\bin\gfix.exe';
SharedFileArray[5].Filename := ExpandConstant('{app}')+'\bin\gsec.exe';
SharedFileArray[6].Filename := ExpandConstant('{app}')+'\bin\gsplit.exe';
SharedFileArray[7].Filename := ExpandConstant('{app}')+'\bin\gstat.exe';
SharedFileArray[8].Filename := ExpandConstant('{app}')+'\bin\fbguard.exe';
SharedFileArray[9].Filename := ExpandConstant('{app}')+'\bin\fb_lock_print.exe';
SharedFileArray[10].Filename := ExpandConstant('{app}')+'\bin\fb_inet_server.exe'
SharedFileArray[11].Filename := ExpandConstant('{app}')+'\bin\fbserver.exe';
SharedFileArray[12].Filename := ExpandConstant('{app}')+'\bin\ib_util.dll';
SharedFileArray[13].Filename := ExpandConstant('{app}')+'\bin\instclient.exe';
SharedFileArray[14].Filename := ExpandConstant('{app}')+'\bin\instreg.exe';
SharedFileArray[15].Filename := ExpandConstant('{app}')+'\bin\instsvc.exe';
SharedFileArray[0].Filename := ExpandConstant('{app}')+'IPLicense.txt';
SharedFileArray[1].Filename := ExpandConstant('{app}')+'IDPLicense.txt';
SharedFileArray[2].Filename := ExpandConstant('{app}')+'firebird.msg';
SharedFileArray[3].Filename := ExpandConstant('{app}')+'gbak.exe';
SharedFileArray[4].Filename := ExpandConstant('{app}')+'gfix.exe';
SharedFileArray[5].Filename := ExpandConstant('{app}')+'gsec.exe';
SharedFileArray[6].Filename := ExpandConstant('{app}')+'gsplit.exe';
SharedFileArray[7].Filename := ExpandConstant('{app}')+'gstat.exe';
SharedFileArray[8].Filename := ExpandConstant('{app}')+'fbguard.exe';
SharedFileArray[9].Filename := ExpandConstant('{app}')+'fb_lock_print.exe';
SharedFileArray[10].Filename := ExpandConstant('{app}')+'firebird.exe';
SharedFileArray[11].Filename := ExpandConstant('{app}')+'ib_util.dll';
SharedFileArray[12].Filename := ExpandConstant('{app}')+'instclient.exe';
SharedFileArray[13].Filename := ExpandConstant('{app}')+'instreg.exe';
SharedFileArray[14].Filename := ExpandConstant('{app}')+'instsvc.exe';
SharedFileArray[16].Filename := ExpandConstant('{sys}')+'\gds32.dll';
SharedFileArray[17].Filename := ExpandConstant('{sys}')+'\fbclient.dll';
SharedFileArray[15].Filename := ExpandConstant('{sys}')+'gds32.dll';
SharedFileArray[16].Filename := ExpandConstant('{sys}')+'fbclient.dll';
SharedFileArray[18].Filename := ExpandConstant('{app}')+'\bin\fbclient.dll';
SharedFileArray[17].Filename := ExpandConstant('{app}')+'fbclient.dll';
SharedFileArray[19].Filename := ExpandConstant('{app}')+'\bin\icuuc30.dll';
SharedFileArray[20].Filename := ExpandConstant('{app}')+'\bin\icuin30.dll';
SharedFileArray[21].Filename := ExpandConstant('{app}')+'\bin\icudt30.dll';
SharedFileArray[18].Filename := ExpandConstant('{app}')+'icuuc30.dll';
SharedFileArray[19].Filename := ExpandConstant('{app}')+'icuin30.dll';
SharedFileArray[20].Filename := ExpandConstant('{app}')+'icudt30.dll';
SharedFileArray[22].Filename := ExpandConstant('{app}')+'\bin\msvcrt.dll';
SharedFileArray[23].Filename := ExpandConstant('{app}')+'\bin\msvcr{#msvc_version}0.dll';
SharedFileArray[24].Filename := ExpandConstant('{app}')+'\bin\msvcp{#msvc_version}0.dll';
SharedFileArray[21].Filename := ExpandConstant('{app}')+'msvcrt.dll';
SharedFileArray[22].Filename := ExpandConstant('{app}')+'msvcr{#msvc_version}0.dll';
SharedFileArray[25].Filename := ExpandConstant('{app}')+'\bin\fbintl.dll';
SharedFileArray[26].Filename := ExpandConstant('{app}')+'\UDF\ib_udf.dll';
SharedFileArray[27].Filename := ExpandConstant('{app}')+'\UDF\fbudf.dll';
SharedFileArray[23].Filename := ExpandConstant('{app}')+'fbintl.dll';
SharedFileArray[24].Filename := ExpandConstant('{app}')+'UDF\ib_udf.dll';
SharedFileArray[25].Filename := ExpandConstant('{app}')+'UDF\fbudf.dll';
if UsingWinNT then
SharedFileArray[28].Filename := ExpandConstant('{sys}')+'\Firebird2Control.cpl'
SharedFileArray[26].Filename := ExpandConstant('{sys}')+'Firebird2Control.cpl'
else
SharedFileArray[28].Filename := ExpandConstant('{sys}')+'\FIREBI~1.CPL';
SharedFileArray[26].Filename := ExpandConstant('{sys}')+'FIREBI~1.CPL';
SharedFileArray[29].Filename := ExpandConstant('{app}')+'aliases.conf';
SharedFileArray[30].Filename := ExpandConstant('{app}')+'firebird.conf';
SharedFileArray[31].Filename := ExpandConstant('{app}')+'firebird.log';
SharedFileArray[32].Filename := ExpandConstant('{app}')+'security2.fdb';
SharedFileArray[33].Filename := ExpandConstant('{app}')+'fbtrace.conf';
SharedFileArray[34].Filename := ExpandConstant('{app}')+'\bin\fbsvcmgr.exe';
SharedFileArray[35].Filename := ExpandConstant('{app}')+'\bin\fbrmclib.dll';
SharedFileArray[27].Filename := ExpandConstant('{app}')+'aliases.conf';
SharedFileArray[28].Filename := ExpandConstant('{app}')+'firebird.conf';
SharedFileArray[29].Filename := ExpandConstant('{app}')+'firebird.log';
SharedFileArray[30].Filename := ExpandConstant('{app}')+'security3.fdb';
SharedFileArray[31].Filename := ExpandConstant('{app}')+'fbtrace.conf';
SharedFileArray[32].Filename := ExpandConstant('{app}')+'fbsvcmgr.exe';
SharedFileArray[33].Filename := ExpandConstant('{app}')+'fbrmclib.dll';
SharedFileArray[34].Filename := ExpandConstant('{app}')+'fbtracemgr.exe';
// FIXME
// Add in WOW64 here.
end;
@ -804,7 +809,7 @@ begin
RegQueryStringValue(HKEY_LOCAL_MACHINE,
'SOFTWARE\FirebirdSQL\Firebird\CurrentVersion','RootDirectory', FirebirdDir);
if (FirebirdDir<>'') then
GetInstalledVersion(FirebirdDir+'\bin\gbak.exe', FirebirdVer);
GetInstalledVersion(FirebirdDir+'\gbak.exe', FirebirdVer);
Result := FirebirdDir;
end;
@ -821,7 +826,7 @@ begin
RegQueryStringValue(HKEY_LOCAL_MACHINE,
'SOFTWARE\Borland\InterBase\CurrentVersion','RootDirectory', InterBaseDir);
if ( InterBaseDir <> '' ) then
GetInstalledVersion(InterBaseDir+'\bin\gbak.exe',InterBaseVer);
GetInstalledVersion(InterBaseDir+'\gbak.exe',InterBaseVer);
Result := InterBaseDir;
end;
@ -993,3 +998,142 @@ begin
result := NOT HasWI30;
end;
function SummarizeInstalledProducts: String;
var
InstallSummaryArray: TArrayofString;
product: Integer;
i: Integer;
StatusDescription: String;
InstallSummary: String;
prodstr: String;
begin
//do nothing gracefully if we are called by accident.
if ProductsInstalledCount = 0 then
exit;
SetArrayLength(InstallSummaryArray,ProductsInstalledCount);
for product := 0 to MaxProdInstalled -1 do begin
if (ProductsInstalledArray[product].InstallType <> NotInstalled) then begin
InstallSummaryArray[i] := Format(ProductsInstalledArray[product].Description, [ProductsInstalledArray[product].ActualVersion]);
if (ProductsInstalledArray[product].ServerVersion <> '') then begin
if ((ProductsInstalledArray[product].InstallType AND ClassicServerInstall) = ClassicServerInstall) then
InstallSummaryArray[i] := InstallSummaryArray[i] + ' '+ExpandConstant('{cm:ClassicServerInstall}')
else
InstallSummaryArray[i] := InstallSummaryArray[i] + ' '+ExpandConstant('{cm:SuperServerInstall}')
end
else begin
if (ProductsInstalledArray[product].GBAKVersion <> '') then
InstallSummaryArray[i] := InstallSummaryArray[i] + ' '+ExpandConstant('{cm:DeveloperInstall}')
else
InstallSummaryArray[i] := InstallSummaryArray[i] + ' '+ExpandConstant('{cm:ClientInstall}')
end;
if ((ProductsInstalledArray[product].InstallType AND BrokenInstall) = BrokenInstall) then
InstallSummaryArray[i] := InstallSummaryArray[i]
+ #13 + ExpandConstant('{cm:PreviousInstallBroken}')
else
InstallSummaryArray[i] := InstallSummaryArray[i]
+ #13 + ExpandConstant('{cm:PreviousInstallGood}')
;
i:= i+1;
end;
end;
for i:=0 to ProductsInstalledCount-1 do
InstallSummary := InstallSummary + InstallSummaryArray[i] + #13;
// If FB21 is installed and installed platform does not match current platform
// then notify user.
#if PlatformTarget == "x64"
If ((ProductsInstalled AND FB21_x64 ) = FB21_x64 ) then
#else
If ((ProductsInstalled AND FB21 ) = FB21 ) then
#endif
InstallSummary := InstallSummary
+#13 + ExpandConstant('{cm:InstallSummarySuffix1}')
+#13 + ExpandConstant('{cm:InstallSummarySuffix2}')
+#13 + ExpandConstant('{cm:InstallSummarySuffix3}')
+#13 + ExpandConstant('{cm:InstallSummarySuffix4}')
+#13
;
if ProductsInstalledCount = 1 then
StatusDescription := Format(ExpandConstant('{cm:InstalledProducts}'), [IntToStr(ProductsInstalledCount), ExpandConstant('{cm:InstalledProdCountSingular}')])
else
StatusDescription := Format(ExpandConstant('{cm:InstalledProducts}'), [IntToStr(ProductsInstalledCount), ExpandConstant('{cm:InstalledProdCountPlural}')]);
Result := StatusDescription
+#13
+#13 + InstallSummary
+#13 + ExpandConstant('{cm:InstallSummaryCancel1}')
+#13 + ExpandConstant('{cm:InstallSummaryCancel2}')
+#13
+#13 + ExpandConstant('{cm:InstallSummaryCancel3}')
+#13
end;
function AnalysisAssessment: boolean;
var
MsgText: String;
MsgResult: Integer;
VerString: String;
begin
result := false;
//We've got all this information. What do we do with it?
if ProductsInstalledCount = 0 then begin
result := true;
exit;
end;
//If existing install of the same majorver.minorver is
//found then we can upgrade it.
if ( (ProductsInstalledCount = 1) AND
#if PlatformTarget == "x64"
((ProductsInstalled AND FB21_x64 ) = FB21_x64 ) ) then begin
#else
((ProductsInstalled AND FB21 ) = FB21 ) ) then begin
#endif
result := true;
exit;
end
;
if ForceInstall then begin
result := true;
exit;
end;
//Otherwise, show user the analysis report.
MsgText := SummarizeInstalledProducts;
MsgResult := MsgBox(MsgText,mbConfirmation,MB_YESNO);
if (MsgResult = IDNO ) then
result := true;
//but we don't configure
if ((InstallAndConfigure AND Configure) = Configure) then
InstallAndConfigure := InstallAndConfigure - Configure;
end;
// Dummy functions to get us started
{*function UseSSTask: boolean;
begin
result := false
end;
function UseSCTask: boolean;
begin
result := false
end;
function UseCSTask: boolean;
begin
result := false
end;
*}

View File

@ -0,0 +1,224 @@
(* Initial Developer's Public License.
The contents of this file are subject to the Initial Developer's Public
License Version 1.0 (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.ibphoenix.com?a=ibphoenix&page=ibp_idpl
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 copyright 2007 Paul Reeves.
The Initial Developer of the Original Code is Paul Reeves.
All Rights Reserved.
GUI related functions for the Firebird Installer.
o ResizeWizardFormHeight
- Change height of Wizard Form
- Adjust the position of each control to work in new height.
o ResizeWizardFormWidth
- Make form wider
o MoveOuterNoteBook
- Move OuterNotebook and Bevel.
Value moved should match value passed to ResizeWizardFormWidth.
o EnumerateObjectList;
- Simple demonstration of object enumeration.
*)
var
CompGroup1Array: array of string;
CompGroup2Array: array of string;
CompGroup3Array: array of string;
CompGroupButtonsArray: array of string;
CompGroup1, CompGroup2, CompGroup3, CompGroupButtons: TStringList;
// This is a non-exhaustive list of components that need to be repositioned
// and/or resized if the form size is changed. Use EnumerateObjectList to
// get a full list of components.
procedure SetupWizardFormComponentsArrays;
var
i, len: integer;
begin
SetArrayLength(CompGroup1Array,24);
CompGroup1Array[0]:='WelcomePage';
CompGroup1Array[1]:='WelcomeLabel2';
CompGroup1Array[2]:='InnerPage';
CompGroup1Array[3]:='InnerNotebook';
CompGroup1Array[4]:='LicensePage';
CompGroup1Array[5]:='LicenseMemo';
CompGroup1Array[6]:='PasswordPage';
CompGroup1Array[7]:='InfoBeforePage';
CompGroup1Array[8]:='InfoBeforeMemo';
CompGroup1Array[9]:='UserInfoPage';
CompGroup1Array[10]:='SelectDirPage';
CompGroup1Array[11]:='SelectComponentsPage';
CompGroup1Array[12]:='ComponentsList';
CompGroup1Array[13]:='SelectProgramGroupPage';
CompGroup1Array[14]:='SelectTasksPage';
CompGroup1Array[15]:='TasksList';
CompGroup1Array[16]:='ReadyPage';
CompGroup1Array[17]:='ReadyMemo';
CompGroup1Array[18]:='PreparingPage';
CompGroup1Array[19]:='InstallingPage';
CompGroup1Array[20]:='InfoAfterPage';
CompGroup1Array[21]:='InfoAfterMemo';
CompGroup1Array[22]:='FinishedPage';
CompGroup1Array[23]:='OuterNotebook';
CompGroup1 := TStringList.create;
for i := 0 to GetArrayLength( CompGroup1Array )-1 do begin
CompGroup1.add( CompGroup1Array[i] );
CompGroup1.objects[i] := (WizardForm.FindComponent(CompGroup1Array[i]));
end;
SetArrayLength(CompGroup2Array,8);
CompGroup2Array[0] := 'Bevel';
CompGroup2Array[1] := 'BeveledLabel';
CompGroup2Array[2] := 'LicenseAcceptedRadio';
CompGroup2Array[3] := 'LicenseNotAcceptedRadio';
CompGroup2Array[4] := 'DiskSpaceLabel';
CompGroup2Array[5] := 'ComponentsDiskSpaceLabel';
CompGroup2Array[6] := 'NoIconsCheck';
CompGroup2Array[7] := 'RunList';
CompGroup2 := TStringList.create;
for i := 0 to GetArrayLength( CompGroup2Array )-1 do begin
CompGroup2.add(CompGroup2Array[i]);
CompGroup2.objects[i] := (WizardForm.FindComponent(CompGroup2Array[i]));
end;
SetArrayLength(CompGroup3Array,1);
CompGroup3Array[0] := 'WizardBitmapImage';
CompGroup3 := TStringList.create;
for i:=0 to GetArrayLength(CompGroup3Array)-1 do begin
CompGroup3.add(CompGroup3Array[i]);
CompGroup3.objects[i] := (WizardForm.FindComponent(CompGroup3Array[i]));
end;
SetArrayLength(CompGroupButtonsArray,3);
CompGroupButtonsArray[0] := 'BackButton';
CompGroupButtonsArray[1] := 'NextButton';
CompGroupButtonsArray[2] := 'CancelButton';
CompGroupButtons := TStringList.create;
for i:=0 to GetArrayLength(CompGroupButtonsArray)-1 do begin
CompGroupButtons.add(CompGroupButtonsArray[i]);
CompGroupButtons.objects[i] := (WizardForm.FindComponent(CompGroupButtonsArray[i]));
end;
end;
procedure ResizeWizardFormHeight(AValue: Integer);
var
i: integer;
begin
wizardform.height := wizardform.height+AValue;
wizardform.top := wizardform.top - (AValue div 2);
// Group 1 - reset height of components
for i:=0 to GetArrayLength(CompGroup1Array)-1 do
TControl(CompGroup1.objects[i]).height := TControl(CompGroup1.objects[i]).height + Avalue;
// Group 2 - reset top of components
for i:=0 to GetArrayLength(CompGroup2Array)-1 do
TControl(CompGroup2.objects[i]).top := TControl(CompGroup2.objects[i]).top + AValue;
// Group 3 - reset top of components but keep 'centered' vertically.
for i:=0 to GetArrayLength(CompGroup3Array)-1 do
TControl( CompGroup3.objects[i]).top := TControl(CompGroup3.objects[i]).top + (AValue div 2);
// Group Buttons - reset top of components
for i:=0 to GetArrayLength(CompGroupButtonsArray)-1 do
TControl(CompGroupButtons.objects[i]).top := TControl(CompGroupButtons.objects[i]).top + AValue;
end;
procedure ResizeWizardFormWidth(AValue: Integer);
var
i: integer;
begin
wizardform.width := wizardform.width + AValue;
wizardform.left := wizardform.left - (AValue div 2);
// Group 1 - reset width of components
for i:=0 to GetArrayLength(CompGroup1Array)-1 do begin
TControl(CompGroup1.objects[i]).width := TControl(CompGroup1.objects[i]).width + Avalue;
// TControl(CompGroup1.objects[i]).left := TControl(CompGroup1.objects[i]).left + (Avalue div 2);
end;
// Group 2 - reset left of components
for i:=0 to GetArrayLength(CompGroup2Array)-1 do begin
TControl(CompGroup2.objects[i]).left := TControl(CompGroup2.objects[i]).left + AValue;
TControl(CompGroup2.objects[i]).width := TControl(CompGroup2.objects[i]).width + (AValue div 2);
end;
// Group 3 - reset left of components but keep 'centered' horizontally.
for i:=0 to GetArrayLength(CompGroup3Array)-1 do
TControl( CompGroup3.objects[i]).left := TControl(CompGroup3.objects[i]).left - (AValue div 2);
// Group 2 - reset left of buttons
for i:=0 to GetArrayLength(CompGroupButtonsArray)-1 do begin
TControl(CompGroupButtons.objects[i]).left := TControl(CompGroupButtons.objects[i]).left + AValue;
end;
end;
procedure MoveOuterNoteBookRight(AValue: Integer);
begin
with wizardform do begin
OuterNotebook.left := wizardform.OuterNotebook.left + AValue;
Bevel.left := Bevel.left + AValue;
end;
end;
procedure MoveOuterNoteBookLeft(AValue: Integer);
begin
with wizardform do begin
OuterNotebook.left := wizardform.OuterNotebook.left - AValue;
Bevel.left := Bevel.left - AValue;
end;
end;
const
group1 = ' group one';
group2 = ' group two';
group3 = ' group three';
group4 = ' group not allocated.';
procedure EnumerateObjectList;
//Walk through the components on the InnoSetup install wizard
var
Alist: TStringList;
i, j: integer;
aComponent: string;
begin
Alist := TStringList.create;
for i := 0 to WizardForm.ComponentCount -1 do begin
aComponent := WizardForm.Components[i].name;
if CompGroup1.IndexOf( aComponent ) > -1 then
aComponent := aComponent + group1
else if CompGroup2.IndexOf( aComponent ) > -1 then
aComponent := aComponent + group2
else if CompGroup3.IndexOf( aComponent ) > -1 then
aComponent := aComponent + group3
else
aComponent := aComponent + group4;
AList.add( aComponent );
end;
WizardForm.INFOBEFOREMEMO.lines.assign(Alist);
end;

View File

@ -48,6 +48,10 @@ Function Prototypes
procedure CreateHelpDlg;
function ShowHelpDlg: Integer;
procedure CloseHelpDlg;
procedure CreateDebugDlg(aString: String; aDescription: String);
function ShowDebugDlg(aString: String; aDescription: String): Integer;
procedure CloseDebugDlg;
*)
(*
@ -62,12 +66,18 @@ InnoSetup Help Extract on Windows version strings:
Windows NT versions:
4.0.1381 Windows NT 4.0
5.0.2195 Windows 2000
5.01.2600 Windows XP
or Windows XP 64-Bit Edition Version 2002 (Itanium)
5.02.3790 Windows Server 2003
or Windows XP x64 Edition (AMD64/EM64T)
or Windows XP 64-Bit Edition Version 2003 (Itanium)
6.0.6000 Windows Vista
5.01.2600 Windows XP
or Windows XP 64-Bit Edition Version 2002 (Itanium)
5.02.3790 Windows Server 2003
or Windows XP x64 Edition (AMD64/EM64T)
or Windows XP 64-Bit Edition Version 2003 (Itanium)
6.0.6000 Windows Vista
6.0.6001 Windows Vista with Service Pack 1
or Windows Server 2008
6.0.6002 Windows Vista with Service Pack 2
6.1.7600 Windows 7
or Windows Server 2008 R2
*)
@ -93,9 +103,18 @@ v3.1 3.1.4000.2435 Released with a fix to address the issue
discussed in KB898628. This is the latest version
of Windows Installer 3.1.
v4.0 4.0.6000.16386 Released with Windows Vista.
v4.0 4.0.6001.16531 or greater Released with Windows Vista SP1 and
v4.0 4.0.6001.16531 Released with Windows Vista SP1 and
Windows Server 2008.
v4.5 4.5.6002.18005 Released with Windows Vista with Service Pack 2 (SP2)
and Windows Server 2008 with Service Pack (SP2.)
v4.5 4.5.6000.20817 Released as a redistributable for Windows Vista.
v4.5 4.5.6001.22162 Released as a redistributable for Windows Server 2008
and Windows Vista with SP1.
v4.5 4.5.6001.22159 Released as a redistributable for Windows XP with Service Pack 2 (SP2) and later,
and Windows Server 2003 with SP1 and later.
v5.0 5.0.7600.16385 or greater Released with Windows Server 2008 R2
and Windows 7.
(NB1 - msi.dll stores the correct version number and is updated
automatically by Windows Update. msiexec.exe will be the original shipped version.
@ -128,10 +147,48 @@ var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
if (Version.Major = 6) and (Version.Minor = 0) then
if ( Version.Major = 6 ) and ( Version.Minor = 0 ) and ( Version.build = 6000 )then
result := true;
end;
function IsVistaSP1: boolean;
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
if ( Version.Major = 6 ) and ( Version.Minor = 0 ) and ( Version.build = 6001 )then
result := true;
end;
function IsWin2K8R1: boolean;
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
if ( Version.Major = 6 ) and ( Version.Minor = 0 ) and ( Version.build = 6001 )then
result := true;
end;
function IsWinSeven: boolean;
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
if (Version.Major = 6) and (Version.Minor = 1) then
result := true;
end;
//This test is identical to the test for Win7
function IsWin2K8R2: boolean;
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
if (Version.Major = 6) and (Version.Minor = 1) then
result := true;
end;
function IsWin2k3: boolean;
var
Version: TWindowsVersion;
@ -436,11 +493,6 @@ begin
HelpDlg.ActiveControl := OKButton;
end;
function ShowHelpDlg: Integer;
begin
result := HelpDlg.ShowModal;
end;
procedure CloseHelpDlg;
begin
with HelpDlg do begin
@ -449,4 +501,68 @@ begin
end;
end;
function ShowHelpDlg: Integer;
begin
CreateHelpDlg;
result := HelpDlg.ShowModal;
CloseHelpDlg;
end;
// Add a simple debug dialogue
var
DebugDlg: TForm;
procedure CreateDebugDlg(aString: String; ADescription: String);
var
DebugText: TMemo;
DebugDescription: TLabel;
OKButton: TButton;
begin
DebugDlg := TForm.create(nil);
with DebugDlg do begin
BorderStyle := bsSizeable;
Position := poScreenCenter;
ClientWidth := 450;
ClientHeight := 350;
Caption := 'Firebird Installation - command-line parameters.';
end;
DebugText := TMemo.Create(DebugDlg);
with DebugText do begin
Parent := DebugDlg;
ScrollBars := ssVertical;
Lines.Text :=aString;
Align := alTop;
Height := 200;
ReadOnly := True;
end;
OKButton := TButton.create(DebugDlg);
with OKButton do begin
Parent := DebugDlg;
Left := (Parent.width div 2) - width div 2;
top := Parent.ClientHeight - 40;
Caption := 'OK';
ModalResult := mrOK;
end;
DebugDlg.ActiveControl := OKButton;
end;
procedure CloseDebugDlg;
begin
with DebugDlg do begin
Close;
Free;
end;
end;
function ShowDebugDlg(aString: String; aDescription: String): Integer;
begin
CreateDebugDlg(aString,aDescription);
result := DebugDlg.ShowModal;
CloseDebugDlg;
end;

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
==========================================
Firebird 2.5.0 Beta 2 (Windows Build)
==========================================
====================================
Firebird $MAJOR.$MINOR.$RELEASE (Windows Build)
====================================
o Introduction
@ -12,13 +12,13 @@ o Reporting Bugs
Introduction
============
Welcome to Firebird 2.5.
Welcome to Firebird $MAJOR.$MINOR.
Intended Users
==============
This is a beta version of Firebird.
This is a pre-alpha version of Firebird.
It is not intended for production use. It is for
test purposes only.
@ -39,9 +39,10 @@ version of Firebird!
Please don't use the Firebird-devel list for technical
support unless the question specifically relates to a
new feature in Firebird 2.5
new feature in Firebird $MAJOR.$MINOR
Happy Testing!
From the Firebird team.

View File

@ -15,19 +15,20 @@ en.UseApplicationTaskMsg=Run as an &Application?
en.TaskGroupDescription=Run Firebird server as:
en.UseServiceTask=Run as a &Service?
en.AutoStartTask=Start &Firebird automatically everytime you boot up?
en.SuperClassicTask=Use SuperClassic?
en.CopyFbClientToSysTask=Copy &Firebird client library to <system> directory?
en.CopyFbClientAsGds32Task=Generate client library as GDS32.DLL for &legacy app. support?
en.InstallCPLAppletTask="Install Control &Panel Applet?"
en.InstallCPLAppletTask=Install Control &Panel Applet?
en.instreg=Updating the registry
en.instclientCopyFbClient=Copying fbclient to the <sys> directory
en.instclientGenGds32=Generating gds32.dll for <sys> directory
en.instclientDecLibCountGds32="Decrementing shared lib count for gds32 and removing it if appropriate."
en.instclientDecLibCountFbClient="Decrementing shared lib count for fbclient and removing it if appropriate."
en.instclientDecLibCountGds32=Decrementing shared lib count for gds32 and removing it if appropriate.
en.instclientDecLibCountFbClient=Decrementing shared lib count for fbclient and removing it if appropriate.
en.instsvcSetup=Setting up the service
en.instsvcStartQuestion=Start Firebird Service now?
en.instsvcStartMsg=Starting the server
en.instsvcStopMsg="Stopping the service"
en.instsvcRemove="Removing the service"
en.instsvcStopMsg=Stopping the service
en.instsvcRemove=Removing the service
en.instappStartQuestion=Start Firebird now?
en.instappStartMsg=Starting the server
@ -70,4 +71,9 @@ en.RunISQL=Run command-line based Interactive SQL tool
en.ReadmeFile=readme.txt
en.InstallationReadmeFile=installation_readme.txt
;en.IncompleteTranslationNotice=This document is not up-to-date. Please refer to the original english language version for the latest information.
en.RunCS=Run Firebird Classic server
en.RunSC=Run Firebird SuperClassic server
en.RunSS=Run Firebird SuperServer
en.ServerTaskDescription=Choose Server Architecture:
en.initSecurityDb=Adding SYSDBA to security database.

View File

@ -9,11 +9,12 @@ documentatation i18n should be available separately. I18n is a
good thing, but bloating the installer with large amounts of translated
documentation is not desirable.
The current version of InnoSetup - 4.2.7 - provides generic support for
the following languages:
The current version of InnoSetup used by Firebird $MAJOR.$MINOR - 5.4.2 - provides
generic support for the following languages:
Catalan, Czech, Dutch, French, German, Norwegian, Polish,
PortugueseStd, Russian and Slovenian.
Basque, BrazilianPortuguese, Catalan, Czech, Danish, Dutch, Finnish, French,
German, Hebrew, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese,
Russian, Slovak, Slovenian, and Spanish
In addition, the InnoSetup user community has made other language packs
available for download. See here for details:
@ -23,37 +24,35 @@ available for download. See here for details:
Therefore adding i18n support to the Firebird installer is extremely
simple as all we need are translations of the Firebird specific messages.
Currently the Firebird installer has support for English, French, German,
Portuguese (standard), Hungarian and Slovenian installs. So there are still
opportunities for others to provide support for their native language.
Currently the Firebird installer has support for Bosnian, Czech, Spanish,
French, German, Hungarian, Italian, Polish, Portuguese (standard), Russian,
Slovakian and Slovenian installs. So there are still opportunities for others
to provide support for their native language.
How to add new languages
------------------------
The simplest way to understand this is to study the implementation of
the French translation. The steps to follow are these:
an existing translation. The steps to follow are these:
o The Win32 install files are located in install\arch-specific\win32.
This sub-directory is located as follows:
Firebird 1.5 - firebird2\src
Firebird 2.0 - firebird2\builds
Firebird 2.n - firebird2\builds
Firebird 3.n - firebird2\builds
o You can use anonymous CVS to checkout the Win32 install kit with these
commands:
o You can use a tool such as TortoiseSVN to checkout the Win32 install
kit. Just open the SVN checkout dialogue and enter something similar
to this Repository URL:
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/branch/B2_5_Release/builds/install/arch-specific/win32
or this:
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/tags/R2_5_1/builds/install/arch-specific/win32
For 2.1 the equivalent URLs would be:
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/branch/B2_1_Release/builds/install/arch-specific/win32
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/tags/R2_1_4/builds/install/arch-specific/win32
[login]
cvs -d:pserver:anonymous@firebird.cvs.sourceforge.net:/cvsroot/firebird login
[checkout the Fb 1.5 Win32 installation kit]
cvs -z3 -d:pserver:anonymous@firebird.cvs.sourceforge.net:/cvsroot/firebird co -r B1_5_Release firebird2/src/install/arch-specific/win32
[checkout the Fb 2.0 Win32 installation kit]
cvs -z3 -d:pserver:anonymous@firebird.cvs.sourceforge.net:/cvsroot/firebird co -r B2_0_Release firebird2/builds/install/arch-specific/win32
o Each language has its own sub-directory under install\arch-specific\win32.

View File

@ -1,17 +1,33 @@
Firebird Database Server 2.5 Beta 2
==================================================
Firebird Database Server $MAJOR.$MINOR.$RELEASE (Alpha)
========================================================
############## NOTE ####################################
# #
# The installer is in an experimental state. #
# This is not the definitive version for Firebird 3.0. #
# #
# o Layout and work sequence of the installer is not #
# definitive. #
# o Options available are subject to change. #
# o Method of library deployment has not been #
# finalized. #
# o The notes below are not up-to-date. #
# #
############## END NOTE ################################
This document is a guide to installing this package of
Firebird 2.5 on the Windows platform. These notes refer
Firebird $MAJOR.$MINOR on the Windows platform. These notes refer
to the installation package itself, rather than
Firebird 2.5 in general. In addition, these notes are
Firebird $MAJOR.$MINOR in general. In addition, these notes are
primarily aimed at users of the binary installer.
It is assumed that readers of this document are already
familiar with Firebird 2.1. If you are evaluating
Firebird 2.5 as part of a migration from FB 2.1 you are
advised to review the FB 2.1 documentation to
understand the changes made between 2.1 and 2.5.
familiar with Firebird 2.5. If you are evaluating
Firebird $MAJOR.$MINOR as part of a migration from Fb 2.5 you are
advised to review the Fb $MAJOR.$MINOR documentation to
understand the changes made between 2.5 and $MAJOR.$MINOR.
Contents
@ -59,7 +75,7 @@ Other Known installation problems
---------------------------------
o It is only possible to use the binary installer
to install the default instance of Firebird 2.1. If
to install the default instance of Firebird $MAJOR.$MINOR. If
you wish to install additional, named instances you
should manually install them with the zipped install
image.
@ -111,11 +127,12 @@ o If Firebird is running as an application (instead of
uninstall the uninstall will complete with errors.
You will have to delete the remnants by hand.
o Uninstallation leaves four files in the install
o Uninstallation leaves five files in the install
directory:
- aliases.conf
- firebird.conf
- fbtrace.conf
- firebird.log
- security2.fdb
@ -158,3 +175,4 @@ Please see this document:
installation_scripted.txt
for full details.

View File

@ -28,6 +28,8 @@ Setup parameters specific to the Firebird Installer
/COMPONENTS="comma separated list of component names"
/TASKS="comma separated list of task names"
/MERGETASKS="comma separated list of task names"
/SYSDBAName="SYSDBA"
/SYSDBAPassword="masterkey"
Setup parameters specific to the Firebird Uninstaller
/CLEAN
@ -281,7 +283,23 @@ Parameters specific to Firebird installs
(This option is not intended to be used with the /TASKS parameter.)
/SYSDBANAME="SYSDBA"
SYSDBA name will default to SYSDBA unless overridden with this parameter.
NOTE: If an existing Security database is found this parameter will be
ignored.
/SYSDBAPASSWORD="masterkey"
SYSDBA password will use the default "masterkey" password.
NOTE: If an existing Security database is found this parameter will be
ignored.
Setup Exit Codes
----------------
@ -377,12 +395,13 @@ Parameters specific to Firebird uninstalls
/CLEAN
Uninstallation has always left the following files in place after
the uninstallation process hase completed:
the uninstallation process has completed:
firebird.conf
aliases.conf
firebird.log
security2.fdb
security3.fdb
fbtrace.conf
The assumption is that these files will be useful to users
re-installing or upgrading Firebird. Starting with Firebird 2.1