source: for-distributions/trunk/creating-a-release.txt@ 14507

Last change on this file since 14507 was 11759, checked in by kjdon, 18 years ago

this file is no longer used - the info is on the wiki instead. I have copied the current contents of the wiki page into here as a kind of backup

  • Property svn:keywords set to Author Date Id Revision
File size: 20.6 KB
Line 
1Preparation (do once) -- Linux
2
3 * work in your research partition (create a distribution version rather than using the normal gsdl working version), not home directory.
4 * cvs checkout -P gsdl (make sure $CVSROOT and $CVS_RSH are set)
5 * Run source setup.bash, in gsdl directory
6 * Set version number (GSDL_VERSION) in lib/gsdlconf.h
7 * Set version number for VERSION file near end of Install.sh, and commit
8 * Make "dist" directory as a sibling (not child!!) of gsdl
9
10
11 * cvs checkout -P gli, in gsdl directory
12 * Update AboutDialog.Date in classes/dictionary*.properties, and commit
13 o Get month strings from within the file (Dates.*)
14 * Set PROGRAM_VERSION in src/org/greenstone/gatherer/util/Utility.java, and commit
15 * Set Configuration version in classes/xml/config.xml and configRemote.xml, and commit
16
17
18 * Change version numbers and dates in /home/nzdl/gsdl-docs/README*.TXT
19 o Get month strings from the files /home/nzdl/for-distributions/dates.*
20 * Change version number in /home/nzdl/gsdl-docs/Support.htm
21 * Check PDF manuals are in /home/nzdl/gsdl-docs/docs
22
23
24 * Copy /home/nzdl/for-distributions/bin/windows to become $GSDLHOME/bin/windows
25
26 * In $GSDLHOME:
27 * Add "-static" to LDFLAGS in configure.in (LDFLAGS=-static). no space!!!
28 * Run autoconf configure.in > configure
29 * Run ./configure
30 * Fix up non-statically linked packages by adding "-static" to LDFLAGS in:
31 o packages/expat/expat-1.95.8/Makefile
32 o packages/isis-gdl/Makefile
33 o packages/pdftohtml/pdftohtml_gs/src/Makefile
34 o packages/wv/wv-gs/Makefile
35 o packages/xlhtml/xlhtml-0.4.9.0/xlhtml/Makefile
36 o packages/xlhtml/xlhtml-0.4.9.0/ppthtml/Makefile
37 * Add "-static" to the end of the "rtftohtml" rule in packages/rtftohtml/rtftohtml_src/Makefile
38
39look for this line and add to the end:
40
41rtftohtml$(EXEEXT): $(LIBRARIES) $(OBJS)
42 $(CC) $(CFLAGS) $(OBJS) $(LIBRARIES) -o rtftohtml$(EXEEXT)
43
44 * Using an existing up-to-date Greenstone installation, build the demo collection, and copy to collect/demo
45
46
47 * Get the Greenstone Installshield project:
48 o Copy /home/nzdl/for-distributions/installers/gsdl directory to somewhere on your research partition. The parent directory is the installer directory mentioned below.
49 o Edit the <installer-dir>/gsdl/Greenstone Digital Library Software.uip file and change any absolute paths as needed.
50 * Edit the paths in the installer: edit /home/nzdl/installshieldX/alias.properties
51 o Set GSDL_DISTRIBUTION_SOURCE to .../dist/gsdl-x.xx-cdrom (dist is the directory you created earlier)
52 o Set GSDL_WEB_DISTRIBUTION_EXTRAS to .../dist/gsdl-x.xx-unix
53 o Set INSTALLERS_DIR to the installer directory from above
54
55 * Run Installshield X (/home/nzdl/installshieldX/InstallShieldUniversal)
56 o Using "open existing project", open <installer-dir>/gsdl/Greenstone Digital Library Software.uip
57 o Set Installation Information -> General Information: Version property
58 o Change the version numbers for Text_GSDL_Version in Additional Tools -> String Table -> MyStrings. Do this for English, French, Spanish, Russian. (Could this use the Version property ???)
59 * Save and exit for now.
60
61[edit]
62UNESCO cdroms only
63
64 * Core languages are English (en), French (fr), Spanish (es) and Russian (ru).
65 * Edit $GSDLHOME/collect/demo/etc/collect.cfg and remove non-core language strings
66 o Overwrite /home/nzdl/for-distributions/collect/demo/etc/collect.cfg and commit if different
67 * Edit $GSDLHOME/gli/classes/xml/languages.xml and remove mds="true" and gli="true" from non-core languages
68 * Overwrite /home/nzdl/for-distributions/gli/classes/xml/languages.xml and commit if different
69 * Check the /home/nzdl/for-distributions/etc/main.cfg against gsdl/etc/main.cfg - update the one in /home/nzdl if needed. (should be the same except language lines and language macro files commented out.)
70
71 * Note: if you subsequently want to create a normal release, you need to delete $GSDLHOME/collect/demo/etc/collect.cfg and cvs update it to get the other languages back.
72
73[edit]
74Preparation (do once) -- Windows (kohekohe)
75
76 * Run CMD.exe
77 * Run H:\setupenv.bat, or (equivalently):
78 o Set PATH to include CVS and SSH executables (H:\bin)
79 o Set CVSROOT=:ext:<username>@cvs.scms.waikato.ac.nz:/usr/local/global-cvs/gsdl-src
80 o Set CVS_RSH=ssh
81 o Set EDITOR=edit
82
83
84 * cvs checkout -P gsdl (requires about 120MB once compiled)
85 * Set version number (GSDL_VERSION) in gsdl\lib\gsdlconf.h
86 * Unzip the Crypt, Expat, GDBM and STLPort packages in gsdl\packages\windows
87
88
89 * cvs checkout -P winbin
90 * Copy winbin\bin to become gsdl\bin\windows (i.e. Copy the bin directory from winbin into
91
92gsdl\bin\ and rename it to windows)
93
94 * Delete winbin directory
95
96[edit]
97Preparation (do once) -- Mac OS X (shuttle)
98
99 * Start a Terminal (Finder: Go -> Utilites)
100 * export CVSROOT=:ext:<username>@cvs.scms.waikato.ac.nz:/usr/local/global-cvs/gsdl-src
101 * export CVS_RSH=ssh
102
103 * cvs checkout -P gsdl
104 * Set version number (GSDL_VERSION) in gsdl/lib/gsdlconf.h
105 * In the gsdl directory, run ./configure --with-gdbm=<gdbm-dir> (gdbm dir e.g. /Users/kjdon/gdbm-1.8.3)
106 * In the following Makefiles, replace "-L/Users/kjdon/gdbm-1.8.3/lib -lgdbm" with "/Users/kjdon/gdbm-1.8.3/lib/libgdbm.a" in the specified variable
107 o src/recpt, GDBM_LIBS
108 o src/oaiservr, GDBM_LIBS
109 o src/db2txt, LIBS
110 o src/txt2db, LIBS
111 * In the following Makefiles, replace "-L../../packages/expat/lib -lexpat" with "../../packages/expat/lib/libexpat.a"
112 o src/recpt, LC_LIBS
113 o src/oaiservr, LIBS
114
115 * Create the Mac OS version of the gdbm database file for the demo collection (demo.bdb). Either:
116 o Using an existing up-to-date Greenstone installation, build the demo collection, and copy index/text/demo.bdb to gsdl/collect/demo/index/text (Linux)
117 o Or on Linux, in the demo collection, run "db2txt index/text/demo.ldb > out.txt", copy the out.txt file to the Mac, and run "txt2db demo.bdb < out.txt", then copy the demo.bdb file to gsdl/collect/demo/index/text/demo.dbd on Linux.
118
119[edit]
120Building (repeat as often as necessary) -- Mac OS X (shuttle)
121
122 * cvs update -dP, in gsdl directory (retrieve any new changes)
123
124 * Run make
125 * Run make install
126 * In cgi-bin, run library to check for segfaults, then copy it and oaiserver into ../bin/darwin
127 * Run otool -L bin/darwin/* to check that no executables (db2txt, library, oaiserver, txt2db) are linked to local packages. (Its ok to link against libraries in /usr/lib/.)
128 * Run strip bin/darwin/*
129 * Copy all files in bin/darwin to $GSDLHOME/bin/darwin (Linux)
130
131[edit]
132Building (repeat as often as necessary) -- Windows (kohekohe)
133
134 * cvs update -dP, in gsdl directory (retrieve any new changes)
135
136 * If Windows 3.1 support is absolutely not needed, Greenstone can be compiled with VC6:
137 o (Errors compiling httpreq.c are due to VC++ -> use a different version, eg. 12.00.8804)
138
139 C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
140 nmake /f win32.mak
141 nmake /f win32.mak LOCAL_LIBRARY=1
142
143 * Otherwise, compile Greenstone with VC4 (using the STLPort package):
144
145 C:\MSDEV\bin\VCVARS32.BAT
146 nmake /f win32.mak GSDL_VC4=1
147 nmake /f win32.mak GSDL_VC4=1 LOCAL_LIBRARY=1
148
149 * Move server.exe, cgi-bin\library.exe and cgi-bin\oaiserver.exe to bin\windows
150 * Copy all files in bin\windows to $GSDLHOME/bin/windows (Linux)
151
152[edit]
153Building (repeat as often as necessary) -- Linux
154
155 * cvs update -dP, in gsdl directory (retrieve any new changes)
156 * Run make (from top level gsdl directory)
157 * In packages/wget/wget-1.9/src, delete wget, run make, rerun gcc command with -static at end (and ignore the warnings)
158 * Run make install (from top level gsdl directory)
159 * In cgi-bin, run library to check for segfaults, then copy it and oaiserver into ../bin/linux
160 * Check all executables are statically-linked: ldd bin/linux/* (ignore mgquery_old)
161 * Strip all executables: strip bin/linux/*
162
163
164 * GLI will be compiled by create_distributions.pl (it runs makegli.sh). But you need to make sure that it compiles with Java 1.5. If you do this in your release version, run clean.sh afterwards.
165
166
167 * In the gsdl directory, run 'source setup.bash' if it hasn't already been run.
168 * In the dist directory, remove any existing folders
169 * Run /home/nzdl/for-distributions/bin/script/create_distributions.pl -version_num x.xx -output_dir `pwd` -no_cols
170 o Before running this the first time, make sure you have done the Mac and Windows building at least once.
171 o IMPORTANT: if you are generating a UNESCO CDROM release, use the -unesco option. This uses modified languages.xml, main.cfg, demo collect.cfg with only 4 languages
172 o You can use the -NoChangeLog option while testing so the changelog is not generated each time.
173 o This checks out greenstone into /tmp/gsdl and copies it over to ...dist. If you kill the process before it has been copied, you'll need to delete this directory, otherwise it will have a hissy fit next time.
174 o NOTE: if you need to remake the installer with a couple of modified files, but not with all the source as it currently is:
175 + Change the tag on the modified files: cvs tag -F tagname
176 + Edit create_distributions.pl: want to export from the tag, not from 1 second ago. (x2, gsdl and gli)
177 * Check no distribution contains non-core language interfaces (macrofiles, images)
178
179[edit]
180Web release
181[edit]
182Linux and MacOSx web distributions
183
184 * Run Installshield X, open Greenstone Digital Library Software.uip
185 o Media -> Releases: select Linux Web Distribution and Build
186 o Media -> Releases: select Mac OS X Web Distribution and Build
187 * Close Installshield X
188
189 * Run finish-linux.sh linux-web (in <installer-dir>/gsdl)
190 * Rename linux-web/disk1 folder to linux-web/gsdl-x.xx-unix
191 * Tar and gzip the gsdl-x.xx-unix folder as gsdl-x.xx-unix.tar.gz (tar czvf gsdl-x.xx-unix.tar.gz gsdl-x.xx-unix/)
192
193 * Run finish-macOSx.sh macOSx-web
194 * Rename macOSx-web/disk1 folder to macOSx-web/gsdl-x.xx-macOSx
195 * Tar and gzip the gsdl-x.xx-macOSx folder as gsdl-x.xx-macOSx.tar.gz
196
197[edit]
198Windows web distribution
199
200 * Edit Greenstone Digital Library Software.uip, replace all "storedAs">1< with "storedAs">0< (in emacs, Alt-X query-replace, then ! for all)
201 * Run Installshield X, open Greenstone Digital Library Software.uip
202 o Media -> Releases: select Windows Web Distribution and Build
203 * Close Installshield X
204 * Restore old Greenstone Digital Library Software.uip file
205 * Rename the windows-web/disk1/setupwin32.exe file to gsdl-x.xx-win32.exe
206
207[edit]
208Source distribution
209
210 * In the dist directory, tar and gzip the gsdl-x.xx-src directory as gsdl-x.xx-src.tar.gz
211
212[edit]
213CD-ROM release
214[edit]
215Linux and Windows CD-ROM distributions
216
217 * Run Installshield X, open Greenstone Digital Library Software.uip
218 o Media -> Releases: select Linux CD-ROM Distribution and Build
219 o Media -> Releases: select Windows CD-ROM Distribution and Build
220 * Close Installshield X
221 * Run finish-windows.sh windows-cd
222 * Run merge-cds.pl
223 * Run finish-linux.sh merged-cd
224 * Zip up contents of merged-cd/disk1 directory, copy to Windows, then write to CD-ROM
225 o Don't forget any extra files for the CD (cd-files)
226 + which are for tutorial versions, which for all versions??
227
228packages/ImageMagick-5.5.7-16.tar.gz
229 ImageMagick-5.5.7-Q8-windows-dll.exe
230 j2re-1_4_2_07-linux-i586.bin
231 j2re-1_4_2_07-windows-i586-p.exe
232extras/ ??
233Greenstone Language pack/glp-x.xx-linux.bin
234 glp-x.xx-win32.exe
235tutorial/sample_files
236 Greenstone tutorial exercises.pdf
237workshop_1day_jun2004
238workshop_4day_sep2005
239workshop_files
240
241
242[edit]
243All
244
245 * Test ad nauseum!
246 * On windows, install into somewhere with spaces in the path
247
248[edit]
249Finalisation (do once) -- CD-ROM Release
250
251 * Write data to CD
252 o Use Sonic RecordNow DX, but don't use the Wizard. Click the Data icon at the top.
253 o Under Options, for CD:
254 + Recording type select "Disc At Once (Closed)" - this finalises the CD.
255 + Make sure CD-ROMs are created as Joliet CD-ROMs (this should be the default)
256 o Set the volume label for the CD: GSDL x.xx ???
257 o Add in any extra stuff required (cd-files folder)
258
259[edit]
260UNESCO CDs
261
262 * To make an ISO image: ensure CD is finalized when written (see above)
263 o On Linux: put the cd in the drive, then run "dd if=/dev/cdrom of=cd.iso"
264 o Rename cd.iso to whatever is appropriate:
265 + unesco-greenstone-cd-2006.iso
266 o Zip up the iso image and upload to [email protected]:/var/ftp/pub/unesco
267
268 * Downloading instructions for unesco:
269
270 FTP site: sadl.uleth.ca
271 Username: anonymous
272 Password: your e-mail address
273 Filename: pub/unesco/unesco-greenstone-cd-2006.iso.zip
274
275[edit]
276Finalisation (do once) -- Web Release
277
278 * Upload binaries and ChangeLog to sourceforges ftp site:
279 o ftp username is "anonymous", password is your e-mail address
280 o rename the ChangeLog created by create_distributions (dist/gsdl-x.xx-src/gsdl/ChangeLog) to gsdl-x.xx-ChangeLog.txt
281
282 ftp upload.sourceforge.net
283 ftp> cd incoming
284 ftp> bin
285 ftp> put gsdl-x.xx-unix.tar.gz
286 ftp> put gsdl-x.xx-win32.exe
287 ftp> put gsdl-x.xx-macOSx.tar.gz
288 ftp> put gsdl-x.xx-src.tar.gz
289 ftp> put gsdl-x.xx-ChangeLog.txt
290
291 * Add releases to sourceforge:
292 o login, go to the Greenstone project (http://sourceforge.net/projects/greenstone), select Admin, select File Releases
293 o Click on add releases for the appropriate one.
294 o Release name is the version number e.g. 2.60. For unstable releases, add (Beta), eg 2.61 (Beta)
295 o Type in release notes (or upload release notes file), check 'preserve preformat', and click Submit
296 o Select files from ones you have uploaded, and add
297 o Set file attributes (check previous release for values), and click update
298 o Notify all watchers
299 o Hide old releases unless doing an unstable release
300 + Edit Release, set the status to Hidden, and Submit.
301 o The ChangeLog goes as a file into the Source release. Don't add as change notes.
302 * Update http://www.greenstone.org:
303 o Add a new item to home.dm
304 o change the download paths in base.dm
305 * E-mail mailing lists with release notice (greenstone-users and greenstone-devel)
306 o Skim the ChangeLog to find the important changes.
307 o Send the message to each mailing list separately, that way when people reply, it won't go to both lists.
308 * Take the updated DistDates file and commit it back into /home/nzdl/for-distributions
309 * Tag the repository - in the gsdl directory, run
310
311 cvs tag -F gsdl-x_xx-distribution
312
313 * If you have made changes to the Installshield project, copy the <installer-dir>/gsdl directory back to /home/nzdl/for-distributions/installers/gsdl
314
315
316 * Advertise (say GNU/Linux instead of Linux!):
317 o Open Source for Libraries: http://www.oss4lib.org - post a message
318 o FreshMeat: http://freshmeat.net - log in and add a release
319
320[edit]
321Export to CD-ROM package
322
323 * Create a new directory in your release directory, e.g. export
324 * Copy the following files/directories from the gsdl/bin/windows directory into export:
325
326Win32s net16 net32 Setup.exe gssetup.exe server.exe
327
328 * Copy /home/nzdl/for-distributions/export-README.txt to export/README.txt
329 * Edit the README.txt file (change the distribution number)
330 * Zip up the contents of the export directory (only the contents, don't include the export directory):
331
332cd export
333zip -r gsdl-x.xx-export.zip *
334
335 * Upload to sourceforge like the greenstone ones.
336
337[edit]
338Greenstone Language Pack (old, no longer needed)
339
340 * Checkout a fresh copy of the latest release version of greenstone, and add the non-core-images:
341
342 cvs co -r gsdl-x_xx-distribution gsdl
343 cd gsdl/images
344 cvs co gsdl-non-core-images
345
346 * Edit /home/nzdl/installshieldX/alias.properties
347 o Set GLP_SOURCE to the gsdl directory from above
348 * Copy the glp installer project from /home/nzdl/for-distributions/installers/glp to your previous installers directory
349 * Edit the <installer-dir>/glp/Greenstone Language Pack.uip file and change any absolute paths as needed
350
351
352 * Run InstallShield X (/home/nzdl/installshieldX/InstallShieldUniversal)
353 * Using "open existing project", open <installer-dir>/glp/Greenstone Language Pack.uip
354 * Edit version numbers in Installation Information -> General Information: Name and Version properties
355 * Edit version numbers in Media -> Releases -> Default -> Distributions -> Linux/Mac/Windows distributions -> File Name
356 * If new languages have been added since the last release, need to update the installer.
357 o Check the gsdl ChangeLog to see whether new languages were added.
358 o Organisation -> Installation Design: add the new interface
359 * Media -> Releases: select the default build configuration, and Build
360
361 * The releases are output in <installer-dir>/glp/default/disk1
362
363 * Upload to sourceforge
364 * email the mailing list
365 * add a new item to greenstone.org and update download link
366
367
368[edit]
369Greenstone Classic Interface Pack
370
371 * do we need to do that after 2.63?? Will the images have changed??
372
373cvs export gsdl-non-core-images-repository
374cd gsdl-non-core-images-repository
375zip -r gcip-x.xx.zip *
376
377 * upload the zip file to sourceforge, and add a new release to the classic interface package
378
379[edit]
380Tutorial Exercises
381
382 * When these change, need to create a new release of them
383
384cvs co gsdl-tutorials
385cd gsdl-tutorials
386
387 * edit the xsl files, and set mode to cd
388
389./generate_html.sh
390cd ../
391zip -r gsdl-tutorial-exercises-monYEAR.zip gsdl-tutorials/tutorial_files gsdl-tutorials/en gsdl-tutorials/fr gsdl-tutorials/es gsdl-tutorials/ru gsdl-tutorials/index.html
392
393 * if the sample files have changed, make a new release of those.
394 o all folders except beatles go into gsdl-tutorial-sample-files-monYEAR.zip
395 o beatles folder goes into gsdl-tutorial-multimedia-files-monYEAR.zip
396
397 * On sourceforge, the release name is Month Year, eg "March 2006"
398
399 * If you want to regenerate the version on the wiki, see this page
400
401[edit]
402Notes
403
404 * Linux installer (others too?) doesn't like being run from a path with spaces in it. But its OK installing greenstone into a path with spaces.
405 o You get errors like:
406
407(Feb 15, 2006 11:36:15 AM), Install, com.installshield.product.actions.Files, err, java.io.IOException:
408File does not exist: /home/kjdon/istemp22540046113422/COPYING
409STACK_TRACE: 20
410java.io.IOException: File does not exist: /home/kjdon/istemp22540046113422/COPYING
411 at com.installshield.archive.ISMPFileURLStreamHandler.openConnection(Unknown Source)
412 at java.net.URL.openConnection(URL.java:896)
413 at java.net.URL.openStream(URL.java:913)
414 at com.installshield.wizard.service.AbstractWizardServices.getSpannedResource(Unknown Source)
415 at com.installshield.wizard.service.AbstractWizardServices.getSpannedResource(Unknown Source)
416 at com.installshield.wizard.service.AbstractWizardServices.getExternalResource(Unknown Source)
417 at com.installshield.product.ProductAction.getExternalResource(Unknown Source)
418 at com.installshield.product.actions.Files.getResourceInputStream(Unknown Source)
419 at com.installshield.product.actions.Files.install(Unknown Source)
420 at com.installshield.product.service.product.PureJavaProductServiceImpl.installProductAction(Unknown Source)
421 at com.installshield.product.service.product.PureJavaProductServiceImpl$InstallProduct.
422 getResultForProductAction(Unknown Source)
423 at com.installshield.product.service.product.InstallableObjectVisitor.visitComponent(Unknown Source)
424 at com.installshield.product.service.product.InstallableObjectVisitor.visitInstallableComponents(Unknown Source)
425 at com.installshield.product.service.product.InstallableObjectVisitor.visitProductBeans(Unknown Source)
426 at com.installshield.product.service.product.PureJavaProductServiceImpl$InstallProduct.install(Unknown Source)
427 at com.installshield.product.service.product.PureJavaProductServiceImpl$Installer.execute(Unknown Source)
428 at com.installshield.wizard.service.AsynchronousOperation.run(Unknown Source)
429 at java.lang.Thread.run(Thread.java:534)
Note: See TracBrowser for help on using the repository browser.