Anjan, Arnav and Clayton represented postmarketOS at the SeaGL conference with a stand, where they showed off several devices running postmarketOS (OP6, PinePhone, Surface RT, some Dell tablet among others) and talked with many attendees. Anjan also gave an excellent talk, Introduction to postmarketOS. The beautiful table cloth was designed by Ranny. Here is Arnav describing the stand experience:
People were generally impressed by OP6 performance and GNOME Mobile snazziness. Some people were Linux-savvy and were there on purpose, but it seems more than a few people just roamed in wondering what the crowd was about, so it was nice to see their eyes light up when we described pmOS to them. Some of them even realized by themselves without us telling them that this would allow them to reuse their old phones for something useful, which was amazing.
Organizational
Trusted Contributors
We have three new Trusted Contributors this month, who we are really excited about!
Anjan: One of the maintainers of our favorite tiling WM based Linux Mobile interface Sxmo. He also maintains quite a few Alpine Linux packages and contributed some cool pmbootstrap patches!
Barnabás: Maintains multiple Qualcomm SoC kernels in pmOS, as well as related device ports and does important mainlining work!
Dylan: Works on VoLTE, Bluetooth HFP, Qualcomm sensors, helps with improving community and main devices like the Fairphone 4/5 and SDM845 devices as well as middleware such as PipeWire, fwupd and ModemManager. Dylan isn't new to the team, but he has switched from Core Contributor to Trusted Contributor to have a lower time commitment regarding organizational stuff.
GitLab
We recently migrated to our own instance. So far it has not exactly been a smooth ride, we are facing some stability issues:
We are affected by this GitLab bug, which causes sporadic 500 errors on our instance. When these happen, usually just reloading the page works around it, but it is of course annoying. At one point we even set up a daily gitlab reboot to work around it, which unfortunately lead to further problems as sometimes gitlab would be stuck in "502 waiting for gitlab to boot" state (1, 2). The daily reboot has been removed again. The good news is that gitlab.com developers have made a fix, so this source of errors should be resolved soon. See #87 for more information.
CI issues with gitlab runners running our jobs in docker, which leads to sporadic failures for jobs that run foreign architectures via QEMU (as we do with pmbootstrap during package building and during
pmbootstrap install). See #83 for more information.Backup jobs causing the instance to be slower / possibly not reacting to git pushes while making new backup snapshots. (These get queued up and handled later on though.)
It is clear to us that this isn't a great experience and we are working closely with OSUSOL to resolve this. Shout out to Lance from OSUOSL who has been supporting us really well and is working hard on getting everything stable!
While writing this blog post, we have received a CPU and RAM upgrade for our GitLab instance, and it seems to be running much more stable now.
New RFC process
We are introducing a Request For Comment (RFC) process for bigger changes in postmarketOS. This is the result of a lesson learned regarding previous bigger changes, for which we sometimes underestimated the required amount of time and possible downsides, which then leads to unpleasant firefighting down the road to fix up regressions instead of doing enjoyable development work as well as a bad experience for developers and users (of postmarketOS edge, usually stable is fine - but still). With the RFC process, such big changes will be discussed in a merge request to the new rfc repository, with a template that requires the proposer to fill out a summary, motivation, consequences and more. This has been inspired by similar processes from NixOS and Python.
Thanks to Pablo for pushing this forward and for writing !1 to bootstrap the process!
pmbootstrap v3 and beyond
After roughly half a year of working on it, we are happy to announce that pmbootstrap v3 has been released! Some of the highlights are a big performance improvements, packages to build are now calculated and shown ahead of time, a new
pmbootstrap chroot --imagefeature and of course huge maintenance improvements. Read the release notes for details, the rest of this section describes as usually the diff of changes from last month. Some of these changes landed in v3 already, others will be in the next release in a week or so. Now that the big rewrite is done, we will be making pmbootstrap releases much more frequently again!Show the output of
pmbootstrap statuson error (selected channel, device, UI, systemd/openrc). This is useful both for users to possibly directly see the cause of the problem (e.g. trying something on a pmaports branch that doesn't work there), and for bug reports to get important additional context (!2472). Thanks Casey!CI now generates coverage and test reports (!2478), and we have a new bootimg analysis integration test (!2467, !2483). Thanks Casey, Stefan!
The glob for configuring SSH keys to be copied to your install image with
pmbootstrap installcan now be configured (!2251/imported). See the new docs page SSH key handling for more information. Thanks Luca!ppc64le is now supported and cross architecture bootstrapping has been fixed (!2476). Thanks Jens!
When selecting a locale, the keyboard's secondary layout as well as the layout switcher combination now gets set accordingly (!2497). Thanks Anri!
Various smaller fixes and improvements (!2473, !2501, !2475, !2477, !2480, !2481, !2489, !2494, !2496, !2493, !2491, !2495, !2498, !2503, !2504, !2505, !2507). Thanks Anri, Minecrell, Stefan, Casey, Pablo N., Iuri, Oliver!
mobile-config-firefox
mobile-config-firefox 4.4.0 has been released! Find a photo of how it looks like now here. Besides the metainfo changes, everything from the list below made it into the release:
- Make URLbar on the bottom optional through about:config (!56). Thanks Peter!
- mobile-config-prefs.js: declare touch density (!57). Thanks Peter!
- userChrome/tabmenu: Add option to give more place to tabs (!58). Thanks Peter!
- tabcounter: Optionality, styling, documentation (!62). Thanks Peter!
- userChrome/urlbar: Hide tracking container (!59). Thanks Peter!
- mobile-config-autoconfig.js: set browser.urlbar.trimHttps to true and use xdg-desktop-portal file-picker (!60). Thanks Peter!
- tabcounter: show border in esr, make it less tiny (!63). Thanks Peter!
- metainfo: add missing homepage URL (!65). Thanks Arnaud!
Danny (who will be making improvements + upstreaming thanks to an NLnet NGI Zero Core grant) has done some planning work in the milestones and talked to the Mozilla UX team regarding redesigning firefox desktop to make parts of it more adaptive. They have this on their agenda already, and Mozillas work will start in ~ January 2025. Danny will then be able to join in and reuse some of the code from nightly to make other parts of Firefox adaptive that are important for Linux Mobile, but would without his work be out of scope for Mozilla.
We have a new #mobile-config-firefox chat room in Matrix and IRC (OFTC).
buffybox
unl0kr can now be used as systemd password agent, to give systemd the ability to ask for passwords on touchscreen-only devices. See README.md for usage instructions (!33). Thanks Vladimir and Johannes!
unl0kr now iterates over the available DRM devices until it finds an usable one instead of having
/dev/dri/card0hardcoded (!35). Thanks Sorcus and Johannes!
User Interfaces
Sxmo has been upgraded to 1.17.1, which allows using wofi as new menu with smooth scrolling and line wrapping, the new lockscreen peanutbutter, a new busy audio mode that disables ringing, improved device support and more (!5869, !5854). Read the release notes for more information. Thanks Maarten and everybody who has been working on the SXMO release!
Phosh has been upgraded to 0.43 (in Alpine's aports) and
postmarketos-ui-phoshhas been adjusted (!5796). Thanks Achill!GNOME: Lollypop has been replaced with Decibels (!5824). Thanks Achill!
The MATE UI configuration has seen a big rework for making it more touch-friendly (bigger font sizes, less cluttered layout, etc.) and easier to maintain (!5713). Furthermore MATE and XFCE have been switched to the slick-greeter to ease enabling and disabling of autologin (!5805). Thanks Jakko!
systemd
As mentioned in the last blog post, we have decided to not ship systemd in the v24.12 release yet, but to merge it to edge shortly after v24.12 is out. Nevertheless we have some good changes towards getting our systemd branch ready. The biggest change was probably moving post-install scripts that contain openrc-specific commands to openrc subpackages (!5688) by Aster, thank you very much! Besides that:
- systemd/postmarketos-base-systemd: disable journald audit feature (!5754). Thanks Clayton!
- systemd/linux-pam-pmos: rename from linux-pam (!5769). Thanks Jane!
- systemd/systemd-services: manually issue chvt on start of phosh (!5757). Thanks Achill!
- systemd/plasma-workspace: rebase apkbuild on upstream/aports (!5762). Thanks Clayton!
- extra-repos/systemd: fix deinstall macro (!5746). Thanks Clayton!
- main/postmarketos-cros-common: fix compatibility with systemd (!5768). Thanks Clayton!
- systemd/pipewire: pull upgrade from upstream/aports (!5776). Thanks Jane!
- systemd/xorg-server: pull upgrade from upstream/aports (!5777). Thanks Jane!
- systemd/gnome: pull upgrade from aports (!5770). Thanks Jane!
- systemd/networkmanager: upgrade to 1.50 and rebase APKBUILD (!5761). Thanks Clayton!
- ci: build_changed_aports: Don't exit prematurely if pkg list is empty, support verifying checksums of pkgs in systemd repo (!5684/imported). Thanks Clayton!
- systemd/gnome-logs: new aport (!5790). Thanks Achill!
- systemd/systemd-services: fix typo at rtkit preset (!5825). Thanks Jane!
- Fixes for "Move post-install scripts to openrc subpackages": fajita, cros (!5767), sargo, beryllium (!5771). Thanks Oliver!
- google-sargo: replace hexagonrpcd config in firmware openrc subpackage (!5783). Thanks Richard A.!
mrhlpr
This repository has mrhlpr, a script we use for merging pmOS merge requests as well as mrtest for testing merge requests from both pmOS and Alpine Linux. Version 1.7.0 has been released, containing all of the following changes:
mrtest has been adjusted to support for new Alpine's pipelines (!65, !59, !63). Thanks Pablo, Achill!
Colorized output for NOK, OK, ??? and error prints (!61). Thanks Anjan!
Various fixes and improvements (!64, !60, !62, !57). Thanks Stefan, Clayton, Pablo!
New device ports
We have three new device ports:
solidrun-cubox (!5600/imported). Thanks Rob!
asus-zenfone3 (!5711). Thanks Antony!
Kernel packaging
A LOT of kernel related packaging patches have been merged. One of the highlights is !5821 from Luca titled linux-postmarketos-qcom-sc7280: upgrade to 6.12.0 📸. The emoji in the title is a hint that this one makes camera work on the Fairphone 5 with mainline linux! Besides that we have:
- Kernel command lines use
quiet loglevel=2instead ofconsole=nullto really avoid printing text over the splash screen (!5752), with a CI check to keep it consistent in the future. Thanks Clayton! - linux-postmarketos-exynos7870: upgrade to 6.11.6 (!5760). Thanks methanal!
- linux-samsung-coreprimevelte: upgrade to 6.12_rc5 (!5758). Thanks Duje!
- linux-postmarketos-qcom-msm8953: upgrade to 6.9.1-r3 (!5689). Thanks Barnabás!
- linux-google-veyron: switch to xz compression (!5773). Thanks Brady!
- msm8953: upgrade to 6.11.6, update UCM configs, update firmware packages (!5780). Thanks Barnabás!
- linux-postmarketos-exynos5: update to 6.6.59 (!5775). Thanks Henrik!
- linux-postmarketos-allwinner: upgrade to 6.11.8_git20241114 (!5794). Thanks Arnav!
- linux-postmarketos-qcom-msm8953: upgrade to 6.11.6-r2 (!5798). Thanks Barnabás!
- linux-postmarketos-mediatek-mt8183: upgrade to 6.6.61 (!5797). Thanks Brady!
- linux-postmarketos-mediatek-mt81xx: upgrade to 6.12.0_rc1_git20241108 (!5802). Thanks Brady!
- linux-lenovo-21bx: upgrade to 6.12 (!5681/imported). Thanks Clayton!
- linux-postmarketos-mediatek-mt8173: upgrade to 6.12 (!5816). Thanks Adam!
- linux-postmarketos-qcom-msm8953: upgrade to 6.12 (!5829). Thanks Barnabás!
- linux-postmarketos-qcom-msm8994: upgrade 6.12 (!5827). Thanks Petr!
- CI: Don't bother with
main/linux-*/config-*in kconfig check (!5838). Thanks Stefan! - linux-purism-librem5: upgrade to 6.6.57 (!5815). Thanks Stefan!
- kconfigcheck: Fix ZRAM checks (!5835). Thanks Minecrell!
- linux-postmarketos-omap: Update to 6.12.1 (!5846). Thanks Mighty!
- linux-postmarketos-qcom-msm8916: upgrade to 6.12.1 (!5847). Thanks Minecrell!
- linux-htc-flounder: add V=1 workaround (!5848). Thanks Oliver!
- linux-postmarketos-qcom-sm8250: upgrade to 6.12.0 (!5830). Thanks Jianhua!
- linux-postmarketos-omap: n900: bq27xxx: generate events in changes to status flags (!5857). Thanks sicelo!
- kconfigcheck: add new category for virtualization support (!5843). Thanks Clayton!
- linux-postmarketos-qcom-sdm670: enable null tty (!5856). Thanks Richard A.!
- linux-postmarketos-allwinner: upgrade to 6.12.1_git20241127 (!5858). Thanks Arnav!
- linux-postmarketos-qcom-laptop: new aport (!5837). Thanks Clayton!
- linux-pine64-pinephonepro: Fix disk encryption deadlock on RK3399 (!5870). Thanks Jan!
- linux-postmarketos-mediatek-mt8173: upgrade to 6.12.3 (!5879). Thanks Adam!
- linux-postmarketos-qcom-sdm670: upgrade to v6.12.3 (!5881). Thanks Richard A.!
- device-samsung-j5y17lte: switch to mainline kernel (!5778). Thanks Andras!
- device-samsung-{a2corelte,on7xelte}: enable option to flash kernel after upgrade (!5784). Thanks methanal!
- samsung-n2awifi: add mainline kernel variant (!5789). Thanks Eisenbahnfan!
- device-samsung-j6lte: new mainline port (!5785). Thanks methanal!
- device-pine64-pinetab2: Upgrade to kernel 6.12.1-danctnix1 (!5849). Thanks Dang!
- device-qcom-msm8953: add quiet and loglevel (!5792). Thanks Barnabás!
Device specific changes
- The generic MSM8953 port and xiaomi-elish have been moved to the community category (!5800, !5832). Thanks Barnabás and Jianhua!
- soc-qcom-sdm845: update ucm conf to fix poco f1 mic during calls (!5860). Thanks Frank!
- Pixel 3 (blueline): fix unl0kr (the full disk encryption password program) (!5772). Thanks Victoria!
- Lenovo P2 now has the GPU firmware and panel driver (!5756). Thanks Raihan!
- samsung-logands: add initfs_extra (!5850). Thanks Iuri!
- The Samsung Galaxy Tab 2 uses the minimal initramfs now (!5845). Thanks Mighty!
- device-qemu-*: move X11 config file from /etc to /usr (!5809). Thanks Jakko!
- samsung-{fortunaltezt,j3ltetw}: maintain devices (!5851). Thanks Lin!
- device-nokia-n900: various fixes (!5868). Thanks sicelo!
- MSM8916 and MSM8953: revert to msdos partition table for now, as the current version of lk2nd supports GPT only for the eMMC, while subpartitions and SD cards must be partitioned with MBR. (!5813, !5818). The solidrun-cubox and amlogic devices were switched to msdos as well because of legacy u-boot versions the solid-cubox need, and boot ROM limitations on amlogic devices (!5788, !5883). Thanks Minecrell, Rob, Barnabás, Ferass!
- samsung-fortuna: merge devices from fortuna3g, gprimeltecan and grandprimelte and maintain (!5826). Thanks Raymond!
- firmware-qcom-adreno: upgrade to 20241110, add gen70500 (!5882). Thanks Jianhua!
Misc code changes
These don't fit the categories above, but that doesn't make them less important:
iio-sensor-proxy has been patched to use polling for reduced power usage (!5853). Thanks Alistair and Jonas!
The initramfs has received various fixes for booting (!5764, !5812) as well as missing USB gadget modules and running mdev/udev before setting up USB (!5795, !5852). Thanks Aster, Minecrell, Clayton!
Increase the default vm.max_map_count to fix issues with games on proton and steam failing to launch (!5782). Thanks Anjan!
Packaging has been adjusted to not install
doas-sudo-shimwith aninstall_ifrule anymore, as this had lead to a conflict duringpmbootstrap install. Insteaddoas-sudo-shimgets installed via the_pmb_recommendsmechanism now. For postmarketOS edge users this means thesudoshim will be uninstalled when upgrading postmarketOS edge, rundoas apk add doas-sudo-shimto get it back (!5867, edge post). Thanks Oliver!postmarketos-mkinitfshas received a fix for usr-merge (!58) and inline-comments in deviceinfo (!57). Thanks Aster, Minecrell, Clayton!build.postmarketos.org: trailblazer images are now built daily (!115), images for xiaomi-elish have been added (!117) and msm8953 xiaomis were replaced with the generic package (!118). Thanks Casey, Jianhua, Barnabás!
apkbrowser has been adjusted to the move to gitlab.postmarketos.org (!6). Thanks Raymond!
Various smaller fixes and improvements (!5779, !5786, !5787, !5834, !5833, !5766, !5828, !5811, !5862, !5877, !5807, !5876, !5875, !5863, !5878, !5885, !5886, !5841). Thanks ArenM, Anri, Willow, Anjan Barnabás, Casey, dabao1955, Achill, Daniel L., methanal, Oliver!
Documentation
Automatically generated documentation has been added for bpo (!105/imported). Thanks Rob, Luca!
The search function has been fixed for all documentation websites (!116, !2500). Thanks Rob!
Several new pages for pmbootstrap docs have been written (!2469), and environment variables have been documentd (!2506). Thanks magdesign, Oliver!
mrhlpr documentation has been extended as well (!58). Thanks magdesign!
Artwork and homepage
The Code of Conduct page now has a note about who is on the CoC team and therefore receives the related mails, and it lists the changes from our CoC to the template of the excellent Contributor Covenant 2.1 (!331, !333). Thanks Oliver!
A new script for quickly writing edge blog posts has been added (!328). Thanks Clayton!
Selecting text now has a fancy green color. You should totally try this out right now, right here on this very website (!317). Thanks Achill!
A new wallpaper Sward has been made by our amazing recurring artwork contributor (!55). Thanks dikasp!
Various smaller improvements and fixes (!330, !339, !338, !337, !334). Thanks Barnabás, Duje, Rob, Oliver!
Misc
Pablo and Casey got interviewed by Richard L. at the Sustain Podcast. We did a remix of the episode with some discussion feat. Oliver at the start and end and put it into our feed as well!
Austrian newspaper Der Standard wrote an article about postmarketOS: Der Traum von Linux am Smartphone
And what's next?
Alpine Linux 3.21.0 is out! Of course this means that we have been working hard on the upcoming postmarketOS release based on it, v24.12. Consider joining the testing team and postmarketos-testing room (matrix) or
#postmarketos-release-partyin IRC (OFTC) to get a chance to test it first and to help with getting bugs fixed in the upcoming testing phase!Events: 38C3 is around the corner (there will be a Linux On Mobile assembly with folks from postmarketOS and our friends from Mobian and other distros!), and next year in February FOSDEM and OSC Tokyo/Spring are happening! Check /events for more info.
Another, even closer upcoming event is a permacomputing workshop called "POST:COM:POST Regenerating rotting devices" in Berlin next weekend, with a focus on helping folks to install postmarketOS on their old devices. Details here. For this one the number of participants is limited to 15, so if you plan to go then make sure to send a mail.
Help wanted
The
gnome-software-plugin-apkproject is looking for new contributors who value a working graphical GNOME Software frontend for apk, as the plugin has become unreliable with newer versions of GNOME Software. For Alpine 3.21 and the upcoming postmarketOS release, it was decided to stay at GNOME Software 45 as workaround. If you are interested, read #16637 for more information.Is somebody interested in pushing forward the work to optionally have flatpaks pre-installed? Get in touch with us here!
You can send us topics to include in the next blog post by commenting in #191. The next blog post will be out in January of 2025 due to the upcoming release.
If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
