Subscribe to future posts here
Sailfish OS update from Jolla
As we reach the end of 2022 it’s time to take our usual look back at the year, while also glancing forward to what 2023 has to offer. It’s been an unusual year for Sailfish OS, but still with plenty to celebrate. And the newsletter has something to celebrate too, with this being the 50th issue. With all of the crazy non-Sailfish related news that’s been happening around the world this year, we’re pleased that you’re still taking time to read about your favourite mobile operating system in the newsletter as well.
Before we get into our annual review, let’s first look forward to what the first couple of months of 2023 have to offer.
If you’re also keeping up on Twitter, Facebook or LinkedIn you’ll have seen the announcement about the rapidly approach release of Sailfish OS 4.5.0. On 22nd December we branched the repositories, which means we selected the features that would be in the 4.5.0 release and created the first internal version for testing.
Obviously there’s still a lot to be done between branching and the full public release (including lots of testing, bug fixing and the Early Access phase) and so we wouldn’t usually announce a release at this stage. But the Christmas spirit got the better of us and we couldn’t wait to let you, our community, know.
We hope it’s something for you to look forward to too, as we’re definitely excited to find out what you think about all of the bug fixes and improvements we’ll be rolling out.
We’ve already mentioned some of the events that Jolla will be attending next year, but it’s worth reiterating with a little more detail. Right at the head of the year, Jolla will be attending CES 2023 in Las Vegas between 5th and 8th January. The focus for Jolla at the event will be on Android App Support, something which many of you reading this will already be familiar with as a headline feature of Sailfish X. App Support remains an astonishingly effective way to run Android Apps with deep integration into Sailfish OS, so expect to hear more about it in 2023.
We’ll also be attending FOSDEM 2023 in Brussels on the weekend of the 4th and 5th February, where we’ll have more of a focus on Sailfish OS. We’re very pleased to be helping run the Linux on Mobile stand, alongside a number of other mobile Linux distributions. If you’re attending FOSDEM in person we really hope you’ll come and visit us at the stand. You’ll be able to try out Sailfish OS on a range of devices and compare it directly with other mobile Linux flavours. We’ll also be demoing the developer tools and — we very much hope — enjoying engrossing conversation about all and everything tech and open source.
We also have a couple of talks planned for FOSDEM as well. On Saturday, sailor Björn Bidar (thaodan) will be speaking in the FOSS on Mobile devroom to tell us about his adventures “Sailing into the Linux port with Sony Open Devices”. He’ll talk about his Sailfish OS porting activities, which will give a fascinating insight into Linux porting in general, and Sailfish OS and Sony devices in particular. Please turn up and ask Björn lots of challenging questions! Then on Sunday yours truly will be presenting on “Covid Exposure Notification Out in the Open” in the Public Code and Digital Public Goods devroom with help from Sailfish community member oroesler. There we’ll look at how we implemented the Google/Apple Exposure Notification protocol on Sailfish OS using Qt, as well as our experiences interacting with the developers of Germany’s Covid Warn App. Please also turn up for this and ask lots of easy questions!
If you’re planning to attend FOSDEM either in person or online, then do let us know which other talks or events you plan to attend. In previous years we’ve enjoyed many fantastic talks that were recommended here by you and we’d like to do the same again.
Read on for our review of the year presented through the medium of statistics. After which we’ll have our regular Repository Roundup from Damien Caliste (dcaliste), with a summary of all the latest repository changes, capturing the final changes just prior to the 4.5.0 branching. And then after that we have our usual App Roundup to see what’s been sailing into the Jolla harbour this fortnight.
A year in statistics - Software
Thanks once again to the tireless efforts of keto we have a fresh set of statistics to share with you, a numerical perspective on the last twelve months activity in the Sailfish OS community.
While we’ve not seen the huge shakeup of the software space we saw last year through the introduction of 64-bit binaries, the sandboxing changes have continued to make waves, precipitating many updates and releases to the Jolla Store. And we’ve also seen a bunch of new apps being made available in the Jolla Store this year. Zollstock, Dino, WORDLE, Flood To Java, Evento, TimeLapse Tools and Stopmotion, to name just a few that we’ve featured over the last year in the newsletter (not to mention some of the ones we didn’t get a chance to cover, like Whoosh! In the Dungeon, Bassoontracker, Pipes and Porthole).
But will any of these have made a dent on the most popular apps of the year, or will it be dominated by long-term favourites? Let’s find out by first taking a look at the top ten most downloaded apps of 2022.
- File Browser from ichthyosaurus
- Pure Maps from rinigus
- CodeReader from slava
- HERE WeGo from HERE
- Fernschreiber from ygriega
- GPSInfo from balta
- Zollstock from black_sheep_dev
- Fotokopierer from fifr
- SeaPrint from attah
- WORDLE from slava
File Browser remains at the top of the list, the most popular download in both 2021 and 2022, and with barely a dent in its lead over other apps; an impressive result. It’s no surprise to me to see Pure Maps remaining at number two in the list either. There’s a bit of jostling further down the list, but the new entries are Zollstock at number seven and WORDLE at number 10, pushing Advanced Camera and OSM Scout out of the top ten this year.
These are all great apps, and all well-deserving of the incredible download numbers they all achieved this year. It’s also great to see such rapid updates to so many of these apps too. Zollstock for example managed a release roughly every few months, an impressive feat.
In the Sailfish community, high downloads is usually a sign of quality software, but it’s also nice to see how the community reacted through application of the favourite button in the Store. In the top-ten list of favourited apps in 2022 we see a number of familiar names, but also some excellent new entries.
- File Browser from ichthyosaurus
- Fernschreiber from ygriega
- Pure Maps from rinigus
- WORDLE from slava
- Dino from arustg
- SeaPrint from attah
- Zollstock from black_sheep_dev
- CodeReader from slava
- HERE WeGo from HERE
- Quake 2 from sashikknox
While File Browser still takes the top spot, the new entrants here are both games. At one end of the spectrum we have Dino, a simple infinite-runner, where you play as Dino the dinosaur dodging boulders, cacti and aliens, a cute conversion of the Chrome-lost-connectivity game. At the other end we have Quake 2, the 3D first-person shooter that translates surprisingly well to the very-small screen.
File Browser aside, it’s worth noting how tight the competition is between the apps in the top ten.
Every app developer on Sailfish OS is to be applauded. We all rely on your ingenuity and dedication to bring new and exciting capabilities to our favourite operating system. But today we especially toast everyone who got their app into one of these top ten lists.
It is true to say that apps released later in the year will find it harder to enter this list, since they’ll have less time to build up the numbers. So with so many recent great releases, it will be interesting to see how these lists will change in 2023.
A year in statistics - Devices
It’s easy to forget that the first version of Sailfish OS 4.4.0 Vanha Rauma was only released in May this year, and that with it came support for the Xperia 10 III. The Xperia 10 III remains an impressive piece of hardware, and a big leap forwards from the Xperia 10 II that preceded it.
And we see that reflected in the statistics for official Sailfish X device popularity in 2022. The Xperia 10 III accumulated more sales of Sailfish X than all of the other official devices combined. We’re happy to see this of course: while we pride ourselves on our support for older devices, there’s no denying that you’ll get the best Sailfish OS experience on the most powerful device.
Despite this the Xperia 10 II and XA2 still contributed a healthy percentage to the Sailfish X numbers in 2022, which goes to show the importance of supporting a variety of hardware form factors.
And for even more hardware variety, there’s no shortage of choice in the world of unofficial ports. The top ten list doesn’t do justice to the variety of community-maintained ports out there, but unfortunately we have to set a cut off somewhere, however artificial it may be. Interestingly, the top ten list of unofficial Sailfish OS ports looks quite different this year compared to the list from 2021.
- Volla Phone and Volla Phone 22
- Xiaomi Poco X3 Pro
- Xiaomi Redmi 5 Plus
- Xiaomi Mi 6
- F(x)tec Pro1-X
- Moto G 2014
- Xiaomi Redmi Note 4
- Xiaomi Mi 3, Mi 4
- Samsung Galaxy Note 4
In 2022 the PinePhone remained the all-out winner as the most popular port, although with a slightly smaller lead than in 2021. But what we see overall is a broader — arguably healthier — balance this year. The Volla Phone and Volla Phone 22 (which we’ve combined into a single entry) have enjoyed a real boost and are presenting strong competition. It’s also surprising to see so many Xiaomi devices in the top ten list this year, but there’s clearly a strong demand for the features and performance that Xiaomi phones offer with Sailfish OS.
As with our app developers, we applaud all of our community porters for their amazing efforts adapting Sailfish OS to such a wide variety of different phones. But of course, we reserve our loudest applause for those that made it into the top ten this year.
Thank you to everyone who contributed to the Sailfish OS community in 2022. The year has been vibrant and exciting as ever, and that doesn’t happen without input from every developer, every porter, every forum commenter, and most of all, every user of Sailfish OS. Here’s to an equally vibrant and exciting 2023!
The documentation website is becoming more and more complete, with descriptions for applications but also with more technical articles on logging and debugging. It has definitely become a source of valuable information from beginner usage to expert one. There has been a lot of activities in various libraries recently, with the initiative from neochapay to extend packaging to allow concurrent installation of Qt5 and Qt6 versions. This is not directly for a use in Sailfish OS, but these are notable contributions helping to prepare the transition.
libgofonoext, a client library for Sailfish OS ofono extensions, slava freshened up the copyright holder and updated the Debian packaging compatibility level.
ohm-plugins-misc, some plugins inherited from Nokia for the open hardware manager (OHM), jusa ensures that headphone connexion / disconnexion is properly reported for drivers that inverts logic.
connman, the connection manager, LaakkonenJussi merged in his pull request not to timeout VPN that are waiting for credentials. LaakkonenJussi also backport an upstream patch fixing a crash on malformed HTTP response. With the previous patch, errors became silently ignored, so LaakkonenJussi added a merge request to actually log these.
libconnman-qt, QML bindings for the connection manager, LaakkonenJussi is exposing a new
associationstate for VPNs. elro34 found and fixed a memory leak on DBus exposition of technology changes.
nemo-qml-plugin-systemsettings, QML bindings for various system parameters, LaakkonenJussi added an
associationstate to the VPN status when the VPN is waiting for credentials for instance.
Low level libraries
libiodata, a library for writing and reading structured data, neochapay is proposing changes to support parallel installation of a Qt6-based version.
timed, time and alarm handling daemon, neochapay is also proposing to adjust the build system to support Qt6.
libresourceqt, Qt library for resource policy, neochapay is adjusting the code to compile with Qt6.
libmce-qt, Qt client for mce and a declarative plugin for it, neochapay is proposing a pull request adjusting the build system for Qt6 parallel installation.
libngf-qt, Qt-based client library for Non-Graphic Feedback daemon, neochapay has also a pull request updating the repository for Qt6.
libusb-moded-qt, a library of Qt bindings for usb_moded, neochapay adjusted the source and the build system for Qt6 compliance.
nemo-qml-plugin-configuration, QML bindings to access configuration values, neochapay is also proposing changes to get the package build with Qt6.
nemo-qml-plugin-time, QML bindings for time handling (system wide clocks…), neochapay continued his upgrade work for Qt6 with this package.
libqofono, Qt bindings for Ofono, neochapay also pushed a request for Qt6 upgrade of the build system. jmlich spotted an installation issue for the test and fixed it.
SDK and documentation
doxygen, the code documentation tools, vigejolla updated to the latest 1.9.5 version from last August (from 220.127.116.11) and rework the repository layout to use git submodules. He also fixed a build dependency in a second commit.
amber-web-authorization, a QML module allowing applications to perform OAuth1 and OAuth2 requests, vigejolla clarified the documentation on how to declare a build dependency on this package, following a question on the Forum.
pacrunner, a daemon for processing proxy configuration, martyone modified a patch allowing pacrunner to run on a custom DBus bus. This is part of a work to handle proxy in SDK.
sailfish-qtcreator, the Qt IDE, martyone added a
--stableoption to the new
scrapecommand. With this option, the original names of the patches are preserved. martyone also added a modification to force the build engine to restart to take into account proxy changes. martyone got accepted his pull request to allow
valgrindto perform memcheck with tunnelled connections.
sdk-setup, part of the Sailfish SDK, martyone modified
mb2tool to add a
--stableoption to the new
scrapecommand. martyone also modified
sdk-manageto take into account a proxy configuration when dealing with toolings and targets. martyone also limited the patch names used by the
scrapecommand to be compatible with git maximum length for patch filenames.
rust, the Rust programming language compiler, vigejolla added the build dependencies for the cross-compilation packages.
Sailfish OS website
jovirkku expanded the log collection articles by adding a new one on getting persistent logs.
jpwalden added a helping article on troubleshooting the WLAN connection.
jovirkku moved the article on the Jolla account from the tips category to a new “Jolla account setup” one. He updated the Sailfish X license page accordingly.
LaakkonenJussi contributed to the cheat sheet page by adding a how-to get a backtrace with
gdbat boot from any service.
jovirkku added a page describing the clock application.
jpwalden added a page on the calendar application.
vigejolla modified the packaging guide to highlight the spec file instead of the yaml one.
jpwalden added a page on the camera application.
jovirkku proposed a page on the email application.
vigejolla modified the toolchain documentation adding details on the target device filesystem.
python-setuptools, easily build and distribute Python packages, mal has removed the build date from
egg-infotag, to ensure reproducible builds.
gecko-camera, a plugin-based library for Gecko to simplify video capture, mal has removed the release tag from the versioning to ensure reproducible builds.
nspr, platform independence for non-GUI operating system facilities like threads, file and network IO…, mal set the build time in a fixed way, based on the changelog one.
kf5bluezqt, the KDE framework handling Bluetooth, mal fixed a packaging issue after the Doxygen upgrade.
qtmozembed, Qt bindings for the Gecko engine, mal fixed build reproducibility by making
readelfsuccess during build-compare. It was previously failing because
tt.binexecutable was lacking a proper ELF header.
New year; new apps. The main thing that each of the four apps in our app roundup have in common is that they’re all new to the Jolla Store or to Sailfish OS. It’s exciting to see so many new apps being released to the Store in recent weeks. We’ve limited ourselves to just four that caught our eye. Four apps from four different developers, all very different but all apps we think you’ll really appreciate.
The apps are also built on four very different development techniques. Seeing these different apps, three created from code originally developed for different platforms, and one completely native to Sailfish OS, fills me with confidence for future development on Sailfish OS. Both developers and users now have many excellent options to choose from, and the developer here are leading the way.
Whoosh! In the Dungeon
Whoosh! In the Dungeon (let’s call it “Whoosh” for short) is a brilliant game, originally created by Maksim Varezhkina and ported to Sailfish OS by sashikknox. It’s worth noting that the game is built using the Godot game engine, the runtime for which was also ported to Sailfish OS by sashikknox. It’s a compelling combination and a great game.
Your role is to wander (aimlessly? No! With purpose) through a maze of dungeons, gradually going deeper and deeper until you reach the 100th level down. As you descend you’ll meet increasingly powerful foes, all intent on your untimely demise.
If you’ve ever played Legend of Grimrock then the gameplay style will be familiar to you. You move forwards and back, rotate left or rotate right in a semi-turn-based manner. Things become more frantic as soon as you reach one of the many creatures inhabiting the dungeon. At that point you move into real time combat. In order to defeat the creature you must draw a glyph on the screen to wave your wand in just the right way in order to perform a spell. It’s basically battle-by-palm-os.
You can learn new skills and spells, buy potions and upgrade your wand to improve your chances, which you’ll need to do as you go deeper into the dungeon.
Whoosh offers up a simple formula that’s nevertheless addictive, and while the audio and graphics may not be the highest fidelity of any game out there, they’re certainly atmospheric enough to engross, and rank well in the pantheon of native Sailfish OS games.
Version 1.0.1 of Whoosh is available from both the Jolla Store and OpenRepos, and well worth the download.
Hafenschau, by Samuel Kron (black_sheep_dev), is a native app that describes itself as being an unofficial content viewer for Tagesschau, the German television news service of public-service television network ARD. While it’s new to the Jolla Store, it has been available from elsewhere for just over a year already, but this is the first time its featured in the newsletter.
Apparently Tagesschau is the most-watched news program on German television, with broadcasts throughout the day. The website provides categorised news stories often including video reports and other media. The app provides a window onto this content that’s both comprehensive and super-fluid. The user interface is very slick and nicely formatted, conforming very well to the Sailfish Silica style that feels much more responsive than visiting the website. Audio can be played directly from the page while video will push a new page for distraction-free viewing.
In addition to being able to easily switch between categories and select articles, once inside an article you can copy a link to it from the pull down menu. There are also a plethora of configuration options to tune your experience, and it’s also particularly nice to see good use being made of the app cover.
The Hafenschau app provided my first experience of the Tagesschau content, and for an initial release to the Store it’s hard not to be impressed. Samuel has done an excellent job in terms of design and handling the downloaded content. The content itself is all in German of course, but if you’re comfortable with the language then this app comes highly recommended.
Version 0.9.1 of Hafenschau is available from the Jolla Store, OpenRepos and Chum.
It’s often claimed that maths and music have a lot in common, and that those with a natural aptitude for one are just as likely to have a natural aptitude for the other. I have no idea whether that’s true or not, yet while my musical skills leave something to be desired, I must admit to being partial to the odd equation or two.
So any app that claims to be able to turn mathematical formulae into beautiful music is immediately going to get me excited. There are two key criteria that you might want from an app that makes such claims. The first is ease-of-use, and the second a successful musical result. So how does Scaler do?
There’s no doubt that some people will hate having to type formula into the text boxes before any sound will come out. But frankly I can’t think of a way the process could have been made much nicer. The y value of the functions determine the pitch of the notes played, while the x value represents time. The quantised blocks underneath the graphs indicate when notes will be played; you can tap each block to activate or deactivate it, giving a tracker-style experience. New formulae can be easily added, removed or temporarily muted, and once you’ve made your perfect track you can save it for later use, export it as a midi file, or share it via a web link.
So that’s a +1 for ease of use. How about the results? The tracks are by their nature periodic, looping back to the beginning once the end has been reached. And periodic functions are likely to give you the best results. But actually managing to extract beautiful music through trial-and-error alone was quite a challenge. Scaler invites experimentation, but my feeling is that from a musical perspective, it probably works best if you have some sequence of notes in mind. You can then put your mind to how best to generate them using the mathematical equations.
Scaler is a fascinating curiosity that I feel I’ve only just scratched the surface of. Mark Washeim (poetaster) has created a nice port to Sailfish OS using the WebView approach that he’s used so successfullly with a number of his other apps. As a result of his efforts it works nicely in both landscape and portrait, and integrates nicely with the rest of the operating system. It makes for a very nice first release. Version 0.1 is available from the Jolla Store, OpenRepos and Chum
DjVu files are similar to PDF files, intended for viewing more than editing, but optimised for high-resolution scanned material. The format uses a mixture of clever techniques to keep the file size down to a minimum, and while the format isn’t as widely used as PDF, if you do find yourself needing to view a DjVu file, you’ll be pleased that there’s a way to do so on Sailfish OS.
Yura Beznos (yurabeznos) has provided just one such solution with the DjVu Viewer app. The app builds on top of the existing open source Documents code, but while it uses the same base implementation, it doesn’t integrate directly with the Documents app itself, but rather provides a similar-looking but standalone app specifically for viewing DjVu documents.
And it works very well. The DjVu files I tested rendered quickly and clearly; panning and zooming was pretty seamless, and although the rendering sometimes lagged, I found it to be no worse in terms of responsiveness than when rendering PDF documents using the default Documents app. As with the Documents app you can share the files you’re viewing, view details about the file such as filename and size, and jump to specific pages within it.
The app works very well, and while it would be nice to have the functionality built directly into the Documents app, DjVu Viewer provides a very effective way to view DjVu documents in lieu of this.
Version 0.0.49311 is available from the Jolla Store and OpenRepos.
Please feed us your news
We hope you enjoyed this fortnight’s community news. This is your news, and frankly we can’t always keep up with all the exciting stuff happening in the Sailfish community, so please help us out by replying to this post in the forum if you’d like to see something included.
Join us at our community meetings on IRC, Matrix and Telegram. The next meeting, also the first of 2023, will take place on the 12th January. In the meantime, a very Happy New Year!