Index: /trunk/for-distributions/creating-a-release.txt
===================================================================
--- /trunk/for-distributions/creating-a-release.txt	(revision 9490)
+++ /trunk/for-distributions/creating-a-release.txt	(revision 9490)
@@ -0,0 +1,174 @@
+PREPARATION (DO ONCE) -- LINUX
+
+- cvs checkout -P gsdl (make sure $CVSROOT is set)
+- Run source setup.bash, in gsdl directory
+- Set version number (GSDL_VERSION) in lib/gsdlconf.h
+- Set version number for VERSION file near end of Install.sh, and commit
+- Make "dist" directory as a sibling of gsdl
+
+- cvs checkout -P gli, in gsdl directory
+- Update AboutDialog.Date in classes/dictionary*.properties, and commit
+  - Get month strings from within the file (Dates.*)
+- Set PROGRAM_VERSION in src/org/greenstone/gatherer/util/Utility.java, and commit
+- Set CURRENT_CONFIGURATION_VERSION in src/org/greenstone/gatherer/Configuration.java, and commit
+- Set Configuration version in classes/xml/config.xml and configRemote.xml, and commit
+
+- Change version numbers and dates in /home/nzdl/gsdl-docs/README*.TXT
+  - Get month strings from the macrofiles (_textmonthXX_)
+    - Russian: use /home/nzdl/for-distributions/russian.dm.cp1251 and russian.dm.koi8-r
+- Change version number in /home/nzdl/gsdl-docs/Support.htm
+- Check PDF manuals are in /home/nzdl/gsdl-docs/docs
+
+# - Copy DistDates file from /home/nzdl/for-distributions into $GSDLHOME
+- Copy any files in /home/nzdl/for-distributions/bin/script to $GSDLHOME/bin/script
+- Copy any files in /home/nzdl/for-distributions/bin/linux to $GSDLHOME/bin/linux
+- Copy /home/nzdl/for-distributions/bin/windows to become $GSDLHOME/bin/windows
+
+- Edit $GSDLHOME/collect/demo/etc/collect.cfg and remove non-core language strings
+  - Overwrite /home/nzdl/for-distributions/collect/demo/etc/collect.cfg and commit if different
+- Edit $GSDLHOME/etc/main.cfg and comment out non-core Language lines and macrofiles
+  - Overwrite /home/nzdl/for-distributions/etc/main.cfg and commit if different
+- Edit $GSDLHOME/gli/classes/xml/languages.xml and remove mds="true" from non-core languages
+  - Overwrite /home/nzdl/for-distributions/gli/classes/xml/languages.xml and commit if different
+
+- Add "-static" to LDFLAGS in configure.in
+- Run autoconf configure.in > configure
+- Run ./configure
+- Fix up non-statically linked packages by adding "-static" to LDFLAGS in:
+  - packages/expat/expat-1.95.8/Makefile
+  - packages/isis-gdl/Makefile
+  - packages/pdftohtml/pdftohtml_gs/src/Makefile
+  - packages/wv/wv-gs/Makefile
+  - packages/xlhtml/xlhtml-0.4.9.0/xlhtml/Makefile
+  - packages/xlhtml/xlhtml-0.4.9.0/ppthtml/Makefile
+- Add "-static" to the end of the "rtftohtml" rule in rtftohtml/rtftohtml_src/Makefile
+
+- Copy built demo collection (prepared earlier!) to collect/demo
+
+- Run Installshield X (/home/nzdl/installshieldX/InstallShieldUniversal)
+  - Open /research/mdewsnip/greenstone/installers/gsdl/Greenstone Digital Library Software.uip
+    - If you are not doing this on bedrock, copy the /research/mdewsnip/greenstone/installers/gsdl directory to somewhere on your computer. The parent directory will be the installer directory needed below. 
+    - Edit the gsdl/Greenstone Digital Library Software.uip file and change any absolute paths as needed.
+  - Set Installation Information -> General Information: Version property
+  - Set Media -> Path Variables: GSDL_DISTRIBUTION_SOURCE to .../dist/gsdl-x.xx-cdrom
+  - Set Media -> Path Variables: GSDL_WEB_DISTRIBUTION_EXTRAS to .../dist/gsdl-x.xx-unix
+  - Set Media -> Path Variables: GSDL_INSTALLERS_DIR to installer directory specified above (if not on bedrock)
+
+
+PREPARATION (DO ONCE) -- WINDOWS (KOHEKOHE)
+
+- Run CMD.exe
+- Run H:\setupenv.bat, or (equivalently):
+  - Set PATH to include CVS and SSH executables (H:\bin)
+  - Set CVSROOT=:ext:<username>@cvs.scms.waikato.ac.nz:/usr/local/global-cvs/gsdl-src
+  - Set CVS_RSH=ssh
+  - Set EDITOR=edit
+
+- cvs checkout -P gsdl (requires about 120MB once compiled)
+- Set version number (GSDL_VERSION) in gsdl\lib\gsdlconf.h
+- Unzip the Crypt, Expat, GDBM and STLPort packages in gsdl\packages\windows
+
+- cvs checkout -P winbin
+- Copy winbin\bin to gsdl\bin\windows
+- Delete winbin directory
+
+
+BUILDING (REPEAT AS OFTEN AS NECESSARY) -- WINDOWS (KOHEKOHE)
+
+- cvs update -dP, in gsdl directory (retrieve any new changes)
+
+- If Windows 3.1 support is absolutely not needed, Greenstone can be compiled with VC6:
+  - Run C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
+  - Run nmake /f win32.mak (from the gsdl directory)
+  - Run nmake /f win32.mak LOCAL_LIBRARY=1
+   (Errors compiling httpreq.c are due to VC++ -> use a different version, eg. 12.00.8804)
+
+- Otherwise, compile Greenstone with VC4 (using the STLPort package):
+  - Run C:\MSDEV\bin\VCVARS32.BAT
+  - Run nmake /f win32.mak USE_STLPORT=1 (from the gsdl directory)
+  - Run nmake /f win32.mak USE_STLPORT=1 LOCAL_LIBRARY=1
+
+- Move server.exe, cgi-bin\library.exe and cgi-bin\oaiserver.exe to bin\windows
+- Copy all files in bin\windows to $GSDLHOME/bin/windows (Linux)
+
+
+BUILDING (REPEAT AS OFTEN AS NECESSARY) -- LINUX
+
+- cvs update -dP, in gsdl directory (retrieve any new changes)
+- Run make (from top level gsdl directory)
+- In packages/wget/wget-1.9/src, delete wget, run make, rerun gcc command with -static at end
+- Run make install (from top level gsdl directory)
+- Run cgi-bin/library to check for segfaults, then copy it and cgi-bin/oaiserver into bin/linux
+- Check all executables are statically-linked: ldd bin/linux/*
+- Strip all executables: strip bin/linux/*
+
+- In the dist directory, remove any existing folders
+- Run create_distributions.pl -version_num x.xx -output_dir `pwd` -no_cols
+  - The final time you do this (are you sure??) uncomment the two "cvs tag" lines in the perl script to tag the repositories for the release.
+- Check no distribution contains non-core language interfaces (macrofiles, images)
+
+- For a Web release:
+  - Build Linux web distribution:
+    - Run Installshield X, open Greenstone Digital Library Software.uip
+      - Media -> Releases: select Linux Web Distribution and Build
+    - Close Installshield X
+    - Run finish-unix.sh linux-web
+    - Rename linux-web/disk1 folder to linux-web/gsdl-x.xx-unix 
+    - Tar and gzip gsdl-x.xx-unix folder as gsdl-x.xx-unix.tar.gz
+
+  - Build Windows web distribution:
+    - Edit Greenstone Digital Library Software.uip, replace all "storedAs">1< with "storedAs">0<
+    - Run Installshield X, open Greenstone Digital Library Software.uip
+      - Media -> Releases: select Windows Web Distribution and Build
+    - Close Installshield X
+    - Restore old Greenstone Digital Library Software.uip file
+    - Rename the windows-web/disk1/setup.exe file to gsdl-x.xx-win32.exe
+
+  - Build Source distribution:
+    - In the dist directory, tar and gzip the gsdl-x.xx-src directory as gsdl-x.xx-src.tar.gz
+
+- For a CD-ROM release:
+  - Build Linux and Windows CD-ROM distributions:
+    - Run Installshield X, open Greenstone Digital Library Software.uip
+      - Media -> Releases: select Linux CD-ROM Distribution and Build
+      - Media -> Releases: select Windows CD-ROM Distribution and Build
+    - Close Installshield X
+    - Run merge-cds.pl
+    - Run finish-unix.sh linux-cd
+    - Zip up contents of merged-cd/disk1 directory, copy to Windows, then write to CD-ROM
+      - Don't forget any extra files for the CD (cd-files)
+
+- Test ad nauseum!
+
+
+FINALISATION (DO ONCE) -- CD-ROM RELEASE
+
+- !! INCOMPLETE !!
+- Write data to CD
+  - Use Sonic RecordNow DX
+  - Make sure CD-ROMs are created as Joliet CD-ROMs (this should be the default)
+  - Add in any extra stuff required (cd-files folder)
+
+- To make an ISO image: ensure CD is finalized when written. Linux: dd if=/dev/cdrom of=cd.iso
+
+
+FINALISATION (DO ONCE) -- WEB RELEASE
+
+- Upload binaries and ChangeLog to sourceforges ftp site: 
+  - ftp upload.sourceforge.net (username is "anonymous", password is your e-mail address)
+    ftp> cd incoming
+    ftp> bin
+    ftp> put gsdl-x.xx-unix.tar.gz
+    ftp> put gsdl-x.xx-win32.exe
+    ftp> put gsdl-x.xx-src.tar.gz
+    ftp> put gsdl-x.xx-ChangeLog.txt (rename the ChangeLog created by create_distributions: in dist/gsdl-x.xx-src/gsdl/ChangeLog)
+- Add releases to sourceforge:
+  - login, file releases, add releases. type in release notes, select files from ones you have uploaded, choose some attributes (check previous release for values), notify all watchers.
+- Add ChangeLog to new Source release
+  - edit the release and add the file 
+- Advertise (say GNU/Linux instead of Linux!):
+  - E-mail mailing lists with release notice
+  - Add item to http://www.greenstone.org - new item, and change the download paths in base.dm
+  - Open Source for Libraries: http://www.oss4lib.org - post a message
+  - FreshMeat: http://freshmeat.net - log in and add a release
+- Take the updated DistDates file and commit it back into /home/nzdl/for-distributions
