How you can help the Linux Mobile ecosystem

The Linux Mobile ecosystem is really blossoming now as we enter the last quarter of 2022. More and more people are getting involved, and I’m starting to be asked one question in particular a lot more: “I’m just a user, how can I help?”.

Progress

The Linux Mobile renaissance has been accelerating rapidly in the last two years. With increasingly better support for mobile SoCs and phones in upstream Linux, and userspace support looking better than ever with new frameworks like libadwaita and the recent announcement of Gnome Mobile. I think we’ve begun to reach critical mass, that is to say demand for Linux mobile is beginning to catch up with - and overtake - the supply.

Why do I think this? Well one of the biggest indicators by far is the types of people I see in the community, more and more folks are joining in who aren’t developers but just enthusiastic users who want to enjoy the same freedoms on their phone as they do on their laptop or desktop.

Linux Mobile distributions like postmarketOS are still far from complete on any device, this is due to a combination of things: missing support for device-specific hardware, missing features in userspace (e.g. app alternatives, push notifications) and various other usability issues. The current early adopters will be all too aware of this. Rightfully a lot of them reach out to see how they can help, but are far too often dissapointed in the answers.

This is something I see come up a lot, it is the main motivation for this blog post, as I think this format is a good way to dig a bit deeper and hopefully provide some context from a developers perspective, as well as provide some potential solutions. You can treat this as a sort of blog-form FAQ.

“How can I help?”

Different people tend to have very different expectations when asking this question. It depends heavily on their experience with Linux, programming, and general understanding of how a software ecosystem like this evolves. This is a very open-ended question, which isn’t inherently a bad thing, but usually requires that the person you’re asking do a lot of work to try and find an answer that suits your experience level and particular interests.

If possible, I would suggest spending some time investigating what people are working on, I’d recommend checking out these resources:

If you aren’t sure what you want to do, hopefully one of those contains something of interest! Beyond that, there are a few more general things that you can do:

Testing

Offering to test new features is regularly something folks mention when asking they can help, this is genuinely appreciated, as there are often things that need to be validated based on region, device variant, or a number of other factors. However, for the developer it’s often not as simple as pushing whatever you’re working on and telling folks to run a few commands.

Most software is deployed via a package manager, whether it be flatpak, apt, or apk in the case of postmarketOS. This is great for the software you use every day, but for work in progress features it’s not usually a suitable distribution method. Traditionally, having users test software requires either guiding them through the process of setting up a build environment, or distributing a prebuilt binary. The first solution involves a developer spending their (often limited when it comes to FOSS) time stepping users through the build process, and the second one can quickly lead to dangerous situations as we normalise the idea of installing potentially untraceable binary packages - something which the PinePhone malware event at the turn of 2022 clearly tried to exploit.

I do want to reiterate that testing is incredibly important, snobbery at folks who are trying to compile your project and ask you for help does absolutely no good for the community. We should always strive to bridge the gap between developers and users, I think this is a core tenet of FOSS as a whole, and especially important when it comes to Linux Mobile as there are so many different devices, variants, carriers, and regions - it’s impossible for a developer to test everything themselves.

These issues with testing are something the postmarketOS team have also been aware of and discussed a decent amount, resulting in the creation of mrtest by Ollie. mrtest is a tool you can install on your postmarketOS device which lets you easily test unreleased software, new features and other changes in pmaports. It works by using the build artifacts from a pmaports merge request CI, as all packages affected by a merge request get built to validate that they work before the MR is merged.

So, to end users: if you want to help test new features, check out the mrtest guide on the wiki, and just make sure you remember to uninstall the software when you’re done! As always, don’t attempt to install WIP software unless you’re comfortable dealing with the many issues that may arise from it. If you know a project in postmarketOS or alpine which is being developed and hasn’t been updated in a while, it may be worth suggesting to the package maintainer that they open a merge request to allow folks to help with testing. Be mindful that they might not think that the software is ready or should be tested by users yet.

To developers: if you want to get your software tested, creating a Draft MR and referencing mrtest as a way to easily check out the new features is a great way to go about it!

Documentation and Wiki Maintainance

People are often a little disheartened when I mention this, after all nobody really likes housecleaning. However it has to be done… Whether it’s updating an outdated wiki page you find or improving some loosely written docs, it’s a great help to everyone when someone takes the time to write everything down.

The postmarketOS Wiki always benefits from new additions and addendums, as well as improving visibility of useful pages by linking to them from elsewhere. Whilst often a thankless job, I’m always warmed to see that someone has taken the time to improve my poorly worded step by step guides, or fix some outdated reference to a bug. With that being said, writing and keeping docs in order is something I struggle with a lot, I certainly wouldn’t blame you for scrolling right past this paragraph >,<

“How can I contribute to the community?”

This is a tricky one, and I’m almost definitely not the best person to comment on it. So I’ll just bullet point a few suggestions:

Trying to involve the community as much as possible is something the postmarketOS team take pretty seriously, for example with our recent news about considering Sourcehut as our new git forge, we spent a long time trying to find the best way have the community drive the discussion. We also try to use the postmarketOS podcast as a way to invite community involvement and discussion on new ideas, and let people know what’s been going on.

“What device should I buy?”

This question is tricky, it would be great if there was objectively “best” device to get, but unfortunately it isn’t so. There are so many different phones which run Linux in some form now, finding the one which suits your needs best can be a frustrating process… Hopefully these links can help you get started.