[GSOC 2025] Introducing Myself

Hello, everyone! I am Sayantan a second year engineering student. My primary interests are game development and writing tools and software related to it. I love to work on FOSS and have contributed to SDL and pygame in the past. I first learnt about Haiku when a pygame maintainer asked me to check out the pygame port for FreeBSD and Haiku. I currently daily drive debian sid and I have played around with various open source operating systems like Kolibri and React OS. I am currently trying out Haiku on a VM but plan to install it on bare metal soon. Looking forward to start contributing to the project and interacting with this awesome community.
Thank You :slight_smile:

26 Likes

Hello! Welcome to Haiku! :+1:

1 Like

Uhm, it appears that I have messed up my vm instance. I am creating a new one. What do you guys recommend to use for the initial size? I know that qcow2 files can be resized later but I have heard that doing that might cause some issues so want to be safe from the first. Also, if I am not wrong qcow2s use a virtual format and only take the used space physically. So, using a larger file size is the best choice right? For reference I have around 350GB free space in my disk.
Also, I tried to install haiku as dual boot on my machine but I forgot that most non-linux OSs are not supported in ventoy. I don’t have another spare USB so it will have to wait until I can get another.

Hi, and welcome to Haiku!

I would say, do yourself a favor and install on a USB stick. You would probably want to install on a hard disk later on, but the USB stick would be a decent first real installation.

Installing on a VM caused minor issues to me in the past (like mouse glitches, internet connection occasionally dropping, etc). And, in general, I don’t think a VM instance is the way to go. It’s good for first impressions but after a day or two that’s it - for me, at least.
At any rate, since you asked, I typically used a 20Gb static (not expandable) virtual disk on VMs. You can go down or up that number, but 20 Gb was more than enough for me to get a feel of the system, install some applications from the repositories, etc.

You can install on a USB stick right from the VM or from a Haiku installation stick. Any settings, shortcuts, applications installed, or even personal folders you created before installing will be transferred as well, so your new installation won’t need tweaking. Personally, even though I use a hard disk installation I always update a USB stick I have (by installing from the hard disk to a USB stick once a week). Very handy when not at home or when you want a backup that can also be used to do another installation without setting up everything to your liking again.

Thank you for the insights. Yeah I also think that it will be probably better to maintain a USB stick in the long run especially because I don’t have a very high end pc and the experience will be smoother in bare metal.

Actually, you don’t need a high-end PC to run Haiku. It will perform very well in low-end PCs. I was surprised how snappy the system was even on a very old crappy netbook with 1 Gb of RAM. But my bare metal installation for every-day-use is on a 10-years old laptop with an equally old Intel i5 CPU and 8 Gb of RAM. Haiku on that system feels sky-rocket snappy.

By the way, since you mentioned SDL, try your SDL-based applications and/or libraries on Haiku. Compiling is done in a very similar way, makefiles are basically the same. You will feel right at home pretty quickly. Same for applications/libraries using GLFW, OpenGL, and many others.

Actually, you don’t need a high-end PC to run Haiku. It will perform very well in low-end PCs. I was surprised how snappy the system was even on a very old crappy netbook with 1 Gb of RAM. But my bare metal installation for every-day-use is on a 10-years old laptop with an equally old Intel i5 CPU and 8 Gb of RAM. Haiku on that system feels sky-rocket snappy.

Oh. Yeah I understand the experience will much much better while running on direct hardware. The experience on the VM is not that good with noticeable response time and lags. Also mouse issues (as you mentioned) and small space due to 800x600 res (I am sure the last one can be easily fixed by fiddling with vm settings but since I probably will soon shift to bare metal not bothering with it for now). Actually, the reason I started with VM is I thought that it will be easier to first getting used to the basic workflow in Haiku and see how capable the built-in tools are. It’s harder to do stuff if I get stuck on bare metal without any network connection or if the OS doesn’t have a proper browser (happened with me on kolibri). Luckily, as you have mentioned the workflow on Haiku is quite similar to the usual linux or BSD ways. HaikuDepot provides most of the stuff that I need. For example, I was surprised to see the nnn package.

By the way, since you mentioned SDL, try your SDL-based applications and/or libraries on Haiku. Compiling is done in a very similar way, makefiles are basically the same. You will feel right at home pretty quickly. Same for applications/libraries using GLFW, OpenGL, and many others.

Yes I am currently checking out the available tools for development after checking out the quick tour, the user guide and the various applications briefly. I have installed cmake, KDevelop and gdb. The only other good editor for development I found was vim but it would need some configuration first so I went ahead with KDevelop. I saw that there is no neovim package in the repos. Let me know if there are some other good editors available (my needs are basically something with support for lsp) though the current combination is also working perfectly. The alt and ctrl thing is something new and ig will take some time getting used to lol.
Today it’s quite late so I am going to bed. But tomorrow I will try running the graphical applications I have and/or maybe even port something as there are a lot of nice applications using SDL. I saw that there is no SDL3 in haiku depot so I will start with trying to build and install it first. The docs say that Haiku is officially supported so the installation should be straightforward. Maybe, with some guidance I can try adding my first package to the haiku depot :slight_smile:.

