pcs 98/05/30 08:26:31
Modified: . how-to-release-win32.html Log: Add some more detail on how to release on Windows, in the light of experience building IS2 configurations. Be more explicit about where the files come from (i.e. a tagged released), line ending conversion, re-committing the IS2 configuration, registry keys, and building binaries in a different directory. Revision Changes Path 1.6 +71 -30 apache-devsite/how-to-release-win32.html Index: how-to-release-win32.html =================================================================== RCS file: /export/home/cvs/apache-devsite/how-to-release-win32.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- how-to-release-win32.html 1998/05/04 08:43:43 1.5 +++ how-to-release-win32.html 1998/05/30 15:26:30 1.6 @@ -69,12 +69,18 @@ <P> -Now create the install directory. Copy the Apache distribution to this -directory (make sure that the files have the correct DOS line endings -first). Some of the directories and files are not needed on Windows, -so now delete: +Now create the install directory, and extract Apache into it. The +Apache files will normally come either direct from CVS at a given tag +value, or from an existing Unix source distribution. If the +distribution has Unix line endings, convert the line endings of all +files apart from <SAMP>htdocs/*.gif</SAMP> and +<SAMP>icons/*.gif</SAMP>. + <P> +The following directories are not needed on Windows because they +are not part of the installer: + <UL> <LI><SAMP>conf\*.conf-dist</SAMP> (but leave the <SAMP>*.conf-dist-win</SAMP>) <LI><SAMP>src\os\{emx,bs2000,unix}</SAMP> @@ -83,24 +89,39 @@ <LI><SAMP>src\modules\test</SAMP> </UL> +<P> + (Note: the InstallShield configuration file lists only the files which -are to be build into the installer, so it is no necessary to remove +are to be build into the installer, so it is not necessary to remove these files and directories unless you are planning to update the IS configuration by dragging-and-dropping directories). <P> +You will also need to build the executables and DLLs. This should +<STRONG>not</STRONG> be done in the same directory where you are +building the installer. Instead, copy your install directory to a +temporary directory name (this can be any directory, but the examples +below will assume that it is <SAMP>C:\BUILD</SAMP>). + +<P> + Copy the <SAMP>MSVCRT.DLL</SAMP> file into the install directory. This file can be found on the MSVC++ 5.0 CD (it is a redistributable file), or in the <SAMP>\WINDOWS\SYSTEM</SAMP> (Win95) or <SAMP>\WINNT\SYSTEM32</SAMP> (WinNT) directories. +<PRE> + COPY \WINDOWS\SYSTEM\MSVCRT.DLL \Apache <I>(Windows 95)</I> + COPY \WINNT\SYSTEM32\MSVCRT.DLL \Apache <I>(Windows NT)</I> +</PRE> + <P> <LI><STRONG>Configure the InstallShield Configuration File</STRONG><P> -Apache for Windows is packaged using InstallShield 2. This requires an -InstallShield configuration file +Apache for Windows is packaged using InstallShield 2. This use the +configuration file <SAMP>os/win32/installer/apache.iwz</SAMP>. Unfortunately InstallShield's configuration file contains hard-coded absolute paths to the individual files. If your install directory (step 1) is @@ -117,35 +138,55 @@ <P> +Start InstallShield 2, then load the +<SAMP>os/win32/installer/apache.iwz</SAMP> file from the build +directory (e.g. <SAMP>\BUILD</SAMP>). Inside InstallShield, perform +the following actions: + +<P> + <UL> + <LI>Check that <STRONG>all</STRONG> the components contain the correct + list of files. This is a case of manually comparing the list of + files in each component with the corresponding directory under + your install directory (this is a repeatative and boring process, + but InstallShield cannot handle betters ways of specific multiple + files or directories to include in a single step). You will need to + add or remove any files added or removed since the last time the + configuration file was updated (NB: certain Unix only files + may not need to be added, if they are not needed by Windows + end users). + </LI> <LI>Set the Visual Design, Application Information, Version. This - should contain the full version number, eg. 1.3 or 1.3b5. + should contain the full version number, eg. 1.3.0 or 1.3b5. </LI> <LI>Set the Visual Design, Main Window, Main Title. As above. </LI> - <LI>Make Registry Changes, Registry Keys. The key + <LI>Ensure that the correct registry key will be used. + Go to Make Registry Changes, Registry Keys. The key HKLM\SOFTWARE\Apache Group\Apache should contain a subkey containing the version number which does not change across beta - release. For example, "1.3" (for a full release) or "1.3 beta" + release. For example, "1.3.0" (for a full release) or "1.3 beta" (on all 1.3 betas). The name of this key must match the definition of <SAMP>VERSION</SAMP> in <SAMP>os/win32/registry.c</SAMP> of the version of Apache being - packaged. + packaged (which should have been updated by the Release Manager + when they tagged the source tree). </LI> - <LI>Make Registry Changes, Registry Values. Under the key created in + <LI>Go to Make Registry Changes, Registry Values. Under the key created in the previous step, add a REG_SZ (String) value with name - "ServerRoot" and value "<INSTALLDIR>" (IS2 will replace this with - the real install directory). + "ServerRoot" and value "<INSTALLDIR>" (IS2 will replace + this with the real install directory). </LI> </UL> <P> -If any of these are wrong the <SAMP>apache.iwz</SAMP> file will need -updating. Do not forget to replace references to your install -directory with <SAMP>C:\Apache</SAMP> in the file before committing -it. +After making the changes above you will have to commit the updated +<SAMP>apache.iwz</SAMP> file back to the CVS tree. Do not forget to +change references to your install directory back to +<SAMP>C:\Apache</SAMP> if you used a different directory. </P> @@ -153,9 +194,9 @@ The installer DLL is called by the installation process to configure the sample configuration files. It is built by running <SAMP>nmake -f -Makefile.nt installdll</SAMP> in the <SAMP>src</SAMP> directory (is -it not built by the normal <SAMP>_apacheX</SAMP> or -<SAMP>installX</SAMP> targets). The code for the installer is in +Makefile.nt installdll</SAMP> in the build directory (it is not built +by the normal <SAMP>_apacheX</SAMP> or <SAMP>installX</SAMP> +targets). The code for the installer is in <SAMP>os/win32/installer/installdll</SAMP>, and after doing the build above the DLL file will be in <SAMP>os/win32/installer/installdll/Release/install.dll</SAMP>. Copy @@ -166,12 +207,12 @@ <LI><STRONG>Build and Install Apache</STRONG><P> Now build Apache in the normal way, with <SAMP>nmake /f Makefile.nt -_apacher</SAMP>. After it is built, install it with <SAMP>nmake /f -Makefile.nt installr</SAMP>. If you are using <CODE>C:\Apache</CODE> -then this will install the binaries into your install tree. Otherwise -you will need to copy the installed <SAMP>.EXE</SAMP> and -<SAMP>.DLL</SAMP> files to your install tree, as well as the -<SAMP>modules</SAMP> directory. +_apacher</SAMP> in your build directory. After it is built, install it +with <SAMP>nmake /f Makefile.nt installr</SAMP>. If you are using +<CODE>C:\Apache</CODE> then this will install the binaries into your +install tree. Otherwise you will need to copy the installed +<SAMP>.EXE</SAMP> and <SAMP>.DLL</SAMP> files to your install tree, as +well as the <SAMP>modules</SAMP> directory. <P> @@ -257,9 +298,9 @@ <LI><STRONG>Build the Installer</STRONG><P> Now run InstallShield 2. Load the configured <SAMP>apache.iwz</SAMP> -file. Go to the "Set Visual Design" option and make sure that the version -number is set correctly in both the "Application Information" and -"Main Window" panes. +file from your build directory. Go to the "Set Visual Design" option +and make sure that the version number is set correctly in both the +"Application Information" and "Main Window" panes. <P>