Rust on Haiku: the Case of the Disappearing Deceased Threads

Blog post by nielx on Sun, 2020-09-06 07:21

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!

GSoC2020 Final Report: Input Preferences

Blog post by PreetpalKaur on Mon, 2020-08-31 21:15

GSoC 2020 Final Report

This is the final report of the GSoC 2020 project

The proposal is available here:

Work Done:

  • Added the icons for each connected device in the input preferences application.
  • Removed the unwanted devices from the device list when they are not connected to the computer.
  • Improved the look of 4th and 5th button of the mouse and added the 6th button of the mouse and its working.
  • Made the Joystick GUI.
  • Made the Wacom tablet GUI.
  • Implemented the input preferences to hold settings for each mouse separately.

Commits:

https://review.haiku-os.org/q/owner:preetpalok123%2540gmail.com

GSoC 2020 Final Report: Improving and Extending Services Kit

Blog post by leorize on Mon, 2020-08-31 02:00

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.

GSoC 2020 Final Report: XFS File System

Blog post by CruxBox on Sun, 2020-08-30 17:58

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.

GSoC 2020 Project Update(UFS2): Reading Files

Blog post by SuhelMehta on Wed, 2020-08-26 16:40

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

GSoC 2020 Project Update(UFS2): Reading Symboliclinks

Blog post by SuhelMehta on Wed, 2020-08-26 16:37

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

Manipulating window look & behaviour with 'hey'

Blog post by humdinger on Sat, 2020-08-22 10:01

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:

ProcessController to the left, ActivityMonitor to the right

GSoC 2020 Project Update: XFS

Blog post by CruxBox on Tue, 2020-08-11 17:58

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.)

July 2020 Activity Report

Blog post by dogcow on Sat, 2020-08-01 15:53

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.

Haiku Repository Files and Identifiers

Blog post by apl on Sat, 2020-07-11 11:42

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.