Sailfish Community News, 25th February, SDK, OpenSSL

Subscribe to future posts here :bell:

Update from Jolla

This was another important fortnight for Jolla with the full transition of Sailfish OS 4.0.1 Koli from Early Access to general release. Hopefully you’ve already read the blog post and visited the gorgeous new Sailfish OS website.

But that’s not the only recent big release news from Jolla. Users of the Sailfish SDK can now download the 3.4 SDK Early Access release. Don’t be confused by the version numbering, as the OS and SDK release numbers aren’t connected. But the releases themselves are connected in one sense, in that the new SDK includes an updated emulator with the Sailfish OS 4.0.1 Koli image, along with 4.0.1 build targets that have now moved out of Early Access.

The Sailfish SDK 3.4 release will be going out to everyone soon (not just Early Access users), and has some nice new features, including streamlined installation on newer Linux distributions, an updated IDE, big improvements to the sfdk command-line build tool and an updated emulator. As already the emulator has been upgraded to support the new Sailfish OS 4.0.1 Koli and the Koli build targets are now available as non-early-access targets. All-in-all, we hope all the Sailfish developers out there will appreciate the improved functionality and updated targets, and we’re always excited to hear about what you do with them, and especially to see the results in the Jolla Store and in OpenRepos.

One of the things we’re keen to do with this newsletter is to give an insight into the way Sailfish OS is created. Many of the parts that make up Sailfish OS are Open Source, and that means much of our development also happens “in the open”. But the process can be a bit confusing or hidden, especially for non-developers. In future we plan to talk about the community contribution process, to give an insight into the steps developers from the community are already performing now to contribute to the OS.

This newsletter we have an insight from Björn Bidar, developer at Jolla and as it happens one of our most recent recruits. Björn hit the ground running by upgrading the default OpenSSL install in the OS, a substantial task that touched many components. The default OpenSSL in 3.4 Pallas-Yllästunturi was 1.0.2o, while 4.0.1 Koli uses OpenSSL 1.1.1h. It’s a significant upgrade not least because the OpenSSL API changed between the two releases, necessitating a bunch of changes to the code that makes use of it. Here’s Björn:

The main reason for the OpenSSL upgrade was that we wanted to support new cryptographic technologies. OpenSSL 1.1 also has an improved API, and other software and libraries will also increasingly be moving away from the old 1.0 API. Upgrading OpenSSL therefore also unlocks upgrades for other packages as well. Apart from upgrading OpenSSL itself, the work also involved updating other packages to use it, and that work fell into one of two categories. Where there were newer versions of libraries available that used the updated OpenSSL API, the work involved upgrades to those packages. However, in cases were that wasn’t possible, it was necessary to change and fix packages to use the new API by hand. Apart from making the changes, there was a considerable amount of testing involved as well, to ensure changes didn’t cause functionality breakage elsewhere. So, the process was very much one of ‘make changes to the package → test what breaks → fix breakages → repeat’.

Having got to the public release, things are now in a solid state, and we were able to iron out most of the potential problems. However, this isn’t quite the end of the process. I’m now going through the code to establish which older cryptographic technologies we should disable, primarily for security reasons. There are also functions which are available in our current OpenSSL but which have been deprecated and may be removed in the future. I’m therefore also looking for packages that use these deprecated functions with the aim of removing them in preparation for this.

One of the packages that needed updating was nemo-qml-plugin-systemsettings, an Open Source component developed by Jolla and which adds UI elements to the Settings App. As you can see in this merge request one of the functionalities it provides is displaying certificate info in the Settings App under System > Certificates, and this code needed updating to work with the new OpenSSL API.

With the shift to OpenSSL 1.1.1 across the OS it’s worth mentioning that although 1.0 remains available for use by existing apps, it’s considered deprecated and now would be a great time for app maintainers to upgrade their apps to use the 1.1 libraries instead.

OpenSSL was just one of the many updates we undertook for 4.0.1 Koli, and which we continue to work on. You’ll see evidence of updates for future Sailfish OS releases in the public repositories, and we hope to talk about some of those, as well, in the future.

Energy from the Community

The sailfish developer community has been hard at work again. Here are just a few of the highlights. Don’t forget to tell us about your news in the comments below if you want to be included in a future update.

Sailfish on x86

“What’s new” I hear you ask? “Sailfish has been running on x86 devices for years”. Well, while that’s true, there’s never been a standard UEFI version that’s ready to be installed on a standard laptop. But that’s exactly what Heng Ye has created, with help from various co-conspirators including TheKit, Elros34 and Piggz, and built using Ubuntu 20.04 system components. It’s been tested and works nicely on the Asus Transformer Mini T103, Librebooted Thinkpad X200T & Dell XPS 15 2-in-1 9575. It works surprisingly well as a laptop OS, including Wifi, Bluetooth and touchscreen support. Checkout Leszek Lesner’s first-look video, as well as the online docs and the forum thread on the topic.

MLS Manager

Back in March of last year Mozilla changed the terms of access to the Mozilla Location Service (MLS), with the unfortunate consequence that Jolla was no longer able to use it as part of the default Sailfish OS install. While GPS is still perfectly usable without MLS, it unfortunately does mean it takes longer to get a fix, especially in cases where GPS hasn’t been used for a while, or is reactivated at a significant distance from the last place it was used. Happily the ever-ingenious Sailfish community has come up with a workaround in the form of MLS Manager by Samuel Kron, which allows location data to be downloaded to your phone for offline use. Being offline this means no sensitive data is sent over the Internet, but if you use it don’t forget to alter your location settings to enable offline lookups in Settings > Location > Select custom settings > Enable GPS and Offline positioning, disable Online positioning.

Quake 2

