What platform/configuration do you recommend for Haiku developers? I’ve seen Mac mentioned explicitly in the README for building Haiku. Is Mac better than Linux? What hardware do you recommend for a smooth experience (this is for compiling/debugging Haiku, not using it)?
Probably Linux + QEMU. Mac and or FreeBSD is a less traveled route.
If you want to boot on real hardware you can also develop there also from Haiku itself but you will miss hardware accelerated QEMU if you boot a VM on Haiku QEMU is also less stable on Haiku.
If you end up developing drivers, a lot of stuff QEMU can fake out basic hardware and such for initial testing and then you can move on to testing on real hardware. If you are mainly focusing on developing software for Haiku, just run it natively and make sure you check out Haikuporter to install dependancies as well as build packages of your software. Haikuporter is what builds the packages that are hosted on the various repos you can acess from Haiku Depot both official and unofficial privately hosted.
I think that best development platform for Haiku is Haiku itself on real hardware. Haiku is mature and stable enough to work on it. It is also easier to test developed software when using Haiku.
Except that Haiku is, quite frankly, dead dog slooooooow. I upgraded my Lenovo Ideapad N580 from a dual-core (no hyper threading) B960 to a 2 core/4 thread i5 3210M, and I can’t honestly say I see much a difference when I Jam a new build of Haiku on it. Of course, it might go a bit faster if it wasn’t having to compile/assemble/whatever all those 14 billion other languages (via cat/catalog or whatever) I don’t speak/read/understand. I only speak US English and a teensy tiny bit (a few words) of Spanish and one word of Italian. so it building all those other packages or whatever, is just a huge waste of time for me. But it went VERY quick in Ubuntu on my FX system, so it’s still Haiku being much slower in doing that as well.
I will say, however, Haiku, being a native environment, is (technically) the BEST dev platform, in THAT regard. But as far as build speed… I’m all-in for Ubuntu on my 8-core (or 4 core/8 thread) AMD FX (Vishera) desktop system… it’s blisteringly fast in network speed and build speed. And who wants to spend hours downloading files and building the next revision of Haiku on Haiku, when you can do both in less than an hour on the same system in Ubuntu? I think I might even try to prove that theory on my Lenovo laptop… which is nowhere near as fast as my FX system.
Download can be done only once, so it is not a big issue. Build process itself is not that slow. Also when developing Haiku you don’t always need to build whole image, you can build only components you need to test like libbe.so, drivers, applications etc.
I’m not a dev, so I do whole image builds and, every time it builds, it does those other languages. And those take awhile, for each one. If it skipped over all those, it would go lickity-split. But those language things stop it in it’s tracks. I’d love to know how to disable building all those non-English language cat files or packages or whatever.
If you is not dev, prebuilt hightly images are probably enough for you.
I do things because I want to (and can) do them, not because I’m fully “qualified” to do them. It gives me something to work with (known as “tinkering”), being cooped up in the house most of the time because of this whole Covid-19 fiasco!
x86_64 Haiku built on x86_64 Haiku on T440s and SSD (buildtools was built earlier):
- first run 33 min.
- second run: 4,5 min.
I see no real issue here, so i think you just doing something wrong.
All are every time welcome to write tutorials and docs for haiku.
There is indeed a problem with the catkeys that make them be rebuilt everytime when there is no reason for it. Sure, it’s not that slow if you have an SSD, but 4.5mn to do… well, nothing, because the image was already built, is not acceptable.
Someone should sit down and review the jam rules for them to understand why they are rebuilt everytime instead of just when the files are modified.
Anyway, back on topic. The main supported platforms are Haiku itself, and Linux. FreeBSD might work but less of the devs are using it currently so we’re not sure. MacOS is known to be broken at the moment. Windows is unsupported with no plans for that to change.
I think nobody was able to get the package dependency rules correct (or maybe it was actually impossible), so all HPKGs are always rebuilt, which is why it takes so long. (On minimum images, the userguide and other packages aren’t built, so these are faster.)
I often rebuild individual packages after I know I’ve changed things (e.g.
haiku.hpkg) and then set
-sHAIKU_DONT_REBUILD_PACKAGES=1 on the jam command line to rebuild the image without rebuilding packages first, which saves a lot of time.
For me building of haiku_source.hpkg and welcome/userguide is very annoying because it takes several minutes to continue every time. I set pkgman repository for Haiku in generated folder instead of remote repository for updating system from source.
I said both Haiku and Linux… each have their own strengths if you require qemu to reboot quickly Linux is the obvious choice for early driver development and kernel development especially as QEMU can allow you to test different configurations easily. If you are going to develop drivers only natively you need a computer with serial output… and a second computer.
If you are developing native applications then obviously just use Haiku.
I’m gonna have to say both of your systems are very dated… dual core hyperthreading or no isn’t modern… I mean we have 8 core 16 threads on the market down for under $1000 with 5-10 hour battery life.
Probably what you are experiencing is BFS being slow (an Linux filesystems being very fast) also… an SSD can help alleviate some of that, especially an NVMe SSD.
Qemu is available on Haiku. I used it to test ARM boot loader. Hardware acceleration is not needed for core platform support testing.
Read my earlier comment… before commenting back something that I know already.
QEMU on haiku is not accelerated… and will make testing slow it is also less stable than QEMU on Linux.
Did anybody try to dual boot Haiku on a MacOS? I have an older iMac with dual core Intel and 4GB or RAM. I was wondering if I can use that for Haiku development or I need something more powerful.
I have an iMac from 2009 and it runs Haiku nicely. Although I have more than 4GB of RAM, I think your mac is good for development.
Thanks for the confirmation. Are you running it from a partition or from a USB stick? I’d prefer to install it in a partition if possible. Do you have any instructions? (what type of partition, roughly how big, steps to install it, etc)