Developing Freeciv |
---|
Freeciv is an open source project, licensed under the GNU General Public License version 2. The source code and other files necessary to build the project are publicly available for download, examination and experimentation.
The Freeciv source code repository uses the open source Git version control system; it is currently hosted on github.com. Git client software is available free for a wide variety of systems. Documentation is available; you may also find tutorials ([1], [2]) useful. (If you're used to Subversion, you might find this useful. Github can be also accessed by SVN clients.)
The Freeciv project can be found on github.com/freeciv.
The Freeciv server and Freeciv desktop clients is found on github.com/freeciv/freeciv.
Freeciv-web and Freeciv WebGL is found on github.com/freeciv/freeciv-web.
Fetching the latest source code[]
The following command retrieves the latest checked-in Freeciv source code:
git clone https://github.com/freeciv/freeciv
This will create a new directory called freeciv containing the most recent development version (main), sometimes referred to as trunk. It will also fetch a copy of the entire development history, which is fairly substantial (over 250Mbyte). (It is possible to tell Git to fetch less history if you are short of disc space or bandwidth.)
Once the code has been successfully checked out, going into the freeciv directory and typing:
git pull
will update the source code to reflect any changes in the main repository since the last checkout or update.
Note that this only provides read-only access the the source code; changes cannot be submitted except by project members, using a different method. See more details.
This checks out the latest development version, where most changes happen. There are also multiple BRANCHes that are usually more stable. Any changes to main will not affect an already established branch.
Fetching older versions[]
The source code for previous versions of Freeciv can be retrieved using a Git tag. You can either fetch it from the main repository, or if you already cloned the full history, you can check it out from your local copy.
For example, Freeciv version 2.5.7 can be retrieved in this way:
git clone -b R2_5_7 https://github.com/freeciv/freeciv freeciv-2.5.7
or from an existing local checkout:
git clone -b R2_5_7 ./freeciv freeciv-2.5.7
(You can use the same method to check out a branch other than main; e.g., -b S3_0.)
Examples of available tags include:
Freeciv version | Git tag | Date tagged |
---|---|---|
1.5.3 | freeciv153 | 9 March 1998 |
1.6.1 | R1_6_1 | 3 June 1998 |
1.14.0 | R1_14_0 | 17 January 2003 |
1.14.2 | R1_14_2 | 10 September 2004 |
2.0.0 | R2_0_0 | 16 April 2005 |
2.0.10 | R2_0_10 | 30 June 2008 |
2.1.0 | R2_1_0 | 27 October 2007 |
2.1.11 | R2_1_11 | 23 January 2010 |
2.2.0 | R2_2_0 | 21 February 2010 |
2.2.7 | R2_2_7 | 16 July 2011 |
2.3.0 | R2_3_0 | 8 August 2011 |
2.3.5 | R2_3_5 | 8 February 2014 |
2.4.0 | R2_4_0 | 14 September 2013 |
2.4.5 | R2_4_5 | 15 August 2015 |
2.5.0 | R2_5_0 | 14 March 2015 |
2.5.7 | R2_5_7 | 13 May 2017 |
A full list can be obtained by…
git tag
…in an existing checkout, or by consulting the Github web interface. Likewise branches can be listed by…
git branch -a
…or by visiting the corresponding Github page.
SourceForge[]
Tarballs of the sources (*.tar.xz, *.tar.bz2, or *.zip) and Windows binaries for public releases are also available on SourceForge.