Table of Contents

Source Releases

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)

Arch & Maps

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

Client

Start in branches/1.x

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

Server

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
  cd lib
  ln -s ../../../../arch/tags/1.50.0 arch
  make collect
   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

Final Notes

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.

Binary Releases

Client RPM Files

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.

Windows

See also microsoft_c_windows for requirements.

Client
Server
Map installer