- 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?
- How much space is needed to build Haiku?
- Why can't I create a ticket in Trac?
- 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?
Do you have any easy introductory tasks for me?
Do you have coding guidelines?
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 a patch, start the Terminal, navigate to the root folder of your repository. After locally committing your changes with
git commit -a (adding a short description of the changes, maybe including the ticket number ('#1234') you're fixing), run
git format-patch origin. You'll find the patch in the root folder of your repository.
To submit your patch, either attach the file to an appropriate bug report or send it to our development mailing list. [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.
Do you have a mailing list for developers?
Do you have an IRC channel?
How much space is needed to build Haiku?
About 5 GiB including sourcecode checkout. [top]
Why can't I create a ticket in Trac?
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]