We’re porting TuneTracker CC6 to the Genode OS framework (made possible by a compatibility layer).
Making Genode run Haiku apps seemed like a daunting project at first… And it certainly proved overhelming at times. But as of this week, our flagship app Command Center 6 is (barely) displaying its main window and playing ‘hardcoded’ audio files! Of course there is lots left to be done, including figuring out how to use FUSE/BFS, if possible at all. But it’s a big enough milestone that has been reached, so I thought I’d celebrate by posting here.
We achieved that with a “libhaiku.so” compatibility layer, which provides (a limited subset of) the Haiku APIs. The desired end state is that we’ll be able to recompile some userland Haiku apps with little to no changes, and that they’ll theoritically work as-is on Genode.
I believe this project, if it goes far along enough to be useful, would be beneficial to both communities: Haiku users would be able to recompile/run their userland applications on another “platform”, with its set of drivers, ported apps and security/sandboxing model; Genode users would gain Haiku applications, and possibly inspiration to extend their APIs, as the Genode APIs do not yet have the breadth and depth of Haiku’s.
If there is interest, the “libhaiku” source code should be ready to post to a fossil repo under the MIT license in a week or two, together with the virtually unmodified source for Pulse, Mandelbrot (to showcase what works and what doesn’t yet), and build instructions for Linux and Haiku (the latter requires building the toolchain from scratch, not for the faint of heart! But if I can pull it off, anybody can g). The resulting 10 MB boot image can be run in qemu (on Haiku that requires upgrading qemu to 3.1.0) or on bare metal if your hardware is compatible with Genode.
Again, this is not for end-users, and will remain a developers-only project for months. In fact there is no plan to even take the project far enough to port Deskbar and Tracker unmodified (we could take a page from the GoBe guys to hack entry_ref for instance, but not sure it makes sense). We’re focusing our work on what’s necessary to run CC full-screen, whereas doing full fledged “desktop” integration could be done in e.g. a community fork of our repo.
I realize posting a (coding) “call to arms” here might be controversial, or trigger second-guessing instead of contribs; but then again this forum has been very friendly and helpful to us in the past, so why not give it a shot…!