The original intention with the new-format newsletter was to reduce the length in order to streamline the process of putting it together. While we seem to have succeeded with the latter, we’ve failed spectacularly with the former. The inclusion of Damien Caliste’s insightful Repository Roundup means we’ve packed in a fortnight of updates to Sailfish OS with the perfect balance of depth and efficiency. And with the large number of apps sailing in and out of harbour this fortnight, the Apps advancing section is packed with ideas to add to your launcher. We hope this new balance is working for you too and that you continue to enjoy the update.
Last fortnight we covered the release of Sailfish SDK 3.9 to Early Access users. Since then it’s gone out to all users via the SDK update channels. If you’ve run the Sailfish IDE in the last two weeks you should have received a notification about the update.
The release notes for the update highlight a multitude of improvements, the most obvious being the updated Sailfish OS 4.4.0 Vanha Rauma targets. The update also includes code assistance improvements (e.g. autocomplete and error highlighting), improvements to the docker backend and to the documentation (
sfdk --help-all opens up a mine of useful information). In addition to that, we see updates to the validator to allow MPRIS to pass, but also to deprecate the SilicaWebView (QtWebKit) component.
This last is an important point to note. If you have an app that makes use of a SilicaWebView to render web content, now is the time to be thinking about converting it to use the Gecko-based Sailfish WebView instead.
We’ve been making the switch on internal components over the last few weeks, and while there’s the occasional hitch caused by differences in the API, overall it’s been a very straightforward process. The Gecko WebView has a much more up-to-date rendering engine, which means it’s more capable, but also crucially less likely to suffer from security vulnerabilities. We’ll be continuing to maintain Sailfish WebView over time, whereas if your app requires the deprecated SilicaWebView, you’ll eventually find its entry to harbour will be blocked.
SilicaWebView isn’t the only API that’s being deprecated. As mentioned in the release notes for Sailfish OS 4.4.0 Vanha Rauma. The bluez package, which provided bluetooth support on older devices, will be removed with bluez5 as it’s replacement. We will also be removing gnutls, qtconnectivity and qtsysteminfo packages from the next release, along with the repomd-pattern-builder tool. Unlike SilicaWebView these were never previously allowed in harbour, but some non-harbour apps may still make use of them. So this is a gentle warning for app developers to update their apps, or for users to find alternative apps.
Matti Viljanen (direc85) made the important observation that some users were being put off upgrading their phones after reading the release note thread on the forums.
That’s just the way it is; if there’s a problem, people tell about it and want to get it fixed, but if everything goes smoothly, it’s left unsaid more often than not. That only strengthens the point - if all you read about an update is negative, you can get an unnecessarily negative impression about it.
His suggestion, which he’s added for discussion at the next community meeting, is to add a poll to the release notes to allow users to quickly share their update experience. Based on a similar approach used by Manjaro Linux, it’s hoped that this will provide a more accurate representation of the update experience for most users.
Here at Jolla we think it’s a great idea, so rather than adding delay and waiting for the community meeting, we’ve just gone ahead and added it. Thank you Matti for the nice and proactive suggestion, and we urge everyone else to please add your vote to the poll. The more people who vote, the more realistic the result, and the more benefit other users will gain from it.
We were excited to read about the second Sailfish OS France meetup that took place in Paris last week. Organised and chronicled (in French and English) by Nico Cartron, the event saw six dedicated Sailfish OS users come together to discuss a range of topics, including flashing (with practical demonstration), alternative app stores, and the possibility of a longer half-day event in the future.
Pierre suggested on the SFOS FR Telegram channel that we find a proper place that we can use for 1/2 day, allowing us to organise a “real” meetup: workshops, demos, … This would also be a good way to invite people from outside the Sailfish OS community, for instance by getting in touch with local GNU/Linux associations.
We really love this idea, and we hope it comes together.
And of course, the event was rounded out with some fine food, drinks and atmosphere. Thanks again go to Nico and all the attendees for what sounds like a very nice event.
Moving online, we also had a lively community meeting, also last week. Many topics were discussed, including how to better structure the Early Access release phase for Sailfish OS, discussion about Sailjail, which continues to be a developing area for the operating system, and the topic of making Bluetooth available to Android App Support apps.
We also had some nice discussion about the new Community Bug Coordination team, comprised of pherjung, nephros and thigg. They’ve very kindly offered to shepherd the bug reports on the forum through a process that’s intended to both improve the bug reports, and also provide more visibility for them within Jolla. We’re pretty excited to see this in action, since it has the potential to raise the most important and actionable bugs to the surface.
If you’ve submitted a bug and are approached by one of the team, we’d urge you to follow their advice as much as possible, and to help them as much as possible with the process. They’re generously offering their time and effort for a process that will benefit everyone in the community.
In case you weren’t able to attend, you can read about the discussion in the minutes and in all its gory detail in the logs. The next meeting is scheduled for Thursday 28th April and whether you’re a jaded regular or a wide-eyed newcomer*, we’d love to see you there. We already have discussion topics on the upgrade poll we discussed earlier and a suggestion for how to improve the keyboard with a persistent numerical row. And of course we’ll also have our now regular bug discussion.
If you have an opinion on these or other topics, then do join us on one of our supported channels: IRC, Telegram or Matrix.
* Neither of these descriptions is either fair or accurate, in reality!
Damien Caliste (dcaliste) once again provides us with a swift but information-packed tour of all the most notable changes that went into the open source Sailfish OS repositories this fortnight. Once again, it’s been a busy fortnight with improvements from Jolla, but also many contributions from the community as well, all of which we’re very grateful for.
sailjail-permissions, the configuration files for system-wide sandbox permissions, daniellinjama proposed to add
/var/runin allowed directories since
connmanis using it to redirect
resolv.conf, see Browser - not working alongside dnsmask. But after discussion, it appeared that it would be a security break since all subdirs of
/var/runwould then have been visible. Instead, spiiroin suggested to use a subdir of
/runinstead. Which lead daniellinjama to propose a patch for
connman, the connection manager, daniellinjama contributed an improvement dropping hardcoded
/var/runin favour of a build option
runstatedir=/run. LaakkonenJussi has submitted a pull request for the wifi regulatory domain to be based on the time zone of the device, either coming from the telephony stack or chosen by the user. LaakkonenJussi backported three patches fixing issues with ethernet not having the proper MAC address set.
mms-engine, the framework to send and receive MMS messages, mlehtima in his work to update the Glib2 package fixed a compilation issue introduced by the switch to Glib 2.72.
telepathy-qt, the Qt bindings for the Telepathy framework, mlehtima fixed also a compilation issue there when moving to Glib 2.72.
maliit-framework, the code handling the keyboard, pvuorela updated from the old 0.9 version to 2.2.1, moving also the repository to a cleaner submodule with patches.
mce, a framework for exposing the hardware status of the display, buttons, etc., spiiroin is proposing a change in display brightness handling for devices with specific high brightness modes coded in the brightness sysfs file.
ngfd, the non graphical feedback daemon handling sound and vibration feedback, thaodan is proposing a pull request improving the documentation for the “custom” sound effect, as supported or not by the hardware.
sailjail-permissions, the configuration files for system-wide sandbox permissions, rainemak added the sensor permission to the location one, so harbour applications using the GPS can get access also to the compass. It was Jolla bug #58000 ;), reported by direc85.
nemo-qml-plugin-systemsettings, QML bindings to access system parameters, neochapay has continued his work on making the bindings independent of packagekit for systems where the developer mode is not used.
qtdeclarative, Qt implementation of QML language, a pull request started by krnlyng in late February was accepted. It is based on backports allowing JIT for aarch64 architectures. JIT means “just in time” and is used to compile on the fly scripting languages like QML. It can bring significantly improved execution time, depending on the code.
nemo-qml-plugin-thumbnailer, the QML bindings to get image thumbnails, pvuorela improved resource consumption by starting the worker thread only when necessary and not at object creation.
bluez5, the code handling Bluetooth in Linux, piggz backported a fix he contributed upstream so the appearance of the Bluetooth device is only read once. This is mitigating a firmware issue on GTR2 watches.
gecko-dev, Mozilla’s Gecko web rendering engine, flypig fixed some rendering and input issues where radio and checkboxes were not allowed to expand as requested. See his comment where he provided a before and after screenshot and a bit of explanation. The pull request on backporting the patches for ELF format reduction on aarch64 architecture was accepted.
sailfish-browser, the browser application itself, rainemak ensured that the overlay is not shown if the view has already a URL set. He is also proposing to fake Google pages with a Firefox user-agent string instead of one advertising SailfishBrowser. This would allow the browser to use the mobile layout of Google. This is addressing a Jolla bug as old as 26304 (current numbering is around 58000). The fix may not have been applied earlier because the Gecko engine was still too old for Google layouting of its pages with a Firefox user-agent (personal guess) before the latest 4.4.0 release bringing the Gecko 78 engine.
mkcal, storage backend using SQLite for calendar entries, dcaliste removed some unused code and also ensured that only a unique default exists in the database. As suggested by pvuorela, he is also proposing a pull request to remove the internal usage of
Notebook::Ptrinside mKCal and proposes to also deprecate it completely from the public API.
kf5-calendarcore, the KDE framework library to handle calendar data, dcaliste update the package to latest version 5.93.0.
nemo-qml-plugin-calendar, the QML bindings for calendar events, dcaliste replaced the
Notebook::isDefault()call in the worker thread with an equivalent using the
ExtendedStorageAPI only, allowing the default exposure from Notebook API to be removed later.
glib2, the Glib library from GTK / Gnome, mlehtima is proposing to update from 2.66.2 (from October 2020) to 2.72.0 (from 3 weeks ago).
qtbase, the Qt library, pvuorela fixed a potential endless loop in the connection state from QNetworkAccessManager.
android-tools-hadk, the Android tools for the hardware development kit, the discussions on thaodan’s pull request cleaning and fixing issues in the
mer-android-chrootscript continued, improving the initial proposition. lotheac proposed also a patch to this same
mer-android-chrootscript to avoid getting spammed by the message
sudo: unable to resolve host ....
docs.sailfishos.org, website sources, various changes in the documentation were accepted:
https://links for github, instead of
- a new dedicated paragraph in the cheat sheet page to repository handling by rainemak,
- correct hardware adaptation build instructions to use the correct hardware family models by thaodan,
- update the SDK page for the 3.9 release by martyone.
- a contribution from pherjung to correct a mistake in code sample from the Python tutorial
And another proposed and still under review:
- an up-to-date way to export contacts as VCards by nephros.
lipstick, the home screen code (open source parts), spiiroin has proposed three patches to fix failing tests. Then mlehtima hot-fixed a misplaced RPM dependency for the test package introduced with the previous PR.
flex, a free implementation of the lexical analyser
lex, thaodan fixed a missing library at link stage for the tests.
Wow, what a lot of new and updated apps we saw this fortnight sailing into harbour. It’s fantastic to see and all of the updates are very welcome. We’ve done our best to summarise them below. Keep them coming and we’ll do our best to cover as many as we can in the next newsletter too.
You may have come across the venerable VNC protocol before for accessing a remote desktop (like RDP, Citrix, Remote Assistance, or inverted Chromecast). VNC Screen by marcellodgl is a client for accessing your desktop from your phone. The small screen can add some challenge, but it’s a super-useful application in a pinch. The latest version provides a screen preview on the cover, as well as adding Italian, French and Dutch translations. VNC Screen is available for arm32 and x86 devices from the Jolla Store.
CodeReader from prolific app-meister slava is an app for scanning both 1D (traditional) and 2D (the trendy QR-code) barcodes. The Sailfish camera now has the ability to scan QR-codes, but you get greater configurability from CodeReader as a standalone app. The latest version avoids blocking audio playback during a scan and updates the Hungarian translations. CodeReader is available from the Jolla Store, OpenRepos and Chum.
Honestly, it took me a little bit of time to figure this app out. The cryptic “DSA” in the title doesn’t stand for Disney Sorcerer’s Arena, or Digital Spectrum Analyser, but rather Das Schwarze Auge (The Dark Eye), a tabletop role playing game with a history that draws all the way back to the eighties, more popular in Germany than Dungeons and Dragons. On levelling-up a character players can distribute their experience points to different skills. This app from Sikarjan helps with the cost calculation and also allows you to store your characters for future use. Having figured it out, the app is easy to use but does the job nicely. The latest release fixes a slider bug and allows you to add a note to an upgrade. If you’re a DSA player, it’s recommended, and is available from the Jolla Store.
In the last newsletter we had attah’s SWeatherRadar. This time we have S’Play from the same author. Instead of Swedish weather, S’Play is all about Swedish Public Service Radio. The app supports searching radio episodes from the back catalogue and downloading for later listening, but unsurprisingly it’s best if you’re a Swedish-speaker. The latest version adds Sailjail support and — rather nicely &mcash; also now supports the MPRIS audio controls of the lock screen and headsets. The latest version is available from the Jolla Store.
To-do List from Mirian Margiani (ichthyosaurus) is a handy life-management tool. Some people seem to achieve a blissful life-balance of calm serenity; others thrive in a world of chaotic mayhem. For the rest of us who are stuck in the mayhem but strive for serenity, To-do list may just be the answer. You can create separate projects to categorise your tasks, and then populate them with everything you have to do. Items can be in one of several states: done, paused until some later time, delayed or ignored. The app provides some really useful tools for managing your workflow. The latest version adds Sailjail support, support for My Backup, moving tasks between projects, updated translations and more. Very nice. It’s available from the Jolla Store and OpenRepos.
Parking Chaos — also from (ichthyosaurus) — is a game that should have been featured in our games issue, but somehow got missed off. The six-by-six grid is populated with vehicles — mostly classic cars but also the occasional bus or ambulance — as well as a single red tractor. Vehicles can only move either horizontally or vertically depending on their orientation. Your job is to drag the cars around in order to allow the tractor to escape the parking chaos. There’s no random level generation, instead there are 215 carefully crafted levels of increasing difficulty. The most challenging requires a minimum of 51 moves before the tractor can escape. The implementation is flawless and the gameplay increasingly taxing. The latest version provides Sailjail support, new Polish, Russian and Hungarian translations, and some graphical updates. It’s available from the Jolla Store and OpenRepos.
While the weather is everywhere, it turns out that weather APIs are only somewhere. MeteoSwiss, another of ichthyosaurus’s creations, is an app that provides access to weather information from the Swiss Federal Office of Meteorology and Climatology. You can add multiple locations to the main screen, then drill down into each independently from forecast summary down to some beautifully presented pannable graphs and hourly forecasts. It’s a lovely app, and I’m frankly a little sad it doesn’t cover my own location. The latest version adds Sailjail compatibility with only the Internet permission required. It’s available from the Jolla Store and OpenRepos.
Captain’s Log gets off to a strong start with a clever sailing analogy that also works as a Star Trek reference. I’m sold. Captain’s Log is a diary application, but more of the historical musings type rather than the future planning type. You can quickly note down your mood, a title, some long-form text and apply hashtags to categories events. Once you’ve built up enough to write your memoirs, export everything in text, CSV, markdown or pandoc format. Another really nice app from ichthyosaurus, the latest version adds a Sailjail profile, but also Chinese translations and a bundle of bug fixes. It’s available from the Jolla Store and OpenRepos.
As you can see, ichthyosaurus has been busy updating apps. File Browser doesn’t need any introduction. We covered it last December, where we also revealed it to be both the most downloaded, and the most upvoted, app from the Jolla Store. It’s clearly doing something right. File Browser provides a way to view and manage the files on your device. The latest version has a lengthy changelog, but includes new Polish and Indonesian translations, My Backup support, improved settings, some new features and many bug fixes. All improvements to an already very impressive app. File Browser is available from the Jolla Store (with some limitations) and OpenRepos.
Originally created by Till Harbaum for the N900, Damien Caliste (dcaliste, regular contributor to the OS and this newsletter) ported it to Sailfish OS back in 2013. It provides a lightweight Open street Map viewer, with the ability to add and record GPS data in GPX format. The zooming is nicely progressive and I had no problem finding places via the search option. The latest version is updated to support the new Sailjail requirements; it’s available from the Jolla Store, OpenRepos and Chum.
Minidoro is a brand new app from ichthyosaurus, who’s clearly had a very busy couple of weeks. It provides a way to manage your time working on tasks, using the now famous Pomodoro Technique (named after the tomato kitchen timers). Since the core of the technique relies on switching tasks and taking appropriate breaks at the right time, having an app that can help you with these timings is a big help. Especially if you don’t have a tomato timer to hand. It’s great to see this new app, which is available from the Jolla Store and OpenRepos.
Sapphire is a nice app that will be of interest primarily to macOS users. Created by Dmitry Gerasimov (dseight) It allows you to preview on your phone designs created using the Sketch app on your desktop mac. Sketch can be used for prototyping UI designs, and Dmitry has even developed a Sailfish Design Kit for Sketch to allow prototyping of Silica user interfaces, including both light and dark ambience variants. The latest version of Sapphire has been updated to support Sailjail and is available from the Jolla Store.
Tipping isn’t really a thing in Finland, but for those living further south (as I have done) that period between receiving a bill and deciding how much to add as a tip can be tooth-crushingly tense. There are so many factors to consider: was the service good? How much are other people tipping? Do I have any money in my account?What are the local customs? And crucially: what’s 15% of 24.80? Simple Tip Calculator won’t help you with the first four questions, but it’ll totally solve the last. Enter the amount and the locally acceptable tipping level and it’ll respond with the requisite tip and total amount to pay. Sorted! Simple Tip Calculator from Adel Noureddine (addoula) does the job nicely and is available from the Jolla Store and OpenRepos now with a new icon and updated links.
Another app from Adel Noureddine (addoula), you’ll note that this is the second weather app that got an update this fortnight. This one pulling in data from Météo-France, and while the app is only available in French, the geographical area covered is far wider. France Météo takes a slightly different approach compared to MeteoSwiss. Instead of graphs it goes for a bold icon-oriented UI covering either 3-hour or daily periods projecting up to 15 days ahead. The app also makes good use of location data to automatically set your current location. The latest version has updated UI and support for Sailjail; you can grab yourself a copy from both the Jolla Store and OpenRepos.
We looked at Weight Tracker back in May of last year. There we noted that it was created by a team of students at Université de Pau et des Pays de l’Adour. Now maintained by Adel Noureddine (addoula), it’s been updated with new graphics, a vibrant new icon and Sailjail support. It still does an excellent job keeping a longitudinal record of the user’s weight and calculating BMI. It’s available from the Jolla Store and OpenRepos.
We also looked at Jaksari in a previous newsletter, also in May. Created by Timo Mäenpää (Aspor), it provides a periodic table of physical elements. As we noted back then, it rather nicely offers a variety of different colour codes to “help identify different characteristics of the various elements”. The latest version supports Sailjail and now also Chinese. It’s available from the Jolla Store and OpenRepos.
SeaPrint was one of the first apps we covered in the newsletter, way back in February 2021. Another app from attah, SeaPrint hit the number eight spot in the Jolla Store upvote chart. It allows you to print various filetypes, including images and PDFs, directly from your phone to a networked printer. It’s exceptionally convenient. The latest version updates the French and German translations, improves the printing output for JPEGs and fixes page margins. The latest version is available from the Jolla Store, with a companion plugin available from OpenRepos.
We hope you enjoy this community news, which we’ll continue to refine over the coming months. 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 inlcuded.
And do also join us at our community meetings on IRC, Matrix and Telegram. It’s a great place to discuss any of the content you see here, ask questions and share your ideas. The next meeting will be on the 28th April.