= Downloading GRASS Source = (Note: for binary installers, go [https://grass.osgeo.org/download/ here]) [[TOC]] == Packaged Source == The source code of all official releases is available for download from: * For a release download list (GRASS GIS 5.x to 7.x), see '''[wiki:Release]''' overview page * Download at http://grass.osgeo.org/download/ or directly from * http://grass.osgeo.org/grass76/source/ (upcoming) * http://grass.osgeo.org/grass74/source/ (current) * http://grass.osgeo.org/grass72/source/ (old) * http://grass.osgeo.org/grass70/source/ (very old) * http://grass.osgeo.org/grass64/source/ (historical) * http://grass.osgeo.org/grass54/source/ (historical) == Weekly snapshots == Source code tarballs are available from here: * http://grass.osgeo.org/grass77/source/snapshot/ (development) * http://grass.osgeo.org/grass76/source/snapshot/ (upcoming) * http://grass.osgeo.org/grass74/source/snapshot/ (stable) * http://grass.osgeo.org/grass72/source/snapshot/ (old stable) * http://grass.osgeo.org/grass70/source/snapshot/ (very old stable) * http://grass.osgeo.org/grass64/source/snapshot/ (historical) == Subversion GRASS main source code repository == The GRASS GIS software lives in the [http://subversion.apache.org/ Subversion] (SVN) source control system. It can be browsed online using the [http://trac.osgeo.org/grass/browser Browse Source] button on the top bar. With the subversion client software installed, various versions can be accessed: === GRASS 7.7 === ''(used to have the pseudo-name 7.5.svn till August 2018)'' ''(used to have the pseudo-name 7.3.svn till November 2017)'' The '''development branch''' ('''trunk''') version of '''GRASS 7''' can be extracted using the command: {{{ svn checkout https://svn.osgeo.org/grass/grass/trunk grass7_trunk #Subsequent updates: svn up }}} === GRASS 7.6 === To extract the current '''7.6.x release branch''' version ('''upcoming stable'''), use the command: {{{ svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_7_6 grass76_release #Subsequent updates: svn up }}} === GRASS 7.4 === To extract the current '''7.4.x release branch''' version ('''current stable'''), which continuously receives bugfixes, use the command: {{{ svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_7_4 grass74_release #Subsequent updates: svn up }}} === GRASS 7.2 === To extract the current '''7.2.x release branch''' version ('''stable'''), which continuously receives bugfixes, use the command: {{{ svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_7_2 grass72_release #Subsequent updates: svn up }}} === GRASS 7.0 === ''Note: not recommended any more since May 2016'' ~~To extract the current '''7.0.x release branch''' version ('''stable'''), which continuously receives bugfixes, use the command: ~~ {{{ svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0 grass70_release #Subsequent updates: svn up }}} === GRASS 6.4 === To extract the current state of the old '''6.4.x release branch''' version ('''very old stable'''), which rarely receives bugfixes, use the command: {{{ svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_6_4 grass64_release }}} To extract a [wiki:Release specific release], e.g. the '''6.4.0 release candidate 5 (RC5)''' from 2009, use the command: {{{ svn checkout https://svn.osgeo.org/grass/grass/tags/release_20090609_grass_6_4_0RC5 grass640_rc5 }}} === Committing code to SVN (developers with write access) === Note: Write access to the Subversion repository is governed by [wiki:RFC/2_LegalAspectsOfCodeContributions RFC 2: Legal aspects of code contributions]. Committers should take care to use https for access, and use their [http://www.osgeo.org/osgeo_userid OSGeo Userid] for authentication. See also [wiki:HowToContribute How-To Contribute]. A commit command might look something like: {{{ svn commit -m "Distinguish between raster and vector backends (bug #999)" main.c --username glynn }}} After your first commit SVN will remember your OSGeo user id and password so --username only has be used the first time. To add a new directory, please use (after checking that tmp files were removed and file permissions are appropriate): {{{ svn add newdir svn commit -m "New xyz functionality uploaded" newdir }}} == Subversion GRASS Addons source code repository == ''Want to contribute? Read on [wiki:HowToContribute#WriteaccesstotheGRASS-Addons-SVNrepository here]'' With the subversion client software installed, the current GRASS Addons can be extracted using the command: {{{ svn checkout https://svn.osgeo.org/grass/grass-addons grass_addons }}} Update access to the Subversion Addons repository is governed by [wiki:RFC/2_LegalAspectsOfCodeContributions RFC 2: Legal aspects of code contributions]. Committers should take care to use https for access, and use their [http://www.osgeo.org/osgeo_userid OSGeo Userid] for authentication. A commit command might look something like: {{{ svn commit -m "Stereo DEM creation" main.c --username glynn }}} After your first commit SVN will remember your OSGeo user id and password so --username only has to be used the first time. To add a new directory, please use (after checking that tmp files were removed and file permissions are appropriate): {{{ svn add newdir svn commit -m "New xyz functionality uploaded" newdir }}} == Subversion GRASS Sandbox source code repository == The "sandbox" repository is a place for collaborative experiments and alpha-ware not quite ready for incubation in the addons repository. GRASS developers can create directories for themselves and use it as they like, just keep everything GPL>=2 compatible in the usual way! With the subversion client software installed, the Sandbox repository can be extracted with the command: {{{ svn checkout https://svn.osgeo.org/grass/sandbox grass-sandbox }}} Write access to the Subversion Sandbox repository is again governed by [wiki:RFC/2_LegalAspectsOfCodeContributions RFC 2: Legal aspects of code contributions]. Committers should take care to use https for access, and use their [http://www.osgeo.org/osgeo_userid OSGeo Userid] for authentication. Commit commands will follow the same method as for the addons repository shown above. == Subversion GRASS repository dumpstreams == Incremental dumpstreams of GRASS SVN repository are available at [http://svn.osgeo.org/dumps/grass/]. == Online browseable live web interfaces to source code repository == * TracBrowser interfaces: * [http://trac.osgeo.org/grass/browser/grass/ GRASS SVN] * [http://trac.osgeo.org/grass/browser/grass-addons/ GRASS Addons SVN] * [http://trac.osgeo.org/grass/browser/grass-web/ GRASS Web SVN] * [http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass-osgeo ViewCVS interface] (Subversion backup note: svnsync runs 3 times per day) * [http://svn.osgeo.org/grass/ Raw SVN server HTML interface] == SVN mirrors == * http://svnmirror.osgeo.org is a mirror of all OSGeo repositories incl. GRASS that is on a 15 minute svnsync. The physical machine is located at TelaScience.org in San Diego, CA (USA). * A second GRASS SVN mirror is [http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass-osgeo here] at the Czech Technical University in Prague (CZ), Faculty of Civil Engineering. == Historical CVS == * Our [http://freegis.org/cgi-bin/viewcvs.cgi/ old GRASS 5/6.1 CVS at freegis.org] (ViewCVS interface; no longer updated since move to OSGeo SVN) * A copy of GRASS-CVS has been saved [http://josef.fsv.cvut.cz/cgi-bin/viewcvs.cgi/?root=grass-cvs-2007-12-09 here] at the Czech Technical University in Prague (CZ), Faculty of Civil Engineering. == Historical checkouts == You can download the source code as it existed on a particular day as follows: {{{ svn co -r '{2008-09-01}' https://svn.osgeo.org/grass/grass/branches/develbranch_6 grass6_20080901 }}} You can then step forward in time to another date as follows: {{{ svn update -r '{2008-09-04}' }}} This can be useful to help narrow down which change introduced some weird behaviour. While SVN history for many individual files exists back to 1999, if you want to go back in time to GRASS 5 days you should use the GRASS 5 CVS instead. The directory layout was widely changed between GRASS 5 and 6 and the earliest version of GRASS 6 that will actually compile on its own will be just before the 5.7.0 development release. == Compilation notes for various operating systems == Please see [https://grasswiki.osgeo.org/wiki/Compile_and_Install here].