Sailfish OS update from Jolla
In this fortnight we once again have full set of everything. An update from the Sailathon 2024 event, Repository roundup from Damien (dcaliste) and a nice set of apps covered by David’s (flypig) App roundup.
As we speak, we are preparing Sailfish 5.0 release to CBeta and that will be the first update for the Jolla C2. Let’s us give a quick sneak peak to the Sailfish 5.0 content highlights that have been covered also by the Repository roundups. Amazing resilience on the Gecko ESR91 upgrade that we have been seeing and reading from both David’s blog and forum will reach a great milestone as that will land to the Sailfish 5.0. Big hand to everybody involved, helping and supporting in this effort. There are improvements for AppSupport hitting to 5.0 as well. Numerous fixes and packages updates that also Damien has been reporting over the spring and summer time. Last but not least, there’s a connman upgrade that brings support for WireGuard VPN and tons of other fixes. We believe that this 5.0 release builds a solid ground for 5.x updates to come.
Last week we visited our manufacturing partner Reeder at Turkey. Things are looking very good and we start shipments once we receive the devices to our logistic partner’s premises. We’ll continue sending remaining final payments links. If you haven’t received final payment link yet, please check your junkmail folder if it is not there please wait a moment. We’ll update separately on the delivery topic.
We’re trilled and excited to get C2 into your hands! First we need to get devices to our logistic partner. There are few practicalities involved like shipping from the manufacturing partner to our logistic partner and customs handling so we cannot really say exact date. That said, we’re targeting to start shipments during next week .
Please enjoy this fortnight!
Energy from the Community
The community-organized Sailathon 2024 event took place in Prague at the end of last month. It was a hackathon event, which gathered together people coding, improving documents, discussing various topics, hacking towards improving a common interest, in this case Sailfish OS as well as applications for it. It was mesmerizing to see how passionate the participants were and how effortlessly people all over the world were working together. rainemak and direc85 also visited the event, to not only hack and improve, but also meeting the community and gathering feedback and ideas for the future. Thank you karry for organizing the event! There’s a separate post coming up later of Sailathon, so stay tuned!
Repository roundup
Network and telephony stack
-
connman
, the connection manager, Laakkonenjussi reverted a previous commit preventing the device to stay on access point mode after enabling tethering (C2 and XperiaX were impacted). Upstream reverted this commit also. Laakkonenjussi also proposed a commit to avoid the vpn daemon to take precedence over the connman daemon when dealing with connections and disconnections. -
libcommhistory
, the library to access SMS/phone history, dcaliste gave a name over D-Bus to processes dealing with the communication history. This allows to filter or not access to such processes. pvuorela later fixed an issue in the name attribution. -
sailjail-permissions
, the configuration files for system-wide sandbox permissions, dcaliste allowed to listen to modifications of the communication history database from inside the jail. This should fix this reported issue, making the call log not updated when deleting an entry from the command line.
Calendar stack
-
buteo-sync-plugin-caldav
, the synchronisation framework plugin for CalDAV content, dcaliste simplified a bit the account-related code using anAccounts::AccountService
object as suggested by lduboeuf from UBPorts. It also allowed to provide support to the way server settings are stored in the account for UBPorts. pvuorela cleaned up the spec file.
Native browser
-
qtmozembed
, Qt bindings for the Gecko engine, pvuorela did various cleans up, including for instance the removal of old Qt4 remainings. -
sailfish-components-webview
, the high-level QML components exposing a web page, flypig updated the webview with ESR 91. rainemak proposed a simple way to map the screen resolution to the propertylayout.css.devPixelsPerPx
. -
gecko-dev
, Mozilla’s Gecko web rendering engine, rainemak merged in the large upgrade work of flypig to move the engine from ESR 78 to ESR 91. direc85 limited the single thread compilation to Rust. pvuorela proposed to clean some compilation warnings. rainemak also commited several minor fixes, including changes like:-
removing the
f
-suffix in0.1f
values since they were not recognised as float anymore because of thef
-suffix. - changing CSS default values, making sans-serif fonts the default, and making margin and padding to zero.
-
removing the
Main interface
-
dsme
, device state management entity, spiiroin added a way to block shutdown. From the commit message, it appears that if device is powered off while startup wizard is running, glitching 1st boot actions can cause persistent problems on subsequent bootups. Blocking shutdown at the software level is a way to reduce the possibility of this situation to appear. -
libdsme
, a library for DSME, the device state management entity, spiiroin added D-Bus constants for blocking / allowing shutdown.
Low level libraries
-
libaccounts-glib
, a library to handle online-service accounts, pvuorela updated it, both in its native GLib implementation to 1.67 and in its Qt bindings to 1.17. -
nemo-qml-plugin-contacts
, QML bindings to access the contact database, lduboeuf added a GSettings backend, besides the existing one using MLite. It would allow to use it in UBPorts where MLite is not used. pvuorela added some minor adjustments to the code. -
libshadowutils
, a library to used shadow tools, direc85 updated it to 4.16.0. -
mlite
, the configuration storage library, pvuorela fixed compilation warnings with newer GCC versions. -
xdg-dbus-proxy
, filtering proxy for D-Bus connections, pvuorela updated it to 0.1.6. -
pvuorela updated the various packages related to SE linux:
Developer’s corner
-
cmake
, the (other) build system, mal updated it to 3.30.3 and add support forcmake
rpm dependency generation. -
python
, the popular and widely used programming language, mal ensured that building Python 2 is done using a version of OpenSSL compatible with it. -
shared-mime-info
, the Freedesktop MIME info database, jusa added support for Abdroid package bundles, adding file extensions like*.apkm
and*.xapk
. -
direc85 created new repositories to ease Rust building:
-
cargo-c
, a helper to build and install c-like libraries from Rust, -
cargo-packaging
, macros and tools to assist with cargo and rust packaging, -
cargo-auditable
, a tool to embed auditing information in ELF sections of rust binaries.
-
-
gdk-pixbuf
, image handling library for GTK and friends, direc85 fixed a binary naming issue in the packaging preventing the build oflibrsvg
.
App roundup
In the previous newsletter I talked about patterns: threads of similarity between the different apps in the roundup. We have quite a diverse set of apps today, but what I’ve enjoyed especially about all four of them is how solid they are to use. When I try out apps in this roundup it’s common for me to hit bugs, glitches or user-interface inconsistencies. Sometimes these are insurmountable, preventing me from testing an app at all, other times I can work around them. But when I don’t have to do any of that, when an app just works and doesn’t exhibit any glitches, it always makes for an enjoyable experience. I take my hat off to all four developers for their great work in making these four apps so solidly nice to use.
First up we have Trites from Tomi Leppänen (tomin), or maybe from odamite and joppy, credited with developing the game for the N9 and graphics respectively. Or maybe, as the About screen rightly suggests, the credit should go to the original game creator, Alexey Pajitnov? All of them deserve praise in my book. The fact Tomi has done the hard work of converting the game for use on Sailfish OS means we get to play it in all its glory on a high-resolution display and with super-smooth animations.
If it’s not already clear from the credits, Trites is a Tetris clone. Tetrominoes (shapes made up of four grid-aligned connected squares) fall from the sky. Your task, as the player, is to negotiate them into the most favourable position by swiping left and right to nudge the piece horizontally. You can also tap to rotate the piece 90 degrees at a time. Then if things are moving too slowly, swipe downwards to get a speed boost as the piece falls to the floor.
The pieces build up as they collect at the bottom. The game is over when the pile reaches the top of the screen. But wait! Downfall isn’t inevitable, since creating an unbroken line of squares across a single row of the screen will cause that row to disappear while simultaneously increasing your score.
I’m sure the explanation of how Tetris works is wholly unnecessary (surely everyone’s played some version or other by now?) but this does highlight how faithful the game is to the original. The graphics are crisp, clear and without distraction. The controls are pretty slick. There’s even a high score table to record your successes for posterity. If I had to criticise, I’d say that occasionally the controls can feel a little twitchy; and it’s a shame there’s no sound or music to go along with the occasionally-tense gameplay.
This release is the first for Sailfish OS. If you’re one of the very few people who’s not played Tetris then this is an ideal chance. And if you have? Then you already know whether you’re going to love or hate this game!
Version 1.0.0 of Trites is now available exclusively (for Sailfish OS at least) from the Jolla Store.
Next up we have Expenditure from Mirian Margiani (ichthyosaurus) and Tobias Planitzer (tp.labs). We featured version 0.3 of the app in January of this year, which was actually the last version to be released. But it definitively deserves to be featured again now it’s reached version 1.0, which Mirian describes as a complete rewrite of the app. It’s also the first version to appear in the Jolla Store.
The app aims to help you budget and collect information about expenses. I can envisage it being especially useful on a work trip, say, where you have to collect information about costs, but where different people on the trip may be paying at different times. Log all of the details in the app, including who paid and who benefited. Then at the end of the trip the app will quickly and painlessly tell you the balance of payments between those involved.
One consequence of the rewrite is that the format of the exported CSV has changed, preventing pre-1.0 exported files from being imported into this new version. So be aware if you’re planning to upgrade. What you get for this break in compatibility is the ability to specify per-transaction fees and exchange rates. If you’re planning to travel across different countries, especially if you want to keep track of exact exchange rates as you go, I can see this being a real boon.
The changelog also claims improved stability and, during my testing of it, I found no reason to doubt this. It was rock-solid throughout. I also fully commend the app for its beautifully designed user interface. Collecting expenses may not be the most glamorous of activities, but this app makes it feel like time well spent. When I looked at this app in January I concluded:
“The app is both simple to use and elegantly presented, but this simplicity hides a valuable utility.”
And nothing about this has changed with version 1.0.0, making it really easy to recommend. Expenditure is available from the Jolla Store, OpenRepos and Chum.
Our next two apps are both from prolific developer and Sailfish superstar Mark Washeim (poetaster). First up is Tooterβ, which reached version 1.1.9 this month. It’s looking increasingly clear that the app will never leave beta, but that’s fine by me given it works perfectly well already. The nature of writing the app roundup is that I see a lot of apps, but don’t always get to use them over an extended period of time. Tooterβ is different in that it’s been a permanent feature of my app draw since I first created a Mastadon account in 2021, so I feel like I’ve had some good experience with this app.
It is, as you may have guessed, one of the few native Mastodon clients for Sailfish OS. In case you’re not familiar, Mastadon is a federated micro-blogging service. That means it’s like X, but with choices. The main choice is about which server to create your account on; once you’ve done that you’re over the hardest hurdle and you’ll find it shares many similarities with other micro-blogging services. Essentially you can post “Toots”, boost (repost) and favourite (publicly endorse or bookmark) others’ toots, follow users whose toots you enjoy and be followed by others.
Tooterβ lets you do all of these things from the comfort of your phone, giving you all the benefits of the beautiful Sailfish OS user interface, including nice stacking pages as you drill down into conversations and nifty context menus for reacting to individual toots.
With Jolla recently joining the fediverse with an account on Mastadon, there’s never been a better time to give it a go. The latest version of Tooterβ improves the load time of the app and fixes some missing image bugs. The changes are subtle but appreciated and it’s always excellent to see apps like this receiving continued development.
If you’re a Mastadon user then Tooterβ is a first-rate app for interacting with the fediverse. It’s available from the Jolla Store, OpenRepos and Chum.
Finally for today we have, as promised, the second of Mark’s apps. The Solver app is so very different from Tooterβ, but just as good in its own distinctive way. It allows you to perform four very specific mathematical tasks: integration, differentiation, equation solving and calculation of limits. The app is built using a SymPy backend, which makes it effective at performing the manipulations needed to give exact algebraic solutions. But you can also ask it to calculate numerical solutions in case the algebraic approach isn’t possible, or you just want a number out.
I wouldn’t say that the visualisation of the maths is exactly beautiful, but it is very effective, using a monospaced font and text-based output to replicate more complex mathematical notation. The results are surprisingly clear and easy to parse.
If you enjoy maths then Solver makes for a fascinating mathematical curio. But if you actually need to perform complex calculus or to solve simultaneous equations on a regular basis, then Solver will absolutely do this for you.
The most recent Solver release includes bugfixes which brings it to version 0.4.2. It’s available from the Jolla Store, OpenRepos and Chum.
As I said at the outset, these are some nice apps here today: really solid and also very nicely designed. They all fill a particular niche and while it may be that one or more of these apps isn’t for you, if you have a use for any of them, then these apps will serve you very well.
By the way, there are great amount of apps for 32-bit (armv7hl) architecture in Jolla Store which are not available for 64-bit (aarch64) architecture. If you’re pondering how to contribute, get app developers activated and building these 32-bit apps to 64-bit architecture would be one candidate. If these apps are not maintained, then of course one could ask permission to take apps over and build for 64-bit architecture and submit to Harbour. Maybe we should organize forum wiki page regarding these apps?
Please feed us your news
As always, please do not hesitate to share your ideas, thoughts, or suggestion for future newsletter topics.
Hope you enjoyed reading this one!
Welcome to join us at our community meetings on IRC, Matrix and Telegram. Next community meeting will be on the 17th October. Let’s keep on working together!