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-missing
make 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 -archive
mv crossfire-images.tar crossfire-client-images-1.50.0.tar
gzip -v9 crossfire-client-images-1.50.0.tar
Start 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 libtoolize
svn 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.spec
See also microsoft_c_windows for requirements.
gtk/win32/GTKClient.dsw
gtk/win32/config.h
to set version number (line 92)gtk/win32/Win32Changes.txt
gtk/win32/gtkclient.nsi
crossfire-client-1.50.0.exe
Win32Changes.txt
to readme part, Changelog to changelog partmake_win32/crossfire32.dsw
include/win32.h
to change version number (line 13)ReleaseLog
build modecrossfire32
projectplugin_python
projectplugin_animator
projectmake_win32/Release_notes.txt
filemake_win32/cfserver.nsi
crossfire-server-1.50.0.exe
Changelog
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