postmarketOS // real Linux distribution for phones
postmarketos.org.web.brid.gy
postmarketOS // real Linux distribution for phones
@postmarketos.org.web.brid.gy
Aiming for a 10 year life-cycle for smartphones

[bridged from https://postmarketos.org/ on the web: https://fed.brid.gy/web/postmarketos.org ]
postmarketOS in 2024-09: systemd, PCB, talks, non-latin language fonts
This post goes out in the middle of the Boiling The Ocean hackfest currently taking place in Berlin. People are hacking on Mobile Linux, local-first ideas, GNOME app design, and everything in between. Also image-based/immutable OSes, which we want to do _optionally_ with postmarketOS (#62) to rule out a whole class of bugs that are pretty inconvenient when you are for example cycling around the world and just want to upgrade your phone OS without finding it in a broken state afterwards. Thanks to Tobias for organizing this and for the photos! Some people have been wondering about the name of the event - it is of course not about _literally_ boiling the ocean, but rather taking up impossible-seeming tasks and making them a reality. The phones on top do not only run postmarketOS, but also show postmarketOS talks from the systemd conference All Systems Go!, which also took place in Berlin a few days beforehand, as well as KDE Akademy from the beginning of the month in Würzburg. ## Organizational * In order to make postmarketOS more stable and reliable, we want to do automated testing with actual hardware. We need a PCB to do that. After a long discussion on the requirements (#63), and search for a skilled person, we are happy to announce that this is moving forward and Jonathan Bruce will implement it. We have pre-approved the expense of the design. The total cost will be of 2000EUR and billed to our Open Collective upon completion, unless there are big unexpected issues, since some iteration rounds are covered by that budget. As with everything we do, the KiCAD files will be under a Free License and published in our gitlab! Thanks to Pablo for pushing this forward, and to everybody who took part in the requirements discussions. * Federico is now a new Trusted Contributor! He has been consistently contributing to postmarketOS for years, and brings our current count of TCs to 12! * As part of some improvement in our governance processes, we have started to update meeting minutes from postmarketOS Core Contributors (former Core Team) meetings after each meeting (instead of sometimes only several months afterwards). You can now expect any decisions taken to show up there bi-weekly. If you have any issue that you believe should be raised to our attention, please open an issue in the postmarketOS repository. * Masanori has done an extraordinary amount of work improving the device categorization in the wiki by contributing more than 300 changes. Thanks a lot! ## systemd related * There's been great improvements towards having systemd in postmarketOS. We've now finalised (after a long discussion) a design of how to enable services in systemd. We've also improved our management of apk patches due to /usr merge in Alpine, and were allowed to drop some patches. There's also been a lot of work to put openrc service enablement properly into subpackages. Thanks Jane, Clayton, Caleb! * pmbootstrap v3 staging branch is now being tested in pmaports CI, and also used by build.postmarketos.org (bpo). This warranties we won't regress, gives the new branch more testing, and is a pre-requisite for systemd builds. Thanks Clayton and Oliver! * The work to implement the "/usr merge" in Alpine is moving forward at great pace, with more than 10 Merge Requests having been merged in the last month. Most of the work so far has consisted in moving libraries and files that were directly installed under `/lib` or other places in the root, but had no specific reason to be there, to the `/usr` hierarchy. Progress is being tracked through a milestone, and is open for anybody to contribute! If you want to help move it forward, grab any of the issues and start hacking on them! Thanks Pablo and Clayton for the work so far, and Natanael for all the reviews! * A lot of progress has been made in bpo building the split systemd repository (#140). Thanks, Oliver! ## Linux kernel related * Many kernels (11) received updates, including several to the last 6.11 release. Thanks to all our kernel and port contributors! * Last month, the kernel configuration was moved from pmbootstrap to pmaports repository. Now, there is also a process in place to request and apply changes that affect multiple kernels! We hope this will be a great improvement to keep consistency in features, and simplify updates in the future! Thanks Oliver and Luca! * Many new options were added to community kernels, which helped inform the new process. Thanks Luca! * Old downstream kernels that need an outdated make, can now make use of the make3.81 package. Thanks Masanori! ## pmaports + aports * GNOME 47 has been released! Among all the changes that you can read in the release notes, we can highlight that the File Chooser dialog in sandboxed or GTK4 apps is now provided by Nautilus, which is now mostly ready for mobile. Therefore, Nautilus is now installed by default instead of Portfolio (thanks Pan!). Upstream is still aware of some issues with the list view and batch renaming, so hold your bug reports some months if you can! There are also important improvements in the Calendar app, in addition to the amazing accent colors! Some updates might still be pending. You can follow the aports' tracking issue for more details. Thank you everybody making this possible, from the whole of the community upstream, to people doing packaging (mostly fossdd and Krassy) and merges in alpine! * Following the GNOME 47 update, the GNOME Software apk plugin has also been updated. As usual, we encountered some small bugs upstream, but this time it also required changes to the APK polkit service. Thanks Pablo! * Speaking of apk plugins for graphical package manager frontends: the apk plugin for Discover from Plasma has been merged upstream! Thanks, Alexey, Devin, and all the reviewers! * Along with that, people are working on adding Alpine/musl CI for the entire KDE software stack. For a bunch of repositories it has already been enabled. Thanks Bart and everybody who helped! * Most intel GPU firmware is now included in the initramfs for generic x86_64 devices. This allows to support a wider array of hardware. Thanks Clayton! * Buffyboard and unl0kr can now load the configuration from `/usr` in addition to `/etc`, allowing distributions to better comply with the FHS standard. Thanks fossdd, Johannes and Pablo! * We have 1 new device port: Samsung Galaxy Tab S5e Wi-Fi. Thanks Usia! * One more device, the Lenovo Xiaoxin Pad Pro 12.6 (Lenovo Tab P12 Pro) gained sensor support. Thanks chalkin! * Default postmarketOS installations now includes fonts for non-latin languages, without a great growth in font size. This was possible fine-tunning the fonts included, and after a lengthy discussion on the best approach to make it both flexible and resilient. It's good not all changes require that much back and forth! Thanks Masanori! * New installations now use `doas` instead of `sudo`  by default. This was complemented with further work to not have root user be asked for the password For more details on how to switch from one to the other please see the edge blog post. Thanks Aster and fossdd! * Upgrade GNOME Shell Mobile to the latest patches which includes a lot of papercut improvements. Thanks Angelo! * BTRFS installations now boot faster, after we removed the check on boot-time, that can take a very long time. Thanks Jane! * The N900 continues receiving maintenance after a keymap update broke its functionality. Thanks Sicelo! * The generic aarch64 port, named Trailblazer, now supports X1 Elite laptops. Thanks Minecrell! ## Artwork and homepage * Dikasp made an incredibly beautiful wallpaper this September. Thanks Dikasp! * The postmarketos.org website saw multiple  improvements to reduce the time to load and improve the visual consistency (check out the new footer at the bottom of this page!), and dark mode. Thanks Markus and knuxify! * A postmarketOS leaflet to hand out at events was created! It turned out beautifully and was translated from the initial English version to a Japanese version, and a German version is in progress. Thanks Masanori, Lioh, Oliver, Rob, Ranny, Jens, Markus. * Also for events, a A5 sheet to show basic info about a device presented at a booth/table !49. Thanks, Rob! * Stickers for FOSSY and OSC24TK. Thanks Ranny and Masanori! ## Event recordings * All Systems Go: systemd-ifying postmarketOS, our immutable future, and why Alpine is cooler than you thought with Caleb and Clayton * KDE Akademy: Daily driving Plasma Mobile and what's still lacking with Bart (slides, blog post) * FrOSCon: postmarketOS podcast Live with @Adrianyyy, @ollieparanoid, @1peter10, @devrtz, @calebccff, @Fellintr, @agx, @kuleszdl, @z3ntu, @erebion ## Behind the scenes Writing these blog posts is a looot of effort. Over the past months, we have established the workflow of Pablo going through all merge requests since the month before and preparing a draft based on that — a huge tasks that keeps growing with each month! Oliver then finalizes the blog post by adding an image at the top, categorizing the bullet points, writing an introduction and adding some additional bullet points, etc. This takes each of us roughly a full day (!) - we have made a lot of optimizations compared to the very long early days blog posts, such as having only one image, and using bullet points. But still, it would be fantastic (and at some point required) to optimize this further. Therefore the idea is that if you enjoy reading these blog posts, and you are either sending postmarketOS patches yourself, or follow development closely, then from now on you can send us a list of topics to include in the next blog post by commenting here! ## And what's next? * The migration to our selfhosted gitlab has been postponed to 2024-10-06 (next Sunday!), as the _direct transfer_ feature could not be enabled by gitlab.com folks in time for the previously planned date. With that being said, we have gotten a great amount of help from their team so far, and from Lance at OSUOSL. Read the details and the answer to the popular question _"Why not SourceHut/Forgejo/...?"_ in #77. * Moving on with systemd and the /usr merge. With current planning, we expect the systemd branch to be merged into pmaports master within the next 3 weeks (so after the gitlab migration, doing both in parallel would be too much). When this is done, we will be able to have the first automatic images generated! * Initial support for Google Pixel 3 is coming soon (!5514), together with speaker support that Joel recently got working! * Rob and Masanori are organizing a postmarketOS booth at Open Source Conference 2024 Tokyo/Fall (2024-10-26, Tokyo, Japan). If you are in the area, consider coming over! If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 11, 2025 at 3:15 PM
Paying for development from the donations for the first time!
As mentioned in our previous blog post, thanks to your donations we do not only have enough to pay the server bills. But we can also pay somebody to work part-time on postmarketOS from the donations, which will be a first since we moved to OpenCollective! ## Jane: systemd, musl, and upstreaming For starters we have decided to pay for upstreaming patches to improve the compatibility between musl and systemd. We have agreed to pay Jane, one of the postmarketOS Trusted Contributors to do this. For the sake of transparency, the agreement is as follows: * Jane will freelance as a student (max. 20 hours a week). * Jane will bill for work related to: * Figuring out and documenting which patches in the postmarketOS systemd repo are upstreamable, and which aren't. * Getting patches into upstreamable state, pushing PRs, discussing with maintainers, addressing the feedback, and repeat. * Learning systemd internals, code style, and whatever is needed to be able to push those patches. * If some patches have a fit in musl, preparing them, sending them to the mailing list, discussing with maintainers, addressing the feedback, and repeat. * We have set a maximum limit on expense close to the money we have saved from the beginning of the year. That is certainly flexible depending on how well this goes for both parties. * Jane will keep the community and the team updated on the work that gets done. This is the first time we go into an economic agreement, and the first time we are going to fund development. We understand there will be lots of lessons to be learned, so of these terms might change as the work gets done. ### Why fund this project and not (insert my favorite project that needs attention)? postmarketOS has very limited funds, and this is a hard decision. However, the team has identified the lack of compatibility between musl and systemd as one of the critical points to improve the future stability of postmarketOS. In addition, we believe that money is best spent on a project that would otherwise be very unlikely to be done by volunteers. We deeply appreciate everybody in our community doing volunteer work, including team members like Clayton and Pablo working full-time or part-time without more support than external grants. However, volunteer work cannot reach everywhere. While some projects provide lots of non-economic rewards to people working on them, others don't. Improving the compatibility between systemd and musl is within the second group, and thus why we believe it's important to fund it. ### Why Jane? Jane is a postmarketOS Trusted Contributor, she was the first person that managed to boot a postmarketOS device with systemd as proof-of-concept (back in June 2023), she has been contributing to the systemd work in postmarketOS, and rebased the set of Open Embedded patches on top of new releases several times. Within our project, she is certainly the most appropriate person to do this work. She is not a musl or systemd contributor, and she will have to continue learning the conventions of those communities. However, we don't think that this will be a big hurdle. We think that paying for one of our contributors who is already very familiar with postmarketOS and understands exactly what we need, to learn about those communities is a smart decision. Both short-term and long-term. _If you appreciate the work we're doing on postmarketOS, considerjoining our OpenCollective._
postmarketos.org
February 11, 2025 at 3:15 PM
v24.12: The One With Androids & Cameras, But It's Mainline Linux
_This release is geared mainly towards Linux enthusiasts. We are working hard on stability improvements and automated testing, but if you expect Android or iOS levels of polish, then this is not for you yet. Systemd is coming in the next one._ ## Introduction One thing that people have been asking us over and over is, will it be possible to use cameras with postmarketOS on Androids? While of course we all would like to see that, this is a significant challenge for postmarketOS and other Linux Mobile projects that prefer using the mainline Linux kernel and don't use the proprietary Android userspace blobs for interacting with cameras. But as you can guess from the headline, there has been a significant breakthrough: the Pixel 3A and Fairphone 5 both have front and a rear camera working now, and somebody even reported being able to record video on the FP5. One of the two rear cameras of the Pocophone F1 also works now. As you would expect, this is not on-par with Android's implementation yet and some of the media has a bit of a retro appeal at the moment. Nevertheless, this is a major achievement! Thanks to Robert, Richard, Luca, Joel, Alistair as well as the libcamera and Megapixels folks! ## Software Stack As always we target the most recent Alpine release. In case of v24.12 it is the excellent Alpine Linux 3.21. ### User Interfaces (UIs) #### Mobile UI Versions * GNOME Shell on Mobile 46-mobile.1 replaces 45_git20240610 from v24.06. Besides the rebase on Gnome Shell 46, this has several visual, keyboard and inhibit/suspend related improvements. Thanks to Jonas and all the GNOME contributors! * KDE Plasma Mobile 6.2.4 replaces version 6.0.5 from v24.06. A notable improvement is the new dialer with "17 months of bug fixing as well as small improvements all over the place". Thanks to Devin and all the KDE contributors! * Phosh 0.43.1 replaces version 0.39.0 from v24.06. Among other great improvements, Phosh now supports accent colors as you can see in the header image. Thanks to Guido and all the Phosh contributors! * Sxmo 1.17.0 replaces version 1.16.3 from v24.06. Among other things, this release has improved device support and allows using wofi as new menu with smooth scrolling and line wrapping. It has a new lockscreen called peanutbutter and a new busy audio mode. Thanks to Maarten, Willow, ArenM, Anjan and all the Sxmo contributors! #### UI Configuration * We have so many great wallpapers by dikasp that we had a hard time figuring out which one to use for this release. Somehow we managed to narrow them down to just four, and made a Mastodon poll. The winner is _Dawning_ with 98 votes, which is now the default wallpaper for all UIs! Find previous wallpapers in the wiki. Thanks dikasp! * GNOME now has the Snapshot and Weather apps installed by default (!5149). The PDF reader Evince has been replaced with the more modern and phone-adaptive Papers, and the audio player Lollypop has been replaced with Decibels (!5824). Thanks Clayton, Pablo, 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! * The apk plugin for Discover from Plasma has been merged upstream! Thanks Alexey and Devin! ### Other Notable Changes * Major initramfs changes to improve logging and the debug console as well as using udev and refining root/boot partition detection and waiting. This has some really nice features, such as holding volume up during boot to trigger a log dump. Thanks Caleb and Clayton! * PAM is now properly set up for SSH sessions. This allows e.g. running `pw-dump` properly from SSH to help with PipeWire debugging when working on cameras, and also to just run graphical applications via SSH that will then appear on your phone as you would expect. Thanks Stefan! * Default postmarketOS installations now include fonts for non-latin languages, without a great growth in font size. This was possible fine-tunning the fonts included, and after a lengthy discussion on the best approach to make it both flexible and resilient. Thanks Masanori! * Following Alpine's move of `sudo` from the `main` to the `community` repository and now recommending to use `doas` instead, we are now installing `doas` together with `doas-sudo-shim` by default in new postmarketOS installations instead of `sudo`. Through the shim, you can still type `sudo` and will now get `doas`. See the edge post for details, and also for instructions for getting `sudo` again if that is your preferred tool. Thanks Aster and Achill! * Firmware compression using ZSTD has been enabled in Alpine and in all postmarketOS kernels that use linux-firmware. This included a great amount of work in many different projects. The whole process lasted for many months, but is a good improvement for every user of linux-firmware. Thanks Stefan! ## Devices * Multiple Xiaomi devices have been merged into a Generic MSM8953 device port. Find related upgrade instructions below. Similarly, for the _testing_ device category but part of this release: Several Amlogic ports have been merged into Amlogic Generic TV Box. Thanks Barnabás and Ferass! * Speaking of generic device ports, the Generic x64 UEFI device now also supports Nouveau for NVIDIA GPUs. and includes Intel GPU firmware. Thanks Clayton! * Like in v24.06, we have included > 200 device ports from the _testing_ category in this release! One of them is the Fairphone 5 with the amazing camera enablement mentioned in the introduction. * Lots of kernel upgrades, improvements and bug fixes for all devices. Thanks to all device maintainers and contributors! ### PinePhone and Librem 5 In previous releases we used to have the device categories  _main_ , _community_ and _testing_. The PinePhone and Librem 5 were in the _main_ category, but we have decided to move them to _community_ with this release. The main reasons are that the Librem 5 did not receive much testing for v24.12, and that the PinePhone images unfortunately did not boot in edge and as v24.12 was branched for quite some time (this seems to be fixed, if it isn't for you then please reply in the issue). There are some other issues with the devices that we would like to have solved such as fast battery drain for the PinePhone, before we think these devices are ready for _main_ again. Furthermore this could be a good opportunity to set better standards for _main_ , such as requiring an automated hardware test setup that could really ensure that we don't introduce most regressions or at least notice them shortly afterwards and can fix them more easily. We highly appreciate all the work that the device maintainers and other community members have put into those devices, and we would like to see additional community members who care about these ports stepping up to improve and test these ports. If you are interested in helping out, get active in the related issues (PinePhone, Librem 5), join the #postmarketos-devel chat for coordination and consider joining the testing team. ### Community Category Thanks to all of our amazing device porters, and everybody who contributed! * ASUS MeMO Pad 7 * Arrow DragonBoard 410c * BQ Aquaris X5 * Fairphone 4 * Generic x86_64 * Google Chromebooks with x64 CPU * Google Gru Chromebooks * Google Kukui Chromebooks * Google Nexus 10 * Google Oak Chromebooks * Google Pixel 3A new * Google Trogdor Chromebooks * Google Veyron Chromebooks * Generic Qualcomm MSM8953 new * Xiaomi Mi A1 * Xiaomi Mi A2 Lite * Xiaomi Redmi 4 Prime * Xiaomi Redmi 5 Plus * Xiaomi Redmi Note 4 * Xiaomi Redmi S2/Y2 * Lenovo A6000 * Lenovo A6010 * Lenovo ThinkPad X13s * Microsoft Surface RT * Motorola Moto G4 Play * Nokia N900 * Nvidia Tegra armv7 * ODROID XU4 * OnePlus 6 * OnePlus 6T * PINE64 PinePhone * PINE64 PinePhone Pro * PINE64 Pinebook Pro * PINE64 RockPro64 * Purism Librem 5 * SHIFT6mq * Samsung Chromebook * Samsung Chromebook 2 11.6" * Samsung Galaxy A3 (2015) * Samsung Galaxy A5 (2015) * Samsung Galaxy E7 * Samsung Galaxy Grand Max * Samsung Galaxy S III (GT-I9300 and SHW-M440S) * Samsung Galaxy S4 Mini Value Edition * Samsung Galaxy Tab 2 10.1" * Samsung Galaxy Tab 2 7.0" * Samsung Galaxy Tab A 8.0 * Samsung Galaxy Tab A 9.7 * Wileyfox Swift * Xiaomi Mi Note 2 * Xiaomi Pocophone F1 * Xiaomi Redmi 2 ## Device/UI Testing And Known Issues A _huge thank you_ to device maintainers and the testing team, and people who spontaneously decided to take part in testing this new release (#3359) and fixing bugs right before finalizing it! If you would like to join the fun next time, add yourself to the Testing Team. Note that if you added yourself there previously and now have a different nickname in our new GitLab instance, then you need to update your nickname on this wiki page. While testing, several audio issues were reported. We were not able to fix all of them in time for the release, yet another reminder that we need the automated hardware testing setup mentioned earlier. If you can help with getting these resolved, join the new #postmarketos-audio chat. The following issues may not affect all users. If you are affected, then consider leaving a note in the related issue, especially if you have more information or could help with fixing. * #3232: boot.img too big (Samsung Galaxy Tab 2 10.0) * #3269: power bug due to syslogd in initramfs * #3311: pre-installed flatpak remote doesn't work * #3320: Audio issues during calls with Oneplus 6T * #3338: [qualcomm-sdm845 | oneplus-enchilada] No audio in calls - pipewire * #3341: VLC crash phosh when switching to fullscreen * #3342: VLC freeze when playing something * #3353: xiaomi-beryllium (Poco F1): Audio regression in edge compared to v24.06 * #3357: Sudden increase in battery usage after upgrading packages (oneplus-fajita) * #3361: nokia-n900: unlocking FDE graphically is broken (unlocking with terminal works) * #3367: firefox does not open (if not connected to internet on first boot) * #3370: Snapshot - Gnome camera (flatpak) permission error * #3390: openssh-server: connection doesn't close when powering off ## How To Get It ### New Installation Look at install postmarketOS and make sure to read the wiki page for your device. ### Upgrade For existing installations, see the upgrade to a newer postmarketOS release wiki article. Users of Xiaomi Mi A1, Mi A2 Lite, Redmi 4 Prime, Redmi 5 Plus, Redmi Note 4 and Redmi S2/Y2 need to follow this guide for upgrading to the new generic MSM8953 port. Recommended manual steps after upgrading: * Consider switching your installation from `sudo` to `doas`, possibly with `doas-sudo-shim` for your muscle memory (details). ## Powered by A big thanks to everybody who contributed to postmarketOS, to Alpine or to any of the numerous upstream components we use — without you this would not be possible! ❤️ We would also like to thank NLnet and NGI Zero Core for funding most of the infrastructure and maintenance work that went into this release. NLnet is funding a lot of great free software projects, including quite a few projects in the Linux Mobile world. If you would like to get your project funded, consider applying for a grant! ## And what's next? * We plan to merge systemd into edge soon, and to ship it in a stable release for the first time with the v25.06 release. * This year we started writing monthly blog posts to better highlight all the amazing things going on in our community! The next one will be out in January of 2025 (skipping December 2024 due to the v24.12 release). * Members of the postmarketOS community and wider Linux Mobile scene can be found at various upcoming events including 38C3, FOSDEM 2025 (for which the FOSS on Mobile Devices schedule just dropped) as well as the Open Source Conference 2025 Tokyo/Spring. If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 11, 2025 at 3:07 PM
Short financial update and lookahead
Since December 2023 postmarketOS has been collecting donations transparently through Open Collective. Since then, the postmarketOS team has also been working on strategies to spend the collected donations in a meaningful and sustainable way, more on that soon in a follow-up blog post. The blog post you are reading right now provides an update on where we are standing financially after 8 months of collecting donations. ## Financial status Open Collective has helped us collect donations, with transparency to the public about it. So, we have some useful graphs and information on top donations, already – visible for everyone. However, most of that information includes OpenCollective Europe fees, fees from the payment method (credit card, PayPal, bank transfer), and donations to Open Collective. Therefore, we want to provide a short update based on the raw transactions data from OpenCollective. #### Income From December 2023 to the end of July 2024 postmarketOS has received €8538 in donations. Out of those, €7623 has been deposited in our bank account. The rest (a bit less than 11%) has gone into the various fees mentioned above. We have identified that small transactions under €5 have an excessive amount of payment processing fees. In some cases, we have seen up to 45% of fees for €1 transaction. We understand this might not be clear to people donating. To avoid this, we have decided to raise the minimum donation amount to €5. This only applies to future donors. If you have a recurring donation of such an amount, we recommend you change the frequency of your donations. For example, postmarketOS will receive more money from a donation of €10 once a year, than from €1 per month, even though that should total up to €12 – due to said transaction fees. #### Expenses In the same period (December 2023 to July 2024), we have spent a bit less than €2000, more than half in the post-FOSDEM hackathon that helped us set a project direction for many months. The rest has been spent mostly on infrastructure, but also on stickers given out in conferences and some HW for development. #### Balance In total, our savings have grown in more than €5500, while also covering all the costs we had since we started collecting donations on OpenCollective. For the last 6 months, we have steadily received between €500 and €600 in recurring donations. This income outgrows our spending on infrastructure, which is our only regular spending (we currently depend on a single server, we will need more at some point) by much. This means that even in case of unplanned emergency, we could lower any other spenditure and still be able to provide a service without problems. Overall, we see ourselves in a good situation. In terms of building-an-operating-system-money it is of course not a huge pile, but enough that we feel comfortable paying our first developer to work up to 20h per week. More on that in a separate blog post soon! A huge thanks to everybody who is making this possible! ❤️ If you appreciate the transparency of our finances and the work we are doing with postmarketOS, consider joining our OpenCollective!
postmarketos.org
February 11, 2025 at 3:07 PM
postmarketOS in 2024-10: Accepted Grants, Timelines and Tokyo
For the first time postmarketOS was represented at an event in Japan thanks to Rob and Masanori who went to the Open Source Conference 2024 Tokyo/Fall! As shown in the photo above, they had a cool table with asus-grouper, asus-tf201, xiaomi-beryllium, pine64-pinephone as well as stickers and flyers in Japanese (which ran out by the end!) and English. Several visitors mentioned that they were astonished how fast the tf201 and grouper appeared in the shell - and in general they were interested in seeing devices running with (near) mainline kernels. Thanks to everybody who came by! If you are in the area and missed the event, a Spring edition is coming up in February 2025. ## Organizational ### NLnet Grants Accepted Pablo and Oliver helped members of the Linux Mobile community to apply for grants from NLnet's NGI Zero Core fund, and we are excited to announce that they have been accepted! * Biktor and Lynxis will be working on OpenIMSd, which aims to bring VoLTE (4G voice calls) to Qualcomm based phones (like the PinePhone) running Free Software Mobile Operating Systems including postmarketOS, Mobian and others. They will create a daemon which runs in parallel to ModemManager, which configures the baseband via QMI and brings up all the required services to be able to place VoLTE calls. * Danny will be able to improve mobile-config-firefox and replace hacks we currently carry there to make the desktop version of Firefox work on mobile, with proper solutions in upstream Firefox. See Enhancing Firefox for Linux on Mobile for details. Milestones have been created and will be filled with related issues and merge requests. ### Trusted Contributors * Aster is a new Trusted Contributor! They have been contributing to postmarketOS a lot over the past months, especially the Lomiri packaging, systemd support and design ideas for optionally immutable postmarketOS. * Bryant stepped down as TC, and we thank him for the great improvements he has made to the project in the short time as TC: a lot of help with organizing ourselves better, reworking the homepage navigation and adding team pages (which also resulted in the amazing redesign!), work on mainlining the Galaxy Tab 4 family of devices and writing blog posts. ### GitLab Migration * We have migrated from gitlab.com to our own instance at gitlab.postmarketos.org, see this separate post for details: Why and how we migrated from gitlab.com to gitlab.postmarketos.org * The migration was followed by a lot of clean up work, and for the most part the new instance is functional. Sometimes cross compilation CI jobs are failing (#3275), we are working on it. ### systemd timeline In last month's And what's next? section it seemed feasible that we could merge the systemd branch into edge in October. However the GitLab migration and related clean up tasks took longer than expected, and so we were not able to work on systemd blockers like #140 as much. In a recent team meeting we had to decide whether to include systemd in the upcoming v24.12 release or not (so we have enough time for testing and follow-up bug fixing). As we talked through it, we realized that we would likely burn ourselves out by attempting to have it in v24.12. It was not easy, but we decided on the new plan to merge it into edge _after_ v24.12 is out and to ship it in a stable release for the first time with v25.06. ## pmbootstrap * Work on the upcoming pmbootstrap v3 has been going on for several months now. It is reliable enough that we can use it pretty much everywhere in our own infrastructure (edge jobs for CI, building packages and images, monitoring, etc.) We slimmed down the related milestone to the critical path of what is really needed to make the release and plan to have it done before v24.12. * Stefan joined Oliver and Caleb in maintaining pmbootstrap. Stefan also made a lot of improvements to the code base, mostly to get v3 ready for release and to improve typing (!2411/imported, !2415/imported, !2419/imported, !2421/imported, !2428, !2424, !2432, !2425, !2431, !2441, !2434, !2450, !2442, !2464, !2466). Thanks Stefan! * SHA1 RSA signatures are considered insecure nowadays, for that reason they have been disabled in Fedora 41. Bart adjusted apk-tools in Alpine to also have a SHA256 RSA signature and Clayton made pmbootstrap to use this signature (!2417/imported, !2465). This fix has been backported to pmbootstrap 2.3.3, so it works on Fedora 41. Thanks Clayton, Bart! * In order to be able to set PipeWire/PulseAudio as default per UI (which makes sense in a transitional phase until all UIs can use PipeWire) and similar use cases, pmbootstrap can now use a custom `_pmb_default` key from APKBUILDs (!2301/imported). Thanks Aster, Clayton! * pmbootstrap now uses gitlab.postmarketos.org for new pmaports.git clones and can migrate users from the previous (archived) gitlab.com URL to the new URL in their already checked out pmaports. This has been backported to 2.3.2. (!2427, !2443, !2445, !2447, !2429, !2460). Thanks Luca, Stefan, Caleb, Oliver! * "pmbootstrap install" now uses GPT (GUID Partition Table, not the AI thing) instead of MBR by default and implements the Discoverable Partitions Specification (!2426, !5707). Thanks Aster, sicelo! * The CI jobs for generating pmbootstrap docs can now run in pmbootstrap's chroots. This is useful so users running this CI script locally don't need to install sphinx dependencies on the host system (!2413/imported). Thanks Luca! * Lots of additional automated testing via integration tests (!2444, !2453). Thanks Clayton, Caleb! * Fixes for making sure pmbootstrap works with Python >= 3.10 as well as running our CI tests against both 3.10 and 3.12 (!2455, !2471). Thanks Caleb! * pmbootstrap was still running apk through QEMU in some cases, the related code has been reworked so this is no longer the case (!2463). Thanks Caleb! * Lots of smaller fixes and improvements (!2416/imported, !2423/imported, !2433, !2412/imported, !2439, !2438, !2446, !2440, !2346/imported, !2449, !2448, !2454, !2451, !2456, !2457, !2458, !2461, !2459, !2462, !2470). Thanks Luca, Caleb, Clayton, Alexey, Oliver, Jane, Vikram! ## pmaports + aports * User interfaces: GNOME was upgraded to 47.1, Phosh was upgraded to 0.42.1, KDE Plasma was upgraded to 6.2.2. Thanks Achill, Stefan, Bart, Robert, Patrycja! * Lots of kernel packaging patches, mostly upgrades to 6.11 (!5399/imported, !5557/imported, !5640/imported, !5608/imported, !5624/imported, !5669/imported, !5611/imported, !5672/imported, !5486/imported, !5602/imported, !5686/imported, !5731, !5741, !5753, !5705, !5702, !5709, !5690, !5725, !5716, !5745). Thanks Clayton, Stefan, Jianhua, Barnabás, Arnav, Adam, Duje, Caleb, Luca, Joel, Andreas, Alexey, Richard, Mighty! * New devices: Google Pixel 3 (!5514/imported), a generic (!!) qcom-msm8953 device (!5692), Sony Xperia Z Ultra (!5739). Thanks Petr, Caleb, Barnabás, Kevin! * A bunch of work went into making libcamera work on ex-Android devices (!5615/imported, !5623/imported, !5626/imported, !5628/imported, !5644/imported, !5710). One notable result is Pixel 3A rear camera enablement! Thanks Robert, Alistair, Clayton! * Initramfs improvements to be able to drop the minimal initramfs and making initramfs-extra opt-in (!5636/imported, !5621/imported, !5751). Thanks Caleb, Luca, Clayton! * Trailblazer now has support for PINE64 PinePhone (!5703). Thanks ArenM! * With latest libadwaita, adaptive windows and dialogs in upstream GTK 4 are finally a reality! Therefore it was possible to finally drop our GTK 4 fork (!5622/imported). Thanks Pablo! * A new postmarketos-dev package has been added to install bash and coreutils by default. We plan to provide -dev variants of some postmarketOS images for some devices for use by the Linux Mobile developer community, and in the meantime this can be used to conveniently add development tools when building your own image (!5180/imported). Thanks Caleb, Clayton! * lk2nd: upgrade to 19.0 and related patches (!5682/imported, !5691, !5750). Thanks Barnabás, kouta-kun! * The router linksys-jamaica has gotten (close to) mainline support (!5649/imported). Thanks ΞЖKƆ/QVH! * samsungipcd has been upgrade to v0.3.0, which adds a PPP bypass, so that traffic can flow through the native interface (rmnet0) directly, and not via the emulated PPP (!5698). Thanks Sergey! * Enable flathub by default (!5726), if flatpak is installed. Thanks Clayton! * If you ever came across the error "crossdirect: can't handle LD_PRELOAD": why this happens has been researched and the error message has been improved to be a lot more helpful (!5744). Thanks Oliver! * dtbloader: upgrade to 1.2.2, adding 3 new devices (!5737). Thanks Nikita! * Initial SoC paackges for common configs of msm8226/msm8974 devices have been added in (!5732). Thanks Barnabás! * The boot partition of google-x64cros devices was increased to 32 mb (!5730, edge post) Thanks Aster! * Lots of patches related to systemd (!5631/imported, !5629/imported, !5592/imported, !5597/imported, !5635/imported, !5647/imported, !5651/imported, !5652/imported, !5560/imported, !5661/imported, !5576/imported, !5630/imported, !5685/imported, !5734). Thanks Jane, Bart, Caleb, Bart, Aster, Clayton, Pablo, Andrei! * Lots of smaller fixes and improvements (!5625/imported, !5627/imported, !5634/imported, !5610/imported, !5639/imported, !5632/imported, !5653/imported, !5637/imported, !5663/imported, !5678/imported, !5679/imported, !5638/imported, !5642/imported, !5654/imported, !5687/imported, !5643/imported, !5633/imported, !5696, !5695, !5699, !5700, !5720, !5721, !5718, !5715, !5722, !5724, !5728, !5714, !5727, !5712, !5735, !5740, !5742, !5743). Thanks Minecrell, Jakko, Clayton, Pablo, Sergey, Caleb, Masanori, Bart, Jens, Alistair, Luca, Oliver! ## mobile-config-firefox * Years ago, by popular demand the navigation bar in mobile-config-firefox was moved to the bottom. However, after it was done we also got requests of making it configurable so people who prefer it differently can choose. This is now possible through an about:config option (!56). Thanks Peter! * Declare touch density (!57) and add an option (via about:config as above) to give more place to tabs (!58). Both merge requests were opened by Peter and are based on an earlier MR from Cédric who started to upstream these patches from Droidian into mobile-config-firefox. Thank you both! * Get some more space in the address bar by removing the `->` arrow (you can just press return on your on-screen keyboard instead, !55). Thanks Peter! * Fix: let clients detect touch screen (!54/imported). Thanks Seth! ## mrhlpr and mrtest * mrtest/add_packages.py: add explanation why there might be no artifacts (!49/imported). Thanks Rob! * mrtest: Add support for using an MR as a repo when upgrading (!50/imported). Thanks Stefan! * CI: Build native libraries for mrhlpr and mrtest via mypyc (sort of as test ground for also doing this with pmbootstrap later on) (!53) Thanks Stefan! * Various small improvements and fixes (!52, !46/imported, !55, !56, !54). Thanks Stefan, Rob, Zach, Pablo! ## Misc * xfce4-phone: simplify display power behavior (!11/imported) and fix values to disable brightness reduction (!12/imported). Thanks Jakko! * images: trailblazer: build gnome instead of gnome-mobile (!112/imported). Thanks Caleb! * BuffyBox has seen various small improvements (!28/imported, !29/imported, !30/imported, !31/imported, !34). Thanks Johannes, Pablo, Colin, Владимир! * postmarketos-mkinitfs: allow including initramfs-extra files in the initramfs (!48/imported). and add compile-time flag to disable Go GC (!56/imported). Thanks Clayton! * bpo_failed_to_queued: add arguments for packages/images/bootstraps (!111/imported). Thanks Luca! * Upstream-compatibility tests have been updated to work with pmbootstrap v3 (!14). Thanks Luca! * openrc-settingsd: Implement Slackware specific information for rc.ntpd (!13). Thanks Nathaniel! * Changes related to gitlab.com -> gitlab.postmarketos.org move (!113, !314, !319, !73, !9, !13, !51). Thanks Luca, Oliver, Arnav, Connor! * Various fixes and improvements in other repositories (!8/imported, !10, !13, !4/imported, !5/imported, !3/imported) Thanks Stefan, Clayton, Oliver, Clayton, Jakko, Rob! ## And what's next? * Since the Mozilla Location Service has been shutdown, we are discussing what other service to use instead for geoclue (#82), with the goal to enable one soon. * SeaGL is coming up, 2024-11-08 to 09 in Seattle, US. Anjan will do an Introduction to postmarketOS talk there, and Clayton will be there as well. Consider stopping by if you are in the area! * The FOSS on mobile devices devroom is back for another round at FOSDEM 2025! If you have a great idea for a talk, we want to hear from you - have a look at the Call for Proposals! ## Help wanted * Edge images for `google-nyan-big` and `google-nyan-blaze` have been disabled, as the depthcharge images have become too big and nobody was able to look into it. If you have one of these devices and are interested in tweaking compression or coming up with another fix, it would be highly appreciated! (#3186) * Our wiki still has many pages that link to the legacy repositories at gitlab.com/postmarketOS, including people's user pages. If somebody wants to help out with fixing these, please do! * You can send us topics to include in the next blog post by commenting in: #185 * If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 11, 2025 at 3:06 PM
postmarketOS in 2024-08: Pixel 3A with Camera, Self-hosted GitLab, Events
As always it is amazing to meet up in person. The photo above was taken at FrOSCon last weekend, where postmarketOS folks took part in the FOSS on Mobile stand and devroom of the same name. A few weeks earlier something similar happened at FOSSY and at GUADEC. Shout out to everybody who was there, these events were just filled with great conversations, hacking sessions and making new friendships! ## Organizational * After looking for a new home for the postmarketOS source code for a long time, we are happy to announce that we will move to a self-hosted GitLab instance! The migration is scheduled for **Sunday, 2024-09-15**. Read all about it in #77. * Related to our self-hosted GitLab: Caleb has some ideas for possibly moving device and/or SoC communities that are currently hosted on gitlab.com or github.com over to our shiny new instance to make it easier to collaborate across communities. If you have feedback, please reply in #78. _"I'd like to get feedback from the team about this, as well as from device/SoC community maintainers, is this something you'd be interested in?"_ * The postmarketOS Core Contributors are now meeting bi-weekly on a fixed schedule (instead of monthly and having a date poll each time). This has improved our workflow, and we hope to be able to make decisions faster. If you have any idea or concern that you believe should be discussed, please open an issue in the postmarketos repository. * We are paying for development from OpenCollective donations for the first time! See our separate blog post for more information. ## What's new? * We have 7 new device ports: F(x)tec Pro1X (qx1050), Samsung Galaxy Tab A 7.0 (2016), Lenovo Xiaoxin Pad Pro 12.6, Amazon Kindle Fire HD 7" (2nd Generation), Xiaomi Mi A2, Lenovo Yoga C630, and Xiaomi Mi 9T Pro / Redmi K20 Pro . Thanks to all our device porters! * The Google Pixel 3a has been promoted to community! The device features one of the most extensive hardware enablement from all modern Qualcomm devices, especially regarding camera, so the community category is right fit for it. Images are now being built for edge on all main UIs. Thanks Robert and Richard! * For the PinePhone, callaudiod (the daemon taking care of switching between call and regular audio profiles) has been replaced with a custom version. The replacement implements the same D-Bus API, but works with the new audio profiles generated by PulseAudio v17 and PipeWire v1.2. This was done after careful consideration through many discussions. Thanks Arnav for implementing this and for maintaining the PinePhone! (!5349) * Many kernels (14) received updates, including several to the last 6.10 release. Thanks to all our kernel and port contributors! * SDM845 devices with good audio support have been ported to use the new Wireplumber config format. Thanks Richard! * Booting on many Samsung testing devices has been fixed after big initramfs changes. Thanks Henrik! * Samsung devices with touch keys no longer wake up the screen on touch. Thanks Raymond! * There is now generic device support for MSM8909 and similar ARMv7 chips. Together with lk2nd support and extlinux, it allows to reduce the number of builds. Thanks Raymond! * boot-deploy 0.17 and 0.18 have been released and integrated with several new features and bug fixes. Thanks Clayton and all boot-deploy contributors! * Firmware compression using ZSTD has been enabled in Alpine and in all postmarketOS kernels that use linux-firmware. This included a great amount of work in many different projects. The whole process lasted for many months, but is a good improvement for every user of linux-firmware. Thanks Stefan! * The generic x86_64 device now also supports Nouveau for NVIDIA GPUs. Thanks Clayton! * The libcamera stack has continued receiving improvements in the form of forward-porting patches and enabling configs. Thanks Robert and Alistair! * GNOME Mobile UI has been upgraded to the latest version 46.0. Thanks Jane! * The postmarketos.org website saw fixes for multiple paper cuts and small fixes after the rework last month. Thanks Markus! * Our amazing recurring artwork contributor Dikasp continued making amazing artwork in August! Thanks Dikasp! * PAM is now properly set up for SSH sessions. This allows e.g. running `pw-dump` properly from SSH to help with PipeWire debugging when working on cameras, and also to just run graphical applications via SSH that will then appear on your phone as you would expect. Thanks, Newbyte! (!5483) * The proof of concept of VoLTE (4G calls) for SDM845 based devices is now packaged. At the same time, the grant regarding VoLTE that we helped two community members to apply to is moving forward, though not yet approved. We hope to be able to share good news at some point! Thanks Alistair and Richard! ## Misc * Rob spent quite some time going through all issues and closing those that seemed inactive or no longer relevant. As with any triaging work, there is always the chance of some small mistakes. If you identify that any of the closed issues are still important and should remain open, feel free to comment on them or re-open them yourself. Keeping the list of issues relevant greatly helps the community and the maintainers work together efficiently. Thanks, Rob! * Many small fixes and improvements for pmbootstrap v3, thanks to everybody who contributed! * build.postmarketos.org has seen some more work towards building the split systemd repository (#140). Thanks, Oliver! * If you are curious about the story behind GNOME Shell on Mobile: we talked to main developer Jonas in the last episode of the podcast about its origin, how it relates to Phosh, running SailfishOS Aliendalvik on other Linux Mobile distros and how he found an important security vulnerability in Apple's AirPods. ## And what's next? * Rob and Masanori are organizing a postmarketOS booth at Open Source Conference 2024 Tokyo/Fall (2024-10-26, Tokyo, Japan). If you are in the area, consider coming over! If you feel like you can't keep track of all the postmarketOS related events, we now have a separate events page to help you out. It has a little FAQ section covering _"Can I represent postmarketOS at an event?"_ in case you were thinking about doing that at some point. * After some fruitful discussions with Alpine developers, the TSC gave green light to implementing "/usr merge" in Alpine. The work has already started and we are excited that everyone will be able to benefit from this work — it won't be just a downstream hack in postmarketOS as it is currently the case! * Camera work is proceeding at great pace, and seems like more Android devices will have working cameras soon! If you appreciate the work we're doing on postmarketOS, and want to support us, consider joining our OpenCollective.
postmarketos.org
February 11, 2025 at 3:07 PM
Why and how we migrated from gitlab.com to gitlab.postmarketos.org
We have successfully migrated from gitlab.com to a self-hosted instance at gitlab.postmarketos.org! This was quite the journey, so here is a blog post looking back at the reasons, what went well and what didn't, and some lessons learned that might be useful for other free software projects considering a similar move. _The reasoning section of this blog post is based on what we wrote earlier in#77._ Special thanks to OSUOSL for hosting this GitLab instance. It has been a pleasure working with them every step of the way! ## Reasoning ### Why move away from gitlab.com? We are very grateful to the gitlab.com folks for hosting postmarketOS since 2018. They even gave us the "free premium features for cool open source projects" thing. However the main reason we wanted to move away from gitlab.com was that the requirements for signing up and using the site have changed dramatically over the last years. While in 2018 when we migrated over to gitlab.com, there were no problems accessing the website and git repositories over for example Tor or setting up an account without giving any meaningful personal data. Nowadays, **users of gitlab.com are required to provide a valid phone number and credit card information** when setting up an account. Also the website is protected by Cloudflare, blocking lots of proxies and sometimes even making the site hard to use for users with their real IP — event those who set an account up years ago and have been active since. It is very understandable that gitlab.com needs to take measures to avoid spam attacks and prevent misuse of their incredibly useful resources. But that doesn't change the fact that we've likely lost out on potential contributors due to these policies. Over and over again we heard from people who would have loved to contribute to postmarketOS, but have no interest to do so because gitlab.com requires too much of their personal information. We highly appreciate that an Open Source Program Manager from GitLab reached out and asked us for our concerns. So far the situation has not really changed, but he confirmed that we are not the only community to face these challenges with GitLab, and he tried to make his team aware of these problems. ### Who is maintaining the instance? The new gitlab.postmarketos.org instance is maintained by OSUOSL, the Oregon State University Open Source Lab. They already provided various machines and services to free and open source projects, including Alpine Linux, Chimera Linux, Gentoo, GNOME, KDE, Kodi, OpenBSD just to pick a few from this huge list. Clayton talked to them at the FOSSY conference and they offered to host our GitLab instance too, and provide us with GitLab runners for x86_64 and aarch64 as well. We have decided that we will make a one time donation to them (TBD). You will be able to see it on our Open Collective page just like all our other spendings. The benefit for us is that we have mostly the same code forge we have been using for years (we already tried to avoid using features that are not available in the self-hosted version of GitLab), but without the aforementioned GitLab.com-specific problems and without the need to invest time into maintaining the instance ourselves — time we would much rather spend on moving postmarketOS forward. ### Why not SourceHut/Forgejo/...? We think both SourceHut and Forgejo are amazing projects and if you are considering a move for your project, you should definitively take a closer look at them! They just weren't the right fit for us at this moment and we wanted to get it done. SourceHut: we evaluated it as code forge for some time with pmbootstrap.git, but then moved it back. See the related announcement for details. postmarketOS has been using SourceHut Builds to build its binary packages and images since end of 2019 and this works great, we don't have plans to change that. Forgejo: This is the Gitea fork that Codeberg uses. It is close to our requirements, but when we checked there were some details that held us back like not being able to have open discussions block merge requests / PRs. It would probably be a good fit if we invested more time and set up our own CI runners. But at this point we have been looking for an alternative to gitlab.com for two years already. We are happy that we have a solution with an easy path forward where we don't need to spend too much energy (that again we can't spend on improving postmarketOS). ## Preparation ### Announcement OSUOSL was quick with preparing a GitLab instance for us. We configured DNS to to point `gitlab.postmarketos.org` to it. Then on 2024-08-25 we created our announcement #77 with: * An initial target date for the migration (2024-09-15, which changed later). * Our reasoning (pretty much the text above). * A TODO list of tasks that we would expand as we go along. We also announced it in the monthly blog post on the same day. ### Test imports After making some obvious changes such as uploading our logo, it was time to do a full test import. How long would it take to migrate our postmarketOS group? 30 minutes? Two hours? But first we found that there are actually two ways to import groups and projects. #### File export vs. direct transfer File export: * You have to click "export" on gitlab.com and "import" on your instance for each and every project. We have over 80 projects, so this would be a lot of work. * Preserving user contributions is said to be working if users with the same email address already exist in the target GitLab instance, and if they have configured a public email. * The docs page says "Migrating groups and projects by using direct transfer is recommended." Direct Transfer: * With this we could just import the whole postmarketOS group at once, with all its projects. * This feature is disabled since July 11, 2024. * It seemed like preserving user contributions would work: "If you migrate from GitLab.com to self-managed GitLab, an administrator can create users on the self-managed GitLab instance." So this was not great, and the related documentation is hard to read. Only after reading it several times, it now clear that "preserving user contributions" might have worked if users had set a public email and a user with the same address had already existed in the self-hosted instance. Most users of course don't have a public email configured and we don't want to ask people to do this just for this migration. #### Trying "file export" We tested "File export" for our biggest projects pmbootstrap and pmaports. pmbootstrap: * ~15 min export time * ~300 MiB export size * ~2 hour import time pmaports: * ~1 hour export time * ~2 GiB export size * (>2 hour import time, hard to say how long exactly because we didn't get an email when it was done) #### Administrator, Administrator and Administrator reacted with 👍 Afterwards we were quite disappointed that "preserving user contributions" did not work as we expected. Instead of having the original usernames in issues and merge requests, comments, etc., all of them were replaced with the user that did the import. We did not set our emails to public, and looking back at it this might have made it work — but then again asking all of our users to set their email address to public to have everything imported correctly isn't practical. As the direct transfer migration said that "an administrator can create users on the self-managed GitLab instance", we thought that this would be fixed if only we could use the direct transfer method. We decided to reach out to GitLab via the email address that was edited into the top post of the _Direct Transfer status, dead for too long_ issue. We were told to open an issue on https://about.gitlab.com/support and proceeded to do that. It was a bit awkward, because we had to fill an "emergency support request" as the premium for open source tier doesn't include any support. However the support people were nice and after some days of back and forth and waiting for other people at GitLab to make decisions, they asked for a gitlab.com account name and enabled the direct transfer feature for that account. Meanwhile we announced that the migration would be done about a month later (later settling on the date 2024-10-06). We would either get it working with "direct transfer" until then, or just use the "file export" method with much more manual effort. #### Trying "direct transfer" Importing all postmarketOS projects took about 18 hours. It mostly worked, there were some errors regarding the pastebin-like feature that we don't use anyway and a custom emoji that could not be imported. But nothing important had failed. However the "preserving user contributions" did not work with this method here either, even though we did the direct transfer as administrator and at least one account did already exist in the selfhosted gitlab instance with the same email address and username! In hindsight, it might again have worked if we set the emails to public, but this isn't even mentioned in the "direct transfer" documentation. We decided to go ahead without "preserving user contributions". At least the direct transfer allowed us to not manually export and import each and every project. To be fair: from privacy perspective it makes a lot of sense that you cannot just export email addresses from all users that ever contributed / commented in your project without their consent. And just a few days after our migration we got an email (apparently along with everybody else who had "direct transfer" enabled at that time) stating that GitLab is working on an improved solution for user contribution and membership mapping that doesn't rely on emails. So hopefully this will be solved for other projects who want to migrate in the future at some point. ## Migration day The incredible support folks from OSUOSL helped us ensure that OAuth worked properly, among other things. And then the migration day came. Given that the test transfer took 18 hours, we started the migration at midnight. We gave a heads-up a few hours before on status.postmarketos.org, and shared that via IRC/matrix and Mastodon. Then we did the following: * Started the direct transfer. * Archived all our repositories on gitlab.com, so they don't change during or after the migration. * Went to sleep since the migration would take a lot of time again. * Around 18 hours after the import started, it was still ongoing so we posted an update to the status page with next steps and estimation that it may take a few more hours. ### Timeout during merge request transfer The import went the same as the test transfer … except the merge requests of pmaports, just this one repository, went into a timeout for several hundred merge requests. This was unfortunate, but at that point it would be unreasonable to start the transfer again and _hope_ that everything gets imported this time. So now some of the merge requests are not fully transferred. However, the more important part is that all issues of all projects are imported. It seems that the merge requests with timeout were not closed correctly, so now we had several hundred merge requests too many open. In addition to a lot of merge requests that should still be open, but were not usable for the most part since they were not owned by the users who originally submitted them any more. So they could not edit them and would need to submit new merge requests anyway, unless the authors happened to have push rights for the repository. We decided to just close all open merge requests with a quick and dirty shell script: #!/bin/sh TOKEN="glpat-PUT-TOKEN-HERE" while true; do curl \ --header "PRIVATE-TOKEN: $TOKEN" \ "https://yourgitlabinstance/api/v4/merge_requests?scope=all&state=opened" > open2.txt PROJECTS="$(cat open2.txt| jq '.[].project_id' | sort -u)" echo "PROJECTS: $PROJECTS" if [ -z "$PROJECTS" ]; then echo "DONE!" exit 0 fi for project in $PROJECTS; do OPEN_MRS="$(cat open2.txt| jq ".[] | select(.project_id == $project) | .iid")" echo "OPEN_MRS in $project: $OPEN_MRS" if [ -z "$OPEN_MRS" ]; then echo "DONE!" exit 0 fi for i in $OPEN_MRS; do echo ":: $i" curl \ --request PUT \ --header "PRIVATE-TOKEN: $TOKEN" \ "https://yourgitlabinstance/api/v4/projects/$project/merge_requests/$i?state_event=close" echo "" done done done Since then we manually re-opened a few merge requests that still are relevant and can be pushed to by the original authors (and merged most of them), but at least we don't have hundreds of irrelevant open MRs cluttering the instance. ## Finishing up Over the last week we fixed up several things, like CI not working and emails not arriving from our instance. Besides some smaller things everything seems to be working again. Let us know if something is not working for you in #77 or the postmarketos-devel chat. ## Observations / lessons learned * You can use "direct transfer" if you ask support about it. * Test the import before migration day. * "Preserving user contributions" will likely not work until this is available or unless you set email addresses to public and make sure users with the same email exist in your target instance (both untested by us!) * Use a separate account for the transfer/import such as the Administrator account or another one as users which cannot be mapped show up as this one. You don't want this to be the account of another person in the project. * We could have done a better job at making sure most of our CI scripts work with the new instance, fixing them up took quite some time afterwards. * Admin mode is great. * Avoid features that are not available in the free version of self-hosted GitLab, such as epics if you plan to migrate at some point. We mostly tried to do this, but had some epics and migrating them was a lot of manual effort. Thanks to Oliver, Clayton, Luca, Stefan, Aster, for doing migration related tasks, and to Lance from OSUOSL for the amazing support, as well as everybody who has signed up to our new instance and started contributing to postmarketOS through it already! If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 11, 2025 at 3:05 PM
postmarketOS in 2024-11: pmbootstrap v3, RFC process and Seattle
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 --image` feature 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 status` on 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 Caleb! * CI now generates coverage and test reports (!2478), and we have a new bootimg analysis integration test (!2467, !2483). Thanks Caleb, Stefan! * The glob for configuring SSH keys to be copied to your install image with `pmbootstrap install` can 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, Caleb, 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/card0` hardcoded (!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-phosh` has 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! ## 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! * realme-x3 (!5839). Thanks Patriot! ## 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=2` instead of `console=null` to 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! * 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! * 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-shim` with an `install_if` rule anymore, as this had lead to a conflict during `pmbootstrap install`. Instead `doas-sudo-shim` gets installed via the `_pmb_recommends` mechanism now. For postmarketOS edge users this means the `sudo` shim will be uninstalled when upgrading postmarketOS edge, run `doas apk add doas-sudo-shim` to get it back (!5867, edge post). Thanks Oliver! * `postmarketos-mkinitfs` has 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 Caleb, 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, Caleb, dabao1955, Achill, Daniel, 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 Caleb 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-party` in 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-apk` project 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.
postmarketos.org
February 11, 2025 at 3:05 PM
postmarketOS in 2025-01: systemd in edge, mobile-config-thunderbird and Lomiri
One of the best ways to end the year is to visit the Chaos Communication Congress. It has everything a hacker's heart desires - from amazing talks to workshops and so much creativity and so many interesting people in one place! The 38C3 had a small Linux on Mobile assembly and meetup as well as a nice smartphone upcycling art project. Thanks to everybody who came by! ## Organizational The homepage has been updated to feature our new mission statement (!315): > postmarketOS develops free and open-source software to extend the life of consumer electronics. By empowering people to have full control of their devices, we promote a healthier and more sustainable society. This sums up our goals in just a few words and help us guide our decisions. Below that it says what we mean with _sustainability_ and _full control_ in more detail in addition to some more new text. Read it in full by clicking on Home. Thanks Clayton, Bryant, Pablo, Markus, Oliver! Besides that, we have the following organizational news: * New IRC and Matrix channels for audio debugging (#postmarketos-audio) and hacking on amlogic TV boxes and boards. Thanks Ferass, Oliver! * We have improved the process for chat moderation. If somebody joins one of our chats and starts sending spam, insulting people or misbehaves in other ways (see Code of Conduct) then it is now possible to request moderation by temporarily joining a specific room as explained on the CoC page. We are now also listing who the chat moderators are on the CoC page for more transparency. Thanks Anjan, Caleb, Clayton, Ferass, Luca, Stefan, Oliver, Pablo, Bart! * After some discussion we decided to bridge our Mastodon account over to Bluesky. We prefer the Fediverse and Mastodon as they are built on values closer to ours and are more decentralized. So the Fediverse is still our home and people following us there get a better experience as posts are not abbreviated and you can see all boosts instead of only the ones of people that have bridged their accounts as well. With that being said, if somebody is trying to follow what we do on Bluesky then they can do it from now on. Thanks Ferass, Caleb, Clayton! ## systemd merged into edge _If systemd coming to postmarketOS is_ still _news to you (for real, every time we make a blog post on this topic some people show up who apparently hear this for the first time…) then pleaseread the original blog post first!_ We are happy to report that systemd has been merged into postmarketOS edge! We went through the trouble of placing the systemd related packages in a separate package repository, so if you are currently running pmOS edge with OpenRC then you can keep using that too. Some UIs like GNOME (Mobile), Plasma (Mobile) and Phosh will definitely work better with systemd in the long run (see the original blog post) and we recommend switching for these over the next weeks. Note that as of writing our Phosh packaging still needs to be adjusted to have it start up properly (#3464) and you might need to add services manually until #2804 is done. With that said, we now have a nice timeline with more than 4 months to fix bugs and make systemd work really well on edge before the v25.06 release will be branched! Changes in detail: * The big systemd MR (!5563/imported). Thanks Jakub, Jane, Clayton, Caleb, Achill, Bart, Aster, Dylan, Oliver, Sam, Alexander, Andrei, bjorn3! * BPO has been adjusted to support building the split systemd repository (!119). Thanks Oliver! * https://pkgs.postmarketos.org now displays packages from the new systemd repository. Also filtering by repository works now with the new systemd repo (!7). Thanks Jane, Oliver! * Support systemd in postmarketos-ui-fbkeyboard (!6065). Thanks Alexey! * Various services and presets related patches (!5808, !5806, !5954, !5896, !5961, !5969, !6010, !6011, !5964, !5965, !6043, !6049, !6053, !6060, !6078, !6050). Thanks Achill, Caleb, Jane, Clayton, bjorn3, Bart, Alexey, Oliver! * Various upgrades and additions of systemd-enabled packages (!5916, !5917, !5892, !5999, !6008, !6026, !6046, !5803). Thanks Clayton, Bart, Achill, Jane! * Various fixes for -openrc and -systemd subpackages (!6015, !6042). Thanks Clayton, Oliver! * Many other systemd related fixups and improvements (!5946, !5940, !5971, !5976, !5987, !6001, !6003, !6023, !6025, !6028, !6029, !6030, !6031, !6036, !6047, !6057). Thanks Jane, bjorn3, Clayton, Rob, Clayton, Oliver! ## mobile-config-thunderbird People have been wondering for quite some time if it was feasible to create a mobile config for the amazing mail client Thunderbird, like we have it with mobile-config-firefox. Turns out: Yes, it is very possible as Dylan showed with his new mobile-config-thunderbird project! Check the README.md for screenshots showing how he adjusted the interface to work well on mobile. Find mobile-config-thunderbird in postmarketOS edge (!5968). If you are on stable, we can backport the package on demand. For now you can also install it directly from the git repository. And of course you can also use it on other Mobile Linux distributions. Thanks Dylan! ## Lomiri Aster posted this screenshot on 2024-03-20 While preparing this blog post, _breaking news_ came in that the Ubuntu Touch UI Lomiri has just been merged back to edge! Luca and Bart have started the effort around seven years ago and upstreamed a whole lot of patches along the way for making it build with Alpine. Back then it was still called Unity 8 and the postmarketOS port was able to start up at some point even though it could lock up easily and many features were missing. We had it in edge for some time, but due to the libraries and frameworks being very different from what the Ubuntu Touch team used to what we had in Alpine the build broke very often and eventually we had to move it out of the master branch into a feature branch (meaning no binary packages were built and chances were high that it didn't build successfully if you tried it yourself). ⏩ Fast-forward to 2025: the gap of library versions from Ubuntu Touch and Alpine is now much smaller, Luca upstreamed almost all Lomiri related packages to Alpine (with a lot of help from Aster) and maintains them there. Aster wrote a deviceinfo converter _"to parse postmarketOS deviceinfo files and create a Lomiri deviceinfo file out of it"_ and finally a UI package for Lomiri has been merged back into postmarketOS edge (!4496/imported)! Aster wrote: > The Lomiri UI definitely isn't fully done. I still want to finish up the migration of the logo to postmarketos-artwork and add systemd support. But in its current state it is definitely usable. > > (Still have to fix the scaling bug, but I'll have to learn C++ for that so it'll be a while.) This is bleeding edge as it can be, but if running Lomiri on postmarketOS is something that interests you then now is a very good time to try building an image and getting involved. It's probably a good idea to try QEMU first before you put it on your phone/laptop/toaster/etc. Thanks Aster, Luca, Bart! ## New device ports A whole 13 new device ports! * Apple MacBook Air M1 2020 (!5913). Thanks EDK! * Banana Pi BPI-CM4IO Baseboard with BPI-CM4 SoM (!5962). Thanks Ferass! * Banana Pi BPI-M2 Zero (!6063). Thanks User0! * Linksys WRT1900ACS/WRT1900ACS V2 (!5938). Thanks ΞЖKƆ/QVH! * Lenovo ThinkSmart View (!6061, !6041). Thanks Felix, Barnabás! * ODROID N2+ (!5950). Thanks hexaheximal! * ODROID C4 (!5949). Thanks hexaheximal! * Raspberry Pi 5 (!6006). Thanks winbo.yml! * Samsung Galaxy A51 (samsung-a51) (!5887). Thanks Hendra! * Samsung Galaxy Ace 3 LTE (!5973). Thanks User0! * Samsung Galaxy J4 (!5936). Thanks Hendra! * Samsung Galaxy SII Plus (!5861). Thanks VaporGame! * Xiaomi Pad 5 (!5804). Thanks Pan! ## pmbootstrap pmbootstrap 3.2.0 has been released. This release or newer is required for building systemd-enabled postmarketOS images, now that systemd was merged into edge. Recent changes in detail: * Improvements and fixes related to merging systemd into master (!2410/imported, !2528, !2529). Thanks Oliver, Stefan, Rob! * "pmbootstrap flasher boot" now works for fastboot-bootpart (!2508). Thanks Minecrell! * pmb.flasher.frontend: detect lk2nd as subpackage dependency (!2511). Thanks Alexandre! * Fix pmbootstrap install --android-recovery-zip (!2527). Thanks Eisenbahnfan! * A LOT of code quality improvements that will make future maintenance easier (!2490, !2513, !2519, !2518, !2516, !2517, !2525). Thanks Stefan! * Various smaller fixes and improvements (!2510, !2514, !2520, !2509, !2522, !2530, !2526). Thanks Rob, Stefan, magdesign! ## Kernel packaging We would like to especially highlight Frank's amazing work on analyzing and finding a workaround for call audio regressions that specifically broke the bottom mic on xiaomi-beryllium (Poco F1) and distorted audio on OP6 (and possibly OP6T) (!5966, !6032) as well as Caleb's work to fix audio on the OP6 (!5901). The workaround and fix have been backported to v24.12. Thanks Frank, Caleb! Another great merge request came from Jack, who has gotten the rear camera working on Martijn's Megapixels 2.0 for samsung-t0lte _"which means it should work on t03g, m0 and m3 too"_. In fact Stefan gave it a spin on an m0 and posted some photos. Furthermore Jack writes in !5888 that he almost has the front camera working. Thanks Jack, Martijn, Stefan! Changes in detail: * The linux-postmarketos-apple package was upgraded to 6.13.0-rc6 (!6007). Also the apple-iphone6 port was renamed to apple-n61 and now has a new maintainer (!5978). A photo of the new kernel running on the iPhone 6 received quite some feedback on Mastodon. Thanks Aster! * linux-postmarketos-qcom-sdm670: upgrade to v6.12.3 (!5881). Thanks Richard! * linux-postmarketos-pinephonepro: upgrade to 6.11.11 (!5855). Thanks Jan! * linux-purism-librem5: upgrade to 6.6.63 (!5898). Thanks Stefan! * linux-postmarketos-qcom-sdm845: upgrade to 6.13-rc2 (!5902). Thanks Caleb! * linux-postmarketos-allwinner: enable USB ACM module (!5922). Thanks Clayton! * linux-postmarketos-omap: make AES builtin (!5925). Thanks sicelo! * linux-postmarketos-qcom-sm6350: upgrade to 6.12.4 (!5904). Thanks Luca! * linux-postmarketos-mediatek-mt8173: upgrade to 6.12.6 (!5929). Thanks Adam! * community/linux-postmarketos-qcom-laptop: enable CRYPTO_MD4 (!5923). Thanks Anjan! * device-asus-x00td: Update kernel on update And Generate extlinux configs (!5937). Thanks ABOOTHAHIR! * kconfigcheck: enable CRYPTO_MD4 for iwd (!5943). Thanks Anjan! * linux-valve-jupiter: fix checksum for config file (!5947). Thanks Clayton! * kconfigcheck.toml: add comment explaining CONFIG_CRYPTO_MD4 (!5951). Thanks Anjan! * msm89x7: Add mainline kernel and devices (!5693). Thanks Barnabás! * device-xiaomi-surya: add kernel subpackage (!5983). Thanks Raihan! * linux-pine64-pinephonepro: fix notification LED behavior (!5991). Thanks Jan! * kconfigcheck: Add all HID config options from Fedora aarch64 kernel (!5836). Thanks Jonas! * kconfigcheck: drop some input kconfig (!5997). Thanks Clayton! * linux-pine64-pinenote: upgrade to 6.12.0 (!6016). Thanks Antoine! * msm89x7: Update kernel and add more devices (!6005). Thanks Barnabás! * Revert "device-xiaomi-surya: add kernel subpackage (MR 5983)" (!6033). Thanks Rob! * linux-postmarketos-mediatek-mt8173: upgrade to 6.12.9 (!6024). Thanks Adam! * kconfigcheck: add PPP specific section (!5992). Thanks Oliver! * linux-postmarketos-qcom-msm8226: upgrade to 6.11.11 (!5733). Thanks Luca! * linux-postmarketos-qcom-msm8953: upgrade to 6.12.0-r2 (!6041). Thanks Barnabás! * firmware-google-sargo: compress firmware loaded by kernel (!6052). Thanks Richard! * linux-postmarketos-allwinner: upgrade to 6.12.8_git20250104 (!6067). Thanks Arnav! * linux-postmarketos-qcom-laptop: upgrade to 6.13 (!5895). Thanks Clayton! * kconfigcheck.toml: add conditions for certain HID options (!6077). Thanks Rob! * linux-postmarketos-imx-ereader: fix install of 8189fs.ko (!6075). Thanks hrdl! * linux-postmarketos-qcom-sm8250: upgrade to 6.13.0 (!6079). Thanks Jianhua! * linux-postmarketos-mediatek-mt8173: upgrade to 6.13 (!6073). Thanks Adam! * linux-valve-jupiter: upgrade to 6.13 (!6082). Thanks Clayton! ## initramfs * The initramfs now always attempts to resize the rootfs during boot, instead of only doing it when we previously also resized the partition containing the rootfs. This fixes that the filesystems did not get resized if they were flashed onto existing partitions. The call to resize tools is very fast, so this trade-off is worth it (!5844). Thanks Minecrell! * Two similar implementations of setting up a USB mass storage gadget were unified. Besides code deduplication this also simplifies recovery since you can set up the USB storage for repairing a flashed pmOS install now in case of boot failures. Furthermore it is now possible to use a new `pmos.usb-storage=` kernel cmdline argument to set up the USB mass storage gadget by default when going into debug shell. This allows building a special boot image/option that directly exposes the storage for flashing, without having to type in extra debug-shell commands (!5912). Thanks Minecrell! * The initramfs now always mounts the correct rootfs instead of using a legacy fallback path in some cases. This avoids accidentally mounting the wrong rootfs based on enumeration order or timing, when you have multiple installations of pmOS attached to the system. Furthermore mounting /boot is now optional. This will make it possible to boot pmOS in "single partition mode" where there is just a root partition and no boot partition (!5920). Installs from 2022 or older need manual action as described in our edge blog post. Thanks Minecrell, Arnav! * PinePhone hardware keys were fixed in the initramfs (!5931). Thanks Clayton! * Various devices with smaller boot partitions now use `initfs_extra` (!5890, !6034, !6080, !5989, !5993). Thanks AutumnSpark1226, Cedric, knuxify, Kaloyan, Matti! * Google Chromebooks with x64 CPU can now boot from NVMe storage (!6059). Thanks Brady! ## pmaports * Xiaomi POCO M2 Pro / Redmi Note 9S / Redmi Note 9 Pro / Redmi Note 9 Pro Max / Redmi Note 10 Lite (xiaomi-miatoll) have seen some incredible improvements, _"from barely working brick (boots to framebuffer) into almost fully usable mobile phone: 3D acceleration, sensors, audio, camera, modem, wifi and bluetooth are now supported"_ (!5941). Thanks N1kroks! * The _alsa-ucm-conf-qcom-sdm670_ package has been upgraded to 1.2.9_git20241211. _"This causes Pipewire to appropriately control the VoiceMMode1 mixer and route call audio automatically."_ (!5918) Thanks Richard! * An annoying bug has been fixed in edge: syslogd kept one core busy at 100% (!6013). A MR to backport this fix to v24.12 has been made as well and will be merged soon (!6096). Thanks Caleb, Richard, Clayton! * The XFCE4 login greeter background has been fixed (!5889). Thanks Jakko! * NetworkManager has been configured in postmarketOS to detect captive portals. If your UI uses the NetworkManager API, then it can show you notifications about this from now on (and e.g. help you open a browser to bypass the portal) (!5659/imported). Thanks Clayton, Luca! * lk2nd has been upgraded to version 20.0 (!5884), packaging has been updated to also support the htc-m8 (!5919) and the motorola-falcon port has been adjusted to work with newer lk2nd versions (!5994). Thanks Barnabás, Alexandre, Stanislav! * The _u-boot-librecomputer-lafrite_ package could be removed, as the lafrite has u-boot in SPI already and because we use GPT by default now (!5897). Thanks Ferass! * The GNOME base UI package now depends on _power-profiles-provider_ instead of _power-profiles-daemon_ , so another implementation can be used for devices where the default does not work (!5820). Furthermore Showtime _"which is the main candidate to become the new GNOME default video player"_ is getting installed by default via __pmb_recommends_ now (!6038). Thanks Adam, Robert! * Androids (mostly Samsungs) using the imagis-touchscreen driver on pmOS don't wake up anymore by capacitive back/menu buttons (!5358/imported). We already had similar rules for other drivers and it is easy to add more if needed. Thanks Raymond! * A typo was fixed in our NetworkManager dispatcher script that lead to never stopping any unudhcpd processes. _"As a new instance is started each time a USB cable is connected, the number of instances kept growing until reboot."_ (!5905) Thanks Fiona! * The samsung-rossa device has been renamed from -cprime and found a new maintainer (!5865). Thanks Raymond! * Fairphone 5: an unl0kr config has been added to fix that it was invisible during boot (!5910). Thanks cosmo! * In preparation for the future switch to U-Boot for these devices, the lavender and clover devices are now configured to create extlinux configs (!5914). Thanks Alexey! * The Nokia N900 packaging has been improved to share the xdefaults file between all X11 UIs instead of only i3wm, and the lock script has been improved to work with other X11 UIs as well (!5930). Thanks sicelo! * The LXQT UI packaging now uses brightnessctl to save and restore brightness on boots (!5933). Thanks Jakko! * For the PinePhone, the modem autorecovery udev rule was dropped as it isn't needed anymore (!5935). Thanks Arnav! * The Samsung Galaxy Core Prime VE LTE now boots through U-Boot (!5952), _seven_ amlogic U-Boot packages have been merged into one (!4995/imported) and the U-Boot user script load address has been fixed for PinePhones with the Vccq mod (!5980). Thanks Duje, Ferass, Johannes K.! * Ferass noted about the amlogic U-Boot merge: _"if anyone is having issuesplease ping"_ * libcamera packaging has been upgraded to 0.4.0, dropping some upstreamed patches and adding some tuning files with black levels (!5948). Thanks Robert! * dtbloader (EFI driver that finds and installs DeviceTree into the UEFI configuration table) has been upgraded to 1.3.0, adding support for the Huawei Matebook E Go, updating gnu-efi to 3.0.19 and aligning EFI_DT_FIXUP_PROTOCOL with documentation (!5981). Thanks Nikita! * Samsung Galaxy Ace 3 LTE now has initial display support and a fix for SSH over USB (!5975). Thanks User0! * The Kobo and Tolino ebook readers were switched back from GPT to MSDOS partition tables for now to fix that they would only boot once with GPT (!5977). GPT was also disabled for the epson-embt2ws (!5982). Thanks Andreas! * The FIT image configuration for the Samsung Galaxy S9 (wiki page has a nice photo running Sxmo btw) has been adjusted to give more space for the Linux kernel (!5990). Thanks Dzmitry! * The pinenote-dbus-service for the PineNote has been upgraded to 0.2.2_pre5 and found a new maintainer. Also the modprobe rules from Debian images have been added. If you also own this device and are interested in contributing or collaborating, then consider reaching out (!6017, !6021). Thanks Antoine! * riscv64 cross compiling is now much faster (!6054). Thanks Clayton! * The Plasma base UI package installs kunifiedpush again (!6020). Thanks Bart! * The Trailblazer now has X1E Slim 7x support (!5801) and lts/stable kernels have been added (!5926). Thanks Caleb, Ferass! * Various smaller fixes and improvements (!5840, !5893, !5894, !5899, !5900, !5908, !5911, !5928, !5939, !5945, !5956, !5957, !5960, !5963, !5967, !5970, !5984, !5986, !5995, !5996, !5998, !6000, !6002, !6009, !6014, !6018, !6019, !6022, !6027, !6045, !6048, !6051, !6062). Thanks Alexey, Andras, benpicco, Clayton, Dzmitry, Achill, Achill, Luca, Oliver, Pablo, Jan, Raihan, Sergey, Willow, Szczurek, Raymond! ## Artwork and homepage * Ranny has made some incredibly cute variations of the postmarketOS logo in !53!! We will probably integrate them into the homepage at some point and make some stickers with this design. Perhaps this would make a good mascot too...🤔 Thoughts? He also made a nice OSC25 sticker (!57). Thanks Ranny! * A new wallpaper _Bokeh_ has been made by our amazing recurring artwork contributor dikasp (!58). We have used this wallpaper at the top of this blog post. Like all the other awesome wallpapers that dikasp made, it is a candidate to become the official wallpaper of a future postmarketOS release. Thanks dikasp! * The /install list can now be filtered by vendor / device name (!340). Thanks Anxo! * We have added floss.fund's funding.json manifest to the homepage, and submitted it (!345, !6074). Thanks Caleb, Oliver! * Various small fixes and improvements for the homepage (!342, !344, !343, !347, !346, !336, !353). Thanks Anjan, Ferass, Pablo, Oliver, knuxify, Luca! * Various small fixes and improvements for the artwork repo / packaging (!59). (!54). (!6084). Thanks magdesign! Thanks Aster! ## Misc * boot-deploy can now use a certificate verification exploit on OMAP HS based Kindles to chainload a patched u-boot for loading unsigned images :> (!72). Thanks Connor, TeamWin! * bootmac's udev rules have been split into separate files for wifi and bluetooth, a systemd unit file has been added as well as BT mac retry (!10). Thanks Clayton! * q6voiced now builds with meson (!5). Thanks Manuel! * Smaller fixes and improvements in various projects (!36, !67, !68, !75, !8, !10, !11, !12, !16, !18, !66). Thanks Stefan, Dylan, Ferass, Luca, magdesign, Vladimir! ## And what's next? * FOSDEM 2025 is coming up _this weekend!_ Read all about the many Linux Mobile related things (devroom, multiple stands, etc) at LINMOB.net. Looking forward to meeting you there! Oh and we'll have another hackathon afterwards… if last year was any measure this will again be a super productive couple of days that allows us to get a lot done in the moment as well as making plans for the rest of the year! * Aachen's CCC chapter is organizing a mainlining workshop on 2025-02-15 that sounds really fantastic! They _"will be hosting a full-day workshop where we will show you how to port a current Linux kernel to your old mobile devices with relatively little effort and prior knowledge. We will explain the boot process of old and newer Qualcomm devices, introduce you to devicetree and kernel drivers and show you where to find the necessary information on a running Android kernel and in the vendor kernel source code. Afterwards, we will take a lot of time during which you will instill the spirit of the penguin into your own devices with our help and advice. With your kernel you will boot PostmarketOS and gradually get more components up and running. There will also be a tutorial on how to upstream your patches."_ * After the success of the OSC 2024 Tokyo/Fall event, the upcoming OSC 2025 Tokyo/Spring event on 2025-02-21/22 is in the pipeline. Check #92 for the current planning status, especially if you want to help with setting this up. Otherwise if you are in the area, consider hanging out! * And this last bullet point here is not an event, but exciting nonetheless: a rewrite of pmbootstrap's crossdirect logic is on the way… and it will make cross compiling _much faster_ for a whole lot of packages! (!2474) ## Help wanted * You can send us topics to include in the next blog post by commenting in: #194 * If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 11, 2025 at 3:05 PM
FOSDEM 2025 + Hackathon
When so many people involved with postmarketOS and Linux Mobile come together in one place, magic happens. Without even trying to solve problems, we end up finding important solutions to long-term issues as we discuss running mainline Linux on all sorts of devices while walking around in ULB or elsewhere in Brussels, going by public transport or while eating in restaurants. Thanks to everybody who came by, it was amazing! ## FOSDEM 2025 * We had a separate _postmarketOS_ stand with our Linux on Mobile friends (Mobian, Sailfish OS, AsteroidOS, LINMOB.net, MNT) on one side and our friends from CalyxOS on the other. Usually we team up with the rest of the Linux on Mobile crowd, but given that in 2024 we _almost_ ran into serious space issues, we figured it would be safer to request our own stand for 2025. And it was a blast, thanks to everybody who came by and asked us questions and tried out our (sometimes quite crazy) setups. It was especially nice seeing true tiling WM lovers experiencing Sxmo for the first time and feeling right at home! * Federico had printed out 150 copies of the leaflet (which were all taken by visitors — except for the last two which people apparently didn't want to take since these were the last ones). He also printed the entire devices wiki page in DIN A3 format, which proved to be very useful: people ask us if we support a specific device all the time, so every few minutes we could whip out the entire print out and look for that specific device together with the visitor to see if it is in there or not. Regardless, we always got the same reaction: sooo many devices! * On Saturday afternoon the FOSS on Mobile Devices devroom took place, with many postmarketOS related talks such as Kernel support for Mobile Linux: The missing 20% by Luca, Sxmo: A mobile UI for hackers by Maarten, postmarketOS: what is it and what's new? by Oliver and many more! For most of them, the video recordings are already up by now. Anjan also gave a talk called Introduction to pmbootstrap in the _Embedded, Mobile and Automotive_ devroom. See also the list of related talks in other tracks at LINMOB.net. * On Sunday we recorded a new episode of the postmarketOS podcast. This episode is being released together with the blog post here and has a short collection of stories related to what people experienced this FOSDEM. ## Hackathon As our team becomes bigger, so does our post-FOSDEM hackathon! This year we rented an apartment for 12 people where mostly a mixture of Core & Trusted Contributors got together. We had several rooms with different discussions happening simultaneously for most of the week, which was a great success! It is going to become harder to scale this up if the team keeps growing. As last year, we also set a wall full of post-its to organize things to hack and discuss together. You can see the photo of completed tasks as part of the header image, and read more on what these were about below. ### Reliability * Through many discussions we have concluded that our main goal for 2025 is: **Improve the reliability of postmarketOS!** * One major part of getting there is automated hardware testing. Once we have that in place, we can continuously verify whether features are still working on devices we test. Regressions will be caught early, ideally before we even merge changes, and we should be able to fix them much more quickly. This should help us get rid of the days on which you upgrade your edge install and have no way of knowing whether audio will still work after the upgrade, for example. * We followed up on the hardware CI project that was started in 2024-09. There we originally intended to pay a developer to design a PCB for connecting the phones in our future automated hardware testing setup. Unfortunately they didn't have time and so we didn't make much progress on that topic up until the hackathon. However having enough skilled people in one place worked magic and we figured that our TCs Federico and Anjan could take this over with support from Caleb. We are happy to report that they have already started and this is now back on track! * The result will of course be under an open license, and we want to make it so that others in the community can get the PCB too and use it to add hardware CI for their favorite device as well. * In addition, we have started preparing for the software work that will be necessary to actually _do_ testing on real hardware. This part of the project involves all the infrastructure that allows the GitLab CI to communicate with the devices, send it the jobs to execute, and receive the artifacts. For this part of the project, we intend to use CI-tron, and will be working with both its maintainer as well as an experienced member of the community to implement the missing pieces and integrate it with our GitLab. This will be funded entirely through our OpenCollective! Once the agreement is in place, we will provide a detailed update on the architecture and our plan for implementing it. Stay tuned! * As a follow-up from this project, and with the idea to improve reliability, Anjan, Federico, together with Dylan planned on how to possibly test calls on CI. They made some progress planning, see #96! ### Camera * While they were not at the hackathon, DrGit surprisingly sent patches that made one of the rear cameras and the front camera on the OnePlus 6 and OnePlus 6T work for the first time! Caleb prepared !6148 based on that, and made a call for testing and soon lots of people posted initial photos and even videos of the camera in action in the same Mastodon thread. This feature has been requested for such a long time, it is amazing to see this moving forward! * Caleb and David looked into getting the not-yet enabled C-PHY mode working. * Minecrell worked on the BQ Aquaris X5 camera on top of the work by André on the BQ Aquaris M5. ### Device ports * Luca proposed to clearly differentiate devices in the testing category between ports based on mainline and downstream kernels. (All higher device categories, community and main, already require mainline kernels). This was discussed and turned into actionable items, see milestone 30 for details. Contributions welcome! ### systemd * Clayton, together with external support from Robert finished enabling sensor support on systemd (!6147). * Clayton, Pablo, Jane, Oliver, Caleb discussed how to finish upstreaming the abuild systemd split function (#2804). We discussed different alternatives and decided that it is probably best to follow up with abuild maintainers regarding what solution they would prefer the most. * Oliver and Jane discussed how to make Phosh work again with postmarketOS edge and systemd since it was currently broken there. We decided to replace the current, not working `phosh.service` implementation with tinydm (the same way it currently works with OpenRC). Achill had then implemented this change in !6150. The plan is to later on use greetd with phrog instead of tinydm, and to use that for both systemd and OpenRC. Joel and Sam are working on this in !6106. ### Organizational * Pablo, Oliver, Stefan, Luca, Bart managed to finish up the Request for Change process we now call postmarketOS Change Request (PMCR). With that we finally have a place to discuss bigger changes to the project with a defined structure. This led to the second PMCR being sent within hours! We also had a fun time trying to figure out an original name of the process (so it is immediately clear that people are not just referring to _any_ RFC, but a postmarketOS specific RFC). We considered PMEP at one point (postmarketOS Enhancement Proposal) but since that is impossible to pronounce if you try to say it like PEP from Python, we went with PMCR :) * During our first hackathon after FOSDEM 2024 we set some projects as priorities for the postmarketOS team that year. Now one year later we have reviewed our progress and improved on how we approach these kinds of mid-term milestones. We will soon provide an update on this blog with further details (either as separate blog post or as part of the upcoming monthly blog post)! * In addition to the mid-term project priorities, we also started discussing a possible 5 year strategic plan. postmarketOS is in a really amazing position with a healthy and productive community. We want to ensure this continues to be the case as the project grows, but we also want to continue pushing the envelope and see where it leads. We have some ideas, and did some initial discussions at the hackathon. However properly answering this will likely require further discussions and planning with the rest of the team and the community, so we can't write much about this yet. ### Infrastructure * Pablo added support in aports-qa-bot for pinging maintainers when somebody proposes changes to packages they maintain. This should make it easier to maintain packages. Previously maintainers wouldn't always be notified when changes to their packages were made — even though they were in CODEOWNERS, but notifying through that is a GitLab premium feature that we don't have on our self-hosted instance anymore. The bot is already live (deployed by Luca) and commenting away! * Caleb, Oliver and Clayton tweaked GitLab CI configs and eventually created a custom GitLab runner to fix that QEMU-related jobs didn't run reliably since we had switched to gitlab.postmarketos.org. * Caleb, Pablo and Oliver worked towards integrating marge-bot into our development process. This will allow us to automate manual steps that we currently do before merging (rebase, put MR ID into commit messages, wait for CI), and therefore accelerate our development process. It also takes care of merging ready MRs in order, avoiding conflicts we can currently run into when two developers try to merge MRs at the same time. We talked to David from upstream who patiently answered all of our questions and found a way forward for all features that we need before we can use marge-bot (userfriendly messages (implemented!), and commit signing (TBD)). * Bart and Luca did an upgrade of all our matrix rooms, in order to fix state resets that a couple of people have been getting as well as making permissions consistent across all rooms. * BPO, our build orchestrator got a security audit from Radically Open Security as part of the postmarketOS daemons grant from NGI Zero Core / NLnet. The audit was successfully kicked off during the hackathon (from our end Oliver explained how to run tests locally, answered follow-up questions etc). While we still need to get the final report, it looks like there were no remarkable security concerns. ### Other * Jane spent some time looking into a compatible solution for GNOME Clocks to set alarms that will work even on suspend. * We discussed at length how to do taxes for invoices to OpenCollective. Jane has done some initial systemd upstreaming work that we still need to figure out the VAT situation for. We have fortunately gotten some support from KDE e.V. and we will be contacting some tax lawyer in the short term. This work is not very enjoyable, but very important. * Oliver and Clayton finished a MR that has been open for a long time, which moves the contribute page from the wiki to our website and modernizes it. Thanks Ranny for the initial work on it, and for adding all these cute postmarketOS logo variations! Together with Pablo we also made progress moving some important governance information from different scattered places to the website (!335). * We discussed how to better organize ourselves and go to conferences. We should start keeping an inventory for merchandising and marketing materials, but also plan and better support people from the community going to them. We want postmarketOS to have visibility in many more places, and not just very technical conferences. But we need to make sure those spreading the word have the support they deserve! In the following weeks we will be creating a repository to better organize and plan this effort. * For hackathon movie night, we chose _For The Plasma (2014)_ this time (see our reviews) to balance out the GNOME themed movie _The GNOME Mobile (1967)_ from last year. Let us know if you have similar movie suggestions for next year, maybe something that relates to SXMO or tiling window managers! For the last night, Bart had a Wii emulator set up where some of us played a few rounds of Mario Party. * Cooking and shopping for 12 people is a challenge. Thanks to Luca and Federico who cooked some delicious meals that kept all hackers going! * Although this is not a short blog post, this doesn't cover everything that was going on. We didn't make sticky notes for each topic we worked on and we had many, many important conversations that would be hard to fit in here. Having this hackathon was only possible thanks to _your_ donations! Just like last year, it was incredibly productive to have everybody in the same place, for planning, discussing goals and for just getting things done quickly without delay. If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 11, 2025 at 3:05 PM
v24.12: The One With Androids & Cameras, But It's Mainline Linux
_This release is geared mainly towards Linux enthusiasts. We are working hard on stability improvements and automated testing, but if you expect Android or iOS levels of polish, then this is not for you yet. Systemd is coming in the next one._ ## Introduction One thing that people have been asking us over and over is, will it be possible to use cameras with postmarketOS on Androids? While of course we all would like to see that, this is a significant challenge for postmarketOS and other Linux Mobile projects that prefer using the mainline Linux kernel and don't use the proprietary Android userspace blobs for interacting with cameras. But as you can guess from the headline, there has been a significant breakthrough: the Pixel 3A and Fairphone 5 both have front and a rear camera working now, and somebody even reported being able to record video on the FP5. One of the two rear cameras of the Pocophone F1 also works now. As you would expect, this is not on-par with Android's implementation yet and some of the media has a bit of a retro appeal at the moment. Nevertheless, this is a major achievement! Thanks to Robert, Richard, Luca, Joel, Alistair as well as the libcamera and Megapixels folks! ## Software Stack As always we target the most recent Alpine release. In case of v24.12 it is the excellent Alpine Linux 3.21. ### User Interfaces (UIs) #### Mobile UI Versions * GNOME Shell on Mobile 46-mobile.1 replaces 45_git20240610 from v24.06. Besides the rebase on Gnome Shell 46, this has several visual, keyboard and inhibit/suspend related improvements. Thanks to Jonas and all the GNOME contributors! * KDE Plasma Mobile 6.2.4 replaces version 6.0.5 from v24.06. A notable improvement is the new dialer with "17 months of bug fixing as well as small improvements all over the place". Thanks to Devin and all the KDE contributors! * Phosh 0.43.1 replaces version 0.39.0 from v24.06. Among other great improvements, Phosh now supports accent colors as you can see in the header image. Thanks to Guido and all the Phosh contributors! * Sxmo 1.17.0 replaces version 1.16.3 from v24.06. Among other things, this release has improved device support and allows using wofi as new menu with smooth scrolling and line wrapping. It has a new lockscreen called peanutbutter and a new busy audio mode. Thanks to Maarten, Willow, ArenM, Anjan and all the Sxmo contributors! #### UI Configuration * We have so many great wallpapers by dikasp that we had a hard time figuring out which one to use for this release. Somehow we managed to narrow them down to just four, and made a Mastodon poll. The winner is _Dawning_ with 98 votes, which is now the default wallpaper for all UIs! Find previous wallpapers in the wiki. Thanks dikasp! * GNOME now has the Snapshot and Weather apps installed by default (!5149). The PDF reader Evince has been replaced with the more modern and phone-adaptive Papers, and the audio player Lollypop has been replaced with Decibels (!5824). Thanks Clayton, Pablo, 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! * The apk plugin for Discover from Plasma has been merged upstream! Thanks Alexey and Devin! ### Other Notable Changes * Major initramfs changes to improve logging and the debug console as well as using udev and refining root/boot partition detection and waiting. This has some really nice features, such as holding volume up during boot to trigger a log dump. Thanks Caleb and Clayton! * PAM is now properly set up for SSH sessions. This allows e.g. running `pw-dump` properly from SSH to help with PipeWire debugging when working on cameras, and also to just run graphical applications via SSH that will then appear on your phone as you would expect. Thanks Stefan! * Default postmarketOS installations now include fonts for non-latin languages, without a great growth in font size. This was possible fine-tunning the fonts included, and after a lengthy discussion on the best approach to make it both flexible and resilient. Thanks Masanori! * Following Alpine's move of `sudo` from the `main` to the `community` repository and now recommending to use `doas` instead, we are now installing `doas` together with `doas-sudo-shim` by default in new postmarketOS installations instead of `sudo`. Through the shim, you can still type `sudo` and will now get `doas`. See the edge post for details, and also for instructions for getting `sudo` again if that is your preferred tool. Thanks Aster and Achill! * Firmware compression using ZSTD has been enabled in Alpine and in all postmarketOS kernels that use linux-firmware. This included a great amount of work in many different projects. The whole process lasted for many months, but is a good improvement for every user of linux-firmware. Thanks Stefan! ## Devices * Multiple Xiaomi devices have been merged into a Generic MSM8953 device port. Find related upgrade instructions below. Similarly, for the _testing_ device category but part of this release: Several Amlogic ports have been merged into Amlogic Generic TV Box. Thanks Barnabás and Ferass! * Speaking of generic device ports, the Generic x64 UEFI device now also supports Nouveau for NVIDIA GPUs. and includes Intel GPU firmware. Thanks Clayton! * Like in v24.06, we have included > 200 device ports from the _testing_ category in this release! One of them is the Fairphone 5 with the amazing camera enablement mentioned in the introduction. * Lots of kernel upgrades, improvements and bug fixes for all devices. Thanks to all device maintainers and contributors! ### PinePhone and Librem 5 In previous releases we used to have the device categories  _main_ , _community_ and _testing_. The PinePhone and Librem 5 were in the _main_ category, but we have decided to move them to _community_ with this release. The main reasons are that the Librem 5 did not receive much testing for v24.12, and that the PinePhone images unfortunately did not boot in edge and as v24.12 was branched for quite some time (this seems to be fixed, if it isn't for you then please reply in the issue). There are some other issues with the devices that we would like to have solved such as fast battery drain for the PinePhone, before we think these devices are ready for _main_ again. Furthermore this could be a good opportunity to set better standards for _main_ , such as requiring an automated hardware test setup that could really ensure that we don't introduce most regressions or at least notice them shortly afterwards and can fix them more easily. We highly appreciate all the work that the device maintainers and other community members have put into those devices, and we would like to see additional community members who care about these ports stepping up to improve and test these ports. If you are interested in helping out, get active in the related issues (PinePhone, Librem 5), join the #postmarketos-devel chat for coordination and consider joining the testing team. ### Community Category Thanks to all of our amazing device porters, and everybody who contributed! * ASUS MeMO Pad 7 * Arrow DragonBoard 410c * BQ Aquaris X5 * Fairphone 4 * Generic x86_64 * Google Chromebooks with x64 CPU * Google Gru Chromebooks * Google Kukui Chromebooks * Google Nexus 10 * Google Oak Chromebooks * Google Pixel 3A new * Google Trogdor Chromebooks * Google Veyron Chromebooks * Generic Qualcomm MSM8953 new * Xiaomi Mi A1 * Xiaomi Mi A2 Lite * Xiaomi Redmi 4 Prime * Xiaomi Redmi 5 Plus * Xiaomi Redmi Note 4 * Xiaomi Redmi S2/Y2 * Lenovo A6000 * Lenovo A6010 * Lenovo ThinkPad X13s * Microsoft Surface RT * Motorola Moto G4 Play * Nokia N900 * Nvidia Tegra armv7 * ODROID XU4 * OnePlus 6 * OnePlus 6T * PINE64 PinePhone * PINE64 PinePhone Pro * PINE64 Pinebook Pro * PINE64 RockPro64 * Purism Librem 5 * SHIFT6mq * Samsung Chromebook * Samsung Chromebook 2 11.6" * Samsung Galaxy A3 (2015) * Samsung Galaxy A5 (2015) * Samsung Galaxy E7 * Samsung Galaxy Grand Max * Samsung Galaxy S III (GT-I9300 and SHW-M440S) * Samsung Galaxy S4 Mini Value Edition * Samsung Galaxy Tab 2 10.1" * Samsung Galaxy Tab 2 7.0" * Samsung Galaxy Tab A 8.0 * Samsung Galaxy Tab A 9.7 * Wileyfox Swift * Xiaomi Mi Note 2 * Xiaomi Pocophone F1 * Xiaomi Redmi 2 ## Device/UI Testing And Known Issues A _huge thank you_ to device maintainers and the testing team, and people who spontaneously decided to take part in testing this new release (#3359) and fixing bugs right before finalizing it! If you would like to join the fun next time, add yourself to the Testing Team. Note that if you added yourself there previously and now have a different nickname in our new GitLab instance, then you need to update your nickname on this wiki page. While testing, several audio issues were reported. We were not able to fix all of them in time for the release, yet another reminder that we need the automated hardware testing setup mentioned earlier. If you can help with getting these resolved, join the new #postmarketos-audio chat. The following issues may not affect all users. If you are affected, then consider leaving a note in the related issue, especially if you have more information or could help with fixing. * #3232: boot.img too big (Samsung Galaxy Tab 2 10.0) * #3269: power bug due to syslogd in initramfs * #3311: pre-installed flatpak remote doesn't work * #3320: Audio issues during calls with Oneplus 6T * #3338: [qualcomm-sdm845 | oneplus-enchilada] No audio in calls - pipewire * #3341: VLC crash phosh when switching to fullscreen * #3342: VLC freeze when playing something * #3353: xiaomi-beryllium (Poco F1): Audio regression in edge compared to v24.06 * #3357: Sudden increase in battery usage after upgrading packages (oneplus-fajita) * #3361: nokia-n900: unlocking FDE graphically is broken (unlocking with terminal works) * #3367: firefox does not open (if not connected to internet on first boot) * #3370: Snapshot - Gnome camera (flatpak) permission error * #3390: openssh-server: connection doesn't close when powering off ## How To Get It ### New Installation Look at install postmarketOS and make sure to read the wiki page for your device. ### Upgrade For existing installations, see the upgrade to a newer postmarketOS release wiki article. Users of Xiaomi Mi A1, Mi A2 Lite, Redmi 4 Prime, Redmi 5 Plus, Redmi Note 4 and Redmi S2/Y2 need to follow this guide for upgrading to the new generic MSM8953 port. Recommended manual steps after upgrading: * Consider switching your installation from `sudo` to `doas`, possibly with `doas-sudo-shim` for your muscle memory (details). ## Powered by A big thanks to everybody who contributed to postmarketOS, to Alpine or to any of the numerous upstream components we use — without you this would not be possible! ❤️ We would also like to thank NLnet and NGI Zero Core for funding most of the infrastructure and maintenance work that went into this release. NLnet is funding a lot of great free software projects, including quite a few projects in the Linux Mobile world. If you would like to get your project funded, consider applying for a grant! ## And what's next? * We plan to merge systemd into edge soon, and to ship it in a stable release for the first time with the v25.06 release. * This year we started writing monthly blog posts to better highlight all the amazing things going on in our community! The next one will be out in January of 2025 (skipping December 2024 due to the v24.12 release). * Members of the postmarketOS community and wider Linux Mobile scene can be found at various upcoming events including 38C3, FOSDEM 2025 (for which the FOSS on Mobile Devices schedule just dropped) as well as the Open Source Conference 2025 Tokyo/Spring. If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 4, 2025 at 11:02 AM
systemd, Part Deux
It's been a bit since our last systemd post, but we've been hard at work, so here's an update! We've made good progress. The basics are in place and we can boot into both GNOME Shell and KDE Plasma. However both DEs start services themselves and don't do so using systemd. We instead want to have all services managed by systemd: this will make it easier to understand and maintain and also for users to modify running services. We've figured out how to disable this autostarting of services on GNOME, but haven't yet found an equivalent with Plasma. If you know a way, please tell us in the tracking issue. A big topic has been figuring out an elegant way to enable services, that is more robust than the post-install and post-upgrade scripts approach we are currently using with OpenRC. With the current approach, either users can't override if they want to have a service enabled or not or we cannot automatically enable a new service that may be needed on upgrade. The latter is needed if for example a UI needs a new daemon to run properly, or when switching from pulseaudio to pipewire, etc. So we've learned a thing or two about our own requirements for this, and have been trying to design a way to do the things using systemd-isms. We are working hard on making the end result more resilient, and it has been quite an adventure so far that has taken us through the depths of systemd's documentation (where we couldn't find much about the integration level) and into tearing apart other distros to see what they do to solve these problems. Now we are pretty close to a solution! The systemd functionality currently lives in a separate branch of pmaports. This being separate from the main codebase means we have to manually keep them in sync and there's extra manual work to build a systemd image. So we're also prioritizing getting the systemd work merged into pmaports' `master` branch (for which the biggest blocker is the split systemd repository in bpo). With the change to systemd, there will be more packages forked from Alpine upstream. Maintaining these packages is currently some manual effort: monitoring when there's a change upstream, modifying the fork, testing, and merging. The first two steps can be automated, so we're working on that now (tracking issue). And the last issue we're prioritizing is better support for the `/usr` merge. While not strictly necessary for systemd, tackling this now solves some bugs we've been running into and simplifies maintenance. This article has a good summary of the `/usr` merge, but in short, it's about installing binaries in one location rather than two, which exists for mostly historical reasons not practical ones. The merge isn't done yet in Alpine, but we have done it in postmarketOS for systemd based installs by running a fork of apk-tools with a custom patch. After discussing upstream, a better implementation has been suggested and the patch has been rewritten (now rewriting paths at the point the files are installed rather than at the database level, the old approach caused some edge case bugs and broke some advanced apk features). We now need to use and extensively test the new version of the patch (tracking issue). Once the above issues are resolved, we're ready for wider testing! We'll want help testing the systemd builds and with systemd-ifying more services! This will be a ton of work, but with our amazing community contributing expect it to go quickly! We'll put out another public call for testing when we reach this point. This will probably be in another month or so (you can follow the progress here). Finally, Caleb and Clayton had a talk about using systemd in postmarketOS accepted to All Systems Go in September. This conference is about critical user-space parts of Linux and will be a great place to validate our systemd integration work and discuss long-term maintenance.
postmarketos.org
February 4, 2025 at 11:01 AM
Short financial update and lookahead
Since December 2023 postmarketOS has been collecting donations transparently through Open Collective. Since then, the postmarketOS team has also been working on strategies to spend the collected donations in a meaningful and sustainable way, more on that soon in a follow-up blog post. The blog post you are reading right now provides an update on where we are standing financially after 8 months of collecting donations. ## Financial status Open Collective has helped us collect donations, with transparency to the public about it. So, we have some useful graphs and information on top donations, already – visible for everyone. However, most of that information includes OpenCollective Europe fees, fees from the payment method (credit card, PayPal, bank transfer), and donations to Open Collective. Therefore, we want to provide a short update based on the raw transactions data from OpenCollective. #### Income From December 2023 to the end of July 2024 postmarketOS has received €8538 in donations. Out of those, €7623 has been deposited in our bank account. The rest (a bit less than 11%) has gone into the various fees mentioned above. We have identified that small transactions under €5 have an excessive amount of payment processing fees. In some cases, we have seen up to 45% of fees for €1 transaction. We understand this might not be clear to people donating. To avoid this, we have decided to raise the minimum donation amount to €5. This only applies to future donors. If you have a recurring donation of such an amount, we recommend you change the frequency of your donations. For example, postmarketOS will receive more money from a donation of €10 once a year, than from €1 per month, even though that should total up to €12 – due to said transaction fees. #### Expenses In the same period (December 2023 to July 2024), we have spent a bit less than €2000, more than half in the post-FOSDEM hackathon that helped us set a project direction for many months. The rest has been spent mostly on infrastructure, but also on stickers given out in conferences and some HW for development. #### Balance In total, our savings have grown in more than €5500, while also covering all the costs we had since we started collecting donations on OpenCollective. For the last 6 months, we have steadily received between €500 and €600 in recurring donations. This income outgrows our spending on infrastructure, which is our only regular spending (we currently depend on a single server, we will need more at some point) by much. This means that even in case of unplanned emergency, we could lower any other spenditure and still be able to provide a service without problems. Overall, we see ourselves in a good situation. In terms of building-an-operating-system-money it is of course not a huge pile, but enough that we feel comfortable paying our first developer to work up to 20h per week. More on that in a separate blog post soon! A huge thanks to everybody who is making this possible! ❤️ If you appreciate the transparency of our finances and the work we are doing with postmarketOS, consider joining our OpenCollective!
postmarketos.org
February 4, 2025 at 11:01 AM
Paying for development from the donations for the first time!
As mentioned in our previous blog post, thanks to your donations we do not only have enough to pay the server bills. But we can also pay somebody to work part-time on postmarketOS from the donations, which will be a first since we moved to OpenCollective! ## Jane: systemd, musl, and upstreaming For starters we have decided to pay for upstreaming patches to improve the compatibility between musl and systemd. We have agreed to pay Jane, one of the postmarketOS Trusted Contributors to do this. For the sake of transparency, the agreement is as follows: * Jane will freelance as a student (max. 20 hours a week). * Jane will bill for work related to: * Figuring out and documenting which patches in the postmarketOS systemd repo are upstreamable, and which aren't. * Getting patches into upstreamable state, pushing PRs, discussing with maintainers, addressing the feedback, and repeat. * Learning systemd internals, code style, and whatever is needed to be able to push those patches. * If some patches have a fit in musl, preparing them, sending them to the mailing list, discussing with maintainers, addressing the feedback, and repeat. * We have set a maximum limit on expense close to the money we have saved from the beginning of the year. That is certainly flexible depending on how well this goes for both parties. * Jane will keep the community and the team updated on the work that gets done. This is the first time we go into an economic agreement, and the first time we are going to fund development. We understand there will be lots of lessons to be learned, so of these terms might change as the work gets done. ### Why fund this project and not (insert my favorite project that needs attention)? postmarketOS has very limited funds, and this is a hard decision. However, the team has identified the lack of compatibility between musl and systemd as one of the critical points to improve the future stability of postmarketOS. In addition, we believe that money is best spent on a project that would otherwise be very unlikely to be done by volunteers. We deeply appreciate everybody in our community doing volunteer work, including team members like Clayton and Pablo working full-time or part-time without more support than external grants. However, volunteer work cannot reach everywhere. While some projects provide lots of non-economic rewards to people working on them, others don't. Improving the compatibility between systemd and musl is within the second group, and thus why we believe it's important to fund it. ### Why Jane? Jane is a postmarketOS Trusted Contributor, she was the first person that managed to boot a postmarketOS device with systemd as proof-of-concept (back in June 2023), she has been contributing to the systemd work in postmarketOS, and rebased the set of Open Embedded patches on top of new releases several times. Within our project, she is certainly the most appropriate person to do this work. She is not a musl or systemd contributor, and she will have to continue learning the conventions of those communities. However, we don't think that this will be a big hurdle. We think that paying for one of our contributors who is already very familiar with postmarketOS and understands exactly what we need, to learn about those communities is a smart decision. Both short-term and long-term. _If you appreciate the work we're doing on postmarketOS, considerjoining our OpenCollective._
postmarketos.org
February 4, 2025 at 11:01 AM
postmarketOS in 2024-09: systemd, PCB, talks, non-latin language fonts
This post goes out in the middle of the Boiling The Ocean hackfest currently taking place in Berlin. People are hacking on Mobile Linux, local-first ideas, GNOME app design, and everything in between. Also image-based/immutable OSes, which we want to do _optionally_ with postmarketOS (#62) to rule out a whole class of bugs that are pretty inconvenient when you are for example cycling around the world and just want to upgrade your phone OS without finding it in a broken state afterwards. Thanks to Tobias for organizing this and for the photos! Some people have been wondering about the name of the event - it is of course not about _literally_ boiling the ocean, but rather taking up impossible-seeming tasks and making them a reality. The phones on top do not only run postmarketOS, but also show postmarketOS talks from the systemd conference All Systems Go!, which also took place in Berlin a few days beforehand, as well as KDE Akademy from the beginning of the month in Würzburg. ## Organizational * In order to make postmarketOS more stable and reliable, we want to do automated testing with actual hardware. We need a PCB to do that. After a long discussion on the requirements (#63), and search for a skilled person, we are happy to announce that this is moving forward and Jonathan Bruce will implement it. We have pre-approved the expense of the design. The total cost will be of 2000EUR and billed to our Open Collective upon completion, unless there are big unexpected issues, since some iteration rounds are covered by that budget. As with everything we do, the KiCAD files will be under a Free License and published in our gitlab! Thanks to Pablo for pushing this forward, and to everybody who took part in the requirements discussions. * Federico is now a new Trusted Contributor! He has been consistently contributing to postmarketOS for years, and brings our current count of TCs to 12! * As part of some improvement in our governance processes, we have started to update meeting minutes from postmarketOS Core Contributors (former Core Team) meetings after each meeting (instead of sometimes only several months afterwards). You can now expect any decisions taken to show up there bi-weekly. If you have any issue that you believe should be raised to our attention, please open an issue in the postmarketOS repository. * Masanori has done an extraordinary amount of work improving the device categorization in the wiki by contributing more than 300 changes. Thanks a lot! ## systemd related * There's been great improvements towards having systemd in postmarketOS. We've now finalised (after a long discussion) a design of how to enable services in systemd. We've also improved our management of apk patches due to /usr merge in Alpine, and were allowed to drop some patches. There's also been a lot of work to put openrc service enablement properly into subpackages. Thanks Jane, Clayton, Caleb! * pmbootstrap v3 staging branch is now being tested in pmaports CI, and also used by build.postmarketos.org (bpo). This warranties we won't regress, gives the new branch more testing, and is a pre-requisite for systemd builds. Thanks Clayton and Oliver! * The work to implement the "/usr merge" in Alpine is moving forward at great pace, with more than 10 Merge Requests having been merged in the last month. Most of the work so far has consisted in moving libraries and files that were directly installed under `/lib` or other places in the root, but had no specific reason to be there, to the `/usr` hierarchy. Progress is being tracked through a milestone, and is open for anybody to contribute! If you want to help move it forward, grab any of the issues and start hacking on them! Thanks Pablo and Clayton for the work so far, and Natanael for all the reviews! * A lot of progress has been made in bpo building the split systemd repository (#140). Thanks, Oliver! ## Linux kernel related * Many kernels (11) received updates, including several to the last 6.11 release. Thanks to all our kernel and port contributors! * Last month, the kernel configuration was moved from pmbootstrap to pmaports repository. Now, there is also a process in place to request and apply changes that affect multiple kernels! We hope this will be a great improvement to keep consistency in features, and simplify updates in the future! Thanks Oliver and Luca! * Many new options were added to community kernels, which helped inform the new process. Thanks Luca! * Old downstream kernels that need an outdated make, can now make use of the make3.81 package. Thanks Masanori! ## pmaports + aports * GNOME 47 has been released! Among all the changes that you can read in the release notes, we can highlight that the File Chooser dialog in sandboxed or GTK4 apps is now provided by Nautilus, which is now mostly ready for mobile. Therefore, Nautilus is now installed by default instead of Portfolio (thanks Pan!). Upstream is still aware of some issues with the list view and batch renaming, so hold your bug reports some months if you can! There are also important improvements in the Calendar app, in addition to the amazing accent colors! Some updates might still be pending. You can follow the aports' tracking issue for more details. Thank you everybody making this possible, from the whole of the community upstream, to people doing packaging (mostly fossdd and Krassy) and merges in alpine! * Following the GNOME 47 update, the GNOME Software apk plugin has also been updated. As usual, we encountered some small bugs upstream, but this time it also required changes to the APK polkit service. Thanks Pablo! * Speaking of apk plugins for graphical package manager frontends: the apk plugin for Discover from Plasma has been merged upstream! Thanks, Alexey, Devin, and all the reviewers! * Along with that, people are working on adding Alpine/musl CI for the entire KDE software stack. For a bunch of repositories it has already been enabled. Thanks Bart and everybody who helped! * Most intel GPU firmware is now included in the initramfs for generic x86_64 devices. This allows to support a wider array of hardware. Thanks Clayton! * Buffyboard and unl0kr can now load the configuration from `/usr` in addition to `/etc`, allowing distributions to better comply with the FHS standard. Thanks fossdd, Johannes and Pablo! * We have 1 new device port: Samsung Galaxy Tab S5e Wi-Fi. Thanks Usia! * One more device, the Lenovo Xiaoxin Pad Pro 12.6 (Lenovo Tab P12 Pro) gained sensor support. Thanks chalkin! * Default postmarketOS installations now includes fonts for non-latin languages, without a great growth in font size. This was possible fine-tunning the fonts included, and after a lengthy discussion on the best approach to make it both flexible and resilient. It's good not all changes require that much back and forth! Thanks Masanori! * New installations now use `doas` instead of `sudo`  by default. This was complemented with further work to not have root user be asked for the password For more details on how to switch from one to the other please see the edge blog post. Thanks Aster and fossdd! * Upgrade GNOME Shell Mobile to the latest patches which includes a lot of papercut improvements. Thanks Angelo! * BTRFS installations now boot faster, after we removed the check on boot-time, that can take a very long time. Thanks Jane! * The N900 continues receiving maintenance after a keymap update broke its functionality. Thanks Sicelo! * The generic aarch64 port, named Trailblazer, now supports X1 Elite laptops. Thanks Minecrell! ## Artwork and homepage * Dikasp made an incredibly beautiful wallpaper this September. Thanks Dikasp! * The postmarketos.org website saw multiple  improvements to reduce the time to load and improve the visual consistency (check out the new footer at the bottom of this page!), and dark mode. Thanks Markus and knuxify! * A postmarketOS leaflet to hand out at events was created! It turned out beautifully and was translated from the initial English version to a Japanese version, and a German version is in progress. Thanks Masanori, Lioh, Oliver, Rob, Ranny, Jens, Markus. * Also for events, a A5 sheet to show basic info about a device presented at a booth/table !49. Thanks, Rob! * Stickers for FOSSY and OSC24TK. Thanks Ranny and Masanori! ## Event recordings * All Systems Go: systemd-ifying postmarketOS, our immutable future, and why Alpine is cooler than you thought with Caleb and Clayton * KDE Akademy: Daily driving Plasma Mobile and what's still lacking with Bart (slides, blog post) * FrOSCon: postmarketOS podcast Live with @Adrianyyy, @ollieparanoid, @1peter10, @devrtz, @calebccff, @Fellintr, @agx, @kuleszdl, @z3ntu, @erebion ## Behind the scenes Writing these blog posts is a looot of effort. Over the past months, we have established the workflow of Pablo going through all merge requests since the month before and preparing a draft based on that — a huge tasks that keeps growing with each month! Oliver then finalizes the blog post by adding an image at the top, categorizing the bullet points, writing an introduction and adding some additional bullet points, etc. This takes each of us roughly a full day (!) - we have made a lot of optimizations compared to the very long early days blog posts, such as having only one image, and using bullet points. But still, it would be fantastic (and at some point required) to optimize this further. Therefore the idea is that if you enjoy reading these blog posts, and you are either sending postmarketOS patches yourself, or follow development closely, then from now on you can send us a list of topics to include in the next blog post by commenting here! ## And what's next? * The migration to our selfhosted gitlab has been postponed to 2024-10-06 (next Sunday!), as the _direct transfer_ feature could not be enabled by gitlab.com folks in time for the previously planned date. With that being said, we have gotten a great amount of help from their team so far, and from Lance at OSUOSL. Read the details and the answer to the popular question _"Why not SourceHut/Forgejo/...?"_ in #77. * Moving on with systemd and the /usr merge. With current planning, we expect the systemd branch to be merged into pmaports master within the next 3 weeks (so after the gitlab migration, doing both in parallel would be too much). When this is done, we will be able to have the first automatic images generated! * Initial support for Google Pixel 3 is coming soon (!5514), together with speaker support that Joel recently got working! * Rob and Masanori are organizing a postmarketOS booth at Open Source Conference 2024 Tokyo/Fall (2024-10-26, Tokyo, Japan). If you are in the area, consider coming over! If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 4, 2025 at 11:01 AM
postmarketOS in 2024-08: Pixel 3A with Camera, Self-hosted GitLab, Events
As always it is amazing to meet up in person. The photo above was taken at FrOSCon last weekend, where postmarketOS folks took part in the FOSS on Mobile stand and devroom of the same name. A few weeks earlier something similar happened at FOSSY and at GUADEC. Shout out to everybody who was there, these events were just filled with great conversations, hacking sessions and making new friendships! ## Organizational * After looking for a new home for the postmarketOS source code for a long time, we are happy to announce that we will move to a self-hosted GitLab instance! The migration is scheduled for **Sunday, 2024-09-15**. Read all about it in #77. * Related to our self-hosted GitLab: Caleb has some ideas for possibly moving device and/or SoC communities that are currently hosted on gitlab.com or github.com over to our shiny new instance to make it easier to collaborate across communities. If you have feedback, please reply in #78. _"I'd like to get feedback from the team about this, as well as from device/SoC community maintainers, is this something you'd be interested in?"_ * The postmarketOS Core Contributors are now meeting bi-weekly on a fixed schedule (instead of monthly and having a date poll each time). This has improved our workflow, and we hope to be able to make decisions faster. If you have any idea or concern that you believe should be discussed, please open an issue in the postmarketos repository. * We are paying for development from OpenCollective donations for the first time! See our separate blog post for more information. ## What's new? * We have 7 new device ports: F(x)tec Pro1X (qx1050), Samsung Galaxy Tab A 7.0 (2016), Lenovo Xiaoxin Pad Pro 12.6, Amazon Kindle Fire HD 7" (2nd Generation), Xiaomi Mi A2, Lenovo Yoga C630, and Xiaomi Mi 9T Pro / Redmi K20 Pro . Thanks to all our device porters! * The Google Pixel 3a has been promoted to community! The device features one of the most extensive hardware enablement from all modern Qualcomm devices, especially regarding camera, so the community category is right fit for it. Images are now being built for edge on all main UIs. Thanks Robert and Richard! * For the PinePhone, callaudiod (the daemon taking care of switching between call and regular audio profiles) has been replaced with a custom version. The replacement implements the same D-Bus API, but works with the new audio profiles generated by PulseAudio v17 and PipeWire v1.2. This was done after careful consideration through many discussions. Thanks Arnav for implementing this and for maintaining the PinePhone! (!5349) * Many kernels (14) received updates, including several to the last 6.10 release. Thanks to all our kernel and port contributors! * SDM845 devices with good audio support have been ported to use the new Wireplumber config format. Thanks Richard! * Booting on many Samsung testing devices has been fixed after big initramfs changes. Thanks Henrik! * Samsung devices with touch keys no longer wake up the screen on touch. Thanks Raymond! * There is now generic device support for MSM8909 and similar ARMv7 chips. Together with lk2nd support and extlinux, it allows to reduce the number of builds. Thanks Raymond! * boot-deploy 0.17 and 0.18 have been released and integrated with several new features and bug fixes. Thanks Clayton and all boot-deploy contributors! * Firmware compression using ZSTD has been enabled in Alpine and in all postmarketOS kernels that use linux-firmware. This included a great amount of work in many different projects. The whole process lasted for many months, but is a good improvement for every user of linux-firmware. Thanks Stefan! * The generic x86_64 device now also supports Nouveau for NVIDIA GPUs. Thanks Clayton! * The libcamera stack has continued receiving improvements in the form of forward-porting patches and enabling configs. Thanks Robert and Alistair! * GNOME Mobile UI has been upgraded to the latest version 46.0. Thanks Jane! * The postmarketos.org website saw fixes for multiple paper cuts and small fixes after the rework last month. Thanks Markus! * Our amazing recurring artwork contributor Dikasp continued making amazing artwork in August! Thanks Dikasp! * PAM is now properly set up for SSH sessions. This allows e.g. running `pw-dump` properly from SSH to help with PipeWire debugging when working on cameras, and also to just run graphical applications via SSH that will then appear on your phone as you would expect. Thanks, Newbyte! (!5483) * The proof of concept of VoLTE (4G calls) for SDM845 based devices is now packaged. At the same time, the grant regarding VoLTE that we helped two community members to apply to is moving forward, though not yet approved. We hope to be able to share good news at some point! Thanks Alistair and Richard! ## Misc * Rob spent quite some time going through all issues and closing those that seemed inactive or no longer relevant. As with any triaging work, there is always the chance of some small mistakes. If you identify that any of the closed issues are still important and should remain open, feel free to comment on them or re-open them yourself. Keeping the list of issues relevant greatly helps the community and the maintainers work together efficiently. Thanks, Rob! * Many small fixes and improvements for pmbootstrap v3, thanks to everybody who contributed! * build.postmarketos.org has seen some more work towards building the split systemd repository (#140). Thanks, Oliver! * If you are curious about the story behind GNOME Shell on Mobile: we talked to main developer Jonas in the last episode of the podcast about its origin, how it relates to Phosh, running SailfishOS Aliendalvik on other Linux Mobile distros and how he found an important security vulnerability in Apple's AirPods. ## And what's next? * Rob and Masanori are organizing a postmarketOS booth at Open Source Conference 2024 Tokyo/Fall (2024-10-26, Tokyo, Japan). If you are in the area, consider coming over! If you feel like you can't keep track of all the postmarketOS related events, we now have a separate events page to help you out. It has a little FAQ section covering _"Can I represent postmarketOS at an event?"_ in case you were thinking about doing that at some point. * After some fruitful discussions with Alpine developers, the TSC gave green light to implementing "/usr merge" in Alpine. The work has already started and we are excited that everyone will be able to benefit from this work — it won't be just a downstream hack in postmarketOS as it is currently the case! * Camera work is proceeding at great pace, and seems like more Android devices will have working cameras soon! If you appreciate the work we're doing on postmarketOS, and want to support us, consider joining our OpenCollective.
postmarketos.org
February 4, 2025 at 11:01 AM
postmarketOS in 2024-10: Accepted Grants, Timelines and Tokyo
For the first time postmarketOS was represented at an event in Japan thanks to Rob and Masanori who went to the Open Source Conference 2024 Tokyo/Fall! As shown in the photo above, they had a cool table with asus-grouper, asus-tf201, xiaomi-beryllium, pine64-pinephone as well as stickers and flyers in Japanese (which ran out by the end!) and English. Several visitors mentioned that they were astonished how fast the tf201 and grouper appeared in the shell - and in general they were interested in seeing devices running with (near) mainline kernels. Thanks to everybody who came by! If you are in the area and missed the event, a Spring edition is coming up in February 2025. ## Organizational ### NLnet Grants Accepted Pablo and Oliver helped members of the Linux Mobile community to apply for grants from NLnet's NGI Zero Core fund, and we are excited to announce that they have been accepted! * Biktor and Lynxis will be working on OpenIMSd, which aims to bring VoLTE (4G voice calls) to Qualcomm based phones (like the PinePhone) running Free Software Mobile Operating Systems including postmarketOS, Mobian and others. They will create a daemon which runs in parallel to ModemManager, which configures the baseband via QMI and brings up all the required services to be able to place VoLTE calls. * Danny will be able to improve mobile-config-firefox and replace hacks we currently carry there to make the desktop version of Firefox work on mobile, with proper solutions in upstream Firefox. See Enhancing Firefox for Linux on Mobile for details. Milestones have been created and will be filled with related issues and merge requests. ### Trusted Contributors * Aster is a new Trusted Contributor! They have been contributing to postmarketOS a lot over the past months, especially the Lomiri packaging, systemd support and design ideas for optionally immutable postmarketOS. * Bryant stepped down as TC, and we thank him for the great improvements he has made to the project in the short time as TC: a lot of help with organizing ourselves better, reworking the homepage navigation and adding team pages (which also resulted in the amazing redesign!), work on mainlining the Galaxy Tab 4 family of devices and writing blog posts. ### GitLab Migration * We have migrated from gitlab.com to our own instance at gitlab.postmarketos.org, see this separate post for details: Why and how we migrated from gitlab.com to gitlab.postmarketos.org * The migration was followed by a lot of clean up work, and for the most part the new instance is functional. Sometimes cross compilation CI jobs are failing (#3275), we are working on it. ### systemd timeline In last month's And what's next? section it seemed feasible that we could merge the systemd branch into edge in October. However the GitLab migration and related clean up tasks took longer than expected, and so we were not able to work on systemd blockers like #140 as much. In a recent team meeting we had to decide whether to include systemd in the upcoming v24.12 release or not (so we have enough time for testing and follow-up bug fixing). As we talked through it, we realized that we would likely burn ourselves out by attempting to have it in v24.12. It was not easy, but we decided on the new plan to merge it into edge _after_ v24.12 is out and to ship it in a stable release for the first time with v25.06. ## pmbootstrap * Work on the upcoming pmbootstrap v3 has been going on for several months now. It is reliable enough that we can use it pretty much everywhere in our own infrastructure (edge jobs for CI, building packages and images, monitoring, etc.) We slimmed down the related milestone to the critical path of what is really needed to make the release and plan to have it done before v24.12. * Stefan joined Oliver and Caleb in maintaining pmbootstrap. Stefan also made a lot of improvements to the code base, mostly to get v3 ready for release and to improve typing (!2411/imported, !2415/imported, !2419/imported, !2421/imported, !2428, !2424, !2432, !2425, !2431, !2441, !2434, !2450, !2442, !2464, !2466). Thanks Stefan! * SHA1 RSA signatures are considered insecure nowadays, for that reason they have been disabled in Fedora 41. Bart adjusted apk-tools in Alpine to also have a SHA256 RSA signature and Clayton made pmbootstrap to use this signature (!2417/imported, !2465). This fix has been backported to pmbootstrap 2.3.3, so it works on Fedora 41. Thanks Clayton, Bart! * In order to be able to set PipeWire/PulseAudio as default per UI (which makes sense in a transitional phase until all UIs can use PipeWire) and similar use cases, pmbootstrap can now use a custom `_pmb_default` key from APKBUILDs (!2301/imported). Thanks Aster, Clayton! * pmbootstrap now uses gitlab.postmarketos.org for new pmaports.git clones and can migrate users from the previous (archived) gitlab.com URL to the new URL in their already checked out pmaports. This has been backported to 2.3.2. (!2427, !2443, !2445, !2447, !2429, !2460). Thanks Luca, Stefan, Caleb, Oliver! * "pmbootstrap install" now uses GPT (GUID Partition Table, not the AI thing) instead of MBR by default and implements the Discoverable Partitions Specification (!2426, !5707). Thanks Aster, sicelo! * The CI jobs for generating pmbootstrap docs can now run in pmbootstrap's chroots. This is useful so users running this CI script locally don't need to install sphinx dependencies on the host system (!2413/imported). Thanks Luca! * Lots of additional automated testing via integration tests (!2444, !2453). Thanks Clayton, Caleb! * Fixes for making sure pmbootstrap works with Python >= 3.10 as well as running our CI tests against both 3.10 and 3.12 (!2455, !2471). Thanks Caleb! * pmbootstrap was still running apk through QEMU in some cases, the related code has been reworked so this is no longer the case (!2463). Thanks Caleb! * Lots of smaller fixes and improvements (!2416/imported, !2423/imported, !2433, !2412/imported, !2439, !2438, !2446, !2440, !2346/imported, !2449, !2448, !2454, !2451, !2456, !2457, !2458, !2461, !2459, !2462, !2470). Thanks Luca, Caleb, Clayton, Alexey, Oliver, Jane, Vikram! ## pmaports + aports * User interfaces: GNOME was upgraded to 47.1, Phosh was upgraded to 0.42.1, KDE Plasma was upgraded to 6.2.2. Thanks Achill, Stefan, Bart, Robert, Patrycja! * Lots of kernel packaging patches, mostly upgrades to 6.11 (!5399/imported, !5557/imported, !5640/imported, !5608/imported, !5624/imported, !5669/imported, !5611/imported, !5672/imported, !5486/imported, !5602/imported, !5686/imported, !5731, !5741, !5753, !5705, !5702, !5709, !5690, !5725, !5716, !5745). Thanks Clayton, Stefan, Jianhua, Barnabás, Arnav, Adam, Duje, Caleb, Luca, Joel, Andreas, Alexey, Richard, Mighty! * New devices: Google Pixel 3 (!5514/imported), a generic (!!) qcom-msm8953 device (!5692), Sony Xperia Z Ultra (!5739). Thanks Petr, Caleb, Barnabás, Kevin! * A bunch of work went into making libcamera work on ex-Android devices (!5615/imported, !5623/imported, !5626/imported, !5628/imported, !5644/imported, !5710). One notable result is Pixel 3A rear camera enablement! Thanks Robert, Alistair, Clayton! * Initramfs improvements to be able to drop the minimal initramfs and making initramfs-extra opt-in (!5636/imported, !5621/imported, !5751). Thanks Caleb, Luca, Clayton! * Trailblazer now has support for PINE64 PinePhone (!5703). Thanks ArenM! * With latest libadwaita, adaptive windows and dialogs in upstream GTK 4 are finally a reality! Therefore it was possible to finally drop our GTK 4 fork (!5622/imported). Thanks Pablo! * A new postmarketos-dev package has been added to install bash and coreutils by default. We plan to provide -dev variants of some postmarketOS images for some devices for use by the Linux Mobile developer community, and in the meantime this can be used to conveniently add development tools when building your own image (!5180/imported). Thanks Caleb, Clayton! * lk2nd: upgrade to 19.0 and related patches (!5682/imported, !5691, !5750). Thanks Barnabás, kouta-kun! * The router linksys-jamaica has gotten (close to) mainline support (!5649/imported). Thanks ΞЖKƆ/QVH! * samsungipcd has been upgrade to v0.3.0, which adds a PPP bypass, so that traffic can flow through the native interface (rmnet0) directly, and not via the emulated PPP (!5698). Thanks Sergey! * Enable flathub by default (!5726), if flatpak is installed. Thanks Clayton! * If you ever came across the error "crossdirect: can't handle LD_PRELOAD": why this happens has been researched and the error message has been improved to be a lot more helpful (!5744). Thanks Oliver! * dtbloader: upgrade to 1.2.2, adding 3 new devices (!5737). Thanks Nikita! * Initial SoC paackges for common configs of msm8226/msm8974 devices have been added in (!5732). Thanks Barnabás! * The boot partition of google-x64cros devices was increased to 32 mb (!5730, edge post) Thanks Aster! * Lots of patches related to systemd (!5631/imported, !5629/imported, !5592/imported, !5597/imported, !5635/imported, !5647/imported, !5651/imported, !5652/imported, !5560/imported, !5661/imported, !5576/imported, !5630/imported, !5685/imported, !5734). Thanks Jane, Bart, Caleb, Bart, Aster, Clayton, Pablo, Andrei! * Lots of smaller fixes and improvements (!5625/imported, !5627/imported, !5634/imported, !5610/imported, !5639/imported, !5632/imported, !5653/imported, !5637/imported, !5663/imported, !5678/imported, !5679/imported, !5638/imported, !5642/imported, !5654/imported, !5687/imported, !5643/imported, !5633/imported, !5696, !5695, !5699, !5700, !5720, !5721, !5718, !5715, !5722, !5724, !5728, !5714, !5727, !5712, !5735, !5740, !5742, !5743). Thanks Minecrell, Jakko, Clayton, Pablo, Sergey, Caleb, Masanori, Bart, Jens, Alistair, Luca, Oliver! ## mobile-config-firefox * Years ago, by popular demand the navigation bar in mobile-config-firefox was moved to the bottom. However, after it was done we also got requests of making it configurable so people who prefer it differently can choose. This is now possible through an about:config option (!56). Thanks Peter! * Declare touch density (!57) and add an option (via about:config as above) to give more place to tabs (!58). Both merge requests were opened by Peter and are based on an earlier MR from Cédric who started to upstream these patches from Droidian into mobile-config-firefox. Thank you both! * Get some more space in the address bar by removing the `->` arrow (you can just press return on your on-screen keyboard instead, !55). Thanks Peter! * Fix: let clients detect touch screen (!54/imported). Thanks Seth! ## mrhlpr and mrtest * mrtest/add_packages.py: add explanation why there might be no artifacts (!49/imported). Thanks Rob! * mrtest: Add support for using an MR as a repo when upgrading (!50/imported). Thanks Stefan! * CI: Build native libraries for mrhlpr and mrtest via mypyc (sort of as test ground for also doing this with pmbootstrap later on) (!53) Thanks Stefan! * Various small improvements and fixes (!52, !46/imported, !55, !56, !54). Thanks Stefan, Rob, Zach, Pablo! ## Misc * xfce4-phone: simplify display power behavior (!11/imported) and fix values to disable brightness reduction (!12/imported). Thanks Jakko! * images: trailblazer: build gnome instead of gnome-mobile (!112/imported). Thanks Caleb! * BuffyBox has seen various small improvements (!28/imported, !29/imported, !30/imported, !31/imported, !34). Thanks Johannes, Pablo, Colin, Владимир! * postmarketos-mkinitfs: allow including initramfs-extra files in the initramfs (!48/imported). and add compile-time flag to disable Go GC (!56/imported). Thanks Clayton! * bpo_failed_to_queued: add arguments for packages/images/bootstraps (!111/imported). Thanks Luca! * Upstream-compatibility tests have been updated to work with pmbootstrap v3 (!14). Thanks Luca! * openrc-settingsd: Implement Slackware specific information for rc.ntpd (!13). Thanks Nathaniel! * Changes related to gitlab.com -> gitlab.postmarketos.org move (!113, !314, !319, !73, !9, !13, !51). Thanks Luca, Oliver, Arnav, Connor! * Various fixes and improvements in other repositories (!8/imported, !10, !13, !4/imported, !5/imported, !3/imported) Thanks Stefan, Clayton, Oliver, Clayton, Jakko, Rob! ## And what's next? * Since the Mozilla Location Service has been shutdown, we are discussing what other service to use instead for geoclue (#82), with the goal to enable one soon. * SeaGL is coming up, 2024-11-08 to 09 in Seattle, US. Anjan will do an Introduction to postmarketOS talk there, and Clayton will be there as well. Consider stopping by if you are in the area! * The FOSS on mobile devices devroom is back for another round at FOSDEM 2025! If you have a great idea for a talk, we want to hear from you - have a look at the Call for Proposals! ## Help wanted * Edge images for `google-nyan-big` and `google-nyan-blaze` have been disabled, as the depthcharge images have become too big and nobody was able to look into it. If you have one of these devices and are interested in tweaking compression or coming up with another fix, it would be highly appreciated! (#3186) * Our wiki still has many pages that link to the legacy repositories at gitlab.com/postmarketOS, including people's user pages. If somebody wants to help out with fixing these, please do! * You can send us topics to include in the next blog post by commenting in: #185 * If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 4, 2025 at 11:01 AM
Why and how we migrated from gitlab.com to gitlab.postmarketos.org
We have successfully migrated from gitlab.com to a self-hosted instance at gitlab.postmarketos.org! This was quite the journey, so here is a blog post looking back at the reasons, what went well and what didn't, and some lessons learned that might be useful for other free software projects considering a similar move. _The reasoning section of this blog post is based on what we wrote earlier in#77._ Special thanks to OSUOSL for hosting this GitLab instance. It has been a pleasure working with them every step of the way! ## Reasoning ### Why move away from gitlab.com? We are very grateful to the gitlab.com folks for hosting postmarketOS since 2018. They even gave us the "free premium features for cool open source projects" thing. However the main reason we wanted to move away from gitlab.com was that the requirements for signing up and using the site have changed dramatically over the last years. While in 2018 when we migrated over to gitlab.com, there were no problems accessing the website and git repositories over for example Tor or setting up an account without giving any meaningful personal data. Nowadays, **users of gitlab.com are required to provide a valid phone number and credit card information** when setting up an account. Also the website is protected by Cloudflare, blocking lots of proxies and sometimes even making the site hard to use for users with their real IP — event those who set an account up years ago and have been active since. It is very understandable that gitlab.com needs to take measures to avoid spam attacks and prevent misuse of their incredibly useful resources. But that doesn't change the fact that we've likely lost out on potential contributors due to these policies. Over and over again we heard from people who would have loved to contribute to postmarketOS, but have no interest to do so because gitlab.com requires too much of their personal information. We highly appreciate that an Open Source Program Manager from GitLab reached out and asked us for our concerns. So far the situation has not really changed, but he confirmed that we are not the only community to face these challenges with GitLab, and he tried to make his team aware of these problems. ### Who is maintaining the instance? The new gitlab.postmarketos.org instance is maintained by OSUOSL, the Oregon State University Open Source Lab. They already provided various machines and services to free and open source projects, including Alpine Linux, Chimera Linux, Gentoo, GNOME, KDE, Kodi, OpenBSD just to pick a few from this huge list. Clayton talked to them at the FOSSY conference and they offered to host our GitLab instance too, and provide us with GitLab runners for x86_64 and aarch64 as well. We have decided that we will make a one time donation to them (TBD). You will be able to see it on our Open Collective page just like all our other spendings. The benefit for us is that we have mostly the same code forge we have been using for years (we already tried to avoid using features that are not available in the self-hosted version of GitLab), but without the aforementioned GitLab.com-specific problems and without the need to invest time into maintaining the instance ourselves — time we would much rather spend on moving postmarketOS forward. ### Why not SourceHut/Forgejo/...? We think both SourceHut and Forgejo are amazing projects and if you are considering a move for your project, you should definitively take a closer look at them! They just weren't the right fit for us at this moment and we wanted to get it done. SourceHut: we evaluated it as code forge for some time with pmbootstrap.git, but then moved it back. See the related announcement for details. postmarketOS has been using SourceHut Builds to build its binary packages and images since end of 2019 and this works great, we don't have plans to change that. Forgejo: This is the Gitea fork that Codeberg uses. It is close to our requirements, but when we checked there were some details that held us back like not being able to have open discussions block merge requests / PRs. It would probably be a good fit if we invested more time and set up our own CI runners. But at this point we have been looking for an alternative to gitlab.com for two years already. We are happy that we have a solution with an easy path forward where we don't need to spend too much energy (that again we can't spend on improving postmarketOS). ## Preparation ### Announcement OSUOSL was quick with preparing a GitLab instance for us. We configured DNS to to point `gitlab.postmarketos.org` to it. Then on 2024-08-25 we created our announcement #77 with: * An initial target date for the migration (2024-09-15, which changed later). * Our reasoning (pretty much the text above). * A TODO list of tasks that we would expand as we go along. We also announced it in the monthly blog post on the same day. ### Test imports After making some obvious changes such as uploading our logo, it was time to do a full test import. How long would it take to migrate our postmarketOS group? 30 minutes? Two hours? But first we found that there are actually two ways to import groups and projects. #### File export vs. direct transfer File export: * You have to click "export" on gitlab.com and "import" on your instance for each and every project. We have over 80 projects, so this would be a lot of work. * Preserving user contributions is said to be working if users with the same email address already exist in the target GitLab instance, and if they have configured a public email. * The docs page says "Migrating groups and projects by using direct transfer is recommended." Direct Transfer: * With this we could just import the whole postmarketOS group at once, with all its projects. * This feature is disabled since July 11, 2024. * It seemed like preserving user contributions would work: "If you migrate from GitLab.com to self-managed GitLab, an administrator can create users on the self-managed GitLab instance." So this was not great, and the related documentation is hard to read. Only after reading it several times, it now clear that "preserving user contributions" might have worked if users had set a public email and a user with the same address had already existed in the self-hosted instance. Most users of course don't have a public email configured and we don't want to ask people to do this just for this migration. #### Trying "file export" We tested "File export" for our biggest projects pmbootstrap and pmaports. pmbootstrap: * ~15 min export time * ~300 MiB export size * ~2 hour import time pmaports: * ~1 hour export time * ~2 GiB export size * (>2 hour import time, hard to say how long exactly because we didn't get an email when it was done) #### Administrator, Administrator and Administrator reacted with 👍 Afterwards we were quite disappointed that "preserving user contributions" did not work as we expected. Instead of having the original usernames in issues and merge requests, comments, etc., all of them were replaced with the user that did the import. We did not set our emails to public, and looking back at it this might have made it work — but then again asking all of our users to set their email address to public to have everything imported correctly isn't practical. As the direct transfer migration said that "an administrator can create users on the self-managed GitLab instance", we thought that this would be fixed if only we could use the direct transfer method. We decided to reach out to GitLab via the email address that was edited into the top post of the _Direct Transfer status, dead for too long_ issue. We were told to open an issue on https://about.gitlab.com/support and proceeded to do that. It was a bit awkward, because we had to fill an "emergency support request" as the premium for open source tier doesn't include any support. However the support people were nice and after some days of back and forth and waiting for other people at GitLab to make decisions, they asked for a gitlab.com account name and enabled the direct transfer feature for that account. Meanwhile we announced that the migration would be done about a month later (later settling on the date 2024-10-06). We would either get it working with "direct transfer" until then, or just use the "file export" method with much more manual effort. #### Trying "direct transfer" Importing all postmarketOS projects took about 18 hours. It mostly worked, there were some errors regarding the pastebin-like feature that we don't use anyway and a custom emoji that could not be imported. But nothing important had failed. However the "preserving user contributions" did not work with this method here either, even though we did the direct transfer as administrator and at least one account did already exist in the selfhosted gitlab instance with the same email address and username! In hindsight, it might again have worked if we set the emails to public, but this isn't even mentioned in the "direct transfer" documentation. We decided to go ahead without "preserving user contributions". At least the direct transfer allowed us to not manually export and import each and every project. To be fair: from privacy perspective it makes a lot of sense that you cannot just export email addresses from all users that ever contributed / commented in your project without their consent. And just a few days after our migration we got an email (apparently along with everybody else who had "direct transfer" enabled at that time) stating that GitLab is working on an improved solution for user contribution and membership mapping that doesn't rely on emails. So hopefully this will be solved for other projects who want to migrate in the future at some point. ## Migration day The incredible support folks from OSUOSL helped us ensure that OAuth worked properly, among other things. And then the migration day came. Given that the test transfer took 18 hours, we started the migration at midnight. We gave a heads-up a few hours before on status.postmarketos.org, and shared that via IRC/matrix and Mastodon. Then we did the following: * Started the direct transfer. * Archived all our repositories on gitlab.com, so they don't change during or after the migration. * Went to sleep since the migration would take a lot of time again. * Around 18 hours after the import started, it was still ongoing so we posted an update to the status page with next steps and estimation that it may take a few more hours. ### Timeout during merge request transfer The import went the same as the test transfer … except the merge requests of pmaports, just this one repository, went into a timeout for several hundred merge requests. This was unfortunate, but at that point it would be unreasonable to start the transfer again and _hope_ that everything gets imported this time. So now some of the merge requests are not fully transferred. However, the more important part is that all issues of all projects are imported. It seems that the merge requests with timeout were not closed correctly, so now we had several hundred merge requests too many open. In addition to a lot of merge requests that should still be open, but were not usable for the most part since they were not owned by the users who originally submitted them any more. So they could not edit them and would need to submit new merge requests anyway, unless the authors happened to have push rights for the repository. We decided to just close all open merge requests with a quick and dirty shell script: #!/bin/sh TOKEN="glpat-PUT-TOKEN-HERE" while true; do curl \ --header "PRIVATE-TOKEN: $TOKEN" \ "https://yourgitlabinstance/api/v4/merge_requests?scope=all&state=opened" > open2.txt PROJECTS="$(cat open2.txt| jq '.[].project_id' | sort -u)" echo "PROJECTS: $PROJECTS" if [ -z "$PROJECTS" ]; then echo "DONE!" exit 0 fi for project in $PROJECTS; do OPEN_MRS="$(cat open2.txt| jq ".[] | select(.project_id == $project) | .iid")" echo "OPEN_MRS in $project: $OPEN_MRS" if [ -z "$OPEN_MRS" ]; then echo "DONE!" exit 0 fi for i in $OPEN_MRS; do echo ":: $i" curl \ --request PUT \ --header "PRIVATE-TOKEN: $TOKEN" \ "https://yourgitlabinstance/api/v4/projects/$project/merge_requests/$i?state_event=close" echo "" done done done Since then we manually re-opened a few merge requests that still are relevant and can be pushed to by the original authors (and merged most of them), but at least we don't have hundreds of irrelevant open MRs cluttering the instance. ## Finishing up Over the last week we fixed up several things, like CI not working and emails not arriving from our instance. Besides some smaller things everything seems to be working again. Let us know if something is not working for you in #77 or the postmarketos-devel chat. ## Observations / lessons learned * You can use "direct transfer" if you ask support about it. * Test the import before migration day. * "Preserving user contributions" will likely not work until this is available or unless you set email addresses to public and make sure users with the same email exist in your target instance (both untested by us!) * Use a separate account for the transfer/import such as the Administrator account or another one as users which cannot be mapped show up as this one. You don't want this to be the account of another person in the project. * We could have done a better job at making sure most of our CI scripts work with the new instance, fixing them up took quite some time afterwards. * Admin mode is great. * Avoid features that are not available in the free version of self-hosted GitLab, such as epics if you plan to migrate at some point. We mostly tried to do this, but had some epics and migrating them was a lot of manual effort. Thanks to Oliver, Clayton, Luca, Stefan, Aster, for doing migration related tasks, and to Lance from OSUOSL for the amazing support, as well as everybody who has signed up to our new instance and started contributing to postmarketOS through it already! If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 4, 2025 at 11:01 AM
postmarketOS in 2024-11: pmbootstrap v3, RFC process and Seattle
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 --image` feature 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 status` on 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 Caleb! * CI now generates coverage and test reports (!2478), and we have a new bootimg analysis integration test (!2467, !2483). Thanks Caleb, Stefan! * The glob for configuring SSH keys to be copied to your install image with `pmbootstrap install` can 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, Caleb, 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/card0` hardcoded (!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-phosh` has 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! ## 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! * realme-x3 (!5839). Thanks Patriot! ## 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=2` instead of `console=null` to 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! * 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! * 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-shim` with an `install_if` rule anymore, as this had lead to a conflict during `pmbootstrap install`. Instead `doas-sudo-shim` gets installed via the `_pmb_recommends` mechanism now. For postmarketOS edge users this means the `sudo` shim will be uninstalled when upgrading postmarketOS edge, run `doas apk add doas-sudo-shim` to get it back (!5867, edge post). Thanks Oliver! * `postmarketos-mkinitfs` has 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 Caleb, 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, Caleb, dabao1955, Achill, Daniel, 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 Caleb 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-party` in 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-apk` project 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.
postmarketos.org
February 4, 2025 at 11:01 AM
postmarketOS in 2025-01: systemd in edge, mobile-config-thunderbird and Lomiri
One of the best ways to end the year is to visit the Chaos Communication Congress. It has everything a hacker's heart desires - from amazing talks to workshops and so much creativity and so many interesting people in one place! The 38C3 had a small Linux on Mobile assembly and meetup as well as a nice smartphone upcycling art project. Thanks to everybody who came by! ## Organizational The homepage has been updated to feature our new mission statement (!315): > postmarketOS develops free and open-source software to extend the life of consumer electronics. By empowering people to have full control of their devices, we promote a healthier and more sustainable society. This sums up our goals in just a few words and help us guide our decisions. Below that it says what we mean with _sustainability_ and _full control_ in more detail in addition to some more new text. Read it in full by clicking on Home. Thanks Clayton, Bryant, Pablo, Markus, Oliver! Besides that, we have the following organizational news: * New IRC and Matrix channels for audio debugging (#postmarketos-audio) and hacking on amlogic TV boxes and boards. Thanks Ferass, Oliver! * We have improved the process for chat moderation. If somebody joins one of our chats and starts sending spam, insulting people or misbehaves in other ways (see Code of Conduct) then it is now possible to request moderation by temporarily joining a specific room as explained on the CoC page. We are now also listing who the chat moderators are on the CoC page for more transparency. Thanks Anjan, Caleb, Clayton, Ferass, Luca, Stefan, Oliver, Pablo, Bart! * After some discussion we decided to bridge our Mastodon account over to Bluesky. We prefer the Fediverse and Mastodon as they are built on values closer to ours and are more decentralized. So the Fediverse is still our home and people following us there get a better experience as posts are not abbreviated and you can see all boosts instead of only the ones of people that have bridged their accounts as well. With that being said, if somebody is trying to follow what we do on Bluesky then they can do it from now on. Thanks Ferass, Caleb, Clayton! ## systemd merged into edge _If systemd coming to postmarketOS is_ still _news to you (for real, every time we make a blog post on this topic some people show up who apparently hear this for the first time…) then pleaseread the original blog post first!_ We are happy to report that systemd has been merged into postmarketOS edge! We went through the trouble of placing the systemd related packages in a separate package repository, so if you are currently running pmOS edge with OpenRC then you can keep using that too. Some UIs like GNOME (Mobile), Plasma (Mobile) and Phosh will definitely work better with systemd in the long run (see the original blog post) and we recommend switching for these over the next weeks. Note that as of writing our Phosh packaging still needs to be adjusted to have it start up properly (#3464) and you might need to add services manually until #2804 is done. With that said, we now have a nice timeline with more than 4 months to fix bugs and make systemd work really well on edge before the v25.06 release will be branched! Changes in detail: * The big systemd MR (!5563/imported). Thanks Jakub, Jane, Clayton, Caleb, Achill, Bart, Aster, Dylan, Oliver, Sam, Alexander, Andrei, bjorn3! * BPO has been adjusted to support building the split systemd repository (!119). Thanks Oliver! * https://pkgs.postmarketos.org now displays packages from the new systemd repository. Also filtering by repository works now with the new systemd repo (!7). Thanks Jane, Oliver! * Support systemd in postmarketos-ui-fbkeyboard (!6065). Thanks Alexey! * Various services and presets related patches (!5808, !5806, !5954, !5896, !5961, !5969, !6010, !6011, !5964, !5965, !6043, !6049, !6053, !6060, !6078, !6050). Thanks Achill, Caleb, Jane, Clayton, bjorn3, Bart, Alexey, Oliver! * Various upgrades and additions of systemd-enabled packages (!5916, !5917, !5892, !5999, !6008, !6026, !6046, !5803). Thanks Clayton, Bart, Achill, Jane! * Various fixes for -openrc and -systemd subpackages (!6015, !6042). Thanks Clayton, Oliver! * Many other systemd related fixups and improvements (!5946, !5940, !5971, !5976, !5987, !6001, !6003, !6023, !6025, !6028, !6029, !6030, !6031, !6036, !6047, !6057). Thanks Jane, bjorn3, Clayton, Rob, Clayton, Oliver! ## mobile-config-thunderbird People have been wondering for quite some time if it was feasible to create a mobile config for the amazing mail client Thunderbird, like we have it with mobile-config-firefox. Turns out: Yes, it is very possible as Dylan showed with his new mobile-config-thunderbird project! Check the README.md for screenshots showing how he adjusted the interface to work well on mobile. Find mobile-config-thunderbird in postmarketOS edge (!5968). If you are on stable, we can backport the package on demand. For now you can also install it directly from the git repository. And of course you can also use it on other Mobile Linux distributions. Thanks Dylan! ## Lomiri Aster posted this screenshot on 2024-03-20 While preparing this blog post, _breaking news_ came in that the Ubuntu Touch UI Lomiri has just been merged back to edge! Luca and Bart have started the effort around seven years ago and upstreamed a whole lot of patches along the way for making it build with Alpine. Back then it was still called Unity 8 and the postmarketOS port was able to start up at some point even though it could lock up easily and many features were missing. We had it in edge for some time, but due to the libraries and frameworks being very different from what the Ubuntu Touch team used to what we had in Alpine the build broke very often and eventually we had to move it out of the master branch into a feature branch (meaning no binary packages were built and chances were high that it didn't build successfully if you tried it yourself). ⏩ Fast-forward to 2025: the gap of library versions from Ubuntu Touch and Alpine is now much smaller, Luca upstreamed almost all Lomiri related packages to Alpine (with a lot of help from Aster) and maintains them there. Aster wrote a deviceinfo converter _"to parse postmarketOS deviceinfo files and create a Lomiri deviceinfo file out of it"_ and finally a UI package for Lomiri has been merged back into postmarketOS edge (!4496/imported)! Aster wrote: > The Lomiri UI definitely isn't fully done. I still want to finish up the migration of the logo to postmarketos-artwork and add systemd support. But in its current state it is definitely usable. > > (Still have to fix the scaling bug, but I'll have to learn C++ for that so it'll be a while.) This is bleeding edge as it can be, but if running Lomiri on postmarketOS is something that interests you then now is a very good time to try building an image and getting involved. It's probably a good idea to try QEMU first before you put it on your phone/laptop/toaster/etc. Thanks Aster, Luca, Bart! ## New device ports A whole 13 new device ports! * Apple MacBook Air M1 2020 (!5913). Thanks EDK! * Banana Pi BPI-CM4IO Baseboard with BPI-CM4 SoM (!5962). Thanks Ferass! * Banana Pi BPI-M2 Zero (!6063). Thanks User0! * Linksys WRT1900ACS/WRT1900ACS V2 (!5938). Thanks ΞЖKƆ/QVH! * Lenovo ThinkSmart View (!6061, !6041). Thanks Felix, Barnabás! * ODROID N2+ (!5950). Thanks hexaheximal! * ODROID C4 (!5949). Thanks hexaheximal! * Raspberry Pi 5 (!6006). Thanks winbo.yml! * Samsung Galaxy A51 (samsung-a51) (!5887). Thanks Hendra! * Samsung Galaxy Ace 3 LTE (!5973). Thanks User0! * Samsung Galaxy J4 (!5936). Thanks Hendra! * Samsung Galaxy SII Plus (!5861). Thanks VaporGame! * Xiaomi Pad 5 (!5804). Thanks Pan! ## pmbootstrap pmbootstrap 3.2.0 has been released. This release or newer is required for building systemd-enabled postmarketOS images, now that systemd was merged into edge. Recent changes in detail: * Improvements and fixes related to merging systemd into master (!2410/imported, !2528, !2529). Thanks Oliver, Stefan, Rob! * "pmbootstrap flasher boot" now works for fastboot-bootpart (!2508). Thanks Minecrell! * pmb.flasher.frontend: detect lk2nd as subpackage dependency (!2511). Thanks Alexandre! * Fix pmbootstrap install --android-recovery-zip (!2527). Thanks Eisenbahnfan! * A LOT of code quality improvements that will make future maintenance easier (!2490, !2513, !2519, !2518, !2516, !2517, !2525). Thanks Stefan! * Various smaller fixes and improvements (!2510, !2514, !2520, !2509, !2522, !2530, !2526). Thanks Rob, Stefan, magdesign! ## Kernel packaging We would like to especially highlight Frank's amazing work on analyzing and finding a workaround for call audio regressions that specifically broke the bottom mic on xiaomi-beryllium (Poco F1) and distorted audio on OP6 (and possibly OP6T) (!5966, !6032) as well as Caleb's work to fix audio on the OP6 (!5901). The workaround and fix have been backported to v24.12. Thanks Frank, Caleb! Another great merge request came from Jack, who has gotten the rear camera working on Martijn's Megapixels 2.0 for samsung-t0lte _"which means it should work on t03g, m0 and m3 too"_. In fact Stefan gave it a spin on an m0 and posted some photos. Furthermore Jack writes in !5888 that he almost has the front camera working. Thanks Jack, Martijn, Stefan! Changes in detail: * The linux-postmarketos-apple package was upgraded to 6.13.0-rc6 (!6007). Also the apple-iphone6 port was renamed to apple-n61 and now has a new maintainer (!5978). A photo of the new kernel running on the iPhone 6 received quite some feedback on Mastodon. Thanks Aster! * linux-postmarketos-qcom-sdm670: upgrade to v6.12.3 (!5881). Thanks Richard! * linux-postmarketos-pinephonepro: upgrade to 6.11.11 (!5855). Thanks Jan! * linux-purism-librem5: upgrade to 6.6.63 (!5898). Thanks Stefan! * linux-postmarketos-qcom-sdm845: upgrade to 6.13-rc2 (!5902). Thanks Caleb! * linux-postmarketos-allwinner: enable USB ACM module (!5922). Thanks Clayton! * linux-postmarketos-omap: make AES builtin (!5925). Thanks sicelo! * linux-postmarketos-qcom-sm6350: upgrade to 6.12.4 (!5904). Thanks Luca! * linux-postmarketos-mediatek-mt8173: upgrade to 6.12.6 (!5929). Thanks Adam! * community/linux-postmarketos-qcom-laptop: enable CRYPTO_MD4 (!5923). Thanks Anjan! * device-asus-x00td: Update kernel on update And Generate extlinux configs (!5937). Thanks ABOOTHAHIR! * kconfigcheck: enable CRYPTO_MD4 for iwd (!5943). Thanks Anjan! * linux-valve-jupiter: fix checksum for config file (!5947). Thanks Clayton! * kconfigcheck.toml: add comment explaining CONFIG_CRYPTO_MD4 (!5951). Thanks Anjan! * msm89x7: Add mainline kernel and devices (!5693). Thanks Barnabás! * device-xiaomi-surya: add kernel subpackage (!5983). Thanks Raihan! * linux-pine64-pinephonepro: fix notification LED behavior (!5991). Thanks Jan! * kconfigcheck: Add all HID config options from Fedora aarch64 kernel (!5836). Thanks Jonas! * kconfigcheck: drop some input kconfig (!5997). Thanks Clayton! * linux-pine64-pinenote: upgrade to 6.12.0 (!6016). Thanks Antoine! * msm89x7: Update kernel and add more devices (!6005). Thanks Barnabás! * Revert "device-xiaomi-surya: add kernel subpackage (MR 5983)" (!6033). Thanks Rob! * linux-postmarketos-mediatek-mt8173: upgrade to 6.12.9 (!6024). Thanks Adam! * kconfigcheck: add PPP specific section (!5992). Thanks Oliver! * linux-postmarketos-qcom-msm8226: upgrade to 6.11.11 (!5733). Thanks Luca! * linux-postmarketos-qcom-msm8953: upgrade to 6.12.0-r2 (!6041). Thanks Barnabás! * firmware-google-sargo: compress firmware loaded by kernel (!6052). Thanks Richard! * linux-postmarketos-allwinner: upgrade to 6.12.8_git20250104 (!6067). Thanks Arnav! * linux-postmarketos-qcom-laptop: upgrade to 6.13 (!5895). Thanks Clayton! * kconfigcheck.toml: add conditions for certain HID options (!6077). Thanks Rob! * linux-postmarketos-imx-ereader: fix install of 8189fs.ko (!6075). Thanks hrdl! * linux-postmarketos-qcom-sm8250: upgrade to 6.13.0 (!6079). Thanks Jianhua! * linux-postmarketos-mediatek-mt8173: upgrade to 6.13 (!6073). Thanks Adam! * linux-valve-jupiter: upgrade to 6.13 (!6082). Thanks Clayton! ## initramfs * The initramfs now always attempts to resize the rootfs during boot, instead of only doing it when we previously also resized the partition containing the rootfs. This fixes that the filesystems did not get resized if they were flashed onto existing partitions. The call to resize tools is very fast, so this trade-off is worth it (!5844). Thanks Minecrell! * Two similar implementations of setting up a USB mass storage gadget were unified. Besides code deduplication this also simplifies recovery since you can set up the USB storage for repairing a flashed pmOS install now in case of boot failures. Furthermore it is now possible to use a new `pmos.usb-storage=` kernel cmdline argument to set up the USB mass storage gadget by default when going into debug shell. This allows building a special boot image/option that directly exposes the storage for flashing, without having to type in extra debug-shell commands (!5912). Thanks Minecrell! * The initramfs now always mounts the correct rootfs instead of using a legacy fallback path in some cases. This avoids accidentally mounting the wrong rootfs based on enumeration order or timing, when you have multiple installations of pmOS attached to the system. Furthermore mounting /boot is now optional. This will make it possible to boot pmOS in "single partition mode" where there is just a root partition and no boot partition (!5920). Installs from 2022 or older need manual action as described in our edge blog post. Thanks Minecrell, Arnav! * PinePhone hardware keys were fixed in the initramfs (!5931). Thanks Clayton! * Various devices with smaller boot partitions now use `initfs_extra` (!5890, !6034, !6080, !5989, !5993). Thanks AutumnSpark1226, Cedric, knuxify, Kaloyan, Matti! * Google Chromebooks with x64 CPU can now boot from NVMe storage (!6059). Thanks Brady! ## pmaports * Xiaomi POCO M2 Pro / Redmi Note 9S / Redmi Note 9 Pro / Redmi Note 9 Pro Max / Redmi Note 10 Lite (xiaomi-miatoll) have seen some incredible improvements, _"from barely working brick (boots to framebuffer) into almost fully usable mobile phone: 3D acceleration, sensors, audio, camera, modem, wifi and bluetooth are now supported"_ (!5941). Thanks N1kroks! * The _alsa-ucm-conf-qcom-sdm670_ package has been upgraded to 1.2.9_git20241211. _"This causes Pipewire to appropriately control the VoiceMMode1 mixer and route call audio automatically."_ (!5918) Thanks Richard! * An annoying bug has been fixed in edge: syslogd kept one core busy at 100% (!6013). A MR to backport this fix to v24.12 has been made as well and will be merged soon (!6096). Thanks Caleb, Richard, Clayton! * The XFCE4 login greeter background has been fixed (!5889). Thanks Jakko! * NetworkManager has been configured in postmarketOS to detect captive portals. If your UI uses the NetworkManager API, then it can show you notifications about this from now on (and e.g. help you open a browser to bypass the portal) (!5659/imported). Thanks Clayton, Luca! * lk2nd has been upgraded to version 20.0 (!5884), packaging has been updated to also support the htc-m8 (!5919) and the motorola-falcon port has been adjusted to work with newer lk2nd versions (!5994). Thanks Barnabás, Alexandre, Stanislav! * The _u-boot-librecomputer-lafrite_ package could be removed, as the lafrite has u-boot in SPI already and because we use GPT by default now (!5897). Thanks Ferass! * The GNOME base UI package now depends on _power-profiles-provider_ instead of _power-profiles-daemon_ , so another implementation can be used for devices where the default does not work (!5820). Furthermore Showtime _"which is the main candidate to become the new GNOME default video player"_ is getting installed by default via __pmb_recommends_ now (!6038). Thanks Adam, Robert! * Androids (mostly Samsungs) using the imagis-touchscreen driver on pmOS don't wake up anymore by capacitive back/menu buttons (!5358/imported). We already had similar rules for other drivers and it is easy to add more if needed. Thanks Raymond! * A typo was fixed in our NetworkManager dispatcher script that lead to never stopping any unudhcpd processes. _"As a new instance is started each time a USB cable is connected, the number of instances kept growing until reboot."_ (!5905) Thanks Fiona! * The samsung-rossa device has been renamed from -cprime and found a new maintainer (!5865). Thanks Raymond! * Fairphone 5: an unl0kr config has been added to fix that it was invisible during boot (!5910). Thanks cosmo! * In preparation for the future switch to U-Boot for these devices, the lavender and clover devices are now configured to create extlinux configs (!5914). Thanks Alexey! * The Nokia N900 packaging has been improved to share the xdefaults file between all X11 UIs instead of only i3wm, and the lock script has been improved to work with other X11 UIs as well (!5930). Thanks sicelo! * The LXQT UI packaging now uses brightnessctl to save and restore brightness on boots (!5933). Thanks Jakko! * For the PinePhone, the modem autorecovery udev rule was dropped as it isn't needed anymore (!5935). Thanks Arnav! * The Samsung Galaxy Core Prime VE LTE now boots through U-Boot (!5952), _seven_ amlogic U-Boot packages have been merged into one (!4995/imported) and the U-Boot user script load address has been fixed for PinePhones with the Vccq mod (!5980). Thanks Duje, Ferass, Johannes K.! * Ferass noted about the amlogic U-Boot merge: _"if anyone is having issuesplease ping"_ * libcamera packaging has been upgraded to 0.4.0, dropping some upstreamed patches and adding some tuning files with black levels (!5948). Thanks Robert! * dtbloader (EFI driver that finds and installs DeviceTree into the UEFI configuration table) has been upgraded to 1.3.0, adding support for the Huawei Matebook E Go, updating gnu-efi to 3.0.19 and aligning EFI_DT_FIXUP_PROTOCOL with documentation (!5981). Thanks Nikita! * Samsung Galaxy Ace 3 LTE now has initial display support and a fix for SSH over USB (!5975). Thanks User0! * The Kobo and Tolino ebook readers were switched back from GPT to MSDOS partition tables for now to fix that they would only boot once with GPT (!5977). GPT was also disabled for the epson-embt2ws (!5982). Thanks Andreas! * The FIT image configuration for the Samsung Galaxy S9 (wiki page has a nice photo running Sxmo btw) has been adjusted to give more space for the Linux kernel (!5990). Thanks Dzmitry! * The pinenote-dbus-service for the PineNote has been upgraded to 0.2.2_pre5 and found a new maintainer. Also the modprobe rules from Debian images have been added. If you also own this device and are interested in contributing or collaborating, then consider reaching out (!6017, !6021). Thanks Antoine! * riscv64 cross compiling is now much faster (!6054). Thanks Clayton! * The Plasma base UI package installs kunifiedpush again (!6020). Thanks Bart! * The Trailblazer now has X1E Slim 7x support (!5801) and lts/stable kernels have been added (!5926). Thanks Caleb, Ferass! * Various smaller fixes and improvements (!5840, !5893, !5894, !5899, !5900, !5908, !5911, !5928, !5939, !5945, !5956, !5957, !5960, !5963, !5967, !5970, !5984, !5986, !5995, !5996, !5998, !6000, !6002, !6009, !6014, !6018, !6019, !6022, !6027, !6045, !6048, !6051, !6062). Thanks Alexey, Andras, benpicco, Clayton, Dzmitry, Achill, Achill, Luca, Oliver, Pablo, Jan, Raihan, Sergey, Willow, Szczurek, Raymond! ## Artwork and homepage * Ranny has made some incredibly cute variations of the postmarketOS logo in !53!! We will probably integrate them into the homepage at some point and make some stickers with this design. Perhaps this would make a good mascot too...🤔 Thoughts? He also made a nice OSC25 sticker (!57). Thanks Ranny! * A new wallpaper _Bokeh_ has been made by our amazing recurring artwork contributor dikasp (!58). We have used this wallpaper at the top of this blog post. Like all the other awesome wallpapers that dikasp made, it is a candidate to become the official wallpaper of a future postmarketOS release. Thanks dikasp! * The /install list can now be filtered by vendor / device name (!340). Thanks Anxo! * We have added floss.fund's funding.json manifest to the homepage, and submitted it (!345, !6074). Thanks Caleb, Oliver! * Various small fixes and improvements for the homepage (!342, !344, !343, !347, !346, !336, !353). Thanks Anjan, Ferass, Pablo, Oliver, knuxify, Luca! * Various small fixes and improvements for the artwork repo / packaging (!59). (!54). (!6084). Thanks magdesign! Thanks Aster! ## Misc * boot-deploy can now use a certificate verification exploit on OMAP HS based Kindles to chainload a patched u-boot for loading unsigned images :> (!72). Thanks Connor, TeamWin! * bootmac's udev rules have been split into separate files for wifi and bluetooth, a systemd unit file has been added as well as BT mac retry (!10). Thanks Clayton! * q6voiced now builds with meson (!5). Thanks Manuel! * Smaller fixes and improvements in various projects (!36, !67, !68, !75, !8, !10, !11, !12, !16, !18, !66). Thanks Stefan, Dylan, Ferass, Luca, magdesign, Vladimir! ## And what's next? * FOSDEM 2025 is coming up _this weekend!_ Read all about the many Linux Mobile related things (devroom, multiple stands, etc) at LINMOB.net. Looking forward to meeting you there! Oh and we'll have another hackathon afterwards… if last year was any measure this will again be a super productive couple of days that allows us to get a lot done in the moment as well as making plans for the rest of the year! * Aachen's CCC chapter is organizing a mainlining workshop on 2025-02-15 that sounds really fantastic! They _"will be hosting a full-day workshop where we will show you how to port a current Linux kernel to your old mobile devices with relatively little effort and prior knowledge. We will explain the boot process of old and newer Qualcomm devices, introduce you to devicetree and kernel drivers and show you where to find the necessary information on a running Android kernel and in the vendor kernel source code. Afterwards, we will take a lot of time during which you will instill the spirit of the penguin into your own devices with our help and advice. With your kernel you will boot PostmarketOS and gradually get more components up and running. There will also be a tutorial on how to upstream your patches."_ * After the success of the OSC 2024 Tokyo/Fall event, the upcoming OSC 2025 Tokyo/Spring event on 2025-02-21/22 is in the pipeline. Check #92 for the current planning status, especially if you want to help with setting this up. Otherwise if you are in the area, consider hanging out! * And this last bullet point here is not an event, but exciting nonetheless: a rewrite of pmbootstrap's crossdirect logic is on the way… and it will make cross compiling _much faster_ for a whole lot of packages! (!2474) ## Help wanted * You can send us topics to include in the next blog post by commenting in: #194 * If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
February 4, 2025 at 11:01 AM
postmarketOS in 2024-09: systemd, PCB, talks, non-latin language fonts
This post goes out in the middle of the Boiling The Ocean hackfest currently taking place in Berlin. People are hacking on Mobile Linux, local-first ideas, GNOME app design, and everything in between. Also image-based/immutable OSes, which we want to do _optionally_ with postmarketOS (#62) to rule out a whole class of bugs that are pretty inconvenient when you are for example cycling around the world and just want to upgrade your phone OS without finding it in a broken state afterwards. Thanks to Tobias for organizing this and for the photos! Some people have been wondering about the name of the event - it is of course not about _literally_ boiling the ocean, but rather taking up impossible-seeming tasks and making them a reality. The phones on top do not only run postmarketOS, but also show postmarketOS talks from the systemd conference All Systems Go!, which also took place in Berlin a few days beforehand, as well as KDE Akademy from the beginning of the month in Würzburg. ## Organizational * In order to make postmarketOS more stable and reliable, we want to do automated testing with actual hardware. We need a PCB to do that. After a long discussion on the requirements (#63), and search for a skilled person, we are happy to announce that this is moving forward and Jonathan Bruce will implement it. We have pre-approved the expense of the design. The total cost will be of 2000EUR and billed to our Open Collective upon completion, unless there are big unexpected issues, since some iteration rounds are covered by that budget. As with everything we do, the KiCAD files will be under a Free License and published in our gitlab! Thanks to Pablo for pushing this forward, and to everybody who took part in the requirements discussions. * Federico is now a new Trusted Contributor! He has been consistently contributing to postmarketOS for years, and brings our current count of TCs to 12! * As part of some improvement in our governance processes, we have started to update meeting minutes from postmarketOS Core Contributors (former Core Team) meetings after each meeting (instead of sometimes only several months afterwards). You can now expect any decisions taken to show up there bi-weekly. If you have any issue that you believe should be raised to our attention, please open an issue in the postmarketOS repository. * Masanori has done an extraordinary amount of work improving the device categorization in the wiki by contributing more than 300 changes. Thanks a lot! ## systemd related * There's been great improvements towards having systemd in postmarketOS. We've now finalised (after a long discussion) a design of how to enable services in systemd. We've also improved our management of apk patches due to /usr merge in Alpine, and were allowed to drop some patches. There's also been a lot of work to put openrc service enablement properly into subpackages. Thanks Jane, Clayton, Caleb! * pmbootstrap v3 staging branch is now being tested in pmaports CI, and also used by build.postmarketos.org (bpo). This warranties we won't regress, gives the new branch more testing, and is a pre-requisite for systemd builds. Thanks Clayton and Oliver! * The work to implement the "/usr merge" in Alpine is moving forward at great pace, with more than 10 Merge Requests having been merged in the last month. Most of the work so far has consisted in moving libraries and files that were directly installed under `/lib` or other places in the root, but had no specific reason to be there, to the `/usr` hierarchy. Progress is being tracked through a milestone, and is open for anybody to contribute! If you want to help move it forward, grab any of the issues and start hacking on them! Thanks Pablo and Clayton for the work so far, and Natanael for all the reviews! * A lot of progress has been made in bpo building the split systemd repository (#140). Thanks, Oliver! ## Linux kernel related * Many kernels (11) received updates, including several to the last 6.11 release. Thanks to all our kernel and port contributors! * Last month, the kernel configuration was moved from pmbootstrap to pmaports repository. Now, there is also a process in place to request and apply changes that affect multiple kernels! We hope this will be a great improvement to keep consistency in features, and simplify updates in the future! Thanks Oliver and Luca! * Many new options were added to community kernels, which helped inform the new process. Thanks Luca! * Old downstream kernels that need an outdated make, can now make use of the make3.81 package. Thanks Masanori! ## pmaports + aports * GNOME 47 has been released! Among all the changes that you can read in the release notes, we can highlight that the File Chooser dialog in sandboxed or GTK4 apps is now provided by Nautilus, which is now mostly ready for mobile. Therefore, Nautilus is now installed by default instead of Portfolio (thanks Pan!). Upstream is still aware of some issues with the list view and batch renaming, so hold your bug reports some months if you can! There are also important improvements in the Calendar app, in addition to the amazing accent colors! Some updates might still be pending. You can follow the aports' tracking issue for more details. Thank you everybody making this possible, from the whole of the community upstream, to people doing packaging (mostly fossdd and Krassy) and merges in alpine! * Following the GNOME 47 update, the GNOME Software apk plugin has also been updated. As usual, we encountered some small bugs upstream, but this time it also required changes to the APK polkit service. Thanks Pablo! * Speaking of apk plugins for graphical package manager frontends: the apk plugin for Discover from Plasma has been merged upstream! Thanks, Alexey, Devin, and all the reviewers! * Along with that, people are working on adding Alpine/musl CI for the entire KDE software stack. For a bunch of repositories it has already been enabled. Thanks Bart and everybody who helped! * Most intel GPU firmware is now included in the initramfs for generic x86_64 devices. This allows to support a wider array of hardware. Thanks Clayton! * Buffyboard and unl0kr can now load the configuration from `/usr` in addition to `/etc`, allowing distributions to better comply with the FHS standard. Thanks fossdd, Johannes and Pablo! * We have 1 new device port: Samsung Galaxy Tab S5e Wi-Fi. Thanks Usia! * One more device, the Lenovo Xiaoxin Pad Pro 12.6 (Lenovo Tab P12 Pro) gained sensor support. Thanks chalkin! * Default postmarketOS installations now includes fonts for non-latin languages, without a great growth in font size. This was possible fine-tunning the fonts included, and after a lengthy discussion on the best approach to make it both flexible and resilient. It's good not all changes require that much back and forth! Thanks Masanori! * New installations now use `doas` instead of `sudo`  by default. This was complemented with further work to not have root user be asked for the password For more details on how to switch from one to the other please see the edge blog post. Thanks Aster and fossdd! * Upgrade GNOME Shell Mobile to the latest patches which includes a lot of papercut improvements. Thanks Angelo! * BTRFS installations now boot faster, after we removed the check on boot-time, that can take a very long time. Thanks Jane! * The N900 continues receiving maintenance after a keymap update broke its functionality. Thanks Sicelo! * The generic aarch64 port, named Trailblazer, now supports X1 Elite laptops. Thanks Minecrell! ## Artwork and homepage * Dikasp made an incredibly beautiful wallpaper this September. Thanks Dikasp! * The postmarketos.org website saw multiple  improvements to reduce the time to load and improve the visual consistency (check out the new footer at the bottom of this page!), and dark mode. Thanks Markus and knuxify! * A postmarketOS leaflet to hand out at events was created! It turned out beautifully and was translated from the initial English version to a Japanese version, and a German version is in progress. Thanks Masanori, Lioh, Oliver, Rob, Ranny, Jens, Markus. * Also for events, a A5 sheet to show basic info about a device presented at a booth/table !49. Thanks, Rob! * Stickers for FOSSY and OSC24TK. Thanks Ranny and Masanori! ## Event recordings * All Systems Go: systemd-ifying postmarketOS, our immutable future, and why Alpine is cooler than you thought with Caleb and Clayton * KDE Akademy: Daily driving Plasma Mobile and what's still lacking with Bart (slides, blog post) * FrOSCon: postmarketOS podcast Live with @Adrianyyy, @ollieparanoid, @1peter10, @devrtz, @calebccff, @Fellintr, @agx, @kuleszdl, @z3ntu, @erebion ## Behind the scenes Writing these blog posts is a looot of effort. Over the past months, we have established the workflow of Pablo going through all merge requests since the month before and preparing a draft based on that — a huge tasks that keeps growing with each month! Oliver then finalizes the blog post by adding an image at the top, categorizing the bullet points, writing an introduction and adding some additional bullet points, etc. This takes each of us roughly a full day (!) - we have made a lot of optimizations compared to the very long early days blog posts, such as having only one image, and using bullet points. But still, it would be fantastic (and at some point required) to optimize this further. Therefore the idea is that if you enjoy reading these blog posts, and you are either sending postmarketOS patches yourself, or follow development closely, then from now on you can send us a list of topics to include in the next blog post by commenting here! ## And what's next? * The migration to our selfhosted gitlab has been postponed to 2024-10-06 (next Sunday!), as the _direct transfer_ feature could not be enabled by gitlab.com folks in time for the previously planned date. With that being said, we have gotten a great amount of help from their team so far, and from Lance at OSUOSL. Read the details and the answer to the popular question _"Why not SourceHut/Forgejo/...?"_ in #77. * Moving on with systemd and the /usr merge. With current planning, we expect the systemd branch to be merged into pmaports master within the next 3 weeks (so after the gitlab migration, doing both in parallel would be too much). When this is done, we will be able to have the first automatic images generated! * Initial support for Google Pixel 3 is coming soon (!5514), together with speaker support that Joel recently got working! * Rob and Masanori are organizing a postmarketOS booth at Open Source Conference 2024 Tokyo/Fall (2024-10-26, Tokyo, Japan). If you are in the area, consider coming over! If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
January 28, 2025 at 9:00 AM
postmarketOS in 2024-10: Accepted Grants, Timelines and Tokyo
For the first time postmarketOS was represented at an event in Japan thanks to Rob and Masanori who went to the Open Source Conference 2024 Tokyo/Fall! As shown in the photo above, they had a cool table with asus-grouper, asus-tf201, xiaomi-beryllium, pine64-pinephone as well as stickers and flyers in Japanese (which ran out by the end!) and English. Several visitors mentioned that they were astonished how fast the tf201 and grouper appeared in the shell - and in general they were interested in seeing devices running with (near) mainline kernels. Thanks to everybody who came by! If you are in the area and missed the event, a Spring edition is coming up in February 2025. ## Organizational ### NLnet Grants Accepted Pablo and Oliver helped members of the Linux Mobile community to apply for grants from NLnet's NGI Zero Core fund, and we are excited to announce that they have been accepted! * Biktor and Lynxis will be working on OpenIMSd, which aims to bring VoLTE (4G voice calls) to Qualcomm based phones (like the PinePhone) running Free Software Mobile Operating Systems including postmarketOS, Mobian and others. They will create a daemon which runs in parallel to ModemManager, which configures the baseband via QMI and brings up all the required services to be able to place VoLTE calls. * Danny will be able to improve mobile-config-firefox and replace hacks we currently carry there to make the desktop version of Firefox work on mobile, with proper solutions in upstream Firefox. See Enhancing Firefox for Linux on Mobile for details. Milestones have been created and will be filled with related issues and merge requests. ### Trusted Contributors * Aster is a new Trusted Contributor! They have been contributing to postmarketOS a lot over the past months, especially the Lomiri packaging, systemd support and design ideas for optionally immutable postmarketOS. * Bryant stepped down as TC, and we thank him for the great improvements he has made to the project in the short time as TC: a lot of help with organizing ourselves better, reworking the homepage navigation and adding team pages (which also resulted in the amazing redesign!), work on mainlining the Galaxy Tab 4 family of devices and writing blog posts. ### GitLab Migration * We have migrated from gitlab.com to our own instance at gitlab.postmarketos.org, see this separate post for details: Why and how we migrated from gitlab.com to gitlab.postmarketos.org * The migration was followed by a lot of clean up work, and for the most part the new instance is functional. Sometimes cross compilation CI jobs are failing (#3275), we are working on it. ### systemd timeline In last month's And what's next? section it seemed feasible that we could merge the systemd branch into edge in October. However the GitLab migration and related clean up tasks took longer than expected, and so we were not able to work on systemd blockers like #140 as much. In a recent team meeting we had to decide whether to include systemd in the upcoming v24.12 release or not (so we have enough time for testing and follow-up bug fixing). As we talked through it, we realized that we would likely burn ourselves out by attempting to have it in v24.12. It was not easy, but we decided on the new plan to merge it into edge _after_ v24.12 is out and to ship it in a stable release for the first time with v25.06. ## pmbootstrap * Work on the upcoming pmbootstrap v3 has been going on for several months now. It is reliable enough that we can use it pretty much everywhere in our own infrastructure (edge jobs for CI, building packages and images, monitoring, etc.) We slimmed down the related milestone to the critical path of what is really needed to make the release and plan to have it done before v24.12. * Stefan joined Oliver and Caleb in maintaining pmbootstrap. Stefan also made a lot of improvements to the code base, mostly to get v3 ready for release and to improve typing (!2411/imported, !2415/imported, !2419/imported, !2421/imported, !2428, !2424, !2432, !2425, !2431, !2441, !2434, !2450, !2442, !2464, !2466). Thanks Stefan! * SHA1 RSA signatures are considered insecure nowadays, for that reason they have been disabled in Fedora 41. Bart adjusted apk-tools in Alpine to also have a SHA256 RSA signature and Clayton made pmbootstrap to use this signature (!2417/imported, !2465). This fix has been backported to pmbootstrap 2.3.3, so it works on Fedora 41. Thanks Clayton, Bart! * In order to be able to set PipeWire/PulseAudio as default per UI (which makes sense in a transitional phase until all UIs can use PipeWire) and similar use cases, pmbootstrap can now use a custom `_pmb_default` key from APKBUILDs (!2301/imported). Thanks Aster, Clayton! * pmbootstrap now uses gitlab.postmarketos.org for new pmaports.git clones and can migrate users from the previous (archived) gitlab.com URL to the new URL in their already checked out pmaports. This has been backported to 2.3.2. (!2427, !2443, !2445, !2447, !2429, !2460). Thanks Luca, Stefan, Caleb, Oliver! * "pmbootstrap install" now uses GPT (GUID Partition Table, not the AI thing) instead of MBR by default and implements the Discoverable Partitions Specification (!2426, !5707). Thanks Aster, sicelo! * The CI jobs for generating pmbootstrap docs can now run in pmbootstrap's chroots. This is useful so users running this CI script locally don't need to install sphinx dependencies on the host system (!2413/imported). Thanks Luca! * Lots of additional automated testing via integration tests (!2444, !2453). Thanks Clayton, Caleb! * Fixes for making sure pmbootstrap works with Python >= 3.10 as well as running our CI tests against both 3.10 and 3.12 (!2455, !2471). Thanks Caleb! * pmbootstrap was still running apk through QEMU in some cases, the related code has been reworked so this is no longer the case (!2463). Thanks Caleb! * Lots of smaller fixes and improvements (!2416/imported, !2423/imported, !2433, !2412/imported, !2439, !2438, !2446, !2440, !2346/imported, !2449, !2448, !2454, !2451, !2456, !2457, !2458, !2461, !2459, !2462, !2470). Thanks Luca, Caleb, Clayton, Alexey, Oliver, Jane, Vikram! ## pmaports + aports * User interfaces: GNOME was upgraded to 47.1, Phosh was upgraded to 0.42.1, KDE Plasma was upgraded to 6.2.2. Thanks fossdd, Stefan, Bart, Robert, Patrycja! * Lots of kernel packaging patches, mostly upgrades to 6.11 (!5399/imported, !5557/imported, !5640/imported, !5608/imported, !5624/imported, !5669/imported, !5611/imported, !5672/imported, !5486/imported, !5602/imported, !5686/imported, !5731, !5741, !5753, !5705, !5702, !5709, !5690, !5725, !5716, !5745). Thanks Clayton, Stefan, Jianhua, Barnabás, Arnav, Adam, Duje, Caleb, Luca, Joel, Andreas, Alexey, Richard, Mighty! * New devices: Google Pixel 3 (!5514/imported), a generic (!!) qcom-msm8953 device (!5692), Sony Xperia Z Ultra (!5739). Thanks Petr, Caleb, Barnabás, Kevin! * A bunch of work went into making libcamera work on ex-Android devices (!5615/imported, !5623/imported, !5626/imported, !5628/imported, !5644/imported, !5710). One notable result is Pixel 3A rear camera enablement! Thanks Robert, Alistair, Clayton! * Initramfs improvements to be able to drop the minimal initramfs and making initramfs-extra opt-in (!5636/imported, !5621/imported, !5751). Thanks Caleb, Luca, Clayton! * Trailblazer now has support for PINE64 PinePhone (!5703). Thanks ArenM! * With latest libadwaita, adaptive windows and dialogs in upstream GTK 4 are finally a reality! Therefore it was possible to finally drop our GTK 4 fork (!5622/imported). Thanks Pablo! * A new postmarketos-dev package has been added to install bash and coreutils by default. We plan to provide -dev variants of some postmarketOS images for some devices for use by the Linux Mobile developer community, and in the meantime this can be used to conveniently add development tools when building your own image (!5180/imported). Thanks Caleb, Clayton! * lk2nd: upgrade to 19.0 and related patches (!5682/imported, !5691, !5750). Thanks Barnabás, kouta-kun! * The router linksys-jamaica has gotten (close to) mainline support (!5649/imported). Thanks ΞЖKƆ/QVH! * samsungipcd has been upgrade to v0.3.0, which adds a PPP bypass, so that traffic can flow through the native interface (rmnet0) directly, and not via the emulated PPP (!5698). Thanks Sergey! * Enable flathub by default (!5726), if flatpak is installed. Thanks Clayton! * If you ever came across the error "crossdirect: can't handle LD_PRELOAD": why this happens has been researched and the error message has been improved to be a lot more helpful (!5744). Thanks Oliver! * dtbloader: upgrade to 1.2.2, adding 3 new devices (!5737). Thanks Nikita! * Initial SoC paackges for common configs of msm8226/msm8974 devices have been added in (!5732). Thanks Barnabás! * The boot partition of google-x64cros devices was increased to 32 mb (!5730, edge post) Thanks Aster! * Lots of patches related to systemd (!5631/imported, !5629/imported, !5592/imported, !5597/imported, !5635/imported, !5647/imported, !5651/imported, !5652/imported, !5560/imported, !5661/imported, !5576/imported, !5630/imported, !5685/imported, !5734). Thanks Jane, Bart, Caleb, Bart, Aster, Clayton, Pablo, Andrei! * Lots of smaller fixes and improvements (!5625/imported, !5627/imported, !5634/imported, !5610/imported, !5639/imported, !5632/imported, !5653/imported, !5637/imported, !5663/imported, !5678/imported, !5679/imported, !5638/imported, !5642/imported, !5654/imported, !5687/imported, !5643/imported, !5633/imported, !5696, !5695, !5699, !5700, !5720, !5721, !5718, !5715, !5722, !5724, !5728, !5714, !5727, !5712, !5735, !5740, !5742, !5743). Thanks Minecrell, Jakko, Clayton, Pablo, Sergey, Caleb, Masanori, Bart, Jens, Alistair, Luca, Oliver! ## mobile-config-firefox * Years ago, by popular demand the navigation bar in mobile-config-firefox was moved to the bottom. However, after it was done we also got requests of making it configurable so people who prefer it differently can choose. This is now possible through an about:config option (!56). Thanks Peter! * Declare touch density (!57) and add an option (via about:config as above) to give more place to tabs (!58). Both merge requests were opened by Peter and are based on an earlier MR from Cédric who started to upstream these patches from Droidian into mobile-config-firefox. Thank you both! * Get some more space in the address bar by removing the `->` arrow (you can just press return on your on-screen keyboard instead, !55). Thanks Peter! * Fix: let clients detect touch screen (!54/imported). Thanks Seth! ## mrhlpr and mrtest * mrtest/add_packages.py: add explanation why there might be no artifacts (!49/imported). Thanks Rob! * mrtest: Add support for using an MR as a repo when upgrading (!50/imported). Thanks Stefan! * CI: Build native libraries for mrhlpr and mrtest via mypyc (sort of as test ground for also doing this with pmbootstrap later on) (!53) Thanks Stefan! * Various small improvements and fixes (!52, !46/imported, !55, !56, !54). Thanks Stefan, Rob, Zach, Pablo! ## Misc * xfce4-phone: simplify display power behavior (!11/imported) and fix values to disable brightness reduction (!12/imported). Thanks Jakko! * images: trailblazer: build gnome instead of gnome-mobile (!112/imported). Thanks Caleb! * BuffyBox has seen various small improvements (!28/imported, !29/imported, !30/imported, !31/imported, !34). Thanks Johannes, Pablo, Colin, Владимир! * postmarketos-mkinitfs: allow including initramfs-extra files in the initramfs (!48/imported). and add compile-time flag to disable Go GC (!56/imported). Thanks Clayton! * bpo_failed_to_queued: add arguments for packages/images/bootstraps (!111/imported). Thanks Luca! * Upstream-compatibility tests have been updated to work with pmbootstrap v3 (!14). Thanks Luca! * openrc-settingsd: Implement Slackware specific information for rc.ntpd (!13). Thanks Nathaniel! * Changes related to gitlab.com -> gitlab.postmarketos.org move (!113, !314, !319, !73, !9, !13, !51). Thanks Luca, Oliver, Arnav, Connor! * Various fixes and improvements in other repositories (!8/imported, !10, !13, !4/imported, !5/imported, !3/imported) Thanks Stefan, Clayton, Oliver, Clayton, Jakko, Rob! ## And what's next? * Since the Mozilla Location Service has been shutdown, we are discussing what other service to use instead for geoclue (#82), with the goal to enable one soon. * SeaGL is coming up, 2024-11-08 to 09 in Seattle, US. Anjan will do an Introduction to postmarketOS talk there, and Clayton will be there as well. Consider stopping by if you are in the area! * The FOSS on mobile devices devroom is back for another round at FOSDEM 2025! If you have a great idea for a talk, we want to hear from you - have a look at the Call for Proposals! ## Help wanted * Edge images for `google-nyan-big` and `google-nyan-blaze` have been disabled, as the depthcharge images have become too big and nobody was able to look into it. If you have one of these devices and are interested in tweaking compression or coming up with another fix, it would be highly appreciated! (#3186) * Our wiki still has many pages that link to the legacy repositories at gitlab.com/postmarketOS, including people's user pages. If somebody wants to help out with fixing these, please do! * You can send us topics to include in the next blog post by commenting in: #185 * If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
January 28, 2025 at 9:00 AM
postmarketOS in 2025-01: systemd in edge, mobile-config-thunderbird and Lomiri
One of the best ways to end the year is to visit the Chaos Communication Congress. It has everything a hacker's heart desires - from amazing talks to workshops and so much creativity and so many interesting people in one place! The 38C3 had a small Linux on Mobile assembly and meetup as well as a nice smartphone upcycling art project. Thanks to everybody who came by! ## Organizational The homepage has been updated to feature our new mission statement (!315): > postmarketOS develops free and open-source software to extend the life of consumer electronics. By empowering people to have full control of their devices, we promote a healthier and more sustainable society. This sums up our goals in just a few words and help us guide our decisions. Below that it says what we mean with _sustainability_ and _full control_ in more detail in addition to some more new text. Read it in full by clicking on Home. Thanks Clayton, Bryant, Pablo, Markus, Oliver! Besides that, we have the following organizational news: * New IRC and Matrix channels for audio debugging (#postmarketos-audio) and hacking on amlogic TV boxes and boards. Thanks Ferass, Oliver! * We have improved the process for chat moderation. If somebody joins one of our chats and starts sending spam, insulting people or misbehaves in other ways (see Code of Conduct) then it is now possible to request moderation by temporarily joining a specific room as explained on the CoC page. We are now also listing who the chat moderators are on the CoC page for more transparency. Thanks Anjan, Caleb, Clayton, Ferass, Luca, Stefan, Oliver, Pablo, Bart! * After some discussion we decided to bridge our Mastodon account over to Bluesky. We prefer the Fediverse and Mastodon as they are built on values closer to ours and are more decentralized. So the Fediverse is still our home and people following us there get a better experience as posts are not abbreviated and you can see all boosts instead of only the ones of people that have bridged their accounts as well. With that being said, if somebody is trying to follow what we do on Bluesky then they can do it from now on. Thanks Ferass, Caleb, Clayton! ## systemd merged into edge _If systemd coming to postmarketOS is_ still _news to you (for real, every time we make a blog post on this topic some people show up who apparently hear this for the first time…) then pleaseread the original blog post first!_ We are happy to report that systemd has been merged into postmarketOS edge! We went through the trouble of placing the systemd related packages in a separate package repository, so if you are currently running pmOS edge with OpenRC then you can keep using that too. Some UIs like GNOME (Mobile), Plasma (Mobile) and Phosh will definitely work better with systemd in the long run (see the original blog post) and we recommend switching for these over the next weeks. Note that as of writing our Phosh packaging still needs to be adjusted to have it start up properly (#3464) and you might need to add services manually until #2804 is done. With that said, we now have a nice timeline with more than 4 months to fix bugs and make systemd work really well on edge before the v25.06 release will be branched! Changes in detail: * The big systemd MR (!5563/imported). Thanks Jakub, Jane, Clayton, Caleb, fossdd, Bart, Aster, Dylan, Oliver, Sam, Alexander, Andrei, bjorn3! * BPO has been adjusted to support building the split systemd repository (!119). Thanks Oliver! * https://pkgs.postmarketos.org now displays packages from the new systemd repository. Also filtering by repository works now with the new systemd repo (!7). Thanks Jane, Oliver! * Support systemd in postmarketos-ui-fbkeyboard (!6065). Thanks Alexey! * Various services and presets related patches (!5808, !5806, !5954, !5896, !5961, !5969, !6010, !6011, !5964, !5965, !6043, !6049, !6053, !6060, !6078, !6050). Thanks fossdd, Caleb, Jane, Clayton, bjorn3, Bart, Alexey, Oliver! * Various upgrades and additions of systemd-enabled packages (!5916, !5917, !5892, !5999, !6008, !6026, !6046, !5803). Thanks Clayton, Bart, fossdd, Jane! * Various fixes for -openrc and -systemd subpackages (!6015, !6042). Thanks Clayton, Oliver! * Many other systemd related fixups and improvements (!5946, !5940, !5971, !5976, !5987, !6001, !6003, !6023, !6025, !6028, !6029, !6030, !6031, !6036, !6047, !6057). Thanks Jane, bjorn3, Clayton, Rob, Clayton, Oliver! ## mobile-config-thunderbird People have been wondering for quite some time if it was feasible to create a mobile config for the amazing mail client Thunderbird, like we have it with mobile-config-firefox. Turns out: Yes, it is very possible as Dylan showed with his new mobile-config-thunderbird project! Check the README.md for screenshots showing how he adjusted the interface to work well on mobile. Find mobile-config-thunderbird in postmarketOS edge (!5968). If you are on stable, we can backport the package on demand. For now you can also install it directly from the git repository. And of course you can also use it on other Mobile Linux distributions. Thanks Dylan! ## Lomiri Aster posted this screenshot on 2024-03-20 While preparing this blog post, _breaking news_ came in that the Ubuntu Touch UI Lomiri has just been merged back to edge! Luca and Bart have started the effort around seven years ago and upstreamed a whole lot of patches along the way for making it build with Alpine. Back then it was still called Unity 8 and the postmarketOS port was able to start up at some point even though it could lock up easily and many features were missing. We had it in edge for some time, but due to the libraries and frameworks being very different from what the Ubuntu Touch team used to what we had in Alpine the build broke very often and eventually we had to move it out of the master branch into a feature branch (meaning no binary packages were built and chances were high that it didn't build successfully if you tried it yourself). ⏩ Fast-forward to 2025: the gap of library versions from Ubuntu Touch and Alpine is now much smaller, Luca upstreamed almost all Lomiri related packages to Alpine (with a lot of help from Aster) and maintains them there. Aster wrote a deviceinfo converter _"to parse postmarketOS deviceinfo files and create a Lomiri deviceinfo file out of it"_ and finally a UI package for Lomiri has been merged back into postmarketOS edge (!4496/imported)! Aster wrote: > The Lomiri UI definitely isn't fully done. I still want to finish up the migration of the logo to postmarketos-artwork and add systemd support. But in its current state it is definitely usable. > > (Still have to fix the scaling bug, but I'll have to learn C++ for that so it'll be a while.) This is bleeding edge as it can be, but if running Lomiri on postmarketOS is something that interests you then now is a very good time to try building an image and getting involved. It's probably a good idea to try QEMU first before you put it on your phone/laptop/toaster/etc. Thanks Aster, Luca, Bart! ## New device ports A whole 13 new device ports! * Apple MacBook Air M1 2020 (!5913). Thanks EDK! * Banana Pi BPI-CM4IO Baseboard with BPI-CM4 SoM (!5962). Thanks Ferass! * Banana Pi BPI-M2 Zero (!6063). Thanks User0! * Linksys WRT1900ACS/WRT1900ACS V2 (!5938). Thanks ΞЖKƆ/QVH! * Lenovo ThinkSmart View (!6061, !6041). Thanks Felix, Barnabás! * ODROID N2+ (!5950). Thanks hexaheximal! * ODROID C4 (!5949). Thanks hexaheximal! * Raspberry Pi 5 (!6006). Thanks winbo.yml! * Samsung Galaxy A51 (samsung-a51) (!5887). Thanks Hendra! * Samsung Galaxy Ace 3 LTE (!5973). Thanks User0! * Samsung Galaxy J4 (!5936). Thanks Hendra! * Samsung Galaxy SII Plus (!5861). Thanks VaporGame! * Xiaomi Pad 5 (!5804). Thanks Pan! ## pmbootstrap pmbootstrap 3.2.0 has been released. This release or newer is required for building systemd-enabled postmarketOS images, now that systemd was merged into edge. Recent changes in detail: * Improvements and fixes related to merging systemd into master (!2410/imported, !2528, !2529). Thanks Oliver, Stefan, Rob! * "pmbootstrap flasher boot" now works for fastboot-bootpart (!2508). Thanks Minecrell! * pmb.flasher.frontend: detect lk2nd as subpackage dependency (!2511). Thanks Alexandre! * Fix pmbootstrap install --android-recovery-zip (!2527). Thanks Eisenbahnfan! * A LOT of code quality improvements that will make future maintenance easier (!2490, !2513, !2519, !2518, !2516, !2517, !2525). Thanks Stefan! * Various smaller fixes and improvements (!2510, !2514, !2520, !2509, !2522, !2530, !2526). Thanks Rob, Stefan, magdesign! ## Kernel packaging We would like to especially highlight Frank's amazing work on analyzing and finding a workaround for call audio regressions that specifically broke the bottom mic on xiaomi-beryllium (Poco F1) and distorted audio on OP6 (and possibly OP6T) (!5966, !6032) as well as Caleb's work to fix audio on the OP6 (!5901). The workaround and fix have been backported to v24.12. Thanks Frank, Caleb! Another great merge request came from Jack, who has gotten the rear camera working on Martijn's Megapixels 2.0 for samsung-t0lte _"which means it should work on t03g, m0 and m3 too"_. In fact Stefan gave it a spin on an m0 and posted some photos. Furthermore Jack writes in !5888 that he almost has the front camera working. Thanks Jack, Martijn, Stefan! Changes in detail: * The linux-postmarketos-apple package was upgraded to 6.13.0-rc6 (!6007). Also the apple-iphone6 port was renamed to apple-n61 and now has a new maintainer (!5978). A photo of the new kernel running on the iPhone 6 received quite some feedback on Mastodon. Thanks Aster! * linux-postmarketos-qcom-sdm670: upgrade to v6.12.3 (!5881). Thanks Richard! * linux-postmarketos-pinephonepro: upgrade to 6.11.11 (!5855). Thanks Jan! * linux-purism-librem5: upgrade to 6.6.63 (!5898). Thanks Stefan! * linux-postmarketos-qcom-sdm845: upgrade to 6.13-rc2 (!5902). Thanks Caleb! * linux-postmarketos-allwinner: enable USB ACM module (!5922). Thanks Clayton! * linux-postmarketos-omap: make AES builtin (!5925). Thanks sicelo! * linux-postmarketos-qcom-sm6350: upgrade to 6.12.4 (!5904). Thanks Luca! * linux-postmarketos-mediatek-mt8173: upgrade to 6.12.6 (!5929). Thanks Adam! * community/linux-postmarketos-qcom-laptop: enable CRYPTO_MD4 (!5923). Thanks Anjan! * device-asus-x00td: Update kernel on update And Generate extlinux configs (!5937). Thanks ABOOTHAHIR! * kconfigcheck: enable CRYPTO_MD4 for iwd (!5943). Thanks Anjan! * linux-valve-jupiter: fix checksum for config file (!5947). Thanks Clayton! * kconfigcheck.toml: add comment explaining CONFIG_CRYPTO_MD4 (!5951). Thanks Anjan! * msm89x7: Add mainline kernel and devices (!5693). Thanks Barnabás! * device-xiaomi-surya: add kernel subpackage (!5983). Thanks Raihan! * linux-pine64-pinephonepro: fix notification LED behavior (!5991). Thanks Jan! * kconfigcheck: Add all HID config options from Fedora aarch64 kernel (!5836). Thanks Jonas! * kconfigcheck: drop some input kconfig (!5997). Thanks Clayton! * linux-pine64-pinenote: upgrade to 6.12.0 (!6016). Thanks Antoine! * msm89x7: Update kernel and add more devices (!6005). Thanks Barnabás! * Revert "device-xiaomi-surya: add kernel subpackage (MR 5983)" (!6033). Thanks Rob! * linux-postmarketos-mediatek-mt8173: upgrade to 6.12.9 (!6024). Thanks Adam! * kconfigcheck: add PPP specific section (!5992). Thanks Oliver! * linux-postmarketos-qcom-msm8226: upgrade to 6.11.11 (!5733). Thanks Luca! * linux-postmarketos-qcom-msm8953: upgrade to 6.12.0-r2 (!6041). Thanks Barnabás! * firmware-google-sargo: compress firmware loaded by kernel (!6052). Thanks Richard! * linux-postmarketos-allwinner: upgrade to 6.12.8_git20250104 (!6067). Thanks Arnav! * linux-postmarketos-qcom-laptop: upgrade to 6.13 (!5895). Thanks Clayton! * kconfigcheck.toml: add conditions for certain HID options (!6077). Thanks Rob! * linux-postmarketos-imx-ereader: fix install of 8189fs.ko (!6075). Thanks hrdl! * linux-postmarketos-qcom-sm8250: upgrade to 6.13.0 (!6079). Thanks Jianhua! * linux-postmarketos-mediatek-mt8173: upgrade to 6.13 (!6073). Thanks Adam! * linux-valve-jupiter: upgrade to 6.13 (!6082). Thanks Clayton! ## initramfs * The initramfs now always attempts to resize the rootfs during boot, instead of only doing it when we previously also resized the partition containing the rootfs. This fixes that the filesystems did not get resized if they were flashed onto existing partitions. The call to resize tools is very fast, so this trade-off is worth it (!5844). Thanks Minecrell! * Two similar implementations of setting up a USB mass storage gadget were unified. Besides code deduplication this also simplifies recovery since you can set up the USB storage for repairing a flashed pmOS install now in case of boot failures. Furthermore it is now possible to use a new `pmos.usb-storage=` kernel cmdline argument to set up the USB mass storage gadget by default when going into debug shell. This allows building a special boot image/option that directly exposes the storage for flashing, without having to type in extra debug-shell commands (!5912). Thanks Minecrell! * The initramfs now always mounts the correct rootfs instead of using a legacy fallback path in some cases. This avoids accidentally mounting the wrong rootfs based on enumeration order or timing, when you have multiple installations of pmOS attached to the system. Furthermore mounting /boot is now optional. This will make it possible to boot pmOS in "single partition mode" where there is just a root partition and no boot partition (!5920). Installs from 2022 or older need manual action as described in our edge blog post. Thanks Minecrell, Arnav! * PinePhone hardware keys were fixed in the initramfs (!5931). Thanks Clayton! * Various devices with smaller boot partitions now use `initfs_extra` (!5890, !6034, !6080, !5989, !5993). Thanks AutumnSpark1226, Cedric, knuxify, Kaloyan, Matti! * Google Chromebooks with x64 CPU can now boot from NVMe storage (!6059). Thanks Brady! ## pmaports * Xiaomi POCO M2 Pro / Redmi Note 9S / Redmi Note 9 Pro / Redmi Note 9 Pro Max / Redmi Note 10 Lite (xiaomi-miatoll) have seen some incredible improvements, _"from barely working brick (boots to framebuffer) into almost fully usable mobile phone: 3D acceleration, sensors, audio, camera, modem, wifi and bluetooth are now supported"_ (!5941). Thanks N1kroks! * The _alsa-ucm-conf-qcom-sdm670_ package has been upgraded to 1.2.9_git20241211. _"This causes Pipewire to appropriately control the VoiceMMode1 mixer and route call audio automatically."_ (!5918) Thanks Richard! * An annoying bug has been fixed in edge: syslogd kept one core busy at 100% (!6013). A MR to backport this fix to v24.12 has been made as well and will be merged soon (!6096). Thanks Caleb, Richard, Clayton! * The XFCE4 login greeter background has been fixed (!5889). Thanks Jakko! * NetworkManager has been configured in postmarketOS to detect captive portals. If your UI uses the NetworkManager API, then it can show you notifications about this from now on (and e.g. help you open a browser to bypass the portal) (!5659/imported). Thanks Clayton, Luca! * lk2nd has been upgraded to version 20.0 (!5884), packaging has been updated to also support the htc-m8 (!5919) and the motorola-falcon port has been adjusted to work with newer lk2nd versions (!5994). Thanks Barnabás, Alexandre, Stanislav! * The _u-boot-librecomputer-lafrite_ package could be removed, as the lafrite has u-boot in SPI already and because we use GPT by default now (!5897). Thanks Ferass! * The GNOME base UI package now depends on _power-profiles-provider_ instead of _power-profiles-daemon_ , so another implementation can be used for devices where the default does not work (!5820). Furthermore Showtime _"which is the main candidate to become the new GNOME default video player"_ is getting installed by default via __pmb_recommends_ now (!6038). Thanks Adam, Robert! * Androids (mostly Samsungs) using the imagis-touchscreen driver on pmOS don't wake up anymore by capacitive back/menu buttons (!5358/imported). We already had similar rules for other drivers and it is easy to add more if needed. Thanks Raymond! * A typo was fixed in our NetworkManager dispatcher script that lead to never stopping any unudhcpd processes. _"As a new instance is started each time a USB cable is connected, the number of instances kept growing until reboot."_ (!5905) Thanks Fiona! * The samsung-rossa device has been renamed from -cprime and found a new maintainer (!5865). Thanks Raymond! * Fairphone 5: an unl0kr config has been added to fix that it was invisible during boot (!5910). Thanks cosmo! * In preparation for the future switch to U-Boot for these devices, the lavender and clover devices are now configured to create extlinux configs (!5914). Thanks Alexey! * The Nokia N900 packaging has been improved to share the xdefaults file between all X11 UIs instead of only i3wm, and the lock script has been improved to work with other X11 UIs as well (!5930). Thanks sicelo! * The LXQT UI packaging now uses brightnessctl to save and restore brightness on boots (!5933). Thanks Jakko! * For the PinePhone, the modem autorecovery udev rule was dropped as it isn't needed anymore (!5935). Thanks Arnav! * The Samsung Galaxy Core Prime VE LTE now boots through U-Boot (!5952), _seven_ amlogic U-Boot packages have been merged into one (!4995/imported) and the U-Boot user script load address has been fixed for PinePhones with the Vccq mod (!5980). Thanks Duje, Ferass, Johannes K.! * Ferass noted about the amlogic U-Boot merge: _"if anyone is having issuesplease ping"_ * libcamera packaging has been upgraded to 0.4.0, dropping some upstreamed patches and adding some tuning files with black levels (!5948). Thanks Robert! * dtbloader (EFI driver that finds and installs DeviceTree into the UEFI configuration table) has been upgraded to 1.3.0, adding support for the Huawei Matebook E Go, updating gnu-efi to 3.0.19 and aligning EFI_DT_FIXUP_PROTOCOL with documentation (!5981). Thanks Nikita! * Samsung Galaxy Ace 3 LTE now has initial display support and a fix for SSH over USB (!5975). Thanks User0! * The Kobo and Tolino ebook readers were switched back from GPT to MSDOS partition tables for now to fix that they would only boot once with GPT (!5977). GPT was also disabled for the epson-embt2ws (!5982). Thanks Andreas! * The FIT image configuration for the Samsung Galaxy S9 (wiki page has a nice photo running Sxmo btw) has been adjusted to give more space for the Linux kernel (!5990). Thanks Dzmitry! * The pinenote-dbus-service for the PineNote has been upgraded to 0.2.2_pre5 and found a new maintainer. Also the modprobe rules from Debian images have been added. If you also own this device and are interested in contributing or collaborating, then consider reaching out (!6017, !6021). Thanks Antoine! * riscv64 cross compiling is now much faster (!6054). Thanks Clayton! * The Plasma base UI package installs kunifiedpush again (!6020). Thanks Bart! * The Trailblazer now has X1E Slim 7x support (!5801) and lts/stable kernels have been added (!5926). Thanks Caleb, Ferass! * Various smaller fixes and improvements (!5840, !5893, !5894, !5899, !5900, !5908, !5911, !5928, !5939, !5945, !5956, !5957, !5960, !5963, !5967, !5970, !5984, !5986, !5995, !5996, !5998, !6000, !6002, !6009, !6014, !6018, !6019, !6022, !6027, !6045, !6048, !6051, !6062). Thanks Alexey, Andras, benpicco, Clayton, Dzmitry, fossdd, fossdd, Luca, Oliver, Pablo, Jan, Raihan, Sergey, Willow, Szczurek, Raymond! ## Artwork and homepage * Ranny has made some incredibly cute variations of the postmarketOS logo in !53!! We will probably integrate them into the homepage at some point and make some stickers with this design. Perhaps this would make a good mascot too...🤔 Thoughts? He also made a nice OSC25 sticker (!57). Thanks Ranny! * A new wallpaper _Bokeh_ has been made by our amazing recurring artwork contributor dikasp (!58). We have used this wallpaper at the top of this blog post. Like all the other awesome wallpapers that dikasp made, it is a candidate to become the official wallpaper of a future postmarketOS release. Thanks dikasp! * The /install list can now be filtered by vendor / device name (!340). Thanks Anxo! * We have added floss.fund's funding.json manifest to the homepage, and submitted it (!345, !6074). Thanks Caleb, Oliver! * Various small fixes and improvements for the homepage (!342, !344, !343, !347, !346, !336, !353). Thanks Anjan, Ferass, Pablo, Oliver, knuxify, Luca! * Various small fixes and improvements for the artwork repo / packaging (!59). (!54). (!6084). Thanks magdesign! Thanks Aster! ## Misc * boot-deploy can now use a certificate verification exploit on OMAP HS based Kindles to chainload a patched u-boot for loading unsigned images :> (!72). Thanks Connor, TeamWin! * bootmac's udev rules have been split into separate files for wifi and bluetooth, a systemd unit file has been added as well as BT mac retry (!10). Thanks Clayton! * q6voiced now builds with meson (!5). Thanks Manuel! * Smaller fixes and improvements in various projects (!36, !67, !68, !75, !8, !10, !11, !12, !16, !18, !66). Thanks Stefan, Dylan, Ferass, Luca, magdesign, Vladimir! ## And what's next? * FOSDEM 2025 is coming up _this weekend!_ Read all about the many Linux Mobile related things (devroom, multiple stands, etc) at LINMOB.net. Looking forward to meeting you there! Oh and we'll have another hackathon afterwards… if last year was any measure this will again be a super productive couple of days that allows us to get a lot done in the moment as well as making plans for the rest of the year! * Aachen's CCC chapter is organizing a mainlining workshop on 2025-02-15 that sounds really fantastic! They _"will be hosting a full-day workshop where we will show you how to port a current Linux kernel to your old mobile devices with relatively little effort and prior knowledge. We will explain the boot process of old and newer Qualcomm devices, introduce you to devicetree and kernel drivers and show you where to find the necessary information on a running Android kernel and in the vendor kernel source code. Afterwards, we will take a lot of time during which you will instill the spirit of the penguin into your own devices with our help and advice. With your kernel you will boot PostmarketOS and gradually get more components up and running. There will also be a tutorial on how to upstream your patches."_ * After the success of the OSC 2024 Tokyo/Fall event, the upcoming OSC 2025 Tokyo/Spring event on 2025-02-21/22 is in the pipeline. Check #92 for the current planning status, especially if you want to help with setting this up. Otherwise if you are in the area, consider hanging out! * And this last bullet point here is not an event, but exciting nonetheless: a rewrite of pmbootstrap's crossdirect logic is on the way… and it will make cross compiling _much faster_ for a whole lot of packages! (!2474) ## Help wanted * You can send us topics to include in the next blog post by commenting in: #194 * If you appreciate the work we're doing with postmarketOS and want to support us, consider contributing financially via OpenCollective.
postmarketos.org
January 28, 2025 at 9:00 AM
postmarketOS in 2024-11: pmbootstrap v3, RFC process and Seattle
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 --image` feature 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 status` on 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 Caleb! * CI now generates coverage and test reports (!2478), and we have a new bootimg analysis integration test (!2467, !2483). Thanks Caleb, Stefan! * The glob for configuring SSH keys to be copied to your install image with `pmbootstrap install` can 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, Caleb, 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/card0` hardcoded (!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-phosh` has been adjusted (!5796). Thanks fossdd! * GNOME: Lollypop has been replaced with Decibels (!5824). Thanks fossdd! * 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 fossdd! * 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 fossdd! * 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! ## 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, fossdd! * 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! * realme-x3 (!5839). Thanks Patriot! ## 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=2` instead of `console=null` to 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! * 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! * 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-shim` with an `install_if` rule anymore, as this had lead to a conflict during `pmbootstrap install`. Instead `doas-sudo-shim` gets installed via the `_pmb_recommends` mechanism now. For postmarketOS edge users this means the `sudo` shim will be uninstalled when upgrading postmarketOS edge, run `doas apk add doas-sudo-shim` to get it back (!5867, edge post). Thanks Oliver! * `postmarketos-mkinitfs` has 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 Caleb, 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, Caleb, dabao1955, fossdd, Daniel, 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 fossdd! * 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 Caleb 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-party` in 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-apk` project 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.
postmarketos.org
January 28, 2025 at 9:00 AM
postmarketOS in 2024-07: new homepage, pmbootstrap v3, sensors, libcamera and more!
Fasten your seatbelts, after skipping the monthly progress report in June because of the v24.06 release, we have at least twice as much news to share! ## Homepage First, we obviously updated the homepage. The new design is a collaboration between Dika, Markus and Oliver. It's more than just a design change actually. If you take a close look at the links in the top navigation bar you may first notice that it isn't as overloaded with random links anymore as it used to be. And secondly that there is a new _explore_ button that more or less lists the links we had there previously (but now nicely sorted in categories!) as well as a new _team_ button. Bryant spent a whole lot of time and effort on that. The team page shows who makes postmarketOS. Who the Core Contributors (renamed from Core Team for consistency) and Trusted Contributors are and what we are doing in postmarketOS. What we think about, enjoy doing and where you can find us on Matrix etc. The teams page also has the purpose to list the contributor groups and teams we now have, which have grown quite a lot in the last months, in one easy to read overview. So Bryant figured before we add yet another new button to the navigation bar, we should first unclutter the navigation bar and… while at it we just did this whole redesign! ## Organizational * We decided on new approval requirements for merging patches. This addresses problems with good patches not getting merged, that oftentimes were caused by lack of clear understanding of who is supposed to approve and merge patches. With further work we plan to automatically assign maintainers to new merge requests (like it works in Alpine's aports). We apologize to everybody that had a hard time with the previous review process, and we hope this makes the workflow better for everyone. Feel free to reply to #66 if you still experience problems with the new workflow. * We wrote a separate blog post about postmarketOS being selected for NGI Zero Core funding, as well as how the European Commission made a draft in which NGI will not be funded anymore in 2025. ## pmbootstrap 3.0.0_alpha * The pmbootstrap feature freeze is over, Caleb's big pmbootstrap v3 patch series has been merged! This brought massive refactorings and improvements, making pmbootstrap easier to maintain and bringing more performance and better usability. Read their blog post for details. Thanks to Caleb and everybody who tested pmb v3 already and reported/fixed regressions! * Several improvements in code formatting and linting. Thanks, WhyNotHugo, Newbyte, Caleb, Oliver! * kconfigcheck support was moved from inline Python to a toml file. This allowed to move the kconfig check file to pmaports. This makes it much easier to enforce kernel config changes, as we can now change the kernel configs at the same time as changing the kernel config checks, as well as having different kernel config checks depending on the pmaports branch. Thanks Oliver and everybody that took part on the discussion that led to this change! * pmbootstrap documentation is now online! Thanks Rob for getting documentation ready and Luca for the infra work! * In preparation to support building the split systemd repository, the mirrors configuration was reworked and documented (!2361). Thanks, Oliver and Caleb! * Lots of smaller fixes and improvements. Thanks, Caleb, Oliver, WhyNotHugo, Clayton, Andrew Robbins, Newbyte, Gompa, Jane, Henri, Arnav, ijiki16, Henrik! ## pmaports * We have 8 new device ports: Xiaomi Redmi 5, Xiaomi Redmi Note 9 Pro and Xioami Redmi Note 9S, Kobo Clara 2E, Pine64 Pinetab 2, Epson Moverio BT-200, Samsung Galaxy Tab PRO 10.1 (WiFi), Xunlong Orange Pi 4G-IoT, postmarketOS Trailblazer Thanks to all our device porters! * The trailblazer device port uses linux-next, which now gets upgraded automatically in pmaports every day. Thanks Caleb! * Add sensor support for Xiaomi Poco F1, Fairphone 4, Fairphone 5, and Google Pixel 3a! Thanks Rob, Joel, Luca, and Richard! It is very cool to see how the initial work by Richard and Dylan is slowly resulting in more Qualcomm devices getting sensor support. Truly a team work! * Major initramfs changes to improve logging and the debug console as well as using udev and refining root/boot partition detection and waiting. This has some really nice features, such as holding volume up during boot to trigger a log dump. Beware that the size of the initramfs has increased, devices that are affected can use `postmarketos-initramfs-minimal` instead (edge blog post). Thanks Caleb and Clayton! * Enable EFI support for ARM64 QEMU. Thanks Clayton! * GNOME Extensions are now configurable and available by default in GNOME Shell and GNOME Shell Mobile. Thanks Pablo! * Update to latest official firmware for Fairphone 4 and 5. Thanks Luca! * Lenovo ThinkPad X13s is now in community. Thanks Clayton! * Add more apps to default GNOME installs, and replace Evince with the more modern and phone-adaptive Papers. Thanks Clayton and Pablo! * Stop hard-coding pulseaudio in some UIs. Users can now seamlessly switch between Pulseaudio and PipeWire by doing `apk add postmarketos-base-ui-pulseaudio` or `apk add postmarketos-base-ui-pipewire`. Thanks Clayton, JustSoup, and Pablo! You can follow the work to use PipeWire by default in the milestone. * mkinitfs 2.5.0 and 2.5.1 have been released and integrated, including lots of fixes for the UsrMerge use-case. Thanks Clayton and all the mkinitfs contributors! * boot-deploy 0.16.1 and 0.16.2 have been released and integrated. Thanks Clayton and all boot-deploy contributors! * mobile-config-firefox 4.3.2 has been released and integrated, with several fixes. Thanks Oliver and Peter! * Re-enable DNS filtering after it was broken due to a package upgrade. This means mobile data is again never been used while on WiFi. Thanks Clayton! * Update unl0kr to 3.2.0, including more themes and and some misc fixes. Thanks Johannes! * Allow initramfs hooks to clean up after themselves. Thanks MaeIsBad. * A regression with PulseAudio 17.0 that affected all devices using the sdm845 and sdm670 audio configs was fixed. Thanks Federico! * Backport more libcamera patches to improve performance on some devices. Thanks Robert! * Several amlogic ports for TVs were integrated into a generic `amlogic-tvbox` port. Thanks Ferass! ## Artwork * Our amazing recurring artwork contributor Dikasp hasn't only been busy with the homepage redesign, but also made a new Mastodon avatar and created new wallpapers to be used in future releases, as well as two sticker designs (May June, and July)! Thanks Dikasp! * A tablecloth design for the postmarketOS stand at FOSSY as well as a phone stand in postmarketOS design that can be 3D printed were made! Thanks Ranny! ## Misc * Luca wrote an eSIM manager for Mobile Linux, and adapted lpac to work on Qualcomm devices! _"This should work on any phone with Qualcomm SoC (unless it’s very old and not using QRTR) which has an eSIM chip built-in or with a removable eSIM card inserted."_ * We had a great time doing an interview with the Phosh lead developer Guido for the postmarketOS podcast. There's a lot of topics like how Phosh relates to Purism, being puzzled by people using Phosh on the PinePhone, comparing squeekboard and phosh-osk-stub, automatic hardware testing and more. * mrhlpr and mrtest 1.4.0 have been released. A nice new feature by Nikita that made into this release is an apk hook that prints a big notification message during upgrades if the user still has mrtest packages installed. (Those are for temporary testing and should be uninstalled afterwards.) Thanks Pablo, Nikita and everybody who contributed to the release! ## And what's next? * systemd work is progressing at a stable pace. There will soon be a new blog post on this topic. * Events are happening! This weekend was GUADEC 2024, and postmarketOS folks also plan to be at FOSSY 2024 (Portland from August 1 to 4th), FrOSCOn (Sankt Augustin from August 17th to 18th), and Akademy 2024 (Würzburg from September 7th to 12th). * We are about to pay our first contributor to do upstreaming-related work from the donations. Keep an eye on the blog for more updates! If you appreciate the work we're doing on postmarketOS, and want to support us, consider joining our OpenCollective.
postmarketos.org
January 26, 2025 at 12:57 AM