Sailfish OS update from Jolla
Last week’s community meeting right before Easter was a calm one. I guess many were already settling down to Easter. Hopefully everybody had relaxing vacation. During the meeting David (@flypig) advertised Ofono blog by Adam Pigg (@piggz), which is a great read. I’d also recommend to follow David’s Gecko-dev Diary blog (also forum thread). It is very inspiring to read about the great efforts that these guys are blogging. I’m amazed about details that they are able to write down and I guess that I’m not the only one.
Since last fortnight we had translation deadline. Together with you, the Sailfish Community, we pulled out a great result and have 20 languages completely or almost completely translated. Before Easter we also created the first release candidate of the 4.6.0 Sauna release and published to beta testing group. Members in beta testing group have activated nicely providing valuable feedback. Hopefully after few weeks we can roll out the release to Early Access subscribers. Rolling out 4.6.0 Sauna to everybody during April would be a very good result.
Let’s keep on working together!
Energy from the Community
Repository roundup
Communication bits
-
libqofonoext
, Qt bindings for specific Sailfish OS extension to Ofono, PR from pvuorela to convert the NCI property into a string was accepted. The current declaration as an enum with 64 bits values is not ideal since not working in QML. NCI is the id of the cell used in a 5G network. -
nemo-qml-plugin-social
, social QML adapters for Nemo, Karry 's work on giving read-only access to the shared calendars with Google, has been merged in. pvuorela modified the plugin to ensure that only events are synced, excluding things like out of office notices… -
nemo-qml-plugin-calendar
, the QML for calendar access, dcaliste fixed an issue when creating exceptions of recurring events that prevented the additional properties to be passed from the parent to the exception. -
connman
, the connection manager, LaakkonenJussi worked on OpenVPN plugin, so it can work with version 2.6.9. The documentation has been updated for new OpenVPN options. pvuorela proposed to stopconnman
repeatedly trying to set online a modem that is powered off. This happens for instance when an Android device shares it connection via Bluetooth with a Sailfish OS device and the two devices are disconnected. LaakkonenJussi found and fixed a crash with OpenFortiVPN when connecting to a server with invalid credentials. -
libconnman-qt
, QML bindings for the connection manager, pvuorela limited the number of NetworkManager instances in a process to ideally just one, by adding a shared instance API. This was then applied in various packages, likenemo-qml-plugin-systemsettings
,connectionagent
,nemo-qml-plugin-connectivity
. -
messagingframework
, the email Qt framework, pvuorela removed many unused or deprecated parts from the build system and in the code.
User interface
-
nemo-qml-plugin-devicelock
, QML bindings for device lock access, spiiroin added placeholders for authentication methods, for later usage. -
kf5-calendarcore
, the KDE framework library to handle calendar data, pvuorela fixed an upstream bug breaking visibility change for notebooks. KDE is not using the notebook capabilities of KCalendarCore and its support has been removed in KDE Framework 6, that’s how it has been left unnoticed there.
Multimedia
-
tracker-miners
, metadata extractors for tracker, upgrade to 3.3.3 from mlehtima has been accepted. -
gst-droid
, plugin for GStreamer allowing to use hardware accelerated codecs, simonschmeisser changed to use a real value instead of an integer to be sent to the droid camera code.
Low level libraries
-
tzdata
, the time zone data (and some other geographical data), mal updated it to 2024a. -
tzdata-timed
, the time zone data (and some other geographical data), mal updated the MCC data base, allowing to link time zones with the geographical zone reported by the modem. -
libqtsparql
, the Qt support for SPARQL databases, pvuorela exported some missing functions for plugins by making them visible from the library file. -
openssl
, utilities and library for cryptography, Thaodan worked on an update to 3.2.1. A legacyopenssl1.1
repository has been created to keep the older version available, as it is still used by some packages, likeqtbase
for instance. -
ngfd
, the non graphical feedback daemon handling sound and vibration feedback, pvuorela fixed some unit tests and also some memory leaks. -
util-linux
, a collection of basic system utilities, mal proposed to disable CD-ROM probing since it creates a kernel crash on some Unisoc devices due to ioctl number collision with ufs_sprd driver ioctls. -
xz
, LZMA compression utilities, mal proposed to update it to 5.4.6. This is still before the backdoor that exists in version 5.6.0 and 5.6.1. As explained by mal , Sailfish OS is not impacted since it’s building from git sources and not from a distribution tarball. -
mce
, mode control entity, mal proposed to expose thebattery_charging_enabled
entry from the kernel, to allow to pull power for the device from an USB link without charging the battery. -
sensorfw
, sensor framework, mal worked to support Android sensor device API 1.0.
Developer’s corner
-
python3
, the popular and widely used programming language, mal updated it to 3.8.18. -
libsdl-gfx
, the simple direct media layer - graphics primitives, Thaodan removed upstream enabling MMX on Arm. mal cleaned up thespec
file used for packaging. -
android-tools
, the Android tools, Thaodan proposed to change the packaging of the Android tools, for it to be based on the NDK tools, as it is already done by some other distributions. -
android-tools-hadk
, the Android tools for the hardware development kit, now thatandroid-tools
is based on NDK tools, Thaodan removed them from the HADK packaging. -
pkgconf
, package compiler and linker metadata toolkit, Thaodan proposed an initial packaging of this tool. -
rpm
, a software package format and tools, Thaodan factorized thespec
file for the packaging. -
meego-rpm-config
, specific rpm configuration files for Sailfish OS, Thaodan changed three elements in the RPM macro definitions: remove the (modified) copy of%make_install
in favour of%qmake5_install
when applicable (the pristine%make_install
from therpm
package is still available but not overloaded anymore), removing ofla
files (internal files generated blibtool
) from packages through a newbrp-remove-la-files
script, and an explicit handling of static libraries. -
transfer-engine
, the backend to allow sharing data between apps, ilpianista worked on making possible that a file downloaded in a browser private mode, may not appear in the transfer list. -
nemo-qml-plugin-systemsettings
, QML bindings to access system parameters, up to this change from pvuorela ,ssu
was used in various places to get an id representing the device. This avoids creating an instance of SSU to simply get a device id. Now this package is providing it for C++ code. The dependency onssu
has then been changed in various packages to usenemo-qml-plugin-systemsettings
instead:- in
buteo-mtp
, - in
obex-capability
, - in
crash-reporter
.
- in
-
sailfish-qtcreator
, the Qt IDE, martyone fixed build-shell.args being ignored by some commands likemake
ordeploy
for instance. -
scratchbox2
, the cross-compilation tool used by the SDK, martyone fixedldconfig
being used at build time and also tools working withLD_PRELOAD
. He flaggedsh
andbash
to be accelerated also when they have been moved under/usr
. Thaodan proposed a large set of changes removing multiarch for x86_64 and also using more Autotools capabilities for out of tree builds. -
python3_urllib3
, Python module for URL manipulations, nephros updated it to 1.26.18, as required as dependencies by some packages likeyt-dlp
for instance. -
python3-requests
, Python module to execute HTTP requests, nephros proposed to update it to 2.31.0.
App roundup
For us in the Northern Hemisphere it’s now Spring, which means new life springing forth all around. The trees are full with blossom, the birds are busy nesting and the fields are packed with unicorns. Okay, maybe that’s going a bit far, but it definitely feels like we’re at the more optimistic end of the year.
And so it’s also nice to see not just some old favourites, but also some new apps for the app roundup section of the newsletter. And today we have both: two new and two renewed.
First up is SailBabel from Heiko Bauke (bauke). We have featured the app before but this was way back in June 2022 so it’s well overdue a revisit.
SailBabel provides a nice offline translation dictionary using resources that you can download from www.dict.cc. Although the peculiar email-based download approach remains, this seems to be a requirement of the site rather than the app and having gone to the trouble of getting hold of the dictionaries you’re interested in (there are many different pairs of languages to choose from) you can leave it installed on your phone indefinitely.
So we already know that the app works well, but what’s changed? The simple search interface remains but the main addition is a new settings page. There’s not much on the page right now apart from an option to automatically load the dictionary when the app starts. This is a sensible addition and preferable to having to select the relevant file each time, especially if you’re planning to use just a single dictionary.
I’d love to see fuzzy search added as well. Right now it’s a great tool as long as you’re familiar with the language you’re translating from. If you’re a little rusty you may run in to trouble reverse engineering word stems to find the correct entry in the dictionary.
The latest version of SailBabel is 0.7.0 and available from the Jolla Store. If you’re looking for an offline dictionary your main options are this and Sebastian Wolf’s (WerkWolf) Wunderfitz. Both are well worth a look.
We’re sticking with words for our next app as well with WordQuiz Studio from Fredrik Axling (faxling). While not a new app this is the first time we’ve featured it in the newsletter, which if I’m honest I’m a little surprised about given it’s such a nice app.
WordQuiz picks up three different word-based games which are both absorbing, but also practical when you’re learning a new language. Perhaps the one most language-learners will find useful is the flash-card game. Here a card is presented with a word or phrase to translate and it’s up to you as the player to decide whether you know the answer or not. Turn the card over if you get stuck and swipe it left or right depending on whether you fail or succeed. It’s a widely-used technique for learning new vocabulary and WordQuiz implements it well.
There’s also hang-man, which involves guessing the letters that make up a word. The word is gradually revealed as you correctly guess letters, but guess wrong and another beam will be added to the hangman’s scaffold. Get twelve letters wrong and with a fully-built scaffold that’s the end of the game. It’s… surprisingly gruesome… if you think about it. But also both a simple but classic game with appropriate stick-based graphics.
Finally there’s a crossword game. Here the app will generate a random crossword based on what’s available in its word list. Hints come in the form of the word in one language, while you’re required to fill out the word, letter-by-letter, in the grid in the translated language. Where words cross over they’ll share a word, offering additional and often critical clues as to the answer needed.
The app does a good job of coming up with random crosswords. The input mechanism takes a little getting used to, but otherwise the whole thing feels pretty intuitive.
But there is one other essential part of the app we need to mention too and that’s the mechanism for creating the word lists in the first place. It’s a shame the app doesn’t come with any built-in. This would allow you to dive in and test things out, even if it won’t be the list that everyone is looking for. But the fact is the mechanism for creating new word lists is very effective. If you select your languages the app will automatically translate your chosen word for you, automatically adding in an audio file for spoken language. You can also add in images associated with words, although this part you’ll have to set manually.
Although it feels like the online instructions are necessary to get to grips with things initially, it still only took just a few minutes before I was merrily creating word lists and getting in to the games proper.
So kudos to Fredrik for this nice app. You can get hold of the latest version, now at 4.2.0, from the Jolla Store.
Next up is our second previously-featured app, Bible from zuyev. We last took a look at Bible back in January and it describes itself as “a simple parser for Bibles stored in ZefaniaXML”. The app doesn’t come with any content itself, but includes a link to a large collection of available Zefania XML files on SourceForge. There is really a huge variety to choose from distributed across many different languages.
I’m no religious scholar, but I found the app easy to navigate. The Bible incorporates a large collection of books and you can imagine navigating this might be a challenge, but the app provides many options, including a clear and simple contents-based approach, free-text search and bookmarks. On the settings page you’ll also find a myriad of options to make using the app simpler and better suited to your visual preferences, from changing the font to selecting a citation style.
The latest version fixes bugs, improves the layout of the settings page and brings the app up to version 1.8. A really nicely implemented app that achieves what it sets out to very effectively. It’s available from both the Jolla Store and OpenRepos.
For our last app we have something a little different. Screen Monitor Usage is an app that was originally developed by Eugenio Paolantonio (eugenio), but which has been rebuilt for newer devices and recently re-released by NSC IT Solutions (dev_nis). After installing the app you’ll find no new icon in your app draw and nothing to indicate anything has changed. But open up the Settings app and you’ll find a brand new entry hidden quietly in the “Info” section called “Screen usage”.
Be warned that after installing the app there are a couple of manual steps needed to enable and start the ScreenMonitor background daemon. Without this you’ll get incorrect screen usage data, so be careful to read the instructions on OpenRepos after installing the app.
The description of the app simply asks “How much do you use your Jolla’s display?”. There are multiple reasons you might want to know this: are you using your phone too much? Are you running out of juice because your screen-off delay time is too short? Is someone making secret use of your phone to play hangman in the dead of night?
If your main motivation is to figure out how much time you’re spending on your phone then this will give you a good idea, although it won’t do anything more complex, such as breaking down the usage by app, or anything like that.
In my testing the app worked well and it’s a nice tool to have available. It’s great that dev_nis has taken up the mantel to develop it further. My only request would be a new icon so that it fits more naturally in with the rest of the icons in the setting on a higher resolution display.
The latest release of the Screen Monitor Usage app brings it to 1.0.6 and is available from OpenRepos.
That’s it for this fortnight. With all this spring in the air let’s hope the ever-industrious Sailfish developer community finds time to release more apps and more updates in the coming weeks. I’ll be looking forward to trying them as they do.
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! Thank you all!
Please do also join us at our community meetings on IRC, Matrix and Telegram. Next community meeting will be on the 11th April.