Commit Graph
3296 Commits
Author SHA1 Message Date
Luca Leonardo Scorcia 79325d16d5 main/postmarketos-initramfs: fix leftover pbsplash call in debug_shell
The hide_splash function has been renamed to splash_hide.

Signed-off-by: Luca Leonardo Scorcia <l.scorcia@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8525>
2026-05-11 09:23:29 +00:00
Stefan Hansson 8133df094d Revert "main/postmarketos-mkinitfs-hook: merge mkinitfs-hook packages into one"
This breaks pmbootstrap's hook handling.

Closes https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/work_items/2759

This reverts commit 38ccc2ac8a.

[ci:skip-vercheck]: These aren't "new" packages per se.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8511>
2026-05-10 13:43:38 +00:00
Ferass El Hafidi 85e89db86a main/postmarketos-base-ui-plasma: switch _pmb_recommends to depends for -kaccounts
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8507>
2026-05-09 08:56:07 +00:00
Ferass El Hafidi 0f35b43684 main/postmarketos-ui-plasma-mobile: switch _pmb_recommends to depends
for subpackages

Apparently pmbootstrap doesn't look in subpackages for _pmb_recommends.

Suggested-by: Clayton Craft <craftyguy@postmarketos.org>
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8507>
2026-05-09 08:56:07 +00:00
Clayton Craft 8d657c1c3f main/postmarketos-base: update nosplash kernel cmdline config
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:20 -07:00
Clayton Craft 92db54cf94 main/postmarketos-mkinitfs: add trigger for plymouth
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:20 -07:00
Clayton Craft 084013fac5 main/postmarketos-initramfs: replace pbsplash with plymouth
This also drops support for pmos.no-splash, since removing `splash` from
the kernel cmdline will effectively prevent Plymouth from showing the
splash screen.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>

