Sailfish OS update from Jolla
In today’s newsletter we’re very happy to discuss a major milestone within Jolla’s business environment and we also have a special report from pherjung from the recent Hackathon that took place in Bucharest, Romania.
As known, Jolla’s ownership structure became an immediate issue for the whole operation due to the Ukraine war, eventually leading the company to a corporate restructuring program starting in spring 2023. A solution was finally found on November 24, 2023 as the local District Court decided on the restructuring program and obligated a complete sale of the business to another company. The entire business and staff of Jolla Ltd. has now transfered to a new company in whole.
The new legal entity was named Jollyboys Ltd, but as it has now acquired the Jolla and Sailfish brands and trademarks, you may consider the legal entity name to be secondary - it’s the new Jolla anyway. Further, the Automotive business is structured into a separate new entity called Seafarix Ltd.
We will now start strategy work for the new Jolla where we will analyse:
- How we should position new Jolla in the light of technology development (e.g. Cloud, Progressive web apps, AI, blockchain security, zero knowledge proofs)
- Where does market need new Jolla?
- What direction is realistic for Jolla considering the resources and knowledge of ours and the community
We will be working closely with you, the community, for finding the right strategy for the company and the community. We will be coming back to the community asking what kind products and services we should build in the future. Let’s make it flourish again together!
Energy from the Community
In the newsletter today we’re very happy to have a special report from pherjung about the recent successful Hackathon that took place in Bucharest, Romania. As you’ll see below, vlagged, dumol and pherjung organised the event with a focus on developing hydrogen, the very well-respected, widely used and full-feature Matrix client that runs on multiple platforms, especially Sailfish OS!
Introduction
As rubdos and direc85 met last year to improve Whisperfish, I thought that a hackathon was definitely the best occasion to start with hydrogen.
Thilo asked for new maintainers and vlagged and I accepted to give some love to this nice app. Unfortunately, we realized we hadn’t time to invest for a new project. And even more starting with no idea how QML works.
Going to Romania, especially Bucharest, was for me a great chance to visit this really nice country. Discovering various cities, a new culture and a really great gastronomy.
I took the hackathon as a perfect opportunity to start, get some experience with QML and diversify my contribution to Sailfish OS by developing apps. Besides nephros, we all were in a similar situation. Meaning we would help each other, give some hints or simply be a rubber duck
Because I’m a newbie, my only objective was to start tinkering with QML and get support once I’m stuck. This really helped me to not lose my motivation and get even more motivated to learn new things.
Let’s dive in
The first day was spent discovering all these new technologies and test some workflows. Unfortunately, I spent too much time with QML Live. I saw this tool as a great opportunity to blindly and rapidly check my code. It worked fine when testing with one device, but stopped suddenly after I removed some problematic code containing python. Honestly, I suspect there is something wrong with the WebView.
In the meantime yajo10 and vlagged worked together to get a hydrogen build using Github Actions, because OBS is not able to fetch data from the Internet. After this was done, we were ready to improve harbour-hydrogen. The first feature yajo10 added was the possibility to open a link externally from within hydrogen.
It sounds easy, but we didn’t want each link be opened externally. The solution wasn’t so difficult to find, a simple regex checking that the URL does not start with localhost did the job. He decided then to add a pulley-menu to get access to the settings. Comparing how other apps implemented this feature, he found out that a WebViewFlickable would be needed.
Once it was included and working, he realized that the keyboard was hiding the text field, meaning that you don’t see what you’re writing. It’s not really what we wanted and such a bug must be fixed. As it was the end of the day, this task was kept for the next day.
Developing apps with a little bit of experience forces you to compare what others have done. The beauty of open-source allows that. During all the hackathon we asked ourselves where such a feature is implemented and how? Unfortunately there are not so many apps using the WebView component, but that didn’t stop us searching and finding examples. The keyboard bug for instance wasn’t present in the browser. Looking at the source code, helped yajo10 fix this issue.
The next day, nephros arrived even though his first flight had been cancelled. We were hoping he would manage to catch his connection. Our hero could join us! I always love such meetings, because it’s usually a good way to discover who’s behind a pseudonym Nephros’s presence was really helpful. With his help could understand a bit more about QML and even submit some features or fix another one.
I tried to find a way to fix the bug with the pulley-menu. As it conflicts with the WebView, it’s necessary to first swipe a bit to the top to scroll down. This is not what we wanted and discussing with vlagged, we discovered that the email-client had such a feature implemented. There is even a patch which brings it back! My objective become clear: establish what are the difference between hydrogen and the e-mail client that allows this feature to works?
I started comparing, analyzing and trying to understand how the e-mail client works. Nevertheless, this wasn’t enough and I was unable to catch the right code to fix this bug on hydrogen. Once I realized my skills aren’t good enough, it was better to skip this issue to look at later.
As there was another annoying bug, I already knew what to do. We discovered that on some specific links, the WebView opened it, rather than the browser. This wasn’t expected as the new feature was implemented: open links externally. The main advantage of hydrogen, is that it works using a web browser. Analyzing the code, we discovered that these links didn’t contain a target attribute. The question after was: which lines to modify? git grep was the perfect tool and helped us to fix this bug.
The last days, we were really happy with the configuration of the hackathon. Meeting at 10 am until 08 pm, going to dinner and drinking together after was really cool.
Conclusion
Before the hackathon, we listed each feature we would like to have. This was a really good approach and permitted us to stay focused during the event. We each took some tickets and we helped each other out when we got stuck
Working together and in the same place was really a big advantage. Otherwise, I’d stay focused too long on a task with the hope to find what’s wrong with my code. Staying with other people — including a smoker — was a perfect opportunity to take some breaks. Calm down, speak about what you’re doing during the break or even speak about something else was the motto of each break.
“Go back to jump forward” as we say in French.
Next year, we really would like to repeat the experience. Perhaps not in Bucharest, but in a more central place. The Czech Republic could be a cheap and accessible location.
Stay tuned!
Repository roundup
Browser stack
-
gecko-dev
, Mozilla’s Gecko web rendering engine, a lot of activity took place in the branch dedicated to upgrading the browser to ESR91 version. mal fixed builds for non aarch64 architectures, rainemak fixed the touch screen issue, while flypig continued improving the upgrade.
Communication services
-
messagingframework
, the email Qt framework, dcaliste upgraded to the upstream branch implementing IPC through D-Bus. This is coming in conjunction with a change in email permissions forsailjail
, since the message server is now using D-Bus instead of a QCop socket. pvuorela cleaned the upstream and the code in patches not to get warnings anymore during compilation. dcaliste reworked the patches and proposed to separate into two the main patch to be able to slowly try to integrate it upstream. -
nemo-qml-plugin-email
, QML bindings for emails, simonschmeisser exposed in QML email list models the response status of an email (replied, forwarded…). dcaliste flagged the outgoing emails with a response status, when necessary. -
nfcd
, the daemon for near field communication, slava externalised the code into a new librarylibnfcdef
responsible to build and parse NDEF data. NDEF means NFC Data Exchange Format and is the syntax used between devices and tags.nfcd
has been updated to use this new library.libnfcdef
integration is still pending though, and slava started a new branch to continue the development based on this new library.
Multimedia
-
droidmedia
, Android media wrapper library, simonschmeisser while testing mal 's developments on Camera2 API, opened two new issues: one about exposure correction and one about using the flash as a torch. -
ffmpeg
, a framework to encode and decode multimedia resources, poetaster proposed to add compilation of support for text drawing. This would allow text overlays and subtitles in Videoworks, for instance.
User interface
-
lipstick
, the home screen code (open source parts), pvuorela restarted the work from robang74, making the README file more up-to-date, with a new pull request.
Low level libraries
-
sensorfw
, sensor framework, Tofee fixed a build issue for the Yocto distribution when using meta-qt6. Because of wrongly set macro variable,sensorfw
was looking for modules in at the wrong path. Herrie82 is working on making the changes for LuneOS accepted in SailfishOS. While these changes concerned newer versions of Qt, some also deal with how the package is built with libhybris. After some exchanges with mal, Tofee is proposes a simpler version. -
libdbusaccess
, providing more fine-grained D-Bus access control, slava pushed 5 new commits, tidying the build process. -
libglibutil
, a library extending GLib with convenient utilities, following an issue with hidden symbols when built with CLang, slava ensured that all (and only) required symbols are exported. slava also proposed to clean warnings due to issues with C cast in code.
Developer’s corner
-
llvm
, the machinery to build compilers, piggz proposed to package thelld
excetable, which is a linker coming with LLVM tool chains and needed to build Android kernels for instance. -
gcc
, the GNU compiler collection, mal created a pull request where he backported two patches fixing two different compiler internal errors. -
hw-ramdisk
, tools to be used to create init ramdisk for booting Sailfish OS, mal created a patch adding support for lz4 compression, and also disabled parallel builds.
Please feed us your news
As always, please do not hesitate to share your ideas, thoughts, or suggestion for future newsletter topics.
The recently organized successful Hackathon once again proofs what this community can do when working together! Awesome work everybody involved!
Please do also join us at our community meetings on IRC, Matrix and Telegram. Next community meeting will be on the 7th December.