Directions below have 1.50.0 as the example release. Directions of commands below presume you start in the top level SVN directory (the one that contains the arch, client, maps, server) for each phase (arch, client, maps, server)
The process for both the arch and maps directory is the same - the only difference is the name of the files/paths.
cd maps/trunk svn2cl.sh
svn copy https://crossfire.svn.sourceforge.net/svnroot/crossfire/arch/trunk \ https://crossfire.svn.sourceforge.net/svnroot/crossfire/arch/tags/1.50.0 -m "1.50.0 branch"
svn update arch/tags
vi arch/tags/1.50.0/CHANGES svn commit arch/tags/1.50.0/CHANGES
cd arch/tags rm -f arch ln -s 1.50.0 arch gtar -chvz --exclude=.svn -f crossfire-1.50.0.arch.tar.gz arch
gunzip -c crossfire-1.50.0.maps.tar.gz | bzip2 -c9 > crossfire-1.50.0.maps.tar.bz2
Start in branches/1.x
yes for all Build and Scripting options before proceeding to the next step.svn commit to commit configure, Changelog, crossfire-client.spec changes.svn copy https://crossfire.svn.sourceforge.net/svnroot/crossfire/client/trunk \ https://crossfire.svn.sourceforge.net/svnroot/crossfire/client/tags/1.50.0 -m "1.50.0 branch"
cd ../../tags svn update
Changes for 1.50.0 be at the top.autoreconf; automake –add-missingmake dist. This will create a crossfire-client-1.50.0.tar.gz in the current directory.gtar xvfz crossfire-client-1.50.0.tar.gz cd crossfire-client-1.50.0 ./configure -prefix=/tmp/test make -s (make sure no errors) make install (will install where specified above)
cd /tmp/test/bin ./crossfire-client-gtk2
cd rm -rf /tmp/test rm -rf <path>/crossfire-client-1.50.0
svn copy https://crossfire.svn.sourceforge.net/svnroot/crossfire/sounds/trunk \ https://crossfire.svn.sourceforge.net/svnroot/crossfire/sounds/tags/1.50.0 -m "1.50.0 branch"
rm -f sounds ln -s 1.50.0 sounds gtar -chvz --exclude=.svn -f crossfire-client-sounds-1.50.0.tar.gz sounds
cd lib; adm/collect_images.pl -archivemv crossfire-images.tar crossfire-client-images-1.50.0.targzip -v9 crossfire-client-images-1.50.0.tarStart in server/trunk
svn copy https://crossfire.svn.sourceforge.net/svnroot/crossfire/server/trunk \ https://crossfire.svn.sourceforge.net/svnroot/crossfire/server/tags/1.50.0 -m "1.50.0 branch"
cd ../../tags svn update
Changes for 1.50.0 be at the top.automake –add-missing and libtoolizesvn commit to commit configure, Changelog, configure.ac changes.cd lib ln -s ../../../../arch/tags/1.50.0 arch make collect
make distcheck from top level directory. This will pack up the distribution and then unpack it and compile it - a pretty good complete test.gtar xvfz crossfire-1.50.0.tar.gz cd crossfire-1.50.0 ./configure -prefix=/tmp/test make -s (make sure no errors) make install (will install where specified above)
cd /test/share/crossfire ln /path/to/maps maps * Run the server, connect with a client, and make sure you can log in and walk around scorn (basic not completely dead test) /test/bin/crossfire (in another window) gcfclient (create character, walk around scorn briefly)
rm -rf /tmp/test rm -rf <path>/crossfire-1.50.0
After all the components are bundled up, an official announcement is sent to crossfire-announce@lists.real-time.com. I usually use the announcement of the last release as a template.
sum * and remove any extra entries that shouldn't be there.md5sum *Building the RPM is pretty straightforward. It does require a system that actually uses RPM (like redhat). Also, to some extent, the RPM is tied to the system it is built on, in terms of architecture and dependencies. For example, to build the 32 bit binaries, I boot my secondary system that is only 32 bit.
The crossfire-client.spec file requires the crossfire-client crossfire-client-sounds, crossfire-client-images tarballs to be present in a /export/home/crossfire/Crossfire directory (_sourcedir). /export/home/crossfire/RPM-TOP must also exist and contain a BUILD subdirectory. If this is not satisfactory, the %define statements for _sourcedir _srcrpmdir, _rpmdir, and _topdir may need to be locally altered to suite, but do not commit changes to SVN as the SVN settings no doubt support the actual directories used by the official client release manager.
rpmbuild -ba crossfire-client.specSee also Microsoft Windows Compile Guide for requirements.
gtk/win32/GTKClient.dswgtk/win32/config.h to set version number (line 92)gtk/win32/Win32Changes.txtgtk/win32/gtkclient.nsicrossfire-client-1.50.0.exeWin32Changes.txt to readme part, Changelog to changelog partmake_win32/crossfire32.dswinclude/win32.h to change version number (line 13)ReleaseLog build modecrossfire32 projectplugin_python projectplugin_animator projectmake_win32/Release_notes.txt filemake_win32/cfserver.nsicrossfire-server-1.50.0.exeChangelog to changelog part, Release_notes.txt to readmemake_win32/make_maps_nsi.pl file (syntax: make_maps_nsi.pl “Big World maps” ..\..\share\maps if you installed maps in share)crossfire-server-bigworld-maps-1.50.0.exe