Sailfish OS update from Jolla
Hopefully everybody has had a good and relaxing summer. After summer break we already restarted IRC meetings few weeks back. Now it’s time to bring back Community Newsletter as well. I want to give my sincere thank you to dcaliste and flypig for their great efforts. There’s a nice Sailfish community meetup coming up in Romania. A lot of updates and changes have been done on various repositories during summer time. Similarly there has been a great number of new or updated apps appearing in the Jolla Store. Thank you everybody!
Have a pleasant time with the Community Newsletter!
Energy from the Community
Romania Meetup
If you’re looking to meet up with other Sailfish OS users in person this Autumn then you’ll be pleased to hear that vlagged and pherjung are running a combined Sailfish Meetup and Hackathon in Romania across the weekend of the 17-20 November.
According to the pair the event was initially cooked-up as a way to work together on their newly adopted harbour-hydrogen app (the excellent WebView-based Matrix client). But it’s since grown into an event for all interested Sailfish-users to join. As vlagged explains:
It was pherjung who came up with the idea, he has some time to travel in November and contacted me that maybe we would make a hackathon for advancing the harhbour-hydrogen development which we both adopted recently and then we ran out of time.
There are still some details to be finalised, but it’s most likely to take place in Bucharest. Again, vlagged:
Based on the existing replies, it is not set in stone but it will 90% be in Bucharest. I need to update on this.
The event will be split into the meetup, most likely on Saturday 18th November, and the longer hackathon across the whole weekend from 17th-20th. For the hackathon, I ask what activities will be involved.
Hacking on harbour-hydrogen, of course! This in general should be a scratch-one’s-itch activity, but I recently started dratfing a couple or more of nice to haves here on GitHub.
So there you have it. Keep an eye on the forum thread for precise details nearer the time. Please help publicise the event by sharing the details if you’re interested to get more practically involved in the organisation, please do let either vlagged or pherjung know.
Repository roundup
The summer period was a period of vacation for many people, but not for all. The large number of package upgrades done by mal , attah and Thaodan or the work to port to Qt6 many key components done by neochapay and jmlich , show that Sailfish OS is actually a (Linux) distribution. Which means that it is leveraging capabilities from many upstream projects, which also come with a maintenance cost. This work of updating all the packages can be seen as a work not spent on adding new features visible to the user, but it is essential to fix bugs, keep pace with upstream evolutions… Besides, an element raised my interest from its pull request title: “Add support for Android 13.”, done by mal in droidmedia
repository.
The network stack
-
connman
, the connection manager, LaakkonenJussi merged his work on adding VPN support with CLAT and proposed three follow-up pull requests cleaning minor issues after the large changes introduced by the CLAT + VPN work. LaakkonenJussi also fixed a compilation warning on 64bits architectures. Finally, LaakkonenJussi proposed to emit a change signal also when default service is changed, so higher layers can properly interpret it. -
libconnman-qt
, QML bindings for the connection manager, LaakkonenJussi is working on completely moving route parsing into ConnMan. neochapay proposed to modify the build system to allow concurrent installation with Qt6.
Telephony stack
-
libqofonoext
, Qt bindings for specific Sailfish OS extension to Ofono, jmlich updated the build system for Qt6 concurrent installation.
Document and files
-
poppler
, the PDF rendering library, attah updated it to version 23.07.0.
Mapping and location services
-
qtlocation
, Qt modules to handle positioning and location, poetaster updated the URLs for tile services, making the QML map widgets working again.
Communication services
-
nemo-qml-plugin-email
, QML bindings for emails, dcaliste proposed to expose to QML the encryption status of a message. He also proposed some code simplification in attachment handling.
Calendar stack
-
mkcal
, storage backend using SQLite for calendar entries, dcaliste has proposed to move the alarm handling code in a new class, so ExtendedStorage can become deprecated one day. -
nemo-qml-plugin-calendar
, the QML for calendar access, dcaliste proposed to change the importation internal logic to properly handle cases where events sharing the same UID can be in different notebooks. -
buteo-sync-plugin-caldav
, the synchronisation framework plugin for CalDAV content, dcaliste found an issue when importing an event containing ‘/’ characters in its UID.
Browser
-
gecko-dev
, Mozilla’s Gecko web rendering engine, attah proposition to enable the dialog element, since this element is now standard and available since Firefox 53, has now been merged. -
gmp-droid
, a Gecko Media Plugin to enable use of Android hardware codecs through droidmedia on libhybris-based devices, rainemak continued the work of d-grigorev ensuring that the video encoder is producing a constant bitrate stream, not to conflict with WebRTC bandwidth limiting algorithms. -
gecko-camera
, a plugin-based library for Gecko to simplify video capture, rainemak and d-grigorev propagates recent changes fromgmp-droid
on constant bitrate for video capture.
User interface
-
sailfish-utilities
, the setting page to restart failing services, ichthyosaurus proposed to readd a restart section for the keyboard. Before, he added a scrollbar to this setting page. -
nemo-qml-plugin-notifications
, QML bindings to the Freedesktop notification system, pvuorela is reworking how the kind of action associated to a notification is passed to Lipstick. The input case is now generically handled by an “input” type. -
lipstick
, the home screen code (open source parts), pvuorela proposed to add a text property to the action associated to a notification. robang74 proposed to convert the README file to Markdown for a better rendering in Github. Tomin1 fixed a regression noticed by abranson on theactionInvoked()
method: a new argument was added, without a default value, breaking backward compatibility for methods still using one argument. -
nemo-qml-plugin-social
, social QML adapters for Nemo, jmlich is working on updating the build system to provide concurrent Qt6 installation. -
nemo-qml-plugin-time
, QML bindings for time handling (system wide clocks…), jmlich fixed building with Qt6. -
nemo-qml-plugin-alarms
, the QML for alarm access, jmlich also fixed build with Qt6 for this component. -
qtmpris
, Qt and QML MPRIS interface and adaptor, jmlich proposed modifications allowing Qt6 builds. -
nemo-qml-plugin-connectivity
, QML bindings for network connectivity, neochapay modified it to build with Qt6. -
nemo-qml-plugin-thumbnailer
, the QML bindings to get image thumbnails, jmlich proposed to update its build system to support Qt6. -
nemo-qml-plugin-notifications
, QML bindings to the Freedesktop notification system, jmlich also proposed to update its code to support Qt6. -
nemo-qml-plugin-dbus
, the QML bindings for DBus, a pull request from jmlich to update to Qt6. -
nemo-qml-plugin-contacts
, QML bindings to access the contact database, neochapay adjusted the code and the build system to allow to work with Qt6. -
nemo-qml-plugin-models
, provides QML models for searching or filtering, jmlich proposed to adjust the code for compilation with Qt6. -
sailfish-secrets
, a framework to use encryption techniques, dcaliste proposed not to show again the confirmation to access a GnuPG secret if it was dismissed by the user just before.
Audio and video layer
-
droidmedia
, Android media wrapper library, mal has provided support for Android 13. b100dian noticed on an Asus board that buffers were not automatically destroyed and proposed a fix for it. -
libwebp
, a library for encoding and decoding image in WebP format, mal updated it to 1.3.1. -
mpg123
, a console MPEG audio player and decoder library, mal updated it to 1.31.3. -
libvpx
, a VP8/VP9 video codec library, mal updated it to 1.13.0. -
libsndfile
, a library for reading and writing sound files, mal updated it to 1.2.0. -
flac
, the loss-less audio codec, mal updated it to 1.4.3. -
libopenal
, a library providing capabilities for playing audio in a virtual 3D environment, mal updated it to 1.23.1. -
qtmultimedia
, Qt library to handle multimedia, Thaodan proposed to update the packaging to allow multiarch library path. -
ffmpeg
, a framework to encode and decode multimedia resources, mal updated it to 5.1.3 and backport a fix for x86 build with recentbinutils
package. -
libid3tag
, a library handling ID3TAG in multimedia files, mal updated it to 0.16.2. -
gstreamer
, a multimedia framework, mal updated it to 1.22.4. -
opus
, an audio codec for use in low-delay speech and audio communication, mal updated it to 1.4.
Low level libraries
-
sensorfw
, sensor framework, sunweaver fixed the ordering in the build system. mal fixed a unit issue in the sysfs adaptor. jmlich adapted the build system for Qt6. Herrie82 fixed an issue in LuneOS. -
libsdl
, a multimedia library, mal has proposed to upgrade it and it’s associated projects to 2.28.0. -
cups
, the standards-based printing system, mal has upgraded it to 2.4.6. -
usb-moded
, the USB tracking daemon, when working on Qt6 port, jmlich noticed some issue with the DBus interface and discussed the possible solutions with mal and Thaodan . -
nemo-keepalive
, CPU and display keepalive and scheduling library, jmlich adjusted the code to allow proper build with Qt6. -
nemo-qml-plugin-devicelock
, QML bindings for device lock access, jmlich fixed the installation path of the mkspecs. neochapay proposed to adjust the build system for usage with Qt6. -
libiodata
, a library for writing and reading structured data, jmlich proposed to also fix the installation path of the CMake feature files. -
libcap-ng
, a library for Linux that makes using POSIX capabilities easier, thaodan updated the packaging to be in phase with Fedora and upgraded the library to 0.8.3. -
openssl
, utilities and library for cryptography, mal updated it to 1.1.1v. -
pango
, the GLib-based text rendering library, attah updated it to 1.51.1. -
harfbuzz
, the text shaping library, attah updated it to 8.1.1. -
freetype
, the font handling, attah updated it to 2.13.1. -
libdrm
, a Direct Rendering Manager runtime library, mal updated it to 2.4.115. -
vulkan-loader
, a graphic library to load Vulkan runtime, mal updated it to 1.3.259 and also for the compilation headers. -
orc
, a library to generate optimized code operating on arrays of data, mal updated it to 0.4.34. -
bluez5
, the Linux Bluetooth stack, mal updated it to 5.68. -
icu
, a library for the International Components for Unicode, flypig is working on upgrading it to 70.1, as it may be required by his endeavour to bring the Gecko engine to version 91. -
libmce-qt
, Qt client for mce and a declarative plugin for it, neochapay adjusted the build system for Qt6 parallel installation. -
source-sans-pro-font
is a new repository containing some of the font definitions used in Sailfish. -
libmlocale
, localisation helpers from Meego touch, jmlich proposed modifications allowing to build it with Qt6. -
libprofile-qt
, Qt5 wrapper library for profiles, jmlich also proposed adjustments to build with Qt6. -
timed
, time and alarm handling daemon, neochapay adjusted the code to build with Qt6. -
qt-mobility-haptics-ffmemless
, a Qt plugin which provides haptic feedback via ffmemless ioctl, jmlich proposed to update it to build with Qt6.
SDK and developer tools
-
sample-app-cppqml
, an example of code linking C++ and QML, rainemak cleanup sources, applying coding rules on style. -
fingerterm
, the console application, jmlich proposed to update the build system to allow concurrent installation with Qt6. -
gmp
, the GNU multiprecision library, mal updated it to 6.3.0. -
mpfr
, a library for multiprecision calculations, mal updated it to 4.2.0. -
mpc
, a library to handle complex number arthmetic at arbitrary precision, mal updated it to 1.3.1. -
btrfs-progs
, utilities for BTRFS file-system, mal updated it to 6.3.3. -
attr
, a library to manage extended attributes of file-systems, mal updated it to 2.5.1. -
binutils
, command line tools, mal updated it to 2.41. -
cmake
, the (other) build system, mal updated it to 3.27.1. -
libnice
, a GLib ICE implementation, mal updated it to 0.1.21. -
meson
, a high productivity build system, mal updated it to 1.1.1. -
busybox
, a single binary which includes versions of a large number of system commands, mal added compilation to themodule
utility. -
rust-cbindgen
, utilities to create C/C++11 headers for Rust libraries, flypig is working on updating it to 0.19.0. -
gcc
, the GNU compiler collection, direc85 investigated a compiler crash reported by flypig and proposed to backport a patch from upstream.
App roundup
The pause in the Community Newsletter over the summer has allowed a surfeit of exciting software submissions to accumulate in the Jolla Store. So as we ease ourselves towards Autumn, I wanted to take a look back at what we missed over the last month or so. Space doesn’t permit the inclusion of all of the new and updated apps that were released during the gap, and there were an even greater number released via OpenRepos and Chum, but we can at least provide a flavour.
First off, Jyri-Petteri Paloposki (ZeiP) has been busy over the summer both updating his existing apps, and releasing new ones. If you’ve spent a lazy summer wondering how time flew by so fast and feel it’s now time to pick up speed and get things done, then you should take a look at his Tracks app. The app icons is adorned with an invitingly big green tick. The app allows you to record and track your tasks following the “GTD” approach. You will need an online Tracks service to use the app (either hosted yourself or from a hosted provider such as www.taskitin.fi. Installing the server sounds like a very productive form of procrastination to me! Jyri-Petteri has made a bunch of improvements to the app, including to translations, permissions and notifications. He’s also updated his Waypointer app which allows you to record locations along with text tags for future reference. The description says it may be useful for gathering OpenStreetMap data, but I could also imagine it being useful for other things too (e.g. where exactly did I park my car?). Jyri-Petteri’s Paketti app has also been updated with various API and Sailjail fixes. The app will be useful to anyone sending items with one of the courier services supported (Posti, Matkahuolto, Postnord, Hermes, La Poste and DHL). Once you’ve scanned the barcode of the package you can then use the app to easily track the progress of your parcels.
Finally there’s also a new release to the Jolla Store from Jyri-Petteri in the form of Openhabitus. This smarthome app connects to your household’s OpenHAB system and allows you to control its various capabilities. We covered the wide variety of Sailfish OS smarthome apps back in January and this looks like a nice addition to the ranks.
All of Jyri-Petteri’s apps are available from both the Jolla Store and OpenRepos.
Молитвослов (Prayer Book) might just be one of the most regularly-updated apps in the Jolla Store. The rate at which Vladimir (zuyev) pushes out updates is truly impressive. The app offers a calendar and prayer book that will be of interest to Orthodox Christians everywhere (the app has material in Russian, English and Bulgarian). The latest updates add new prayers and readings, fix bugs and improve the translations. The app is available from both the Jolla Store and OpenRepos.
Robert Scheinpflug (neversun) updated his Bodyweight Timer app to support 64-bit ARM builds. It’s always great to see updates like this, essentially reviving an app that might otherwise have been lost to many users. While there’s no shortage of fitness apps on other platforms, for some reason there doesn’t seem to be the same abundance on Sailfish OS. Bodyweight Timer is one of the few exceptions: set timers for various exercises, configuring the number of rounds, exercises and durations depending on the exercise. The app will ding away (single, double or triple bell) to indicate the various stages as you work through. It’s available from both the Jolla Store and OpenRepos.
There’s been some interesting discussion about smartphone-printers on the forum. These are small, portable and ideally battery-powered printers you can use from your phone. The go-to app for printing on Sailfish OS is SeaPrint from Anton Thomasson (attah). In my view an app that really highlights the benefits of Sailfish OS over other platforms, the app allows you to connect to any printer over the network using IPP (the Internet Printer Protocol). It works superbly and Anton has recently updated it to fix colour mode selection on black and white printers and make various internal improvements to the code. SeaPrint is available exclusively from the Jolla Store.
The now legendary mapping app OSM Scout has seen an update from its author Lukáš Karas (karry). This is another superb app that provides mapping, routing and search capabilities. The app provides supports offline data and is particularly good for cycling given its excellent support for elevation and waypoints. The latest changes include updated translations for Estonian and Polish as well as fixes to that all-important elevation feature. OSM Scout is available from both the Jolla Store and OpenRepos.
This covers just a small portion of the apps updated over the summer period. In the next newsletter I’ll serve up another portion. It’s been a busy summer for all you Sailfish OS app developers out there and it’s always wonderful to see the fruits of your labour.
Please feed us your news
Hope you enjoyed reading this community newsletter! As always, please do not hesitate to share your ideas, thoughts, or suggestion for future newsletter topics. This is your news!
Please do also join us at our community meetings on IRC, Matrix and Telegram. Next community meeting will be on the 14th September.