Development FAQ

I am a programmer and would like to help. Where can I get started?

Check out the Getting Started page. You will also find links to several useful development related pages in the Development section of this website. [top]

Do you have any easy introductory tasks for me?

There's certainly something you can do as an introductory. Please see the Getting Started page for some examples. [top]

Do you have coding guidelines?

Yes, we do. Please check out the Haiku Coding Guidelines document. [top]

How do I create and submit patches?

After having checked out our repository and configured git you can modify the source files. Always check if your modifications compile without errors/warnings. To create and submit a patch, please see the development wiki on patches. [top]

What development tools do you use?

  • A slightly modified version of Jam as our building tool. It is included in Haiku's official releases and nightly images. If you are cross-compiling Haiku, you will need to build jam from source.
  • Git as our version control system.
  • Trac as our project management and bug/issue tracking system.
  • Gerrit for code review.


Do you have a mailing list for developers?

Yes, we have several. Please check out the Mailing Lists page. [top]

Do you have an IRC channel?

There are multiple IRC Channels. Currently, all of the listed ones are on the network. [top]

How much space is needed to build Haiku?

About 5 GiB including sourcecode checkout. [top]

Why can't I create a ticket in Trac?

You need to verify your account via email before you can create tickets in Trac. See the details here. [top]

I checked out Haiku and it fails to build. What can I do?

Make sure your OS is a build platform supported by the Haiku build system. Make sure you're using the right (versions of the) build tools, and make sure you invoked the configure script and jam correctly (see Getting Started for more information). If everything is as it is supposed to be, report the problem to the Haiku Development Mailing List. Please, do not report build problems to Trac. [top]

I want to port something for integration into the official sources. What components and licenses are acceptable?

The Haiku source tree has very few ported applications, and with the advent of package management, even these are being migrated out of the tree. For most applications it is preferable that their Haiku port is maintained in the original vendor's source repository. Third party libraries are usually only included when they are used by components (applications, libraries) we consider essential. Kernel drivers for hardware support, on the other hand, are almost always welcome. [top]

We generally only accept contributions governed by a free license (cf. the FSF's definition of free software), ideally the MIT license. While for applications, kernel drivers, and most add-ons, the only further restriction is that the license does not contain special conditions we cannot or do not want to accept (like the so called "advertising clause" in an older BSD license version). For integral parts of the OS (like the kernel, and libraries providing the public API such as libbe) however, we reject contributions governed by an "infectious" license (e.g. the GPL), i.e. one that would require us to re-license adjacent code. At the moment an exception is libroot, which uses a significant amount of code stemming from the LGPL-licensed glibc. [top]

I want to port my BeOS application/driver to Haiku. What do I need to do?

Since Haiku R1 is mostly BeOS R5 binary and source compatible, in most cases you don't have to do anything. At the application level API, there are only a few incompatibilities. There's also a new driver interface, but BeOS R5 drivers are still supported (small changes might be needed). The filesystem add-on interface has changed considerably, so you will need to port your old file system. For more information, check out the document(s) listed below; or if you need further help, please contact us through the Haiku mailing list. [top]