Sailfish OS update from Jolla
As previously communicated in the community newsletter of Nov 30, 2023, a whole new chapter was opened for Jolla, Sailfish and the community in end of 2023. Ever since we’ve been working hard on the transition and we’re thrilled on the new opportunities this opens for all of us!
As noted already back then, we want to work closely with the community for finding the right new strategy for the company and the community. We want to discuss with the community on what kind of products and services we should invest into and build in the future.
Also this year, we will be very present at FOSDEM in Brussels and you can find us at Linux on Mobile stand (Building AW level 1 group A).
Further, we’re happy to invite the community to the first new era Sailfish Community Event to be held in connection of FOSDEM on the eve of Saturday February 3, 2024! In the event we will be discussing our early tech & product ideas for the new Jolla and how we think to utilize AI and RAG models focusing on open ecosystems and privacy aware solutions. We very much welcome and value lively community discussion on these early ideas!
The event is preliminary limited for first 30 persons enrolled, so please enroll by replying your name/nick with a message that you’re joining. If we get heavily over, we’ll see if we can still find enough room for all ideas to flourish. Details and the venue will be confirmed closer the date accordingly.
Welcome and wish to see many of you in Brussels!
Repository roundup
The covered timespan is a bit longer than usual and even if it encompasses the end of the year holidays, the number of changes in the various Sailfish OS repositories is really large. Let’s highlight some of the changes that will likely be part of the next release:
- many library updates, fixing CVEs, like in
libtiff
orbluez5
, - connectivity fixes in IPv6 networks with the work on CLAT in
connman
, - a new “in-line” way to reply to notification (see changes in the repositories related to the user interface),
- immediate locking of the device when taping on the lock icon in the top menu,
- and for developpers, version upgrades of different base tools, libraries and compilers. If not yet merged in, definitely worked on are a GCC update to 10, a
glibc
update to 2.38, an LLVM update to 15, arust
update to 1.75 andglib2
update to 2.78.
About version updates, this repository roundup is not mentioning enough the work of flypig (and many other contributors) on updating the browser to ESR91. Finally, a special mention also to attah who’s contributed to a significant amount of package upgrades in the past weeks and months.
Telephony stack
-
libqofono
, Qt bindings for Ofono, pvuorela , while checking for a bug in Ofono / QOfono, commited some code changes bringing more context on DBus errors.
Communication services
-
bluez5
, the Linux Bluetooth stack, mal worked on moving to version 5.76. This also fixes some recent CVE issues and replace an earlier attempt at fixing those. -
kf5bluezqt
, the KDE framework handling Bluetooth, pvuorela updated it to 5.112.0. -
messagingframework
, the email Qt framework, pvuorela upstreamed one of the patch used by Sailfish OS for a long time and thus rework the packaging to remove this patch. This patch introduced the possibility to ignore SSL errors on connections. -
nghttp2
, a server and proxy HTTP 2 implementation, mal updated it to 1.58.0. -
c-ares
, a library that performs asynchronous DNS operations, mal updated it to 1.23.0. -
ssu-sysinfo
, tools and libraries for getting ssu information, abranson 's patch exposing Bluetooth tethering hardware feature has been merged in. -
nemo-qml-plugin-systemsettings
, a QML component used by the Settings app, abranson exposed Bluetooth tethering hardware feature. -
libphonenumber
, a library for manipulating international phone numbers, mal upgraded it to 8.13.27. -
wpa_supplicant
, for accessing WPA and WPA2 protected WiFi networks, pvuorela reenabled WEP. -
connman
, the connection manager, LaakkonenJussi pulled a patch from upstream fixing an issue with timezone in case of an empty subpath and another one fixing CVE-2023-28488. Several commits went in related to the work on the CLAT dual-index support. -
nemo-qml-plugin-email
, QML bindings for emails, dcaliste fixed a crash when removing attachments from a draft. He also provide a getter in the attachment model to expose the file size, so it can be displayed in the attachment list in the email composer. -
nfcd
, the daemon for near field communication, slava is working on card emulation.
Multimedia
-
libvpx
, a VP8/VP9 video codec library, mal updated it to 1.13.1. -
pulseaudio
, the sound daemon and much more, pvuorela removed theintltool
build dependency. -
gst-droid
, plugin for GStreamer allowing to use hardware accelerated codecs, b100dian is working on adding stters and getters to control the sharpening and noise reduction from Camera2 API. -
gupnp
, the GLib UPnP library, mal proposed an update to 1.6.6, and also to update theav
plugin to 0.14.1 and thedlna
one to 0.12.0, also moving the repositories to use submodule. -
rygel
, a collection of UPnP/DLNA services, mal worked on a upgrade to 0.42.5. -
libsndfile
, a library for reading and writing sound files, vigejolla updated it to 1.2.2, fixing CVE-2022-33065. -
libtiff
, a library to read TIFF image files, vigejolla updated it to 4.6.0, also fixing CVE-2023-6277.
User interface
-
lipstick
, the home screen code (open source parts), pvuorela introduced a new hint to be able to store the priviledge level of notifications. -
commhistory-daemon
, the daemon handling call and message history, pvuorela changed the reply method for SMS, switching to a inline text one. -
sailjail-permissions
, the configuration files for system-wide sandbox permissions, pvuorela dropped the legacyorg.nemomobile.qmlmessages
D-Bus service exposed by the messages application. -
nemo-qml-plugin-notifications
, QML bindings to the Freedesktop notification system, pvuorela added support for a hint called “resident”, so notification is not automatically discarded when an action is done, but need to be explicitely removed by the user or the sender. -
mce
, a framework exposing hardware status of display, buttons…, spiiroin provided a patch to use the kernel time to filter multipress of the power button, instead of an internal timer. This pull request also changes the display off command to use a bitmask instead of values, adding a mask asking to lock the device, see the commit message. As explain in that commit, this mask is now used by default, meaning that tapping the lock icon in the top menu will actually immediately lock the device and not just turn the screen off. It is possible to get back to the old behaviour withmcetool --set-display-off-override=disabled
. -
nemo-qml-plugin-devicelock
, QML bindings for device lock access, spiiroin ensured that the manual locking is properly honoured and don’t start a timer.
Low level libraries
-
dconf
, save user or system properties, pvuorela removed the build dependency onintltool
since the dconf editor has been split out of the repository for more than 8 years already. -
libsoup
, the web access library based on GObject, pvuorela updated it to 2.74.3. -
cups
, the standards-based printing system, mal has upgraded it to 2.4.7. -
tracker
, desktop-neutral metadata database and search tool, pvuorela removed the build dependency onintltool
and also fromtracker-miners
. -
glib-networking
, network extensions for GLib, pvuorela removed the build dependency onintltool
and usegettext
instead. attah is also proposing an update to 2.78.0. -
shared-mime-info
, the Freedesktop MIME info database, pvuorela updated it to 2.4. -
systemd
, a system and service manager, pvuorela changed the build dependency fromintltool
togettext
. mal included a backport detectingstatx
call fromstat.h
. -
abseil-cpp
, a C++ library designed to augment the C++ standard library, nephros updated it as a dependency ofprotobuf
being itself required by various applications in Chum. -
libgcrypt
, a general purpose cryptographic library, mal updated it to 1.10.3. -
libpng
, the library to read Portable Network Graphic formats, attah updated it to 1.6.40. -
aspell
, a spell checker, markolemmetty updated it to 0.60.8.1, fixing CVE-2019-25051 vulnerability. -
libxml2
, an XML parsing library, markolemmetty addressed CVE-2023-45322 in an update to 2.12.3. -
gssdp
, the GLib SSDP resource discovery library, mal proposed its update to 1.6.3. -
iptables
, tools for managing Linux kernel packet filtering capabilities, * attah updated it to 1.8.10.
Developper’s corner
-
gcc
, the GNU compiler collection, mal submitted a push request to move to version 10.3 (from 2021), while GCC is currently in version 8. -
ltrace
, a tool to log dynamic library calls, mal updated it to latest upstream version. -
extra-cmake-modules
, , pvuorela upgraded it to version 5.112. This was required to upgrade KDE Bluez stack. -
qml-rpm-macros
, RPM macros to handle QML, pvuorela updated the dependency tool to properly treat comment lines, like the one generated by recent version of ECMQmlModule. -
file
, the command-line utility to determine file types, mal suggested to update to version 5.45. -
git
, the famous version control, mal updated it to 2.43.0. -
vim
, the text editor, mal updated it to 9.0.2167. -
byacc
, a parser generator, mal updated it to 20230521. -
less
, the utility than can do more, mal updated it to 649. -
build-compare
, scripts to find out if the build result differs to a former build, keto has merged the upgrade of the package to upstream version 2023.06.17. -
zlib
, the compression library, mal merged in his pull request to update zlib to version 1.3. -
e2fsprogs
, utilities to manage ext2, ext3 and ext4 file systems, mal updated it to 1.47.0. -
libarchive
, a library to handle compressed formats, mal updated it to 3.7.2. -
elfutils
, tools to manage dynamic libraries, mal updated it to 0.190. -
udisks2
, the udisks daemon serves as an interface to system block devices, pvuorela removed the build dependency onintltool
since upstream moved togettext
in 2019. -
libgsf
, a library to read structured files, pvuorela removed unnecessary build dependencies (intltool
andperl-XML-parser
). -
python3-imaging
, a Python module to handle images, pvuorela changed the dependency forpython3-devel
instead ofpython2
. -
sudo
, command line tool to gain super user priviledges, mal updated it to 1.9.15.p4. -
tcpdump
, a network traffic monitoring tool, mal updated it to 4.99.4. -
screen
, a screen manager that supports multiple logins on one terminal, mal updated it to 4.9.1. -
gobject-introspection
, a tool to create bindings from C code, pvuorela removed the unnecessary build dependency onintltool
. -
python-lxml
, python bindings forlibxml2
andlibxslt
, nephros packaged the documentation in a different RPM, saving 1.1MB of installed disk space. -
libcap
, a library for Linux that uses POSIX capabilities, mal updated it to 2.69. -
sdk-setup
, part of the Sailfish SDK, vigejolla fixed the test ensuring tabs are allowed in spec files. -
lua
, the scripting language, pvuorela updated it to 5.4.6 and updatedlua-posix
to 36.2.1. -
pcre2
, the regular expression library, mal introduced it in Sailfish OS from the packaging in Fedora. -
glib2
, the Glib library from GTK / Gnome, mal worked on an upgrade to 2.78.3. -
openssh
, the OpenSSH implementation of SSH protocol, mal updated it to 9.6p1. -
glibc
, the C library, mal fixed a compiler issue with variable definitions being present several times, which confuse some specific linkers. -
rust
, the memory safe programming language, rubdos and direc85 are working on updating to Rust 1.75.0. -
tar
, the file aggregation tool, attah updated it to 1.35. -
meego-rpm-config
, specific rpm configuration files for Sailfish OS, Thaodan proposed to change three elements in the RPM macro definitions: remove the (modified) copy of%make_install
in favour of%qmake5_install
when applicable, removing ofla
files (internal files generated blibtool
) from packages through a newbrp-remove-la-files
script, and an explicit handling of static libraries. -
osc
, the command line interface to work with OBS (the Open Build Service), Thaodan updated it to latest version 1.5.1. -
rpm
, a software package format and tools, on post installation, the RPM database is now reinitialised, instead of copying the database files thanks to keto 's work. Taodan fixed a packaging issue when dependencies were hard-coded instead of letting the tool to determine them by itself. mal simplified the packaging of the Python distribution by using%py3_build
and%py3_install
macros. -
zypper
, a package manager, mal proposed to update it to 1.14.68 and its library companion to 17.31.27. -
grep
, the searching command line tool, mal updated it to 3.11. -
qemu-usermode
, a universal CPU emulator, mal changed thestatx
call to use the one fromglibc
instead of the syscall one. Like that sb2 will be able to intercept the call. -
fakeroot
, gives a fake root environment, mal updated it to 1.29, but the merge is still pending on a generalglibc
update. -
scratchbox2
, the cross-compilation tool used by the SDK, vigejolla corrected an improper detection ofccache
. mal proposed to add a wrapper forstatx
call.
App roundup
As we head through January and the depths of winter, where in my small part of the Northern Hemisphere we’re experiencing crisply cold weather with frosts and ice, it’s a good time to be warmed by words of wisdom and good conversation.
And the apps in this fortnight’s roundup reflect this. We have a couple of apps that claim to offer wisdom of both the secular and religious variety. And a couple of other apps in case you don’t find what you need there and have to phone a friend to get the words of wisdom you’re after (or maybe just a good chat).
First up is Wisdom from chrisadol. It’s not a new app to the Jolla Store, but for any recent converts to Sailfish OS, this might be the first time you’ve had the opportunity to make use of it. The latest update, apart from adding Sailjail support, also brings with it 64-bit support. The Jolla Store will only show you apps that have compatible packages for the device you’re using, so if you’re on a 64-bit device, it won’t have appeared until now.
There’s a simplicity to the app that’s appealing and a clean execution too. Bring up the app and it will throw up a quotation, displayed nicely with minimal user interface, as is the Sailfish way. The settings allow you to choose between Bible quotes, which tend to be uplifting, or computer quotes, which tend to be more cynical. I’m not sure what that is. Either way, there’s definitely some wisdom to be found here.
The quotes appear on the cover and there’s also the option to export them from the app. My initial reaction on discovering that quotes are exported as image files was bafflement, but the way they’re presented is so clean and attractive that it won me over. I’m not sure where you’d make use of these exported images, but they’re great to look at.
One downside of the app is that the quotes are short and rather context-free. If there’s a quote that piques your interest, you might want to dig further into it. If it’s a computer quote you’re out of luck, but for Biblical quotes we have a solution.
That solution comes in the form of the Bible app from zuyev, which recently received an update fixing some minor bugs. Although the app doesn’t itself come with any content from the Bible, it allows you to make use of downloaded ZefaniaXML files. The link in the app takes you to a SourceForge page where you can download a myriad different versions in a huge number of different languages. It’s an impressive collection and great to see this flexibility in the app.
The app itself allows you to hone in on the text you want in multiple ways. You can select the book and chapter number, where you can see all of the verses in one go. Searching for a particular phrase works well and if there are particular passages that you may want to return to you can also bookmark verses to appear in the bookmark list.
Cross-referencing quotes from Wisdom in Bible give good results, perhaps not surprisingly. But it was nice to see.
Version 0.14 of Wisdom is available exclusively from the Jolla Store. Version 1.1 of Bible can be found in the Jolla Store and OpenRepos.
If you can’t find the answer you’re looking for in one of these two apps maybe you’ll need to get some human insight instead. In that case we have a couple of messaging apps to recommend. Both have featured in previous newsletters, but both also receive regular updates and so we think deserve returning to periodically.
First up we have Fernschreiber the Telegram client from Sebastian Wolf (WerkWolf). The app provides a very effective native interface and probably offers the most complete functionality of any native messaging app on Sailfish OS; quite some achievement. In my experience the app is solid, both in terms of having very few bugs, but also offering a very stable interface with the backend Telegram servers. If you’re a Telegram user then this app comes highly recommended.
The Whisperfish app from Ruben De Smet (rubdos) and Matti Viljanen (direc85) offers access to the competing Signal messaging service. It’s a completely different app in terms of both the front-end and backend, but there are also important similarities between the two.
Both have a main screen showing conversations in a scrollable vertical list. Avatars and unread message counts make it easier to pick out the right conversation; selecting one will take you to the conversation page for that app. These are spiritual successors to the Messages app, with text entry at the bottom and the history running backwards in time as you go further up the page. It’s all as you might expect.
While Whisperfish — with its ability to password protect the app at start up and strong cryptographic credentials — puts privacy at its core, Fernschreiber provides a alight step up in terms of functionality with better support for reactions.
Although as an end-user it makes little practical difference, from a technical perspective it’s also worth mentioning that Whisperfish is the driving force behind development of the Rust Language on Sailfish OS, which makes it interesting in its own right.
The latest 0.17 release of Fernschreiber brings in a whole host of improvements, including updated translations from the amazing community of contributors that support the app, general improvements to the user interface especially in portrait mode, multiple bug fixes, and improvements to both notification and reaction handling. It’s available from both the Jolla Store and OpenRepos.
Whisperfish on the other hand sees an update to 0.6.0-beta-22. It’s hard to keep track of all the changes that go into Whisperfish as it seems to operate on an almost rolling release basis. My own experience is that it gets better with every release, both in terms of functionality and the robustness of its operation with the backend Signal servers. It’s available from OpenRepos or hot off the press from the CI pipeline on GitLab.
That’s it for this roundup. As always we’ve showcased only a tiny fraction of the releases this fortnight, if only there were time to try them all. I was personally keen to test out RetroArch from smoku but it didn’t quite make it in this time. I’ll try to get some thoughts about it into the next newsletter.
If you’re one of the army of developers creating all these amazing apps for Sailfish OS then thank you for your tireless development efforts. As users we’re all better-off as a result.
Please feed us your news
Thank you for reading! Like always, we’d like to hear your suggestions for future topics - feel free to write them in the comments below.
As reminder the next community IRC meeting is scheduled for 1st February