Back to Blog home

Sailfish OS Hossa is now available

It has been a long time since my previous blog post, but I thought it was time to give a bit more tech savvy update for a change. I want to open up a bit more in details how things go and the reasoning behind those actions. So, without further a due, let’s proceed.

We are pleased to announce the new 3.0.3 update, which is named after Hossa National Park. Hossa National Park is located in North-East Finland in the region of Kainuu. The park is home to Värikallio, an area that has some of the most important rock paintings in Finland. The paintings tell the story of the Stone Age men that used to be located in the area, and used the water routes next to the stone wall.

The update

Hossa release is primarily a technical software release that brings many under the hood upgrades, such as the long-awaited updates for C-library (glibc), compiler toolchain (gcc), browser engine, as well as the integrated Near Field Communication (NFC) framework. Also included are a number of security vulnerability fixes, stability improvements, and better compatibility in different areas.

Maintaining an operating system is a huge effort and there are lots of things that are not visible to the naked eye. To keep the maintenance burden under control, so that we will not deviate from the upstream and do not need to start maintaining our own version of the components, at times one needs to take a step back and look at the whole picture. With the 3.0.3 upgrade, we took such a step and concentrated a bit more on the not-so-visible items. At the same time we worked on bigger items for the upcoming updates, such as file system encryption, which some of you noted being referenced in the 3.0.3 update already 🙂

This time we decided to make some improvements that our community has been asking for a while, including glibc , gcc and browser engine. These couple of components have not got much attention in a while and needed it quite a bit.

Updating glibc

Our glibc has been for some time now in the eglibc version 2.19, which was already merged a while ago back to the upstream glibc. When a component is this far behind the upstream, it is quite common that going directly to the latest and greatest version is not possible, and one needs to first look on the dependencies to be able to know this information. In addition to reducing the maintenance burden, the new glibc also brings us security improvements, as well as support for new features, such as a new version of Unicode. After checking some of the dependencies on the glibc side, we noted that the first feasible step would be to move to glibc version 2.25 version with security patches on top of it. Reasoning for this was that glibc 2.26 required at least gcc 4.9, which was not there at the time we started the glibc update. Also, glibc 2.28 requires make version 4.0 or newer, which we did not have yet either. Thus, the 2.25 was selected as the first step to ensure that we did not make too many changes at the same time in one release.

It should be noted though that since the branching of the 3.0.3 release we have worked more on glibc and as some of you might have already noted, we have version 2.28 in our repositories, which is coming in the next release. You can follow the progress at glibc repository. To get to such new version we had to touch on tens of different packages including e.g., m4, bison, automake, gzip, groff, iproute, libdrm, mkdevnodes, procps, qemu-usermode, qemu-usermode-static, squashfs-tools, systemd, and many others. This should give you a better picture as to why this change is not only about updating this particular component, but also about ensuring that all other components building on top of it builds properly.

Updating gcc

The second big update that we worked on was gcc, which is also lagging a bit behind in the latest releases. Because of this, and the fact that we have not been updating gcc in a while, we decided to split the update to smaller parts similar to the glibc. In gcc’s case we decided to take the first step by updating it to the latest version of the 4.x branch, i.e. 4.9.4. This gave us a bit more solid base for the platform and also more visibility of how the gcc upgrades go. Going from 4.8 to 4.9 also brought us improved C++14 support. Similarly to the glibc update, this gcc update touched a lot of components, such as, sb2-tools, buteo-mtp-qt5, maliit, lipstick-jolla-home-qt5, gdb and so on.  After this we are planning on the next step of the gcc upgrade, which hopefully will still land for the latter part of the ongoing year.

Browser engine

