Development FAQ
- I am a programmer and would like to help. Where can I get started?
- Do you have any easy introductory tasks for me?
- Do you have coding guidelines?
- How do I create and submit patches?
- What development tools do you use?
- Do you have a mailing list for developers?
- Do you have an IRC channel?
- I checked out Haiku and it fails to build. What can I do?
- I want to port something for integration into the official sources. What components and licenses are acceptable?
- I want to port my BeOS application/driver to Haiku. What do I need to do?
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.
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.
Do you have coding guidelines?
Yes, we do. Please check out the Haiku Coding Guidelines document.
How do I create and submit patches?
After having checked out our repository you can modify the source files. Always check if your modifications compile without errors/warnings. To submit your changes, start the Terminal and run "svn diff > my-patch.diff" (choose an appropriate name for "my-patch.diff") in the parent folder of your modifications or the root folder of your repository (easier, but takes longer). Then, either attach the file to the appropriate bug report or send it to our development mailing list. You should read some chapters in the SVN Book to learn more about Subversion.
What development tools do you use?
- A slightly modified version of Jam as our building tool. You can download it from here.
- Subversion (SVN) as our version control system.
- Trac as our project management and bug/issue tracking system.
Do you have a mailing list for developers?
Yes, we have several. Please check out the Mailing Lists page.
Do you have an IRC channel?
- server: irc.freenode.net
- channel: #haiku
- Channel archive
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 in our bug reporting system.
I want to port something for integration into the official sources. What components and licenses are acceptable?
While the Haiku source tree contains several ported applications, we try to include only essentials (bash, GNU command line tools, and the debugger gdb certainly are). For most other 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.
We generally only accept contributions governed by a free license (cf. the FSF's definition of free software), ideally Haiku's license (also known as 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.
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.





