Haiku monthly activity report - 12/2016

Happy new year everyone!

Here is the last report for commits in the year 2016. It covers hrev50718-hrev50829.

User interface

DiskUsage: cleanup and polishing by Janus.

kallisti5 started work on an app to notify people when sotware updates are available and make it easy to update their system. Right now this has to be done from the command line with pkgman, which isn’t the best for user friendliness.

humdinger started work on improving the look of the print preferences. The ui is a bit messy and needs some cleanup.

Launch daemon

It is now possible to stop targets properly, which makes it easier to replace them for testing purposes. It is also possible to force restart of a target.

Package updates

Too many updates to list them!

Korli worked hard on bringing the x86_64 version of Haiku up to date with the current recipes and the x86_gcc2 repo. PulkoMandy also updated several packages for x86_gcc2, with packages built from the build bots. The infrastructure to automate this is still work in progress, but the packages are starting to get built and can be uploaded (manually).

Debugger

DeadYak continues work on the remote debugging interface, which will ultimately allow to debug things from a remote machine. Particularly useful for full screen apps, and debugging system components such as the app_server, which can’t be done with Debugger running on the same machine.

Drivers and Kernel

mmlr fixed an alignment issue in the FreeBSD compatibility layer. A function returns aligned memory in FreeBSD, and even though the documentation says to not rely on it, some drivers still do. This should fix crashes with the affected network drivers.

mmlr also fixed a missing NULL check in the thread management in Kernel, allowing Haiku to run the complete POSIX test suite without a kernel panic. Now the next step is to fix the various failures detected by the test suite.

korli fixed a problematic interaction which would lead fork() to sometimes freeze the forked program.

UEFI support

Work continues for UEFI booting support. UEFI replaces the BIOS in modern machines, and several aspects of Haiku boot process need to be revisited to make it compatible with this. Jessicah and tqh have been working on this and their work was finally merged into Haiku trunk.

There is now a simpler framebuffer driver for app_server. It replaced the VESA driver when booting from UEFI, which deprecated VESA. There is no mode setting, but the UEFI will usually set the display native resolution when booting and there should be no need to change it anyway.

Henry Harrington contributed a key fix, a missing configuration led the OS to not detect an error when accessing memory pages that were not allocated. Detecting this error is important to our kernel, because this is the only way it knows it needs to allocate the missing pages.

Thanks to tqh, the serial debug support works also when booting from UEFI, which allows to investigate low level issues more easily (if your machine has a serial port, or more commonly in virtual machines which often emulate one).

jessicah improved the GPT partition creation to write the protective MBR and the legacy bootloader. This makes it a lot easier and safer to install Haiku on a GPT partition instead of an old style intel format one. She also made it support setting partition names, which will make it easier to see the use of each partition from other OSes and bootloaders.

Media Kit

Barrett continues his development of the new BMediaClient API.

Safety and cleanups

mt is currently analyzing our code with clang and using it to detect several memory leaks and other similar problems. This affects several parts of the system, mostly in the error handling paths.

axeld fixed some problems in bfs, so it does not crash anymore on some corruption cases. This will allow to continue to use a corrupt disk, and run checkfs without crashing the system in more cases.