Subscribe to future posts here
Sailfish OS update from Jolla
Just as the last newsletter went to press, those of you on the Early Access stream will have received a notification asking you to update to Sailfish OS Release 4.3.0.15. This interim release addresses an important polkit-related security advisory that was released after the original 4.3.0 Suomenlinna release went out. As well as fixing the security flaw, it also prepares your device for the next upcoming full Sailfish OS release by installing changes needed to support the upgraded archiving format that weâll be using in the next update. And it also allows for an easier SDK setup process.
The release has since gone out to all users and weâre happy to see itâs received a positive reception. Although itâs not intended to provide new features, as you can see thereâs nevertheless been a lot thatâs gone into it.
In the last newsletter we highlighted the release of the Sailfish SDK version 3.8 to the Early Access channels. This has also now gone from Early Access to general release. For more details about this, see the release notes or the summary in the previous newsletter as already mentioned. As well as this full release, the SDK team also released the Platform SDK chroot targets for 4.3.0.15.
As we prepare for the next release, itâs also worth giving advance warning that one of the changes in the next release is also likely to cause the location of app icons in the app drawer, as well as any folders you may have there, to get reset. This is unfortunate but unavoidable, so we recommend you take a note (or maybe a screenshot) of the locations of the apps before the upgrade so you can rearrange them correctly again afterwards.
Finally, an announcement that will be important if youâre involved in porting Sailfish OS to other platforms. Our hardware adaptation team has forked the pulseaudio-modules-droid package to make Android 11+ based adaptations easier to maintain.
The original modules have been renamed to pulseaudio-modules-droid-q and will continue to be usable as is in current adaptations, you just need to replace used repository.
Jolla at MWC Barcelona 2022
Weâre very happy that Jolla will be returning to the exhibition floor at MWC in Barcelona next week. As one of the worldâs largest mobile connectivity events, weâre excited to be attending.
If youâre attending yourself, please do drop by our stand, 7G23 in Hall 7, and say hello; weâd love to see you. And if youâre in the vicinity of Barcelona this Sunday 27th February weâd also love for you to join us at an informal community meet-up outside of MWC. If youâd like to be there, please drop us a private message to let us know so we can provide more details.
Xperia 10 III hardware adaptation
In the last newsletter we talked about the release of the official instructions for building Sailfish OS for the Xperia 10 III. It was great to see the response, and especially from those of you keen to contribute to the development process by giving it a go.
The team at Jolla have worked extremely hard to provide excellent instructions. Nevertheless, theyâre also very open about the fact that the instructions are primarily aimed at those with some experience in Sailfish OS hardware adaptation, rather than for general users. Reference to the Hardware Adaptation Development Kit is even a required part of the process. Given this, as someone who isnât familiar with hardware adaptation, I was interested to give them a go and find out exactly how much understanding of the process is really needed in order to get Sailfish OS up and running on an Xperia 10 III.
So I decided to have a go at following the instructions to find out. Now as a Jolla developer Iâm pretty familiar with the Sailfish OS userspace. But like any operating system there are many different layers to it: from the user interface and apps at the top down through the middleware, into the kernel, the hardware adaptation and the drivers at the bottom, closest to the metal. Thereâs even a clearly marked boundary in our repository structure between the operating system and the hardware adaptation.
Anything lower than the middleware falls well outside my understanding. So I approached building an Xperia 10 III image just like any other non-porter might*. So how did I get on?
Thankfully the instructions are very clear and detailed. Building an Xperia 10 III image isnât like porting to a new platform, because someone else has already figured out all of the problems already. So unlike the instructions in the HADK which require interactive investigation, the instructions for building an image donât require thought, only diligence and patience.
Nevertheless, the instructions do mirror the structure of the HADK, and there are quite a few steps involved. You start by prepping your device, much as you would if you were flashing an officially supported image. You must then set up your Platform SDK in a very specific way for building the images. This includes creating a custom target, as well as a custom Ubuntu Chroot, the former for building the Sailfish OS components, and the latter for building the Android Hardware Adaptation Layer.
Thereâs quite a lot to download during this set up process and through some of the later stages as well. On my mediocre (for Finland, at least) max 50Mb connection I spent a total of four hours downloading the necessary repositories and images. This isnât something youâd want to do over a metered or mobile connection.
Having set everything up, you then need to actually start building things. This is a three stage process. First build the Android HAL using an Ubuntu Chroot. I found this to be a lengthy but smooth process. My laptop isnât powerful compared to a dedicated tower designed for building code (briefly: 16GiB Core i7-1065G7, 8 Ă 1.30GHz), so I performed all of the steps set with j2
. Building the Android HAL took nine hours, but thankfully it didnât hit any glitches en route, so I could just leave it running overnight.
The subsequent steps involve packaging the Droid HAL, followed by creating the Sailfish OS root filesystem. These steps werenât so smooth and I hit some bumps along the way. The build process is still very much in development, and while things are still in flux itâs inevitable that there will be some fixes and workarounds needed to get the build to go through.
All in all, these stages took an additional 2 hours of build time, but in much smaller steps punctuated by manual execution of commands as described in the instructions (the longest continuous build stage was for the hybris-hal at 55 minutes).
Finally, having built everything you end up with a zip file similar to the one youâd expect to get as a Sailfish X download, with clear instructions for flashing the resulting images to your device.
The instructions are very clear and precise, but unfortunately my first attempt at getting a bootable image didnât go according to plan. With the adaptation still in flux and daily updates to both the build engine and adaptation sources, keeping the documentation in sync isnât a straightforward task. As a result, the instructions werenât quite ready for someone who wants to step through them mindlessly. So although I did get a set of flashable images, the phone refused to boot past the recovery menu.
Luckily I have a world-class hardware adaptation team on hand to help me out. With some amazing work from them ironing out the glitches, updating the SDK target, the Chroot and the build instructions, I was able to give the process a second attempt.
With the changes in place, things went more smoothly. I was able to get through the commands with minimal intervention and as you read this, all of the remaining glitches should now be ironed out.
Things went more smoothly for other reasons too. It would be a stretch to say I now understand whatâs going on, but familiarity with the different stages certainly helps. Plus pushing the job limit up to -j4
also cut 26% off the build time.
With the images flashed to my virgin Xperia 10 III, I pressed down hard on the power button with some trepidation. Itâs amazing how long the boot process feels when everything rests on the result. Itâs also amazing how good it feels to see the Sailfish OS logo appear on screen for the first time.
Overall for each run I spent around four hours waiting for things to download and eleven hours waiting for things to build, but practically speaking this means you should set aside at least a couple of days to get through the process. With a faster machine and a faster connection, you may be able to reduce this to a day.
As is hopefully clear, the process isnât for the faint of heart, but it is tractable even without an understanding of the processes happening in the background. Thereâs something especially fulfilling about running an OS built from source; even if itâs just a hint of what it must feel like to see a genuinely new port boot for the first time.
If youâre planning to test out Sailfish OS on your Xperia 10 III in advance of the official release, then this is the way to do it. Donât see it as an opportunity to get a release-grade OS â the adaptation is still a work-in-progress â but do see it as an opportunity to contribute by sharing your experiences.
If you do decide to try this out, alongside the documentation, the best place to get answers to specific questions is, as always, the #sailfishos-porters IRC channel.
The important caveat always remains that anything like this is risky and may end up bricking your device. So please only try this if you either know what youâre doing, or are entirely comfortable with this possibility.
*In other words, with an overwhelming feeling of angst and confusion.
Energy from the Community
We have a nice selection of new and updated apps for you as usual. What with February being the worst month of the year again, weâre happy to see a couple of game releases to keep your brain occupied and your spirits high.
Lines
Attendees of the latest Sailfish community meeting will know that the Jolla Store heuristics have been tweaked to allow software for both the latest aarch64 devices, and those running earlier Sailfish OS releases, to happily cohabit. Happily this has allowed Slava Monich (slava) to release all of his popular apps to the Jolla Store for the latest aarch64 devices.
Lines is one of the beneficiaries of this unlocking. Slava describes it as a classic puzzle game, but itâs not one Iâve played in other contexts. Itâs sort-of a cross between the colour cominations of Bejeweled and the top-down wandering of NetHack, but without the monsters. The aim is to connect together lines of identically-coloured balls. You can direct the balls to move to any other point on the grid, as long as their path isnât blocked by the other balls in play. After each move, three new randomly coloured balls with be placed randomly on the board. As time goes by the board becomes increasingly cramped, hindering your attempts to join similarly-coloured balls together. The only relief comes from creating the lines, causing its constituent balls to disappear, and hopefully opening up a pathway for your next move. At the same time, completing lines fills up your points total, the more balls in the line the more points.
The rules are simple, but it can be surprisingly frustrating to have your plans thwarted by the random placing of a ball blocking the only remaining pathway needed to clear the next line. As the board fills up, moves become more scarce and it becomes easier to predict where the next balls will fall, ratcheting up the frustration.
The graphics are also simple, but clean and easy to parse, a far cry from the visual assault you might get from a Popcap game. Whether this is a pro or a con will depend on your perspective.
If youâre looking for a app to pass the time and calm a restless mind, then Lines may be just what you need.
Lines is now available for devices of all varieties from the Jolla Store as well sa from OpenRepos.
Parkscheibe
Another prolific app publisher, Mark Washeim (poetaster) has released an update to his Parking Timer app. Mark has done a sterling job in recent months picking up a whole host of otherwise unmaintained apps. Parkscheibe is one such app, which Mark has taken over from Tobias Planitzer, the original author.
Designed to relieve the burden or remembering when your parking ticket will run out, Parkscheibe essentially a countdown timer, but tailored to suit the parking zone regulation found in many countries across Europe.
The only timer options are 30 minutes, an hour or two hours, which makes the app really simple to operate, and is certainly like to cover the most common inner-city parking scenarios. Itâs a little more nuanced though, because you can also set a quantisation level of 15 or 30 minutes. This will round your parking time up to the closest boundary, to mimic different countryâs parking requirements. You can also configure the app to give a five minute warning before the time expires. Itâs up to you, however, to ensure youâre still within a five minute walk of your car when that happens!
The main page in the app shows a very clear visual indication, in nice Sailfish OS style, of the remaining time. It also captures a nice summary of all of the details you might need: start time, set time and finish time.
Itâs a simple app, and while you could do the calculations yourself and set up a timer in the Clock app, Parkscheibe makes the whole process easier, quicker and therefore also less error prone. In short, another nice app from Mark.
Parkscheibe is available from the Jolla Store and OpenRepos.
Tremotesf
After the peer-to-peer frenzy at the turn of the millennium, once the dust had settled, BitTorrent emerged as one of the most successful survivors. No doubt part of that success came from its widespread use for sharing pirated music and video, without any central organisation for the copyright holders to pursue. But it also provides a very convenient way to download and legitimately distribute very large files, such as Linux distro images.
Transmission is a particularly nice, and aggressively cross-platform, BitTorrent client. It doesnât make much sense to run BitTorrent on a phone, with their relatively small storage space and data caps compared to their desktop and laptop brethren. So Tremotesf provides the ability to control the Transmission client running on your computer from your phone.
The dameon for allowing this control is built in to the Transmission client, all you need do is activate the remote control feature, specify a port for it to listen on, and optionally configure some security. On the Tremotesf side, configuring the connection is also straightforward: minimally set the name, IP address and port for the device running Transmission.
Youâll then immediately see a list of all of your currently active torrents. You can add more, pause them, restart them, investigate their contents (down to the file name level, but no the actual file contents), and so on.
The UI is really nicely designed. It provides a large amount of data in a small space, while fitting in really well with the Sailfish style that we all love. You get notifications for when a file has finished downloading, and various other events, and you can even set up connections to multiple clients.
The latest release of Tremotesf provides various new features, including automatic reconnection to the server, persistent filter and sorting settings, and improved presentation of various pieces of information. You can also now shut down the transmission server directly from your phone.
Tremotesf is written and maintained by Alexey Rochev (equeim) and is available from the Jolla Store and OpenRepos
Machines Vs. Machines
Another release from Mark Washeim (poetaster) this last fortnight comes in the form of Machines Vs. Machines, a game ported over from Ubuntu and originally written by Michael Zanetti. Itâs a classic tower-defence style games and comes with two quite distinct variants.
The Machines Vs. Machines variety sees you placing turrets along a path using a finite amount of resources. After a distressingly short interval a parade of robots will head down the path and towards the soft and vulnerable heart at the other end.
Well-placed turrets will fire at the robots as soon as theyâre within range, but with a fixed reload time. Placement is key to ensuring you wipe out the robots before they reach that soft spot. If too many of them get through, youâll fail the level.
The game is easy on the eyes and ears, with bright, colourful and playful graphics. But this belies the rather tough gameplay that requires careful strategising and resource management. Each level requires you to survive ten waves, which even on the normal will require multiple failed attempts before you reach a successful strategy. There is thankfully also an easier level, and also a hard level for the masochists.
If youâre after something cleaner, the âLetâs Shoot the Serifâ variant makes for a nice contrast. The titular pun pretty much captures the entire game. Rather than robots you have Times New Roman letters (Serif, geddit?), which inexplicably either shoot or are shot. Itâs a relief the developers donât try to rationalise whatâs going on here with a narrative. Theyâre letters. Theyâre shooting. If you want it to make more sense, you should stick with the robots.
Both games are a lot of fun. The design doesnât always fit nicely into the 21:9 form-factor of the Xperia devices, with some crucial help text getting cut off the top or bottom of the screen. But these are minor glitches that Iâm sure Mark will be able to iron out in future releases.
The latest version includes various fixes and has been repackaged, and is available from OpenRepos.
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 3rd March, full details here.