<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom"><channel><title>Haiku Project</title><link>https://www.haiku-os.org/</link><language>en-US</language><author>Haiku Inc.</author><rights>(C) 2001-2026 Haiku, Inc. All rights reserved.</rights><updated>Fri, 12 Jun 2026 14:00:00 -0400</updated><item><title>Haiku Activity &amp; Contract Report, May 2026</title><link>https://www.haiku-os.org/blog/waddlesplash/2026-06-12-haiku_activity_contract_report_may_2026/</link><author>waddlesplash</author><pubDate>Fri, 12 Jun 2026 14:00:00 -0400</pubDate><guid>https://www.haiku-os.org/blog/waddlesplash/2026-06-12-haiku_activity_contract_report_may_2026/</guid><description>&lt;p>This report covers hrev59672 through hrev59753.&lt;/p>
&lt;h3 id="applications">Applications&lt;/h3>
&lt;p>jscipione fixed some regressions in Tracker causing the scroll position to not be set properly when navigating between directories, and dropping files onto other files not working. He also fixed drag and drop of icons onto views with a different icon size, restored the Trash pose on the Desktop in file panels, refactored the drag bitmap&amp;rsquo;s appearance, and more.&lt;/p>
&lt;p>jscipione tweaked the layout of the &amp;ldquo;recents&amp;rdquo; count settings in Deskbar.&lt;/p>
&lt;p>apl fixed a regression in HaikuDepot causing crashes when opening package files. He also refactored how the &amp;ldquo;Not available&amp;rdquo; views (e.g. for reviews) are shown, started reworking package selection handling, improved keyboard navigation support, and more.&lt;/p>
&lt;p>humdinger tweaked the &amp;ldquo;delete old states&amp;rdquo; option in SoftwareUpdater settings to have a less technical label. He also fixed Tracker to show the name of the &amp;ldquo;Trash&amp;rdquo; directory translated, if translated folder names are enabled.&lt;/p>
&lt;p>nipos fixed WebPositive to not open a homepage tab when opened by clicking a URL in some other application.&lt;/p>
&lt;p>Zardshard fixed an assertion failure crash in Icon-O-Matic.&lt;/p>
&lt;p>nipos fixed ShowImage&amp;rsquo;s toolbar being cut off in fullscreen mode. He also fixed some window size limits in ActivityMonitor.&lt;/p>
&lt;p>humdinger improved the color choices, and the appearance of the color selector, in StyledEdit. He also split the &amp;ldquo;Font&amp;rdquo; menu into &amp;ldquo;Font&amp;rdquo; and &amp;ldquo;Style&amp;rdquo; menus, which improves things on systems with lots of fonts installed.&lt;/p>
&lt;p>nephele changed WebPositive&amp;rsquo;s default search URLs for Google and DuckDuckGo to use the &amp;ldquo;no-AI&amp;rdquo; variants. He also improved the appearance of some buttons under HiDPI.&lt;/p>
&lt;p>humdinger truncated long history items in TextSearch to a fixed width, to prevent the menu from getting larger than the screen width.&lt;/p>
&lt;h3 id="command-line-tools">Command line tools&lt;/h3>
&lt;p>PulkoMandy updated the USB IDs database, and then added decoding for more &amp;ldquo;CDC&amp;rdquo; descriptor types in &lt;code>listusb&lt;/code>.&lt;/p>
&lt;h3 id="kits">Kits&lt;/h3>
&lt;p>X512 fixed various &amp;ldquo;mouse tracking&amp;rdquo;-related bugs in BListView, including incorrect selection changes and more.&lt;/p>
&lt;p>waddlesplash fixed a regression preventing &lt;code>BTab::SetEnabled&lt;/code> from working if it wasn&amp;rsquo;t attached to a BTabView.&lt;/p>
&lt;p>waddlesplash fixed a memory leak in Package Kit&amp;rsquo;s job handling.&lt;/p>
&lt;p>madmax fixed the BMessage-to-driver_settings converter to properly escape strings when writing out messages. This bug led to the wireless networks settings file not properly storing names of wireless networks with spaces or other special characters in them, leading to those networks not automatically being connected to (if requested) on startup, fixing a number of &amp;ldquo;WiFi autoconnect doesn&amp;rsquo;t work&amp;rdquo; problems (but not all of them; some remain, it seems.)&lt;/p>
&lt;h3 id="servers">Servers&lt;/h3>
&lt;p>waddlesplash refactored how screen configurations are saved and restored in app_server, fixing the screen resolution not resetting properly after applications that change the resolution are quit or killed.&lt;/p>
&lt;p>KevinAdams05 removed the &amp;ldquo;Save as PDF&amp;rdquo; default printer, which can&amp;rsquo;t work by default if the &amp;ldquo;PDF Writer&amp;rdquo; package isn&amp;rsquo;t installed. (That default printer should instead be added by the PDF Writer package.)&lt;/p>
&lt;h3 id="file-systems">File systems&lt;/h3>
&lt;p>nathan242 fixed various filesystems (including BFS) to properly send node monitor notifications when files are truncated via &lt;code>O_TRUNC&lt;/code>.&lt;/p>
&lt;p>jessicah fixed a crash in BFS when trying to create a volume without indexes.&lt;/p>
&lt;h3 id="drivers">Drivers&lt;/h3>
&lt;p>PulkoMandy fixed a crash in the I2C driver (which is still disabled by default) on some hardware.&lt;/p>
&lt;p>PulkoMandy did a bunch more work on the MMC driver (which is also disabled by default), improving initialization and getting it closer to working.&lt;/p>
&lt;p>shivamsinghydv implemented parsing of more device information messages in the Bluetooth server.&lt;/p>
&lt;p>nathan242 ported the &lt;code>realtekwifi8187&lt;/code> driver (&lt;code>urtw&lt;/code> from FreeBSD), adding support for some older Realtek USB WiFi hardware.&lt;/p>
&lt;p>smrobtzz added logic to &lt;code>intel_extreme&lt;/code> to try and disable framebuffer tiling, potentially fixing garbled screen output on some hardware.&lt;/p>
&lt;p>smrobtzz fixed a race condition in the ACPI driver, fixing problems with ACPI battery and shutdown on various hardware.&lt;/p>
&lt;h3 id="libroot--kernel">libroot &amp;amp; kernel&lt;/h3>
&lt;p>waddlesplash and trungnt2910 made changes to the kernel&amp;rsquo;s FPU handling to allow AVX-512 to be enabled on processors that support it.&lt;/p>
&lt;p>ypsvlq contributed a change to increase the maximum user stack size all the way to 64 MB. (This is apparently needed by the Zig compiler.)&lt;/p>
&lt;p>jessicah added some symbol visibility definitions to &lt;code>elf.h&lt;/code>.&lt;/p>
&lt;p>nathan242 fixed the driver_settings file format loader to not error out on trying to load a zero-length file, fixing some problems in the launch_daemon and other applications that consume these files.&lt;/p>
&lt;p>nathan242 added a missing update of partition names in the kernel, fixing a very old bug where renamed partitions showed the old name in various places across the system.&lt;/p>
&lt;p>waddlesplash cleaned up some nonstandard headers (e.g. &lt;code>null.h&lt;/code>), consolidated them into standard ones, adjusted the definitions of some constants, and fixed the definition of &lt;code>SIZE_MAX&lt;/code> to be of the correct type.&lt;/p>
&lt;p>PulkoMandy increased &lt;code>PTHREAD_KEYS_MAX&lt;/code> to 512, to accomodate the Rust compiler needing more keys.&lt;/p>
&lt;p>waddlesplash added an assertion to make sure that a thread&amp;rsquo;s &amp;ldquo;pinned to CPU&amp;rdquo; counter does not become negative.&lt;/p>
&lt;p>waddlesplash added a missing NULL check to an &lt;code>ioctl&lt;/code> implementation, fixing a kernel crash under rare circumstances.&lt;/p>
&lt;p>waddlesplash fixed some assertion checks in the virtual memory page logic that were leading to KDLs under high load.&lt;/p>
&lt;p>waddlesplash fixed KDL initialization when some CPUs are stuck in spin loops and aren&amp;rsquo;t responding to &amp;ldquo;start KDL&amp;rdquo; messages. This should hopefully allow debugging and diagnosing more &amp;ldquo;whole system hang&amp;rdquo; problems. He also deleted the &amp;ldquo;last caller&amp;rdquo; spinlock debug system, which is long since obsolete.&lt;/p>
&lt;p>waddlesplash overhauled the &amp;ldquo;user timer&amp;rdquo; locking system, in order to fix some whole system hang problems, but also to improve performance and correctness: now there are more granular locks, better assertion checks, and more.&lt;/p>
&lt;p>waddlesplash cleaned up x86 per-CPU timer handling, removing unnecessary hardware register reads and more, and then re-enabled some checks to bypass resetting timers entirely to improve performance.&lt;/p>
&lt;h3 id="build-system">Build system&lt;/h3>
&lt;p>SED4906 added support for the host compiler being GCC 16.&lt;/p>
&lt;p>waddlesplash fixed a missing parameter in GCC 2, and tweaked the build options to allow it to be compiled on more modern systems.&lt;/p>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;p>PulkoMandy fixed some typos in the documentation, and significantly improved the documentation of the SD/MMC drivers.&lt;/p>
&lt;p>madmax reworked &lt;code>BListView::CurrentSelection&lt;/code>&amp;rsquo;s documentation to be clearer about what values it returns.&lt;/p>
&lt;p>cafeina wrote documentation for the USB Kit and some Network Kit classes in the Haiku Book.&lt;/p>
&lt;h3 id="arm--risc-v">ARM &amp;amp; RISC-V&lt;/h3>
&lt;p>smrobtzz added some basic fixes for booting on Raspberry Pi 5 (but there&amp;rsquo;s a lot more to do before this can fully work.) They also made a number of improvements to CPU startup logic, especially for SMP.&lt;/p>
&lt;h3 id="are-we-beta6-yet">Are we beta6 yet?&lt;/h3>
&lt;p>Not quite. More regressions have been fixed, leaving only a small number remaining, while most of the WebPositive issues have also been fixed. There will hopefully be more movement this month on that front, we&amp;rsquo;ll see&amp;hellip;&lt;/p>
&lt;h3 id="thats-all-folks">That&amp;rsquo;s all, folks!&lt;/h3>
&lt;p>Thanks again to all who contribute to Haiku, and especially those donors who make my contract possible!&lt;/p></description></item><item><title>Journées du Logiciel Libre (JDLL)</title><link>https://www.haiku-os.org/conference/2026_journ%C3%A9es_du_logiciel_libre_jdll/</link><pubDate>Fri, 29 May 2026 01:00:00 +0000</pubDate><guid>https://www.haiku-os.org/conference/2026_journ%C3%A9es_du_logiciel_libre_jdll/</guid><description>&lt;p>Free software booths, and a lot of talks for both the general public and developers. Also games for kids, and 3D printing and other demos by the local fablab.&lt;/p>
&lt;p>French speaking event.&lt;/p>
&lt;hr>
&lt;ul>
&lt;li>Event Dates: 2026-05-30 - 2026-05-31&lt;/li>
&lt;li>Event Homepage: &lt;a href="https://www.jdll.org/">https://www.jdll.org/&lt;/a>&lt;/li>
&lt;li>Activities:
&lt;ul>
&lt;li>Haiku booth.&lt;/li>
&lt;li>A talk by mmu_man &amp;amp; PulkoMandy about &amp;ldquo;What&amp;rsquo;s new in Haiku?&amp;rdquo; (news from the last year in Haiku development).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="location">Location&lt;/h2>
&lt;p>&lt;a href="https://jdll.org/contact-and-informations">ENS site Descartes&lt;/a>,&lt;br/>
19 allée de Fontenay,&lt;br/>
69007 Lyon&lt;br/>
France&lt;/p>
&lt;h2 id="event-report">Event report:&lt;/h2>
&lt;p>TODO&lt;/p></description></item><item><title>Haiku Activity &amp; Contract Report, April 2026</title><link>https://www.haiku-os.org/blog/waddlesplash/2026-05-11-haiku_activity_contract_report_april_2026/</link><author>waddlesplash</author><pubDate>Mon, 11 May 2026 23:30:00 -0400</pubDate><guid>https://www.haiku-os.org/blog/waddlesplash/2026-05-11-haiku_activity_contract_report_april_2026/</guid><description>&lt;p>This report covers hrev59570 through hrev59671.&lt;/p>
&lt;p>GSoC selection happened at the end of last month; you can &lt;a href="https://www.haiku-os.org/news/2026-05-01_haiku_mentors_3_students_in_gsoc/">read the news post&lt;/a> announcing this year&amp;rsquo;s selectees. Thanks to everyone who applied!&lt;/p>
&lt;h3 id="applications">Applications&lt;/h3>
&lt;p>phoudoin disabled some redundant filetype checking in TextSearch, improving performance a bit.&lt;/p>
&lt;p>nipos dropped some obsolete code from WebPositive&amp;rsquo;s tab bar.&lt;/p>
&lt;p>jscipione continued his work on Tracker, removing redundant code, fixing problems with Copy/Paste, the Trash icon, and much more. waddlesplash came by and made a few fixes too, including one to avoid a lot of unnecessary node monitoring syscalls.&lt;/p>
&lt;p>aquamatic123 did some cleanups to the Devices internals, solving another TODO. He also tracked down and fixed a memory leak.&lt;/p>
&lt;p>apl refactored the JSON schema code generation system in HaikuDepot, to prepare for potential use with REST APIs (among other reasons.) He also fixed the &amp;ldquo;Featured&amp;rdquo; tab displaying as disabled incorrectly in some circumstances (which also entailed fixing a bug in &lt;code>BTabView&lt;/code>), and reworked how the package view data is updated.&lt;/p>
&lt;p>humdinger removed some unnecessary spacing in the Appearance preferences.&lt;/p>
&lt;p>jscipione made the message body text colors in Mail automatically update when the system colors change.&lt;/p>
&lt;p>nathan242 fixed a crash in SoftwareUpdater when trying to quit while a download was running. waddlesplash implemented automatic cleanup of the &amp;ldquo;admin&amp;rdquo; directory in it, meaning that older states will now automatically be deleted to free up space (unless the setting is disabled.)&lt;/p>
&lt;p>jscipione cleaned up some code and added some missing functions to DeskCalc&amp;rsquo;s math backend.&lt;/p>
&lt;h3 id="command-line-tools">Command line tools&lt;/h3>
&lt;p>waddlesplash improved the (not yet ready for general use) &lt;code>ltrace&lt;/code> implementation, fixing a number of TODOs and inefficiencies. However, it&amp;rsquo;s still not ready for general consumption, as it causes problems and crashes when it traces calls.&lt;/p>
&lt;p>waddlesplash split the &amp;ldquo;clean up admin directory&amp;rdquo; functionality of &lt;code>pkgman&lt;/code> into a separate subcommand (&lt;code>pkgman cleanup&lt;/code>), and changed &lt;code>install&lt;/code> to just alert the user that cleanups can/should be run.&lt;/p>
&lt;h3 id="kits">Kits&lt;/h3>
&lt;p>X512 fixed BPicture storage of affine transforms, string escapements, and more.&lt;/p>
&lt;p>X512 removed a redundant value from the &amp;ldquo;mouse idle&amp;rdquo; notification message sent to applications.&lt;/p>
&lt;p>nephele fixed a bug where &lt;code>BCheckBox&lt;/code> drawing would alter the view state unexpectedly, causing drawing errors in WebPositive.&lt;/p>
&lt;p>PulkoMandy restored the BeOS color-changing behavior of &lt;code>BButton&lt;/code>, fixing compatibility with a few applications (like WonderBrush.)&lt;/p>
&lt;p>korli added a missing error return in &lt;code>BInvoker&lt;/code>.&lt;/p>
&lt;p>waddlesplash did a major overhaul of the MIME sniffer&amp;rsquo;s internals, removing some very large inefficiencies and also making use of new POSIX routines (like &lt;code>memmem&lt;/code>) to make MIME sniffing faster. The results are quite noticeable: the &amp;ldquo;mimeset&amp;rsquo;ing package contents&amp;rdquo; stages of both the Haiku build and any HaikuPorts build are much faster now (by as much as 10x or more).&lt;/p>
&lt;p>waddlesplash made &lt;code>string_for_size()&lt;/code> pre-initialize its internal structures (so they don&amp;rsquo;t need to be re-initialized every run), significantly reducing its performance overhead.&lt;/p>
&lt;p>jscipione reduced how often shortcuts are probed in windows, significantly improving performance in applications like Tracker with a lot of dynamic shortcuts.&lt;/p>
&lt;p>waddlesplash switched &lt;code>BWindow&lt;/code> shortcut lookups to use a tree instead of a flat array, reducing comparisons and improving lookup time.&lt;/p>
&lt;h3 id="servers">Servers&lt;/h3>
&lt;p>phoudoin added support for &lt;code>CAPABILITY&lt;/code> information in IMAP &lt;code>LOGIN&lt;/code> responses in &lt;code>mail_daemon&lt;/code>. He also adjusted the &lt;code>ID&lt;/code> command to report Haiku as the client.&lt;/p>
&lt;p>Coldfirex pulled in some typo fixes to AGG&amp;rsquo;s drawing routines.&lt;/p>
&lt;p>waddlesplash refactored media mixer startup to delay it until an application actually connects to the output. This has the advantage of saving time and CPU (and battery, as the hardware output won&amp;rsquo;t be started either) until something actually plays sound. (Ideally we&amp;rsquo;d automatically stop the mixed again when nothing&amp;rsquo;s playing anything, but that&amp;rsquo;s not implemented yet.) This also fixes a lot of the &amp;ldquo;performance time too large!&amp;rdquo; crashes seen over the past year or two.&lt;/p>
&lt;p>waddlesplash improved the environment-parsing routine in &lt;code>launch_daemon&lt;/code>.&lt;/p>
&lt;p>korli ran a code spellchecker on app_server and registrar, and fixed the problems it found.&lt;/p>
&lt;h3 id="file-systems">File systems&lt;/h3>
&lt;p>anujbillore-0-0 added some clarifying comments, fixed a hash lookup, implemented proper handling for an error path, and added a check for the minimum partition size in BTRFS.&lt;/p>
&lt;p>waddlesplash changed BFS to send live-query rename/move notifications at the same time as node monitor notifications, fixing stale data being seen in such live-query notifications and potentially confusing applications.&lt;/p>
&lt;p>sleipbyte added some handling for missing attribute forks on inodes.&lt;/p>
&lt;h3 id="networking">Networking&lt;/h3>
&lt;p>vighnesh-sawant fixed a socket leak in the Bluetooth stack, and also split the basic service-discovery server in the &lt;code>bluetooth_server&lt;/code> to separate files.&lt;/p>
&lt;p>shivamsinghydv fixed a problem in &lt;code>bluetooth_server&lt;/code> that was leading to crashes in some circumstances.&lt;/p>
&lt;p>phoudoin added support for &amp;ldquo;nsswitch&amp;rdquo; DNS resolution modules to be configured for &lt;code>libnetwork.so&lt;/code>, potentially paving the way for mDNS support.&lt;/p>
&lt;p>waddlesplash added support for &lt;code>B_SELECT_DISCONNECTED&lt;/code> (aka &lt;code>POLLHUP&lt;/code>, etc.) in socket notifications, fixing a test from the BSDs.&lt;/p>
&lt;h3 id="drivers">Drivers&lt;/h3>
&lt;p>Mahmoussam implementing powering off of MMC/SDHCI devices when there&amp;rsquo;s no voltage range support, and did a lot of work on the initialization process for eMMC devices.&lt;/p>
&lt;p>waddlesplash imported the &lt;code>zydwifi1211&lt;/code> driver (aka &lt;code>zyd&lt;/code> from FreeBSD) and implemented some missing features it needed in the FreeBSD compatibility layer. (However, it&amp;rsquo;s not clear if it works or not, or if we need some other changes for it yet.)&lt;/p>
&lt;h3 id="libroot--kernel">libroot &amp;amp; kernel&lt;/h3>
&lt;p>waddlesplash split some functionality out of the very large VM subsystem source files into much more reasonably sized files, such as various initialization routines and the page writer. He also moved a busy-page notification to a more appropriate place, removed a redundant field from the page queues, and continued his (work-in-progress, not yet merged) work on the page writer refactor.&lt;/p>
&lt;p>waddlesplash, following a tip from smrobtzz, pulled in a number of files from upstream glibc and adjusted the build system to gain proper 128-bit &lt;code>long double&lt;/code> support in libroot&amp;rsquo;s math routines. This fixes some crashes on ARM64, and hopefully also RISC-V.&lt;/p>
&lt;p>waddlesplash fixed a minor &amp;ldquo;leak&amp;rdquo; of memory in the bootloader&amp;rsquo;s splash screen code (in reality all the memory would be cleaned up later, but it matters for efficiency in kernel-bootloader handoff.) He also increased the &amp;ldquo;kernel arguments&amp;rdquo; memory chunk size, avoiding OOMs and other problems on some rare configurations (like &amp;ldquo;bootstrapped&amp;rdquo; images.)&lt;/p>
&lt;p>korli added &lt;code>sigaction&lt;/code> to the POSIX error mapper (used for compatibility with applications that can&amp;rsquo;t handle BeOS/Haiku&amp;rsquo;s negative error codes.)&lt;/p>
&lt;p>waddlesplash refactored a part of SMP support to avoid having a lot of atomic values on the same CPU cache line.&lt;/p>
&lt;h3 id="build-system">Build system&lt;/h3>
&lt;p>KapiX continued work on refactoring the unit tests, fixing the build of more modules and refactoring many tests, including some for the kernel, app_server, libroot, and more. He also worked on the &amp;ldquo;test&amp;rdquo; image profile, a setup designed to create a Haiku image pre-set for unit testing.&lt;/p>
&lt;p>waddlesplash (building on some proposed changes by others) fixed building GCC2 with GCC14+, allowing the CI system to upgrade to a newer Linux distro release.&lt;/p>
&lt;p>waddlesplash refactored how &lt;code>libroot_build&lt;/code> (the compatibility layer for implementing various Haiku-specific methods on other OSes, so that Haiku can be cross-compiled on such targets) handles &lt;code>errno&lt;/code>, fixing a number of bugs where stale or incorrect &lt;code>errno&lt;/code>s would be read, which caused misbehavior in &lt;code>mimeset&lt;/code> and other tools.&lt;/p>
&lt;p>HalonixTheFirst added a fs_shell harness for the EXFAT filesystem.&lt;/p>
&lt;p>nephele added a warning to &lt;code>./configure&lt;/code> when some necessary static libraries could not be found.&lt;/p>
&lt;p>SED4906 fixed typos for &amp;ldquo;unknown&amp;rdquo; across the entire tree.&lt;/p>
&lt;p>waddlesplash added a missing deletion of a temporary file from the MMC image target, reducing confusion.&lt;/p>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;p>jscipione did some significant cleanup and clarification to &lt;code>BEntry&lt;/code> and &lt;code>BStatable&lt;/code> documentation. He also added a note about &lt;code>MenusBeginning()&lt;/code> in the BWindow documentation.&lt;/p>
&lt;h3 id="arm--risc-v">ARM &amp;amp; RISC-V&lt;/h3>
&lt;p>smrobtzz implemented basic support for SMP (multiple CPU cores/threads) for ARM64, enough for it to work in QEMU, and also fixed running with some versions of the EDK2 EFI firmware (which QEMU ships with), some problems with &lt;code>system_time&lt;/code>, and other issues.&lt;/p>
&lt;p>smrobtzz and waddlesplash updated a lot of HaikuPorts cross-compilation recipes, cleaned up the &amp;ldquo;bootstrapping&amp;rdquo; procedure, and then upgraded the base ARM64 package set to work properly with the new port configuration. (This means ARM64 builds using the binary packages, as is default, now work out-of-the-box on many QEMU configurations.)&lt;/p>
&lt;p>waddlesplash fixed a TODO about using atomics in the RISC-V thread-local storage code.&lt;/p>
&lt;h3 id="are-we-beta6-yet">Are we beta6 yet?&lt;/h3>
&lt;p>Not yet. A WebPositive release is pending, and there are a few other bugs in Haiku that need to be fixed, too.&lt;/p>
&lt;h3 id="thats-all-folks">That&amp;rsquo;s all, folks!&lt;/h3>
&lt;p>Thanks again to all who contribute to Haiku, and especially those donors who make my contract possible!&lt;/p></description></item><item><title>[GSoC 2026] Expanding the functionality of the Haiku Devices Application</title><link>https://www.haiku-os.org/blog/aquamatic123/2026-05-07_gsoc_2026_expanding_the_functionality_of_the_haiku_devices_application/</link><author>aquamatic123</author><pubDate>Thu, 07 May 2026 22:10:41 -0400</pubDate><guid>https://www.haiku-os.org/blog/aquamatic123/2026-05-07_gsoc_2026_expanding_the_functionality_of_the_haiku_devices_application/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>Hello! My name is Leo Rouleau, a first-year software engineering student at Polytechnique Montréal. I chose to apply for Haiku because of my interest in lower-level programming and operating systems. Having worked on projects involving microcontrollers and custom interpreters in C, C++, and Java, I&amp;rsquo;ve found systems-level development to be the most engaging challenge.&lt;/p>
&lt;h1 id="project-overview">Project Overview&lt;/h1>
&lt;p>Haiku’s current Devices application provides a basic list of connected hardware, but it lacks the features necessary to function as a true management utility. This project aims to transform Devices into a full-fledged hardware manager, allowing users to view detailed technical specifications and perform administrative tasks directly from the GUI.&lt;/p>
&lt;h1 id="goals">Goals&lt;/h1>
&lt;h2 id="driver-mapping">Driver mapping&lt;/h2>
&lt;p>Display the active driver module name and its absolute path for the device (/dev).&lt;/p>
&lt;h2 id="state-management">State management&lt;/h2>
&lt;p>Implement a graphical toggle to block or blacklist drivers with warnings for system restarts&lt;/p>
&lt;h2 id="usb-and-bluetooth-support">USB and Bluetooth support&lt;/h2>
&lt;p>Increase the application’s ability to inspect dynamic buses. For example, USB devices will display deep interface descriptors and HID report formats, and Bluetooth would automatically be populated correctly within the tree.&lt;/p>
&lt;h2 id="compatibility-report">Compatibility Report&lt;/h2>
&lt;p>Develop a serialization logic to export the system’s hardware tree into a standardized report.&lt;/p>
&lt;h2 id="bug-tracker">Bug Tracker&lt;/h2>
&lt;p>Create a shortcut to open the Haiku Trac bugtracker with a report containing the hardware specifications of a selected device.&lt;/p>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>This was a blog to introduce myself to the community and the project I will be taking on this summer for GSoC 2026.
Thank you for reading!&lt;/p></description></item><item><title>[GSoC 2026] Bluetooth: HCI Improvements &amp; HID Profile | Haiku Project</title><link>https://www.haiku-os.org/blog/mohammedrattia/2026-05-03_gsoc_2026_bluetooth_hci_improvements__hid_profile__haiku_project/</link><author>mohammedrattia</author><pubDate>Sun, 03 May 2026 16:46:03 +0300</pubDate><guid>https://www.haiku-os.org/blog/mohammedrattia/2026-05-03_gsoc_2026_bluetooth_hci_improvements__hid_profile__haiku_project/</guid><description>&lt;p>Hello! I’m Mohammed R. Attia, a 2nd-year Computer Science Student. I’ve been accepted into Google Summer of Code (GSoC) 2026 with Haiku, with my proposal titled “Modernizing Haiku’s Bluetooth Stack: HCI Completion and HID Profile Implementation.”&lt;/p>
&lt;h2 id="about-me">About Me&lt;/h2>
&lt;p>I consider myself a competitive programmer and a software engineer. I haven’t decided on a specific specialization in software engineering just yet; rather, I’m interested in systems development and low-level programming. You can check my GitHub for more information about my latest projects. I go by the handle mohammedrattia in many places on the internet, so feel free to reach out :).&lt;/p>
&lt;h3 id="how-did-i-get-here">How did I get here?&lt;/h3>
&lt;p>I first learned about Haiku while searching for GSoC organizations to contribute to. It was my first time learning about a desktop operating system other than the famous trio: Windows, macOS, and Linux. So, I started by reading the GSoC guide and joining IRC. I remember that the process was smooth because the guide contained everything, and people on IRC were welcoming and supportive. Then, I started working towards building Haiku, and I got my first commit merged into Haiku after several days.&lt;/p>
&lt;h2 id="current-goals">Current Goals&lt;/h2>
&lt;p>The main goal of my proposal in GSoC is to modernize the Bluetooth stack. Currently, the Bluetooth stack in Haiku can’t communicate effectively with modern Bluetooth devices because of the outdated standards it uses. However, making the Bluetooth core perfectly align with modern standards won’t benefit Haiku users because it would still need a Bluetooth Profile to perform a useful task. One of the most common uses of Bluetooth is Human Interface Devices (HID) (e.g., keyboards and mice). Accordingly, this project will build the HID Bluetooth profile to provide useful functionality for Haiku users.&lt;/p>
&lt;p>The following three sub-sections contain a brief specification for the goals of the project from my GSoC proposal.&lt;/p>
&lt;h3 id="modern-hci-event--command-handling">Modern HCI Event &amp;amp; Command Handling&lt;/h3>
&lt;p>Build upon the recent SSP/EIR groundwork by implementing the remaining missing HCI commands, which should fix core use cases of any Bluetooth system, including: inquiry, make discoverable, pair/forget, set local device, start/stop Bluetooth service, and connect/disconnect. This includes handling complex pairing edge cases, implementing persistent Link Key storage and retrieval (so devices do not have to re-pair on every reboot), and handling modern disconnection and timeout events gracefully.&lt;/p>
&lt;h3 id="sdp-client">SDP client&lt;/h3>
&lt;p>After successfully pairing Bluetooth devices, the Bluetooth stack should be able to communicate with other devices to discover what services they can provide. That’s done using the Service Discovery Protocol (SDP), which is currently not implemented on Haiku (except for code that spawns a dedicated new thread for SDP). Implementing an SDP client is critical for any Bluetooth profile to work.&lt;/p>
&lt;h3 id="hid-bluetooth-profile">HID Bluetooth Profile&lt;/h3>
&lt;p>This objective is to develop a working standard Bluetooth profile to make the stack useful for Haiku users. The primary target will be the Human Interface Device (HID) profile to support modern Bluetooth keyboards and mice. Implementing a profile would prove the stack’s end-to-end functionality by translating Bluetooth payloads into actual Haiku system input events.&lt;/p>
&lt;p>For more information about the project please refer to my proposal at the following topic on Haiku&amp;rsquo;s forum:
&lt;a href="https://discuss.haiku-os.org/t/gsoc-2026-modernizing-bluetooth-stack-and-adding-hid-profile-3rd-offering/18924?u=mohammedrattia">https://discuss.haiku-os.org/t/gsoc-2026-modernizing-bluetooth-stack-and-adding-hid-profile-3rd-offering/18924?u=mohammedrattia&lt;/a>&lt;/p>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>This was a brief blog post to introduce myself and my project to the community. Mostly, I’ll publish other posts to talk about the technical details of this. Finally, I’d like to thank Haiku’s community and developers for their support during the application process and my first contribution to Haiku, specifically nephele, waddlesplash, PulkoMandy, and Maximo Castaneda. I’d also like to thank phschafft for the cookies he gave people on IRC ;).&lt;/p>
&lt;p>Thank you for reading!&lt;/p></description></item><item><title>[GSoC 2026] Modernizing Haiku’s Bluetooth stack: Implementing support for HFP profile</title><link>https://www.haiku-os.org/blog/vighnesh-sawant/2026-05-03_gsoc_2026_modernizing_haikus_bluetooth_stack_implementing_support_for_hfp_profile/</link><author>vighnesh-sawant</author><pubDate>Sun, 03 May 2026 12:07:41 +0530</pubDate><guid>https://www.haiku-os.org/blog/vighnesh-sawant/2026-05-03_gsoc_2026_modernizing_haikus_bluetooth_stack_implementing_support_for_hfp_profile/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>Hello! I am Vighnesh Sawant, a first year Computer Science undergrad at the Indian Institute of Technology, Madras (IITM).&lt;br>
I have contributed to the bluetooth stack before GSoC a little, enabling pairing with most bluetooth devices (before you could only really pair with Bluetooth 1.0 devices)
although the implementation is not quite polished yet. Little trivia, my first patch to Haiku ended up breaking DNS resolution on nightly (sorry waddlesplash and Jerome!).&lt;br>
I&amp;rsquo;ll be working on implementing support for the HFP profile in Haiku&amp;rsquo;s bluetooth stack, which enables audio streaming and
hands free voice calls while also laying the groundwork for further improvements of the bluetooth stack.
I&amp;rsquo;ll be mentored by waddlesplash and scottmc.&lt;/p>
&lt;h1 id="project-overview">Project overview&lt;/h1>
&lt;p>Currently Haiku&amp;rsquo;s bluetooth stack only handles pairing of devices, there are no profiles implemented.
That is you can pair devices but would not be able to do anything with them.
It also lacks support for SCO (Synchronous Connection-Oriented) links which are necessary for low latency audio transfer.&lt;br>
As part of this project I plan to implement SCO and RFCOMM support. RFCOMM is a profile that is a prerequisite to the HFP(Hands Free Profile) and also FTP(File Transfer Profile).
At the end of the project users will be able to use bluetooth earphones/headphones with Haiku.&lt;/p>
&lt;h1 id="goals">Goals&lt;/h1>
&lt;h1 id="implement-sco-support-in-the-kernel-stack">Implement SCO support in the kernel stack&lt;/h1>
&lt;p>SCO (Synchronous Connection-Oriented) links are essential for low-latency audio transfer, implementing this will lay the groundwork required for implementing the HFP profile.&lt;/p>
&lt;h1 id="implement-rfcomm-support">Implement RFCOMM support&lt;/h1>
&lt;p>This is essential for the HFP profile and will lay the groundwork for a variety of other profiles like FTP, OBEX and others.&lt;/p>
&lt;h1 id="implement-serial-port-profile">Implement Serial Port Profile&lt;/h1>
&lt;p>After addition of RFCOMM support this is a low-hanging fruit, also required for isolated testing of RFCOMM&lt;/p>
&lt;h1 id="implement-the-hfp-profile-for-bluetooth">Implement the HFP profile for Bluetooth&lt;/h1>
&lt;p>HFP provides support for two-way voice calls and remote call control, like pickup call, cut call, increase volume, etc.&lt;/p>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>Thanks everyone from the community for cheering us and looking forward to a productive GSoC.&lt;/p></description></item><item><title>Haiku to mentor 3 students in Google Summer of Code 2026</title><link>https://www.haiku-os.org/news/2026-05-01_haiku_mentors_3_students_in_gsoc/</link><pubDate>Fri, 01 May 2026 08:00:00 +0000</pubDate><guid>https://www.haiku-os.org/news/2026-05-01_haiku_mentors_3_students_in_gsoc/</guid><description>&lt;p>For many years now, Haiku is a regular participant in the Google Summer of Code program, which
offers paid mentorship to people willing to work full time on Haiku for a few months. Google
handles the payments, while mentors from our developer team handle the onboarding of the new
contributors and guide them through the project.&lt;/p>
&lt;p>&lt;a href="./community/gsoc/2026">Read more&lt;/a> about Google Summer of Code 2026.&lt;/p>
&lt;p>We received several great applications this year, and 3 developers were selected!&lt;/p>
&lt;ul>
&lt;li>Aquamatic, mentored by KapiX and Korli, will work on expanding the Devices application and making it more useful.&lt;/li>
&lt;li>Mohammed R. Attia and Vighnesh Sawant, mentored by Waddlesplash, Scottmc and PulkoMandy, will work together on improving Bluetooth support. Mohammed will focus on HID devices (mouses and keyboards) while Vighnesh will work on HFP and audio support.&lt;/li>
&lt;p>Please welcome them to the community! You may have already met them on the forums and IRC.
We're looking forward to a very productive summer and a lot of progress on these important topics!&lt;/p></description></item><item><title>Haiku Activity &amp; Contract Report, March 2026 (ft. ARM64)</title><link>https://www.haiku-os.org/blog/waddlesplash/2026-04-13-haiku_activity_contract_report_march_2026/</link><author>waddlesplash</author><pubDate>Mon, 13 Apr 2026 22:00:00 -0400</pubDate><guid>https://www.haiku-os.org/blog/waddlesplash/2026-04-13-haiku_activity_contract_report_march_2026/</guid><description>&lt;p>This report covers hrev59431 through hrev59569.&lt;/p>
&lt;h3 id="arm64">ARM64&lt;/h3>
&lt;p>The biggest news this month is probably all the work that&amp;rsquo;s been done on support for ARM64, largely thanks to contributors smrobtzz and SED4906!&lt;/p>
&lt;p>smrobtzz contributed the bulk of the work, including fixes for building on macOS on ARM64, drivers for the Apple S5L UART, fixes to the kernel base address, clearing the frame pointer before entering the kernel, mapping physical memory correctly, the basics for userland, and more. SED4906 contributed some fixes to the bootloader page mapping, and &lt;code>runtime_loader&lt;/code>&amp;rsquo;s page-size checks.&lt;/p>
&lt;p>Combined, these changes allow the ARM64 port to get to the desktop in QEMU. There&amp;rsquo;s &lt;a href="https://discuss.haiku-os.org/t/my-haiku-arm64-progress/19044">a forum thread&lt;/a>, complete with screenshots, for anyone interested in following along.&lt;/p>
&lt;h3 id="applications">Applications&lt;/h3>
&lt;p>jscipione fixed a number of problems in Tracker, including problems with backgrounds, redrawing, Trash visibility, error checks, and more. nathan242 fixed a crash when cancelling empty-trash operations, problems with selected number formatting in the status view, and windows coming to foreground when not dragging. madmax fixed live updating of addon shortcuts.&lt;/p>
&lt;p>mohammedrattia (a GSoC &amp;lsquo;26 prospective) fixed an inefficiency TODO in MediaPlayer&amp;rsquo;s I/O code.&lt;/p>
&lt;p>humdinger implemented &amp;ldquo;labels&amp;rdquo; in Mail, complete with a &amp;ldquo;Label as&amp;rdquo; addon in Tracker. Previously, only &amp;ldquo;status&amp;rdquo; could be used to set a custom label for emails, but that wasn&amp;rsquo;t quite correct as this is usually a fixed field in IMAP. The new &amp;ldquo;label&amp;rdquo; system is stored locally only, and not sent to the server.&lt;/p>
&lt;p>OscarL added better handling for unnamed thermal data sources in ActivityMonitor.&lt;/p>
&lt;p>YashSuthar983 (a new contributor) implemented a &amp;ldquo;barber pole&amp;rdquo; animation for downloads of indeterminate sizes in WebPositive.&lt;/p>
&lt;p>nipos fixed WebPositive to not reopen the last tab on next startup when it&amp;rsquo;s deliberately closed to exit WebPositive.&lt;/p>
&lt;p>Aquamatic123 (a GSoC &amp;lsquo;26 prospective) implemented &amp;ldquo;Order by Bus&amp;rdquo; sorting in the Devices application.&lt;/p>
&lt;p>jackburton79 added a missing initialization of the cursor foreground color in Terminal&amp;rsquo;s replicant mode.&lt;/p>
&lt;h3 id="command-line-tools">Command line tools&lt;/h3>
&lt;p>waddlesplash implemented support for automatic cleanup of old package states in the Package Kit, and made &lt;code>pkgman&lt;/code> offer to do this after all installs, updates, or uninstalls. The cleanup will only remove states that are at least 30 days old, but will also keep at least 10 states even if some (or all) are older than 30 days. This should hopefully provide a good balance between disk space usage and &amp;ldquo;revert-ability&amp;rdquo;. (SoftwareUpdater doesn&amp;rsquo;t do this yet; ideally that will be implemented too, perhaps done by default without prompting but with a persistent setting to disable it, for users who want to keep more states than that.)&lt;/p>
&lt;h3 id="kits">Kits&lt;/h3>
&lt;p>waddlesplash refactored &lt;code>BBlockCache&lt;/code> (a memory-caching class used by &lt;code>BMessage&lt;/code> and others), &lt;code>BTokenSpace&lt;/code>, and &lt;code>BLooperList&lt;/code> to use lighter locks, removing the need for some semaphores and improving performance.&lt;/p>
&lt;p>waddlesplash marked a few deprecated functions (in &lt;code>BMimeType&lt;/code> and &lt;code>BResources&lt;/code>) with the new &lt;code>_DEPRECATED&lt;/code> macro, which sets a function attribute that causes compilers to emit &lt;code>-Wdeprecated&lt;/code> when they&amp;rsquo;re used.&lt;/p>
&lt;p>KapiX refactored the Support Kit&amp;rsquo;s tests, modernizing them and making it easier to write new tests.&lt;/p>
&lt;p>X512 optimized the &lt;code>BView::{Fill|Stroke}Polygon&lt;/code> that takes an aray of points.&lt;/p>
&lt;p>Horizons (a new contributor!) fixed SSL certificate validation in &lt;code>BSecureSocket&lt;/code>.&lt;/p>
&lt;p>X512 fixed a number of incompatibilities in the BPicture format vs. BeOS R5&amp;rsquo;s, including BBitmaps, font shear, subpictures, and more.&lt;/p>
&lt;p>nipos changed scrollbars to have a fixed minimum size, and not to scale smaller even if the font size would indicate it.&lt;/p>
&lt;p>waddlesplash optimized some BString &lt;code>Find&lt;/code> methods to use some C &lt;code>mem&lt;/code> routines rather than naive loops (and madmax came by later to fix some logic errors in the optimizations.)&lt;/p>
&lt;h3 id="servers">Servers&lt;/h3>
&lt;p>Goldfish64 fixed app_server passing the wrong hardware cursor size to accelerants.&lt;/p>
&lt;p>vighnesh-sawant (a GSoC &amp;lsquo;26 prospective) fixed &amp;ldquo;inquiry result&amp;rdquo; message processing in the Bluetooth server when devices send multiple responses (which the Bluetooth specification permits.) He also implemented support for more kinds of &amp;ldquo;inquiry result&amp;rdquo; messages, implemented support for basic pairing, fixed duplicates in the remote-devices list, and more.&lt;/p>
&lt;p>mohammedrattia cleaned up one of the local-device lookup functions inside the Bluetooth server. He also fixed the build of a Bluetooth test.&lt;/p>
&lt;p>shivamsinghydv added checks that devices have valid addresses mefore marking them active in the Bluetooth server.&lt;/p>
&lt;p>waddlesplash introduced support app_server (and the Game Kit) for accelerants that have their framebuffer mapped in user space only, and switched the framebuffer and VESA drivers to use this model. (Eventually, all drivers should be switched to use this model, as it&amp;rsquo;s a relic of the &amp;rsquo;90s we certainly don&amp;rsquo;t need to keep&amp;hellip;)&lt;/p>
&lt;h3 id="drivers">Drivers&lt;/h3>
&lt;p>Goldfish64 continued work on Hyper-V support, including the Hyper-V mouse, heartbeat support, time synchronization, the SCSI controller, and more (including all the prerequisites for these features).&lt;/p>
&lt;p>OscarL fixed a debug print in the AMD P-states driver, and fixed the build of the HDA driver with more tracing disabled.&lt;/p>
&lt;p>smrobtzz fixed a bug in the generic USB ethernet driver that was causing some devices to hang when fetching their MAC address.&lt;/p>
&lt;p>smrobtzz fixed the remaining bugs in waddlesplash&amp;rsquo;s work-in-progress changes for USB ethernet drivers in the FreeBSD compatibility layer, allowing those changes to be merged (bringing in more support for ASIX USB Ethernet adapters.)&lt;/p>
&lt;h3 id="file-systems">File systems&lt;/h3>
&lt;p>waddlesplash fixed a missing lock in BFS that was causing assertion failure (or even use after free) KDLs on concurrent deletion of files.&lt;/p>
&lt;p>anujbillore-0-0 (a GSoC &amp;lsquo;26 prospective) added some missing checks to the BTRFS implementation, including for hash collisions in directory lookups.&lt;/p>
&lt;p>nathan242 removed the I/O scheduler from the RAM disk driver, and made it handle I/O requests directly instead. This fixes some out-of-order operations that can potentially happen when the disk block size is larger than the filesystem block size, which is often the case under the RAM disk (this is due to a bug in the I/O scheduler which is being worked on separately.)&lt;/p>
&lt;p>sleipbyte added some new feature flags to the XFS driver.&lt;/p>
&lt;h3 id="libroot--kernel">libroot &amp;amp; kernel&lt;/h3>
&lt;p>waddlesplash refactored how some bookkeeping data structures for userland mutexes are allocated in the kernel, making failures less likely or easier to recover from.&lt;/p>
&lt;p>korli fixed some problems with symlinks to non-existent directories: they need to be handled specially when creating files. (This was discovered running the Golang test suite.)&lt;/p>
&lt;p>korli fixed an inconsistency with buffer size handling in the network stack. (This was also discovered by the Golang test suite.)&lt;/p>
&lt;p>waddlesplash replaced &lt;code>strchr&lt;/code> and &lt;code>strcpy&lt;/code> with musl&amp;rsquo;s (more optimized) versions.&lt;/p>
&lt;p>waddlesplash and SED4906 fixed some races in the x86 global TLB invalidation routines (it&amp;rsquo;s not clear if these would&amp;rsquo;ve actually been a problem without some features that we don&amp;rsquo;t enable yet.)&lt;/p>
&lt;p>waddlesplash did some major overhauls of the SMP message logic (which is used by the kernel to communicate between different cores/threads of a CPU, which is used to implement a lot of basic primitives), to reduce lock waits (using &lt;code>rw_spinlock&lt;/code>s instead of regular spinlocks), avoid broadcasting messages to all cores if we can send them to specific cores, process a message for the current core while waiting for it to be processed on other cores, avoid unnecessary messages and atomic operations, and more.&lt;/p>
&lt;p>waddlesplash enabled some select compiler builtins (e.g. &lt;code>memcpy&lt;/code>) in the kernel. Normally, the kernel uses no compiler builtins as it&amp;rsquo;s compiled with &lt;code>-ffreestanding&lt;/code> (which tells the compiler that we aren&amp;rsquo;t in a standard userland environment with a C library), but a lot of the builtin functions allow the compiler to optimize the code better. So, other projects (e.g. Linux, FreeBSD) that use &lt;code>-ffreestanding&lt;/code> use special headers to re-enable the use of builtins and thus the optimizations that come with them; and now we have started to do the same.&lt;/p>
&lt;p>Goldfish64 fixed IO-APIC initialization on some PCIe systems (a refactor for Hyper-V support had exposed some problems with it.)&lt;/p>
&lt;p>waddlesplash fixed a crash when trying to use the guarded or debug heaps in libroot, which was due to locale initialization order changes.&lt;/p>
&lt;p>waddlesplash&amp;rsquo;s refactor of swap commitments (done a few months ago) was merged, improving system stability and performance in conditions where swap is in use. He also cleaned up some permissions and memory protection checks in the kernel, and refactored how committed-size storage is handled across VM objects to fix some TODOs and inconsistencies.&lt;/p>
&lt;p>waddlesplash refactored how the kernel heaps are created and initialized, to allow the debug or guarded heap to be set at boot time (either via the bootloader or the kernel settings file) on all nightly builds, instead of requiring a custom build to be made to use these heaps. This will allow them to be enabled easily by users in testing various bugs; and indeed, they&amp;rsquo;ve already proven valuable in diagnosing a few different problems.&lt;/p>
&lt;p>waddlesplash fixed a number of race condition problems between VM cache operations and filesystem I/O that led to deadlocks, by refactoring a number of routines. (He also added a testcase for the problems.)&lt;/p>
&lt;p>waddlesplash fixed a few &lt;code>kqueue&lt;/code> incompatibilities, including that FD closure was reported instead of being silently discarded.&lt;/p>
&lt;p>madmax fixed blocklisting files that contain spaces in their names in the bootloader.&lt;/p>
&lt;p>waddlesplash renamed &lt;code>PTHREAD_RECURSIVE_MUTEX_INITIALIZER&lt;/code> to correctly have &lt;code>_NP&lt;/code> in its name (same as glibc and others do), as it&amp;rsquo;s non-POSIX.&lt;/p>
&lt;h3 id="build-system">Build system&lt;/h3>
&lt;p>fruitdelapassion enabled &lt;code>-Werror&lt;/code> for more drivers.&lt;/p>
&lt;p>humdinger added &lt;code>disroot.org&lt;/code> as a predefined email provider.&lt;/p>
&lt;p>nephele fixed the build of libroot under Clang.&lt;/p>
&lt;p>waddlesplash eliminated the need for a lot of userland to include kernel headers.&lt;/p>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;p>cafeina added documentation for &lt;code>BCertificate&lt;/code>, &lt;code>BProxySecureSocket&lt;/code>, &lt;code>BSecureSocket&lt;/code>, and &lt;code>BSocket&lt;/code>.&lt;/p>
&lt;p>OscarL improved the clarity of one part of the Device Manager documentation.&lt;/p>
&lt;p>waddlesplash removed some obsolete VM documentation, and updated the documentation for the swap implementation.&lt;/p>
&lt;h3 id="are-we-beta6-yet">Are we beta6 yet?&lt;/h3>
&lt;p>Not quite. There are a few bugs in WebPositive, among others, that are still blocking starting the release process&amp;hellip; but a number of the other regressions have now been fixed, at least.&lt;/p>
&lt;h3 id="thats-all-folks">That&amp;rsquo;s all, folks!&lt;/h3>
&lt;p>Thanks again to all who contribute to Haiku, and especially those donors who make my contract possible!&lt;/p></description></item><item><title>Haiku Activity &amp; Contract Report, February 2026</title><link>https://www.haiku-os.org/blog/waddlesplash/2026-03-05-haiku_activity_contract_report_february_2026/</link><author>waddlesplash</author><pubDate>Thu, 05 Mar 2026 21:30:00 -0400</pubDate><guid>https://www.haiku-os.org/blog/waddlesplash/2026-03-05-haiku_activity_contract_report_february_2026/</guid><description>&lt;p>This report covers hrev59356 through hrev59430.&lt;/p>
&lt;h3 id="applications">Applications&lt;/h3>
&lt;p>humdinger fixed Mail to properly set the &amp;ldquo;thread&amp;rdquo; attribute on mail files when sending emails. He also added some missing files to the translation set, and implemented &amp;ldquo;labels&amp;rdquo;, a new feature designed to replace custom &amp;ldquo;statuses&amp;rdquo;.&lt;/p>
&lt;p>humdinger made some followup changes to make the &amp;ldquo;Translate application names&amp;rdquo; Locale preference be respected in more cases.&lt;/p>
&lt;p>jscipione fixed Tracker to draw dragged files and folders in a &amp;ldquo;selected&amp;rdquo; state, making them easier to see no matter what they are dragged overtop of. (There&amp;rsquo;s some discussion about whether this is the most aesthetically pleasing option, however.) He also fixed some problems with sorting, background images, and more.&lt;/p>
&lt;p>X512 (building on an earlier patch) reworked StyledEdit to always choose the lowest number for &amp;ldquo;Untitled&amp;rdquo; documents, fixing a quite old ticket.&lt;/p>
&lt;p>madmax made a number of fixes to CharacterMap, including fixing block search in some cases, increasing the maximum size of the blocks list view, improving character layout, and more.&lt;/p>
&lt;p>PulkoMandy (based on an older patch by mmu_man) added a &amp;ldquo;location selector&amp;rdquo; to Deskbar preferences, similar to Screensaver&amp;rsquo;s &amp;ldquo;corner selector&amp;rdquo;. This makes it much easier to discover that the Deskbar can be moved, and an easier way to do it than grabbing the small resize handles.&lt;/p>
&lt;p>waddlesplash fixed Terminal and Expander to quit using &lt;code>_exit&lt;/code> instead of &lt;code>exit&lt;/code> in forked child processes, fixing some potential bugs if global destructors are incorrectly called in the children.&lt;/p>
&lt;p>nephele simplified how settings are saved in LaunchBox.&lt;/p>
&lt;h3 id="command-line-tools">Command line tools&lt;/h3>
&lt;p>waddlesplash refactored &lt;code>time_stats&lt;/code> to use &lt;code>posix_spawn&lt;/code> instead of fork+exec.&lt;/p>
&lt;h3 id="kits">Kits&lt;/h3>
&lt;p>priyanshu-gupta07 contributed some unit tests for BStopWatch.&lt;/p>
&lt;p>X512 fixed the &amp;ldquo;video mixer&amp;rdquo; Media Kit add-on, and added it to the base install. (It&amp;rsquo;s mostly useful as a demonstration of video processing media nodes.)&lt;/p>
&lt;p>korli changed the &amp;ldquo;print size&amp;rdquo; logic to switch to the next unit at 1000 instead of 1024 (e.g. &amp;ldquo;0.9 GiB&amp;rdquo; instead of &amp;ldquo;1,000 MiB&amp;rdquo;).&lt;/p>
&lt;p>PulkoMandy changed &lt;code>BGeolocation&lt;/code> to query the &amp;ldquo;Beacon DB&amp;rdquo; for geolocation data (if requested by users), as the Mozilla Location Service has been discontinued.&lt;/p>
&lt;p>waddlesplash made some changes to various Kits to avoid statically-allocated &lt;code>BLocker&lt;/code> objects. (These can cause problems with applications that &lt;code>fork&lt;/code>, which native Be/Haiku applications mostly shouldn&amp;rsquo;t need to, but ported GUI applications might.) He also added some assertions to prevent &lt;code>fork&lt;/code>&amp;lsquo;ed GUI applications from trying to continue to use the GUI, or from exiting normally. (While at it, he also did some cleanup to BGameSoundDevice.)&lt;/p>
&lt;p>nathan242 fixed handling of the &amp;ldquo;Delete&amp;rdquo; key in focused text fields when there&amp;rsquo;s a disabled shortcut that also is &amp;ldquo;Delete&amp;rdquo;.&lt;/p>
&lt;h3 id="servers">Servers&lt;/h3>
&lt;p>KapiX fixed a crash in app_server when processing gradients with no color stops.&lt;/p>
&lt;p>waddlesplash changed net_server and launch_daemon to use &lt;code>posix_spawn&lt;/code> in place of fork+exec.&lt;/p>
&lt;h3 id="drivers">Drivers&lt;/h3>
&lt;p>waddlesplash disabled the &lt;code>virtio_block&lt;/code> driver, which unfortunately appears to be broken under multithreaded use (at a minimum), and has been for years. (The &lt;code>virtio_scsi&lt;/code> driver, or any of the other virtio drivers for that matter, appear to be unaffected.)&lt;/p>
&lt;p>korli added some missing parameters to the NVMe driver&amp;rsquo;s feature management APIs.&lt;/p>
&lt;p>waddlesplash synchronized most of the OpenBSD WiFi drivers with upstream, pulling in a number of bugfixes.&lt;/p>
&lt;p>OscarL added another device to the Intel GART driver (part of how memory is managed for iGPUs).&lt;/p>
&lt;p>waddlesplash disabled the &amp;ldquo;zero-copy&amp;rdquo; buffer optimization in the EHCI (USB2) driver, as it seems to have caused crashes and data corruption on at least some hardware.&lt;/p>
&lt;h3 id="file-systems">File systems&lt;/h3>
&lt;p>waddlesplash reworked how packagefs deals with low-memory conditions to degrade performance instead of hard-failing I/O operations in more cases.&lt;/p>
&lt;p>waddlesplash fixed a crash in the NTFS driver when failing to mount some partitions.&lt;/p>
&lt;p>AbdullahZulfiqar2005 added support for reading Zstd-compressed files in the BTRFS driver.&lt;/p>
&lt;p>sleipbyte made a number of changes to the XFS driver, including fixing a compilation error, implementing the &lt;code>rewind_dir&lt;/code> hook so that Tracker can list entries, fixing SMAP violations, partition identification, and more.&lt;/p>
&lt;p>kallisti5 added some better logging in the NFSv2 driver.&lt;/p>
&lt;p>nathan242 fixed a crash when creating a FAT filesystem on a disk image.&lt;/p>
&lt;p>waddlesplash fixed a rare crash in BFS that could occur when checking a corrupt filesystem.&lt;/p>
&lt;p>waddlesplash made some refactors to RAMFS, cleaning up support for an allocation size tracing routine, consolidating some node monitoring logic, and fixing node monitor events for regular files.&lt;/p>
&lt;p>grep-name (a new contributor!) fixed some warnings and potential bugs in BTRFS.&lt;/p>
&lt;p>waddlesplash fixed a division-by-zero caused by certain query strings in the query parser.&lt;/p>
&lt;h3 id="libroot--kernel">libroot &amp;amp; kernel&lt;/h3>
&lt;p>waddlesplash reinstated some architecture-specific code in the &lt;code>printf&lt;/code> implementation to fix some rare crashes.&lt;/p>
&lt;p>waddlesplash optimized some swap-related routines in the kernel memory management code.&lt;/p>
&lt;p>korli added a definition &lt;code>GETENTROPY_MAX&lt;/code> to &lt;code>&amp;lt;limits.h&amp;gt;&lt;/code>.&lt;/p>
&lt;p>Goldfish64 (a new contributor!) contributed better support for Hyper-V hosts, including proper TSC calibration and a brand-new Hyper-V VMbus driver.&lt;/p>
&lt;p>Amir-Ramez (a new contributor!) implemented address space reservation for the runtime_loader heap, improving efficiency (especially when ASLR is disabled.)&lt;/p>
&lt;p>waddlesplash reworked the &lt;code>pthread_barrier&lt;/code>s implementation to need fewer syscalls and to fix some races, fixing a hang that could sometimes occur in OpenGL applications.&lt;/p>
&lt;p>waddlesplash made some changes to how TLB invalidations work on x86 to skip unnecessary invalidations (e.g. if one core broadcasts an invalidate to another core, but that other core did a context-switch before receiving the message, it should just skip it), slightly improving performance. The refactor this entailed also paves the way for better support for ASIDs on architectures where they&amp;rsquo;re supported (or even mandatory.)&lt;/p>
&lt;p>waddlesplash fixed the implementation of &lt;code>POSIX_SPAWN_SETSID&lt;/code>, which was previously broken.&lt;/p>
&lt;p>vighnesh-sawant (a new contributor!) added support for the &lt;code>AI_V4MAPPED&lt;/code> flag to the DNS resolver.&lt;/p>
&lt;h3 id="build-system">Build system&lt;/h3>
&lt;p>korli added some flags to &lt;code>configure&lt;/code> to allow building the GCC 2 crosstools with a newer GCC.&lt;/p>
&lt;p>fruitdelapassion made some changes to allow &lt;code>-Werror&lt;/code> to be enabled for more modules, including in netfs, radeon, s3, and more.&lt;/p>
&lt;p>KapiX began a big overhaul of the unit test system, working on simplifying the structure of the unit tests, to reduce the amount of boilerplate and make the tests easier to work with and write.&lt;/p>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;p>waddlesplash made &lt;code>B_QUERY_WATCH_ALL&lt;/code> part of the public API and added documentation for it. Essentially, this flag behaves like &lt;code>B_WATCH_ALL&lt;/code> does for directories, but for queries: it sends node monitor notifications when any entry within a query is changed, not just when entries are changed in ways that cause them to be added or removed from queries.&lt;/p>
&lt;h3 id="are-we-beta6-yet">Are we beta6 yet?&lt;/h3>
&lt;p>Getting closer. I&amp;rsquo;ve had a change refactoring part of the kernel&amp;rsquo;s memory accounting systems (to fix a rather bad regression) up for review for a month, but none of the other kernel developers have had a chance to properly review it yet. More of the Tracker regressions have been fixed, though some remain. Besides those issues, there are around 5 or 6 bugs or regressions that really need to be fixed before we can start working on a release (though some of those are quite complicated and may take a bit to resolve.)&lt;/p>
&lt;h3 id="thats-all-folks">That&amp;rsquo;s all, folks!&lt;/h3>
&lt;p>Thanks again to all who contribute to Haiku, and especially those donors who make my contract possible!&lt;/p></description></item><item><title>Haiku to mentor interns in Google Summer of Code 2026</title><link>https://www.haiku-os.org/news/2026-02-21_haiku_accepted_in_gsoc_2026/</link><pubDate>Sat, 21 Feb 2026 11:47:20 +0000</pubDate><guid>https://www.haiku-os.org/news/2026-02-21_haiku_accepted_in_gsoc_2026/</guid><description>&lt;p>Haiku is proud to once again be part of the Google Summer of Code.
Over the summer, new contributors will work on improving Haiku
and related applications, with help from our mentor team. Google gives the
participants a stipend, which allows them to work full-time on the project without
the need to find another job. &lt;/p>
&lt;p>The goal of the program is to introduce people to the way open source
projects work, and encourage them to become long term contributors. Several
members of the Haiku developer team are indeed former GSoC students.&lt;/p>
&lt;p>&lt;a href="./community/gsoc/2026">Read more&lt;/a> about Google Summer of Code 2026.&lt;/p>
&lt;p>&lt;a href="./community/gsoc/2026/ideas">List of ideas&lt;/a> the participants will build their applications from.&lt;/p>
&lt;p>If you know people that might be interested, point them
to the &lt;a href="https://summerofcode.withgoogle.com">Google Summer of Code site&lt;/a> that has all the relevant information.
Or print out our &lt;a href="./community/gsoc">GSoC flyer&lt;/a> and hand them out!&lt;/p>
&lt;p>The participant application window starts March 16, however students should start
discussing their project for the summer before then.
The coding period spans from late May to August, with an option to continue it until October.&lt;/p></description></item><item><title>Haiku Activity &amp; Contract Report, January 2026</title><link>https://www.haiku-os.org/blog/waddlesplash/2026-02-12-haiku_activity_contract_report_january_2026/</link><author>waddlesplash</author><pubDate>Thu, 12 Feb 2026 23:00:00 -0400</pubDate><guid>https://www.haiku-os.org/blog/waddlesplash/2026-02-12-haiku_activity_contract_report_january_2026/</guid><description>&lt;p>This report covers hrev59262 through hrev59355.&lt;/p>
&lt;h3 id="netlify-changes-pricing-model">Netlify changes pricing model&lt;/h3>
&lt;p>Recently, Netlify, which hosts &lt;a href="https://www.haiku-os.org">www.haiku-os.org&lt;/a>, started switching to a &lt;a href="https://docs.netlify.com/manage/accounts-and-billing/billing/billing-for-credit-based-plans/credit-based-pricing-plans/">credit-based pricing plan&lt;/a>. We&amp;rsquo;re still on the &amp;ldquo;Open Source&amp;rdquo; plan, which gives us a lot of bandwidth for free, but initially the new credit-based version of the &amp;ldquo;Open Source&amp;rdquo; plan had too few credits for how much data we use every month. Additionally, there was a period in December where the site got absolutely slammed with bot traffic (probably LLM-related, or some other especially poorly-designed crawler, as most of the URLs it requested were nonsensical and just returned 404s). We made some changes to try and prevent this in the future, but we still incurred an overage charge for December.&lt;/p>
&lt;p>But after reaching out to Netlify Support with some questions about the overage charge, they actually wound up (without our asking for it!) reversing the charge and upping our monthly credit allotment, which now is more than sufficient for our monthly bandwidth. Thanks, Netlify!&lt;/p>
&lt;h3 id="applications">Applications&lt;/h3>
&lt;p>PulkoMandy added some missing locking to the file panel constructor, fixing broken open/save panel appearances in various applications. He also improved the appearance of drag-bitmaps (for use in drag-and-drop) for files, though there&amp;rsquo;s still more work to be done here.&lt;/p>
&lt;p>Jim906 expanded Tracker&amp;rsquo;s use of the MIME sniffer, making Tracker behave much better about application filetypes on volumes and filesystems with no MIME support.&lt;/p>
&lt;p>nipos adjusted Installer to make its EULA window more font-size sensitive.&lt;/p>
&lt;p>sed4096 cleaned up and finished a patch started years ago to add a &amp;ldquo;disk image menu&amp;rdquo; to DriveSetup, allowing disk images to be worked with directly from there (and no longer needing to go to the command line.) humdinger came by later and cleared up some of the UI texts from the new functionality.&lt;/p>
&lt;p>waddlesplash fixed a crash in Debugger when trying to debug certain large applications, like Mesa/LLVM.&lt;/p>
&lt;p>humdinger implemented Shift+next/previous in Mail, which moves to the next or previous message without changing the status of the current message.&lt;/p>
&lt;p>mull adjusted WebPositive to handle large filenames better in the Downloads window. humdinger came by later and tweaked the scrollbar alignment a bit, and later made a similar fix to Expander.&lt;/p>
&lt;p>apl refactored how internal message keys are managed in HaikuDepot, to improve maintainability and pave the way for future improvements. He also changed the package view to only allow single packages to be selected at a time, fixing an old bug.&lt;/p>
&lt;p>humdinger reworked applications to properly display their own names either in English or localized modes in all their various strings (e.g. &amp;ldquo;Deskbar preferences&amp;rdquo;) depending on whether translated application names are enabled in Locale preferences. (Previously, only the names themselves on the filesystem and the like were affected by the setting.)&lt;/p>
&lt;p>kallisti5 added some basic architecture awareness to the EFI loader installation code in Installer.&lt;/p>
&lt;p>waddlesplash fixed a regression that changes to file size or last-modified in queries weren&amp;rsquo;t live-updating in Tracker.&lt;/p>
&lt;h3 id="command-line-tools">Command line tools&lt;/h3>
&lt;p>cmeerw enabled IPv6 support for &lt;code>telnet&lt;/code>, implemented IPv6 support in &lt;code>netstat&lt;/code> and fixed its filtering functionality, and imported &lt;code>traceroute6&lt;/code> from NetBSD.&lt;/p>
&lt;p>nipos implemented the POSIX-required flags in &lt;code>df&lt;/code>, and reworked its formatting in the non-POSIX mode to be more user-friendly.&lt;/p>
&lt;p>PulkoMandy fixed the check for the BFS signature in &lt;code>makebootable&lt;/code> when working with VMDK or similar formats.&lt;/p>
&lt;p>nathan242 fixed a crash in &lt;code>stat&lt;/code> syscalls printing in &lt;code>strace&lt;/code>.&lt;/p>
&lt;h3 id="kits">Kits&lt;/h3>
&lt;p>SED4096 implemented system sounds in BAlert, so if you set sounds in the Sounds preferences for the &amp;ldquo;alert&amp;rdquo; messages, it should now work.&lt;/p>
&lt;p>waddlesplash refactored Package Kit&amp;rsquo;s BRepositoryCache to report package infos via a callback rather than reading them all into a &lt;code>BPackageInfoSet&lt;/code>. This saves a lot of memory overhead and allocations, and thus also time, for anything that needs to read an entire package repo file.&lt;/p>
&lt;h3 id="servers">Servers&lt;/h3>
&lt;p>nipos adjusted the colors of close and collapse icons of notifications to be more visible in dark mode.&lt;/p>
&lt;p>X512 implemented gradient stroke drawing in BView and app_server. He also reworked PicturePlayer to use a virtual class interface rather than a struct-of-function-pointers, improving type-safety and readability. KapiX then implemented a variety of missing PicturePlayer methods in the BoundingBoxPlayer.&lt;/p>
&lt;p>KapiX removed an incorrect special case for opaque layers in the app_server, fixing blending of transparent pixels for them.&lt;/p>
&lt;p>X512 adjusted the &amp;ldquo;get string bounding boxes&amp;rdquo; app_server API call to have a less idiosyncratic wire format, making it easier to write protocol analyzers.&lt;/p>
&lt;h3 id="drivers">Drivers&lt;/h3>
&lt;p>The remainder of samuelrp84&amp;rsquo;s patchset implementing new touchpad functionality was merged, including two-finger scrolling, edge motion, software button areas, and click finger support; and on the hardware side, driver support for Elantech &amp;ldquo;version 4&amp;rdquo; touchpads, with experimental code for versions 1, 2, and 3. (Version 2, at least, seems to be incomplete and had to be disabled for the time being.)&lt;/p>
&lt;p>Lt-Henry made a number of fixes to the I2C-HID driver (which is not yet enabled by default), implementing some quirks generally supported by Linux as well as other missing logic.&lt;/p>
&lt;p>waddlesplash synchronized the &lt;code>rtl8125&lt;/code> driver with upstream OpenBSD, adding some support for new devices.&lt;/p>
&lt;h3 id="file-systems">File systems&lt;/h3>
&lt;p>nathan242 adjusted &lt;code>write_overlay&lt;/code> (a filesystem layer used to handle writes when booted to the live environment from read-only media) to handle already-existing directories correctly.&lt;/p>
&lt;p>axeld merged some patches from the &amp;ldquo;BFS resize&amp;rdquo; series (though there still remain a bunch more to be merged, and they&amp;rsquo;re not all complete yet.)&lt;/p>
&lt;p>AbdullahZulfiqar2005 fixed the BTRFS driver to not panic when encountering unknown compression types, but to just return an error.&lt;/p>
&lt;p>waddlesplash implemented a minor optimization in the queries code in BFS. He also fixed the shared queries code to not send notifications for deleted nodes when &lt;code>B_QUERY_WATCH_ALL&lt;/code> is set (as deletions will already have been reported), and then exposed &lt;code>B_QUERY_WATCH_ALL&lt;/code> to the public API and added documentation for it.&lt;/p>
&lt;h3 id="libroot--kernel">libroot &amp;amp; kernel&lt;/h3>
&lt;p>cmeerw fixed a problem updating the Neighbor Discovery Protocol cache entries for IPv6. He also implemented Path MTU discovery and multicast support for IPv6.&lt;/p>
&lt;p>beaglejoe submitted a change to fix an internal bootloader header to be able to be included by C files again.&lt;/p>
&lt;p>waddlesplash adjusted what information the internal &lt;code>kernel_version&lt;/code> system information returns (on BeOS it returned some internal number; on Haiku it now returns &lt;code>B_HAIKU_VERSION&lt;/code>), and adjusted &lt;code>uname&lt;/code> to print more sensible information based on this in its &lt;code>release&lt;/code> field.&lt;/p>
&lt;p>waddlesplash fixed a number of minor POSIX compliance issues, such as new declarations in &lt;code>search.h&lt;/code>, &lt;code>unistd.h&lt;/code>, &lt;code>semaphore.h&lt;/code>, cleanups and fixes to &lt;code>limits.h.&lt;/code>, defining &lt;code>getlocalename_l&lt;/code>, and more.&lt;/p>
&lt;p>waddlesplash fixed and consolidated a number of mode checks in the kernel VFS layer, such as file-directory mode checks, open-mode checks, and more. (This fixed some POSIX compliance issues.) He also fixed some error codes both there and in the process group code.&lt;/p>
&lt;p>waddlesplash replaced &lt;code>strtok_r&lt;/code> with musl&amp;rsquo;s version, and made some cleanups in the process.&lt;/p>
&lt;p>korli changed &lt;code>inet_net_ntop&lt;/code> and &lt;code>inet_net_pton&lt;/code> to use the OpenBSD (instead of the NetBSD) versions, as these appear to be more standards-compliant.&lt;/p>
&lt;p>waddlesplash refactored and consolidated how &lt;code>ctype&lt;/code> data is stored and managed in libroot, making the implementation more maintainable, fixing some unclear indirections, and fixing a thread-safety issue. He then cleaned up some code in the character-conversion routines, and fixed the &lt;code>MB_CUR_MAX&lt;/code> value on the default (UTF-8) encoding.&lt;/p>
&lt;p>waddlesplash fixed timezone name handling in some internal time functions, fixing some incorrect &lt;code>strftime&lt;/code> behaviors.&lt;/p>
&lt;p>korli reworked TCP reset handling during connection close, to better match other OSes. He also fixed a typo in a comment.&lt;/p>
&lt;p>waddlesplash introduced the constant &lt;code>DEV_BSIZE&lt;/code> (which is mentioned but not required by POSIX) to &lt;code>sys/param.h&lt;/code> and changed all computations of &lt;code>stat.st_blocks&lt;/code> to use it, fixing a number of issues where filesystems had incorrectly used &lt;code>st_blksize&lt;/code> instead.&lt;/p>
&lt;p>nathan242 fixed some fallbacks for filesystems that don&amp;rsquo;t support &lt;code>SEEK_DATA&lt;/code>/&lt;code>SEEK_HOLE&lt;/code> or &lt;code>select()&lt;/code> (like the &lt;code>write_overlay&lt;/code>), fixing &lt;code>cp&lt;/code> on systems with the &lt;code>write_overlay&lt;/code> activated.&lt;/p>
&lt;p>archeYR fixed the EFI loader to not scan devices with block sizes of 0, fixing crashes on some devices.&lt;/p>
&lt;p>korli implemented getresuid(), setresuid(), getresgid(), setresgid() from POSIX-2024.&lt;/p>
&lt;p>waddlesplash exposed &lt;code>posix_spawn_file_actions_add[f]chdir&lt;/code>. (It was implemented a while ago, but never added to the system headers.)&lt;/p>
&lt;p>waddlesplash dropped a BeOS-only routine (&lt;code>exect&lt;/code>) from the public ABI when not building for BeOS-compatible platforms.&lt;/p>
&lt;h3 id="build-system">Build system&lt;/h3>
&lt;p>jscipione fixed a TODO to use &lt;code>B_DEV_NAME_LENGTH&lt;/code> rather than a hardcoded &lt;code>128&lt;/code> in a few places. OscarL came by later and fixed even more places.&lt;/p>
&lt;p>PulkoMandy removed the build-system dependency on &lt;code>bc&lt;/code>, and switched to using POSIX shell to do arithmetic calculations instead.&lt;/p>
&lt;p>KapiX fixed the build of many unit tests, and changed the unit tests to work with test_app_server (an app_server that starts and runs in a window). He also introduced (based on an old patch by kallisti5) a &lt;code>haiku_unittests&lt;/code> package target, and an image profile with the package activated by default. (The idea is to eventually be able to run the unit tests automatically in CI.)&lt;/p>
&lt;p>PulkoMandy bumped many copyright years in package metadata and menus to 2026.&lt;/p>
&lt;p>waddlesplash (finally) synchronized the set of packages used to build Haiku with current HaikuPorts for x86_gcc2h and x86_64, fixing some build issues and updating the tool used to generate the build-packages repository in the process. madmax came by later and fixed the build for the architectures that don&amp;rsquo;t yet have the new packages (like RISC-V).&lt;/p>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;p>cafeina wrote documentation for MailAttachment, MailDaemon, and mail_encoding.&lt;/p>
&lt;p>PulkoMandy added some documentation about some known POSIX non-comformities in Haiku.&lt;/p>
&lt;p>OscarL fixed some typos in the &amp;ldquo;filesystems overview&amp;rdquo; documentation.&lt;/p>
&lt;h3 id="are-we-beta6-yet">Are we beta6 yet?&lt;/h3>
&lt;p>Getting closer. A number of issues have been fixed or now have fixes pending (including one memory/swap-related one that&amp;rsquo;s among the more critical regressions), but there&amp;rsquo;s still more to be done.&lt;/p>
&lt;h3 id="thats-all-folks">That&amp;rsquo;s all, folks!&lt;/h3>
&lt;p>Thanks again to all who contribute to Haiku, and especially those donors who make my contract possible!&lt;/p></description></item><item><title>The Gerrit code review iceberg, episode 5</title><link>https://www.haiku-os.org/blog/pulkomandy/2026-02-03-the_gerrit_pending_review_iceberg_5/</link><author>pulkomandy</author><pubDate>Tue, 03 Feb 2026 13:30:00 +0100</pubDate><guid>https://www.haiku-os.org/blog/pulkomandy/2026-02-03-the_gerrit_pending_review_iceberg_5/</guid><description>&lt;p>Hello everyone!&lt;/p>
&lt;p>We continue our exploration of old change requests on the Gerrit code review tool that have been
waiting for several years for someone to pick them up and get them merged. There are currently
316 commits awaiting review in the code review tool. This is quite a bit down from the 350 at the
end of last year. It looks like these blog posts are having some positive effect, and also some
of the developers could spend a bit more time on Haiku during their winter break?&lt;/p>
&lt;p>This time we&amp;rsquo;ll be looking at more changes from may and june 2021. Let&amp;rsquo;s see what people were
experimenting with back then!&lt;/p>
&lt;h1 id="change-3158---add-a-deskbar-location-menu">&lt;a href="https://review.haiku-os.org/c/haiku/+/3158">Change 3158&lt;/a> - Add a Deskbar location menu&lt;/h1>
&lt;h2 id="what-is-this-change-about">What is this change about?&lt;/h2>
&lt;p>It introduces a &amp;ldquo;location&amp;rdquo; popup menu in DeskBar preferences. It is one of several
experiments to make the ability to move DeskBar around more discoverable. Currently, the
only affordance for that is a tiny dotted pattern on the edge of the DeskBar. It may have worked
fine on 1990s display resolutions, but today it is a bit too small to do its job.&lt;/p>
&lt;h2 id="why-is-this-change-stalled">Why is this change stalled?&lt;/h2>
&lt;p>The offered solution is a pop-up menu in DeskBar preferences where you can select various positions.
This works, but maybe a widget where you can drag the DeskBar around (similar to the &amp;ldquo;active corners&amp;rdquo;
configuration in ScreenSaver preferences, maybe?) would be better.&lt;/p>
&lt;p>Other ideas like making the DeskBar resize knob do something on mouse hover (highlight the borders
of DeskBar, highlight itself, change the mouse cursor) could also be explored. The pop-up menu
is sort-of okay, but doesn&amp;rsquo;t look great.&lt;/p>
&lt;h1 id="change-2273---stylededit-window-naming-for-untitled-documents">&lt;a href="https://review.haiku-os.org/c/haiku/+/2273">Change 2273&lt;/a> - StyledEdit window naming for untitled documents&lt;/h1>
&lt;h2 id="what-is-this-change-about-1">What is this change about?&lt;/h2>
&lt;p>Sometimes small details are hard to get right.&lt;/p>
&lt;p>This one is about the naming of new windows in StyledEdit. The first one you open is
&amp;ldquo;Untitled Document 1&amp;rdquo;. The next one is &amp;ldquo;Untitled Document 2&amp;rdquo;, and so on. As long as StyledEdit
is running, the number never goes down. So if you create a &amp;ldquo;Untitled Document 1&amp;rdquo;, and save it
with another name, its window gets renamed. But the next window you open will be &amp;ldquo;Untitled Document 2&amp;rdquo; anyways.&lt;/p>
&lt;p>This change simply searches for the first available number. This is a simple way to solve the problem
and reuse the first number that&amp;rsquo;s available. Other approaches were discussed (for example, if you have
an &amp;ldquo;Untitled Document 2&amp;rdquo; but no &amp;ldquo;Untitled Document 1&amp;rdquo;, should the next window be 1, or 3?)&lt;/p>
&lt;h2 id="why-is-this-change-stalled-1">Why is this change stalled?&lt;/h2>
&lt;p>Independently of the discussion on how to pick the next number, this change creates the window name
in a way that is not convenient for localization. It just appends the number at the end, where in
some languages we may need it at the start, for example it could be &amp;ldquo;1st untitled document&amp;rdquo;, &amp;ldquo;2nd untitled document&amp;rdquo;, and so on.&lt;/p>
&lt;p>The existing code in StyledEdit is already problematic in that regard even before this change, but
there are other problems in the change that make the situation worse and more complicated. It should
be quite simple to adjust it to use a better localizable formatting, and I think it could then be
merged, even if we continue the discussion on the algorithm to pick the &amp;ldquo;next&amp;rdquo; number.&lt;/p>
&lt;h1 id="change-1439---disable-address-of-packed-member-warning-for-gcc-9-and-later">&lt;a href="https://review.haiku-os.org/c/haiku/+/1439">Change 1439&lt;/a> - Disable &amp;lsquo;address of packed member&amp;rsquo; warning for GCC 9 and later&lt;/h1>
&lt;h2 id="what-is-this-change-about-2">What is this change about?&lt;/h2>
&lt;p>Each new GCC version comes with new warnings about non-standard and possibly broken code.&lt;/p>
&lt;p>In this specific case, a warning was added in gcc9 when taking the address of a packed member in a structure.
This is not allowed in standard C because the variable in question may not be aligned to the normally required
memory alignment for its type (that&amp;rsquo;s what &amp;ldquo;packed&amp;rdquo; structures do).&lt;/p>
&lt;p>On the x86 architecture, this is not really a problem. The code may be less efficient (on early CPU
implementations, not even on modern ones), but it would still work. However, some ARM CPUs will
generate an incorrect memory access in this case, and some SPARC ones will generate a fault, that
can be handled in software to convert the misaligned access in smaller, slower aligned accesses.&lt;/p>
&lt;h2 id="why-is-this-change-stalled-2">Why is this change stalled?&lt;/h2>
&lt;p>The proposed fix here was to simply disable the warning. Instead, the correct approach is to alter
the code to not use unaligned accesses, and make sure to access such packed members with safe code.&lt;/p>
&lt;p>Some changes in that direction were already merged as part of the work on the SPARC port of Haiku.
There is surely more to do, but disabling the warning simply doesn&amp;rsquo;t look like the correct fix at
this point. This change should probably be abandoned.&lt;/p>
&lt;h1 id="change-3180---wacom-intuos-s-support">&lt;a href="https://review.haiku-os.org/c/haiku/+/3180">Change 3180&lt;/a> - Wacom Intuos S support&lt;/h1>
&lt;h2 id="what-is-this-change-about-3">What is this change about?&lt;/h2>
&lt;p>Haiku implements a specific driver for Wacom tablets. This driver allows to report pen pressure
and various other tablet-specific information to applications. Wonderbrush makes use of this for
digital painting.&lt;/p>
&lt;p>Over the years, Wacom has built many devices, which all use a similar protocol but with variants
as the hardware is tweaked and improved.&lt;/p>
&lt;p>This change attempts to add one new model of tablet to the driver, but it was never completed.&lt;/p>
&lt;h2 id="why-is-this-change-stalled-3">Why is this change stalled?&lt;/h2>
&lt;p>The author lost interest and could not make all the needed changes. Further study of the Linux driver
is needed to understand what changes to the protocol are needed for this new tablet to work.&lt;/p>
&lt;h1 id="change-657---vesa-brightness-control">&lt;a href="https://review.haiku-os.org/c/haiku/+/657">Change 657&lt;/a> - VESA brightness control&lt;/h1>
&lt;h2 id="what-is-this-change-about-4">What is this change about?&lt;/h2>
&lt;p>This was an attempt to use VBE/FP (VESA BIOS Extensions for Flat Panel) to control the display
brightness in the VESA driver.&lt;/p>
&lt;h2 id="why-is-this-change-stalled-4">Why is this change stalled?&lt;/h2>
&lt;p>The VBE/FP specification only exists as a draft, and no hardware we could find actually implements
it. So, this change isn&amp;rsquo;t very useful and could be abandoned. However, there is another change
that depends on it and uses another mechanism, this time part of the more widely implemented
DPMS. That one may still be of some use. So, removing the parts specific to VBE/FP but keeping the
support for the DPMS change may be a good idea.&lt;/p></description></item><item><title>FOSDEM 2026</title><link>https://www.haiku-os.org/conference/2026_fosdem_2026/</link><pubDate>Thu, 22 Jan 2026 07:00:00 +0000</pubDate><guid>https://www.haiku-os.org/conference/2026_fosdem_2026/</guid><description>&lt;p>FOSDEM is a free and non-commercial event organised by the community for the community. The goal is to provide free and open source software developers and communities a place to meet to:&lt;/p>
&lt;ul>
&lt;li>get in touch with other developers and projects;&lt;/li>
&lt;li>be informed about the latest developments in the free software world;&lt;/li>
&lt;li>be informed about the latest developments in the open source world;&lt;/li>
&lt;li>attend interesting talks and presentations on various topics by project leaders and committers;&lt;/li>
&lt;li>to promote the development and benefits of free software and open source solutions.&lt;/li>
&lt;/ul>
&lt;p>Participation and attendance is &lt;em>totally&lt;/em> free, though the organisers gratefully accept donations and sponsorship.&lt;/p>
&lt;hr>
&lt;ul>
&lt;li>Event Dates: 2026-01-31 - 2026-01-01&lt;/li>
&lt;li>Event Homepage: &lt;a href="https://fosdem.org/2026/">https://fosdem.org/2026/&lt;/a>&lt;/li>
&lt;li>Activities:
&lt;ul>
&lt;li>No Haiku booth this year… but:&lt;/li>
&lt;li>&lt;em>Birds of a feather&lt;/em> on Sunday 1st, 10am: &lt;a href="https://fosdem.org/2026/schedule/event/WK8ZRX-missing-in-haiku/">What are you missing in Haiku?&lt;/a>
&lt;ul>
&lt;li>Hardware support, features, documentation, accessibility (there&amp;rsquo;s a lot to do there too)… What&amp;rsquo;s missing for Haiku as a daily driver to you?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="location">Location&lt;/h2>
&lt;p>ULB Campus Solbosch&lt;br/>
50 Avenue Franklin D. Roosevelt&lt;br/>
Brussels 1050&lt;br/>
Belgium&lt;br/>&lt;/p>
&lt;h2 id="event-report">Event report:&lt;/h2>
&lt;p>TODO&lt;/p></description></item><item><title>Haiku Activity &amp; Contract Report, December 2025</title><link>https://www.haiku-os.org/blog/waddlesplash/2026-01-12-haiku_activity_contract_report_december_2025/</link><author>waddlesplash</author><pubDate>Mon, 12 Jan 2026 21:00:00 -0400</pubDate><guid>https://www.haiku-os.org/blog/waddlesplash/2026-01-12-haiku_activity_contract_report_december_2025/</guid><description>&lt;p>This report covers hrev59188 through hrev59261.&lt;/p>
&lt;h3 id="applications">Applications&lt;/h3>
&lt;p>axeld fixed light-mode colors in the Sudoku application (though dark-mode still needs work.)&lt;/p>
&lt;p>korli fixed &lt;code>SIGUSR1&lt;/code> being incorrectly masked for child processes of Terminal (like shells.) He also implemented support for hyperlinks specified by CLIs (as Terminal itself has already supported automatically &amp;ldquo;linkifying&amp;rdquo; any URLs that appear in console output for a long time.)&lt;/p>
&lt;p>axeld changed AboutSystem to open with a golden-ratio window size, for a better appearance.&lt;/p>
&lt;p>madmax fixed a bug in Deskbar that was causing an incorrect/duplicate display of applications in the &amp;ldquo;Twitcher&amp;rdquo; (the Alt+Tab popup.)&lt;/p>
&lt;p>humdinger added a missing file to ActivityMonitor&amp;rsquo;s localization rules, making it possible to translate some previously-missing strings from it.&lt;/p>
&lt;p>DigitalBox98 fixed MediaPlayer&amp;rsquo;s playlist code to work properly with media files on volumes without attributes, by guessing their mimetype if necessary.&lt;/p>
&lt;p>apl implemented handling for 503 errors in HaikuDepot.&lt;/p>
&lt;p>nipos fixed wheel (and touchpad) scrolling in People. He also fixed a missing (undrawn) border in all save panels, optimized HaikuDepot &amp;ldquo;usage conditions&amp;rdquo; window size for HiDPI, and adjusted MidiPlayer&amp;rsquo;s volume slider fill color to not be hardcoded.&lt;/p>
&lt;p>nathan242 changed Tracker to show the count of selected (out of total) items in the &amp;ldquo;count view&amp;rdquo;.&lt;/p>
&lt;p>waddlesplash made a number of HiDPI fixes to ProcessController, such as basing margins in menus on the font size, scaling the replicant&amp;rsquo;s default width, allowing the standalone replicant window to be manually resized (which could be nice if you want a custom-sized view on your Desktop), and more.&lt;/p>
&lt;p>PawanYr added a tool to the Installer to copy the EFI loader onto the system EFI partition, reducing the number of manual steps that need to be taken to set up Haiku on an EFI system.&lt;/p>
&lt;p>jscipione added support for live-updating the colors of the Credits view in AboutSystem.&lt;/p>
&lt;p>jscipione made read-only/disabled fields in Mail navigable and selectable, and also changed text control colors to update automatically.&lt;/p>
&lt;p>PulkoMandy made DriveSetup show on all workspaces if Deskbar isn&amp;rsquo;t running. (When running the Installer directly from the first-boot prompt, it&amp;rsquo;s still possible to switch to other workspaces with the key commands, so if the window doesn&amp;rsquo;t display on all desktops it&amp;rsquo;s possible to get confused.)&lt;/p>
&lt;h3 id="command-line-tools">Command line tools&lt;/h3>
&lt;p>axeld cleaned up some constants in the &lt;code>bfs_tools&lt;/code>, to avoid conflicts with system constants when building on non-Haiku systems. He then added build system logic to make building them on other OSes easily possible.&lt;/p>
&lt;p>PulkoMandy changed &lt;code>makebootable&lt;/code> to have safety checks to write to BFS partitions (preventing corruption if it&amp;rsquo;s accidentally used on a non-BFS partition), and also to check if it needs to run at all, and print a diagnostic message if it&amp;rsquo;s not.&lt;/p>
&lt;p>waddlesplash removed a workaround from &lt;code>checkfs&lt;/code> that&amp;rsquo;s now unnecessary following an API change to the Storage Kit (and which was breaking its use on paths inside mounted filesystems.)&lt;/p>
&lt;h3 id="kits">Kits&lt;/h3>
&lt;p>PulkoMandy, working from an old patch by KapiX, decoupled the displayed label from the view name of &lt;code>BTab&lt;/code>s. The old behavior is preserved for compatibility when running under a BeOS ABI, but elsewhere we now don&amp;rsquo;t change the &lt;code>BView&lt;/code> name when changing the &lt;code>BTab&lt;/code> label.&lt;/p>
&lt;p>OscarL changed &lt;code>BTextView&lt;/code> to move the cursor position to the end of the selection on &amp;ldquo;Select All&amp;rdquo;. (This matches the behavior of other OSes and closed a quite old ticket.)&lt;/p>
&lt;p>waddlesplash fixed some incorrect memory management in &lt;code>BUSBInterface&lt;/code> discovered by some developers experimenting with USB webcam support.&lt;/p>
&lt;p>nipos fixed some incorrect changes to view colors caused by the code that draws slider triangles. He then fixed the translator preferences panels to use sliders with triangles.&lt;/p>
&lt;p>PulkoMandy improved the drawing of &amp;ldquo;partially on&amp;rdquo; checkboxes, to draw a &amp;ldquo;-&amp;rdquo; through the middle instead of just changing the color.&lt;/p>
&lt;h3 id="servers">Servers&lt;/h3>
&lt;p>SED4906 fixed notification_server to only make &amp;ldquo;progress&amp;rdquo; sounds when a notification&amp;rsquo;s progress actually changed.&lt;/p>
&lt;p>X512 dropped some unused message codes from the app_server protocol definitions.&lt;/p>
&lt;h3 id="drivers">Drivers&lt;/h3>
&lt;p>More of samuelrp84&amp;rsquo;s large patch series to improve support for Elantech touchpads was merged, including tracing fixes and improvements for the Mouse driver, code cleanups around finger handling and tap statuses, fixes to two-finger scrolling, and more.&lt;/p>
&lt;p>waddlesplash updated the FreeBSD driver compatibility layer for FreeBSD 15, and then updated all ethernet and WiFi drivers from FreeBSD to the versions from the FreeBSD 15 release.&lt;/p>
&lt;h3 id="file-systems">File systems&lt;/h3>
&lt;p>waddlesplash improved some logging in the UDF driver, and fixed an assertion-failure KDL triggered by recent refactors to the VFS.&lt;/p>
&lt;p>axeld merged some patches to the BFS driver that work towards resizing support.&lt;/p>
&lt;p>Jim906 fixed a double-lock problem in the FAT driver, fixing some rare KDLs.&lt;/p>
&lt;p>PulkoMandy reworked how timestamps of exact seconds (i.e. &lt;code>tv_nsec == 0&lt;/code>) are stored on BFS. Internally, a nonzero value is preferred, because avoiding duplicate values in timestamp indexes greatly speeds things up, so a random value is used when no subsecond timestamp is specified. However, some bugs caused these values to be exposed to userland, which was causing problems for some applications. After the rework, random values are still used when possible, but they&amp;rsquo;re now correctly reported to userland as &lt;code>0&lt;/code>.&lt;/p>
&lt;h3 id="libroot--kernel">libroot &amp;amp; kernel&lt;/h3>
&lt;p>PulkoMandy consolidated some duplicate MMU-related code across the EFI bootloaders.&lt;/p>
&lt;p>nathan242 added the hrev number to the standard KDL opening message, making it easier to determine from KDL output what Haiku version is in use.&lt;/p>
&lt;p>Anarchos added a missing clear of a network buffer in the kernel socket handling code, fixing problems where addresses were not always terminated properly. waddlesplash came by afterwards with a more systematic solution to the problem, potentially fixing other bugs in the process.&lt;/p>
&lt;p>waddlesplash fixed a number of problems with &lt;code>strftime&lt;/code> and related APIs, such as missing support for &lt;code>%k&lt;/code> and &lt;code>%l&lt;/code>, incorrect handling of Unicode spaces, and more.&lt;/p>
&lt;p>korli adjusted the TCP implementation to send &lt;code>RST&lt;/code> instead of &lt;code>FIN&lt;/code> when a connection was closed by an application but received data is being discarded. (This fixed a Go testcase.)&lt;/p>
&lt;p>waddlesplash fixed a memory leak in the address space implementation that was triggered by the Rust compiler and other tools that used lots of memory. He fixed another potential leak and made some code and tracing cleanups at the same time.&lt;/p>
&lt;p>kallisti5 and PulkoMandy implemented basic support for network booting in the EFI loader. (PulkoMandy also cleaned up some other bootloader code around the same time.) This now works at least on (32-bit) ARM, where PulkoMandy was using it to test builds without needing to flash drives every time he made a new build.&lt;/p>
&lt;p>PulkoMandy moved the &lt;code>networks&lt;/code> file, as used by &lt;code>getnetent&lt;/code> and related APIs, to the proper data directory (instead of &lt;code>/etc/&lt;/code> where it is on other *NIXes.)&lt;/p>
&lt;p>cmeerw imported a change to the DNS resolver from NetBSD to properly initialize resolver state objects.&lt;/p>
&lt;h3 id="build-system">Build system&lt;/h3>
&lt;p>PulkoMandy cleaned up and improved the shared &lt;code>FunctionTracer&lt;/code> class and deleted duplicate copies of it. He also renamed some functions that potentially conflicted with the global &lt;code>debug_printf&lt;/code> method, and made the global &lt;code>debug_printf&lt;/code> return the number of printed characters for compatibility with other &lt;code>printf&lt;/code>-like methods.&lt;/p>
&lt;p>PulkoMandy and waddlesplash moved a number of utility headers that are not kernel-specific from &lt;code>headers/private/kernel/util&lt;/code> to &lt;code>headers/private/util&lt;/code> (such as linked-lists, hash tables, bit operations, and more.) This makes it clearer that they can and should be used outside the kernel (and indeed, already were being used outside it in many cases.)&lt;/p>
&lt;p>waddlesplash dropped some unnecessary disablings of &lt;code>DEBUG=1&lt;/code> for certain components from the build logic.&lt;/p>
&lt;p>PulkoMandy made a change to try and exclude unneeded catalogs for dependent shared libraries from packages (e.g. catalogs for &lt;code>libbe.so&lt;/code> should only be in &lt;code>haiku.hpkg&lt;/code>, not &lt;code>haiku_datatranslators.hpkg&lt;/code>). However, this seems to have caused a regression where they aren&amp;rsquo;t included even in the base package, so more work is needed.&lt;/p>
&lt;p>humdinger fixed a number of problems in the WebPositive &amp;ldquo;loader pages&amp;rdquo; (the stub pages that power the default bookmarks in WebPositive), such as incorrect MIME types, encoding, and not using HTTPS.&lt;/p>
&lt;p>OscarL changed the &amp;ldquo;Makefile Engine&amp;rdquo; to maintain separate flags for the C and C++ compilers, fixing some warnings.&lt;/p>
&lt;p>cmeerw added basic support to the build system for building Haiku on NetBSD.&lt;/p>
&lt;p>KapiX fixed the build of &lt;code>test_app_server&lt;/code>.&lt;/p>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;p>DigitalBox98 added a &amp;ldquo;Device Kit&amp;rdquo; section to the Haiku Book.&lt;/p>
&lt;p>PulkoMandy fixed an incorrect boolean in the &lt;code>BKeyStore&lt;/code> documentation.&lt;/p>
&lt;p>cafeina added documentation for &lt;code>BSimpleGameSound&lt;/code> and &lt;code>BSerialPort&lt;/code>.&lt;/p>
&lt;h3 id="arm">ARM&lt;/h3>
&lt;p>PulkoMandy fixed the EFI bootloader on ARM to relocate the UART (serial out) when it remaps virtual memory for the kernel, fixing serial out on real hardware past the bootloader stage.&lt;/p>
&lt;h3 id="are-we-beta6-yet">Are we beta6 yet?&lt;/h3>
&lt;p>Not quite. There has been some discussion on the mailing list as the ticket list gets smaller, but there&amp;rsquo;s still at least some more regressions that need to be fixed. But it looks like we&amp;rsquo;ll be starting the release process in the next month or two, most likely&amp;hellip;&lt;/p>
&lt;h3 id="thats-all-folks">That&amp;rsquo;s all, folks!&lt;/h3>
&lt;p>Thanks again to all who contribute to Haiku, and especially those donors who make my contract possible!&lt;/p></description></item><item><title>The Gerrit code review iceberg, episode 4</title><link>https://www.haiku-os.org/blog/pulkomandy/2025-12-31-the_gerrit_pending_review_iceberg_4/</link><author>pulkomandy</author><pubDate>Wed, 31 Dec 2025 23:30:00 +0100</pubDate><guid>https://www.haiku-os.org/blog/pulkomandy/2025-12-31-the_gerrit_pending_review_iceberg_4/</guid><description>&lt;p>Welcome to most likely the last blog post of the year!&lt;/p>
&lt;p>We continue our exploration of old change requests on the Gerrit code review tool that have been
waiting for several years for someone to pick them up and get them merged. There are currently
350 commits awaiting review in the code review tool. The oldest one is now untouched since
early 2019.&lt;/p>
&lt;p>First of all, let&amp;rsquo;s look at updates for the changes from the previous blog post in the series:
one of them has found a new owner, and DriveSetup may soon get its long awaited menu to read
and write disk images to partitions!&lt;/p>
&lt;p>In this and the next blog post we will be looking at changes that have been untouched since late
may of 2021.&lt;/p>
&lt;h1 id="change-430-to-change-436---add-beginnings-of-a-linux-compat-library">&lt;a href="https://review.haiku-os.org/c/haiku/+/430">Change 430&lt;/a> to &lt;a href="https://review.haiku-os.org/c/haiku/+/436">Change 436&lt;/a> - Add beginnings of a Linux compat library&lt;/h1>
&lt;h2 id="what-are-these-about">What are these about?&lt;/h2>
&lt;p>These introduce a compatibility layer to port Linux drivers to Haiku, as we already do for OpenBSD
and FreeBSD. This involves reimplementing a lot of the logic present in the Linux kernel, or at the
very least, redirecting the needed APIs to use our existing equivalent code.&lt;/p>
&lt;p>This part of the changes only added a few basic support classes, nothing that would actually allow
porting any useful driver from Linux, as there is no support for interfacing with the hardware.&lt;/p>
&lt;p>The last two changes attempt to use that API to start porting the DRM kernel infrastructure from
Linux, with the idea to use it for 3D acceleration.&lt;/p>
&lt;h2 id="why-are-the-changes-stalled">Why are the changes stalled?&lt;/h2>
&lt;p>This is only a very early work, far from being useful for anything at all.&lt;/p>
&lt;p>Porting drivers from Linux creates difficulties. The first one is legal: the drivers can be under
the GPL license, while Haiku prefers to use MIT or other BSD style licenses as much as possible.
The second and more important one is technical: Linux does not have a stable API between the drivers
and the kernel. Indeed, their policy is that all drivers should be upstreamed, so that kernel
maintainers can freely change the interface and refactor the drivers as needed.&lt;/p>
&lt;p>This makes compatibility layers like this one usually tied to a specific version of Linux and the
corresponding drivers. Migrating to drivers for a newer version of Linux would need major changes
to the compatibility layer.&lt;/p>
&lt;p>Finally, the DRM part looks like it may already be obsolete: the rendering stack has moved on from
DRM to other interfaces that may be easier to set up in Haiku. So this code explored a path that
ended up not being the right one. It may still be useful until another 3D acceleration solution
finally takes its place, beyond the proof of concept level.&lt;/p>
&lt;h1 id="change-339---a-simple-solution-to-the-shortcuts-localization-problem">&lt;a href="https://review.haiku-os.org/c/haiku/+/339">Change 339&lt;/a> - A simple solution to the Shortcuts localization problem&lt;/h1>
&lt;h2 id="what-is-this-about">What is this about?&lt;/h2>
&lt;p>The Shortcut application stores shortcuts in its setting file with their localized names.&lt;/p>
&lt;p>This means the settings become invalid if you change your system language, as the new translation
does not match the existing settings, and shortcuts may stop working.&lt;/p>
&lt;h2 id="why-is-this-change-stalled">Why is this change stalled?&lt;/h2>
&lt;p>This change tries to fix that in a simple way, but it requires &amp;ldquo;reverse&amp;rdquo; translation (from a localized
string back to an English one). Ideally, this should not be necessary. The settings file could always
store english text, or some numeric values, for example. The translation should be done only at the
user interface level, when showing the shortcut actions to the user.&lt;/p>
&lt;h1 id="change-477---radeon_hd-testing-framebuffer-config">&lt;a href="https://review.haiku-os.org/c/haiku/+/477">Change 477&lt;/a> - radeon_hd: testing framebuffer config&lt;/h1>
&lt;h2 id="what-is-this-about-1">What is this about?&lt;/h2>
&lt;p>A very simple change to tweak some bits in a video card register in the radeon_hd driver.&lt;/p>
&lt;h2 id="why-is-this-change-stalled-1">Why is this change stalled?&lt;/h2>
&lt;p>The change lacks any explanation of why these bits should be changed. There is also no feedback
from users confirming if it fixes (or breaks) anything.&lt;/p>
&lt;p>Someone should dig into the video card documentation to confirm what the register does and how it should be set.&lt;/p>
&lt;h1 id="change-102---ehci-usb-process-the-extended-capabilities-chain">&lt;a href="https://review.haiku-os.org/c/haiku/+/102">Change 102&lt;/a> - EHCI USB: process the extended capabilities chain&lt;/h1>
&lt;h2 id="what-is-this-about-2">What is this about?&lt;/h2>
&lt;p>This adds support for multiple &amp;ldquo;extended capabilities&amp;rdquo; PCI registers in EHCI (USB2) controllers.&lt;/p>
&lt;h2 id="why-is-this-change-stalled-2">Why is this change stalled?&lt;/h2>
&lt;p>The only comment (from the change own author) says &amp;ldquo;needs rework and testing&amp;rdquo;. It seems no one else
has found a need for these registers so far.&lt;/p>
&lt;h1 id="change-3355---fs_shell-for-ext2">&lt;a href="https://review.haiku-os.org/c/haiku/+/3355">Change 3355&lt;/a> - fs_shell for ext2&lt;/h1>
&lt;h2 id="what-is-this-about-3">What is this about?&lt;/h2>
&lt;p>When working on filesystem code, it is sometimes useful to run the code outside of a fully running
Haiku environment. This is typically done by building an fs_shell, an application that embeds the
filesystem code and adds a simple command line on top of it to allow exercising specific parts of
the code.&lt;/p>
&lt;p>This change adds one such shell for the EXT2,3,4 filesystem driver.&lt;/p>
&lt;h2 id="why-is-this-change-stalled-3">Why is this change stalled?&lt;/h2>
&lt;p>This change actually contains only a few Jamfiles to prepare the build of the fs_shell. It does not
yet make any attempt to adjust the code to build in an fs_shell context, as was done for other filesystems. In its current state, it is not useful.&lt;/p>
&lt;p>Moreover, the EXT2 driver is actually quite mature. It is uncleaar wether a simple command line
interface to it would be useful for anything, as issues are more likely to araise in &amp;ldquo;real world&amp;rdquo;
situations (such as performance problems with huge number of files). As a result, there has not
been a lot of interest recently for finalizing this.&lt;/p>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>That&amp;rsquo;s all for this time! The next episode will look at the remaining changes from may 2021, before
moving on to june. I should mention that these changes got some activity in 2021 only because that&amp;rsquo;s
when the &amp;ldquo;commit checker robot&amp;rdquo; was introduced, and started checking every change for coding style
problems. That explains why there are so few changes marked as older than 2021. So we will spend quite
some time there.&lt;/p></description></item></channel></rss>