The last big item that improves usability is the browser engine upgrade, i.e., Gecko, which is used to render web content to the user’s display. This time the update was up to the Extended Support Release version 45 (ESR45), which we know isn’t the latest version but was the next step in the upgrade path that was relatively easy to take. By updating Gecko, the browser functionality within websites has been improved, and it is able to show the web pages more accurately. However, there are some features that we didn’t finish in time like double tap to zoom. The browser’s default user agent string was updated at the same time. If you are interested in contributing and fixing user-agent based errors you can find more information here. Like with the glibc and gcc, this browser engine update is just the first step, and the target is to take the next step in the browser engine soon.

 

“The update target usually is the latest version, but at times one needs to take intermediate steps so that the delta for one upgrade does not get out of hand and that one can integrate and release things earlier.”

 

In addition to the items above there were a few other items, e.g. updating of icu to version 63.1, which has been also pending for a while as it has had dependencies to the lower level even on package management level i.e. rpm. In this case, the dependency chain was libicu > sqlite > nss > rpm, which meant that in the worst case while doing the icu upgrade the rpm, which had dependencies to it, could stop working (similar to the problems with sqlite and nss also in the past). After looking into this particular issue, we noted that we can drop the libicu from the rpm chain, by changing rpm to use openssl instead of nss by default. In addition to libicu this also made it possible to more easily handle updates to sqlite and nss as both of those also dropped out from the rpm’s dependency chains. Similar change was done to p11-kit to use openssl instead of nss .

As explained earlier, when touching some lower level components like glibc and gcc, many other packages might fail to build because of changes in libraries, headers, paths, etc. These of course needs fixing before the release can be pushed out. The simplest thing quite often would be to patch the component with the needed fix. However, as we have limited resources and we do not want to pile up the maintenance burden, we rather try to update a component to newer version instead of just fixing the issue with a simple patch. Surely there are always considerations needed as updating a component always brings in bigger change and risk. This is why applying the patch is preferable when we are further in the releasing process. As pointed out earlier, the update target usually is the latest version, but at times one needs to take intermediate steps so that the delta for one upgrade does not get out of hand, and that one can integrate and release things earlier.

While some of the team worked on the bigger items like these glibc and gcc updates, there were also many others who touched on different parts of Sailfish OS. Thus, we also managed to include quite a notable set of component upgrades including, but not limited to: updating of iptables to version 1.8.2, pcre to version 8.42, pulseaudio to version 12.2, shared-mime-info to version 1.12, util-linux to version 2.33.1, valgrind to version 3.14, and zlib to version 1.2.11. The aim is to have a few package updates always in each release, to keep up with the upstream.

On top of all of the above, we also worked on reducing the image size by moving extra documentations to separate packages and unifying the packaging conventions. Also, work was done to exclude some tools/libraries to separate packages, which are not needed without developer mode to reduce the size of the updates. Also, tools depending on ncurses were moved to sub packages if possible, which allowed dropping ncurses from the image. Some of such tools to mention are sqlite and connmanctl, which no longer are part of the default image. However, all the tools will still remain in the repositories so that all of you who want to tinker with the cmdline have the tools still available. We also dropped e.g. kbd from the image by default to save some more space, and build e.g. our browser engine with system icu enabling also significantly shorter build time. These and other fixes saved around 15M in the Sailfish OS core.

Surely some fixes on the user interface level also got in touching different parts like email, keyboard, messages etc. You can read more about those from the release notes and detailed change log.

Oh, and one more thing…

We did not forget Sailfish X and the XA2 device, to which we brought some very welcome fixes, such as fixing the sensor behaviour when doing phone calls. We also improved the high power drain in the wlan usecase. Also, one new addition to our Sailfish OS core offering was Near Field Communication (NFC) support, which is in its first version with URL tags available with 3.0.3 hossa. For anyone wanting to give it a bit deeper look you can check the source codes of our NFC daemon and the plugin for the XA2.

Additional items to XA2 were related to improvements for the Android 8.1 App Support, including:

  • Mobile data works now with both SIM cards for Android apps on XA2 devices
  • Recently added files to the Sailfish side appear now on the Android side immediately
  • System UI notifications from the Android side are now hidden (Sailfish OS to handle)
  • Notification handling is now improved, new notifications will not receive grouped notifications
  • SSH file transfer no longer crashes Android App Support