[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:20 -07:00
Clayton Craft 3f67ce725c main/postmarketos-bootsplash: Clayton take over maintaining
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:19 -07:00
Clayton Craft c9d6c3b56e main/postmarketos-bootsplash: replace pbsplash with plymouth
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:19 -07:00
Clayton Craft 2c16da8777 main/postmarketos-plymouth-themes: new aport
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7482>
2026-05-05 12:34:19 -07:00
Clayton Craft 37c9314dbe main/postmarketos-duranium: merge sysexts in initramfs
This merges system extensions in the initramfs, right before
switch_root, so that the rootfs boot always has the full merged /usr
right from the start. It fixes ordering issues like binfmt starting
before /usr/lib/binfmt.d was merged, and ultimately not working as
expected.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8426>
2026-05-04 15:53:33 -07:00
Clayton Craft f61687b60d main/postmarketos-duranium: support "self hosting"
This will allow folks to easily run mkosi, e.g. for building duranium
images. This makes duranium self-hosting.

There are several key changes in this patch:

- mkosi is added to the duranium developer tools sysext

- user qemu is added to the dev tools sysext (for binfmt+qemu)

- coreutils is added to the main pkg to work around a conflict that Alpine
has with mkosi (see: https://github.com/systemd/mkosi/pull/4283). The
issue is that the busybox symlinks installed in the base duranium image
are not replaced by mkosi when it generates a system extension even if
that sysext pulls in coreutils. coreutils isn't *that* big, so it makes
sense to just have these links correct in the base image.

- duranium dev. tools depends on apk-tools. Wait, what?! mkosi uses
apk to bootstrap a tools tree for building pmOS images. Since we don't
actually want apk to work when run against the duranium rootfs, this
also installs a wrapper that refuses to run apk if it detects that it's
being used "unsafely". To be clear, running apk on duranium's rootfs
won't change /usr or break duranium, but it will: 1) fail, 2) create
confusing state in /etc, /var.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8426>
2026-05-04 15:53:16 -07:00
Clayton Craft fc5554ef5c main/postmarketos-base: split apk-tools into -apk subpkg
It doesn't make sense to install apk by default in all flavors of pmOS,
like duranium. To avoid this, apk-tools is moved into a new -apk
subpackage that is pulled in implicitly via install_if. This has the
following benefits:

- postmarketos-duranium can "depend" on !postmarketos-base-apk to
exclude apk-tools

- apk-tools remains a dependency in existing mutable pmOS installs,
so it shouldn't be purged by this change 🤞

- we don't have to update hundreds of APKBUILDs in pmaports that
explicitly depend on `postmarketos-base` to now depend on some other
package that doesn't have apk-tools as an explicit dependency.

After this change, we'll be able to remove some janky cleanup code in
the duranium image build config for uninstalling apk-tools from the base
image, and it will allow us to *add* apk-tools in a system extension
later [1]

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>

1. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4502

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8426>
2026-05-04 15:53:16 -07:00
Aster Boese f98e59c618 main/gcc{4,6}: fix license and options fields
license= is not touched by pmbootstrap's gcc aportgen, so we need to
fix it manually.

options= is edited to match the modern output of aportgen.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8214>
2026-05-03 15:08:45 +00:00
Aster Boese 345094da82 main/gcc{4,6}: remove fortify-headers from the default include path
gcc4 and gcc6 are only used for compiling downstream kernels these days.
Because these compilers are so old, most of fortify-headers does not even
work with them. As such, because downstream kernels have no security
guarantees, removing fortify-headers from the default include path
won't have any negative impacts on the distro.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8214>
2026-05-03 15:08:45 +00:00
Sicelo A. Mhlongo 79f6325f6c postmarketos-ui-sway: use config fragment for status bar
Separating the status bar allows for customization (e.g. in a device package)
without replacing the entire sway config

Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8472>
2026-05-02 16:09:42 +02:00
Stefan Hansson 96217725f4 main/postmarketos-tweaks-setting-definitions: upgrade to 1.1.0
Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8456>
2026-05-02 02:13:09 +00:00
Clayton Craft f559b38457 main/postmarketos-duranium: don't set user comment on first boot
This was causing GNOME and KDE to show "Default User" e.g. on login

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8442>
2026-04-28 12:38:32 +00:00
Ferass El Hafidi 6f49801ecd main/postmarketos-base-ui-plasma: do not install kaccounts-providers on armv7
Yet another package that depends on qtwebengine and thus is unavailable
on armv7.
See: pma#4505

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8438>
2026-04-28 07:44:18 +00:00
Aster Boese c1722fd01a main/postmarketos-mkinitfs-hook: fix using wrong variable in loop
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8441>
2026-04-28 00:11:48 +02:00
Aster Boese 38ccc2ac8a main/postmarketos-mkinitfs-hook: merge mkinitfs-hook packages into one
Having many separate mkinitfs-hook packages makes it harder to add new
hooks and makes maintaining the hooks very fragmented and challenging.
Merging them all into one package and splitting them out by subpackage
makes them much more maintainable and makes adding new hooks as easy as
adding files and a subpackage.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8413>
2026-04-23 19:04:55 +00:00
Clayton Craft a329e09227 main/postmarketos-duranium: pin size of usr partition
In some cases when the disk is very large (e.g. 2TB) repart will add
extra space to the slot-A usr partition to make it larger. The slot-B
partitions are already pinned with a min/max size so they would stay
the correct size. This pins the slot-A usr partition so it's no longer
grown. This should have been done all along.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8419>
2026-04-23 03:07:53 +00:00
Clayton Craft 0add2ad499 main/postmarketos-duranium: shorten part. names, drop verity sig part.
This uses a new naming convention for partitions. It fixes an issue
where some firmware (i.e. on the OnePlus 6 / 6T) will hang when starting
fastboot mode if it finds a (sub!)partition with a GPT partition label
that's "too long" (25char, in the case of enchilada, well under the 34
char limit in the GPT spec).

By keeping the old partition name match pattern, which *should* help
migrate existing installs after 2 updates (to capture partitions
associated with both "slots"). Given duranium's "wip" status, I don't
think it's strictly necessary to migrate existing installs, but I feel
like this is a good opportunity to see if it's possible to do so. It
might be handy to do in the future and working out how to do that now
seems useful.

This also drops the verity signature partition. According to the UAPI
Discov. Partition Spec (DPS) this partition is not really needed if the
verity hash for the usr partition is in the kernel cmdline and the UKI
is signed (not yet, but one day 🤞). There is one mode where having the
separate partition is useful: verified boot in containers, but this is
outside the scope of duranium.

This partition is tiny (16K) so the space saving is negligible... but
it would be nice to have one less partition to "manage". On existing
installs, this partition will become "foreign" to systemd repart, and
sysupdate will not touch it since it will no longer match any patterns.

fixes #4484

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8408>
2026-04-22 19:25:48 +00:00
Clayton Craft 4a588de728 main/postmarketos-base-ui-gnome: add duranium-specific config
The kernel cmdline option is to prevent gnome-initial-setup from
launching, because it doesn't work properly and conflicts with our first
boot setup. On phosh this is technically not necessary since g-i-s won't
try to start there, but adding this to the base gnome UI pkg means I
wouldn't have to add sep. subpackages to gnome and gnome-mobile UI pkgs.

The duranium subpkg also pulls in a plugin for gnome-software so that
g-s can provide a frontend for pulling duranium image updates via
sysupdate.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8411>
2026-04-22 16:23:49 +00:00
Aster Boese 993d92a696 main/postmarketos-base: add kernel-cmdline.d config to disable splash
By creating a package for this, debugging boot-time issues is made a lot easier
as now during image creation `postmarketos-base-nosplash` can be added to
extra-packages and installed without rebuilding any packages.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8304>
2026-04-19 17:38:49 +00:00
Luca Weiss cbed5ce151 main/devicepkg-dev: support passing LLVM=1 in downstreamkernel_prepare
As required by kernels that probably shouldn't be using the
downstreamkernel_* functions in the first place, but we need to fix this
up to unblock linux-postmarketos-allwinner compilation.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295>
2026-04-18 14:40:03 +00:00
Clayton Craft ae9cab3d75 main/postmarketos-duranium: add packages for "dev tools" sysext
This subpackage will be used to build the "developer tools" system
extension for duranium. The list of packages was created after
collecting input from early testers in the Duranium chat.

Also see: https://gitlab.postmarketos.org/postmarketOS/duranium-build/-/work_items/47

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8366>
2026-04-18 00:11:19 -07:00
Arnav Singh c5a625ac35 main/postmarketos-base: allow pwfeedback default to be overridable by dropins
Currently dropins are processed before the default of enabling pwfeedback,
so a dropin that does `Defaults !pwfeedback` to restore the pre-sudo-rs behavior
has no effect. With this change, the dropin will take effect.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8388>
2026-04-17 10:10:03 -07:00
Ferass El Hafidi 37d5c5e228 main/postmarketos-ui-plasma-mobile: preinstall angelfish or firefox
depending on arch

Angelfish is not available on armv7 nor riscv64 due to qt6-qtwebengine
getting disabled. However, it is still preferable to install a web
browser by default. Firefox however can still be used on those devices.
Add a new -web subpackage, which installs Firefox on armv7/riscv64, and
installs angelfish on others, so everyone gets to have a pre-installed
and working web browser.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8373>
2026-04-17 13:38:44 +00:00
Ferass El Hafidi 14a23d8a3e main/postmarketos-ui-plasma-mobile: move qtwebengine apps to extras_web
A web browser engine not being available should not cause the whole UI
to become unavailable, especially when not required for the UI itself to
work. Move packages depending on qt6-qtwebengine to a separate
subpackage, that gets pulled only on arches where qtwebengine is
available.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8373>
2026-04-17 13:38:44 +00:00
Clayton Craft 8981be95a2 main/postmarketos-duranium: add base image pkg depends
This adds pkg dependencies for the base duranium image to pmaports.
Previously these were set in the duranium-build project (mkosi config)

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8370>
2026-04-17 12:51:07 +00:00
Achill Gilgenast 599973fa45 main/postmarketos-base-ui: depend on avahi
Pre-install and enable a zeroconf provider

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8102>
2026-04-16 16:01:26 +02:00
Aelin ecb80ae8ca main/postmarketos-ui-plasma-mobile: Disable on ARMv7
qt6-qtwebengine has been disabled on ARMv7, and therefore angelfish is
no longer available for this architecture (pending disablement in
Alpine, but cannot be installed due to the missing qtwebengine libraries).

[ci:skip-vercheck]: only changing architectures

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8372>
2026-04-16 05:12:15 +02:00
Oliver Smith b0aefa426d main/postmarketos-ui-mediaberry: remove
This package depends on mbwl, which has been removed from pmaports.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8335>
2026-04-13 15:01:17 +00:00
Clayton Craft ac37fc4dd2 main/postmarketos-duranium: add config for dev-tools sysext
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8258>
2026-04-12 21:34:51 -07:00
Clayton Craft 6d8d98c235 main/postmarketos-duranium: depend on shadow-subids
useradd is run during first boot, and if /etc/sub{uid,gid} exist then
the user is added there. By adding an explicit dependency, we make sure
these files always exist on first boot so that container stuff added
later (e.g. in an extension) will work OOTB.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8258>
2026-04-12 21:34:51 -07:00
Clayton Craft 7674d8b45a main/postmarketos-duranium: add systemd-sysext preset
This service merges installed system extensions on boot

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8258>
2026-04-12 21:34:39 -07:00
Clayton Craft 06489cbd79 main/postmarketos-duranium: add support for systemd config extensions
Some of this was inspired by what GNOME OS does.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:55 +00:00
Clayton Craft 89e4cd346f main/postmarketos-duranium: add script to set image channel
This adds a script that can be used to set the "channel" for images to
"staging" or "main." "Staging" will come from a separate pipeline in the
duranium mkosi config repo, it may build images with patches or whatever
for testing, and won't be available to users running the "main" channel.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:55 +00:00
Achill Gilgenast fdb3d2ebbc main/postmarketos-base-ui: adapt replaces= to upstream chrony changes
The config file got moved to the new chrony-common package, so we must
"replace" this subpkg, so apk doesn't fails when replacing the file

Ref: https://gitlab.alpinelinux.org/alpine/aports/-/commit/70b570d4095272ab926a2693fdfb09c62d016a0b
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8294>
2026-04-07 11:17:19 +02:00
Clayton Craft 236204b51f main/postmarketos-install-recommends: set Clayton as maintainer
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8287>
2026-04-06 22:09:05 +00:00
Clayton Craft 6b903686d4 main/postmarketos-install-recommends: upgrade to 0.3
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8287>
2026-04-06 22:09:05 +00:00
Dylan Van Assche f4ad3632fc main/postmarketos-base-ui: set TimeoutStopSec for iio-sensor-proxy
Enforce to be killed on shutdown in 3s,
until https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/merge_requests/410 is upstream.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:10 +00:00
Clayton Craft e1317493c6 main/postmarketos-base-ui: proximity and accel sensor support
This is hopefully temporary. The proximity and accelerometer sensor tags
were removed upstream(1) citing an open issue on a specific device
and the desire to have more testing. Enabling it in pmOS will help get testing.

This udev rule shouldn't have any impact on devices that don't have
fastrpc. Installing it conditionally on iio-sensor-proxy just seems adds
packaging complexity for basically no benefit.

1. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/commit/a9d7ff148cd4fa5e40b23b189894b36dd81f51df

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7788>
2026-04-06 16:29:10 +00:00
Bart Ribbers e90be571c4 main/postmarketos-base-ui-plasma: depend on geoclue
Required for GPS/location functionality in various applications. Needs
to be pulled in by the meta package rather than the apps themselves to
ensure it'll work for Flatpakked apps.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8269>
2026-04-06 00:01:36 +00:00
Achill Gilgenast ec6491ffe9 main/postmarketos-ui-phosh: update to mobi.phosh schema for stevia
See https://gitlab.gnome.org/World/Phosh/stevia/-/commit/a4c92473dad292e524dea4e465a8b620a0684991

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8282>
2026-04-05 17:37:01 +00:00
Nikita Travkin 8f192af9b1 main/dtbloader: upgrade to 1.5.4
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8277>
2026-04-05 11:07:11 +05:00
Clayton Craft dceffe8a46 main/postmarketos-duranium: new aport
Duranium is an immutable variant of postmarketOS that uses systemd's
image-based OS model: dm-verity verified /usr, A/B slots managed by
systemd-sysupdate, LUKS2-encrypted root, and systemd-boot with UKIs.

This package ships systemd-repart, systemd-sysusers, tmpfiles, and
first-boot service configuration needed at runtime in both the initramfs
and the booted system, as well as sysupdate transfer definitions for
finding and upgrading images. Build-time repart and sysupdate config
lives in the mkosi config repo[1].

The pmOS initramfs is not used. Rather than re-implement partition
setup, verity, factory reset, and switch_root in shell script and
risk regressions for mutable pmOS installs, an initramfs is built by
mkosi containing systemd. This lets the standard systemd initrd
machinery handle everything, with no modifications to the pmOS
initramfs required.

On Android devices, subpartition logic from the pmOS initramfs is
essentially copied into a new systemd unit that runs in the initramfs
and sets up subpartitions so that they are available to tooling that
runs later in the boot process. In the future, this functionality should
be moved upstream into systemd.

Boot flows:

"Normal boot": the verified /usr partition is mounted and the LUKS
root partition is unlocked (empty passphrase by default, with fallback
to a graphical unlock prompt for user-set passphrases). switch_root
hands off to the real rootfs.

"First boot": systemd-repart creates the root partition, always as a
LUKS volume with an empty passphrase. After switch_root, a first-boot
app runs before the display manager to collect a username and password,
create the user account, and optionally set a LUKS passphrase. The
passphrase can also be changed later via systemd-cryptenroll or
cryptsetup.

"Factory reset": detected in the initramfs by systemd, which uses
systemd-repart to wipe and recreate the root partition. Boot then
continues with the first boot flow above. Factory reset can be triggered
while booting in the rootfs by starting a systemd unit that configures
an EFI variable to signal to the initramfs on next boot.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7059>
2026-04-03 19:23:17 +00:00
WrenIX 07d8d68309 main/postmarketos-ui-os-installer: switch from doas to sudo
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8228>
2026-04-02 22:35:35 +00:00
Aster Boese d4c0788fb6 main/postmarketos-initramfs: install udev.conf from /usr/lib/udev/udev.conf
Signed-off-by: Aster Boese <asterboese@mailbox.org>

[ci:skip-build]: already built successfully in CI (except riscv64 and armv7 due to known CI issue)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8046>
2026-04-02 20:29:28 +00:00