greenstone.org greenstone wiki greenstone trac planet greenstone

root/for-distributions/trunk/creating-a-release.txt

http://svn.greenstone.org/for-distributions/trunk/creating-a-release.txt
Revision 11759, 20.6 kB (checked in by kjdon, 3 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
Line 
1 Preparation (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
39 look for this line and add to the end:
40
41 rtftohtml$(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]
62 UNESCO 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]
74 Preparation (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
92 gsdl\bin\ and rename it to windows)
93
94     * Delete winbin directory
95
96 [edit]
97 Preparation (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]
120 Building (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]
132 Building (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]
153 Building (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]
180 Web release
181 [edit]
182 Linux 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]
198 Windows 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]
208 Source 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]
213 CD-ROM release
214 [edit]
215 Linux 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
228 packages/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
232 extras/ ??
233 Greenstone Language pack/glp-x.xx-linux.bin 
234                          glp-x.xx-win32.exe
235 tutorial/sample_files
236          Greenstone tutorial exercises.pdf
237 workshop_1day_jun2004
238 workshop_4day_sep2005
239 workshop_files
240
241
242 [edit]
243 All
244
245     * Test ad nauseum!
246     * On windows, install into somewhere with spaces in the path
247
248 [edit]
249 Finalisation (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]
260 UNESCO 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 gsdl@sadl.uleth.ca:/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]
276 Finalisation (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]
321 Export 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
326 Win32s 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
332 cd export
333 zip -r gsdl-x.xx-export.zip *
334
335     * Upload to sourceforge like the greenstone ones.
336
337 [edit]
338 Greenstone 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]
369 Greenstone Classic Interface Pack
370
371     * do we need to do that after 2.63?? Will the images have changed??
372
373 cvs export gsdl-non-core-images-repository
374 cd gsdl-non-core-images-repository
375 zip -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]
380 Tutorial Exercises
381
382     * When these change, need to create a new release of them
383
384 cvs co gsdl-tutorials
385 cd gsdl-tutorials
386
387     * edit the xsl files, and set mode to cd
388
389 ./generate_html.sh
390 cd ../
391 zip -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]
402 Notes
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:
408 File does not  exist: /home/kjdon/istemp22540046113422/COPYING
409 STACK_TRACE: 20
410 java.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 browser.