Surely there are still places to improve and we are already preparing for the next set of fixes for the Android App Support, which will include at least improvements with notifications to not show that many duplicates, fix for display blank prevention so that your display stays on while you navigate or watch videos via Android apps, and initial support for clipboard between Sailfish OS and Android apps.

Br,

Sage

Ps. Let us know what you think of this more technical blog post and if we should start going into more details like this also in the future.

 

Marko Saukko

CTO at Jolla. Years of experience on hardware adaptation work and working with core of Sailfish OS. Love photography and playing videogames from the 80’s and 90’s 🙂

57 Comments

  1. Avatar

    Thanks for the Update, working fine on my XA2. Especially battery live is a lot better now with the WLAN power drain issue fixed (I get about 2 full days of my normal use now, before 3.0.3 it was empty at the end of the day).
    I for my part do like the more technical details and “behind the scenes” reasons shared in the post, as it helps to better understand why certain things are done in the way they are done, and would like to see more details like this in the future.

  2. Avatar

    Love this blog post!
    Just the right information when the update has more technical nature and less UI changes.

    And I noticed this blog is now hosted on wordpress, also something new if I am correct.

  3. Avatar

    Fantastic blog post and a very interesting read. It’s a pleasure to learn about those technical details and the decisions your developers have to take. I’d certainly also like to see more such posts in the future. Thank you Jolla and Sage.

  4. Avatar

    What I like about this extensive blog post is that it gives us community an insight into _why_ certain decisions were made the way they have been. So far Jolla used to communicate very little about what to expect, priorities and compromises made for maintaining Sailfish.
    I understand that you have to strike a balance between revealing too much of internal strategy and projects, while keeping the community informed well enough. But this really is a step into the right direction.

    Thanks Sage!

  5. Avatar

    Great blog post, thanks for all the details!

  6. Avatar

    Please keep this blog post format for every new release. I understand that not everyone is tech savvy enough to understand everything mentioned but at the same time, it gives so much visibility on the processes and technical difficulties you have when developing Sailfish. And visibility is one of the things the community has been critical about Jolla a lot in the past. Personally, it brought back memories of the dependency hell I had to fix a few years ago when I was maintaining a server running Gentoo. Thanks for another great update and keep it up.

  7. Avatar

    > Ps. Let us know what you think of this more technical blog post and if we should start going into more details like this also in the future.

    It’s what I expect at blog.jolla.com.

  8. Avatar

    +1 for detailed technical posts

    However I can’t find the change log from 3.0.3.8 to 3.0.3.9? 🙂

  9. Avatar

    Good idea to give a glimpse of technical side of things for a change!
    Seems like a good update and I think I’m jumping back on board Sailfish ship!

    • Avatar

      Oh… Apparently I’m not jumping on board at the moment…
      I found this message from Jolla Shop’s downloads section:
      “NOTE: Sailfish X images for Xperia XA2 models are temporarily unavailable due to compatibility issues with Android 9 update.”
      Any rough estimates when this might be cleared out?

      • Avatar

        Well… that was FAST! Now the image was there to download for XA2 too. 😀

  10. Avatar

    @Venty: That’s what came to my mind too.

    I do appreciate the more thorough blog post. I’d als like to remind James or whoever of the orphaned diaspora account.

    I’d also appreciate if changes made for the XA2 were coming to the X as well.

    sail on

    • Avatar

      Agreed. I bought an X instead of a newer one *specifically* because the first release was only for X, and now it doesn’t get e.g. Android upgrades.I can’t afford buying a new phone, so I’m in a worse situation wrt. updates, than I would have been, if I had stayed with Android.
      So I’m actually slightly pissed…

  11. Avatar

    Nice to read about this New Update on the jolla blog, improved a lot , keep it on !

  12. Avatar

    Thank you for the update. In Hossa several search engines (openrepos) work again. That is really nice.
    Still I am hesitating about buying an XA2 plus new Sailfish. This is why:
    a) the sim/memory card reader of my XperiaX does not work anymore,
    Caldav/Carddav do not work, (it does work on my ipad, this could be the reason,
    b) linking from email, Piepmatz, Guardian app etc. to browser does not work,
    c) I am not able to flash myself.
    So I am stuck. I miss Sailfish, would like to use it again as a phone, but how can I get a working device?

  13. Avatar

    I definitely like this technical style as well.

    Also it is quite likely there is a significant amount of technical users – even just due to the CLI-nature of Sailfish X installation, not to mention the ex-Maemo/ex-MeeGo user and developer family, that will certainly find technical articles interesting as well.

    And other than finding such articles interesting, this can really help application developers and possible future Sailfish OS contributors better synchronize their efforts, as newer libraries and information about their availability might make porting of other software or new application dependencies possible, that were previously blocked by outdated system libraries.

  14. Avatar

    Thank You, the update looks very nice, but my Intex Aqua Fish is still running 2.1.4.14 and doesn’t show any updates available. Is there way how to update Intex Aqua Fish to this version?

  15. Avatar

    Wonderful blog post!

    One feels reassured not to use an Android phone nor an Apple phone. You provide ‘adventures’ that ‘they’ never will be able to match (most likely;)

  16. Avatar

    Excellent blog post! This honest attitude on a technical level is one of the unique selling points of Sailfish OS. Keep up the good work! 🙂

  17. Avatar

    I also love this blog post. Transparency builds trust, and this is an important point for most of the sailors. Furthermore, it helps understanding decisions that are made and why we can’t get everything right now 🙂 Thanks a lot for all the insights and of course for this great update as well!

  18. Avatar

    “Let us know what you think of this more technical blog post and if we should start going into more details like this also in the future.”

    Great blog post, and hell yeah!
    Good work on finally starting to upgrade those ancient packages and solving those CVEs.

  19. Avatar

    Very good blog post. Does any of that make Android upgrade also to Xperia X any closer ?

  20. Avatar

    Excellent blog post, and yes, please continue to provide postings like this in the future.

    I would say that other types of blog post are equally welcome – such as talking about the business, the wider community, what Jolla thinks of FLOSS, Open Hardware, privacy, and security and other items regarded as an essential part of current company philosophy.

    I hope that one day we will be able to talk about the Jolla/Sailfish ecosystem in the same way as people talk about Apple/iOS, and Google/Android (or maybe Fuchsia).

    • Avatar

      Yes, that is what I too hoped about five years ago and I have not lost hope entirely. Yet, in those years it became impossible for non tech savvy people to get a phone with Sailfish. James helped me with the XperiaX, but this was once. There is no such thing as a flashing service. I can imagine that techs and geeks are enthousiast about technical info, but for ordinary end users who struggle with bugs and not well functioning devices this is not so interesting. To my regret I had to buy an old type iphone. I miss Sailfish, because it is much nicer than ios. So please, think of end users too.

  21. Avatar

    Excellent relese, really happy with my brand new XA2 Plus.

    Please focus on porting QtWebengine on Sailfish, it will open the way for making simple Progressive Web App.

    Thanks!

  22. Avatar

    Brilliant blog post with a good amount of information that puts many things into perspective 🙂

  23. Avatar

    Thank you for a great update of my Sony Xperia X, and an excellent blog post! It reminds me of the complex web of dependencies and puts things into perspective. I’d love more of this kind of blog posts in the future – a very interesting peek into your work!

  24. Avatar

    One question – why does jolla use such an old gcc release (toolchain issue?)?

    At the moment I’m using gcc 8.3.1 on my linux machine ..gcc 9 is around the corner.

    gcc 7 gave a huge speedup on x86_64 code. Not sure if we can extrapolate this to arm arch. more effiecent code als means less instructions to waste …so not only faster also less power consuming.

    And a newer glibc version is pushing performance aswell.

    So is there any reason sticking to 4.9 ?

    p.s.: such more in-depth blog posts are really nice please continue.

    p.p.s.: c++17 has also some nice features so jumping to a newer gcc will really improve a lot.

    • Avatar

      We started with 4.x and it has been very stable for our use, so there has not been huge push forward so far. Recently there has been more requests for newer toolchain from developers and also some upstream packages are moving to requiring newer toolchains. Thus, it is starting to be more timely to look also to this direction.

      As said in the blog post there is plan to go further, this was just a first step for us to get forward and check what does it take to update the toolchain, which we had not done in a while. One needs to remember that it is not just about updating the gcc package itself, but also ensuring that cross compilation tools work, all other packages in the whole OS build, as well as ensuring that our SDK functions properly.

      Stay tuned for more updates. 🙂

  25. Avatar

    Congratulations for all the work you have done and are doing with Sailfish since the beginning. I’m a big fan of yours but there are a few issues that are bothering me. First is that i can’t make a video call (tried many apps) with Sailfish. Second is that Android support is very old and most of new apps don’t work. Only because of theses things i can’t use my Xperia X as a daily driver. Thanks

    • Avatar

      At least you can make ordinary calls. I even can’t call with my XperiaX. Complained many times here, also about the impossibility of linking to browser, which is very annoying, but no answer, no solution.

      • Avatar

        As far as I know, Xperia X isn’t gonna get any big Android support updates, because of its CPU. But not even being able to make a phone call – what is it regarding to? Any idea? Did you try factory or even flash the phone over the cable?

      • Avatar

        I think it is the wrong place here asking for a solution. You have to open a ticket in Jolla-Support. Your phone trouble sounds like a hardware issue.
        By the way unlocking the bootloader and flashing an AX2 is much more easier than doing it on an Xperia X.
        In addition the Android support version of Xperia X will obviously stick at 4, for the XA2 it is Android 8.

        Good luck

        • Avatar

          Thank you for your reaction. It is both, hardware and software. The hardware problem cannot be solved. For the bug concerning the impossibility to link I got a ticket before but this did not help. I hope you understand that I now have some doubts about the quality of the hardware of Sony, so I am not (yet) buying an XA2. Concerning the OS: I wait until it is more mature.. In the meantime I charge my XperiaX and use it at home.

          • Avatar

            Hi Kea,
            the functionality of the XA2 is none the less not 100%. There is still some work to be done e.g. video support on androidapps (whatsapp), fingerprintsensor…, somtimes the phone stucks or the Android support stops working. The common user needs some patience. So take your time to get an XA2 if you expect a 99,9% working device.
            When you follow the steps of the instruction for flashing an XA2 given by Jolla it is even if you are a normal user no problem. The potential of the XA2 seems to be much higher compared to the Xperia X. It is really exciting how the OS is getting more stable and what problems are solved after every single update. This is the thrill of a sailfish user.
            Using one of the popular OS would be boring and you are aware that you are followed by a big machinery collecting all of you ;-).

            • Avatar

              Thanks! I have used Jolla/ XperiaX as a daily driver for 5 years. Only recently I had to buy that old model iphone because of all the trouble with the XperiaX. IOS is boring. I miss Sailfish. Will wait.

            • Avatar

              I don’t use Whatsapp, nor Facebook, but Telegram instead. Wire is a nice, but that one didn’t work well on Sailfish.
              I wished that Jolla hired a good camera software developer, for now the colours on the OS are not natural. Reds are too crimson, blue is to dominant. This also withhelds me from spending another E350. But often I think: Jolla has come so far, why not going on!

  26. Avatar

    such blogs are very welcome from my side, kiitos! 😉

  27. Avatar

    This.

    As a tech-savvy person who likes to tinker and do things on the shell I really enjoyed reading this great post by sage. It shows parts of the long term vision Jolla has for SailfishOS: Full blown /home device encryption, updated base packages for e.g. newer browser engine, toolchain updates and NFC support. A light at the end of the tunnel making the OS ready for lift-off.

    While browsing the git.sailfishos.org commits and comments every now and then reading sages post made a lot of things clear to me.

    So many thanks for this clarification and please keep on posting technical stuff to the technical follower.

  28. Avatar

    Any word on specific Android apps that might have been fixed in this update? For example, Signal, Slack, Jira, Confluence, Spotify?

  29. Avatar

    Yes!We really need more posts like this one im the future! Also got to say that my XA2 Plus now hooks to my car stereo and Bose headphones automaticaly, no need to open settings anymore! I normaly also got like 20% when my workday is over, now it’s over 75% allways! Awesome jump! Thank you guys and all people involved for providing me such a great OS 🙂

  30. Avatar

    Massive thanks for this update, it’s restored my faith in the project, after slowly losing interest in the last couple of years. I charged my XA2 and on wednesday at 9am it read 100%, now on friday at near midday it’s still on 46%, after losing 35% overnight prior to the update. Massive difference, well done dev’s, you deserve a beer or two from the big cheeses at Jolla HQ !

  31. Avatar

    Wow, this is perhaps the best blog post on the Sailfish operating system I’ve seen. Please keep posting entries like this, it really gives a lot of insight into your decision making processes.

  32. Avatar

    A good post; many thanks.

    However, I’m a Gemini PDA user. My Gemini says that version 3.0.1.13 (which it’s running quite happily) is the most recent available. How might I get hold of this most recent version?

  33. Avatar

    Great post, thanks for giving all us nerds the details.

  34. Avatar

    Overall a pretty nice update. Especially looking forward to the encrypted /home. But please for the love of god let us set a proper password instead of just a code for locking the phone! I cannot imagine this is that much work and it’s just a huge oversight. Also, please get the fingerprint sensor working on the XA2. That’s probably less easy since it’s driver stuff, but regardless of the app ecosystem, you cannot try to sell people an OS where the base hardware doesn’t even work.

    • Avatar

      PS: Technical posts are great, especially considering the fact that so far most of the userbase are enthusiasts who actually understand them 🙂

  35. Avatar

    i know i’m late but the post was wonderful, exactly what we want from this blog 🙂

  36. Avatar

    Euuuhm ….. any news …. or did you Guys think I would have given up ?
    Jolla you still owe me Money!!!

  37. Avatar

    I am sorry bothering you all again, but there is no other place to ask this: if I want to use Sailfish and I buy an XA2 or XA2plus, and I pay for the update, who can help me booting the device and flashing the OS on it? Is it possible to send it and pay for flashing?
    With the Xperia I managed to boot with my Mac after a lot of trouble, but flashing was a bit to complicated.
    Sailfish still is the best alternative for Google and Apple and it is right that Jolla coöperates with Sony instead of booting and flashing wildly all kinds of hardware.
    Sony is going to move its factory from China to Thailand. Hopefully this will have a good impact on the coöperation.

  38. Avatar

    Whatever you’re doing right now, I hope it’s in China.

    • Avatar

      We have a saying: ‘ it makes no difference, being bitten by the dog or the cat’. Aren’t the US and China like the dog and the cat at the moment? Jolla is a European company and it would be good if Europe had its own tech with its own jurisdiction.

  39. Avatar

    I am residing in India. Is the jolla license for XA2 is only an issue with the payment method? Since i couldn’t access the jolla.store, what is the best way to get the software?? Also, when can i expect the finger print sensor to work??

Submit a Comment

We use cookies to improve your user experience and to help us to develop our services. By continuing to browse the site, you approve of our use of cookies.