I have another question. What is the current state of hardware acceleration on Haiku? I am finding different information from different sources online. My current understanding is that there is no support for hardware acceleration (since I saw support for it in the list of ideas for GSOC) but various software implementations like llvmpipe are available so we can still run OpenGL/Vulkan applications, they just won’t be using the GPU.
I mainly make 2D games and applications so they shouldn’t have any problem with that. Also, pygame is mostly software if the experimental _sdl2 module isn’t used.

Yes it is. And yes, the resolution issue in VMs can be fixed (at least it can in VirtualBox), but as you said it’s not worth it. Again, I strongly recommend a USB stick installation as a “temporary bare metal” - you will see if your wifi works as well.

You don’t have a browser problem in Haiku. WebPositive should do the job, and when it doesn’t (e.g., Youtube), you have other options as well. I use Falkon for that purpose. Even Firefox (as iceweasel) was ported recently.

I use Emacs as an editor/IDE/quick internet browser, and for other tasks as well. But I see you are a Vim guy, so maybe your current combination is better for you. At any rate, I strongly recommend giving Genio a try, it’s a very good native IDE.

I have yet to try SDL3, still using SDL2 because (1) SDL3 is quite new, therefore not tried-and-true yet, (2) I am very reluctant to change my programs/libraries once again. But if I were to guess, I’d say building SDL3 should be pretty straightforward, as you predicted.

One more thing: if you haven’t already, install QuickLaunch. It is very convenient for “keyboard-centric” use, and it should be part of the default installation in my opinion.

Haiku doesn’t run very well on VirtualBox. I recommend VMWare, because AFAIK the only way to fix the slowness in virtualbox is to make it use only one CPU.

1 Like

I am using qemu with virt-manager

Even Firefox (as iceweasel) was ported recently

Oh that is very nice. I will see if I can get the port running

At any rate, I strongly recommend giving Genio a try, it’s a very good native IDE.

Thanks for the recommendation. I will definitely give it a try. Seems to be exactly what I was looking for.

I have yet to try SDL3, still using SDL2 because (1) SDL3 is quite new, therefore not tried-and-true yet, (2) I am very reluctant to change my programs/libraries once again. But if I were to guess, I’d say building SDL3 should be pretty straightforward, as you predicted.

Oh. Actually, SDL3 got a stable release recently. But even before that it was being used in the Steam client, Steam link and other valve games like CS2 already for over a year by millions of users. Arch removed SDL2 from their repos and have replaced it with SDL2-compat which is basically SDL2 over SDL3. Migration should be pretty straightforward with most changes being renames (for which they give you a script). Other than that only the audio api went through major changes. A lot of new APIs were added like the GPU API and the camera API. I upgraded my framework and other stuff to SDL3 and it felt like a massive upgrade. Though again you know better what to do with your software and SDL2 is going nowhere.

SDL3 builds and runs without any issues.

8 Likes

Welcome there. SDL3 should probably end up at haikuports where we keep our “recipes” to build packages on our buildmasters. This should be fairly simple to setup and welcomed so other maintainers at haikuports could look into this also.

2 Likes

Graphics hardware acceleration:

Kernel DRI implementing libDRM.

See: @waddlesplash

1 Like

I have used VBox with 4 cores without much issue for years. Only thing to do is selecting the OS type to “Other Linux (64 bits)”. (that apparently enables an X2APIC option that gets disabled if you choose “OS=Other”).

Yes, can be a bit slower than VMware, but it can do some things that VMware can’t (as being able to boot from a partition on the same SSD where the host has booted from), so VBox still has its use cases.

1 Like

4 cores on the host or guest? I’m talking about the guest. Are you?

On the guest of course. I always give Haiku the same numbers of cores I have on the host.

I think no one really answered your question here :frowning:

So, here is an answer:

qcow2 can be resized, but the BFS filesystem used by Haiku currently can’t. So you can make the disk larger, but not grow the partition inside it.

You are correct that qcow2 files grow only as the space get used. I think they can even be shrunk from inside the emulated Haiku by using the fstrim command if you set things up correctly.

So, I would recommend a “large” qcow2 file and a BFS partition using all the space inside it, but you can also add more disks and partitions later as needed.

The definition of “large” depends on what you want to do. 10GB would be more than enough for the base system and a lot of apps. But if you plan to work on WebKit, for example, you probably want to start with 100+GB of free space. Likewise if you plan to build a lot of things with Haikuporter.

Actually since this thread is about participation in GSoC, this also depends on which of the project ideas you are interested in.

If you work on a purely “software” project (such as porting a library or improving an user space application), then it may be better to work on real hardware. But if your job will involve a lot of rebuilding Haiku itself and rebooting to test the changes, then you will be much more comfortable with a cross development setup: writing your code and building on Linux, and testing in a VM.

So, do you already have an idea which of the project ideas you plan to apply for?

The native one, built specifically for Haiku, would be Genio. But if you already know some tools from other OS, and they are available, there’s no problem with using those.

1 Like

Graphics hardware acceleration:

Kernel DRI implementing libDRM.

See: @waddlesplash

Sorry, I don’t understand what you mean. Is this directed towards me?