Development Contributions financed by Haiku, Inc.
The Haiku Project rests on the shoulders of volunteer individuals. They spend
their free time developing, bug hunting and generally advancing the Haiku®.
Being able to financially support a contributor, to allow them to fully
concentrate on development can do wonders for progressing Haiku forward.
Supporting contributors through contracts allow them to dedicate large blocks
of time, which normally would not be available for Haiku development. These
contracts are not for purchasing an hour here, three hours there.
Nor are the contracts for working on something that would not help reach R1.
These contracts are specifically for putting Haiku on the fast track to R1,
whether it be the next development release or the next stable release.
The year 2010 marked the year in which Haiku, Inc. returned to financing established contributors
for their development efforts on a contractual basis.
2011
Package Management
- Contractor: Ingo Weinhold
- Cost: $2,910 USD
- Hours: 160
- Related articles:
- Summary:
In mid June through mid July I continued the work on Haiku's package management
functionality. I got the build system ready to produce Haiku images with a
fully packaged core system and I repackaged most "/boot/common" software as
Haiku packages and also let them be included in the image. I extended the boot
loader and the kernel to be able to boot off of such an image. Furthermore I
added query functionality to packagefs as well as support for a directory with
autogenerated package and dependency links. I improved the "package" command
and the build system to allow for updating individual files in a package and I
also started porting libsolv to Haiku, the library the package kit's dependency
solver will be based on. While my work helped to get significantly closer to a
working package management solution, there's still a lot left to do to reach
that goal.
Package Management: Initial Research & Development
- Contractor: Oliver Tappe
- Cost: $2,622 USD
- Hours: 160
- Related articles:
Contract announcement
- Summary:
In January 2011, I have worked on researching the different existing
package management systems of other OSes (both their user interface and
their code), in order to determine whether any of their components could be
reused. As Haiku has a very special package format and mode of
package-activation (package-fs), it turned out that none of the existing
systems could be used, since most are closely coupled with their own
package format. The only thing that we will be reusing is openSUSE's
dependency solver (satsolver).
That decision did require less time than anticipated, so during the rest of
my contract period, I started implementing different parts of the package
kit. This work is continuing and I hope to have something presentable ready
in March.
2010
WebKit, WebPositive
- Contractor: Stephan Aßmus
- Cost: $4,000 USD
- Hours: 320
- Related articles:
Contract announcement,
renewal announcement
- Summary:
In the February to April 2010 timeframe, I have completed a lot of the missing parts of the WebKit port to Haiku and also rewrote many parts of the previous porting efforts to better fit the Haiku threading model. When the port itself got more mature, I wrote the WebPositive browser offering the most important features expected from a modern web browser. Compared to the Firefox 2 port for BeOS, WebPositive is much better integrated with the Haiku system, launches very quickly and benefits from it's much more current web engine. In other aspects, it does still lack behind Firefox, though, for example in SSL certificate handling, caching, or automatic filling of forms. Still, WebPositive has been integrated in Haiku just in time for the second Alpha release and has replaced the Firefox 2 port as the default browser. Development and bug fixing had continued past the contract time.
POSIX improvements, managing the release of R1 Alpha 2
- Contractor: Ingo Weinhold
- Cost: $2,000 USD
- Hours: 160
- Related articles:
Contract announcement
- Summary:
I continued my earlier work to get the Open POSIX Test Suite to run on Haiku.
Various POSIX compliance issues and bugs in Haiku uncovered by it could be
fixed, among them problems with signals, pthread mutexes and condition
variables.
I fixed serveral kernel bugs, most of them related to boot problems, and
implemented an IOCache for read-only media to speed up booting off CD
significantly.
Furthermore I managed the alpha 2 release branch and reviewed most of the
patches merged into it.
Locale Kit
- Contractor: Adrien Destugues
- Cost: $2,000 USD
- Hours: 320
- Related articles:
Contract announcement
- Summary:
During two months in summer of 2010, I worked on various things for Haiku.
The initial purpose of the contract was i18n. Following on the work I
had done the previous year as part of GSoC, I extended the API most
notably in the area of number and date formatting. This included some
design changes in the initial API (that was created much earlier by the
Open Tracker development team), and changing it to better match current
use of the Locale API as a system-wide one, and the fact that ICU is
used as a backend.
This work included localizing dates in tracker and mostly rewriting the
Time preflet to use ICU time zones instead of directly accessing the
tzdata files. This latter part also led to reworking the POSIX part of
the API, and moving some stuff related to it out of the kernel. Oliver
Tappe took care of this.
As the Locale API is now pretty stable and useable in this area, I
spent the remaining time working on improving the intel_extreme video
driver to bring native video resolution to my own laptop and similar
models. I also wrote a driver for usb floppy drives.
Networking Improvements
- Contractor: Axel Dörfler
- Cost: $1,680 USD
- Hours: 120
- Related articles:
Contract announcement
- Summary:
Since I was actively looking for a new job, and could need the money,
I took the opportunity to get contracted by Haiku, Inc. to tackle some
long standing issues in the network stack. It turned out to be good
timing as well, since I was able to deliver some needed functionality
to the IPv6 work done by Atis Elsts during GSoC 2010. During the three
weeks of my contract, I made over hundred commits, and have fixed
numerous bugs.
Media Kit, MediaPlayer, app_server
- Contractor: Stephan Aßmus
- Cost: $2,000 USD
- Hours: 160
- Related articles:
Contract announcement
- Summary:
From September to October 2010 I worked on fixing bugs in the Haiku app_server and Media Kit. In general, the playback capabilities and media file format compatibility has been greatly improved to be mostly on par with FFmpeg, especially for such important file formats as AVI, MP4 and MKV. Support for the Xiph codecs has been improved and is offered even for encoding. The MediaPlayer interface received a complete overhaul and many new features like full-screen playback controls, media winding and limited support for video subtiles.