Information about the installation program for Subversion for Windows ===================================================================== $LastChangedDate$ CONTENTS: ========= * Introduction (read first!) * Dynamic build data * Programs used for the Subversion installer and instructions - Inno Setup - - Perl - Packages for converting XML documentation - MS HTML Help Workshop * Making a distro * svn-x.xx.x-setup.exe's command line options Introduction ============ This document describes the packages\windows-innosetup directory of the Subversion repository and tells you how you can roll out your own Windows installer for Subversion. If you have trouble, make sure that you use the packages versions that are noted here (if noted) before asking for help. If you haven't done it already: -Please, Check out the subversion sources to a place you like and download the programs and packages from the links below. Reading the "Directory structure" part should be the next. Inno Setup ---------- Inno Setup QuickStart Pack 5.0.8. This package gives you Inno Setup (IS) and a sutable version of "Inno Setup Pre Processor" (ISPP): http://www.jrsoftware.org/isdl.php UninsHs ------- UninsHs-1.6 adds "Modify/Repair/Uninstall" capabilities for the installer. http://www.han-soft.biz/uninshs.php Svnbook ------- We need the sources of this book in order to make the MS HTML-documentation. Fire up a console window (a so called DOS box) and download the sources via Subversion to a location by your choice: svn co http://svn.red-bean.com/svnbook/trunk svnbook Perl ---- Perl 5.8.0 or better with the libwin32 bundle (included in ActivePerl): http://www.activestate.com/ActivePerl/ or make your own (and compile the module libwin32): http://www.perl.com/ http://www.cpan.org/modules/by-module/Win32/ (libwin32-X.XXX.zip) libxml ------ Point your browser to: http://www.zlatkovic.com/pub/libxml/ and grab the following packages: - libxml2-2.6.17 - libxslt-1.1.12+ - iconv-1.9.1 - zlib-1.2.1 docbook-xsl ----------- Point your browser to: http://sourceforge.net/project/showfiles.php?group_id=21935 and grab the most recent docbook-xsl-*.**.*.zip file MS HTML Help Workshop --------------------- Point your browser to: http://msdn.microsoft.com/library/tools/htmlhelp/chm/hh1start.htm Read in the section named "Programs used for the Subversion Windows installer" below about the packages for notes and info on installing and using the downloaded packages. Dynamic build data ================== The setup system must consider many dynamic data when creating the installation program. This is things such as paths, different makers of the setup (they may have different compilers and paths in their system) and that binarys and contents might vary. All this data are maintained by the file svn_dynamics.iss which has a lot variables that is processed by Inno Setup Pre Processor (ISPP) during the compiling of the setup. A template can be found in the packages\windows-innosetup\templates directory. Copy this file to the packages\windows-innosetup directory and edit it according to the documentation inside it. This file is not under version control (the template is) since the contents will vary depending on the system they are in. The Inno setup file lives under the packages\windows-innosetup directory of the Subversion repository and are using folders which are both visible and "hidden". The hidden folders have the svn property svn:ignore and only exists on your machine. The setup system gets its files (and have files) from two kinds of places: * Static: This files are always somewhere in the repository. * Dynamic: This files can be picked up anywhere from your computer (even from the repository). Visible folders looks like this: [ ] and hidden folders like this: [h]. Do you think that is looks complicated? Don't worry! The programs in the tools folder takes care of copying and preparing files when your svn_dynamics.iss file are edited and set correctly. Static paths (in the Subversion repository): ------------- [ ] windows-innosetup (svn.iss, main folder for Inno Setup) +->[ ] images (Various images used by the setup) +->[h] in (you can set your path_setup_in here if you want to, see below) +->[h] out (you can set your path_setup_out here if you want to, see below) +->[ ] templates (misc templates used by various tools and the setup) +->[ ] tools (misc. stuff for making and helping to make a setup) | +->[ ] svnpath (C sources for the svnpath.exe program) Dynamic paths (files from anywhere on your machine) --------------------------------------------------- This paths are determined by values in the file svn_dynamics.iss. The value names of this path variables is: Path variables: Setup files: --------------- --------------------------------------------------------- path_setup_out Where svn-X.XX.X-rXXXX-setup.exe is to find after compiling the setup path_setup_in Contains misc. files to include in the setup path_is Path to the Inno Setup executable's directory path_svnclient svn.exe path_svnsync svnsync.exe path_svnadmin svnadmin.exe path_svnlook svnlook.exe path_svnserve svnserve.exe path_svnversion svnversion.exe path_svndumpfilter svndumpfilter.exe path_davsvn mod_dav_svn.so path_authzsvn mod_authz_svn.so path_svnpath svnpath.exe path_iconv *.so path_brkdb_bin db_*.exe, ex_*.exe, excxx_*.exe, libdb4*.dll, libdb4*.exp path_brkdb_lib libdb4*.lib path_brkdb_inc db.h, db_cxx.h) path_brkdb_inc2 cxx_common.h, cxx_except.h path_sqlite sqlite3.dll path_ssl libeay32.dll, ssleay32.dll Programs used for the Subversion Windows installer ================================================== Inno Setup ---------- The installation program is the excellent Inno Setup made by Jordan Russell (with a lot of additional code by Martijn Laan, mostly the scripting part). IS and friends are probably all you need for 99% of any Windows installer needs made for the various flavours of Windows and has proven to be extremely reliable and stable. The Inno Setup used by Subversion are extended with "Inno Setup Pre Processor" made by Alex Yackimoff. "Inno Setup QuickStart Pack" includes both IS and ISPP so all you need is "Inno Setup QuickStart Pack" Installation notes: None ISTool ------ A good installation script for any installation programs are usually very complicated and requires good script editing software. The program used for this is ISTool and its syntax high-lighting makes it the perfect companion to IS and friends. The author - Bjørnar Henden are doing a great job by updating his program each time Inno Setup are updated. Installation notes: Can be retrieved by "Inno Setup QuickStart Pack" svnpath ------- Inno Setup does not currently edit the systems PATH environment so we need svnpath. This C program is used for updating the user's path to include/exclude the Subversion path after installing/un-installing Subversion. You can find the sources for this program in the Subversion source tree under packages\windows-innosetup\tools\svnpath. Have a look in the file main.c for info on how to compile the program. If you don't want to compile it then download it from: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=2728 Unzip the file and put the svnpath.exe in the directory packages\windows-innosetup\tools\svnpath UninsHs ------- Unpack the zipfile and place UninsHs.exe in packages\windows-innosetup libxml, libxslt and iconv ------------------------- We need to include some documentation and this tools will help us to convert the XML files in the doc directory in the repository to a Windows HTML help file. Installation notes: Unpack the zip-files and place the contents of the 'lib' and 'util' folders from each unzipped packages in a folder which is mentioned in your PATH environment variable. docbook-xsl ----------- This package is needed for making documentation. Unzip the files inside docbook-xsl-*.**.*.zip to a folder named xsl which resides under src\tools in your working copy of the svnbook repository. Rename the unpacked top level folder from "docbook-xsl-x.xx.x" to "xsl", the result should be like this: src\tools\xsl Perl ---- Use a (native Windows) Perl 5.8.0 or better with the libwin32 bundle for automating the setup. Installation notes: If you don't want to use Active Perl, then it's trivial to compile Perl by yourself if you have MS VC5 (or better) or MinGW. Just remember to compile the Perl modules included in libwin32 when Perl itself is done. Making a distro =============== The programs/scripts in the packages\windows-innosetup\tools folder will take care of making the Subversion documentation (a Windows HTML help file) from the sources in the doc directory of the subversion repository and setting version info on the setup. Just follow the steps below and you're set: 1. Make sure that all the programs needed by INNO are installed as described earlier in this file. 2. If you haven't done it already: Copy the file "svn_dynamics.iss" from the packages\windows-innosetup\templates folder to packages\windows-innosetup in your WC and edit it according to the documentation inside it. 3. Copy the file svn_version.iss from packages\windows-innosetup\templates to packages\windows-innosetup and edit it according to the documentation inside it. 4. Make sure that all the files to include in the setup are where they are supposed to be according to the svn_dynamics.iss file. 5. Now, you have two different ways of making the documentation and the setup: A. Change directory (cd) to the packages\windows-innosetup\tools folder on your working Subversion repository and run the following command and follow the instructions: mk_distro B. You may want to make an automatic setup (nightly build, anything else), just run the packages\windows-innosetup\tools\mk_distro file: path\to\packages\windows-innosetup\tools\mk_distro -a A shiny new svn-x.xx.x-setup.exe should now be in your path_setup_out folder if you have done everything right. Good luck! svn-x.xx.x-setup.exe's command line options =========================================== The text below are more or less copied directly from the Inno Setup Help file and describes the parameters that the Subversion installer Setup file accepts: The Setup program accepts optional command line parameters. These can be useful to system administrators, and to other programs calling the Setup program. /SP- Disables the This will install... Do you wish to continue? prompt at the beginning of Setup. Of course, this will have no effect if the DisableStartupPrompt [Setup] section directive was set to yes. /SILENT, /VERYSILENT Instructs Setup to be silent or very silent. When Setup is silent the wizard and the background window are not displayed but the installation progress window is. When a setup is very silent this installation progress window is not displayed. Everything else is normal so for example error messages during installation are displayed and the startup prompt is (if you haven't disabled it with DisableStartupPrompt or the '/SP-' command line option explained above) If a restart is necessary and the '/NORESTART' command isn't used (see below) and Setup is silent, it will display a Reboot now? message box. If it's very silent it will reboot without asking. /NOCANCEL Prevents the user from cancelling during the installation process, by disabling the Cancel button and ignoring clicks on the close button. Useful along with /SILENT. /NORESTART Instructs Setup not to reboot even if it's necessary. /LOADINF="filename" Instructs Setup to load the settings from the specified file after having checked the command line. This file can be prepared using the '/SAVEINF=' command as explained below. Don't forget to use quotes if the filename contains spaces. /SAVEINF="filename" Instructs Setup to save installation settings to the specified file. Don't forget to use quotes if the filename contains spaces. /DIR="x:\dirname" Overrides the default directory name displayed on the Select Destination Location wizard page. A fully qualified pathname must be specified. /GROUP="folder name" Overrides the default folder name displayed on the Select Start Menu Folder wizard page. If the [Setup] section directive DisableProgramGroupPage was set to yes, this command line parameter is ignored. /NOICONS Instructs Setup to initially check the Don't create any icons check box on the Select Start Menu Folder wizard page. /COMPONENTS="comma separated list of component names" Overrides the default components settings. Using this command line parameter causes Setup to automatically select a custom type.