Linphone build structure and x86 support

Hi @ssumpf,

I’ve been digging into your repositories lately (depot/genode) and I’m finally starting to wrap my head around the Linphone structure.

I truly believe that porting Linphone is the ultimate “stress test” for anyone aiming to master the Genode architecture. Since it uses so many drivers and libraries at once, it’s the best way for me to make sure I really get how the whole framework works.

My ultimate goal is to get Linphone running as a full x86 experience. I’ve explored your current repos, but I wanted to ask: is there a specific branch in your Git where the build process is already somewhat “turn-key” or functional?

Even if the current state is ARM-specific, it would still be incredibly helpful. Seeing a working ARM baseline would clarify the missing pieces in my understanding (specifically regarding the Makefiles and artifacts handling).

@hamed: The linphone-sdk folder contains the SDK and builds the linphonec daemon, which provides basic VoIP functionality. linphone-simple is a small Ubuntu UI toolkit (now called Lomeri) based on ubports-linphone / linphone-simple · GitLab. I have build both for Sculpt-25.10 for the PinePhone, but it can be build for x86_64 as well. If I find the time, I will publish a version for Sculpt-26.04, which would be a good starting point. Right now, I would use the version from my goa-projects repo, Sculpt 25.10 and Goa for Sculpt-25.10. For 26.04 the project needs to be adjusted. There also might be some adjustments necessary for 25.10. Once it’s working for 25.10, the next goals would be to test it on x86, upgrade to 26.04, and upgrade the SDK to a current versions since it is quite dated.

2 Likes

Thank you for the detailed explanation. I haven’t worked with the goa tool yet and lack sufficient knowledge in it for now. Although I plan to dive into it as soon as possible, my mind is currently occupied with porting Linphone from ARM to x86, which is a very exciting challenge for me.

My goal is to achieve a static build during the project compilation, similar to the way .run scripts handle builds. Do you think I can fulfill my requirements by leveraging your goa project (which I’ve already looked into)?

What I’ve done so far is extract linphone-simple and linphone-sdk from the raw, pkg, and src folders in your depot, along with all their dependencies. However, I got stuck because the content.mk files were missing, and I’m not yet familiar with the concept of artifacts within the Genode framework.

I chose this specifically because it wasn’t available in your x86 version; I saw it as a personal challenge to port a project with many side effects to the system and get it running.