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:@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