Subscribe to future posts here
Sailfish OS update from Jolla
The end of January is rapidly approaching, which means that many of you will be eagerly awaiting the update notification on your Sailfish OS phone. As I write this, the release just isn’t quite ready yet. Be assured that release candidate testing is ongoing, wrinkles are being ironed out and the Jolla release machinery is set to standby.
An important part of the release preparation has been the translation round which officially closed on 22nd January. We wanted to take the opportunity to thank our amazing army of translators for doing a superb job as always. The breadth of language support in Sailfish OS is something we’re very proud of at Jolla, and it wouldn’t be possible without all of your amazing input and support.
In earlier newsletters we talked about Jolla’s presence at CES 2023, and I promised to give an update on events. The photo shows some of the Jolla team attending CES, where we had a very successful event demoing Android AppSupport. I spoke to Jolla’s VP of Sales and Business Development, Petteri Paasila, who was one of the team present in Las Vegas, to get his take.
“I am very happy that we achieved the targets we had set for ourselves and more at this year’s CES. We had lots of high-quality customer interactions and gained valuable insights on how Jolla can add even more value to OEMs and Tier1s in the automotive OS and SW space.”
CES is a corporate event, not open to the public, and so for commercial reasons I can’t give more details about those interactions. But Jolla is also attending a number of other upcoming events: Yrityspäivät in Tampere, Finland on 2nd February at the Hervanta Campus, where we’ll be looking to recruit amazing new talent. FOSDEM 2023 in Brussels, Belgium on 4th and 5th February, which we discussed in the last newsletter.
In the next section we’ll take a closer look at home automation and in particular how well various automation systems work alongside Sailfish OS. To give more space for all the options we’ve decided to forego our usual App Roundup, but do continue on to Damien’s Repository Roundup, which in pull-request terms is also a bit of a bumper crop. As always, we hope you enjoy the newsletter.
Energy from the Community
In the last newsletter we talked about the Opt Out Project. We were really happy with the response and thank you for all your comments about it. Since then cyberlyra has published a number of new articles to the Opt Out Project website, so if it’s a topic that interests you, don’t forget to check back there to read about Smarter Smartphones and more.
We were also interested to see a recent post by Nico Cartron (ncartron) in which he attempts to discern upcoming Sailfish OS features through investigation of the latest translation strings. As we mentioned above, the latest translation round came to an end just last weekend, during which the legions of very dedicated and skilful community translators localise numerous strings that have been either changed, or newly added to Sailfish OS since the last release. Nico has been contributing to the French localisation for several years now, so should know a thing or two about how strings translated into French translate into features. His blog post makes for an interesting read.
Home Automation
One of the dangers of experience is that it teaches you not to believe everything you hear in the media. Too many disappointments can turn the naivest of enthusiasts into the deepest of cynics. If you’re old enough to remember Back to the Future Day (21st October 2015) you’ll know what I mean: where are our hoverboards, our self-drying jackets? Where are our flying cars?!
Digital home automation is something that has been predicted for a long time, but only in the last decade has moved into the mainstream. It’s exciting to be finally getting the future we were promised. And there are now more ways than ever, both commercial and open source. We asked the amazing Sailfish Community how they’re using home automation alongside Sailfish OS.
Given our common interest in Sailfish OS, we’ll focus on control of devices via a mobile phone. This is typically achieved using a hub: a gateway for the phone to talk to. Many hubs offer a Web interface, while some are more bare-bones.
So let’s dive a little deeper into the systems in use by the Sailfish community. If you’re looking to get started with home automation this may give some ideas, but it’s not intended as a buyers’ guide: think of it more as a safari tour observing home automation in its natural habitat.
Home Assistant
A common choice amongst Sailfish OS users, Home Assistant offers an Open Source front end allowing control of multiple different home automation backends, including Sonos, Hue, Ikea, MQTT-based and many others. The project is very actively developed with a monthly release cycle, each of which brings new integrations, new ways to view and collect data, and interface improvements.
Quite a few Sailfish OS users are also using Home Assistant to control their devices, including piggz, dyraig, kkoenders, lhodas and AlanBreen. Part of the reason it’s so popular may be that it’s well catered for in terms of Sailfish OS control. The Quartermaster app from black_sheep_dev provides a native Silica user interface, with semi-regular updates, most recently from last year. There’s also the official open source Android app on F-Droid, as well as the standard Home Assistant Web interface. As AlanBreen explains, the Android app works well under Android AppSupport.
I tried using Quartermaster with Home Assistant and found it a bit limiting/basic. I ended up using the Android Home Assistant app which works very well.
However, the majority of users seem to use the Web interface with Sailfish OS. Community member dyraig goes into a bit more detail.
In [Sailfish OS] 4.3.x, the browser was too old and I could not use the Web-interface that Home Assistant is offering. Hence, I was using Quartermaster. It works well if you just want to toggle a switch or read the value of a sensor, but otherwise, it’s still quite limited when compared to the Web-interface or the Android app. Now, under [Sailfish OS] 4.4.x, the browser has caught up far enough so I can use the Web-interface — with that, I’m quite happy.
Apart from direct control, Home Assistant also provides triggers, conditions and actions so that devices can be fully automated based on sensor input, and this seems to be one of its strong points. Community member lhodas has an impressive array of sensors attached to a Home Assistant frontend.
I use Home Assistant on a Raspberry Pi 4B (HASSIO) and RaspBee II. I mainly use the security elements — sensors of opening, movement, smoke and heat, siren, SMS gate, cameras — but also a Honeywell thermostat, weather station and I would also like to use Shelly contactors for a pellet-electro boiler. I use the Web client on Ubuntu and Sailfish OS 4.x (browser from stock). I’m happy with this configuration, everything I need works for me on Sailfish OS. Perhaps I only miss active notifications.
That’s a very well-instrumented house!
Another reason for Home Assistant’s popularity is the wide variety of devices it will talk to. Returning to dyraig’s set up highlights the variety of devices that are in use.
I have… a bunch of Tasmota-based switches, a Sonoff-Tasmota-RF Bridge (for two remote controls), connections with the converter of the solar panels and the smart meter and at the moment two Zigbee temperature sensors. I have not done too much with it yet, only smaller automations (e.g. for the Christmas lights… ) and a bit of monitoring of energy use. For what I want to do, Home Assistant is great, and I suppose I’m not even using half of what’s possible.
Eponymous porter Adam Pigg (piggz) has taken this to the next level by controlling not just his home appliances, but also his internal DNS server.
I have my NAS which has Docker support running the Home Assistant Docker image. I have automations for heating, based on a Zigbee temperature sensor and a switch connected to the boiler system, and an automation that sends a command to my AdguardHome DNS, which changes the blocked sites at night, to try and deter the kids staying up all night.
I have a Silvercrest (LIDL) Zigbee bridge, hacked to make it work with Home Assistant. For devices, I have a mixture such as Sonoff Temperature and Humidity Sensors and Tuya ZigBee Smart Plugs, plus a switch connected to my boiler that provides a volt-free contact, replacing a regular thermostat control. Mostly, the sockets are connected to the home-cinema systems, TVs and some other devices.
Adam is using a mixture of shell scripts, time-based triggers, the Home Assistant Web interface and Amazon Echos for control. The latter is achieved using a Home Assistant add on, which makes it appear to be a Philips Hue hub, which we’ll discuss below.
If you’re thinking of going down the Home Assistant route and wonder how well it might work on your Sailfish OS device, it’s worth giving the Home Assistant demo a try.
Domoticz
Domoticz is another open source home automation control system that seems to be popular with Sailfish OS users. It’s mainly intended to be used through the provided Web interface, while it connects to a whole host of compatible devices, including Sonoff, Milight, Z-Wave and Xiaomi devices. Both Julien Blanc (JulienBlanc) and Nico Cartron (cartron) admitted to using Domoticz as the route to their connected devices. “I’ve used Domoticz for approximately 5 years now” Nico explains:
Initially for basic home automation, in particular temperature sensors. I started with an RFXCOM hooked into my Raspberry Pi via USB, and communicating with the sensors using 433 MHz. I then added a few door and window sensors, as well as a doorbell, still using 433 MHz.
The RFXCOM Nico refers to is a hub that connects to a computer (in this case Nico’s Raspberry Pi) to give it the 433 MHz wireless-communication capability. This then allows the computer to communicate with all of the 433 MHz devices installed around the home. Domoticz is designed to work with 433 MHz devices, as well as other standard protocols.
Nico has upgraded his system several times since then. First to switch from 433 MHz communication to Z-Wave (800-900 MHz), again using USB to attach a Z-Wave dongle. This allowed him to incorporate Z-Wave-controlled sockets that returned power-consumption data back to the Raspberry Pi and motion sensors.
The wall plugs are for my fridge, washing machine and drying machine, as well as a few other devices (my 1/4 rack with all my compute stuff in my home office for instance). The motion sensors are more a work-in-progress; I want to hook them eventually to a home alarm system, which I would enable when we’re not home.
Later again he added Zigbee support, this time using ZiGate hardware, to allow cheaper Zigbee devices to be controlled, and, not wanting to stop there, also added a Velux Gateway as well:
Finally, since I had some Velux and Somfy blinders, I bought a Velux Gateway, which I now control with Domoticz, allowing me to open and close my blinds at the click of a button
Julien on the other hand has stuck to Zigbee for his home automation, which includes a whole range of different sensors and devices.
I use Domoticz to control several sensors, lights, smart plugs and switches, all part of a single Zigbee network.
So how well does Domoticz work when used with Sailfish OS? Julien carefully categorises the home automation lifecycle into three steps: first adding devices to the network; then configuring scripts to handle the automation; and finally benefiting from the results. “I don’t need a smartphone app for the first two steps” he explains “which are better done on a PC with keyboard and mouse”.
For the third step, a smartphone app could be useful, but the whole point of automation, is to not require user interaction. If I need a smartphone to put a light on, well, obviously my home setup is broken. There are, however, a few use cases where a smartphone app could be handy. This is for things that change often, such as my wake-up time. It would be nice to trigger the light in a dimmed mode at a specified wake-up time, and changing that wake up time should be nothing more than changing an alarm within the Sailfish OS clock app. In that regard, the Domoticz Web interface is failing and an app would be nice.
Nico comes to a similar conclusion, explaining that while the Domoticz Web interface works, a native app would be nicer.
Devices are mostly automated, I used the phone’s browser to display things or enable some wall plugs from time to time. I interact with Domoticz by using the mobile app on the stock browser — it does the job, but I wish we had a native Sailfish OS app!
One of the things that became clear when talking to people about their Sailfish OS enabled home automation systems, is that there’s a surprising amount of effort going in to developing native solutions. So maybe a native Domoticz app isn’t a far-fetched idea.
FHEM
FHEM standing for “Freundliche Hausautomation und Energie-Messung” (“Friendly Home automation and Energy Measurement”), is an open source Perl-based server that handles automation tasks not unlike Home Assistant or Domoticz. It allows both device control and data capture from sensors. Users can interact with it using the build-in Web interface, or by SSH-ing directly into the server to run FHEM commands.
Amongst the Sailfish community, long-term Linux and Jolla user Denis Robel (denis.robel) is using FHEM for a wide variety of home automation tasks, both automated and remote controlled. It’s interesting to note that Denis is using a mixture of both off-the-shelf and custom-made technologies. Denis works in the field of medical products for ENT (Ear, Nose and Throat) treatment as as engineer for mechanical design, and is clearly applying his skills to his home automation set up as well.
Denis’s main FHEM server runs on a Raspberry Pi 4, with a second Raspberry Pi “fhempy” peer to increase Bluetooth coverage. He’s also using a mixture of communication protocols: 443 MHz, 868 MHz, Wifi and Bluetooth. The first two are handled by a DIY USB CUL, which is a small transceiver that receives and transmits with an Atmel ATmega microcontroller and a CC1101 radio module, attached to the Raspberry Pi via USB. There’s also a Sonoff RF Bridge for communication between 433 MHz and Wifi networks.
Connected to these networks are several Tasmota-flashed power sockets that send power consumption measurements back from Denis’s washing machine and dishwasher, several eQ-3 thermostats that communicate via Bluetooth, temperature and rain sensors transmitting over the 433 MHz network, and several Shelly devices that run over Wifi and using MQTT for controlling lights. Denis uses Sonoff infra-red PIR motion sensors, but in a rather cool twist, he also uses three ESP32 microcontrollers to detect the Bluetooth Low Energy communications of fitness trackers for use as presence detectors.
The mixture of sensors works well for automated control as Denis explains:
When the last person leaves the house then all lamps will be switched off and the temperature will be reduced automatically. When a person is coming home the temperature will increase to a normal level and the person will get a personal text-to-speech greeting. I’ll also get messages via XMPP when my children are arriving home.
On top of all that, Denis has installed the open source Rhasspy Voice Assistant on a third Raspberry Pi. FHEM has a module for Rhasspy integration and the combination allows the system to be controlled either via the Web interface or by voice with his phone:
[I’m using] mobile clients on Android phones and on Sailfish OS for voice controlling lights and heating. I’m using FHEM with the Web frontend via the native browser and Rhasspy mobile app via [Android AppSupport] on Sailfish OS. This combo is working well.
The totality of the system sounds like a labour of love, and more than just the product of casual tinkering. Nevertheless it’s clear that even a basic FHEM system is a viable choice for use with Sailfish OS.
Cozify
Finally for our Web-based hubs we’re looking at Cozify, which is slightly different in that it’s a commercial product (from a Finnish company), rather than open source. This comes with obvious drawbacks related to customisability and community contributions, but a paid-for offering also brings benefits, in terms of a standardised hardware-software combination and a programme for certified products.
Tuomas Nyqvist (lumen) reports successful use of both the Cozify app using Android AppSupport, as well as the Cozify Web interface using the Sailfish Browser, the latter being his preferred method of control.
I’m using Cozify home automation… They have an app on Android which works fine on Sailfish OS. But they also have a Web portal to control home automation from and it works very well on the Sailfish stock browser. In that way, no need to install any app, at least I’m using the Web portal only. And they have done it in a way that the portal works exactly as the app does too. Warmly recommended.
He also reports a wide variety of different devices that can successfully connect with it.
I’m using devices from Philips Hue, Osram and Ikea; sensors, lighting, light controls and controllable power outlets. I have also Nexas light switches that can be fitted into the Schneider Exxact range. All these communicate nicely together via Cozify.
As Tuomas explains, the hub supports programming of rules for automation:
Function programming is basically “this controls that”, “control is timed or triggered by this” and so on. Also quite advanced programmings can be done, such as light colour changing according to daylight colour during the day. Timings not only according to clock, but also to changing sunset and sunrise.
Cozify looks like an excellent choice if you’re looking for a minimal hassle solution with good support, good sensor and device coverage, and an interface that works well with Sailfish OS.
Philips Hue
Given its claim to be one of the earliest commercial network-controlled lighting systems, and the longevity of support since, Philips Hue remains a popular choice amongst the Sailfish community. At least Scharel (scharelc), Vlad G (vlagged), Anton Thomasson (attah) and myself are all using it with Sailfish OS.
The original Hue lights required use of the Hub, connected via Zigbee. More recently Hue products have also supported direct Bluetooth control, although the Hub is still needed for more advanced operation, including use with native apps on Sailfish OS.
The focus for Hue has always been lighting, but the basic “on off” functionality can be extended to work with other devices including power sockets. There are also a range of branded sensors — indoor and outdoor motion sensors, dimmer switches and dials — to increase the automation options. The default Hub API allows direct control of devices, as well as basic automation tasks.
Sailfish OS already has two native Hue apps: Tint from Anton, and Scintillon from yours truly, both available from the Jolla Store. There’s also a third app being developed by Scharel as we’ll hear about later. Finally the Android app from Philips also works well using Android AppSupport. The Hue Hub doesn’t provide a local Web interface, but with three and a half apps, it can still work well with Sailfish OS.
As well as being the author of Tint, Anton is also the author of SeaPrint, which you’ll know as the app for printing documents on Sailfish OS. Besides both being developed by the same person, there’s also a connection between SeaPrint and Tint in terms of Hue-controlled light placement as well.
The first usage is syncing my window light with my ceiling light. Since the living room, aka office, aka printer lab, is a pretty decent size, it needs lots of light during the Swedish winters.
Anton uses a Hue-connected socket to control the window light, while the ceiling light is a Philips Hue “Fair” light. He also uses a HAY PC Linear suspended LED “strip” light made controllable using a Zigbee-based Sunricher Micro Dimmer.
The Sunricher Micro Dimmer conveniently fits inside the driver housing. So that makes it dimmable, but primarily it makes it controllable despite there only being one light switch/socket in the room.
Anton’s Hue system also extends into other rooms.
In my hallway light I have two regular Hue bulbs. The automation case there is that when I come back after at east 15 minutes of absence, the light turns on as soon as my phone connects to WiFi. Sometimes that’s while I’m still on my bike cycling towards the house, but always well before I enter the apartment.
Wifi presence sensing isn’t a default Hue capability, so Anton achieves it using a collection of Lua scripts. Using 5-minute tick events, counting up if he’s not home, connection events are relayed from the Linux iw command to his bespoke home automation system. An interesting an unusual approach given the Hue limitations.
Scharel’s Hue control is also focused on lighting, but he’s gone down a different route by developing his own Beacon app.
I use Hue to control the lights. Currently I use the Hue Android app but I’m also developing a native Hue app in parallel. Due to very limited time it will take long to get it to a usable state.
Finally in the Hue camp, Vlad is using the native Scintillon app for control of his lights. Like me, he’s mostly after the simple things in life:
I wouldn’t call it advanced automation what I’m using, just having the ability to wake at night and not be blinded by the bathroom light is a thing for me.
Amazon Alexa
We have at least two community members, Giacomo Di Giacomo (jameson) and Adam Pigg (piggz), using Amazon’s Alexa in combination with home automation and Sailfish OS. We already discussed Adam’s set up earlier, but I wanted also to talk about Giacomo’s, since he takes quite a different approach.
Giacomo is an electronics engineer, living in Italy near Rome who describes himself as having “little to no free time left”. That’s something I’m sure a lot of us can relate to. He’s a long-time Sailfish OS user, with it installed as his daily driver for another very relatable reason: “since other systems are limited and boring”.
He’s using a mixture of mainly Tuya and Xiaomi devices. A Tuya Zigbee controllable plug socket for controlling a night light, connected to Alexa via a Tuya Zigbee-to-Wifi adaptor. His media system (television and set-top box) are controlled by an infra-red to Wifi adaptor, allowing them both to appear as devices on his network. He has a Xiaomi WiFi desktop lamp which can be controlled remotely, although Giacomo explains that he rarely does so in practice. Finally in the garden are a set of three Tuya lamp holders, so that he can control them “without having to run around the house to reach the switches”.
It’s a nice set up, and it’s interesting to note that Giacomo is using Android AppSupport exclusively for control, as he explains.
I am using the Alexa app to control my smart home devices. I would also like to use the Xiaomi Home app but it appears to be incompatible with Android AppSupport, possibly because of the lack of Bluetooth. The Alexa app works fine, sort of, apart from some random crashes (maybe due to microG?).
I also use the Smart Life app, which manages the Tuya smart home ecosystem. This, too, works under AppSupport. The Alexa Smart Life skill allows me to interact with Tuya devices from the Alexa app and Alexa-enabled devices.
Hubless
All of the systems we’ve covered so far have arguably used a single or centralised controller to manage all of the devices on the network. But it doesn’t have to be this way, and there’s been a growing movement towards hubless home automation where each device contains its own logic and server.
This is the approach Edz uses. His system is largely based around Tasmota, which is open source firmware that can be flashed to any device using one of the supported chipsets from Espressif.
I have about ten Sonoff switches/plugs, all have been flashed with Tasmota. Also, I have a Sonoff RF Bridge flashed with Tasmota, this is useful for opening and closing my roller shutter.
The interesting aspect for me is that each of the devices is accessed directly by its IP address. Many commercial devices are now going down this route, since it avoids the need to install the hub as extra hardware, but in Edz case it’s much more about being able to control his own devices the way he wants them. He’s complimentary of the hackability of the Sonoff devices he uses and flashes them with Tasmota for privacy reasons. It’s a project he’s been working on for some time:
It’s taken many months of learning to code it all for Sailfish OS and learning how to flash Sonoff modules, etc. All in all, a very homemade “home automation” system, but it all works 99.9% of the time. Sometimes a Sonoff module goes offline; killing the power for a moment usually sorts that… No hub required, all physical modules are accessed via its IP.
There’s also one particular piece of hardware that Edz has developed which I found particularly intriguing, and which Edz calls his “Nescafe IR”. Edz explains more.
For my Denon amp, I had to make my own IR transmitter, I used an ESP8266 dev board (€3) and an IR LED (€1 for 10) and mounted it in a Nescafe coffee pot lid. It hangs on a really short USB cable for power directly from a wall outlet which is opposite my amp. The ESP8266 board was also flashed with Tasmota IR firmware.
Edz is developing his own app for use with all this, and which you can see in the screenshots.
The Nescafe IR sends as many codes as I can add buttons to the page. Luckily, I only require eight functions for my amp; volume up/down, dimmer (display on amp), mute, D/ST, source, tone and power on/off.
I had to hunt for Denon IR codes which I asked Denon for and they delivered, but I still had to decode them from binary to hex. I eventually listed 108 functions for the amp… I got the amp for €30 but without its remote about a year ago. My old Kenwood amp bit the dust after 32 years of daily use.
We love the fact that Edz has put so much time and effort into developing a bespoke hubless system to perfectly fit his needs. There may be other ways to achieve a hubless system, and Tasmota may not be the easiest route for a casual home automation enthusiast, but it clearly has quite a following amongst Sailfish OS users.
Custom
We want to end with another system that doesn’t quite fall under any of the previous categories. This is the system used by Jolla developer David Greaves (lbt), using pyQt and MQTT as the home automation control mechanism, with a lot of custom hardware and software in use as well — including Mycroft voice control:
I use Mycroft and have it able to send MQTT, then the rest of the stuff is all homebrew using Python, Django and pyside with MQTT as the hub and zigbee2mqtt.
A lot of it is homebrew: on the hardware side I control relays, PIRs and DS1820 temp sensors so they are run off a few Pi Zeros. I wrote a small Python framework which runs on them to basically make them MQTT responsive.
Much of this is used to control David’s heating system, and he’s put a lot of effort into getting it working well.
I also have a lot of heating logic which is about the concept of a room being “occupied” so it’s not just a schedule. You can override a room to say “I’m in here for an hour” or “I’m out for the night”. That’s where Mycroft comes in: “Hey Mycroft I’m going to be out until 1am tomorrow” or “Hey Mycroft, I’ll be in the Lounge from 3 until 8”. Mycroft skills are pretty good at that kind of thing.
We’ve left this until last because David isn’t currently using his system in combination with Sailfish OS. So where’s the Sailfish connection? Hopefully the screenshots will give you a hint.
I run a Raspberry Pi 4 running Silica on python; so I have a touchscreen which does all the user interface in QML.
David thinks there’s no particular reason why this user interface wouldn’t run as-is on top of Sailfish OS, but as yet, he’s not got around to trying. Silica still looks beautiful on his Raspberry Pi’s touchscreen, but ultimately this is a very bespoke system; not one to try at home.
Wrap up
There are as many different home automation approaches as there are homes, and we’ve been on more of an odyssey than a safari. This is testament to the ingenuity (and maybe rebellious nature?) of the Sailfish community. What’s clear is that Sailfish OS can successfully integrate into a wide variety of home automation systems.
One of the most exciting parts of writing these newsletters has been getting to know members of the community a little better, which is why I was so happy to hear all of the detailed descriptions of your home automation designs. Members of the Sailfish community are doing fascinating and exciting things all over the world, often in their own homes. I’m happy to be reminded of that.
Repository roundup
The number of updated low-level components (by mal and other sailors) has been important these last days. A new SDK version seems to be around the corner with various updates to the QML documentations and links for SDK QtCreator.
Telephony stack
-
mobile-broadband-provider-info
, the database of access point configurations, atlochowski removed Chess Communication and Ludo Mobil since they are not MVNO on Telia network anymore.
Audio stack
-
amber-mrpis
, QML bindings for remote control of music players, pvuorela fixed metadata tracking API. flypig proposes a large fix on the loop status, correcting possible crashes.
Networking
-
libgsupplicant
, a client library for wpa_supplicant, slava added bindings for new cipher and key management algorithms. -
sofia-sip
, a SIP library, mal updated it to 1.13.11.
The browser
-
gecko-dev
, Mozilla’s Gecko web rendering engine, krnlyng proposes to simplify building when the fix in scratchbox will be merged. rainemak partially reverted [sailfishos][embedlite] Clean background gradients from input elements. Fixes JB#58457 by rainemak · Pull Request #148 · sailfishos/gecko-dev · GitHub to reset default input field backgrounds to white. This last fix is also part of aupgrade-4.5.0
branch to avoid a regression on input fields. -
sailfish-components-webview
, the high-level QML components exposing a web page, pvuorela updated theimport
statements dropping the oldMeego.xxx
naming convention. -
sailfish-browser
, the browser itself, rainemak added tests for radio and checkboxes. Following Browser says about:blank is 'not secure', rainemak also removed the secure indication for theabout:xxx
pages.
Synchronisation framework
-
qmf-notifications-plugin
, a plugin to send notifications on email changes, dcaliste raised a discussion on the feedback definition that should be emitted when receiving emails.
Calendar stack
-
libical
, serialise and deserialise ICal file format, pvuorela upgraded it to 3.0.16. -
mkcal
, storage backend using SQLite for calendar entries, dcaliste proposed to addthisAndFuture
attribute in the database. This would allow changes to be supported from a point in time for recurring events at the user interface level.
Document reader
-
sailfish-office
, the document application, pvuorela updated it to use the newNemo.xxx
QML imports.
Positioning
-
mlsdb-data
, a packaging of Mozilla database used to assist GPS positioning, dsuni changed the database format.
System control
-
sailfish-utilities
, the setting page to restart failing services, vigejolla moved the descriptions of action to point to the forum. pvuorela migrated the QML imports to use newerNemo.xxx
formulations. -
mce
, mode control entity, spiiroin reverted to numbers in charging limit macros to avoid parsing issues when converting these macros to strings. spiiroin proposes to supervise screen access on device in mce, to reduce blank screen time and avoid race conditions to hardware access. -
lipstick
, the home screen code (open source parts), pvuorela fixed the unit test on volume control. pvuorela also simplified what is exposed by removing the QML bindings giving the connectivity status (using Connman is better to do this than asking the compositor). spiiroin is working on a link between mce and lipstick so the latter can tell the former what it needs to become the compositor. -
minui
, a library for minimal user interface framebuffer applications, spiiroin proposes to fix the return value ofgr_init()
in case of DRM backends that fail ingr_flip()
. -
profiled
, manages user settings, dsuni is working to move the configuration files from ~/.profiled` to XDG config directory. -
timed
, time and alarm handling daemon, dsuni is working to move the configuration files from ~/.timed` to XDG config directory.
Low level libraries
-
mapplauncherd-booster-silica
, preload common Silica QML components to get faster application starts, pvuorela updated it to newNemo.xxx
QML imports. -
droidmedia
, Android media wrapper library, mal has restarted the initial work from d-grigorev to make the starting of MediaCodec asynchronous. This may help to gain 12 to 14 frames on camera start-up for instance. -
nemo-qml-plugin-policy
, provides an API for communicating with the libresource policy manager, pvuorela added a warning when using the deprecatedorg.nemomobile.xxx
QML import. -
nemo-qml-plugin-time
, QML bindings for time handling (system wide clocks…), pvuorela updated it to newNemo.xxx
QML imports. -
nemo-qml-plugin-email
, QML bindings for emails, pvuorela updated it to newNemo.xxx
QML imports. -
nemo-qml-plugin-alarms
, the QML for alarm access, pvuorela updated it to newNemo.xxx
QML imports. -
nemo-qml-plugin-dbus
, the QML bindings for DBus, pvuorela added a warning when using the deprecatedorg.nemomobile.xxx
QML import. -
nemo-qml-plugin-configuration
, QML bindings to access configuration values, pvuorela added a warning when using the deprecatedorg.nemomobile.xxx
QML import. -
nemo-qml-plugin-notifications
, QML bindings to the Freedesktop notification system, pvuorela added a warning when using the deprecatedorg.nemomobile.xxx
QML import. -
sailjail-permissions
, the configuration files for system-wide sandbox permissions, pvuorela merged attah’s pull request removing PDF tools from inside the jail (not needed anymore). flypig expanded the documentation for the sharing permission. olf0 rephrased the description of theCompatibility
permission to clarify its role. -
btrfs-balancer
, a utility to reduce meta-data space used in the BTRFS file-system, olf contributed a patch to remove some Bash-only string substitution in the script calling the file-system balance operation. -
lxc
, Linux resource containers, krnlyng is proposing to update it to 5.0.0 from 4.0.10. -
libyaml
, the “Yet Another Markup Language” parser library, nephros updated it to version 0.2.5. thaodan moved to use%license
in the spec file. -
libxml2
, an XML parsing library, pvuorela updated it to 2.10.3. -
zxing
, a codebar library, pvuorela updated the package to 2.0.0, which enables inverted QR codes for instance fixing Xperia 10ii cannot scan green barcode. -
qr-filter-qml-plugin
, QML bindings for zxing, pvuorela migrated the code to Zxing version 2. -
libglibutil
, a library extending GLib with convenient utilities, slava improved test build (removed warning and made build without optimisation for coverage). -
giflib
, a library to manipulate GIF format image files, mal added a patch from Fedora to fix CVE-2022-28506. -
libtiff
, a library to read TIFF image files, mal updated it to version 4.5.0. -
vpnc
, a VPN solution, thaodan updated it to 0.5.3.r524 and rework the packaging. -
libexif
, a library to handle EXIF data in images, mal updated it to version 0.6.24. -
pixman
, image handling library, mal updated it to 0.42.2. -
gdk-pixbuf
, image handling library for GTK and friends, mal updated it to 2.42.10. -
libtasn1
, the ASN.1 library used in GNUTLS, mal updated it to 4.19. -
freetype
, the font handling, mal updated it to 2.12.1. -
libarchive
, a library to handle compressed formats, mal updated it to 3.6.2. -
qtdeclarative
, Qt implementation of QML language, flypig fixed an issue where it is impossible to clear text from a text input because its status becomes read-only. -
fribidi
, a library implementing the Unicode bidirectional algorithm, mal updated it to 1.0.12. -
aspell
, a spell checker, mal updated it to 0.60.8. -
sqlite
, an embeddable SQL database engine, mal updated it to 3.40.1. -
rsync
, a synchronisation command line tool, mal updated it to 3.2.7. -
sensorfw
, sensor framework, shr-project fixed issues when building on 32bit systems with time_t as 64 bits. -
libngf-qt
, QML bindings for the non graphical feedback daemon, dcaliste corrected cases where the “playing” status is emitted twice in a row. -
openvpn
, a VPN solution, mal updated it to 2.5.8. -
curl
, the command-line tool to access the web, mal updated it to 7.87.0.
SDK and developer tools
-
sailfish-qtcreator
, the Qt IDE, martyone gave the possibility to get/dev
from the host available under docker. -
sdk-setup
, part of the Sailfish SDK, vigejolla fixed an issue when configuring the HTTP proxy for targets. martyone added a detection of the host OS. -
scratchbox2
, the cross-compilation tool used by the SDK, krnlyng made it possible to redirect system calls. -
qemu-usermode
, a universal CPU emulator, krnlyng proposes to simplify the system calls, after the scratchbox modification. -
vim
, the text editor, mal updated it to 9.0.1206. -
mic
, , AndeySV opened a pull request to preserve extended attributes on rootfs. -
nemo-qml-plugin-calendar
, the QML for calendar access, martyone updated the QML definitions for SDK. -
nemo-qml-plugin-notifications
, QML bindings to the Freedesktop notification system, martyone updated the QML definitions for SDK. -
transfer-engine
, the backend to allow sharing data between apps, martyone updated the QML definitions for SDK. -
sailfish-secrets
, a framework to use encryption techniques, vigejolla changed the version number for the documentation. -
nemo-qml-plugin-contacts
, QML bindings to access the contact database, vigejolla changed the version number for the documentation. -
nemo-qml-plugin-systemsettings
, a QML component used by the Settings app, martyone updated the QML definitions for SDK. -
libcommhistory
, the library to access SMS/phone history, martyone updated the QML definitions for SDK. -
nemo-keepalive
, CPU and display keepalive and scheduling library, martyone updated the QML definitions for SDK. -
amber-mrpis
, QML bindings for remote control of music players, martyone updated the QML definitions for SDK. -
libqofono
, Qt bindings for Ofono, martyone updated the QML definitions for SDK. -
gdb
, the GNU debugger, mal proposes to update it to 12.1 release. -
rust
, the Rust programming language compiler, based on the initial work from rubdos, mal is looking at upgrade to 1.61. -
lua
, the scripting language, pvuorela updated it to 5.4.4.
Sailfish OS website
-
jovirkku fixed URLs in the tips and tricks page, pointing now in the documentation website instead of Zendesk.
-
vigejolla added a possibility to add a redirection when changing the URL of a page.
-
jovirkku added a page describing CSD test tool.
-
jpwalden created an article on ringtones and notifications.
-
jpwalden added a page on the weather application.
-
pvuorela created a page detailing what is supported when opening an URL externally (like
tel:xxx
). -
jovirkku modified the recovery page to include how-tos for Xperia X, XA2 and 10 besides existing 10 II and 10 III devices.
-
jovirkku linked the release number with the corresponding release note pages on the forum.
-
jpwalden added a page describing the media player.
-
vigejolla imported the HADK pages.
-
jovirkku proposes a page describing the Sailfish OS update process.
-
jpwalden is working on a page describing how to backup third party application data.
Please feed us your news
We hope you enjoyed this community newsletter. It’s been a lot of fun bringing the newsletter together each fortnight, but after exactly two years it’s time to pass the baton on to someone else. This will be the last newsletter with my avatar at the top, although hopefully not the last newsletter I contribute to. I hope you’ll all continue supporting it by sharing all of your amazing news with the Jolla team.
While working on these newsletters, it’s become abundantly clear that there’s no shortage of exciting activity happening in the Sailfish community. Jolla continues to push out exciting releases; the community continues to build on them through development discussion and deployment. It’s an exciting time to be using Sailfish OS, and I’m looking forward to reading all about it in future newsletters.
And if you’ve enjoyed reading this, we hope you’ll also join us at our next community meeting, to be held on the 2nd February on IRC, Matrix and Telegram.