Getting the Source Code

Haiku's source code is currently being hosted in a subversion based repository. Below are the various methods that can be used to check out the source code.

Anonymous access will allow anyone to download Haiku's source code. Only developers with commit access should use the authenticated (non-anonymous) method.

SVN Access

  • Build Tools:

    svn checkout <url>buildtools/trunk haiku/buildtools
    
    The buildtools are not needed when building from within Haiku, BeOS, or Zeta. Pre-built images of Haiku already come with the buildtools pre-installed. For BeOS and Zeta, a package is available on the Pre-Requisite Software page.
  • Haiku:

    svn checkout <url>haiku/trunk haiku/haiku
    
  • <url> can be one of the following:

    Anonymous:
    • http://svn.haiku-os.org/haiku/
    Developers with SVN Commit access:
    • svn+ssh://developername@svn.haiku-os.org/srv/svn/repos/haiku

Some Notes

  • Case Sensitive Filesystem

    Haiku's source code needs to reside on a case sensitive filesystem. In short, such a filesystem recognizes "ThisIsAFile.txt" and "THISISAFILE.txt" as two different files. Some filesystems that are (or could be) case in-sensitive include, FAT32, NTFS, and HFS+. Mac OS X's HFS+ is case in-sensitive by default. For more information regarding how to create a case-sensitive HFS+ volume, see this article.
  • SVN_SSH variable If your local user account is different from your login name at svn.haiku-os.org, the SVN_SSH variable must be set a bit differently for things to work when using svn+ssh://
    export SVN_SSH="ssh -l developername"
  • Converting your local SVN repository to use another <url> If you already downloaded the repository over svn and want to convert it to the http protocol, you can use svn switch --relocate. For more information run `svn help switch` from the command line. Switching Haiku from BerliOS to svn.haiku-os.org
    cd path/haiku/haiku/
    svn switch --relocate svn://svn.berlios.de/haiku/haiku/trunk http://svn.haiku-os.org/haiku/haiku/trunk
    
  • Updating the Sources
    cd /path/haiku/haiku
    svn update
    
    Alternatively, a single path or multiple paths can be given to `svn update`. This will allow you to run the following command from any directory. This becomes extremely useful if you use an external object directory or if you wish to update both the buildtools and haiku directories at the same time.
    svn update /path/haiku/haiku /path/haiku/buildtools