System Development

Project Areas


Drivers

USB Support for FreeBSD network compatibility layer

Haiku uses a FreeBSD network compatibility layer to support many network devices (ethernet and wireless) using drivers written for the FreeBSD project. This allows reusing network drivers with very little changes, considerably decreasing the effort needed to get good hardware support in Haiku. However, this layer only supports PCI devices, and doesn't work with USB ones. Adding support for USB to the compatibility layer would bring us support for a range of devices like so-called USB tethering, as well as USB to Ethernet and WiFi dongles.

Documenting

Documentation is one of the most critical, but overlooked areas of open source devlopment. This is true in respects of both developer documentation and end user documentation, which are both needed to make a project viable. Documentation for Haiku is published via a number of means, depending on its intended purpose and spans various subjects.

Check out the following areas where we need help our documentation:


The Haiku User Guide

The ​Haiku User Guide is intended to help new users navigate the operating system; point out areas where Haiku differs from other desktop operating systems and to provide tutorials (called 'workshops') to power users so that they can use more advanced features of the operating system.

Testing

Haiku cannot be a stable platform without people trying to find bugs in it and telling the developers. Testing is a very important job. Luckily, testers do not need specialized skills, such as the ability to write code, but they do come in handy. All that is needed is sufficient familiarity with computers to be able to install Haiku. The job merely entails seeing what works and what doesn’t under Haiku, particularly with existing BeOS applications. Once again, as a tester, you can devote as much or as little time as you desire.


Types of Testing

Ad Hoc Testing

Ad Hoc testing involves the tester playing with the system while pretending to be a normal user and do the types of things that normal users do. Once they come across a bug, then they submit it to the issue tracker and work to triage the bug with the developers.

Designing

A person with experience in graphic design has potential to be a very great help in ensuring that Haiku looks good and presents itself well to the public. The areas of design which a skilled hand is needed by an open source project are varied, but the style used needs to remain true to the over all branding of the project.

The Haiku project needs UX/UI designers, graphic designers and all sorts of visual artists.

Check out the following areas where we need help with design:

Building Haiku on Mac OS X 10.10 Yosemite

This was written by Sambuddha Basu or samgtr on IRC.

The following was tested on Mac OS X 10.10 (Yosemite).

Requirements

  • At least 3 GB of free space on your hard drive
  • You will need the Xcode Tools: use the installer on your Mac OS X Install DVD, or download the latest version from Apple Developer Connection (free registration required)
  • You must be logged in as administrator to install some tools
  • MacPorts or Homebrew will also be required
Follow the steps in order to build Haiku on Mac OS X.
  1. Case-sensitive disk image
  2. Fetching the buildtools and the Haiku source code
  3. Install pre-requisite software
  4. Building the buildtools
  5. Building Haiku
  6. Emulating Haiku

Step 1: Case-sensitive disk image

The Mac OS file system, HFS+, is case-insensitive by default. This causes troubles during the build of some Haiku components, because of wrong headers inclusion (“String.h” (from Haiku) instead of “string.h” (from the system) for instance). If your Mac OS X partition is not in case-sensitive HFS+ (which is very likely), you need to create a case-sensitive disk image and put Haiku buildtools and source code on it.
  1. Open Disk Utility (in /Application/Utilities)
  2. Click “New Image”, and enter the following parameters:
    • Name: Name of the volume. It should not contain special characters or spaces.
    • Size: Haiku sources, compiled objects and the resulting Haiku disk image will take around 2.7 GB, but you should put more (8 GB for instance), especially if you want to add optional packages to the image. Only the consumed space on the image will be used on your hard drive, so don’t be afraid of setting a big value.
    • Format: Mac OS Extended (Case-sensitive)
    • Encryption: none
    • Partitions: No partition map
    • Image Format: sparse disk image
The image is automatically mounted on the Desktop. If you want to remount it later, just double-click on the image file.

Step 2: Fetching the buildtools and the Haiku source code

Open a Terminal (in /Application/Utilities), and enter:
cd /Volumes/Haiku/
“/Volumes/Haiku” refers here (and in all this tutorial) to the mounted disk image name. In this case, it is named “Haiku”, so if you chose another name, use it instead of “Haiku” after “/Volumes/”.

Checkout the buildtools:

git clone git://git.haiku-os.org/buildtools
or (if the git protocol is blocked by a firewall, or if you prefer to access the source through an encrypted channel):
git clone https://git.haiku-os.org/buildtools

Checkout the source code:

git clone git://git.haiku-os.org/haiku
or:
git clone https://git.haiku-os.org/haiku
You should now have two folders “haiku” and “buildtools” into the mounted disk image.

Step 3: Install required software

To install the prerequisite software using Macports do the following:
Install MacPorts (a standard Installer package is provided). Close your Terminal, and enter in a new one:
sudo port install cdrtools gawk wget nasm less mpfr gmp libmpc
(Also important: make sure you have the latest version of "bison" installed!)
You will be prompted for the administrator password of the current account. If you get an error “port: command not found”, the MacPorts shell configuration, stored in ~/.profile, is probably not configured correctly. If you’re using Bash, you probably have a ~/.bash_profile or ~/.bash_login file, preventing bash to read ~/.profile. Check the file used by Bash (in the mentioned order) and add these lines to the used file:
export PATH=/opt/local/bin:$PATH
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info
If you are using another shell, take a look a the shell documentation to see which file is parsed at login, and add the required commands. You can now retry the port install... command in a new Terminal.

Note: the ARM port is not yet supported for OS X, MacPorts has mtools but is missing sfdisk at least.

Programming With Haiku

Lessons by DarkWyrm

Since I started publishing my Learning to Program with Haiku lesson series back in January, I have, on many occasions, seen comments asking for lessons aimed at current codemonkeys who want to break into development for Haiku. Here begins a new series of programming lessons aimed at people who already have a basic grasp on C++: Programming with Haiku.

While I have a basic outline for the series, it's very general and I'm not exactly sure how long the series will run. It certainly will be quite a while, though. A word of warning: my school schedule is completely insane from the start and I will not be publishing largely on a weekly basis like the first series. Instead, I'll be posting them when I am able. I really like writing these things, so they'll happen, but it may take some time. Now, without further adieu, Lesson 1, which starts by looking at templates and some of the containers in the Standard Template Library.

Ideas

For information about Haiku's participation in GSoC this year, please see this page.

Qualifying students can apply for a Haiku project (see the list of suggested projects below) between March 16th and March 27st, 2015. For details about how to apply, please check out Students: How to Apply for a Haiku Idea.

According to other mentor organizations, the most successful Google Summer of Code projects are the ones proposed by the students themselves. The following list represents our ideas and wishes of our project. However, suggesting your own idea is encouraged!

Social Media

There are a number of ways you can keep up with news about Haiku and social media is one such way. Some social media accounts are official accounts as listed on this page, while others are recognized community groups which are run by the community - for the community.

Official Accounts

Official Twitter Account

Official Mastodon/GNU Social Account

Official YouTube Account

Official LinkedIn Account

Official OpenHub Account

Official Keybase Team

Capitole du libre - Haiku booth (1)

Adrien at our booth, from the ground.