Unquestionably a classic from the retro-gaming pantheon, Quake 2 may be enjoying its 15th birthday this year, but it’s still a surprisingly visceral first-person shooter. What better way to honour its longevity than by playing sashikknox’s port of Thenesis Quake 2 for Sailfish OS. It’s use of GLES2 graphics makes it a super-smooth experience. It comes with touch-screen controls built for use on a phone, but if you have the right hardware, you can always use that instead. Available on OpenRepos, you’ll need to get hold of some pak files as well, such as those that come with the commercial release.

SeaPrint

Architecture hipster attah recently released Seaprint 0.7.4 to the Jolla Store. SeaPrint is a wonderful addition to Sailfish and allows you to print PDFs and various image formats directly to a printer that supports the Internet Printing Protocol. Still in beta, but it works impressively well. The latest version includes many small updates and bugfixes, an improved cover and greater printer support. Excitingly, version 0.7.3 also became the first 64-bit app to be approved for the Jolla Store. For more information see the SeaPrint Share Plugin page on OpenRepos.

Fernschreiber

In the last update we mentioned Whisperfish for Signal messaging. A great alternative to try out if you’re into Telegram messaging instead is Fernschreiber by Sebastian Wolf. Sebastian recently released version 0.8 which has new sticker options, updated UI for improved usability, session management, forwarding messages and a whole bunch of other improvements. Get it from the Jolla store or OpenRepos.

News from farther afield

Thanks to the hard work of all the linguists who contribute to localisation, Sailfish OS has impressive language support, with 35 languages covered and more in the works. It’s perhaps not surprising then to see the release of Sailfish OS 4.0.1 Koli covered in so many places around the world. Starting close to home we saw Finnish outlets such as Mobiili.fi sharing the news. Further afield we saw it covered in Nokiamob, an English-language publication based in Croatia, Deep in it from the Czech Republic, Tweakers in the Netherlands, Heise Online in Germany, Xataka móvil in Spain and Živé.sk in Slovakia. It even made it across the pond to Phoronix in the US. Just a selection there; anyone who knows me will also know my language skills aren’t up to much, so I’m afraid I can’t claim to have read these in their original languages. If you spot articles from your own neck of the woods, do share them in the comments.

Community Shout-Out

Translating the OS can be a very intense task, but the beautiful consistency is ensured by the language coordinators.

In the previous news post we tallied up the top-scorers who had their translations accepted since December 2020. Most of the winners have been the coordinators themselves, but there are languages where a coordinator has a great team of translators, and is mainly involved in ensuring consistency and reviewing suggestions. This time round such case was for the Swedish team, lead by ljo! Många tack fellows!

Some languages have many suggestions, but no active coordinator to accept them. Huge kudos to nemishkor for stepping up as the Ukranian coordinator since the release of Sailfish 4!

Please feed us your news

This is a community update, and frankly we can’t always keep up with all the exciting stuff happening in the Sailfish community. Plus, the less of this we have to actually write ourselves the better. So please help us out by posting your Sailfish news updates to the forum as a reply to this post. We’ll collate as much of it as possible into one easily digestable post for the next update.

And don’t forget to join us at the community meeting every other Thursday on IRC. It’s a great place to discuss any of the content you see here, or to share your ideas for future updates. The next meeting will be on the 25th February, full details here.

22 Likes

Yep and the new openssl then kills XMPP - there might be a problem in your global product testing because there was a dependency not checked.

1 Like

Another thing: For me as a developer, it’s a bad thing to be presented with a fait accompli during early release.
Python changes do 3.8 - bam my application does not work anymore - and many others.
Just a new library release? Bam several apps (in openrepos!) uninstall because of missing libraries.
I would appreciate some news like: “We will have changes in openssl, python, libraries blabla which might break your solutions in the next release.” Then a developer will have time to react before the end user sees problems.
For me the early release is a test for the plattform itself. And most of the time the problems with own applications can only be found by guessing not by interpreting the changelogs. And some developers without the experience e.g. in python version changes or library bindings might have bigger problems why their code does not work anymore.

12 Likes

Yes, you only support harbour side libraries to be stable but only sort of. Thinking about PodQast/Gpodder IconMenus which did not work anymore because there were new elements in Silica with the new release. And the harbour concept does not really work, otherwise openrepos would not be necessary.

For a professional application handling there must be some instance for checking up, it the old stuff will work. There is a testing instance for new applications/application versions pushed into harbour. But there is no instance which checks the actually stored apps in harbour against new releases.

Probably need a thread for further discussion.

4 Likes

Yes, I think these points deserve their own thread. If you create one, I’d be happy to discuss there, to better understand what might help address these issues.

1 Like

It’s great to see all that’s new in 4.0.1 and also have various Apps featured. Unfortunately the upgrade from 3.4 Pallas-Yllästunturi does seem to have introduced some regression. As someone who would like to use Whisperfish by @rubdos mentioned last time, the upgrade means that I can’t register the Whisperfish App with Signal.

The issue has been identified in [4.0.1.45] Regression in rendering of reCAPTCHA in sailfish-components-webview and I can confirm that it’s not possible to register the Whisperfish App since reCAPTCHA that is necessary for registration doesn’t now work in 4.0.1.

I’m hoping that this is something that the “fix breakages” process described by Björn Bidar above will address.

Thanks

7 Likes

To be fair to Björn, this was a regression introduced by the browser upgrade, unrelated to his work on OpenSSL. But it is certainly an issue which we’d like to fix (I’m a Whisperfish user myself, and @rubdos also flagged it up separately).

1 Like

@flypig I wasn’t suggesting that Björn was responsible for the regression just referring to the methodology of fixing what has broken. In that regard it’s great to know that the issue is one that Jolla would like to fix. Thanks for that and all the work being done to make the OS as good as it can be.

1 Like