R1/beta2 – Release Notes
The second beta for Haiku R1 marks twenty months of hard work to improve Haiku’s hardware support and its overall stability. Since Beta 1, there have been 101 contributors with over 2800 code commits in total. More than 900 bugs and enhancement tickets have been resolved for this release.
Please keep in mind that this is beta-quality software, which means it is feature complete but still contains known and unknown bugs. While we are mostly confident in its stability, we cannot provide assurances against data loss.
This release is available on the x86 32-bit platform, as well as the x86_64 platform. Note that BeOS R5 compatibility is only provided on the 32-bit images.
SSE2 support is required to use the WebPositive web browser. On machines where this is not available, it is recommended to install the NetSurf browser instead.
Improved HiDPI support
Begun but significantly incomplete at the time of Beta 1, this release sees a significant advancement in support for HiDPI monitors (and UI scaling in general.) Unlike other operating systems which largely enact a “device pixel ratio”, that converts a number of “internal pixels” to “screen pixels”, Haiku instead scales everything based on font size, and leaves pixels to mean “screen pixels” in isolation. This also means that one can effectively change the UI size and scale on any display by changing the system font size, and everything else should adjust to match it.
Below are two screenshots, showing ActivityMonitor and AboutSystem with a 12pt font size on the left (Haiku’s default), and with an 18pt font size on the right (in other words, 150% of “normal.")
There are still some bugs to be ironed out (such as scrollbars not drawing with proper scaling applied, as seen in this screenshot), but things are now generally usable under HiDPI. Other applications, such as Deskbar and Tracker, saw significant improvements to their behavior on HiDPI, as well.
The Deskbar has had various improvements. It now has a mini-mode, where the icons on the shelf expand leftwards. You can activate it by dragging the shelf space by the right handle onto the blue leaf.
New mini-mode to put the Deskbar at the top of the screen.
Additionally, the “auto-raise” mode has been improved to automatically lower the Deskbar when the mouse leaves it.
New Input preferences
The Mouse, Keyboard, Touchpad and Joystick preferences have been consolidated into one Input preferences panel.
The consolidated Input preferences, including support for mice with 5 buttons.
Additionally, there is now support for mice with more than three buttons, including support for button remapping.
Haiku’s built-in web browser, WebPositive, now uses a newer version of WebKit. Additionally, it contains a number of fixes to the Haiku backend, most notably to reserve significantly less memory, and to fix WebSockets, as well as a variety of crashes.
WebPositive displaying a post on the Haiku forums.
More ported software
Thanks to Haiku’s relatively robust POSIX compliance, as well as ports of open source GUI toolkits, even more pieces of popular open source software have been ported to Haiku since Beta 1 and are available in the package repositories.
Various applications, such as LibreOffice, Telegram, Okular, Krita, AQEMU, and more, running on Haiku.
Various games, such as FreeCiv, DreamChess, Minetest, and more, running on Haiku.
Installer now supports excluding optional packages that are included on the installation medium.
DriveSetup will now display more information about the drives in your system. It will show the used space of existing partitions, and it is now also able to identify encrypted volumes.
Finally, there is an upgrade path available from Haiku R1 Beta 1 to Beta 2.
Optional package selection in the Installer.
Completely new in this release is support for NVMe drives, including support for using them as boot devices (though this varies by BIOS support.) Multiple Haiku developers and users are now using an NVMe drive as their primary storage medium, so we are relatively confident in this new driver’s stability at this point.
Enhanced and stabilized XHCI (USB3) support
While present at the time of R1/beta1, support for USB 3 hardware was notably unstable; it was usually impossible to boot from, and devices would disconnect randomly or not function at all. THe XHCI driver saw a considerable overhaul since then, with nearly all USB3 devices now functioning as boot mediums correctly, and input devices operating properly.
Kernel stabilization and performance improvements
A lot of general stabilization work was undertaken during this development cycle, with quite a lot of reproducible (and less reproducible) kernel crashes resolved, and some low-hanging fruit related to system performance resolved. The system is now noticeably more stable than it was at the time of R1/beta1.
Emulated Meta-key in Terminal
Certain early workstation keyboards included a key labeled “Meta” that functioned as an extra modifier key alongside Shift and Control. Although the Meta key is absent from modern keyboards, two major pieces of UNIX software still rely on it being present: GNU Emacs and the GNU readline library, which is used by bash and a wide variety of other software to read input from the terminal.
In beta 2, the Terminal has functionality like macOS’: It adds a configuration option to the “Settings…” dialog that, when enabled, causes the left Option key (only) to function as a Meta key. The right Option key retains its normal function, and can be used to enter special characters at the keyboard.
Enabling the Meta key functionality in the settings.
More changes of note
Over 900 tickets were closed during this release cycle (and every one by a human, not by a robot or as a batch operation!), which is too many to list here. But here are a selected few, at least.
- #4971 Resize Deskbar by using CTRL-ALT-right click drag
- #8537 In menus, the size of the icon will now always be the same size as your chosen font size
- #8691 The icons of replicants running in Deskbar’s tray now scale according to the font size
- #13304 Auto-raised Deskbar will now also ‘auto-unraise’
- #10098 Encrypted disks will actually display that they are encrypted instead of empty
- #10358 When a package is queued for download and installation, it will now have the status ‘queued’ in the interface.
- #11652 When showing all packages, the installed packages are part of the list by default. Before they were hidden by default.
- #12198 HaikuDepot can now display multiple screenshots of a package.
- #12428 Switching between ‘All packages’ and ‘Featured packages’ is now done with tabs, not by ticking a checkbox.
- #13806 The application will now clearly show when it is downloading screenshots for a package.
- #13808 Overall, it is more clear when HaikuDepot is contacting the web to retrieve information or updates.
- #14310 The installer now supports showing and selecting optional packages, when available.
- #11237 LaunchBox now has a setting to automatically launch at boot.
- #13835 Support for 96x96 and 128x128 pixel icons.
- #6628 Optionally, MediaPlayer will resume playback where it left off last time a file was played.
- #9397 It is possible to quickly create a new Person file from Tracker, with the ‘Create new…’ feature
- #14002 When updating the system packages itself, SoftwareUpdater will now display a ‘Restart’ button to inform the user that a restart is necessary.
- #15294 Support for an emulated Meta key
- #1264 Multi-range selection in Tracker and list views
- #3011 Directories with a large number of files are now loaded quicker
- #5126 Improvements to the Tracker API
- #10529 The Info window now shows the originating package of a file (if applicable).
- #14845 Allow selecting any font size (was previously limited to 18pt).
hdadriver has had some improvements to work properly on more devices. If you had problem in Beta 1, it is worth a shot to try again.
- #5056 Intel Extreme: support X4500HD
- #12723 Intel Extreme: support hardware panel scaling for chipsets that support it
- #13987 FreeBSD Network Drivers: upgrade network drivers to FreeBSD 12
- #10139 Add UEFI Loader (the Beta 1 DVD image shipped with an EFI loader, but it was added manually to the release image)
- #15548 Remove flickering when drawing background
- #10354 WebP images now support images with an alpha channel.
Changes for Developers and Porters
Below is a list of detailed API changes since Beta 1.
- fcntl.h A non-functioning version of
posix_fadvise()has been added, to make it easier to port software.
- net/if_tun.h A public API for the tun/tap device compatible with the Linux API has been added.
- net/if_types.h Add some constants for
- pthread.h Implement
- spawn.h Add
- stdlib.h Make
putenv()conform to POSIX standard (no source/binary change)
- sys/resource.h Add
[gs]etpriority()from the POSIX-1.2013 standard.
- unistd.h Add the
- unistd.h Add
nice()from the POSIX.1-2008 standard.
- FileGameSound.h Allow initialisation of the
DataIOobject, to allow for opening game sound files from sources other than files.
- Deskbar.h Add MaxItemWidth() and MaxItemHeight() as part of the work to support variable size icons for Deskbar replicants.
- View.h New
B_MOUSE_BUTTONmacro that helps you identify which mouse button was clicked on a mouse with more than three buttons.
- View.h Add a the new
B_TRANSPARENT_BACKGROUND, to identify views that have a transparent background (i.e. the background will not be drawn for those views).
- View.h Add Tiled Background methods to
BViewobjects to asynchronously draw bitmaps as background tiles for the view, using the overloaded
- Country.h Add a
InitCheck()method to the
- PackageRoster.h Add a
IsRebootNeeded()method to the
- PackageRoster.h Add a
IsPackageActive()method to the
Since the last release, Kyle Ambroff-Kao received commit access. Welcome!
The source code of Haiku itself, the source code of the required build tools and the optional packages (except for closed source ones) is contained within the release images as the
_source packages (except on the “CD” image, where it was left out due to space constraints.)
There are almost 3200 open tickets on Haiku’s bug tracker and over 12700 closed items. If you find what you believe to be an issue, please search our Trac to see if it has already been reported, and if not, file a new ticket at https://dev.haiku-os.org/.
For information about major issues that have been fixed since the release, visit https://dev.haiku-os.org/wiki/R1/Beta2/ReleaseAddendum.
For more help, take the ‘Quick Tour’ and read the ‘User Guide’, both linked on the Haiku desktop. WebPositive opens by default with our ‘Welcome’ page which provides useful information and many helpful links, as does the Haiku Project’s website at https://www.haiku-os.org.
Press inquiries may be directed to:
- waddlesplash (English)
- pulkomandy (French)
- humdingerb (German)
All three contacts may be reached via