Summer! The time to slow down, relax, go to strange places, and do the projects that are long overdue. This summer I had the joy of spending my time in a lovely house near Lyon in France. In many ways the summer was like others, meaning there was plenty of wine and a lot of relaxing activities. At the same time, the Covid situation did give me a lot of reasons to scale back exploratory activities at the tourist hot spots, and instead focus on activities close to home. I decided to seize the opportunity and to see if I could dive into one of my long-standing pet peeves in the Haiku ecosystem.
For a long time I have been maintaining the build of the Rust compiler and development tools on Haiku. For this purpose, I maintain a separate tree with the Rust source, with some patches and specific build instructions. My ultimate end goal is to have Rust build on Haiku from the original source, without any specific patches or workarounds. Instead we are in the situation where we cannot build rust on Haiku itself (instead we need to cross-compile it), and we need a customization to be able to run the Rust compiler (rustc
) and package manager (cargo
) on Haiku. This summer my goal would be to find out the underlying issue, and fix it so that the patch will no longer be necessary in the future. Let’s go!
Hi all. This is my final report on my project aiming to improve Services Kit,
the networking backend behind most native Haiku application, most notably
WebPositive.
Progress made during GSoC
You may find the patches here:
Here’s the summary of some of the outstanding changes:
BMemoryRingIO
is introduced for high-speed cross-thread communication. This
is an implemenation of a circular buffer with BDataIO
interface. The
intended use case for this is for a HTTP/2 implementation, where one thread
will be the multiplexer and request threads will make use of this to retrieve
from the multiplexer.BUrlRequest
will now output directly into a BDataIO
. This simplifies the
API for users as they can now reuse BDataIO
implementations within Haiku
like BFile
, BMallocIO
, etc. without having to implement a
BUrlProtocolListener
.- Introducing
BUrlSession
as a context manager allowing request handlers to
access and store session data. What this will enable is the ability to
reuse previously opened connections, which should reduce latency when
requests are opened against previously connected hosts. This portion is still
a WIP. - A clean up and rearchitecture of HaikuWebKit (WebPositive’s engine) networking
was done which should improve reliablity. The rearchitecture also come with
fixes for HTTP authentication and redirection, which should now function
as well as other browsers.
I’ll be honest, I’m not happy with (relatively) small the amount of work that I
have done during this GSoC, and I’m sorry for have not followed up with my set
goals.
Hello there!
This is the final report on my project which aimed at initiating support for XFS Filesystem on Haiku, by first making a read only driver.
Work done during the program:
You can check for the patches here: https://review.haiku-os.org/q/hashtag:gsoc2020+owner:shubhambhagat111%2540yahoo.com
All directory and files work is completed and we should be able to read them from a version 4 XFS Filesystem. I’ve come to realize that we can now even try to read version 5 of XFS now that the ground work has been placed.
Hello Everyone!
This is my third post related to my project, Adding UFS2 file system in Haiku
The link below provides the patches that I have worked on till now.
Know more
Work done till now
The following points briefly describes what I have done till now:
Reading a file in a UFS2 formatted disk
- Implemented ufs2_open(), ufs2_read() in kernel_interface.cpp
Reading data from block pointers
- Modified struct ufs2_inode in Inode.h
- Implemented GetBlockPointer(), GetIndirectBlockPointer(), GetDoubleIndirectBlockPtr(), GetTripleIndirectBlockPtr() to get the block pointer from ufs2_inode
Get the block from file offset
Hello Everyone!
This is my another post related to my project, Adding UFS2 file system in Haiku
The link below provides the patches that I have worked on till now.
Know more
Work done till now
The following points briefly describes what I have done till now:
Reading a symbolic link in a UFS2 formatted disk
- Implemented ufs2_read_link() in kernel_interface.cpp
Reading data from block pointers
- Modified struct ufs2_inode in Inode.h
- Modified GetBlockPointer(), GetIndirectBlockPointer(), GetDoubleIndirectBlockPtr(), GetTripleIndirectBlockPtr() to get the block pointer from ufs2_inode
Implemented ReadLink() in Inode.cpp
I have an ActivityMonitor replicant showing network receive/send info on the Desktop. I’d also like to have something showing cpu usage. However, a combined cpu usage ActivityMonitor doesn’t show individual core usage, and having a graph of all cpus often isn’t that informative either, because the 8 doodling lines of my cores are easily confusing. ProcessController’s bars are too narrow.
Here are both, showing their inadequacy:

Hello there!
There is quite a lot to share about the work done this month.
Work done so far:
You can check for the patches here: https://review.haiku-os.org/q/hashtag:gsoc2020+owner:shubhambhagat111%2540yahoo.com
In short: All directory work is done. This includes ShortForm Directories, Block Directories, Leaf Directories, Node Directories and B+Tree based Directories.
Detailed view at the work:
(Some context: Leaf entries containt hash values of a directory entry name and also the address of that entry. We use this for fast lookups.)
Welcome to the July, 2020 Activity Report for the Haiku project!
This report covers hrev54370 through hrev54484.
Applications
KapiX added a “Set target to parent folder” option in the TextSearch application, making it easy to move one directory up.
Humdinger fixed bug #16321 in the ShowImage application. The timer now responds properly to user input.
Andrew Lindesay added support for HaikuDepot Server repo meta-data to be artificially matched against multiple repos. Improvements were also made in HaikuDepot’s logging mechanism to de-clutter the code and enable better systematic logging.
Software on a computing platform such as Haiku is typically distributed as a package. Without a packaging system it would be hard for users to install software and because software often depends on other software, the chain of dependencies would be difficult for a user to resolve themselves. To orchestrate the distribution and management of the packages, Haiku has a packaging system which consists of applications, online tools, on-host tools and software libraries. One aspect of the packaging system is the coordination and identification of repositories.