There are plenty of known issues with these demo builds, and no doubt plenty more unknown. Let's discuss them as well as other architectural/technical stuff here.
How to build your own systemd-based postmarketOS images
Next steps for integrating systemd into postmarketOS
pmbootstrap (systemd branch): support pmb:systemd-never option in postmarketos-ui-* packages for UIs where maintainers don't support systemd (e.g. Sxmo)
pmbootstrap: make MR, get current patches from systemd branch reviewed and merged into master (pmbootstrap!2273 (merged))
bpo: do pmbootstrap repo_bootstrap systemd before building any package, if the branch contains the postmarketos-base-systemd package and make it so that all bootstrapped packages get uploaded and added to the new repository at once (usually only one package at a time) (build.postmarketos.org#133 (closed))
bpo: create a systemd staging repository (with systemd + rest of pmaports combined as intermediate step), by rebasing the systemd branch on top of current master
pmbootstrap (systemd branch): support pmb:systemd-never option in postmarketos-ui-* packages for UIs where maintainers don't support systemd (e.g. Sxmo)
If systemd is an explicit dependency of other packages that explicitly require it, you don't need special considerations for non-systemd images.
I suggest adding install_if="postmarketos-base systemd" to the systemd-services package instead of making it an explicit dependency of postmarketos-base too. This will facilitate minimal images without it (e.g.: for sxmo).
@calebccff @Justin_Zobel @amartinz @WhyNotHugo @craftyguy @kailueke @ollieparanoid@Arnavion @Minecrell : open letter from a freedom lover to PostmarketOS devs :
open letter
Me and my two friends, who got the Pinephone for privacy/security reasons, are all using PostmarketOS. Why? Because no SystemD. SystemD, being a 1.5 million lines of code begemoth, is written with little respect for security - as you could see by Pwnie "award" and plenty of CVEs. Therefore the security-minded people who choose a Pinephone despite its worse usability compared to the ordinary Android phones, also tend to avoid SystemD.
Currently, the primary distinguishing feature of PostmarketOS - is that, being based on Alpine, it doesn't have SystemD. However, by artificially switching this Alpine-based distro to SystemD, you are losing this competitive advantage and your priorly-outstanding distro won't be unique anymore.
One of my "Pinephone friends" (who btw uses Artix Linux on his desktop for the same no-SystemD reason) - really loves PostmarketOS (even contributed a couple of patches), and last week he told me that he is going to make a significant donation to PostmarketOS when he gets his next paycheck. But I have just made a phone call to him - and, after getting the news about that SystemD switch, he doesn't want his hard-earned money to fund the SystemD work
You really are shooting yourself in the foot with this SystemD madness, please stop before its too late and you become yet-another-soulless-non-unique-distro.
P.S. sorry for my emojis above, but lets see if you have a freedom of speech there...
I've heard the fans spin up once or twice to do some actual work, but otherwise my load avg has been sitting at around 3. Is this expected or am I missing some pmbootstrap config? Or perhaps some of the newly packaged stuff is missing a -j$(nproc) flag?
Managed to build a systemd image for samsung-gt510 and flash it. It doesn't boot past bootsplash though.
Further, I can't SSH in to debug. The USB network is coming up, but the SSH server isn't listening.
I enabled initramfs telnet and poked around. I think the systemd-services package is missing from my install?
~ # apk list | grep systemdpostmarketos-base-systemd-1-r0 aarch64 {postmarketos-base-systemd} (GPL-3.0-or-later) [installed]systemd-255.2-r0 aarch64 {systemd} (MIT AND GPL-2.0-only AND LGPL-2.1-or-later) [installed]systemd-boot-255-r0 aarch64 {systemd-boot} (GPL-2.0-only)systemd-journald-255.2-r0 aarch64 {systemd} (MIT AND GPL-2.0-only AND LGPL-2.1-or-later) [installed]systemd-libs-255.2-r0 aarch64 {systemd} (MIT AND GPL-2.0-only AND LGPL-2.1-or-later) [installed]systemd-logind-255.2-r0 aarch64 {systemd} (MIT AND GPL-2.0-only AND LGPL-2.1-or-later) [installed]systemd-udevd-255.2-r0 aarch64 {systemd} (MIT AND GPL-2.0-only AND LGPL-2.1-or-later) [installed]ukify-255-r0 aarch64 {systemd-boot} (GPL-2.0-only)~ # find / | grep ssh/usr/libexec/gcr-ssh-askpass/usr/libexec/gcr-ssh-agent/usr/lib/libssh.so.4/usr/lib/ssh/usr/lib/ssh/sftp-server/usr/lib/ssh/ssh-pkcs11-helper/usr/lib/libssh.so.4.9.6/usr/lib/gnome-keyring/devel/gkm-ssh-store-standalone.so/usr/bin/sshd/usr/bin/ssh-agent/usr/bin/ssh/usr/bin/sshd.pam/usr/bin/ssh-add/usr/bin/ssh-keygen/usr/bin/ssh-copy-id/usr/bin/ssh-pkcs11-helper/usr/bin/ssh-keyscan/usr/share/icons/Adwaita/cursors/crosshair/root/.ssh/etc/xdg/autostart/gnome-keyring-ssh.desktop/etc/nftables.d/50_ssh.nft/etc/ssh/etc/ssh/sshd_config.d/etc/ssh/sshd_config.d/usepam.conf/etc/ssh/ssh_config/etc/ssh/sshd_config/etc/ssh/moduli/etc/ssh/ssh_config.d/etc/pam.d/sshd/home/sam/.ssh/home/sam/.ssh/authorized_keys
I manually dropped /usr/lib/systemd/system-sshd.service + /usr/lib/systemd/system-sshdgenkeys.service in place and symlinked them to /usr/lib/systemd/system/multi-user.target.wants/ and now SSH is available again.
I did checkout the systemd-Branch for pmbootstrap/aports ... if that is correct. At least it seems like correct for me... Because it has the same contents as mentioned here: https://gitlab.postmarketos.org/postmarketos/pmaports . But still no "repo_bootstrap"-command for me :( . What do i do wrong?
Good day everyone! Although I haven't contributed for a long time, I am a passionate user of PostmarketOS and hopefully my opinion could matter something, so just my two cents:
Actually @qmastery16 has a good point: it will be beneficial to continue providing those "OpenRC ISOs", even if they will be 'less featured' (in this case, accompany with a note regarding the shortcomings). There is clearly a group of people (disclaimer: I am one of them) who prefers the alternative init systems for various reasons - and providing the OpenRC ISOs will certainly help the postmarketOS popularity
Is it possible to set up some crowdfunding(Patreon or whatever) - to reward those particular people like @funderscore who are doing the OpenRC-related work at postmarketOS - for the "OpenRC branch"?
I don't believe OpenRC images are going anywhere from the blog post. The only thing that's changing is they're adding an option to use systemd.
As for funding, postmarketOS already has https://opencollective.com/postmarketos for raising funds for the development of postmarketOS and support of its contributors.
I don't believe OpenRC images are going anywhere from the blog post
@Justin_Zobel , this blog post implies that the OpenRC images will be gone and the people will have to build their own - if that's not the case, please update the blog post to clarify this
Yes, but it does not allow those who does not like systemd to avoid financially supporting it. Please add a new funding option there that will be called "OpenRC maintenance" or something, the funds of which will go to OpenRC maintainers specifically
So pre-built images of Sxmo will continue to be OpenRC based
I don't think the blog post can get any clearer than that.
If you're concerned that non-Sxmo OpenRC images will no longer be produced/published... Well, I think that's the whole point. The reason to introduce systemd is to make it the default experience for Gnome/KDE UI spins, because it's anticipated that this will result in a better experience and require less maintenance.
Yes, but it does not allow those who does not like systemd to avoid financially supporting it. Please add a new funding option there that will be called "OpenRC maintenance" or something, the funds of which will go to OpenRC maintainers specifically
I was hesitant to suggest this earlier since it might be interpreted as inflammatory and/or fracturing to the pmOS community, but given these kinds of ideas are popping up now, I think it might be worth saying: perhaps the people who feel strongly enough against systemd should consider forking pmOS. Artix Linux as a non-systemd fork of Arch has already been mentioned in this thread.
Of course it'd be a bummer to lose mindshare and maintainer energy from pmOS to arbitraryidealogyOS (there I've already named your fork for you, you're welcome!), but it might be better than dealing with constant noise from detractors that have nothing to contribute other than "systemd bad! because reasons that only barely made sense 10 years ago!"
But also, just so I don't seem like I'm being completely negative and flame-baity, might I suggest that if you really care so much about OpenRC and don't want to throw any dollars to the filthy systemd heathens that are doing most of the work to make pmOS a reality, perhaps you could approach the people(s) maintaining Sxmo packaging for pmOS and ask them to start up their own OpenCollective/Patreon/Github sponsorship, if they don't have it available already?
Yes, but it does not allow those who does not like systemd to avoid financially supporting it. Please add a new funding option there that will be called "OpenRC maintenance" or something, the funds of which will go to OpenRC maintainers specifically
Just to be clear, the money does currently not go to paying any full-time developers as it is not enough for that.
Administratormarked the checklist item pmbootstrap (systemd branch): support pmb:systemd-never option in postmarketos-ui-* packages for UIs where maintainers don't support systemd (e.g. Sxmo) as completed·
Imported
marked the checklist item pmbootstrap (systemd branch): support pmb:systemd-never option in postmarketos-ui-* packages for UIs where maintainers don't support systemd (e.g. Sxmo) as completed
Administratormarked the checklist item pmbootstrap: make MR, get current patches from systemd branch reviewed and merged into master (pmbootstrap!2273 (merged)) as completed·
Imported
marked the checklist item pmbootstrap: make MR, get current patches from systemd branch reviewed and merged into master (pmbootstrap!2273 (merged)) as completed
In the announcment it says one of the main blockers we found as we collaborate more closely with KDE and GNOME developers is that they have a hard time with our OpenRC-based stack, but isn't it Alpine's stack, ie their responsibility to keep KDE/GNOME up to date? (or is it that upstream maintainers are actually pmOS members? I don't know how close the project members work together, but I'm also a bit confused by the wording)
I'm assuming KDE/GNOME will at some point completely switch over to require systemd, what are the implications for the respective packages in Alpine/pmOS?
Will Alpine add systemd dependencies to their package repository, or will there be downstream versions in pmOS that include/use these changed dependencies? (at least I haven't seen any systemd related issues or merge requests on Alpine's Gitlab)
If there will be downstream versions, what happens to the upstream (ie Alpine) versions, will they still be maintained to work with OpenRC, or removed at some point?
Similarly, what will happen for devices that already have KDE/GNOME installed with OpenRC, will they be automatically switched to systemd when the new package versions are ready (via postmarketos-release-upgrade script)?
I don't really care much what init system gets used behind the scenes, but I am concerned about things breaking when upgrading, and I imagine switching out such a deeply integrated component might be difficult to do without issues
In the announcment it says one of the main blockers we found as we collaborate more closely with KDE and GNOME developers is that they have a hard time with our OpenRC-based stack, but isn't it Alpine's stack, ie their responsibility to keep KDE/GNOME up to date? (or is it that upstream maintainers are actually pmOS members? I don't know how close the project members work together, but I'm also a bit confused by the wording)
There are two parts to this. For one thing, yes, the maintainers of GNOME and KDE upstream in Alpine are primarily pmOS contributors. But we will still have to maintain OpenRC support upstream in Alpine as Alpine isn't switching to systemd. But what this rather is about is that we want to make it easier for KDE and GNOME upstream developers to use pmOS as a test platform for running their software on phones. Both KDE and GNOME upstream developers have had issues testing things on pmOS due to the lack of systemd.
I'm assuming KDE/GNOME will at some point completely switch over to require systemd, what are the implications for the respective packages in Alpine/pmOS?
Will Alpine add systemd dependencies to their package repository, or will there be downstream versions in pmOS that include/use these changed dependencies? (at least I haven't seen any systemd related issues or merge requests on Alpine's Gitlab)
Since Alpine is not switching to systemd, the answer is no.
If there will be downstream versions, what happens to the upstream (ie Alpine) versions, will they still be maintained to work with OpenRC, or removed at some point?
We still intend to maintain everything upstream in Alpine.
Similarly, what will happen for devices that already have KDE/GNOME installed with OpenRC, will they be automatically switched to systemd when the new package versions are ready (via postmarketos-release-upgrade script)?
I don't really care much what init system gets used behind the scenes, but I am concerned about things breaking when upgrading, and I imagine switching out such a deeply integrated component might be difficult to do without issues
Someone else will have to answer this, I don't know exactly.
But what this rather is about is that we want to make it easier for KDE and GNOME upstream developers to use pmOS as a test platform for running their software on phones. Both KDE and GNOME upstream developers have had issues testing things on pmOS due to the lack of systemd.
Ok, I initally thought the intention of this change was to reduce maintenance work for pmOS developers, thats why I was confused how adding an additional stack of packages was supposed to help with that, but if its for KDE/GNOME devs and pmOS has no problem with the additional efforts then it makes sense for me.
We still intend to maintain everything upstream in Alpine.
Then I guess it should be no problem for users that already have the OpenRC-based packages installed to stay on those versions? That would be fine for me, assuming there are no conflicts down the road with systemd packages.
Similarly, what will happen for devices that already have KDE/GNOME installed with OpenRC, will they be automatically switched to systemd when the new package versions are ready (via postmarketos-release-upgrade script)? I don't really care much what init system gets used behind the scenes, but I am concerned about things breaking when upgrading, and I imagine switching out such a deeply integrated component might be difficult to do without issues
I think postmarketos-release-upgrade should ask if you wish to stay with openrc or switch to systemd, depending on the UI package.
master_staging_systemd was built successfully for x86_64! I've updated the instructions for building your own systemd based images to use the staging repo, and moved it to the wiki: https://wiki.postmarketos.org/wiki/Systemd
EDIT: master_staging_systemd is a rebased version of the systemd branch
@Justin_Zobel, I agree. One of the most annoying aspects of Debian is that it doesn't by default configure NTP1. For a primary smartphone-based OS, I consider this important, because a user generally doesn't want to spend any time in the terminal configuring the OS with a touch-screen keyboard.
By Mr. Beedell, Roke Julian Lockhart on 2024-04-10T12:12:30
Hi, thanks for testing this out. This issue has gotten pretty unwieldly so we're going to close it. Could you open a new issue with this and any additional details you have? It'd be good to debug this further so we'd really appreciate your help!
@susurrus, I've read the thread and don't appear to have missed anything explaining the issue closure, so is this now complete - do new ISOs provided via pmbootstrap and https://flash.postmarketos.org use SystemD?
By Mr. Beedell, Roke Julian Lockhart on 2024-05-07T11:46:12
Sorry my previous comment above to FrostNova wasn't more clear. We've closed this issue as it's been replaced by the systemd milestone. See that for the overall tracking. Because things are happening so fast, please jump in the chatroom if you want to follow a more up to date status.
There will be a blogpost soon summarizing the state of things and how to help or even just follow along, so stay tuned for that also.